Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] [WIP] Update to GHC 9.0.2/Stackage LTS-19.0
@ 2022-03-23  7:20 slotThe
  2022-03-23 20:31 ` ftrvxmtrx
                   ` (21 more replies)
  0 siblings, 22 replies; 23+ messages in thread
From: slotThe @ 2022-03-23  7:20 UTC (permalink / raw)
  To: ml

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

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

https://github.com/slotThe/void-packages stackage-19
https://github.com/void-linux/void-packages/pull/36292

[WIP] Update to GHC 9.0.2/Stackage LTS-19.0
And so... the ~~hunt~~ fun begins again!

### Core packages to bump

- [x] ghc
- [ ] ghc-bin
    - [ ] x86_64-musl
    cc. @q66 for the following
    - [ ] ppc64le
    - [ ] ppc64le-musl
- [x] cabal-install
- [x] stack

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

Most of these are already done, things should probably go smoothly as 9.0.x does not contain any big breaking changes.

- [x] git-mediate
- [ ] kmonad
- [x] cgrep
- [ ] debug-me
- [x] hlint
- [x] hoogle
- [ ] darcs
- [x] shellcheck
- [x] git-annex
- [x] hledger
- [x] pandoc (contains a fix for `pandoc-crossref` on musl \o/)
- [x] xmobar
- [x] haskell-language-server

### Other things to do 

- [ ] Either incorporate https://github.com/void-linux/void-packages/pull/36193 into this PR or merge it first and then rebuild GHC for aarch64 and aarch64-musl; cc. @ftrvxmtrx

[ci skip]

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

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-stackage-19-36292.patch --]
[-- Type: text/x-diff, Size: 52218 bytes --]

From 5ce0a7ea17703bcfb1fc7b4007efef9e20b2d395 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Fri, 18 Mar 2022 17:33:46 +0100
Subject: [PATCH 01/13] ghc: update to 9.0.2

---
 .../ghc/patches/no-atomic-64-on-32bit.patch   | 58 -------------
 srcpkgs/ghc/patches/ppc64-be-elfv2.patch      | 86 ++++---------------
 srcpkgs/ghc/template                          |  4 +-
 3 files changed, 20 insertions(+), 128 deletions(-)
 delete mode 100644 srcpkgs/ghc/patches/no-atomic-64-on-32bit.patch

diff --git a/srcpkgs/ghc/patches/no-atomic-64-on-32bit.patch b/srcpkgs/ghc/patches/no-atomic-64-on-32bit.patch
deleted file mode 100644
index 05ca275ea9df..000000000000
--- a/srcpkgs/ghc/patches/no-atomic-64-on-32bit.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 5c5aa87d50dc4ea97e76e13f285a7b5dd71fcd88 Mon Sep 17 00:00:00 2001
-From: Ilias Tsitsimpis <iliastsi@debian.org>
-Date: Sun, 1 Mar 2020 16:25:13 +0200
-Subject: [PATCH] Do not define hs_atomic{read,write}64() on non-64bit
-
-Do not define hs_atomicread64() and hs_atomicwrite64() on machines where
-WORD_SIZE_IN_BITS is less than 64, just like we do with the rest of the atomic
-functions which work on 64-bit values.
-
-Without this, compilation fails on MIPSel and PowerPC with the following error:
-
-/usr/bin/ld: /<<PKGBUILDDIR>>/libraries/ghc-prim/dist-install/build/libHSghc-prim-0.5.3_p.a(atomic.p_o): in function `hs_atomicread64':
-atomic.c:(.text.hs_atomicread64+0x8): undefined reference to `__sync_add_and_fetch_8'
-/usr/bin/ld: /<<PKGBUILDDIR>>/libraries/ghc-prim/dist-install/build/libHSghc-prim-0.5.3_p.a(atomic.p_o): in function `hs_atomicwrite64':
-atomic.c:(.text.hs_atomicwrite64+0x38): undefined reference to `__sync_bool_compare_and_swap_8'
-
-Fixes #17886.
----
- libraries/ghc-prim/cbits/atomic.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/libraries/ghc-prim/cbits/atomic.c b/libraries/ghc-prim/cbits/atomic.c
-index ac2e608ec2..01037d70ee 100644
---- a/libraries/ghc-prim/cbits/atomic.c
-+++ b/libraries/ghc-prim/cbits/atomic.c
-@@ -361,6 +361,7 @@ hs_atomicread32(StgWord x)
- #endif
- }
- 
-+#if WORD_SIZE_IN_BITS == 64
- extern StgWord64 hs_atomicread64(StgWord x);
- StgWord64
- hs_atomicread64(StgWord x)
-@@ -371,6 +372,7 @@ hs_atomicread64(StgWord x)
-   return __sync_add_and_fetch((StgWord64 *) x, 0);
- #endif
- }
-+#endif
- 
- // AtomicWriteByteArrayOp_Int
- // Implies a full memory barrier (see compiler/prelude/primops.txt.pp)
-@@ -409,6 +411,7 @@ hs_atomicwrite32(StgWord x, StgWord val)
- #endif
- }
- 
-+#if WORD_SIZE_IN_BITS == 64
- extern void hs_atomicwrite64(StgWord x, StgWord64 val);
- void
- hs_atomicwrite64(StgWord x, StgWord64 val)
-@@ -420,3 +423,5 @@ hs_atomicwrite64(StgWord x, StgWord64 val)
- #endif
- }
- #endif
-+
-+#endif
--- 
-GitLab
-
diff --git a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
index 275444e828b7..7f074d17cbae 100644
--- a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
+++ b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
@@ -3,21 +3,9 @@ From: Daniel Kolesa <daniel@octaforge.org>
 Date: Tue, 5 Jan 2021 04:10:25 +0100
 Subject: [PATCH] fix up runtime for ppc64 BE ELFv2 + ensure it's used
 
----
- aclocal.m4                        |  2 +-
- configure                         |  2 +-
- libraries/ghci/GHCi/InfoTable.hsc | 36 ++++++++++++-------------------
- rts/Adjustor.c                    | 12 +++++------
- rts/AdjustorAsm.S                 |  2 +-
- rts/StgCRun.c                     |  4 ++--
- rts/StgCRunAsm.S                  |  2 +-
- 7 files changed, 26 insertions(+), 34 deletions(-)
-
-diff --git a/aclocal.m4 b/aclocal.m4
-index 41cecf0..ba08bd2 100644
---- a/aclocal.m4
-+++ b/aclocal.m4
-@@ -199,7 +199,7 @@ AC_DEFUN([FPTOOLS_SET_HASKELL_PLATFORM_V
+--- a/m4/fptools.m4
++++ b/m4/fptools.m4
+@@ -201,7 +201,7 @@
              test -z "[$]2" || eval "[$]2=ArchPPC"
              ;;
          powerpc64)
@@ -26,8 +14,6 @@ index 41cecf0..ba08bd2 100644
              ;;
          powerpc64le)
              test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
-diff --git a/configure b/configure
-index 183e661..8aae1bc 100755
 --- a/configure
 +++ b/configure
 @@ -10296,7 +10296,7 @@ $as_echo "done" >&6; }
@@ -39,8 +25,6 @@ index 183e661..8aae1bc 100755
              ;;
          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 ec3c18a..0359be7 100644
 --- a/libraries/ghci/GHCi/InfoTable.hsc
 +++ b/libraries/ghci/GHCi/InfoTable.hsc
 @@ -228,30 +228,22 @@ mkJumpToAddr a = case platform of
@@ -88,57 +72,28 @@ index ec3c18a..0359be7 100644
 
      ArchPPC64LE ->
          -- The ABI requires r12 to point to the function's entry point.
-diff --git a/rts/Adjustor.c b/rts/Adjustor.c
-index d360cfe..ab7ede7 100644
---- a/rts/Adjustor.c
-+++ b/rts/Adjustor.c
-@@ -49,7 +49,7 @@ Haskell side.
-
- #if defined(i386_HOST_ARCH)
- extern void adjustorCode(void);
--#elif defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
-+#elif defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
- // from AdjustorAsm.s
- // not declared as a function so that AIX-style
- // fundescs can never get in the way.
-@@ -278,7 +278,7 @@ __asm__("obscure_ccall_ret_code:\n\t"
+--- a/rts/adjustor/NativePowerPC.c
++++ b/rts/adjustor/NativePowerPC.c
+@@ -29,7 +29,7 @@
  extern void obscure_ccall_ret_code(void);
- #endif
+ #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: !!! !!!
-@@ -318,7 +318,7 @@ typedef struct AdjustorStub {
- } AdjustorStub;
- #endif
-
--#if defined(i386_HOST_ARCH) || defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
-+#if defined(i386_HOST_ARCH) || defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
- static int totalArgumentSize(char *typeString)
- {
-     int sz = 0;
-@@ -351,7 +351,7 @@ void*
+--- a/rts/adjustor/NativeIA64.c
++++ b/rts/adjustor/NativeIA64.c
+@@ -39,7 +39,7 @@
  createAdjustor(int cconv, StgStablePtr hptr,
                 StgFunPtr wptr,
                 char *typeString
 -#if !defined(powerpc_HOST_ARCH) && !defined(powerpc64_HOST_ARCH) && !defined(x86_64_HOST_ARCH)
 +#if !defined(powerpc_HOST_ARCH) && (!defined(powerpc64_HOST_ARCH) || (_CALL_ELF == 2)) && !defined(x86_64_HOST_ARCH)
-                   STG_UNUSED
+                STG_UNUSED
  #endif
-               )
-@@ -1271,7 +1271,7 @@ freeHaskellFunctionPtr(void* ptr)
-    return;
-  }
-  freeStablePtr(((StgStablePtr*)ptr)[1]);
--#elif defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
-+#elif defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
-  if ( ((AdjustorStub*)ptr)->code != (StgFunPtr) &adjustorCode ) {
-    errorBelch("freeHaskellFunctionPtr: not for me, guv! %p\n", ptr);
-    return;
-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 @@
@@ -150,20 +105,18 @@ index 2795b83..63cfe91 100644
  #if !(defined(powerpc_HOST_ARCH) && defined(linux_HOST_OS))
      /* The following code applies, with some differences,
         to all powerpc platforms except for powerpc32-linux,
-diff --git a/rts/StgCRun.c b/rts/StgCRun.c
-index 934926e..2ff8662 100644
 --- a/rts/StgCRun.c
 +++ b/rts/StgCRun.c
-@@ -726,7 +726,7 @@ StgRunIsImplementedInAssembler(void)
+@@ -635,7 +635,7 @@
     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)
+-#if defined(powerpc_HOST_ARCH)
++#if defined(powerpc_HOST_ARCH) && (_CALL_ELF != 2)
+
+ #define STG_GLOBAL ".globl "
 
- static void GNUC3_ATTRIBUTE(used)
- StgRunIsImplementedInAssembler(void)
-@@ -851,7 +851,7 @@ StgRunIsImplementedInAssembler(void)
+@@ -792,6 +792,6 @@
 
  #endif
 
@@ -171,9 +124,6 @@ index 934926e..2ff8662 100644
 +#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 9274a44..3b4fc33 100644
 --- a/rts/StgCRunAsm.S
 +++ b/rts/StgCRunAsm.S
 @@ -5,7 +5,7 @@
diff --git a/srcpkgs/ghc/template b/srcpkgs/ghc/template
index b8b16f67b433..c4bbb3e4e3b1 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=8.10.7
+version=9.0.2
 revision=1
 wrksrc="ghc-${version%[!0-9]}"
 build_style=gnu-configure
@@ -14,7 +14,7 @@ maintainer="slotThe <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=e3eef6229ce9908dfe1ea41436befb0455fefb1932559e860ad4c606b0d03c9d
+checksum=140e42b96346322d1a39eb17602bcdc76e292028ad4a69286b230bab188a9197
 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 90bdce8ae8ab36517c9cfb601f4e51cba4703bce Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sat, 19 Mar 2022 10:48:13 +0100
Subject: [PATCH 02/13] cabal-install: update to 3.6.3.0

Technically, this is only upgrading Cabal (the library) to 3.6.3.0, as
the installed version of cabal-install is still 3.6.2.0.  This is,
however, necessary for GHC 9.x support.
---
 srcpkgs/cabal-install/files/linux-9.0.2.json | 1 +
 srcpkgs/cabal-install/template               | 9 +++++----
 2 files changed, 6 insertions(+), 4 deletions(-)
 create mode 100644 srcpkgs/cabal-install/files/linux-9.0.2.json

diff --git a/srcpkgs/cabal-install/files/linux-9.0.2.json b/srcpkgs/cabal-install/files/linux-9.0.2.json
new file mode 100644
index 000000000000..f3cb6b4aeeb5
--- /dev/null
+++ b/srcpkgs/cabal-install/files/linux-9.0.2.json
@@ -0,0 +1 @@
+{"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/template b/srcpkgs/cabal-install/template
index d6d718709993..6a4b0ad7fc0e 100644
--- a/srcpkgs/cabal-install/template
+++ b/srcpkgs/cabal-install/template
@@ -1,6 +1,6 @@
 # Template file for 'cabal-install'
 pkgname=cabal-install
-version=3.6.2.0
+version=3.6.3.0
 revision=1
 wrksrc=cabal-Cabal-v${version}
 hostmakedepends="ghc curl tar which"
@@ -11,7 +11,7 @@ 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=dcf31e82cd85ea3236be18cc36c68058948994579ea7de18f99175821dbbcb64
+checksum=dea086acad6d9fe5fe22d838b95b4e988022e8519f38d41609119ea32bfb7466
 nopie_files="/usr/bin/cabal"
 nocross=yes
 
@@ -19,12 +19,13 @@ 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-8.10.7.json ;;
+		vsed -i -e 's/+ofd-locking/-ofd-locking/' bootstrap/linux-9.0.2.json ;;
 	esac
 }
 
 do_build() {
-	PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-8.10.7.json
+	cp "${FILESDIR}/linux-9.0.2.json" bootstrap/
+	PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-9.0.2.json
 }
 do_install() {
 	vbin _build/bin/cabal

From fca528d49c56be81a9fc18c0f74b3ad761698a27 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sat, 19 Mar 2022 12:54:36 +0100
Subject: [PATCH 03/13] stack: update stackage resolver to lts-19.0

Related: https://github.com/commercialhaskell/stack/pull/5559
---
 srcpkgs/stack/patches/ghc9.0.2.patch | 212 +++++++++++++++++++++++++++
 srcpkgs/stack/template               |   6 +-
 2 files changed, 215 insertions(+), 3 deletions(-)
 create mode 100644 srcpkgs/stack/patches/ghc9.0.2.patch

diff --git a/srcpkgs/stack/patches/ghc9.0.2.patch b/srcpkgs/stack/patches/ghc9.0.2.patch
new file mode 100644
index 000000000000..bdd77de58c6b
--- /dev/null
+++ b/srcpkgs/stack/patches/ghc9.0.2.patch
@@ -0,0 +1,212 @@
+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/template b/srcpkgs/stack/template
index 9e53b95ca633..15c38039684d 100644
--- a/srcpkgs/stack/template
+++ b/srcpkgs/stack/template
@@ -1,8 +1,8 @@
 # Template file for 'stack'
 pkgname=stack
 version=2.7.5
-revision=1
-_stackage="lts-18.14"
+revision=2
+_stackage="lts-19.0"
 hostmakedepends="cabal-install pkg-config unzip"
 makedepends="zlib-devel pcre-devel"
 depends="git gmp-devel iana-etc"
@@ -13,7 +13,7 @@ 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
- 78577c091074d78f9d6e09d6e31e7fc8ac2ddbb0dbc4ac65c606adcac4957d7f"
+ 6b9983f6448eb825231f65fe955d6d85516f482f0d26fee84183a1a79c6b0646"
 skip_extraction="cabal.config-${_stackage}"
 nocross=yes
 nopie_files="/usr/bin/stack"

From 9de9a979acc648b9901fbc319d5af00023176d9b Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 09:17:26 +0100
Subject: [PATCH 04/13] cgrep: bump for stackage lts-19.0

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

diff --git a/srcpkgs/cgrep/template b/srcpkgs/cgrep/template
index e57106f3fa26..1c54fe367396 100644
--- a/srcpkgs/cgrep/template
+++ b/srcpkgs/cgrep/template
@@ -1,9 +1,9 @@
 # Template file for 'cgrep'
 pkgname=cgrep
 version=6.7.1
-revision=2
+revision=3
 build_style=haskell-stack
-stackage="lts-18.15"
+stackage="lts-19.0"
 makedepends="pcre-devel pkg-config"
 short_desc="Context-aware grep for source codes"
 maintainer="slotThe <soliditsallgood@mailbox.org>"

From 39baaa9e9822341c8c1d8a90f62843a60692c679 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 09:23:26 +0100
Subject: [PATCH 05/13] git-mediate: bump for stackage lts-19.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 0c9ec10241e5..705df7843b8e 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=2
+revision=3
 build_style=haskell-stack
-stackage="lts-18.14"
+stackage="lts-19.0"
 depends="git"
 short_desc="Tool to help resolving git conflicts"
 maintainer="Peter Wang <novalazy@gmail.com>"

From 47024f61e647b0f4fa02b273516755d86fda46a6 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 09:51:34 +0100
Subject: [PATCH 06/13] hlint: update to 3.3.6

---
 srcpkgs/hlint/template | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/srcpkgs/hlint/template b/srcpkgs/hlint/template
index fd72c1bbea58..0109be25805f 100644
--- a/srcpkgs/hlint/template
+++ b/srcpkgs/hlint/template
@@ -1,16 +1,16 @@
 # Template file for 'hlint'
 pkgname=hlint
-version=3.2.7
-revision=2
+version=3.3.6
+revision=1
 build_style=haskell-stack
-stackage="lts-18.14"
+stackage="lts-19.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=fcdeefcc79a52206add44b409abcab48c5fe2adff9d5aff077acbc43c702b54e
+checksum=7d536c03f77a0c259efb2b00b525ef34578ca8a4a95ccb412708e8c7172e2e6a
 nocross=yes # Can't yet cross compile Haskell
 nopie_files="/usr/bin/hlint"
 

From 9187ce00b74630b99af08af7afd8a17e6fc0fbea Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 11:38:44 +0100
Subject: [PATCH 07/13] pandoc: update to 2.17.1.1

+ Fix compilation of `pandoc-crossref` for musl systems.
+ Remove the `system-lua` flag, as `pkg-config` already implies it [1].

Related: https://github.com/lierdakil/pandoc-crossref/issues/342
[1]: https://github.com/hslua/hslua/blob/main/lua/README.md?plain=1#L39-L40
---
 srcpkgs/pandoc/files/pandoc-crossref.cabal | 230 +++++++++++++++++++++
 srcpkgs/pandoc/template                    |  43 ++--
 2 files changed, 249 insertions(+), 24 deletions(-)
 create mode 100644 srcpkgs/pandoc/files/pandoc-crossref.cabal

diff --git a/srcpkgs/pandoc/files/pandoc-crossref.cabal b/srcpkgs/pandoc/files/pandoc-crossref.cabal
new file mode 100644
index 000000000000..39f2b9e7bde0
--- /dev/null
+++ b/srcpkgs/pandoc/files/pandoc-crossref.cabal
@@ -0,0 +1,230 @@
+cabal-version: 2.0
+
+-- This file has been generated from package.yaml by hpack version 0.34.6.
+--
+-- see: https://github.com/sol/hpack
+--
+-- hash: 20655cd6263e9fe7e5737ee81b093c8c6f5eae67e260ddd3a821ac6ef5e35e69
+
+name:           pandoc-crossref
+version:        0.3.13.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
+homepage:       https://github.com/lierdakil/pandoc-crossref#readme
+bug-reports:    https://github.com/lierdakil/pandoc-crossref/issues
+author:         Nikolay Yakimov
+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
+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/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/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
+
+source-repository head
+  type: git
+  location: https://github.com/lierdakil/pandoc-crossref
+
+flag enable_flaky_tests
+  description: Some tests rely on specific behaviour of pandoc, which may change between minor versions. These are still useful indicators for the developer, but not necessarily indicating there's a problem with the package itself. Enable if you know what you are doing.
+  manual: True
+  default: False
+
+library
+  exposed-modules:
+      Text.Pandoc.CrossRef
+  other-modules:
+      Text.Pandoc.CrossRef.References
+      Text.Pandoc.CrossRef.References.Blocks
+      Text.Pandoc.CrossRef.References.List
+      Text.Pandoc.CrossRef.References.Refs
+      Text.Pandoc.CrossRef.References.Types
+      Text.Pandoc.CrossRef.Util.CodeBlockCaptions
+      Text.Pandoc.CrossRef.Util.CustomLabels
+      Text.Pandoc.CrossRef.Util.Meta
+      Text.Pandoc.CrossRef.Util.ModifyMeta
+      Text.Pandoc.CrossRef.Util.Options
+      Text.Pandoc.CrossRef.Util.Settings
+      Text.Pandoc.CrossRef.Util.Settings.Gen
+      Text.Pandoc.CrossRef.Util.Settings.Template
+      Text.Pandoc.CrossRef.Util.Template
+      Text.Pandoc.CrossRef.Util.Util
+  hs-source-dirs:
+      lib
+      lib-internal
+  ghc-options: -Wall
+  build-depends:
+      base >=4.11 && <5
+    , containers >=0.1 && <0.7
+    , data-default >=0.4 && <0.8
+    , directory >=1 && <1.4
+    , filepath >=1.1 && <1.5
+    , 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.*
+    , syb >=0.4 && <0.8
+    , template-haskell >=2.7.0.0 && <3.0.0.0
+    , text >=1.2.2 && <1.3
+    , utility-ht >=0.0.11 && <0.1.0
+  default-language: Haskell2010
+
+executable pandoc-crossref
+  main-is: pandoc-crossref.hs
+  other-modules:
+      ManData
+  hs-source-dirs:
+      src
+  ghc-options: -Wall -threaded
+  build-depends:
+      base >=4.11 && <5
+    , deepseq ==1.4.*
+    , gitrev >=1.3.1 && <1.4
+    , open-browser ==0.2.*
+    , optparse-applicative >=0.13 && <0.17
+    , pandoc >=2.10 && <2.18
+    , pandoc-crossref
+    , pandoc-types >=1.21 && <1.23
+    , template-haskell >=2.7.0.0 && <3.0.0.0
+    , temporary >=1.2 && <1.4
+    , text >=1.2.2 && <1.3
+  default-language: Haskell2010
+
+test-suite test-integrative
+  type: exitcode-stdio-1.0
+  main-is: test-integrative.hs
+  hs-source-dirs:
+      test
+  ghc-options: -Wall -fno-warn-unused-do-bind -threaded
+  build-depends:
+      base >=4.11 && <5
+    , directory >=1 && <1.4
+    , filepath >=1.1 && <1.5
+    , hspec >=2.4.4 && <3
+    , pandoc >=2.10 && <2.18
+    , pandoc-crossref
+    , pandoc-types >=1.21 && <1.23
+    , text >=1.2.2 && <1.3
+  if flag(enable_flaky_tests)
+    cpp-options: -DFLAKY
+  default-language: Haskell2010
+
+test-suite test-pandoc-crossref
+  type: exitcode-stdio-1.0
+  main-is: test-pandoc-crossref.hs
+  other-modules:
+      Native
+      Paths_pandoc_crossref
+  autogen-modules:
+      Paths_pandoc_crossref
+  hs-source-dirs:
+      test
+  ghc-options: -Wall -fno-warn-unused-do-bind -threaded
+  build-depends:
+      base >=4.11 && <5
+    , containers >=0.1 && <0.7
+    , data-default >=0.4 && <0.8
+    , 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-crossref
+    , pandoc-types >=1.21 && <1.23
+    , text >=1.2.2 && <1.3
+  if flag(enable_flaky_tests)
+    cpp-options: -DFLAKY
+  default-language: Haskell2010
+
+benchmark simple
+  type: exitcode-stdio-1.0
+  main-is: bench-simple.hs
+  other-modules:
+      Native
+  hs-source-dirs:
+      test
+  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
+    , pandoc-crossref
+    , pandoc-types >=1.21 && <1.23
+    , text >=1.2.2 && <1.3
+  default-language: Haskell2010
diff --git a/srcpkgs/pandoc/template b/srcpkgs/pandoc/template
index 8628b1d1f3c2..9bdf32ef3c53 100644
--- a/srcpkgs/pandoc/template
+++ b/srcpkgs/pandoc/template
@@ -1,18 +1,18 @@
 # Template file for 'pandoc'
 pkgname=pandoc
 # Keep in sync with http://www.stackage.org/lts
-version=2.14.0.3
-revision=3
-_sidenote_version=0.20.0.0
+version=2.17.1.1
+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
 create_wrksrc=yes
 build_style=haskell-stack
-stackage="lts-18.14"
+stackage="lts-19.0"
 make_build_args="
- --flag pandoc:embed_data_files --flag=hslua:system-lua
- --flag=hslua:pkg-config"
+ --flag pandoc:embed_data_files
+ --flag=lua:pkg-config"
 hostmakedepends="pkg-config unzip wget"
 makedepends="zlib-devel lua53-devel tar"
 short_desc="Universal converter between markup formats"
@@ -21,33 +21,28 @@ license="GPL-2.0-or-later, BSD-3-Clause"
 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"
-checksum="82e3f55bff3059bf30cf532e93d9876c9e3599aa4eafae9c907fe75a4430eddd
- 91f8e96d8470722d677d31d4bbf16c2ac6902567d818ed7a2715bad2617a4cdb
- be8485023fce236b5b915f2f6074f7b0470a2040f84cdd137c5227f1b4c98465"
-subpackages="pandoc-sidenote"
-nocross=yes
-nopie_files="
- /usr/bin/pandoc
- /usr/bin/pandoc-sidenote"
-
-# pandoc-crossref is currently broken on musl. See lierdakil/pandoc-crossref#342 and commercialhaskell/stack#5683
-if [ "$XBPS_TARGET_LIBC" != "musl" ]; then
-	distfiles+="
+ 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+="
+checksum="649ec528d1413130c5ce304b826ff473b3696269eea8834d908589e775bd1ad1
+ c39dd7343b9cb4dc5b1c91c9e47c3d357874e9e1a30b8d377bbea0b1d50323b2
+ be8485023fce236b5b915f2f6074f7b0470a2040f84cdd137c5227f1b4c98465
  94540325c9c98ae4d5199c634bf402ffa41e3c5b020d7207daef90fd9e224fb4
  b9c7195b69b1662a286d2c28a55fafdcb693c522ba5eb54a11b1d0a4e92eaa81"
-	nopie_files+="
- /usr/bin/pandoc-crossref"
-	subpackages+="
+subpackages="
+ pandoc-sidenote
  pandoc-crossref"
-fi
+nocross=yes
+nopie_files="
+ /usr/bin/pandoc
+ /usr/bin/pandoc-sidenote
+ /usr/bin/pandoc-crossref"
 
 post_extract() {
 	sed -i 's/tasty .*,/tasty,/' pandoc-*/pandoc.cabal
 	sed -i 's/zip-archive .*,/zip-archive,/' pandoc-*/pandoc.cabal
+	# See https://github.com/lierdakil/pandoc-crossref/issues/342#issuecomment-1073256586
+	cp "${FILESDIR}/pandoc-crossref.cabal" pandoc-crossref-${_crossref_version}
 }
 
 post_install() {

From 96ca211c88712bf81839c41232703ec4fb89208e Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 12:15:01 +0100
Subject: [PATCH 08/13] shellcheck: bump for stackage lts-19.0

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

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

From d7c5bd5bc2bf3506928f1ec886dfdd3fb90799b9 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 12:52:11 +0100
Subject: [PATCH 09/13] hoogle: update to 5.0.18.3

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

diff --git a/srcpkgs/hoogle/template b/srcpkgs/hoogle/template
index 4c3e80186494..dc487cab4017 100644
--- a/srcpkgs/hoogle/template
+++ b/srcpkgs/hoogle/template
@@ -1,16 +1,16 @@
 # Template file for 'hoogle'
 pkgname=hoogle
-version=5.0.18.2
-revision=2
+version=5.0.18.3
+revision=1
 build_style=haskell-stack
-stackage="lts-18.14"
+stackage="lts-19.0"
 makedepends="zlib-devel"
 short_desc="Haskell API search engine"
 maintainer="Inokentiy Babushkin <twk@twki.de>"
 license="BSD-3-Clause"
 homepage="https://hoogle.haskell.org/"
 distfiles="https://github.com/ndmitchell/${pkgname}/archive/v${version}.tar.gz"
-checksum=9f8f0afde52fe602100ab7828fad230c2f5e94050dda9fe1e2a9f0a93f7fe617
+checksum=a2765fcbaf99fe67a64ef29fe50e69fb380cce07807cddeb0836c148b1ae472b
 nopie_files="/usr/bin/hoogle"
 nocross=yes # Can't yet cross compile Haskell
 

From 3cc03d6b11b7f6ef4e6a8b8805cf4ee979b4badc Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 13:33:12 +0100
Subject: [PATCH 10/13] xmobar: update to 0.42

Also enable most flags during compilation in order to be less surprising
with regards to what features xmobar supports out of the box.
---
 srcpkgs/xmobar/files/stack.yaml | 2 +-
 srcpkgs/xmobar/template         | 8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/xmobar/files/stack.yaml b/srcpkgs/xmobar/files/stack.yaml
index 47544eb729d8..7e0956374142 100644
--- a/srcpkgs/xmobar/files/stack.yaml
+++ b/srcpkgs/xmobar/files/stack.yaml
@@ -1,4 +1,4 @@
-resolver: lts-18.13
+resolver: lts-19.0
 packages:
 - .
 extra-deps:
diff --git a/srcpkgs/xmobar/template b/srcpkgs/xmobar/template
index b97c9f268d68..6a12a9ed7055 100644
--- a/srcpkgs/xmobar/template
+++ b/srcpkgs/xmobar/template
@@ -1,7 +1,7 @@
 # Template file for 'xmobar'
 pkgname=xmobar
-version=0.39
-revision=2
+version=0.42
+revision=1
 build_style=haskell-stack
 hostmakedepends="pkg-config"
 makedepends="libX11-devel libXinerama-devel libXrandr-devel libXScrnSaver-devel
@@ -15,10 +15,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=46f37b90dd3ba3348dbe7de716b88606c7f0f0dd22a3580176b5cd089c1b36cc
+checksum=53f4a06d79c3db32ef1a498ec7b764b17d03ebf9bca3126c6b8259595492769b
 build_options="dbus threaded utf8 xft mpd mpris inotify iwlib alsa datezone
  xpm uvmeter weather nl80211"
-build_options_default="threaded utf8 xft inotify nl80211 datezone weather xpm"
+build_options_default="threaded utf8 xft inotify nl80211 datezone weather xpm alsa mpris mpd dbus"
 nopie_files="/usr/bin/xmobar"
 nocross=yes
 vopt_hflag() {

From d9425e49584c01d9b19fb4231d327bb36a5b15f7 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 18:09:34 +0100
Subject: [PATCH 11/13] hledger: update to 1.25

---
 srcpkgs/hledger/template | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/hledger/template b/srcpkgs/hledger/template
index fdcab180a6de..32d39207fd82 100644
--- a/srcpkgs/hledger/template
+++ b/srcpkgs/hledger/template
@@ -1,8 +1,9 @@
 # Template file for 'hledger'
 pkgname=hledger
-version=1.23
-revision=2
+version=1.25
+revision=1
 build_style=haskell-stack
+stackage="lts-19.0"
 makedepends="zlib-devel ncurses-devel"
 short_desc="Simple, precise, plain text accounting"
 maintainer="Inokentiy Babushkin <twk@twki.de>"
@@ -10,7 +11,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/${pkgname}/archive/${version}.tar.gz"
-checksum=7252d78aafbae488b113a6350518a702186cacc4e746cec2b31f8321b4dddcb4
+checksum=4c947c2a7d243d2a56efc1fa02994a118e995df025a412f6d2daeadfd78338ee
 nopie_files="/usr/bin/hledger"
 nocross=yes # Can't yet cross compile Haskell
 

From 54d9f8a086bfbb6efd1ffe6d3d8fb8a4666882fe Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Mon, 21 Mar 2022 08:19:29 +0100
Subject: [PATCH 12/13] haskell-language-server: update to 1.6.1.0

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

diff --git a/srcpkgs/haskell-language-server/template b/srcpkgs/haskell-language-server/template
index 0182c9b95757..0c7b2187c5ca 100644
--- a/srcpkgs/haskell-language-server/template
+++ b/srcpkgs/haskell-language-server/template
@@ -1,16 +1,16 @@
 # Template file for 'haskell-language-server'
 pkgname=haskell-language-server
-version=1.4.0
+version=1.6.1.0
 revision=1
 build_style="haskell-stack"
-make_build_args="--stack-yaml stack-8.10.7.yaml"
+make_build_args="--stack-yaml stack-9.0.2.yaml"
 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>"
 license="Apache-2.0"
 homepage="https://github.com/haskell/haskell-language-server"
 distfiles="https://github.com/haskell/haskell-language-server/archive/${version}.tar.gz"
-checksum=c5d7dbf7fae9aa3ed2c1184b49e82d8ac623ca786494ef6602cfe11735d28db0
+checksum=e5c336ad2de8d021c882cdac5bbc26bf6427df8d2a5bd244c05cf18296a9bfdc
 nopie_files="
  /usr/bin/haskell-language-server
  /usr/bin/haskell-language-server-wrapper

From 4e351532feef4a3a0694a2d9f63e0ba7c2f59acc Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Mon, 21 Mar 2022 15:48:58 +0100
Subject: [PATCH 13/13] git-annex: update to 10.20220222

---
 srcpkgs/git-annex/template | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/git-annex/template b/srcpkgs/git-annex/template
index 1cf2ab14789f..7b788bc5861e 100644
--- a/srcpkgs/git-annex/template
+++ b/srcpkgs/git-annex/template
@@ -1,8 +1,9 @@
 # Template file for 'git-annex'
 pkgname=git-annex
-version=8.20211028
+version=10.20220222
 revision=1
 build_style=haskell-stack
+stackage="lts-19.0"
 makedepends="curl file-devel gnupg2 gnutls-devel gsasl-devel libxml2-devel
  lsof rsync git ncurses-devel"
 # depends are utilities required by git-annex
@@ -12,7 +13,7 @@ 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="http://git-annex.branchable.com"
 distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz"
-checksum=cf5efe15e68d467daad673bec10037a27a78da7e4af9b4a85e10980bd90ace2d
+checksum=1fb9f75a83feb16f7515122135c0f3abe6aa77544d8d778792296cbc053d2c85
 nopie_files="/usr/bin/git-annex"
 nocross=yes
 

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

* Re: [WIP] Update to GHC 9.0.2/Stackage LTS-19.0
  2022-03-23  7:20 [PR PATCH] [WIP] Update to GHC 9.0.2/Stackage LTS-19.0 slotThe
@ 2022-03-23 20:31 ` ftrvxmtrx
  2022-03-23 20:40 ` ftrvxmtrx
                   ` (20 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: ftrvxmtrx @ 2022-03-23 20:31 UTC (permalink / raw)
  To: ml

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

New comment by ftrvxmtrx on void-packages repository

https://github.com/void-linux/void-packages/pull/36292#issuecomment-1076791182

Comment:
@slotThe I condensed the changes required to get it build on aarch64 and aarch64-musl to one commit: https://github.com/ftrvxmtrx/void-packages/commit/401a299740c47d8f6e1d1d55fb8a09fb38dc08c4

I think it'd be best to get that change into your PR directly. Feel free to cut out parts you might already have in your local tree.

* [distfile for aarch64](https://ftrv.se/_/void/ghc-9.0.2/ghc-9.0.2-aarch64-void-linux.tar.xz)
* [distfile for aarch64-musl](https://ftrv.se/_/void/ghc-9.0.2/ghc-9.0.2-aarch64-void-linux-musl.tar.xz)

I've built `ghc-bin` for both, now building `ghc` which is going to take some time.

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

* Re: [WIP] Update to GHC 9.0.2/Stackage LTS-19.0
  2022-03-23  7:20 [PR PATCH] [WIP] Update to GHC 9.0.2/Stackage LTS-19.0 slotThe
  2022-03-23 20:31 ` ftrvxmtrx
@ 2022-03-23 20:40 ` ftrvxmtrx
  2022-03-24 10:51 ` [PR PATCH] [Updated] " slotThe
                   ` (19 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: ftrvxmtrx @ 2022-03-23 20:40 UTC (permalink / raw)
  To: ml

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

New comment by ftrvxmtrx on void-packages repository

https://github.com/void-linux/void-packages/pull/36292#issuecomment-1076791182

Comment:
@slotThe I condensed the changes required to get it build on aarch64 and aarch64-musl to one commit: https://github.com/ftrvxmtrx/void-packages/commit/401a299740c47d8f6e1d1d55fb8a09fb38dc08c4

I think it'd be best to get that change into your PR somehow, without merging the PR I made for ghc-8.*. Feel free to cut/rebase parts you might already have in your local tree.

* [distfile for aarch64](https://ftrv.se/_/void/ghc-9.0.2/ghc-9.0.2-aarch64-void-linux.tar.xz)
* [distfile for aarch64-musl](https://ftrv.se/_/void/ghc-9.0.2/ghc-9.0.2-aarch64-void-linux-musl.tar.xz)

I've built `ghc-bin` for both, now building `ghc` which is going to take some time.

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

* Re: [PR PATCH] [Updated] [WIP] Update to GHC 9.0.2/Stackage LTS-19.0
  2022-03-23  7:20 [PR PATCH] [WIP] Update to GHC 9.0.2/Stackage LTS-19.0 slotThe
  2022-03-23 20:31 ` ftrvxmtrx
  2022-03-23 20:40 ` ftrvxmtrx
@ 2022-03-24 10:51 ` slotThe
  2022-03-24 10:51 ` slotThe
                   ` (18 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: slotThe @ 2022-03-24 10:51 UTC (permalink / raw)
  To: ml

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

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

https://github.com/slotThe/void-packages stackage-19
https://github.com/void-linux/void-packages/pull/36292

[WIP] Update to GHC 9.0.2/Stackage LTS-19.0
And so... the ~~hunt~~ fun begins again!

### Core packages to bump

- [x] ghc
- [ ] ghc-bin
    - [ ] x86_64-musl
    cc. @q66 for the following
    - [ ] ppc64le
    - [ ] ppc64le-musl
- [x] cabal-install
- [x] stack

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

Most of these are already done, things should probably go smoothly as 9.0.x does not contain any big breaking changes.

- [x] git-mediate
- [ ] kmonad
- [x] cgrep
- [ ] debug-me
- [x] hlint
- [x] hoogle
- [ ] darcs
- [x] shellcheck
- [x] git-annex
- [x] hledger
- [x] pandoc (contains a fix for `pandoc-crossref` on musl \o/)
- [x] xmobar
- [x] haskell-language-server

### Other things to do 

- [ ] Either incorporate https://github.com/void-linux/void-packages/pull/36193 into this PR or merge it first and then rebuild GHC for aarch64 and aarch64-musl; cc. @ftrvxmtrx

[ci skip]

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

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-stackage-19-36292.patch --]
[-- Type: text/x-diff, Size: 55507 bytes --]

From 5ce0a7ea17703bcfb1fc7b4007efef9e20b2d395 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Fri, 18 Mar 2022 17:33:46 +0100
Subject: [PATCH 01/15] ghc: update to 9.0.2

---
 .../ghc/patches/no-atomic-64-on-32bit.patch   | 58 -------------
 srcpkgs/ghc/patches/ppc64-be-elfv2.patch      | 86 ++++---------------
 srcpkgs/ghc/template                          |  4 +-
 3 files changed, 20 insertions(+), 128 deletions(-)
 delete mode 100644 srcpkgs/ghc/patches/no-atomic-64-on-32bit.patch

diff --git a/srcpkgs/ghc/patches/no-atomic-64-on-32bit.patch b/srcpkgs/ghc/patches/no-atomic-64-on-32bit.patch
deleted file mode 100644
index 05ca275ea9df..000000000000
--- a/srcpkgs/ghc/patches/no-atomic-64-on-32bit.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 5c5aa87d50dc4ea97e76e13f285a7b5dd71fcd88 Mon Sep 17 00:00:00 2001
-From: Ilias Tsitsimpis <iliastsi@debian.org>
-Date: Sun, 1 Mar 2020 16:25:13 +0200
-Subject: [PATCH] Do not define hs_atomic{read,write}64() on non-64bit
-
-Do not define hs_atomicread64() and hs_atomicwrite64() on machines where
-WORD_SIZE_IN_BITS is less than 64, just like we do with the rest of the atomic
-functions which work on 64-bit values.
-
-Without this, compilation fails on MIPSel and PowerPC with the following error:
-
-/usr/bin/ld: /<<PKGBUILDDIR>>/libraries/ghc-prim/dist-install/build/libHSghc-prim-0.5.3_p.a(atomic.p_o): in function `hs_atomicread64':
-atomic.c:(.text.hs_atomicread64+0x8): undefined reference to `__sync_add_and_fetch_8'
-/usr/bin/ld: /<<PKGBUILDDIR>>/libraries/ghc-prim/dist-install/build/libHSghc-prim-0.5.3_p.a(atomic.p_o): in function `hs_atomicwrite64':
-atomic.c:(.text.hs_atomicwrite64+0x38): undefined reference to `__sync_bool_compare_and_swap_8'
-
-Fixes #17886.
----
- libraries/ghc-prim/cbits/atomic.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/libraries/ghc-prim/cbits/atomic.c b/libraries/ghc-prim/cbits/atomic.c
-index ac2e608ec2..01037d70ee 100644
---- a/libraries/ghc-prim/cbits/atomic.c
-+++ b/libraries/ghc-prim/cbits/atomic.c
-@@ -361,6 +361,7 @@ hs_atomicread32(StgWord x)
- #endif
- }
- 
-+#if WORD_SIZE_IN_BITS == 64
- extern StgWord64 hs_atomicread64(StgWord x);
- StgWord64
- hs_atomicread64(StgWord x)
-@@ -371,6 +372,7 @@ hs_atomicread64(StgWord x)
-   return __sync_add_and_fetch((StgWord64 *) x, 0);
- #endif
- }
-+#endif
- 
- // AtomicWriteByteArrayOp_Int
- // Implies a full memory barrier (see compiler/prelude/primops.txt.pp)
-@@ -409,6 +411,7 @@ hs_atomicwrite32(StgWord x, StgWord val)
- #endif
- }
- 
-+#if WORD_SIZE_IN_BITS == 64
- extern void hs_atomicwrite64(StgWord x, StgWord64 val);
- void
- hs_atomicwrite64(StgWord x, StgWord64 val)
-@@ -420,3 +423,5 @@ hs_atomicwrite64(StgWord x, StgWord64 val)
- #endif
- }
- #endif
-+
-+#endif
--- 
-GitLab
-
diff --git a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
index 275444e828b7..7f074d17cbae 100644
--- a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
+++ b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
@@ -3,21 +3,9 @@ From: Daniel Kolesa <daniel@octaforge.org>
 Date: Tue, 5 Jan 2021 04:10:25 +0100
 Subject: [PATCH] fix up runtime for ppc64 BE ELFv2 + ensure it's used
 
----
- aclocal.m4                        |  2 +-
- configure                         |  2 +-
- libraries/ghci/GHCi/InfoTable.hsc | 36 ++++++++++++-------------------
- rts/Adjustor.c                    | 12 +++++------
- rts/AdjustorAsm.S                 |  2 +-
- rts/StgCRun.c                     |  4 ++--
- rts/StgCRunAsm.S                  |  2 +-
- 7 files changed, 26 insertions(+), 34 deletions(-)
-
-diff --git a/aclocal.m4 b/aclocal.m4
-index 41cecf0..ba08bd2 100644
---- a/aclocal.m4
-+++ b/aclocal.m4
-@@ -199,7 +199,7 @@ AC_DEFUN([FPTOOLS_SET_HASKELL_PLATFORM_V
+--- a/m4/fptools.m4
++++ b/m4/fptools.m4
+@@ -201,7 +201,7 @@
              test -z "[$]2" || eval "[$]2=ArchPPC"
              ;;
          powerpc64)
@@ -26,8 +14,6 @@ index 41cecf0..ba08bd2 100644
              ;;
          powerpc64le)
              test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
-diff --git a/configure b/configure
-index 183e661..8aae1bc 100755
 --- a/configure
 +++ b/configure
 @@ -10296,7 +10296,7 @@ $as_echo "done" >&6; }
@@ -39,8 +25,6 @@ index 183e661..8aae1bc 100755
              ;;
          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 ec3c18a..0359be7 100644
 --- a/libraries/ghci/GHCi/InfoTable.hsc
 +++ b/libraries/ghci/GHCi/InfoTable.hsc
 @@ -228,30 +228,22 @@ mkJumpToAddr a = case platform of
@@ -88,57 +72,28 @@ index ec3c18a..0359be7 100644
 
      ArchPPC64LE ->
          -- The ABI requires r12 to point to the function's entry point.
-diff --git a/rts/Adjustor.c b/rts/Adjustor.c
-index d360cfe..ab7ede7 100644
---- a/rts/Adjustor.c
-+++ b/rts/Adjustor.c
-@@ -49,7 +49,7 @@ Haskell side.
-
- #if defined(i386_HOST_ARCH)
- extern void adjustorCode(void);
--#elif defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
-+#elif defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
- // from AdjustorAsm.s
- // not declared as a function so that AIX-style
- // fundescs can never get in the way.
-@@ -278,7 +278,7 @@ __asm__("obscure_ccall_ret_code:\n\t"
+--- a/rts/adjustor/NativePowerPC.c
++++ b/rts/adjustor/NativePowerPC.c
+@@ -29,7 +29,7 @@
  extern void obscure_ccall_ret_code(void);
- #endif
+ #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: !!! !!!
-@@ -318,7 +318,7 @@ typedef struct AdjustorStub {
- } AdjustorStub;
- #endif
-
--#if defined(i386_HOST_ARCH) || defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
-+#if defined(i386_HOST_ARCH) || defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
- static int totalArgumentSize(char *typeString)
- {
-     int sz = 0;
-@@ -351,7 +351,7 @@ void*
+--- a/rts/adjustor/NativeIA64.c
++++ b/rts/adjustor/NativeIA64.c
+@@ -39,7 +39,7 @@
  createAdjustor(int cconv, StgStablePtr hptr,
                 StgFunPtr wptr,
                 char *typeString
 -#if !defined(powerpc_HOST_ARCH) && !defined(powerpc64_HOST_ARCH) && !defined(x86_64_HOST_ARCH)
 +#if !defined(powerpc_HOST_ARCH) && (!defined(powerpc64_HOST_ARCH) || (_CALL_ELF == 2)) && !defined(x86_64_HOST_ARCH)
-                   STG_UNUSED
+                STG_UNUSED
  #endif
-               )
-@@ -1271,7 +1271,7 @@ freeHaskellFunctionPtr(void* ptr)
-    return;
-  }
-  freeStablePtr(((StgStablePtr*)ptr)[1]);
--#elif defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
-+#elif defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
-  if ( ((AdjustorStub*)ptr)->code != (StgFunPtr) &adjustorCode ) {
-    errorBelch("freeHaskellFunctionPtr: not for me, guv! %p\n", ptr);
-    return;
-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 @@
@@ -150,20 +105,18 @@ index 2795b83..63cfe91 100644
  #if !(defined(powerpc_HOST_ARCH) && defined(linux_HOST_OS))
      /* The following code applies, with some differences,
         to all powerpc platforms except for powerpc32-linux,
-diff --git a/rts/StgCRun.c b/rts/StgCRun.c
-index 934926e..2ff8662 100644
 --- a/rts/StgCRun.c
 +++ b/rts/StgCRun.c
-@@ -726,7 +726,7 @@ StgRunIsImplementedInAssembler(void)
+@@ -635,7 +635,7 @@
     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)
+-#if defined(powerpc_HOST_ARCH)
++#if defined(powerpc_HOST_ARCH) && (_CALL_ELF != 2)
+
+ #define STG_GLOBAL ".globl "
 
- static void GNUC3_ATTRIBUTE(used)
- StgRunIsImplementedInAssembler(void)
-@@ -851,7 +851,7 @@ StgRunIsImplementedInAssembler(void)
+@@ -792,6 +792,6 @@
 
  #endif
 
@@ -171,9 +124,6 @@ index 934926e..2ff8662 100644
 +#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 9274a44..3b4fc33 100644
 --- a/rts/StgCRunAsm.S
 +++ b/rts/StgCRunAsm.S
 @@ -5,7 +5,7 @@
diff --git a/srcpkgs/ghc/template b/srcpkgs/ghc/template
index b8b16f67b433..c4bbb3e4e3b1 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=8.10.7
+version=9.0.2
 revision=1
 wrksrc="ghc-${version%[!0-9]}"
 build_style=gnu-configure
@@ -14,7 +14,7 @@ maintainer="slotThe <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=e3eef6229ce9908dfe1ea41436befb0455fefb1932559e860ad4c606b0d03c9d
+checksum=140e42b96346322d1a39eb17602bcdc76e292028ad4a69286b230bab188a9197
 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 90bdce8ae8ab36517c9cfb601f4e51cba4703bce Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sat, 19 Mar 2022 10:48:13 +0100
Subject: [PATCH 02/15] cabal-install: update to 3.6.3.0

Technically, this is only upgrading Cabal (the library) to 3.6.3.0, as
the installed version of cabal-install is still 3.6.2.0.  This is,
however, necessary for GHC 9.x support.
---
 srcpkgs/cabal-install/files/linux-9.0.2.json | 1 +
 srcpkgs/cabal-install/template               | 9 +++++----
 2 files changed, 6 insertions(+), 4 deletions(-)
 create mode 100644 srcpkgs/cabal-install/files/linux-9.0.2.json

diff --git a/srcpkgs/cabal-install/files/linux-9.0.2.json b/srcpkgs/cabal-install/files/linux-9.0.2.json
new file mode 100644
index 000000000000..f3cb6b4aeeb5
--- /dev/null
+++ b/srcpkgs/cabal-install/files/linux-9.0.2.json
@@ -0,0 +1 @@
+{"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/template b/srcpkgs/cabal-install/template
index d6d718709993..6a4b0ad7fc0e 100644
--- a/srcpkgs/cabal-install/template
+++ b/srcpkgs/cabal-install/template
@@ -1,6 +1,6 @@
 # Template file for 'cabal-install'
 pkgname=cabal-install
-version=3.6.2.0
+version=3.6.3.0
 revision=1
 wrksrc=cabal-Cabal-v${version}
 hostmakedepends="ghc curl tar which"
@@ -11,7 +11,7 @@ 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=dcf31e82cd85ea3236be18cc36c68058948994579ea7de18f99175821dbbcb64
+checksum=dea086acad6d9fe5fe22d838b95b4e988022e8519f38d41609119ea32bfb7466
 nopie_files="/usr/bin/cabal"
 nocross=yes
 
@@ -19,12 +19,13 @@ 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-8.10.7.json ;;
+		vsed -i -e 's/+ofd-locking/-ofd-locking/' bootstrap/linux-9.0.2.json ;;
 	esac
 }
 
 do_build() {
-	PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-8.10.7.json
+	cp "${FILESDIR}/linux-9.0.2.json" bootstrap/
+	PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-9.0.2.json
 }
 do_install() {
 	vbin _build/bin/cabal

From fca528d49c56be81a9fc18c0f74b3ad761698a27 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sat, 19 Mar 2022 12:54:36 +0100
Subject: [PATCH 03/15] stack: update stackage resolver to lts-19.0

Related: https://github.com/commercialhaskell/stack/pull/5559
---
 srcpkgs/stack/patches/ghc9.0.2.patch | 212 +++++++++++++++++++++++++++
 srcpkgs/stack/template               |   6 +-
 2 files changed, 215 insertions(+), 3 deletions(-)
 create mode 100644 srcpkgs/stack/patches/ghc9.0.2.patch

diff --git a/srcpkgs/stack/patches/ghc9.0.2.patch b/srcpkgs/stack/patches/ghc9.0.2.patch
new file mode 100644
index 000000000000..bdd77de58c6b
--- /dev/null
+++ b/srcpkgs/stack/patches/ghc9.0.2.patch
@@ -0,0 +1,212 @@
+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/template b/srcpkgs/stack/template
index 9e53b95ca633..15c38039684d 100644
--- a/srcpkgs/stack/template
+++ b/srcpkgs/stack/template
@@ -1,8 +1,8 @@
 # Template file for 'stack'
 pkgname=stack
 version=2.7.5
-revision=1
-_stackage="lts-18.14"
+revision=2
+_stackage="lts-19.0"
 hostmakedepends="cabal-install pkg-config unzip"
 makedepends="zlib-devel pcre-devel"
 depends="git gmp-devel iana-etc"
@@ -13,7 +13,7 @@ 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
- 78577c091074d78f9d6e09d6e31e7fc8ac2ddbb0dbc4ac65c606adcac4957d7f"
+ 6b9983f6448eb825231f65fe955d6d85516f482f0d26fee84183a1a79c6b0646"
 skip_extraction="cabal.config-${_stackage}"
 nocross=yes
 nopie_files="/usr/bin/stack"

From 9de9a979acc648b9901fbc319d5af00023176d9b Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 09:17:26 +0100
Subject: [PATCH 04/15] cgrep: bump for stackage lts-19.0

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

diff --git a/srcpkgs/cgrep/template b/srcpkgs/cgrep/template
index e57106f3fa26..1c54fe367396 100644
--- a/srcpkgs/cgrep/template
+++ b/srcpkgs/cgrep/template
@@ -1,9 +1,9 @@
 # Template file for 'cgrep'
 pkgname=cgrep
 version=6.7.1
-revision=2
+revision=3
 build_style=haskell-stack
-stackage="lts-18.15"
+stackage="lts-19.0"
 makedepends="pcre-devel pkg-config"
 short_desc="Context-aware grep for source codes"
 maintainer="slotThe <soliditsallgood@mailbox.org>"

From 39baaa9e9822341c8c1d8a90f62843a60692c679 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 09:23:26 +0100
Subject: [PATCH 05/15] git-mediate: bump for stackage lts-19.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 0c9ec10241e5..705df7843b8e 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=2
+revision=3
 build_style=haskell-stack
-stackage="lts-18.14"
+stackage="lts-19.0"
 depends="git"
 short_desc="Tool to help resolving git conflicts"
 maintainer="Peter Wang <novalazy@gmail.com>"

From 47024f61e647b0f4fa02b273516755d86fda46a6 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 09:51:34 +0100
Subject: [PATCH 06/15] hlint: update to 3.3.6

---
 srcpkgs/hlint/template | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/srcpkgs/hlint/template b/srcpkgs/hlint/template
index fd72c1bbea58..0109be25805f 100644
--- a/srcpkgs/hlint/template
+++ b/srcpkgs/hlint/template
@@ -1,16 +1,16 @@
 # Template file for 'hlint'
 pkgname=hlint
-version=3.2.7
-revision=2
+version=3.3.6
+revision=1
 build_style=haskell-stack
-stackage="lts-18.14"
+stackage="lts-19.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=fcdeefcc79a52206add44b409abcab48c5fe2adff9d5aff077acbc43c702b54e
+checksum=7d536c03f77a0c259efb2b00b525ef34578ca8a4a95ccb412708e8c7172e2e6a
 nocross=yes # Can't yet cross compile Haskell
 nopie_files="/usr/bin/hlint"
 

From 9187ce00b74630b99af08af7afd8a17e6fc0fbea Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 11:38:44 +0100
Subject: [PATCH 07/15] pandoc: update to 2.17.1.1

+ Fix compilation of `pandoc-crossref` for musl systems.
+ Remove the `system-lua` flag, as `pkg-config` already implies it [1].

Related: https://github.com/lierdakil/pandoc-crossref/issues/342
[1]: https://github.com/hslua/hslua/blob/main/lua/README.md?plain=1#L39-L40
---
 srcpkgs/pandoc/files/pandoc-crossref.cabal | 230 +++++++++++++++++++++
 srcpkgs/pandoc/template                    |  43 ++--
 2 files changed, 249 insertions(+), 24 deletions(-)
 create mode 100644 srcpkgs/pandoc/files/pandoc-crossref.cabal

diff --git a/srcpkgs/pandoc/files/pandoc-crossref.cabal b/srcpkgs/pandoc/files/pandoc-crossref.cabal
new file mode 100644
index 000000000000..39f2b9e7bde0
--- /dev/null
+++ b/srcpkgs/pandoc/files/pandoc-crossref.cabal
@@ -0,0 +1,230 @@
+cabal-version: 2.0
+
+-- This file has been generated from package.yaml by hpack version 0.34.6.
+--
+-- see: https://github.com/sol/hpack
+--
+-- hash: 20655cd6263e9fe7e5737ee81b093c8c6f5eae67e260ddd3a821ac6ef5e35e69
+
+name:           pandoc-crossref
+version:        0.3.13.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
+homepage:       https://github.com/lierdakil/pandoc-crossref#readme
+bug-reports:    https://github.com/lierdakil/pandoc-crossref/issues
+author:         Nikolay Yakimov
+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
+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/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/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
+
+source-repository head
+  type: git
+  location: https://github.com/lierdakil/pandoc-crossref
+
+flag enable_flaky_tests
+  description: Some tests rely on specific behaviour of pandoc, which may change between minor versions. These are still useful indicators for the developer, but not necessarily indicating there's a problem with the package itself. Enable if you know what you are doing.
+  manual: True
+  default: False
+
+library
+  exposed-modules:
+      Text.Pandoc.CrossRef
+  other-modules:
+      Text.Pandoc.CrossRef.References
+      Text.Pandoc.CrossRef.References.Blocks
+      Text.Pandoc.CrossRef.References.List
+      Text.Pandoc.CrossRef.References.Refs
+      Text.Pandoc.CrossRef.References.Types
+      Text.Pandoc.CrossRef.Util.CodeBlockCaptions
+      Text.Pandoc.CrossRef.Util.CustomLabels
+      Text.Pandoc.CrossRef.Util.Meta
+      Text.Pandoc.CrossRef.Util.ModifyMeta
+      Text.Pandoc.CrossRef.Util.Options
+      Text.Pandoc.CrossRef.Util.Settings
+      Text.Pandoc.CrossRef.Util.Settings.Gen
+      Text.Pandoc.CrossRef.Util.Settings.Template
+      Text.Pandoc.CrossRef.Util.Template
+      Text.Pandoc.CrossRef.Util.Util
+  hs-source-dirs:
+      lib
+      lib-internal
+  ghc-options: -Wall
+  build-depends:
+      base >=4.11 && <5
+    , containers >=0.1 && <0.7
+    , data-default >=0.4 && <0.8
+    , directory >=1 && <1.4
+    , filepath >=1.1 && <1.5
+    , 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.*
+    , syb >=0.4 && <0.8
+    , template-haskell >=2.7.0.0 && <3.0.0.0
+    , text >=1.2.2 && <1.3
+    , utility-ht >=0.0.11 && <0.1.0
+  default-language: Haskell2010
+
+executable pandoc-crossref
+  main-is: pandoc-crossref.hs
+  other-modules:
+      ManData
+  hs-source-dirs:
+      src
+  ghc-options: -Wall -threaded
+  build-depends:
+      base >=4.11 && <5
+    , deepseq ==1.4.*
+    , gitrev >=1.3.1 && <1.4
+    , open-browser ==0.2.*
+    , optparse-applicative >=0.13 && <0.17
+    , pandoc >=2.10 && <2.18
+    , pandoc-crossref
+    , pandoc-types >=1.21 && <1.23
+    , template-haskell >=2.7.0.0 && <3.0.0.0
+    , temporary >=1.2 && <1.4
+    , text >=1.2.2 && <1.3
+  default-language: Haskell2010
+
+test-suite test-integrative
+  type: exitcode-stdio-1.0
+  main-is: test-integrative.hs
+  hs-source-dirs:
+      test
+  ghc-options: -Wall -fno-warn-unused-do-bind -threaded
+  build-depends:
+      base >=4.11 && <5
+    , directory >=1 && <1.4
+    , filepath >=1.1 && <1.5
+    , hspec >=2.4.4 && <3
+    , pandoc >=2.10 && <2.18
+    , pandoc-crossref
+    , pandoc-types >=1.21 && <1.23
+    , text >=1.2.2 && <1.3
+  if flag(enable_flaky_tests)
+    cpp-options: -DFLAKY
+  default-language: Haskell2010
+
+test-suite test-pandoc-crossref
+  type: exitcode-stdio-1.0
+  main-is: test-pandoc-crossref.hs
+  other-modules:
+      Native
+      Paths_pandoc_crossref
+  autogen-modules:
+      Paths_pandoc_crossref
+  hs-source-dirs:
+      test
+  ghc-options: -Wall -fno-warn-unused-do-bind -threaded
+  build-depends:
+      base >=4.11 && <5
+    , containers >=0.1 && <0.7
+    , data-default >=0.4 && <0.8
+    , 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-crossref
+    , pandoc-types >=1.21 && <1.23
+    , text >=1.2.2 && <1.3
+  if flag(enable_flaky_tests)
+    cpp-options: -DFLAKY
+  default-language: Haskell2010
+
+benchmark simple
+  type: exitcode-stdio-1.0
+  main-is: bench-simple.hs
+  other-modules:
+      Native
+  hs-source-dirs:
+      test
+  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
+    , pandoc-crossref
+    , pandoc-types >=1.21 && <1.23
+    , text >=1.2.2 && <1.3
+  default-language: Haskell2010
diff --git a/srcpkgs/pandoc/template b/srcpkgs/pandoc/template
index 8628b1d1f3c2..9bdf32ef3c53 100644
--- a/srcpkgs/pandoc/template
+++ b/srcpkgs/pandoc/template
@@ -1,18 +1,18 @@
 # Template file for 'pandoc'
 pkgname=pandoc
 # Keep in sync with http://www.stackage.org/lts
-version=2.14.0.3
-revision=3
-_sidenote_version=0.20.0.0
+version=2.17.1.1
+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
 create_wrksrc=yes
 build_style=haskell-stack
-stackage="lts-18.14"
+stackage="lts-19.0"
 make_build_args="
- --flag pandoc:embed_data_files --flag=hslua:system-lua
- --flag=hslua:pkg-config"
+ --flag pandoc:embed_data_files
+ --flag=lua:pkg-config"
 hostmakedepends="pkg-config unzip wget"
 makedepends="zlib-devel lua53-devel tar"
 short_desc="Universal converter between markup formats"
@@ -21,33 +21,28 @@ license="GPL-2.0-or-later, BSD-3-Clause"
 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"
-checksum="82e3f55bff3059bf30cf532e93d9876c9e3599aa4eafae9c907fe75a4430eddd
- 91f8e96d8470722d677d31d4bbf16c2ac6902567d818ed7a2715bad2617a4cdb
- be8485023fce236b5b915f2f6074f7b0470a2040f84cdd137c5227f1b4c98465"
-subpackages="pandoc-sidenote"
-nocross=yes
-nopie_files="
- /usr/bin/pandoc
- /usr/bin/pandoc-sidenote"
-
-# pandoc-crossref is currently broken on musl. See lierdakil/pandoc-crossref#342 and commercialhaskell/stack#5683
-if [ "$XBPS_TARGET_LIBC" != "musl" ]; then
-	distfiles+="
+ 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+="
+checksum="649ec528d1413130c5ce304b826ff473b3696269eea8834d908589e775bd1ad1
+ c39dd7343b9cb4dc5b1c91c9e47c3d357874e9e1a30b8d377bbea0b1d50323b2
+ be8485023fce236b5b915f2f6074f7b0470a2040f84cdd137c5227f1b4c98465
  94540325c9c98ae4d5199c634bf402ffa41e3c5b020d7207daef90fd9e224fb4
  b9c7195b69b1662a286d2c28a55fafdcb693c522ba5eb54a11b1d0a4e92eaa81"
-	nopie_files+="
- /usr/bin/pandoc-crossref"
-	subpackages+="
+subpackages="
+ pandoc-sidenote
  pandoc-crossref"
-fi
+nocross=yes
+nopie_files="
+ /usr/bin/pandoc
+ /usr/bin/pandoc-sidenote
+ /usr/bin/pandoc-crossref"
 
 post_extract() {
 	sed -i 's/tasty .*,/tasty,/' pandoc-*/pandoc.cabal
 	sed -i 's/zip-archive .*,/zip-archive,/' pandoc-*/pandoc.cabal
+	# See https://github.com/lierdakil/pandoc-crossref/issues/342#issuecomment-1073256586
+	cp "${FILESDIR}/pandoc-crossref.cabal" pandoc-crossref-${_crossref_version}
 }
 
 post_install() {

From 96ca211c88712bf81839c41232703ec4fb89208e Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 12:15:01 +0100
Subject: [PATCH 08/15] shellcheck: bump for stackage lts-19.0

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

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

From d7c5bd5bc2bf3506928f1ec886dfdd3fb90799b9 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 12:52:11 +0100
Subject: [PATCH 09/15] hoogle: update to 5.0.18.3

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

diff --git a/srcpkgs/hoogle/template b/srcpkgs/hoogle/template
index 4c3e80186494..dc487cab4017 100644
--- a/srcpkgs/hoogle/template
+++ b/srcpkgs/hoogle/template
@@ -1,16 +1,16 @@
 # Template file for 'hoogle'
 pkgname=hoogle
-version=5.0.18.2
-revision=2
+version=5.0.18.3
+revision=1
 build_style=haskell-stack
-stackage="lts-18.14"
+stackage="lts-19.0"
 makedepends="zlib-devel"
 short_desc="Haskell API search engine"
 maintainer="Inokentiy Babushkin <twk@twki.de>"
 license="BSD-3-Clause"
 homepage="https://hoogle.haskell.org/"
 distfiles="https://github.com/ndmitchell/${pkgname}/archive/v${version}.tar.gz"
-checksum=9f8f0afde52fe602100ab7828fad230c2f5e94050dda9fe1e2a9f0a93f7fe617
+checksum=a2765fcbaf99fe67a64ef29fe50e69fb380cce07807cddeb0836c148b1ae472b
 nopie_files="/usr/bin/hoogle"
 nocross=yes # Can't yet cross compile Haskell
 

From 3cc03d6b11b7f6ef4e6a8b8805cf4ee979b4badc Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 13:33:12 +0100
Subject: [PATCH 10/15] xmobar: update to 0.42

Also enable most flags during compilation in order to be less surprising
with regards to what features xmobar supports out of the box.
---
 srcpkgs/xmobar/files/stack.yaml | 2 +-
 srcpkgs/xmobar/template         | 8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/xmobar/files/stack.yaml b/srcpkgs/xmobar/files/stack.yaml
index 47544eb729d8..7e0956374142 100644
--- a/srcpkgs/xmobar/files/stack.yaml
+++ b/srcpkgs/xmobar/files/stack.yaml
@@ -1,4 +1,4 @@
-resolver: lts-18.13
+resolver: lts-19.0
 packages:
 - .
 extra-deps:
diff --git a/srcpkgs/xmobar/template b/srcpkgs/xmobar/template
index b97c9f268d68..6a12a9ed7055 100644
--- a/srcpkgs/xmobar/template
+++ b/srcpkgs/xmobar/template
@@ -1,7 +1,7 @@
 # Template file for 'xmobar'
 pkgname=xmobar
-version=0.39
-revision=2
+version=0.42
+revision=1
 build_style=haskell-stack
 hostmakedepends="pkg-config"
 makedepends="libX11-devel libXinerama-devel libXrandr-devel libXScrnSaver-devel
@@ -15,10 +15,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=46f37b90dd3ba3348dbe7de716b88606c7f0f0dd22a3580176b5cd089c1b36cc
+checksum=53f4a06d79c3db32ef1a498ec7b764b17d03ebf9bca3126c6b8259595492769b
 build_options="dbus threaded utf8 xft mpd mpris inotify iwlib alsa datezone
  xpm uvmeter weather nl80211"
-build_options_default="threaded utf8 xft inotify nl80211 datezone weather xpm"
+build_options_default="threaded utf8 xft inotify nl80211 datezone weather xpm alsa mpris mpd dbus"
 nopie_files="/usr/bin/xmobar"
 nocross=yes
 vopt_hflag() {

From d9425e49584c01d9b19fb4231d327bb36a5b15f7 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 18:09:34 +0100
Subject: [PATCH 11/15] hledger: update to 1.25

---
 srcpkgs/hledger/template | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/hledger/template b/srcpkgs/hledger/template
index fdcab180a6de..32d39207fd82 100644
--- a/srcpkgs/hledger/template
+++ b/srcpkgs/hledger/template
@@ -1,8 +1,9 @@
 # Template file for 'hledger'
 pkgname=hledger
-version=1.23
-revision=2
+version=1.25
+revision=1
 build_style=haskell-stack
+stackage="lts-19.0"
 makedepends="zlib-devel ncurses-devel"
 short_desc="Simple, precise, plain text accounting"
 maintainer="Inokentiy Babushkin <twk@twki.de>"
@@ -10,7 +11,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/${pkgname}/archive/${version}.tar.gz"
-checksum=7252d78aafbae488b113a6350518a702186cacc4e746cec2b31f8321b4dddcb4
+checksum=4c947c2a7d243d2a56efc1fa02994a118e995df025a412f6d2daeadfd78338ee
 nopie_files="/usr/bin/hledger"
 nocross=yes # Can't yet cross compile Haskell
 

From 54d9f8a086bfbb6efd1ffe6d3d8fb8a4666882fe Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Mon, 21 Mar 2022 08:19:29 +0100
Subject: [PATCH 12/15] haskell-language-server: update to 1.6.1.0

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

diff --git a/srcpkgs/haskell-language-server/template b/srcpkgs/haskell-language-server/template
index 0182c9b95757..0c7b2187c5ca 100644
--- a/srcpkgs/haskell-language-server/template
+++ b/srcpkgs/haskell-language-server/template
@@ -1,16 +1,16 @@
 # Template file for 'haskell-language-server'
 pkgname=haskell-language-server
-version=1.4.0
+version=1.6.1.0
 revision=1
 build_style="haskell-stack"
-make_build_args="--stack-yaml stack-8.10.7.yaml"
+make_build_args="--stack-yaml stack-9.0.2.yaml"
 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>"
 license="Apache-2.0"
 homepage="https://github.com/haskell/haskell-language-server"
 distfiles="https://github.com/haskell/haskell-language-server/archive/${version}.tar.gz"
-checksum=c5d7dbf7fae9aa3ed2c1184b49e82d8ac623ca786494ef6602cfe11735d28db0
+checksum=e5c336ad2de8d021c882cdac5bbc26bf6427df8d2a5bd244c05cf18296a9bfdc
 nopie_files="
  /usr/bin/haskell-language-server
  /usr/bin/haskell-language-server-wrapper

From 4e351532feef4a3a0694a2d9f63e0ba7c2f59acc Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Mon, 21 Mar 2022 15:48:58 +0100
Subject: [PATCH 13/15] git-annex: update to 10.20220222

---
 srcpkgs/git-annex/template | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/git-annex/template b/srcpkgs/git-annex/template
index 1cf2ab14789f..7b788bc5861e 100644
--- a/srcpkgs/git-annex/template
+++ b/srcpkgs/git-annex/template
@@ -1,8 +1,9 @@
 # Template file for 'git-annex'
 pkgname=git-annex
-version=8.20211028
+version=10.20220222
 revision=1
 build_style=haskell-stack
+stackage="lts-19.0"
 makedepends="curl file-devel gnupg2 gnutls-devel gsasl-devel libxml2-devel
  lsof rsync git ncurses-devel"
 # depends are utilities required by git-annex
@@ -12,7 +13,7 @@ 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="http://git-annex.branchable.com"
 distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz"
-checksum=cf5efe15e68d467daad673bec10037a27a78da7e4af9b4a85e10980bd90ace2d
+checksum=1fb9f75a83feb16f7515122135c0f3abe6aa77544d8d778792296cbc053d2c85
 nopie_files="/usr/bin/git-annex"
 nocross=yes
 

From 494f48fa47ee1ae65e04b3d9922661558b1fe1cb Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Wed, 23 Mar 2022 09:14:58 +0100
Subject: [PATCH 14/15] darcs: bump for stackage lts-19.0

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

diff --git a/srcpkgs/darcs/files/stack.yaml b/srcpkgs/darcs/files/stack.yaml
index 5ae0f5313b8d..6e459703764a 100644
--- a/srcpkgs/darcs/files/stack.yaml
+++ b/srcpkgs/darcs/files/stack.yaml
@@ -1,7 +1,4 @@
-resolver: lts-18.14
+resolver: lts-19.0
 packages:
 - .
-extra-deps:
-- graphviz-2999.20.1.0
-- constraints-0.12@sha256:7edf1e72a92d0a6761da634f08be9123dfcc0dcec11c269cbf465a09721c3481,2322
-- cryptonite-0.27@sha256:c3a9c8ce11e654a9d5bee827b089d4b50587272828d0c52a85362a58667a916c,18163
+allow-newer: true
diff --git a/srcpkgs/darcs/template b/srcpkgs/darcs/template
index f9fcac534d46..15a8f71f9021 100644
--- a/srcpkgs/darcs/template
+++ b/srcpkgs/darcs/template
@@ -1,7 +1,7 @@
 # Template file for 'darcs'
 pkgname=darcs
 version=2.16.5
-revision=2
+revision=3
 build_style=haskell-stack
 hostmakedepends="unzip"
 makedepends="zlib-devel libcurl-devel ncurses-devel"

From 5682e07e9189b3888f876337db37ede1c5ea42c3 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Thu, 24 Mar 2022 11:50:45 +0100
Subject: [PATCH 15/15] debug-me: bump for stackage lts-19.0

---
 srcpkgs/debug-me/files/stack.yaml        |  8 +++-----
 srcpkgs/debug-me/patches/ghc8.10.4.patch | 11 -----------
 srcpkgs/debug-me/template                |  2 +-
 3 files changed, 4 insertions(+), 17 deletions(-)

diff --git a/srcpkgs/debug-me/files/stack.yaml b/srcpkgs/debug-me/files/stack.yaml
index ad8b055bb33e..4363ebc5e4f9 100644
--- a/srcpkgs/debug-me/files/stack.yaml
+++ b/srcpkgs/debug-me/files/stack.yaml
@@ -1,8 +1,6 @@
 packages:
 - '.'
-resolver: lts-18.14
+resolver: lts-19.0
 extra-deps:
-- posix-pty-0.2.1.1
-- graphviz-2999.20.1.0
-- sandi-0.5
-- protobuf-0.2.1.3@sha256:d8ed3c73027c6b7e7583c6a94ee1835beee8a755a875b06bbf51bc667d53ab69,3048
+  - posix-pty-0.2.2@sha256:dd777df258b3b95fe01612c1204cde972ad1323c3289591ecc844ecb29e55e2b,1826
+  - sandi-0.5@sha256:b278d072ca717706ea38f9bd646e023f7f2576a778fb43565b434f93638849aa,3010
diff --git a/srcpkgs/debug-me/patches/ghc8.10.4.patch b/srcpkgs/debug-me/patches/ghc8.10.4.patch
index bfcff16a4438..dc9be027822f 100644
--- a/srcpkgs/debug-me/patches/ghc8.10.4.patch
+++ b/srcpkgs/debug-me/patches/ghc8.10.4.patch
@@ -20,14 +20,3 @@
  		defaultSettings
 
  checkEnv :: ServerOpts -> IO ServerOpts
---- a/debug-me.cabal
-+++ b/debug-me.cabal
-@@ -64,7 +64,7 @@
-     , stm-chans (>= 3.0)
-     , posix-pty (>= 0.2.1)
-     , terminal-size (>= 0.3)
--    , aeson (>= 0.11 && < 1.5)
-+    , aeson (>= 0.11 && < 1.6)
-     , sandi (>= 0.4)
-     , text (>= 1.2.2)
-     , optparse-applicative (>= 0.12)
diff --git a/srcpkgs/debug-me/template b/srcpkgs/debug-me/template
index 86ac0037311a..298b38de58cd 100644
--- a/srcpkgs/debug-me/template
+++ b/srcpkgs/debug-me/template
@@ -1,7 +1,7 @@
 # Template file for 'debug-me'
 pkgname=debug-me
 version=1.20200820
-revision=3
+revision=4
 build_style=haskell-stack
 makedepends="zlib-devel"
 short_desc="Secure remote debugging"

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

* Re: [PR PATCH] [Updated] [WIP] Update to GHC 9.0.2/Stackage LTS-19.0
  2022-03-23  7:20 [PR PATCH] [WIP] Update to GHC 9.0.2/Stackage LTS-19.0 slotThe
                   ` (2 preceding siblings ...)
  2022-03-24 10:51 ` [PR PATCH] [Updated] " slotThe
@ 2022-03-24 10:51 ` slotThe
  2022-03-24 11:34 ` slotThe
                   ` (17 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: slotThe @ 2022-03-24 10:51 UTC (permalink / raw)
  To: ml

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

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

https://github.com/slotThe/void-packages stackage-19
https://github.com/void-linux/void-packages/pull/36292

[WIP] Update to GHC 9.0.2/Stackage LTS-19.0
And so... the ~~hunt~~ fun begins again!

### Core packages to bump

- [x] ghc
- [ ] ghc-bin
    - [ ] x86_64-musl
    cc. @q66 for the following
    - [ ] ppc64le
    - [ ] ppc64le-musl
- [x] cabal-install
- [x] stack

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

Most of these are already done, things should probably go smoothly as 9.0.x does not contain any big breaking changes.

- [x] git-mediate
- [ ] kmonad
- [x] cgrep
- [ ] debug-me
- [x] hlint
- [x] hoogle
- [ ] darcs
- [x] shellcheck
- [x] git-annex
- [x] hledger
- [x] pandoc (contains a fix for `pandoc-crossref` on musl \o/)
- [x] xmobar
- [x] haskell-language-server

### Other things to do 

- [ ] Either incorporate https://github.com/void-linux/void-packages/pull/36193 into this PR or merge it first and then rebuild GHC for aarch64 and aarch64-musl; cc. @ftrvxmtrx

[ci skip]

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

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-stackage-19-36292.patch --]
[-- Type: text/x-diff, Size: 58825 bytes --]

From 5ce0a7ea17703bcfb1fc7b4007efef9e20b2d395 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Fri, 18 Mar 2022 17:33:46 +0100
Subject: [PATCH 01/16] ghc: update to 9.0.2

---
 .../ghc/patches/no-atomic-64-on-32bit.patch   | 58 -------------
 srcpkgs/ghc/patches/ppc64-be-elfv2.patch      | 86 ++++---------------
 srcpkgs/ghc/template                          |  4 +-
 3 files changed, 20 insertions(+), 128 deletions(-)
 delete mode 100644 srcpkgs/ghc/patches/no-atomic-64-on-32bit.patch

diff --git a/srcpkgs/ghc/patches/no-atomic-64-on-32bit.patch b/srcpkgs/ghc/patches/no-atomic-64-on-32bit.patch
deleted file mode 100644
index 05ca275ea9df..000000000000
--- a/srcpkgs/ghc/patches/no-atomic-64-on-32bit.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 5c5aa87d50dc4ea97e76e13f285a7b5dd71fcd88 Mon Sep 17 00:00:00 2001
-From: Ilias Tsitsimpis <iliastsi@debian.org>
-Date: Sun, 1 Mar 2020 16:25:13 +0200
-Subject: [PATCH] Do not define hs_atomic{read,write}64() on non-64bit
-
-Do not define hs_atomicread64() and hs_atomicwrite64() on machines where
-WORD_SIZE_IN_BITS is less than 64, just like we do with the rest of the atomic
-functions which work on 64-bit values.
-
-Without this, compilation fails on MIPSel and PowerPC with the following error:
-
-/usr/bin/ld: /<<PKGBUILDDIR>>/libraries/ghc-prim/dist-install/build/libHSghc-prim-0.5.3_p.a(atomic.p_o): in function `hs_atomicread64':
-atomic.c:(.text.hs_atomicread64+0x8): undefined reference to `__sync_add_and_fetch_8'
-/usr/bin/ld: /<<PKGBUILDDIR>>/libraries/ghc-prim/dist-install/build/libHSghc-prim-0.5.3_p.a(atomic.p_o): in function `hs_atomicwrite64':
-atomic.c:(.text.hs_atomicwrite64+0x38): undefined reference to `__sync_bool_compare_and_swap_8'
-
-Fixes #17886.
----
- libraries/ghc-prim/cbits/atomic.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/libraries/ghc-prim/cbits/atomic.c b/libraries/ghc-prim/cbits/atomic.c
-index ac2e608ec2..01037d70ee 100644
---- a/libraries/ghc-prim/cbits/atomic.c
-+++ b/libraries/ghc-prim/cbits/atomic.c
-@@ -361,6 +361,7 @@ hs_atomicread32(StgWord x)
- #endif
- }
- 
-+#if WORD_SIZE_IN_BITS == 64
- extern StgWord64 hs_atomicread64(StgWord x);
- StgWord64
- hs_atomicread64(StgWord x)
-@@ -371,6 +372,7 @@ hs_atomicread64(StgWord x)
-   return __sync_add_and_fetch((StgWord64 *) x, 0);
- #endif
- }
-+#endif
- 
- // AtomicWriteByteArrayOp_Int
- // Implies a full memory barrier (see compiler/prelude/primops.txt.pp)
-@@ -409,6 +411,7 @@ hs_atomicwrite32(StgWord x, StgWord val)
- #endif
- }
- 
-+#if WORD_SIZE_IN_BITS == 64
- extern void hs_atomicwrite64(StgWord x, StgWord64 val);
- void
- hs_atomicwrite64(StgWord x, StgWord64 val)
-@@ -420,3 +423,5 @@ hs_atomicwrite64(StgWord x, StgWord64 val)
- #endif
- }
- #endif
-+
-+#endif
--- 
-GitLab
-
diff --git a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
index 275444e828b7..7f074d17cbae 100644
--- a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
+++ b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
@@ -3,21 +3,9 @@ From: Daniel Kolesa <daniel@octaforge.org>
 Date: Tue, 5 Jan 2021 04:10:25 +0100
 Subject: [PATCH] fix up runtime for ppc64 BE ELFv2 + ensure it's used
 
----
- aclocal.m4                        |  2 +-
- configure                         |  2 +-
- libraries/ghci/GHCi/InfoTable.hsc | 36 ++++++++++++-------------------
- rts/Adjustor.c                    | 12 +++++------
- rts/AdjustorAsm.S                 |  2 +-
- rts/StgCRun.c                     |  4 ++--
- rts/StgCRunAsm.S                  |  2 +-
- 7 files changed, 26 insertions(+), 34 deletions(-)
-
-diff --git a/aclocal.m4 b/aclocal.m4
-index 41cecf0..ba08bd2 100644
---- a/aclocal.m4
-+++ b/aclocal.m4
-@@ -199,7 +199,7 @@ AC_DEFUN([FPTOOLS_SET_HASKELL_PLATFORM_V
+--- a/m4/fptools.m4
++++ b/m4/fptools.m4
+@@ -201,7 +201,7 @@
              test -z "[$]2" || eval "[$]2=ArchPPC"
              ;;
          powerpc64)
@@ -26,8 +14,6 @@ index 41cecf0..ba08bd2 100644
              ;;
          powerpc64le)
              test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
-diff --git a/configure b/configure
-index 183e661..8aae1bc 100755
 --- a/configure
 +++ b/configure
 @@ -10296,7 +10296,7 @@ $as_echo "done" >&6; }
@@ -39,8 +25,6 @@ index 183e661..8aae1bc 100755
              ;;
          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 ec3c18a..0359be7 100644
 --- a/libraries/ghci/GHCi/InfoTable.hsc
 +++ b/libraries/ghci/GHCi/InfoTable.hsc
 @@ -228,30 +228,22 @@ mkJumpToAddr a = case platform of
@@ -88,57 +72,28 @@ index ec3c18a..0359be7 100644
 
      ArchPPC64LE ->
          -- The ABI requires r12 to point to the function's entry point.
-diff --git a/rts/Adjustor.c b/rts/Adjustor.c
-index d360cfe..ab7ede7 100644
---- a/rts/Adjustor.c
-+++ b/rts/Adjustor.c
-@@ -49,7 +49,7 @@ Haskell side.
-
- #if defined(i386_HOST_ARCH)
- extern void adjustorCode(void);
--#elif defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
-+#elif defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
- // from AdjustorAsm.s
- // not declared as a function so that AIX-style
- // fundescs can never get in the way.
-@@ -278,7 +278,7 @@ __asm__("obscure_ccall_ret_code:\n\t"
+--- a/rts/adjustor/NativePowerPC.c
++++ b/rts/adjustor/NativePowerPC.c
+@@ -29,7 +29,7 @@
  extern void obscure_ccall_ret_code(void);
- #endif
+ #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: !!! !!!
-@@ -318,7 +318,7 @@ typedef struct AdjustorStub {
- } AdjustorStub;
- #endif
-
--#if defined(i386_HOST_ARCH) || defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
-+#if defined(i386_HOST_ARCH) || defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
- static int totalArgumentSize(char *typeString)
- {
-     int sz = 0;
-@@ -351,7 +351,7 @@ void*
+--- a/rts/adjustor/NativeIA64.c
++++ b/rts/adjustor/NativeIA64.c
+@@ -39,7 +39,7 @@
  createAdjustor(int cconv, StgStablePtr hptr,
                 StgFunPtr wptr,
                 char *typeString
 -#if !defined(powerpc_HOST_ARCH) && !defined(powerpc64_HOST_ARCH) && !defined(x86_64_HOST_ARCH)
 +#if !defined(powerpc_HOST_ARCH) && (!defined(powerpc64_HOST_ARCH) || (_CALL_ELF == 2)) && !defined(x86_64_HOST_ARCH)
-                   STG_UNUSED
+                STG_UNUSED
  #endif
-               )
-@@ -1271,7 +1271,7 @@ freeHaskellFunctionPtr(void* ptr)
-    return;
-  }
-  freeStablePtr(((StgStablePtr*)ptr)[1]);
--#elif defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
-+#elif defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
-  if ( ((AdjustorStub*)ptr)->code != (StgFunPtr) &adjustorCode ) {
-    errorBelch("freeHaskellFunctionPtr: not for me, guv! %p\n", ptr);
-    return;
-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 @@
@@ -150,20 +105,18 @@ index 2795b83..63cfe91 100644
  #if !(defined(powerpc_HOST_ARCH) && defined(linux_HOST_OS))
      /* The following code applies, with some differences,
         to all powerpc platforms except for powerpc32-linux,
-diff --git a/rts/StgCRun.c b/rts/StgCRun.c
-index 934926e..2ff8662 100644
 --- a/rts/StgCRun.c
 +++ b/rts/StgCRun.c
-@@ -726,7 +726,7 @@ StgRunIsImplementedInAssembler(void)
+@@ -635,7 +635,7 @@
     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)
+-#if defined(powerpc_HOST_ARCH)
++#if defined(powerpc_HOST_ARCH) && (_CALL_ELF != 2)
+
+ #define STG_GLOBAL ".globl "
 
- static void GNUC3_ATTRIBUTE(used)
- StgRunIsImplementedInAssembler(void)
-@@ -851,7 +851,7 @@ StgRunIsImplementedInAssembler(void)
+@@ -792,6 +792,6 @@
 
  #endif
 
@@ -171,9 +124,6 @@ index 934926e..2ff8662 100644
 +#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 9274a44..3b4fc33 100644
 --- a/rts/StgCRunAsm.S
 +++ b/rts/StgCRunAsm.S
 @@ -5,7 +5,7 @@
diff --git a/srcpkgs/ghc/template b/srcpkgs/ghc/template
index b8b16f67b433..c4bbb3e4e3b1 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=8.10.7
+version=9.0.2
 revision=1
 wrksrc="ghc-${version%[!0-9]}"
 build_style=gnu-configure
@@ -14,7 +14,7 @@ maintainer="slotThe <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=e3eef6229ce9908dfe1ea41436befb0455fefb1932559e860ad4c606b0d03c9d
+checksum=140e42b96346322d1a39eb17602bcdc76e292028ad4a69286b230bab188a9197
 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 90bdce8ae8ab36517c9cfb601f4e51cba4703bce Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sat, 19 Mar 2022 10:48:13 +0100
Subject: [PATCH 02/16] cabal-install: update to 3.6.3.0

Technically, this is only upgrading Cabal (the library) to 3.6.3.0, as
the installed version of cabal-install is still 3.6.2.0.  This is,
however, necessary for GHC 9.x support.
---
 srcpkgs/cabal-install/files/linux-9.0.2.json | 1 +
 srcpkgs/cabal-install/template               | 9 +++++----
 2 files changed, 6 insertions(+), 4 deletions(-)
 create mode 100644 srcpkgs/cabal-install/files/linux-9.0.2.json

diff --git a/srcpkgs/cabal-install/files/linux-9.0.2.json b/srcpkgs/cabal-install/files/linux-9.0.2.json
new file mode 100644
index 000000000000..f3cb6b4aeeb5
--- /dev/null
+++ b/srcpkgs/cabal-install/files/linux-9.0.2.json
@@ -0,0 +1 @@
+{"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/template b/srcpkgs/cabal-install/template
index d6d718709993..6a4b0ad7fc0e 100644
--- a/srcpkgs/cabal-install/template
+++ b/srcpkgs/cabal-install/template
@@ -1,6 +1,6 @@
 # Template file for 'cabal-install'
 pkgname=cabal-install
-version=3.6.2.0
+version=3.6.3.0
 revision=1
 wrksrc=cabal-Cabal-v${version}
 hostmakedepends="ghc curl tar which"
@@ -11,7 +11,7 @@ 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=dcf31e82cd85ea3236be18cc36c68058948994579ea7de18f99175821dbbcb64
+checksum=dea086acad6d9fe5fe22d838b95b4e988022e8519f38d41609119ea32bfb7466
 nopie_files="/usr/bin/cabal"
 nocross=yes
 
@@ -19,12 +19,13 @@ 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-8.10.7.json ;;
+		vsed -i -e 's/+ofd-locking/-ofd-locking/' bootstrap/linux-9.0.2.json ;;
 	esac
 }
 
 do_build() {
-	PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-8.10.7.json
+	cp "${FILESDIR}/linux-9.0.2.json" bootstrap/
+	PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-9.0.2.json
 }
 do_install() {
 	vbin _build/bin/cabal

From fca528d49c56be81a9fc18c0f74b3ad761698a27 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sat, 19 Mar 2022 12:54:36 +0100
Subject: [PATCH 03/16] stack: update stackage resolver to lts-19.0

Related: https://github.com/commercialhaskell/stack/pull/5559
---
 srcpkgs/stack/patches/ghc9.0.2.patch | 212 +++++++++++++++++++++++++++
 srcpkgs/stack/template               |   6 +-
 2 files changed, 215 insertions(+), 3 deletions(-)
 create mode 100644 srcpkgs/stack/patches/ghc9.0.2.patch

diff --git a/srcpkgs/stack/patches/ghc9.0.2.patch b/srcpkgs/stack/patches/ghc9.0.2.patch
new file mode 100644
index 000000000000..bdd77de58c6b
--- /dev/null
+++ b/srcpkgs/stack/patches/ghc9.0.2.patch
@@ -0,0 +1,212 @@
+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/template b/srcpkgs/stack/template
index 9e53b95ca633..15c38039684d 100644
--- a/srcpkgs/stack/template
+++ b/srcpkgs/stack/template
@@ -1,8 +1,8 @@
 # Template file for 'stack'
 pkgname=stack
 version=2.7.5
-revision=1
-_stackage="lts-18.14"
+revision=2
+_stackage="lts-19.0"
 hostmakedepends="cabal-install pkg-config unzip"
 makedepends="zlib-devel pcre-devel"
 depends="git gmp-devel iana-etc"
@@ -13,7 +13,7 @@ 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
- 78577c091074d78f9d6e09d6e31e7fc8ac2ddbb0dbc4ac65c606adcac4957d7f"
+ 6b9983f6448eb825231f65fe955d6d85516f482f0d26fee84183a1a79c6b0646"
 skip_extraction="cabal.config-${_stackage}"
 nocross=yes
 nopie_files="/usr/bin/stack"

From 9de9a979acc648b9901fbc319d5af00023176d9b Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 09:17:26 +0100
Subject: [PATCH 04/16] cgrep: bump for stackage lts-19.0

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

diff --git a/srcpkgs/cgrep/template b/srcpkgs/cgrep/template
index e57106f3fa26..1c54fe367396 100644
--- a/srcpkgs/cgrep/template
+++ b/srcpkgs/cgrep/template
@@ -1,9 +1,9 @@
 # Template file for 'cgrep'
 pkgname=cgrep
 version=6.7.1
-revision=2
+revision=3
 build_style=haskell-stack
-stackage="lts-18.15"
+stackage="lts-19.0"
 makedepends="pcre-devel pkg-config"
 short_desc="Context-aware grep for source codes"
 maintainer="slotThe <soliditsallgood@mailbox.org>"

From 39baaa9e9822341c8c1d8a90f62843a60692c679 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 09:23:26 +0100
Subject: [PATCH 05/16] git-mediate: bump for stackage lts-19.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 0c9ec10241e5..705df7843b8e 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=2
+revision=3
 build_style=haskell-stack
-stackage="lts-18.14"
+stackage="lts-19.0"
 depends="git"
 short_desc="Tool to help resolving git conflicts"
 maintainer="Peter Wang <novalazy@gmail.com>"

From 47024f61e647b0f4fa02b273516755d86fda46a6 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 09:51:34 +0100
Subject: [PATCH 06/16] hlint: update to 3.3.6

---
 srcpkgs/hlint/template | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/srcpkgs/hlint/template b/srcpkgs/hlint/template
index fd72c1bbea58..0109be25805f 100644
--- a/srcpkgs/hlint/template
+++ b/srcpkgs/hlint/template
@@ -1,16 +1,16 @@
 # Template file for 'hlint'
 pkgname=hlint
-version=3.2.7
-revision=2
+version=3.3.6
+revision=1
 build_style=haskell-stack
-stackage="lts-18.14"
+stackage="lts-19.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=fcdeefcc79a52206add44b409abcab48c5fe2adff9d5aff077acbc43c702b54e
+checksum=7d536c03f77a0c259efb2b00b525ef34578ca8a4a95ccb412708e8c7172e2e6a
 nocross=yes # Can't yet cross compile Haskell
 nopie_files="/usr/bin/hlint"
 

From 9187ce00b74630b99af08af7afd8a17e6fc0fbea Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 11:38:44 +0100
Subject: [PATCH 07/16] pandoc: update to 2.17.1.1

+ Fix compilation of `pandoc-crossref` for musl systems.
+ Remove the `system-lua` flag, as `pkg-config` already implies it [1].

Related: https://github.com/lierdakil/pandoc-crossref/issues/342
[1]: https://github.com/hslua/hslua/blob/main/lua/README.md?plain=1#L39-L40
---
 srcpkgs/pandoc/files/pandoc-crossref.cabal | 230 +++++++++++++++++++++
 srcpkgs/pandoc/template                    |  43 ++--
 2 files changed, 249 insertions(+), 24 deletions(-)
 create mode 100644 srcpkgs/pandoc/files/pandoc-crossref.cabal

diff --git a/srcpkgs/pandoc/files/pandoc-crossref.cabal b/srcpkgs/pandoc/files/pandoc-crossref.cabal
new file mode 100644
index 000000000000..39f2b9e7bde0
--- /dev/null
+++ b/srcpkgs/pandoc/files/pandoc-crossref.cabal
@@ -0,0 +1,230 @@
+cabal-version: 2.0
+
+-- This file has been generated from package.yaml by hpack version 0.34.6.
+--
+-- see: https://github.com/sol/hpack
+--
+-- hash: 20655cd6263e9fe7e5737ee81b093c8c6f5eae67e260ddd3a821ac6ef5e35e69
+
+name:           pandoc-crossref
+version:        0.3.13.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
+homepage:       https://github.com/lierdakil/pandoc-crossref#readme
+bug-reports:    https://github.com/lierdakil/pandoc-crossref/issues
+author:         Nikolay Yakimov
+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
+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/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/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
+
+source-repository head
+  type: git
+  location: https://github.com/lierdakil/pandoc-crossref
+
+flag enable_flaky_tests
+  description: Some tests rely on specific behaviour of pandoc, which may change between minor versions. These are still useful indicators for the developer, but not necessarily indicating there's a problem with the package itself. Enable if you know what you are doing.
+  manual: True
+  default: False
+
+library
+  exposed-modules:
+      Text.Pandoc.CrossRef
+  other-modules:
+      Text.Pandoc.CrossRef.References
+      Text.Pandoc.CrossRef.References.Blocks
+      Text.Pandoc.CrossRef.References.List
+      Text.Pandoc.CrossRef.References.Refs
+      Text.Pandoc.CrossRef.References.Types
+      Text.Pandoc.CrossRef.Util.CodeBlockCaptions
+      Text.Pandoc.CrossRef.Util.CustomLabels
+      Text.Pandoc.CrossRef.Util.Meta
+      Text.Pandoc.CrossRef.Util.ModifyMeta
+      Text.Pandoc.CrossRef.Util.Options
+      Text.Pandoc.CrossRef.Util.Settings
+      Text.Pandoc.CrossRef.Util.Settings.Gen
+      Text.Pandoc.CrossRef.Util.Settings.Template
+      Text.Pandoc.CrossRef.Util.Template
+      Text.Pandoc.CrossRef.Util.Util
+  hs-source-dirs:
+      lib
+      lib-internal
+  ghc-options: -Wall
+  build-depends:
+      base >=4.11 && <5
+    , containers >=0.1 && <0.7
+    , data-default >=0.4 && <0.8
+    , directory >=1 && <1.4
+    , filepath >=1.1 && <1.5
+    , 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.*
+    , syb >=0.4 && <0.8
+    , template-haskell >=2.7.0.0 && <3.0.0.0
+    , text >=1.2.2 && <1.3
+    , utility-ht >=0.0.11 && <0.1.0
+  default-language: Haskell2010
+
+executable pandoc-crossref
+  main-is: pandoc-crossref.hs
+  other-modules:
+      ManData
+  hs-source-dirs:
+      src
+  ghc-options: -Wall -threaded
+  build-depends:
+      base >=4.11 && <5
+    , deepseq ==1.4.*
+    , gitrev >=1.3.1 && <1.4
+    , open-browser ==0.2.*
+    , optparse-applicative >=0.13 && <0.17
+    , pandoc >=2.10 && <2.18
+    , pandoc-crossref
+    , pandoc-types >=1.21 && <1.23
+    , template-haskell >=2.7.0.0 && <3.0.0.0
+    , temporary >=1.2 && <1.4
+    , text >=1.2.2 && <1.3
+  default-language: Haskell2010
+
+test-suite test-integrative
+  type: exitcode-stdio-1.0
+  main-is: test-integrative.hs
+  hs-source-dirs:
+      test
+  ghc-options: -Wall -fno-warn-unused-do-bind -threaded
+  build-depends:
+      base >=4.11 && <5
+    , directory >=1 && <1.4
+    , filepath >=1.1 && <1.5
+    , hspec >=2.4.4 && <3
+    , pandoc >=2.10 && <2.18
+    , pandoc-crossref
+    , pandoc-types >=1.21 && <1.23
+    , text >=1.2.2 && <1.3
+  if flag(enable_flaky_tests)
+    cpp-options: -DFLAKY
+  default-language: Haskell2010
+
+test-suite test-pandoc-crossref
+  type: exitcode-stdio-1.0
+  main-is: test-pandoc-crossref.hs
+  other-modules:
+      Native
+      Paths_pandoc_crossref
+  autogen-modules:
+      Paths_pandoc_crossref
+  hs-source-dirs:
+      test
+  ghc-options: -Wall -fno-warn-unused-do-bind -threaded
+  build-depends:
+      base >=4.11 && <5
+    , containers >=0.1 && <0.7
+    , data-default >=0.4 && <0.8
+    , 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-crossref
+    , pandoc-types >=1.21 && <1.23
+    , text >=1.2.2 && <1.3
+  if flag(enable_flaky_tests)
+    cpp-options: -DFLAKY
+  default-language: Haskell2010
+
+benchmark simple
+  type: exitcode-stdio-1.0
+  main-is: bench-simple.hs
+  other-modules:
+      Native
+  hs-source-dirs:
+      test
+  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
+    , pandoc-crossref
+    , pandoc-types >=1.21 && <1.23
+    , text >=1.2.2 && <1.3
+  default-language: Haskell2010
diff --git a/srcpkgs/pandoc/template b/srcpkgs/pandoc/template
index 8628b1d1f3c2..9bdf32ef3c53 100644
--- a/srcpkgs/pandoc/template
+++ b/srcpkgs/pandoc/template
@@ -1,18 +1,18 @@
 # Template file for 'pandoc'
 pkgname=pandoc
 # Keep in sync with http://www.stackage.org/lts
-version=2.14.0.3
-revision=3
-_sidenote_version=0.20.0.0
+version=2.17.1.1
+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
 create_wrksrc=yes
 build_style=haskell-stack
-stackage="lts-18.14"
+stackage="lts-19.0"
 make_build_args="
- --flag pandoc:embed_data_files --flag=hslua:system-lua
- --flag=hslua:pkg-config"
+ --flag pandoc:embed_data_files
+ --flag=lua:pkg-config"
 hostmakedepends="pkg-config unzip wget"
 makedepends="zlib-devel lua53-devel tar"
 short_desc="Universal converter between markup formats"
@@ -21,33 +21,28 @@ license="GPL-2.0-or-later, BSD-3-Clause"
 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"
-checksum="82e3f55bff3059bf30cf532e93d9876c9e3599aa4eafae9c907fe75a4430eddd
- 91f8e96d8470722d677d31d4bbf16c2ac6902567d818ed7a2715bad2617a4cdb
- be8485023fce236b5b915f2f6074f7b0470a2040f84cdd137c5227f1b4c98465"
-subpackages="pandoc-sidenote"
-nocross=yes
-nopie_files="
- /usr/bin/pandoc
- /usr/bin/pandoc-sidenote"
-
-# pandoc-crossref is currently broken on musl. See lierdakil/pandoc-crossref#342 and commercialhaskell/stack#5683
-if [ "$XBPS_TARGET_LIBC" != "musl" ]; then
-	distfiles+="
+ 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+="
+checksum="649ec528d1413130c5ce304b826ff473b3696269eea8834d908589e775bd1ad1
+ c39dd7343b9cb4dc5b1c91c9e47c3d357874e9e1a30b8d377bbea0b1d50323b2
+ be8485023fce236b5b915f2f6074f7b0470a2040f84cdd137c5227f1b4c98465
  94540325c9c98ae4d5199c634bf402ffa41e3c5b020d7207daef90fd9e224fb4
  b9c7195b69b1662a286d2c28a55fafdcb693c522ba5eb54a11b1d0a4e92eaa81"
-	nopie_files+="
- /usr/bin/pandoc-crossref"
-	subpackages+="
+subpackages="
+ pandoc-sidenote
  pandoc-crossref"
-fi
+nocross=yes
+nopie_files="
+ /usr/bin/pandoc
+ /usr/bin/pandoc-sidenote
+ /usr/bin/pandoc-crossref"
 
 post_extract() {
 	sed -i 's/tasty .*,/tasty,/' pandoc-*/pandoc.cabal
 	sed -i 's/zip-archive .*,/zip-archive,/' pandoc-*/pandoc.cabal
+	# See https://github.com/lierdakil/pandoc-crossref/issues/342#issuecomment-1073256586
+	cp "${FILESDIR}/pandoc-crossref.cabal" pandoc-crossref-${_crossref_version}
 }
 
 post_install() {

From 96ca211c88712bf81839c41232703ec4fb89208e Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 12:15:01 +0100
Subject: [PATCH 08/16] shellcheck: bump for stackage lts-19.0

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

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

From d7c5bd5bc2bf3506928f1ec886dfdd3fb90799b9 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 12:52:11 +0100
Subject: [PATCH 09/16] hoogle: update to 5.0.18.3

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

diff --git a/srcpkgs/hoogle/template b/srcpkgs/hoogle/template
index 4c3e80186494..dc487cab4017 100644
--- a/srcpkgs/hoogle/template
+++ b/srcpkgs/hoogle/template
@@ -1,16 +1,16 @@
 # Template file for 'hoogle'
 pkgname=hoogle
-version=5.0.18.2
-revision=2
+version=5.0.18.3
+revision=1
 build_style=haskell-stack
-stackage="lts-18.14"
+stackage="lts-19.0"
 makedepends="zlib-devel"
 short_desc="Haskell API search engine"
 maintainer="Inokentiy Babushkin <twk@twki.de>"
 license="BSD-3-Clause"
 homepage="https://hoogle.haskell.org/"
 distfiles="https://github.com/ndmitchell/${pkgname}/archive/v${version}.tar.gz"
-checksum=9f8f0afde52fe602100ab7828fad230c2f5e94050dda9fe1e2a9f0a93f7fe617
+checksum=a2765fcbaf99fe67a64ef29fe50e69fb380cce07807cddeb0836c148b1ae472b
 nopie_files="/usr/bin/hoogle"
 nocross=yes # Can't yet cross compile Haskell
 

From 3cc03d6b11b7f6ef4e6a8b8805cf4ee979b4badc Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 13:33:12 +0100
Subject: [PATCH 10/16] xmobar: update to 0.42

Also enable most flags during compilation in order to be less surprising
with regards to what features xmobar supports out of the box.
---
 srcpkgs/xmobar/files/stack.yaml | 2 +-
 srcpkgs/xmobar/template         | 8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/xmobar/files/stack.yaml b/srcpkgs/xmobar/files/stack.yaml
index 47544eb729d8..7e0956374142 100644
--- a/srcpkgs/xmobar/files/stack.yaml
+++ b/srcpkgs/xmobar/files/stack.yaml
@@ -1,4 +1,4 @@
-resolver: lts-18.13
+resolver: lts-19.0
 packages:
 - .
 extra-deps:
diff --git a/srcpkgs/xmobar/template b/srcpkgs/xmobar/template
index b97c9f268d68..6a12a9ed7055 100644
--- a/srcpkgs/xmobar/template
+++ b/srcpkgs/xmobar/template
@@ -1,7 +1,7 @@
 # Template file for 'xmobar'
 pkgname=xmobar
-version=0.39
-revision=2
+version=0.42
+revision=1
 build_style=haskell-stack
 hostmakedepends="pkg-config"
 makedepends="libX11-devel libXinerama-devel libXrandr-devel libXScrnSaver-devel
@@ -15,10 +15,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=46f37b90dd3ba3348dbe7de716b88606c7f0f0dd22a3580176b5cd089c1b36cc
+checksum=53f4a06d79c3db32ef1a498ec7b764b17d03ebf9bca3126c6b8259595492769b
 build_options="dbus threaded utf8 xft mpd mpris inotify iwlib alsa datezone
  xpm uvmeter weather nl80211"
-build_options_default="threaded utf8 xft inotify nl80211 datezone weather xpm"
+build_options_default="threaded utf8 xft inotify nl80211 datezone weather xpm alsa mpris mpd dbus"
 nopie_files="/usr/bin/xmobar"
 nocross=yes
 vopt_hflag() {

From d9425e49584c01d9b19fb4231d327bb36a5b15f7 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 18:09:34 +0100
Subject: [PATCH 11/16] hledger: update to 1.25

---
 srcpkgs/hledger/template | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/hledger/template b/srcpkgs/hledger/template
index fdcab180a6de..32d39207fd82 100644
--- a/srcpkgs/hledger/template
+++ b/srcpkgs/hledger/template
@@ -1,8 +1,9 @@
 # Template file for 'hledger'
 pkgname=hledger
-version=1.23
-revision=2
+version=1.25
+revision=1
 build_style=haskell-stack
+stackage="lts-19.0"
 makedepends="zlib-devel ncurses-devel"
 short_desc="Simple, precise, plain text accounting"
 maintainer="Inokentiy Babushkin <twk@twki.de>"
@@ -10,7 +11,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/${pkgname}/archive/${version}.tar.gz"
-checksum=7252d78aafbae488b113a6350518a702186cacc4e746cec2b31f8321b4dddcb4
+checksum=4c947c2a7d243d2a56efc1fa02994a118e995df025a412f6d2daeadfd78338ee
 nopie_files="/usr/bin/hledger"
 nocross=yes # Can't yet cross compile Haskell
 

From 54d9f8a086bfbb6efd1ffe6d3d8fb8a4666882fe Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Mon, 21 Mar 2022 08:19:29 +0100
Subject: [PATCH 12/16] haskell-language-server: update to 1.6.1.0

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

diff --git a/srcpkgs/haskell-language-server/template b/srcpkgs/haskell-language-server/template
index 0182c9b95757..0c7b2187c5ca 100644
--- a/srcpkgs/haskell-language-server/template
+++ b/srcpkgs/haskell-language-server/template
@@ -1,16 +1,16 @@
 # Template file for 'haskell-language-server'
 pkgname=haskell-language-server
-version=1.4.0
+version=1.6.1.0
 revision=1
 build_style="haskell-stack"
-make_build_args="--stack-yaml stack-8.10.7.yaml"
+make_build_args="--stack-yaml stack-9.0.2.yaml"
 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>"
 license="Apache-2.0"
 homepage="https://github.com/haskell/haskell-language-server"
 distfiles="https://github.com/haskell/haskell-language-server/archive/${version}.tar.gz"
-checksum=c5d7dbf7fae9aa3ed2c1184b49e82d8ac623ca786494ef6602cfe11735d28db0
+checksum=e5c336ad2de8d021c882cdac5bbc26bf6427df8d2a5bd244c05cf18296a9bfdc
 nopie_files="
  /usr/bin/haskell-language-server
  /usr/bin/haskell-language-server-wrapper

From 4e351532feef4a3a0694a2d9f63e0ba7c2f59acc Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Mon, 21 Mar 2022 15:48:58 +0100
Subject: [PATCH 13/16] git-annex: update to 10.20220222

---
 srcpkgs/git-annex/template | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/git-annex/template b/srcpkgs/git-annex/template
index 1cf2ab14789f..7b788bc5861e 100644
--- a/srcpkgs/git-annex/template
+++ b/srcpkgs/git-annex/template
@@ -1,8 +1,9 @@
 # Template file for 'git-annex'
 pkgname=git-annex
-version=8.20211028
+version=10.20220222
 revision=1
 build_style=haskell-stack
+stackage="lts-19.0"
 makedepends="curl file-devel gnupg2 gnutls-devel gsasl-devel libxml2-devel
  lsof rsync git ncurses-devel"
 # depends are utilities required by git-annex
@@ -12,7 +13,7 @@ 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="http://git-annex.branchable.com"
 distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz"
-checksum=cf5efe15e68d467daad673bec10037a27a78da7e4af9b4a85e10980bd90ace2d
+checksum=1fb9f75a83feb16f7515122135c0f3abe6aa77544d8d778792296cbc053d2c85
 nopie_files="/usr/bin/git-annex"
 nocross=yes
 

From 494f48fa47ee1ae65e04b3d9922661558b1fe1cb Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Wed, 23 Mar 2022 09:14:58 +0100
Subject: [PATCH 14/16] darcs: bump for stackage lts-19.0

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

diff --git a/srcpkgs/darcs/files/stack.yaml b/srcpkgs/darcs/files/stack.yaml
index 5ae0f5313b8d..6e459703764a 100644
--- a/srcpkgs/darcs/files/stack.yaml
+++ b/srcpkgs/darcs/files/stack.yaml
@@ -1,7 +1,4 @@
-resolver: lts-18.14
+resolver: lts-19.0
 packages:
 - .
-extra-deps:
-- graphviz-2999.20.1.0
-- constraints-0.12@sha256:7edf1e72a92d0a6761da634f08be9123dfcc0dcec11c269cbf465a09721c3481,2322
-- cryptonite-0.27@sha256:c3a9c8ce11e654a9d5bee827b089d4b50587272828d0c52a85362a58667a916c,18163
+allow-newer: true
diff --git a/srcpkgs/darcs/template b/srcpkgs/darcs/template
index f9fcac534d46..15a8f71f9021 100644
--- a/srcpkgs/darcs/template
+++ b/srcpkgs/darcs/template
@@ -1,7 +1,7 @@
 # Template file for 'darcs'
 pkgname=darcs
 version=2.16.5
-revision=2
+revision=3
 build_style=haskell-stack
 hostmakedepends="unzip"
 makedepends="zlib-devel libcurl-devel ncurses-devel"

From 5682e07e9189b3888f876337db37ede1c5ea42c3 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Thu, 24 Mar 2022 11:50:45 +0100
Subject: [PATCH 15/16] debug-me: bump for stackage lts-19.0

---
 srcpkgs/debug-me/files/stack.yaml        |  8 +++-----
 srcpkgs/debug-me/patches/ghc8.10.4.patch | 11 -----------
 srcpkgs/debug-me/template                |  2 +-
 3 files changed, 4 insertions(+), 17 deletions(-)

diff --git a/srcpkgs/debug-me/files/stack.yaml b/srcpkgs/debug-me/files/stack.yaml
index ad8b055bb33e..4363ebc5e4f9 100644
--- a/srcpkgs/debug-me/files/stack.yaml
+++ b/srcpkgs/debug-me/files/stack.yaml
@@ -1,8 +1,6 @@
 packages:
 - '.'
-resolver: lts-18.14
+resolver: lts-19.0
 extra-deps:
-- posix-pty-0.2.1.1
-- graphviz-2999.20.1.0
-- sandi-0.5
-- protobuf-0.2.1.3@sha256:d8ed3c73027c6b7e7583c6a94ee1835beee8a755a875b06bbf51bc667d53ab69,3048
+  - posix-pty-0.2.2@sha256:dd777df258b3b95fe01612c1204cde972ad1323c3289591ecc844ecb29e55e2b,1826
+  - sandi-0.5@sha256:b278d072ca717706ea38f9bd646e023f7f2576a778fb43565b434f93638849aa,3010
diff --git a/srcpkgs/debug-me/patches/ghc8.10.4.patch b/srcpkgs/debug-me/patches/ghc8.10.4.patch
index bfcff16a4438..dc9be027822f 100644
--- a/srcpkgs/debug-me/patches/ghc8.10.4.patch
+++ b/srcpkgs/debug-me/patches/ghc8.10.4.patch
@@ -20,14 +20,3 @@
  		defaultSettings
 
  checkEnv :: ServerOpts -> IO ServerOpts
---- a/debug-me.cabal
-+++ b/debug-me.cabal
-@@ -64,7 +64,7 @@
-     , stm-chans (>= 3.0)
-     , posix-pty (>= 0.2.1)
-     , terminal-size (>= 0.3)
--    , aeson (>= 0.11 && < 1.5)
-+    , aeson (>= 0.11 && < 1.6)
-     , sandi (>= 0.4)
-     , text (>= 1.2.2)
-     , optparse-applicative (>= 0.12)
diff --git a/srcpkgs/debug-me/template b/srcpkgs/debug-me/template
index 86ac0037311a..298b38de58cd 100644
--- a/srcpkgs/debug-me/template
+++ b/srcpkgs/debug-me/template
@@ -1,7 +1,7 @@
 # Template file for 'debug-me'
 pkgname=debug-me
 version=1.20200820
-revision=3
+revision=4
 build_style=haskell-stack
 makedepends="zlib-devel"
 short_desc="Secure remote debugging"

From e624a2e6fd73d3ec4f21cc0e13a2b7a93b1c0bfd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sigrid=20Solveig=20Hafl=C3=ADnud=C3=B3ttir?=
 <ftrvxmtrx@gmail.com>
Date: Thu, 24 Mar 2022 09:27:25 +0100
Subject: [PATCH 16/16] ghc, ghc-bin: Add aarch64* support

---
 srcpkgs/ghc-bin/template | 22 ++++++++++++++++------
 srcpkgs/ghc/template     |  8 ++++++++
 2 files changed, 24 insertions(+), 6 deletions(-)

diff --git a/srcpkgs/ghc-bin/template b/srcpkgs/ghc-bin/template
index 3949ee3fa1aa..8a725a84e76a 100644
--- a/srcpkgs/ghc-bin/template
+++ b/srcpkgs/ghc-bin/template
@@ -1,8 +1,8 @@
 # Template file for 'ghc-bin'
 pkgname=ghc-bin
-version=8.10.7
+version=9.0.2
 revision=1
-archs="i686 x86_64* ppc64le* ppc64"
+archs="i686 x86_64* ppc64le* ppc64 aarch64*"
 wrksrc="ghc-${version%[!0-9]}"
 hostmakedepends="perl libffi libnuma"
 depends="ncurses perl gcc libffi-devel gmp-devel"
@@ -15,8 +15,8 @@ noshlibprovides=yes
 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=ced9870ea351af64fb48274b81a664cdb6a9266775f1598a79cbb6fdd5770a23
+	distfiles="https://downloads.haskell.org/ghc/${version%[!0-9]}/ghc-${version}-x86_64-deb9-linux.tar.xz"
+	checksum=805f5628ce6cec678ba77ff48c924831ebdf75ec2c66368e8935a618913a150e
 	;;
 x86_64-musl)
 	# create with "make binary-dist"
@@ -24,8 +24,8 @@ x86_64-musl)
 	checksum=52f6492f39f13890f4ecd83784724ae9fff7a02fdc624a56c49872c912608a50
 	;;
 i686)
-	distfiles="https://downloads.haskell.org/~ghc/${version%[!0-9]}/ghc-${version}-i386-deb9-linux.tar.xz"
-	checksum=fbfc1ef194f4e7a4c0da8c11cc69b17458a4b928b609b3622c97acc4acd5c5ab
+	distfiles="https://downloads.haskell.org/ghc/${version%[!0-9]}/ghc-${version}-i386-deb9-linux.tar.xz"
+	checksum=fdeb9f8928fbe994064778a8e1e85bb1a58a6cd3dd7b724fcc2a1dcfda6cad47
 	;;
 ppc64le)
 	distfiles="https://alpha.de.repo.voidlinux.org/distfiles/ghc-${version}-powerpc64le-void-linux.tar.xz"
@@ -39,6 +39,16 @@ ppc64)
 	distfiles="https://alpha.de.repo.voidlinux.org/distfiles/ghc-${version}-powerpc64-void-linux.tar.xz"
 	checksum=b8578e602abd4b453845303fb9cfed0b2186f86f60e3aa45869026ea833726c8
 	;;
+aarch64)
+	distfiles="https://alpha.de.repo.voidlinux.org/distfiles/ghc-${version}-aarch64-void-linux.tar.xz"
+	checksum=429a84d2850357e305a017c7d3eb1cb7cf838e900e52920d555de39d9c59b8c6
+	depends+=" llvm"
+	;;
+aarch64-musl)
+	distfiles="https://alpha.de.repo.voidlinux.org/distfiles/ghc-${version}-aarch64-void-linux-musl.tar.xz"
+	checksum=f2c37a5ed028eebd3e69a22ce989f5cdf6f84a408871ff0933ac532414c6c273
+	depends+=" llvm"
+	;;
 *)
 	broken="No distfiles available for this target"
 	;;
diff --git a/srcpkgs/ghc/template b/srcpkgs/ghc/template
index c4bbb3e4e3b1..d0b1600987be 100644
--- a/srcpkgs/ghc/template
+++ b/srcpkgs/ghc/template
@@ -54,6 +54,14 @@ elif [ "${XBPS_MACHINE%-*}" != "${XBPS_TARGET_MACHINE%-*}" ]; then
 	configure_args+=" --host=${XBPS_TRIPLET} --target=${XBPS_CROSS_TRIPLET}"
 fi
 
+case "$XBPS_TARGET_MACHINE" in
+aarch64*)
+	# GHC uses LLVM to generate code on aarch64
+	hostmakedepends+=" llvm"
+	depends+=" llvm"
+	;;
+esac
+
 # Recent safe to use tarball
 # GHC's bundled tarball is from 2017, buggy on some archs
 _ffi_rev=4d6d2866ae43e55325e8ee96561221804602cd7a

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

* Re: [PR PATCH] [Updated] [WIP] Update to GHC 9.0.2/Stackage LTS-19.0
  2022-03-23  7:20 [PR PATCH] [WIP] Update to GHC 9.0.2/Stackage LTS-19.0 slotThe
                   ` (3 preceding siblings ...)
  2022-03-24 10:51 ` slotThe
@ 2022-03-24 11:34 ` slotThe
  2022-03-24 13:37 ` slotThe
                   ` (16 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: slotThe @ 2022-03-24 11:34 UTC (permalink / raw)
  To: ml

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

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

https://github.com/slotThe/void-packages stackage-19
https://github.com/void-linux/void-packages/pull/36292

[WIP] Update to GHC 9.0.2/Stackage LTS-19.0
And so... the ~~hunt~~ fun begins again!

### Core packages to bump

- [x] ghc
- [ ] ghc-bin
    - [ ] x86_64-musl
    cc. @q66 for the following
    - [ ] ppc64le
    - [ ] ppc64le-musl
    - [x] aarch64 [Link](https://ftrv.se/_/void/ghc-9.0.2/ghc-9.0.2-aarch64-void-linux.tar.xz) **Not uploaded yet**
    - [x] aarch64-musl [Link](https://ftrv.se/_/void/ghc-9.0.2/ghc-9.0.2-aarch64-void-linux-musl.tar.xz) **Not uploaded yet**
- [x] cabal-install
- [x] stack

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

Most of these are already done, things should probably go smoothly as 9.0.x does not contain any big breaking changes.

- [x] git-mediate
- [ ] kmonad
- [x] cgrep
- [x] debug-me
- [x] hlint
- [x] hoogle
- [x] darcs
- [x] shellcheck
- [x] git-annex
- [x] hledger
- [x] pandoc (contains a fix for `pandoc-crossref` on musl \o/)
- [x] xmobar
- [x] haskell-language-server

### Other things to do 

- [ ] Either incorporate https://github.com/void-linux/void-packages/pull/36193 into this PR or merge it first and then rebuild GHC for aarch64 and aarch64-musl; cc. @ftrvxmtrx

[ci skip]

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

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-stackage-19-36292.patch --]
[-- Type: text/x-diff, Size: 62640 bytes --]

From 5ce0a7ea17703bcfb1fc7b4007efef9e20b2d395 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Fri, 18 Mar 2022 17:33:46 +0100
Subject: [PATCH 01/16] ghc: update to 9.0.2

---
 .../ghc/patches/no-atomic-64-on-32bit.patch   | 58 -------------
 srcpkgs/ghc/patches/ppc64-be-elfv2.patch      | 86 ++++---------------
 srcpkgs/ghc/template                          |  4 +-
 3 files changed, 20 insertions(+), 128 deletions(-)
 delete mode 100644 srcpkgs/ghc/patches/no-atomic-64-on-32bit.patch

diff --git a/srcpkgs/ghc/patches/no-atomic-64-on-32bit.patch b/srcpkgs/ghc/patches/no-atomic-64-on-32bit.patch
deleted file mode 100644
index 05ca275ea9df..000000000000
--- a/srcpkgs/ghc/patches/no-atomic-64-on-32bit.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 5c5aa87d50dc4ea97e76e13f285a7b5dd71fcd88 Mon Sep 17 00:00:00 2001
-From: Ilias Tsitsimpis <iliastsi@debian.org>
-Date: Sun, 1 Mar 2020 16:25:13 +0200
-Subject: [PATCH] Do not define hs_atomic{read,write}64() on non-64bit
-
-Do not define hs_atomicread64() and hs_atomicwrite64() on machines where
-WORD_SIZE_IN_BITS is less than 64, just like we do with the rest of the atomic
-functions which work on 64-bit values.
-
-Without this, compilation fails on MIPSel and PowerPC with the following error:
-
-/usr/bin/ld: /<<PKGBUILDDIR>>/libraries/ghc-prim/dist-install/build/libHSghc-prim-0.5.3_p.a(atomic.p_o): in function `hs_atomicread64':
-atomic.c:(.text.hs_atomicread64+0x8): undefined reference to `__sync_add_and_fetch_8'
-/usr/bin/ld: /<<PKGBUILDDIR>>/libraries/ghc-prim/dist-install/build/libHSghc-prim-0.5.3_p.a(atomic.p_o): in function `hs_atomicwrite64':
-atomic.c:(.text.hs_atomicwrite64+0x38): undefined reference to `__sync_bool_compare_and_swap_8'
-
-Fixes #17886.
----
- libraries/ghc-prim/cbits/atomic.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/libraries/ghc-prim/cbits/atomic.c b/libraries/ghc-prim/cbits/atomic.c
-index ac2e608ec2..01037d70ee 100644
---- a/libraries/ghc-prim/cbits/atomic.c
-+++ b/libraries/ghc-prim/cbits/atomic.c
-@@ -361,6 +361,7 @@ hs_atomicread32(StgWord x)
- #endif
- }
- 
-+#if WORD_SIZE_IN_BITS == 64
- extern StgWord64 hs_atomicread64(StgWord x);
- StgWord64
- hs_atomicread64(StgWord x)
-@@ -371,6 +372,7 @@ hs_atomicread64(StgWord x)
-   return __sync_add_and_fetch((StgWord64 *) x, 0);
- #endif
- }
-+#endif
- 
- // AtomicWriteByteArrayOp_Int
- // Implies a full memory barrier (see compiler/prelude/primops.txt.pp)
-@@ -409,6 +411,7 @@ hs_atomicwrite32(StgWord x, StgWord val)
- #endif
- }
- 
-+#if WORD_SIZE_IN_BITS == 64
- extern void hs_atomicwrite64(StgWord x, StgWord64 val);
- void
- hs_atomicwrite64(StgWord x, StgWord64 val)
-@@ -420,3 +423,5 @@ hs_atomicwrite64(StgWord x, StgWord64 val)
- #endif
- }
- #endif
-+
-+#endif
--- 
-GitLab
-
diff --git a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
index 275444e828b7..7f074d17cbae 100644
--- a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
+++ b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
@@ -3,21 +3,9 @@ From: Daniel Kolesa <daniel@octaforge.org>
 Date: Tue, 5 Jan 2021 04:10:25 +0100
 Subject: [PATCH] fix up runtime for ppc64 BE ELFv2 + ensure it's used
 
----
- aclocal.m4                        |  2 +-
- configure                         |  2 +-
- libraries/ghci/GHCi/InfoTable.hsc | 36 ++++++++++++-------------------
- rts/Adjustor.c                    | 12 +++++------
- rts/AdjustorAsm.S                 |  2 +-
- rts/StgCRun.c                     |  4 ++--
- rts/StgCRunAsm.S                  |  2 +-
- 7 files changed, 26 insertions(+), 34 deletions(-)
-
-diff --git a/aclocal.m4 b/aclocal.m4
-index 41cecf0..ba08bd2 100644
---- a/aclocal.m4
-+++ b/aclocal.m4
-@@ -199,7 +199,7 @@ AC_DEFUN([FPTOOLS_SET_HASKELL_PLATFORM_V
+--- a/m4/fptools.m4
++++ b/m4/fptools.m4
+@@ -201,7 +201,7 @@
              test -z "[$]2" || eval "[$]2=ArchPPC"
              ;;
          powerpc64)
@@ -26,8 +14,6 @@ index 41cecf0..ba08bd2 100644
              ;;
          powerpc64le)
              test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
-diff --git a/configure b/configure
-index 183e661..8aae1bc 100755
 --- a/configure
 +++ b/configure
 @@ -10296,7 +10296,7 @@ $as_echo "done" >&6; }
@@ -39,8 +25,6 @@ index 183e661..8aae1bc 100755
              ;;
          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 ec3c18a..0359be7 100644
 --- a/libraries/ghci/GHCi/InfoTable.hsc
 +++ b/libraries/ghci/GHCi/InfoTable.hsc
 @@ -228,30 +228,22 @@ mkJumpToAddr a = case platform of
@@ -88,57 +72,28 @@ index ec3c18a..0359be7 100644
 
      ArchPPC64LE ->
          -- The ABI requires r12 to point to the function's entry point.
-diff --git a/rts/Adjustor.c b/rts/Adjustor.c
-index d360cfe..ab7ede7 100644
---- a/rts/Adjustor.c
-+++ b/rts/Adjustor.c
-@@ -49,7 +49,7 @@ Haskell side.
-
- #if defined(i386_HOST_ARCH)
- extern void adjustorCode(void);
--#elif defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
-+#elif defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
- // from AdjustorAsm.s
- // not declared as a function so that AIX-style
- // fundescs can never get in the way.
-@@ -278,7 +278,7 @@ __asm__("obscure_ccall_ret_code:\n\t"
+--- a/rts/adjustor/NativePowerPC.c
++++ b/rts/adjustor/NativePowerPC.c
+@@ -29,7 +29,7 @@
  extern void obscure_ccall_ret_code(void);
- #endif
+ #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: !!! !!!
-@@ -318,7 +318,7 @@ typedef struct AdjustorStub {
- } AdjustorStub;
- #endif
-
--#if defined(i386_HOST_ARCH) || defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
-+#if defined(i386_HOST_ARCH) || defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
- static int totalArgumentSize(char *typeString)
- {
-     int sz = 0;
-@@ -351,7 +351,7 @@ void*
+--- a/rts/adjustor/NativeIA64.c
++++ b/rts/adjustor/NativeIA64.c
+@@ -39,7 +39,7 @@
  createAdjustor(int cconv, StgStablePtr hptr,
                 StgFunPtr wptr,
                 char *typeString
 -#if !defined(powerpc_HOST_ARCH) && !defined(powerpc64_HOST_ARCH) && !defined(x86_64_HOST_ARCH)
 +#if !defined(powerpc_HOST_ARCH) && (!defined(powerpc64_HOST_ARCH) || (_CALL_ELF == 2)) && !defined(x86_64_HOST_ARCH)
-                   STG_UNUSED
+                STG_UNUSED
  #endif
-               )
-@@ -1271,7 +1271,7 @@ freeHaskellFunctionPtr(void* ptr)
-    return;
-  }
-  freeStablePtr(((StgStablePtr*)ptr)[1]);
--#elif defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
-+#elif defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
-  if ( ((AdjustorStub*)ptr)->code != (StgFunPtr) &adjustorCode ) {
-    errorBelch("freeHaskellFunctionPtr: not for me, guv! %p\n", ptr);
-    return;
-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 @@
@@ -150,20 +105,18 @@ index 2795b83..63cfe91 100644
  #if !(defined(powerpc_HOST_ARCH) && defined(linux_HOST_OS))
      /* The following code applies, with some differences,
         to all powerpc platforms except for powerpc32-linux,
-diff --git a/rts/StgCRun.c b/rts/StgCRun.c
-index 934926e..2ff8662 100644
 --- a/rts/StgCRun.c
 +++ b/rts/StgCRun.c
-@@ -726,7 +726,7 @@ StgRunIsImplementedInAssembler(void)
+@@ -635,7 +635,7 @@
     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)
+-#if defined(powerpc_HOST_ARCH)
++#if defined(powerpc_HOST_ARCH) && (_CALL_ELF != 2)
+
+ #define STG_GLOBAL ".globl "
 
- static void GNUC3_ATTRIBUTE(used)
- StgRunIsImplementedInAssembler(void)
-@@ -851,7 +851,7 @@ StgRunIsImplementedInAssembler(void)
+@@ -792,6 +792,6 @@
 
  #endif
 
@@ -171,9 +124,6 @@ index 934926e..2ff8662 100644
 +#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 9274a44..3b4fc33 100644
 --- a/rts/StgCRunAsm.S
 +++ b/rts/StgCRunAsm.S
 @@ -5,7 +5,7 @@
diff --git a/srcpkgs/ghc/template b/srcpkgs/ghc/template
index b8b16f67b433..c4bbb3e4e3b1 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=8.10.7
+version=9.0.2
 revision=1
 wrksrc="ghc-${version%[!0-9]}"
 build_style=gnu-configure
@@ -14,7 +14,7 @@ maintainer="slotThe <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=e3eef6229ce9908dfe1ea41436befb0455fefb1932559e860ad4c606b0d03c9d
+checksum=140e42b96346322d1a39eb17602bcdc76e292028ad4a69286b230bab188a9197
 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 90bdce8ae8ab36517c9cfb601f4e51cba4703bce Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sat, 19 Mar 2022 10:48:13 +0100
Subject: [PATCH 02/16] cabal-install: update to 3.6.3.0

Technically, this is only upgrading Cabal (the library) to 3.6.3.0, as
the installed version of cabal-install is still 3.6.2.0.  This is,
however, necessary for GHC 9.x support.
---
 srcpkgs/cabal-install/files/linux-9.0.2.json | 1 +
 srcpkgs/cabal-install/template               | 9 +++++----
 2 files changed, 6 insertions(+), 4 deletions(-)
 create mode 100644 srcpkgs/cabal-install/files/linux-9.0.2.json

diff --git a/srcpkgs/cabal-install/files/linux-9.0.2.json b/srcpkgs/cabal-install/files/linux-9.0.2.json
new file mode 100644
index 000000000000..f3cb6b4aeeb5
--- /dev/null
+++ b/srcpkgs/cabal-install/files/linux-9.0.2.json
@@ -0,0 +1 @@
+{"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/template b/srcpkgs/cabal-install/template
index d6d718709993..6a4b0ad7fc0e 100644
--- a/srcpkgs/cabal-install/template
+++ b/srcpkgs/cabal-install/template
@@ -1,6 +1,6 @@
 # Template file for 'cabal-install'
 pkgname=cabal-install
-version=3.6.2.0
+version=3.6.3.0
 revision=1
 wrksrc=cabal-Cabal-v${version}
 hostmakedepends="ghc curl tar which"
@@ -11,7 +11,7 @@ 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=dcf31e82cd85ea3236be18cc36c68058948994579ea7de18f99175821dbbcb64
+checksum=dea086acad6d9fe5fe22d838b95b4e988022e8519f38d41609119ea32bfb7466
 nopie_files="/usr/bin/cabal"
 nocross=yes
 
@@ -19,12 +19,13 @@ 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-8.10.7.json ;;
+		vsed -i -e 's/+ofd-locking/-ofd-locking/' bootstrap/linux-9.0.2.json ;;
 	esac
 }
 
 do_build() {
-	PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-8.10.7.json
+	cp "${FILESDIR}/linux-9.0.2.json" bootstrap/
+	PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-9.0.2.json
 }
 do_install() {
 	vbin _build/bin/cabal

From fca528d49c56be81a9fc18c0f74b3ad761698a27 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sat, 19 Mar 2022 12:54:36 +0100
Subject: [PATCH 03/16] stack: update stackage resolver to lts-19.0

Related: https://github.com/commercialhaskell/stack/pull/5559
---
 srcpkgs/stack/patches/ghc9.0.2.patch | 212 +++++++++++++++++++++++++++
 srcpkgs/stack/template               |   6 +-
 2 files changed, 215 insertions(+), 3 deletions(-)
 create mode 100644 srcpkgs/stack/patches/ghc9.0.2.patch

diff --git a/srcpkgs/stack/patches/ghc9.0.2.patch b/srcpkgs/stack/patches/ghc9.0.2.patch
new file mode 100644
index 000000000000..bdd77de58c6b
--- /dev/null
+++ b/srcpkgs/stack/patches/ghc9.0.2.patch
@@ -0,0 +1,212 @@
+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/template b/srcpkgs/stack/template
index 9e53b95ca633..15c38039684d 100644
--- a/srcpkgs/stack/template
+++ b/srcpkgs/stack/template
@@ -1,8 +1,8 @@
 # Template file for 'stack'
 pkgname=stack
 version=2.7.5
-revision=1
-_stackage="lts-18.14"
+revision=2
+_stackage="lts-19.0"
 hostmakedepends="cabal-install pkg-config unzip"
 makedepends="zlib-devel pcre-devel"
 depends="git gmp-devel iana-etc"
@@ -13,7 +13,7 @@ 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
- 78577c091074d78f9d6e09d6e31e7fc8ac2ddbb0dbc4ac65c606adcac4957d7f"
+ 6b9983f6448eb825231f65fe955d6d85516f482f0d26fee84183a1a79c6b0646"
 skip_extraction="cabal.config-${_stackage}"
 nocross=yes
 nopie_files="/usr/bin/stack"

From 9de9a979acc648b9901fbc319d5af00023176d9b Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 09:17:26 +0100
Subject: [PATCH 04/16] cgrep: bump for stackage lts-19.0

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

diff --git a/srcpkgs/cgrep/template b/srcpkgs/cgrep/template
index e57106f3fa26..1c54fe367396 100644
--- a/srcpkgs/cgrep/template
+++ b/srcpkgs/cgrep/template
@@ -1,9 +1,9 @@
 # Template file for 'cgrep'
 pkgname=cgrep
 version=6.7.1
-revision=2
+revision=3
 build_style=haskell-stack
-stackage="lts-18.15"
+stackage="lts-19.0"
 makedepends="pcre-devel pkg-config"
 short_desc="Context-aware grep for source codes"
 maintainer="slotThe <soliditsallgood@mailbox.org>"

From 39baaa9e9822341c8c1d8a90f62843a60692c679 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 09:23:26 +0100
Subject: [PATCH 05/16] git-mediate: bump for stackage lts-19.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 0c9ec10241e5..705df7843b8e 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=2
+revision=3
 build_style=haskell-stack
-stackage="lts-18.14"
+stackage="lts-19.0"
 depends="git"
 short_desc="Tool to help resolving git conflicts"
 maintainer="Peter Wang <novalazy@gmail.com>"

From 47024f61e647b0f4fa02b273516755d86fda46a6 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 09:51:34 +0100
Subject: [PATCH 06/16] hlint: update to 3.3.6

---
 srcpkgs/hlint/template | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/srcpkgs/hlint/template b/srcpkgs/hlint/template
index fd72c1bbea58..0109be25805f 100644
--- a/srcpkgs/hlint/template
+++ b/srcpkgs/hlint/template
@@ -1,16 +1,16 @@
 # Template file for 'hlint'
 pkgname=hlint
-version=3.2.7
-revision=2
+version=3.3.6
+revision=1
 build_style=haskell-stack
-stackage="lts-18.14"
+stackage="lts-19.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=fcdeefcc79a52206add44b409abcab48c5fe2adff9d5aff077acbc43c702b54e
+checksum=7d536c03f77a0c259efb2b00b525ef34578ca8a4a95ccb412708e8c7172e2e6a
 nocross=yes # Can't yet cross compile Haskell
 nopie_files="/usr/bin/hlint"
 

From 9187ce00b74630b99af08af7afd8a17e6fc0fbea Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 11:38:44 +0100
Subject: [PATCH 07/16] pandoc: update to 2.17.1.1

+ Fix compilation of `pandoc-crossref` for musl systems.
+ Remove the `system-lua` flag, as `pkg-config` already implies it [1].

Related: https://github.com/lierdakil/pandoc-crossref/issues/342
[1]: https://github.com/hslua/hslua/blob/main/lua/README.md?plain=1#L39-L40
---
 srcpkgs/pandoc/files/pandoc-crossref.cabal | 230 +++++++++++++++++++++
 srcpkgs/pandoc/template                    |  43 ++--
 2 files changed, 249 insertions(+), 24 deletions(-)
 create mode 100644 srcpkgs/pandoc/files/pandoc-crossref.cabal

diff --git a/srcpkgs/pandoc/files/pandoc-crossref.cabal b/srcpkgs/pandoc/files/pandoc-crossref.cabal
new file mode 100644
index 000000000000..39f2b9e7bde0
--- /dev/null
+++ b/srcpkgs/pandoc/files/pandoc-crossref.cabal
@@ -0,0 +1,230 @@
+cabal-version: 2.0
+
+-- This file has been generated from package.yaml by hpack version 0.34.6.
+--
+-- see: https://github.com/sol/hpack
+--
+-- hash: 20655cd6263e9fe7e5737ee81b093c8c6f5eae67e260ddd3a821ac6ef5e35e69
+
+name:           pandoc-crossref
+version:        0.3.13.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
+homepage:       https://github.com/lierdakil/pandoc-crossref#readme
+bug-reports:    https://github.com/lierdakil/pandoc-crossref/issues
+author:         Nikolay Yakimov
+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
+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/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/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
+
+source-repository head
+  type: git
+  location: https://github.com/lierdakil/pandoc-crossref
+
+flag enable_flaky_tests
+  description: Some tests rely on specific behaviour of pandoc, which may change between minor versions. These are still useful indicators for the developer, but not necessarily indicating there's a problem with the package itself. Enable if you know what you are doing.
+  manual: True
+  default: False
+
+library
+  exposed-modules:
+      Text.Pandoc.CrossRef
+  other-modules:
+      Text.Pandoc.CrossRef.References
+      Text.Pandoc.CrossRef.References.Blocks
+      Text.Pandoc.CrossRef.References.List
+      Text.Pandoc.CrossRef.References.Refs
+      Text.Pandoc.CrossRef.References.Types
+      Text.Pandoc.CrossRef.Util.CodeBlockCaptions
+      Text.Pandoc.CrossRef.Util.CustomLabels
+      Text.Pandoc.CrossRef.Util.Meta
+      Text.Pandoc.CrossRef.Util.ModifyMeta
+      Text.Pandoc.CrossRef.Util.Options
+      Text.Pandoc.CrossRef.Util.Settings
+      Text.Pandoc.CrossRef.Util.Settings.Gen
+      Text.Pandoc.CrossRef.Util.Settings.Template
+      Text.Pandoc.CrossRef.Util.Template
+      Text.Pandoc.CrossRef.Util.Util
+  hs-source-dirs:
+      lib
+      lib-internal
+  ghc-options: -Wall
+  build-depends:
+      base >=4.11 && <5
+    , containers >=0.1 && <0.7
+    , data-default >=0.4 && <0.8
+    , directory >=1 && <1.4
+    , filepath >=1.1 && <1.5
+    , 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.*
+    , syb >=0.4 && <0.8
+    , template-haskell >=2.7.0.0 && <3.0.0.0
+    , text >=1.2.2 && <1.3
+    , utility-ht >=0.0.11 && <0.1.0
+  default-language: Haskell2010
+
+executable pandoc-crossref
+  main-is: pandoc-crossref.hs
+  other-modules:
+      ManData
+  hs-source-dirs:
+      src
+  ghc-options: -Wall -threaded
+  build-depends:
+      base >=4.11 && <5
+    , deepseq ==1.4.*
+    , gitrev >=1.3.1 && <1.4
+    , open-browser ==0.2.*
+    , optparse-applicative >=0.13 && <0.17
+    , pandoc >=2.10 && <2.18
+    , pandoc-crossref
+    , pandoc-types >=1.21 && <1.23
+    , template-haskell >=2.7.0.0 && <3.0.0.0
+    , temporary >=1.2 && <1.4
+    , text >=1.2.2 && <1.3
+  default-language: Haskell2010
+
+test-suite test-integrative
+  type: exitcode-stdio-1.0
+  main-is: test-integrative.hs
+  hs-source-dirs:
+      test
+  ghc-options: -Wall -fno-warn-unused-do-bind -threaded
+  build-depends:
+      base >=4.11 && <5
+    , directory >=1 && <1.4
+    , filepath >=1.1 && <1.5
+    , hspec >=2.4.4 && <3
+    , pandoc >=2.10 && <2.18
+    , pandoc-crossref
+    , pandoc-types >=1.21 && <1.23
+    , text >=1.2.2 && <1.3
+  if flag(enable_flaky_tests)
+    cpp-options: -DFLAKY
+  default-language: Haskell2010
+
+test-suite test-pandoc-crossref
+  type: exitcode-stdio-1.0
+  main-is: test-pandoc-crossref.hs
+  other-modules:
+      Native
+      Paths_pandoc_crossref
+  autogen-modules:
+      Paths_pandoc_crossref
+  hs-source-dirs:
+      test
+  ghc-options: -Wall -fno-warn-unused-do-bind -threaded
+  build-depends:
+      base >=4.11 && <5
+    , containers >=0.1 && <0.7
+    , data-default >=0.4 && <0.8
+    , 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-crossref
+    , pandoc-types >=1.21 && <1.23
+    , text >=1.2.2 && <1.3
+  if flag(enable_flaky_tests)
+    cpp-options: -DFLAKY
+  default-language: Haskell2010
+
+benchmark simple
+  type: exitcode-stdio-1.0
+  main-is: bench-simple.hs
+  other-modules:
+      Native
+  hs-source-dirs:
+      test
+  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
+    , pandoc-crossref
+    , pandoc-types >=1.21 && <1.23
+    , text >=1.2.2 && <1.3
+  default-language: Haskell2010
diff --git a/srcpkgs/pandoc/template b/srcpkgs/pandoc/template
index 8628b1d1f3c2..9bdf32ef3c53 100644
--- a/srcpkgs/pandoc/template
+++ b/srcpkgs/pandoc/template
@@ -1,18 +1,18 @@
 # Template file for 'pandoc'
 pkgname=pandoc
 # Keep in sync with http://www.stackage.org/lts
-version=2.14.0.3
-revision=3
-_sidenote_version=0.20.0.0
+version=2.17.1.1
+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
 create_wrksrc=yes
 build_style=haskell-stack
-stackage="lts-18.14"
+stackage="lts-19.0"
 make_build_args="
- --flag pandoc:embed_data_files --flag=hslua:system-lua
- --flag=hslua:pkg-config"
+ --flag pandoc:embed_data_files
+ --flag=lua:pkg-config"
 hostmakedepends="pkg-config unzip wget"
 makedepends="zlib-devel lua53-devel tar"
 short_desc="Universal converter between markup formats"
@@ -21,33 +21,28 @@ license="GPL-2.0-or-later, BSD-3-Clause"
 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"
-checksum="82e3f55bff3059bf30cf532e93d9876c9e3599aa4eafae9c907fe75a4430eddd
- 91f8e96d8470722d677d31d4bbf16c2ac6902567d818ed7a2715bad2617a4cdb
- be8485023fce236b5b915f2f6074f7b0470a2040f84cdd137c5227f1b4c98465"
-subpackages="pandoc-sidenote"
-nocross=yes
-nopie_files="
- /usr/bin/pandoc
- /usr/bin/pandoc-sidenote"
-
-# pandoc-crossref is currently broken on musl. See lierdakil/pandoc-crossref#342 and commercialhaskell/stack#5683
-if [ "$XBPS_TARGET_LIBC" != "musl" ]; then
-	distfiles+="
+ 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+="
+checksum="649ec528d1413130c5ce304b826ff473b3696269eea8834d908589e775bd1ad1
+ c39dd7343b9cb4dc5b1c91c9e47c3d357874e9e1a30b8d377bbea0b1d50323b2
+ be8485023fce236b5b915f2f6074f7b0470a2040f84cdd137c5227f1b4c98465
  94540325c9c98ae4d5199c634bf402ffa41e3c5b020d7207daef90fd9e224fb4
  b9c7195b69b1662a286d2c28a55fafdcb693c522ba5eb54a11b1d0a4e92eaa81"
-	nopie_files+="
- /usr/bin/pandoc-crossref"
-	subpackages+="
+subpackages="
+ pandoc-sidenote
  pandoc-crossref"
-fi
+nocross=yes
+nopie_files="
+ /usr/bin/pandoc
+ /usr/bin/pandoc-sidenote
+ /usr/bin/pandoc-crossref"
 
 post_extract() {
 	sed -i 's/tasty .*,/tasty,/' pandoc-*/pandoc.cabal
 	sed -i 's/zip-archive .*,/zip-archive,/' pandoc-*/pandoc.cabal
+	# See https://github.com/lierdakil/pandoc-crossref/issues/342#issuecomment-1073256586
+	cp "${FILESDIR}/pandoc-crossref.cabal" pandoc-crossref-${_crossref_version}
 }
 
 post_install() {

From 96ca211c88712bf81839c41232703ec4fb89208e Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 12:15:01 +0100
Subject: [PATCH 08/16] shellcheck: bump for stackage lts-19.0

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

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

From d7c5bd5bc2bf3506928f1ec886dfdd3fb90799b9 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 12:52:11 +0100
Subject: [PATCH 09/16] hoogle: update to 5.0.18.3

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

diff --git a/srcpkgs/hoogle/template b/srcpkgs/hoogle/template
index 4c3e80186494..dc487cab4017 100644
--- a/srcpkgs/hoogle/template
+++ b/srcpkgs/hoogle/template
@@ -1,16 +1,16 @@
 # Template file for 'hoogle'
 pkgname=hoogle
-version=5.0.18.2
-revision=2
+version=5.0.18.3
+revision=1
 build_style=haskell-stack
-stackage="lts-18.14"
+stackage="lts-19.0"
 makedepends="zlib-devel"
 short_desc="Haskell API search engine"
 maintainer="Inokentiy Babushkin <twk@twki.de>"
 license="BSD-3-Clause"
 homepage="https://hoogle.haskell.org/"
 distfiles="https://github.com/ndmitchell/${pkgname}/archive/v${version}.tar.gz"
-checksum=9f8f0afde52fe602100ab7828fad230c2f5e94050dda9fe1e2a9f0a93f7fe617
+checksum=a2765fcbaf99fe67a64ef29fe50e69fb380cce07807cddeb0836c148b1ae472b
 nopie_files="/usr/bin/hoogle"
 nocross=yes # Can't yet cross compile Haskell
 

From 3cc03d6b11b7f6ef4e6a8b8805cf4ee979b4badc Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 13:33:12 +0100
Subject: [PATCH 10/16] xmobar: update to 0.42

Also enable most flags during compilation in order to be less surprising
with regards to what features xmobar supports out of the box.
---
 srcpkgs/xmobar/files/stack.yaml | 2 +-
 srcpkgs/xmobar/template         | 8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/xmobar/files/stack.yaml b/srcpkgs/xmobar/files/stack.yaml
index 47544eb729d8..7e0956374142 100644
--- a/srcpkgs/xmobar/files/stack.yaml
+++ b/srcpkgs/xmobar/files/stack.yaml
@@ -1,4 +1,4 @@
-resolver: lts-18.13
+resolver: lts-19.0
 packages:
 - .
 extra-deps:
diff --git a/srcpkgs/xmobar/template b/srcpkgs/xmobar/template
index b97c9f268d68..6a12a9ed7055 100644
--- a/srcpkgs/xmobar/template
+++ b/srcpkgs/xmobar/template
@@ -1,7 +1,7 @@
 # Template file for 'xmobar'
 pkgname=xmobar
-version=0.39
-revision=2
+version=0.42
+revision=1
 build_style=haskell-stack
 hostmakedepends="pkg-config"
 makedepends="libX11-devel libXinerama-devel libXrandr-devel libXScrnSaver-devel
@@ -15,10 +15,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=46f37b90dd3ba3348dbe7de716b88606c7f0f0dd22a3580176b5cd089c1b36cc
+checksum=53f4a06d79c3db32ef1a498ec7b764b17d03ebf9bca3126c6b8259595492769b
 build_options="dbus threaded utf8 xft mpd mpris inotify iwlib alsa datezone
  xpm uvmeter weather nl80211"
-build_options_default="threaded utf8 xft inotify nl80211 datezone weather xpm"
+build_options_default="threaded utf8 xft inotify nl80211 datezone weather xpm alsa mpris mpd dbus"
 nopie_files="/usr/bin/xmobar"
 nocross=yes
 vopt_hflag() {

From d9425e49584c01d9b19fb4231d327bb36a5b15f7 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 18:09:34 +0100
Subject: [PATCH 11/16] hledger: update to 1.25

---
 srcpkgs/hledger/template | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/hledger/template b/srcpkgs/hledger/template
index fdcab180a6de..32d39207fd82 100644
--- a/srcpkgs/hledger/template
+++ b/srcpkgs/hledger/template
@@ -1,8 +1,9 @@
 # Template file for 'hledger'
 pkgname=hledger
-version=1.23
-revision=2
+version=1.25
+revision=1
 build_style=haskell-stack
+stackage="lts-19.0"
 makedepends="zlib-devel ncurses-devel"
 short_desc="Simple, precise, plain text accounting"
 maintainer="Inokentiy Babushkin <twk@twki.de>"
@@ -10,7 +11,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/${pkgname}/archive/${version}.tar.gz"
-checksum=7252d78aafbae488b113a6350518a702186cacc4e746cec2b31f8321b4dddcb4
+checksum=4c947c2a7d243d2a56efc1fa02994a118e995df025a412f6d2daeadfd78338ee
 nopie_files="/usr/bin/hledger"
 nocross=yes # Can't yet cross compile Haskell
 

From 54d9f8a086bfbb6efd1ffe6d3d8fb8a4666882fe Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Mon, 21 Mar 2022 08:19:29 +0100
Subject: [PATCH 12/16] haskell-language-server: update to 1.6.1.0

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

diff --git a/srcpkgs/haskell-language-server/template b/srcpkgs/haskell-language-server/template
index 0182c9b95757..0c7b2187c5ca 100644
--- a/srcpkgs/haskell-language-server/template
+++ b/srcpkgs/haskell-language-server/template
@@ -1,16 +1,16 @@
 # Template file for 'haskell-language-server'
 pkgname=haskell-language-server
-version=1.4.0
+version=1.6.1.0
 revision=1
 build_style="haskell-stack"
-make_build_args="--stack-yaml stack-8.10.7.yaml"
+make_build_args="--stack-yaml stack-9.0.2.yaml"
 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>"
 license="Apache-2.0"
 homepage="https://github.com/haskell/haskell-language-server"
 distfiles="https://github.com/haskell/haskell-language-server/archive/${version}.tar.gz"
-checksum=c5d7dbf7fae9aa3ed2c1184b49e82d8ac623ca786494ef6602cfe11735d28db0
+checksum=e5c336ad2de8d021c882cdac5bbc26bf6427df8d2a5bd244c05cf18296a9bfdc
 nopie_files="
  /usr/bin/haskell-language-server
  /usr/bin/haskell-language-server-wrapper

From 5812fa9cf0ff696b488e329966b54130cf39e185 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Mon, 21 Mar 2022 15:48:58 +0100
Subject: [PATCH 13/16] git-annex: update to 10.20220222

---
 srcpkgs/git-annex/files/stack.yaml | 33 ++++++++++++++++++++++++++++++
 srcpkgs/git-annex/template         |  5 +++--
 2 files changed, 36 insertions(+), 2 deletions(-)
 create mode 100644 srcpkgs/git-annex/files/stack.yaml

diff --git a/srcpkgs/git-annex/files/stack.yaml b/srcpkgs/git-annex/files/stack.yaml
new file mode 100644
index 000000000000..4935307f48cf
--- /dev/null
+++ b/srcpkgs/git-annex/files/stack.yaml
@@ -0,0 +1,33 @@
+flags:
+  git-annex:
+    production: true
+    assistant: true
+    pairing: true
+    torrentparser: true
+    webapp: true
+    magicmime: false
+    dbus: false
+    debuglocks: false
+    benchmark: true
+    networkbsd: true
+    gitlfs: true
+    httpclientrestricted: true
+packages:
+  - '.'
+resolver: lts-19.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
diff --git a/srcpkgs/git-annex/template b/srcpkgs/git-annex/template
index 1cf2ab14789f..7b788bc5861e 100644
--- a/srcpkgs/git-annex/template
+++ b/srcpkgs/git-annex/template
@@ -1,8 +1,9 @@
 # Template file for 'git-annex'
 pkgname=git-annex
-version=8.20211028
+version=10.20220222
 revision=1
 build_style=haskell-stack
+stackage="lts-19.0"
 makedepends="curl file-devel gnupg2 gnutls-devel gsasl-devel libxml2-devel
  lsof rsync git ncurses-devel"
 # depends are utilities required by git-annex
@@ -12,7 +13,7 @@ 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="http://git-annex.branchable.com"
 distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz"
-checksum=cf5efe15e68d467daad673bec10037a27a78da7e4af9b4a85e10980bd90ace2d
+checksum=1fb9f75a83feb16f7515122135c0f3abe6aa77544d8d778792296cbc053d2c85
 nopie_files="/usr/bin/git-annex"
 nocross=yes
 

From 35fdbb69e22e166c8630e1e1f6b9cb228c38e960 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Wed, 23 Mar 2022 09:14:58 +0100
Subject: [PATCH 14/16] darcs: bump for stackage lts-19.0

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

diff --git a/srcpkgs/darcs/files/stack.yaml b/srcpkgs/darcs/files/stack.yaml
index 5ae0f5313b8d..6e459703764a 100644
--- a/srcpkgs/darcs/files/stack.yaml
+++ b/srcpkgs/darcs/files/stack.yaml
@@ -1,7 +1,4 @@
-resolver: lts-18.14
+resolver: lts-19.0
 packages:
 - .
-extra-deps:
-- graphviz-2999.20.1.0
-- constraints-0.12@sha256:7edf1e72a92d0a6761da634f08be9123dfcc0dcec11c269cbf465a09721c3481,2322
-- cryptonite-0.27@sha256:c3a9c8ce11e654a9d5bee827b089d4b50587272828d0c52a85362a58667a916c,18163
+allow-newer: true
diff --git a/srcpkgs/darcs/template b/srcpkgs/darcs/template
index f9fcac534d46..15a8f71f9021 100644
--- a/srcpkgs/darcs/template
+++ b/srcpkgs/darcs/template
@@ -1,7 +1,7 @@
 # Template file for 'darcs'
 pkgname=darcs
 version=2.16.5
-revision=2
+revision=3
 build_style=haskell-stack
 hostmakedepends="unzip"
 makedepends="zlib-devel libcurl-devel ncurses-devel"

From 9313f5ae803cb443e4b4060e92d053cb1089e258 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Thu, 24 Mar 2022 11:50:45 +0100
Subject: [PATCH 15/16] debug-me: bump for stackage lts-19.0

---
 srcpkgs/debug-me/files/stack.yaml        |  8 +--
 srcpkgs/debug-me/patches/aeson-2.0.patch | 73 ++++++++++++++++++++++++
 srcpkgs/debug-me/patches/ghc8.10.4.patch | 11 ----
 srcpkgs/debug-me/template                |  2 +-
 4 files changed, 77 insertions(+), 17 deletions(-)
 create mode 100644 srcpkgs/debug-me/patches/aeson-2.0.patch

diff --git a/srcpkgs/debug-me/files/stack.yaml b/srcpkgs/debug-me/files/stack.yaml
index ad8b055bb33e..4363ebc5e4f9 100644
--- a/srcpkgs/debug-me/files/stack.yaml
+++ b/srcpkgs/debug-me/files/stack.yaml
@@ -1,8 +1,6 @@
 packages:
 - '.'
-resolver: lts-18.14
+resolver: lts-19.0
 extra-deps:
-- posix-pty-0.2.1.1
-- graphviz-2999.20.1.0
-- sandi-0.5
-- protobuf-0.2.1.3@sha256:d8ed3c73027c6b7e7583c6a94ee1835beee8a755a875b06bbf51bc667d53ab69,3048
+  - posix-pty-0.2.2@sha256:dd777df258b3b95fe01612c1204cde972ad1323c3289591ecc844ecb29e55e2b,1826
+  - sandi-0.5@sha256:b278d072ca717706ea38f9bd646e023f7f2576a778fb43565b434f93638849aa,3010
diff --git a/srcpkgs/debug-me/patches/aeson-2.0.patch b/srcpkgs/debug-me/patches/aeson-2.0.patch
new file mode 100644
index 000000000000..5feba2265724
--- /dev/null
+++ b/srcpkgs/debug-me/patches/aeson-2.0.patch
@@ -0,0 +1,73 @@
+From 6a3eb115c7d3732f2d0f6fa62df042b8afd0235c Mon Sep 17 00:00:00 2001
+From: Tony Zorman <soliditsallgood@mailbox.org>
+Date: Thu, 24 Mar 2022 10:58:13 +0100
+Subject: [PATCH] Support aeson 2.0
+
+As per the aeson 2.0.0.0 changelog[1], starting with that version the
+map type used by Object is now abstract, as is the key type of that map.
+
+Related: https://github.com/haskell/aeson/pull/866
+Related: https://github.com/haskell/aeson/pull/868
+[1]: https://hackage.haskell.org/package/aeson-2.0.0.0/changelog
+---
+ Gpg/Wot.hs     | 13 ++++++++++++-
+ debug-me.cabal |  2 +-
+ 2 files changed, 13 insertions(+), 2 deletions(-)
+
+diff --git a/Gpg/Wot.hs b/Gpg/Wot.hs
+index 2a6d541..d916ebc 100644
+--- a/Gpg/Wot.hs
++++ b/Gpg/Wot.hs
+@@ -3,6 +3,7 @@
+  - Licensed under the GNU AGPL version 3 or higher.
+  -}
+
++{-# LANGUAGE CPP           #-}
+ {-# LANGUAGE DeriveGeneric #-}
+
+ -- | Gpg web of trust checking, using wotsap's JSON output
+@@ -15,8 +16,13 @@ import JSON
+ import Network.HTTP.Client
+ import Network.HTTP.Client.TLS
+ import Data.List
+-import qualified Data.HashMap.Strict as M
+ import qualified Data.Text as T
++#if MIN_VERSION_aeson(2, 0, 0)
++import qualified Data.Aeson.KeyMap as AM
++import qualified Data.Aeson.Key as AK
++#else
++import qualified Data.HashMap.Strict as M
++#endif
+
+ data WotStats = WotStats
+        { key :: Node
+@@ -43,9 +49,14 @@ data Node = Node
+
+ -- | wotsap's json has some upper-case fields; lowercase field for parsing
+ jsonLower :: Value -> Value
++#if MIN_VERSION_aeson(2, 0, 0)
++jsonLower (Object o) = Object . AM.mapKeyVal lowerKey id $ o
++  where lowerKey = AK.fromText . T.toLower . AK.toText
++#else
+ jsonLower (Object o) = Object . M.fromList . map lowerPair . M.toList $ o
+   where
+        lowerPair (k, v) = (T.toLower k, v)
++#endif
+ jsonLower x = x
+
+ instance FromJSON WotStats where
+diff --git a/debug-me.cabal b/debug-me.cabal
+index d859cbb..db7cc63 100644
+--- a/debug-me.cabal
++++ b/debug-me.cabal
+@@ -64,7 +64,7 @@ Executable debug-me
+     , stm-chans (>= 3.0)
+     , posix-pty (>= 0.2.1)
+     , terminal-size (>= 0.3)
+-    , aeson (>= 0.11 && < 1.5)
++    , aeson (>= 0.11 && < 2.1)
+     , sandi (>= 0.4)
+     , text (>= 1.2.2)
+     , optparse-applicative (>= 0.12)
+--
+2.35.1
diff --git a/srcpkgs/debug-me/patches/ghc8.10.4.patch b/srcpkgs/debug-me/patches/ghc8.10.4.patch
index bfcff16a4438..dc9be027822f 100644
--- a/srcpkgs/debug-me/patches/ghc8.10.4.patch
+++ b/srcpkgs/debug-me/patches/ghc8.10.4.patch
@@ -20,14 +20,3 @@
  		defaultSettings
 
  checkEnv :: ServerOpts -> IO ServerOpts
---- a/debug-me.cabal
-+++ b/debug-me.cabal
-@@ -64,7 +64,7 @@
-     , stm-chans (>= 3.0)
-     , posix-pty (>= 0.2.1)
-     , terminal-size (>= 0.3)
--    , aeson (>= 0.11 && < 1.5)
-+    , aeson (>= 0.11 && < 1.6)
-     , sandi (>= 0.4)
-     , text (>= 1.2.2)
-     , optparse-applicative (>= 0.12)
diff --git a/srcpkgs/debug-me/template b/srcpkgs/debug-me/template
index 86ac0037311a..298b38de58cd 100644
--- a/srcpkgs/debug-me/template
+++ b/srcpkgs/debug-me/template
@@ -1,7 +1,7 @@
 # Template file for 'debug-me'
 pkgname=debug-me
 version=1.20200820
-revision=3
+revision=4
 build_style=haskell-stack
 makedepends="zlib-devel"
 short_desc="Secure remote debugging"

From 16f308bde16d6c86e5e4be39a14e07d5e9321663 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sigrid=20Solveig=20Hafl=C3=ADnud=C3=B3ttir?=
 <ftrvxmtrx@gmail.com>
Date: Thu, 24 Mar 2022 09:27:25 +0100
Subject: [PATCH 16/16] ghc, ghc-bin: Add aarch64* support

---
 srcpkgs/ghc-bin/template | 22 ++++++++++++++++------
 srcpkgs/ghc/template     |  8 ++++++++
 2 files changed, 24 insertions(+), 6 deletions(-)

diff --git a/srcpkgs/ghc-bin/template b/srcpkgs/ghc-bin/template
index 3949ee3fa1aa..8a725a84e76a 100644
--- a/srcpkgs/ghc-bin/template
+++ b/srcpkgs/ghc-bin/template
@@ -1,8 +1,8 @@
 # Template file for 'ghc-bin'
 pkgname=ghc-bin
-version=8.10.7
+version=9.0.2
 revision=1
-archs="i686 x86_64* ppc64le* ppc64"
+archs="i686 x86_64* ppc64le* ppc64 aarch64*"
 wrksrc="ghc-${version%[!0-9]}"
 hostmakedepends="perl libffi libnuma"
 depends="ncurses perl gcc libffi-devel gmp-devel"
@@ -15,8 +15,8 @@ noshlibprovides=yes
 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=ced9870ea351af64fb48274b81a664cdb6a9266775f1598a79cbb6fdd5770a23
+	distfiles="https://downloads.haskell.org/ghc/${version%[!0-9]}/ghc-${version}-x86_64-deb9-linux.tar.xz"
+	checksum=805f5628ce6cec678ba77ff48c924831ebdf75ec2c66368e8935a618913a150e
 	;;
 x86_64-musl)
 	# create with "make binary-dist"
@@ -24,8 +24,8 @@ x86_64-musl)
 	checksum=52f6492f39f13890f4ecd83784724ae9fff7a02fdc624a56c49872c912608a50
 	;;
 i686)
-	distfiles="https://downloads.haskell.org/~ghc/${version%[!0-9]}/ghc-${version}-i386-deb9-linux.tar.xz"
-	checksum=fbfc1ef194f4e7a4c0da8c11cc69b17458a4b928b609b3622c97acc4acd5c5ab
+	distfiles="https://downloads.haskell.org/ghc/${version%[!0-9]}/ghc-${version}-i386-deb9-linux.tar.xz"
+	checksum=fdeb9f8928fbe994064778a8e1e85bb1a58a6cd3dd7b724fcc2a1dcfda6cad47
 	;;
 ppc64le)
 	distfiles="https://alpha.de.repo.voidlinux.org/distfiles/ghc-${version}-powerpc64le-void-linux.tar.xz"
@@ -39,6 +39,16 @@ ppc64)
 	distfiles="https://alpha.de.repo.voidlinux.org/distfiles/ghc-${version}-powerpc64-void-linux.tar.xz"
 	checksum=b8578e602abd4b453845303fb9cfed0b2186f86f60e3aa45869026ea833726c8
 	;;
+aarch64)
+	distfiles="https://alpha.de.repo.voidlinux.org/distfiles/ghc-${version}-aarch64-void-linux.tar.xz"
+	checksum=429a84d2850357e305a017c7d3eb1cb7cf838e900e52920d555de39d9c59b8c6
+	depends+=" llvm"
+	;;
+aarch64-musl)
+	distfiles="https://alpha.de.repo.voidlinux.org/distfiles/ghc-${version}-aarch64-void-linux-musl.tar.xz"
+	checksum=f2c37a5ed028eebd3e69a22ce989f5cdf6f84a408871ff0933ac532414c6c273
+	depends+=" llvm"
+	;;
 *)
 	broken="No distfiles available for this target"
 	;;
diff --git a/srcpkgs/ghc/template b/srcpkgs/ghc/template
index c4bbb3e4e3b1..d0b1600987be 100644
--- a/srcpkgs/ghc/template
+++ b/srcpkgs/ghc/template
@@ -54,6 +54,14 @@ elif [ "${XBPS_MACHINE%-*}" != "${XBPS_TARGET_MACHINE%-*}" ]; then
 	configure_args+=" --host=${XBPS_TRIPLET} --target=${XBPS_CROSS_TRIPLET}"
 fi
 
+case "$XBPS_TARGET_MACHINE" in
+aarch64*)
+	# GHC uses LLVM to generate code on aarch64
+	hostmakedepends+=" llvm"
+	depends+=" llvm"
+	;;
+esac
+
 # Recent safe to use tarball
 # GHC's bundled tarball is from 2017, buggy on some archs
 _ffi_rev=4d6d2866ae43e55325e8ee96561221804602cd7a

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

* Re: [PR PATCH] [Updated] [WIP] Update to GHC 9.0.2/Stackage LTS-19.0
  2022-03-23  7:20 [PR PATCH] [WIP] Update to GHC 9.0.2/Stackage LTS-19.0 slotThe
                   ` (4 preceding siblings ...)
  2022-03-24 11:34 ` slotThe
@ 2022-03-24 13:37 ` slotThe
  2022-03-24 23:05 ` ftrvxmtrx
                   ` (15 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: slotThe @ 2022-03-24 13:37 UTC (permalink / raw)
  To: ml

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

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

https://github.com/slotThe/void-packages stackage-19
https://github.com/void-linux/void-packages/pull/36292

[WIP] Update to GHC 9.0.2/Stackage LTS-19.0
And so... the ~~hunt~~ fun begins again!

### Core packages to bump

- [x] ghc
- [ ] ghc-bin
    - [ ] x86_64-musl
    cc. @q66 for the following
    - [ ] ppc64le
    - [ ] ppc64le-musl
    - [x] aarch64 [Link](https://ftrv.se/_/void/ghc-9.0.2/ghc-9.0.2-aarch64-void-linux.tar.xz) **Not uploaded yet**
    - [x] aarch64-musl [Link](https://ftrv.se/_/void/ghc-9.0.2/ghc-9.0.2-aarch64-void-linux-musl.tar.xz) **Not uploaded yet**
- [x] cabal-install
- [x] stack

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

Most of these are already done, things should probably go smoothly as 9.0.x does not contain any big breaking changes.

- [x] git-mediate
- [ ] kmonad
- [x] cgrep
- [x] debug-me
- [x] hlint
- [x] hoogle
- [x] darcs
- [x] shellcheck
- [x] git-annex
- [x] hledger
- [x] pandoc (contains a fix for `pandoc-crossref` on musl \o/)
- [x] xmobar
- [x] haskell-language-server

### Other things to do 

- [ ] Either incorporate https://github.com/void-linux/void-packages/pull/36193 into this PR or merge it first and then rebuild GHC for aarch64 and aarch64-musl; cc. @ftrvxmtrx

[ci skip]

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

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-stackage-19-36292.patch --]
[-- Type: text/x-diff, Size: 64471 bytes --]

From 5ce0a7ea17703bcfb1fc7b4007efef9e20b2d395 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Fri, 18 Mar 2022 17:33:46 +0100
Subject: [PATCH 01/17] ghc: update to 9.0.2

---
 .../ghc/patches/no-atomic-64-on-32bit.patch   | 58 -------------
 srcpkgs/ghc/patches/ppc64-be-elfv2.patch      | 86 ++++---------------
 srcpkgs/ghc/template                          |  4 +-
 3 files changed, 20 insertions(+), 128 deletions(-)
 delete mode 100644 srcpkgs/ghc/patches/no-atomic-64-on-32bit.patch

diff --git a/srcpkgs/ghc/patches/no-atomic-64-on-32bit.patch b/srcpkgs/ghc/patches/no-atomic-64-on-32bit.patch
deleted file mode 100644
index 05ca275ea9df..000000000000
--- a/srcpkgs/ghc/patches/no-atomic-64-on-32bit.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 5c5aa87d50dc4ea97e76e13f285a7b5dd71fcd88 Mon Sep 17 00:00:00 2001
-From: Ilias Tsitsimpis <iliastsi@debian.org>
-Date: Sun, 1 Mar 2020 16:25:13 +0200
-Subject: [PATCH] Do not define hs_atomic{read,write}64() on non-64bit
-
-Do not define hs_atomicread64() and hs_atomicwrite64() on machines where
-WORD_SIZE_IN_BITS is less than 64, just like we do with the rest of the atomic
-functions which work on 64-bit values.
-
-Without this, compilation fails on MIPSel and PowerPC with the following error:
-
-/usr/bin/ld: /<<PKGBUILDDIR>>/libraries/ghc-prim/dist-install/build/libHSghc-prim-0.5.3_p.a(atomic.p_o): in function `hs_atomicread64':
-atomic.c:(.text.hs_atomicread64+0x8): undefined reference to `__sync_add_and_fetch_8'
-/usr/bin/ld: /<<PKGBUILDDIR>>/libraries/ghc-prim/dist-install/build/libHSghc-prim-0.5.3_p.a(atomic.p_o): in function `hs_atomicwrite64':
-atomic.c:(.text.hs_atomicwrite64+0x38): undefined reference to `__sync_bool_compare_and_swap_8'
-
-Fixes #17886.
----
- libraries/ghc-prim/cbits/atomic.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/libraries/ghc-prim/cbits/atomic.c b/libraries/ghc-prim/cbits/atomic.c
-index ac2e608ec2..01037d70ee 100644
---- a/libraries/ghc-prim/cbits/atomic.c
-+++ b/libraries/ghc-prim/cbits/atomic.c
-@@ -361,6 +361,7 @@ hs_atomicread32(StgWord x)
- #endif
- }
- 
-+#if WORD_SIZE_IN_BITS == 64
- extern StgWord64 hs_atomicread64(StgWord x);
- StgWord64
- hs_atomicread64(StgWord x)
-@@ -371,6 +372,7 @@ hs_atomicread64(StgWord x)
-   return __sync_add_and_fetch((StgWord64 *) x, 0);
- #endif
- }
-+#endif
- 
- // AtomicWriteByteArrayOp_Int
- // Implies a full memory barrier (see compiler/prelude/primops.txt.pp)
-@@ -409,6 +411,7 @@ hs_atomicwrite32(StgWord x, StgWord val)
- #endif
- }
- 
-+#if WORD_SIZE_IN_BITS == 64
- extern void hs_atomicwrite64(StgWord x, StgWord64 val);
- void
- hs_atomicwrite64(StgWord x, StgWord64 val)
-@@ -420,3 +423,5 @@ hs_atomicwrite64(StgWord x, StgWord64 val)
- #endif
- }
- #endif
-+
-+#endif
--- 
-GitLab
-
diff --git a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
index 275444e828b7..7f074d17cbae 100644
--- a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
+++ b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
@@ -3,21 +3,9 @@ From: Daniel Kolesa <daniel@octaforge.org>
 Date: Tue, 5 Jan 2021 04:10:25 +0100
 Subject: [PATCH] fix up runtime for ppc64 BE ELFv2 + ensure it's used
 
----
- aclocal.m4                        |  2 +-
- configure                         |  2 +-
- libraries/ghci/GHCi/InfoTable.hsc | 36 ++++++++++++-------------------
- rts/Adjustor.c                    | 12 +++++------
- rts/AdjustorAsm.S                 |  2 +-
- rts/StgCRun.c                     |  4 ++--
- rts/StgCRunAsm.S                  |  2 +-
- 7 files changed, 26 insertions(+), 34 deletions(-)
-
-diff --git a/aclocal.m4 b/aclocal.m4
-index 41cecf0..ba08bd2 100644
---- a/aclocal.m4
-+++ b/aclocal.m4
-@@ -199,7 +199,7 @@ AC_DEFUN([FPTOOLS_SET_HASKELL_PLATFORM_V
+--- a/m4/fptools.m4
++++ b/m4/fptools.m4
+@@ -201,7 +201,7 @@
              test -z "[$]2" || eval "[$]2=ArchPPC"
              ;;
          powerpc64)
@@ -26,8 +14,6 @@ index 41cecf0..ba08bd2 100644
              ;;
          powerpc64le)
              test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
-diff --git a/configure b/configure
-index 183e661..8aae1bc 100755
 --- a/configure
 +++ b/configure
 @@ -10296,7 +10296,7 @@ $as_echo "done" >&6; }
@@ -39,8 +25,6 @@ index 183e661..8aae1bc 100755
              ;;
          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 ec3c18a..0359be7 100644
 --- a/libraries/ghci/GHCi/InfoTable.hsc
 +++ b/libraries/ghci/GHCi/InfoTable.hsc
 @@ -228,30 +228,22 @@ mkJumpToAddr a = case platform of
@@ -88,57 +72,28 @@ index ec3c18a..0359be7 100644
 
      ArchPPC64LE ->
          -- The ABI requires r12 to point to the function's entry point.
-diff --git a/rts/Adjustor.c b/rts/Adjustor.c
-index d360cfe..ab7ede7 100644
---- a/rts/Adjustor.c
-+++ b/rts/Adjustor.c
-@@ -49,7 +49,7 @@ Haskell side.
-
- #if defined(i386_HOST_ARCH)
- extern void adjustorCode(void);
--#elif defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
-+#elif defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
- // from AdjustorAsm.s
- // not declared as a function so that AIX-style
- // fundescs can never get in the way.
-@@ -278,7 +278,7 @@ __asm__("obscure_ccall_ret_code:\n\t"
+--- a/rts/adjustor/NativePowerPC.c
++++ b/rts/adjustor/NativePowerPC.c
+@@ -29,7 +29,7 @@
  extern void obscure_ccall_ret_code(void);
- #endif
+ #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: !!! !!!
-@@ -318,7 +318,7 @@ typedef struct AdjustorStub {
- } AdjustorStub;
- #endif
-
--#if defined(i386_HOST_ARCH) || defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
-+#if defined(i386_HOST_ARCH) || defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
- static int totalArgumentSize(char *typeString)
- {
-     int sz = 0;
-@@ -351,7 +351,7 @@ void*
+--- a/rts/adjustor/NativeIA64.c
++++ b/rts/adjustor/NativeIA64.c
+@@ -39,7 +39,7 @@
  createAdjustor(int cconv, StgStablePtr hptr,
                 StgFunPtr wptr,
                 char *typeString
 -#if !defined(powerpc_HOST_ARCH) && !defined(powerpc64_HOST_ARCH) && !defined(x86_64_HOST_ARCH)
 +#if !defined(powerpc_HOST_ARCH) && (!defined(powerpc64_HOST_ARCH) || (_CALL_ELF == 2)) && !defined(x86_64_HOST_ARCH)
-                   STG_UNUSED
+                STG_UNUSED
  #endif
-               )
-@@ -1271,7 +1271,7 @@ freeHaskellFunctionPtr(void* ptr)
-    return;
-  }
-  freeStablePtr(((StgStablePtr*)ptr)[1]);
--#elif defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
-+#elif defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
-  if ( ((AdjustorStub*)ptr)->code != (StgFunPtr) &adjustorCode ) {
-    errorBelch("freeHaskellFunctionPtr: not for me, guv! %p\n", ptr);
-    return;
-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 @@
@@ -150,20 +105,18 @@ index 2795b83..63cfe91 100644
  #if !(defined(powerpc_HOST_ARCH) && defined(linux_HOST_OS))
      /* The following code applies, with some differences,
         to all powerpc platforms except for powerpc32-linux,
-diff --git a/rts/StgCRun.c b/rts/StgCRun.c
-index 934926e..2ff8662 100644
 --- a/rts/StgCRun.c
 +++ b/rts/StgCRun.c
-@@ -726,7 +726,7 @@ StgRunIsImplementedInAssembler(void)
+@@ -635,7 +635,7 @@
     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)
+-#if defined(powerpc_HOST_ARCH)
++#if defined(powerpc_HOST_ARCH) && (_CALL_ELF != 2)
+
+ #define STG_GLOBAL ".globl "
 
- static void GNUC3_ATTRIBUTE(used)
- StgRunIsImplementedInAssembler(void)
-@@ -851,7 +851,7 @@ StgRunIsImplementedInAssembler(void)
+@@ -792,6 +792,6 @@
 
  #endif
 
@@ -171,9 +124,6 @@ index 934926e..2ff8662 100644
 +#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 9274a44..3b4fc33 100644
 --- a/rts/StgCRunAsm.S
 +++ b/rts/StgCRunAsm.S
 @@ -5,7 +5,7 @@
diff --git a/srcpkgs/ghc/template b/srcpkgs/ghc/template
index b8b16f67b433..c4bbb3e4e3b1 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=8.10.7
+version=9.0.2
 revision=1
 wrksrc="ghc-${version%[!0-9]}"
 build_style=gnu-configure
@@ -14,7 +14,7 @@ maintainer="slotThe <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=e3eef6229ce9908dfe1ea41436befb0455fefb1932559e860ad4c606b0d03c9d
+checksum=140e42b96346322d1a39eb17602bcdc76e292028ad4a69286b230bab188a9197
 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 90bdce8ae8ab36517c9cfb601f4e51cba4703bce Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sat, 19 Mar 2022 10:48:13 +0100
Subject: [PATCH 02/17] cabal-install: update to 3.6.3.0

Technically, this is only upgrading Cabal (the library) to 3.6.3.0, as
the installed version of cabal-install is still 3.6.2.0.  This is,
however, necessary for GHC 9.x support.
---
 srcpkgs/cabal-install/files/linux-9.0.2.json | 1 +
 srcpkgs/cabal-install/template               | 9 +++++----
 2 files changed, 6 insertions(+), 4 deletions(-)
 create mode 100644 srcpkgs/cabal-install/files/linux-9.0.2.json

diff --git a/srcpkgs/cabal-install/files/linux-9.0.2.json b/srcpkgs/cabal-install/files/linux-9.0.2.json
new file mode 100644
index 000000000000..f3cb6b4aeeb5
--- /dev/null
+++ b/srcpkgs/cabal-install/files/linux-9.0.2.json
@@ -0,0 +1 @@
+{"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/template b/srcpkgs/cabal-install/template
index d6d718709993..6a4b0ad7fc0e 100644
--- a/srcpkgs/cabal-install/template
+++ b/srcpkgs/cabal-install/template
@@ -1,6 +1,6 @@
 # Template file for 'cabal-install'
 pkgname=cabal-install
-version=3.6.2.0
+version=3.6.3.0
 revision=1
 wrksrc=cabal-Cabal-v${version}
 hostmakedepends="ghc curl tar which"
@@ -11,7 +11,7 @@ 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=dcf31e82cd85ea3236be18cc36c68058948994579ea7de18f99175821dbbcb64
+checksum=dea086acad6d9fe5fe22d838b95b4e988022e8519f38d41609119ea32bfb7466
 nopie_files="/usr/bin/cabal"
 nocross=yes
 
@@ -19,12 +19,13 @@ 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-8.10.7.json ;;
+		vsed -i -e 's/+ofd-locking/-ofd-locking/' bootstrap/linux-9.0.2.json ;;
 	esac
 }
 
 do_build() {
-	PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-8.10.7.json
+	cp "${FILESDIR}/linux-9.0.2.json" bootstrap/
+	PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-9.0.2.json
 }
 do_install() {
 	vbin _build/bin/cabal

From fca528d49c56be81a9fc18c0f74b3ad761698a27 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sat, 19 Mar 2022 12:54:36 +0100
Subject: [PATCH 03/17] stack: update stackage resolver to lts-19.0

Related: https://github.com/commercialhaskell/stack/pull/5559
---
 srcpkgs/stack/patches/ghc9.0.2.patch | 212 +++++++++++++++++++++++++++
 srcpkgs/stack/template               |   6 +-
 2 files changed, 215 insertions(+), 3 deletions(-)
 create mode 100644 srcpkgs/stack/patches/ghc9.0.2.patch

diff --git a/srcpkgs/stack/patches/ghc9.0.2.patch b/srcpkgs/stack/patches/ghc9.0.2.patch
new file mode 100644
index 000000000000..bdd77de58c6b
--- /dev/null
+++ b/srcpkgs/stack/patches/ghc9.0.2.patch
@@ -0,0 +1,212 @@
+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/template b/srcpkgs/stack/template
index 9e53b95ca633..15c38039684d 100644
--- a/srcpkgs/stack/template
+++ b/srcpkgs/stack/template
@@ -1,8 +1,8 @@
 # Template file for 'stack'
 pkgname=stack
 version=2.7.5
-revision=1
-_stackage="lts-18.14"
+revision=2
+_stackage="lts-19.0"
 hostmakedepends="cabal-install pkg-config unzip"
 makedepends="zlib-devel pcre-devel"
 depends="git gmp-devel iana-etc"
@@ -13,7 +13,7 @@ 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
- 78577c091074d78f9d6e09d6e31e7fc8ac2ddbb0dbc4ac65c606adcac4957d7f"
+ 6b9983f6448eb825231f65fe955d6d85516f482f0d26fee84183a1a79c6b0646"
 skip_extraction="cabal.config-${_stackage}"
 nocross=yes
 nopie_files="/usr/bin/stack"

From 9de9a979acc648b9901fbc319d5af00023176d9b Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 09:17:26 +0100
Subject: [PATCH 04/17] cgrep: bump for stackage lts-19.0

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

diff --git a/srcpkgs/cgrep/template b/srcpkgs/cgrep/template
index e57106f3fa26..1c54fe367396 100644
--- a/srcpkgs/cgrep/template
+++ b/srcpkgs/cgrep/template
@@ -1,9 +1,9 @@
 # Template file for 'cgrep'
 pkgname=cgrep
 version=6.7.1
-revision=2
+revision=3
 build_style=haskell-stack
-stackage="lts-18.15"
+stackage="lts-19.0"
 makedepends="pcre-devel pkg-config"
 short_desc="Context-aware grep for source codes"
 maintainer="slotThe <soliditsallgood@mailbox.org>"

From 39baaa9e9822341c8c1d8a90f62843a60692c679 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 09:23:26 +0100
Subject: [PATCH 05/17] git-mediate: bump for stackage lts-19.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 0c9ec10241e5..705df7843b8e 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=2
+revision=3
 build_style=haskell-stack
-stackage="lts-18.14"
+stackage="lts-19.0"
 depends="git"
 short_desc="Tool to help resolving git conflicts"
 maintainer="Peter Wang <novalazy@gmail.com>"

From 47024f61e647b0f4fa02b273516755d86fda46a6 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 09:51:34 +0100
Subject: [PATCH 06/17] hlint: update to 3.3.6

---
 srcpkgs/hlint/template | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/srcpkgs/hlint/template b/srcpkgs/hlint/template
index fd72c1bbea58..0109be25805f 100644
--- a/srcpkgs/hlint/template
+++ b/srcpkgs/hlint/template
@@ -1,16 +1,16 @@
 # Template file for 'hlint'
 pkgname=hlint
-version=3.2.7
-revision=2
+version=3.3.6
+revision=1
 build_style=haskell-stack
-stackage="lts-18.14"
+stackage="lts-19.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=fcdeefcc79a52206add44b409abcab48c5fe2adff9d5aff077acbc43c702b54e
+checksum=7d536c03f77a0c259efb2b00b525ef34578ca8a4a95ccb412708e8c7172e2e6a
 nocross=yes # Can't yet cross compile Haskell
 nopie_files="/usr/bin/hlint"
 

From 9187ce00b74630b99af08af7afd8a17e6fc0fbea Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 11:38:44 +0100
Subject: [PATCH 07/17] pandoc: update to 2.17.1.1

+ Fix compilation of `pandoc-crossref` for musl systems.
+ Remove the `system-lua` flag, as `pkg-config` already implies it [1].

Related: https://github.com/lierdakil/pandoc-crossref/issues/342
[1]: https://github.com/hslua/hslua/blob/main/lua/README.md?plain=1#L39-L40
---
 srcpkgs/pandoc/files/pandoc-crossref.cabal | 230 +++++++++++++++++++++
 srcpkgs/pandoc/template                    |  43 ++--
 2 files changed, 249 insertions(+), 24 deletions(-)
 create mode 100644 srcpkgs/pandoc/files/pandoc-crossref.cabal

diff --git a/srcpkgs/pandoc/files/pandoc-crossref.cabal b/srcpkgs/pandoc/files/pandoc-crossref.cabal
new file mode 100644
index 000000000000..39f2b9e7bde0
--- /dev/null
+++ b/srcpkgs/pandoc/files/pandoc-crossref.cabal
@@ -0,0 +1,230 @@
+cabal-version: 2.0
+
+-- This file has been generated from package.yaml by hpack version 0.34.6.
+--
+-- see: https://github.com/sol/hpack
+--
+-- hash: 20655cd6263e9fe7e5737ee81b093c8c6f5eae67e260ddd3a821ac6ef5e35e69
+
+name:           pandoc-crossref
+version:        0.3.13.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
+homepage:       https://github.com/lierdakil/pandoc-crossref#readme
+bug-reports:    https://github.com/lierdakil/pandoc-crossref/issues
+author:         Nikolay Yakimov
+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
+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/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/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
+
+source-repository head
+  type: git
+  location: https://github.com/lierdakil/pandoc-crossref
+
+flag enable_flaky_tests
+  description: Some tests rely on specific behaviour of pandoc, which may change between minor versions. These are still useful indicators for the developer, but not necessarily indicating there's a problem with the package itself. Enable if you know what you are doing.
+  manual: True
+  default: False
+
+library
+  exposed-modules:
+      Text.Pandoc.CrossRef
+  other-modules:
+      Text.Pandoc.CrossRef.References
+      Text.Pandoc.CrossRef.References.Blocks
+      Text.Pandoc.CrossRef.References.List
+      Text.Pandoc.CrossRef.References.Refs
+      Text.Pandoc.CrossRef.References.Types
+      Text.Pandoc.CrossRef.Util.CodeBlockCaptions
+      Text.Pandoc.CrossRef.Util.CustomLabels
+      Text.Pandoc.CrossRef.Util.Meta
+      Text.Pandoc.CrossRef.Util.ModifyMeta
+      Text.Pandoc.CrossRef.Util.Options
+      Text.Pandoc.CrossRef.Util.Settings
+      Text.Pandoc.CrossRef.Util.Settings.Gen
+      Text.Pandoc.CrossRef.Util.Settings.Template
+      Text.Pandoc.CrossRef.Util.Template
+      Text.Pandoc.CrossRef.Util.Util
+  hs-source-dirs:
+      lib
+      lib-internal
+  ghc-options: -Wall
+  build-depends:
+      base >=4.11 && <5
+    , containers >=0.1 && <0.7
+    , data-default >=0.4 && <0.8
+    , directory >=1 && <1.4
+    , filepath >=1.1 && <1.5
+    , 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.*
+    , syb >=0.4 && <0.8
+    , template-haskell >=2.7.0.0 && <3.0.0.0
+    , text >=1.2.2 && <1.3
+    , utility-ht >=0.0.11 && <0.1.0
+  default-language: Haskell2010
+
+executable pandoc-crossref
+  main-is: pandoc-crossref.hs
+  other-modules:
+      ManData
+  hs-source-dirs:
+      src
+  ghc-options: -Wall -threaded
+  build-depends:
+      base >=4.11 && <5
+    , deepseq ==1.4.*
+    , gitrev >=1.3.1 && <1.4
+    , open-browser ==0.2.*
+    , optparse-applicative >=0.13 && <0.17
+    , pandoc >=2.10 && <2.18
+    , pandoc-crossref
+    , pandoc-types >=1.21 && <1.23
+    , template-haskell >=2.7.0.0 && <3.0.0.0
+    , temporary >=1.2 && <1.4
+    , text >=1.2.2 && <1.3
+  default-language: Haskell2010
+
+test-suite test-integrative
+  type: exitcode-stdio-1.0
+  main-is: test-integrative.hs
+  hs-source-dirs:
+      test
+  ghc-options: -Wall -fno-warn-unused-do-bind -threaded
+  build-depends:
+      base >=4.11 && <5
+    , directory >=1 && <1.4
+    , filepath >=1.1 && <1.5
+    , hspec >=2.4.4 && <3
+    , pandoc >=2.10 && <2.18
+    , pandoc-crossref
+    , pandoc-types >=1.21 && <1.23
+    , text >=1.2.2 && <1.3
+  if flag(enable_flaky_tests)
+    cpp-options: -DFLAKY
+  default-language: Haskell2010
+
+test-suite test-pandoc-crossref
+  type: exitcode-stdio-1.0
+  main-is: test-pandoc-crossref.hs
+  other-modules:
+      Native
+      Paths_pandoc_crossref
+  autogen-modules:
+      Paths_pandoc_crossref
+  hs-source-dirs:
+      test
+  ghc-options: -Wall -fno-warn-unused-do-bind -threaded
+  build-depends:
+      base >=4.11 && <5
+    , containers >=0.1 && <0.7
+    , data-default >=0.4 && <0.8
+    , 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-crossref
+    , pandoc-types >=1.21 && <1.23
+    , text >=1.2.2 && <1.3
+  if flag(enable_flaky_tests)
+    cpp-options: -DFLAKY
+  default-language: Haskell2010
+
+benchmark simple
+  type: exitcode-stdio-1.0
+  main-is: bench-simple.hs
+  other-modules:
+      Native
+  hs-source-dirs:
+      test
+  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
+    , pandoc-crossref
+    , pandoc-types >=1.21 && <1.23
+    , text >=1.2.2 && <1.3
+  default-language: Haskell2010
diff --git a/srcpkgs/pandoc/template b/srcpkgs/pandoc/template
index 8628b1d1f3c2..9bdf32ef3c53 100644
--- a/srcpkgs/pandoc/template
+++ b/srcpkgs/pandoc/template
@@ -1,18 +1,18 @@
 # Template file for 'pandoc'
 pkgname=pandoc
 # Keep in sync with http://www.stackage.org/lts
-version=2.14.0.3
-revision=3
-_sidenote_version=0.20.0.0
+version=2.17.1.1
+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
 create_wrksrc=yes
 build_style=haskell-stack
-stackage="lts-18.14"
+stackage="lts-19.0"
 make_build_args="
- --flag pandoc:embed_data_files --flag=hslua:system-lua
- --flag=hslua:pkg-config"
+ --flag pandoc:embed_data_files
+ --flag=lua:pkg-config"
 hostmakedepends="pkg-config unzip wget"
 makedepends="zlib-devel lua53-devel tar"
 short_desc="Universal converter between markup formats"
@@ -21,33 +21,28 @@ license="GPL-2.0-or-later, BSD-3-Clause"
 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"
-checksum="82e3f55bff3059bf30cf532e93d9876c9e3599aa4eafae9c907fe75a4430eddd
- 91f8e96d8470722d677d31d4bbf16c2ac6902567d818ed7a2715bad2617a4cdb
- be8485023fce236b5b915f2f6074f7b0470a2040f84cdd137c5227f1b4c98465"
-subpackages="pandoc-sidenote"
-nocross=yes
-nopie_files="
- /usr/bin/pandoc
- /usr/bin/pandoc-sidenote"
-
-# pandoc-crossref is currently broken on musl. See lierdakil/pandoc-crossref#342 and commercialhaskell/stack#5683
-if [ "$XBPS_TARGET_LIBC" != "musl" ]; then
-	distfiles+="
+ 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+="
+checksum="649ec528d1413130c5ce304b826ff473b3696269eea8834d908589e775bd1ad1
+ c39dd7343b9cb4dc5b1c91c9e47c3d357874e9e1a30b8d377bbea0b1d50323b2
+ be8485023fce236b5b915f2f6074f7b0470a2040f84cdd137c5227f1b4c98465
  94540325c9c98ae4d5199c634bf402ffa41e3c5b020d7207daef90fd9e224fb4
  b9c7195b69b1662a286d2c28a55fafdcb693c522ba5eb54a11b1d0a4e92eaa81"
-	nopie_files+="
- /usr/bin/pandoc-crossref"
-	subpackages+="
+subpackages="
+ pandoc-sidenote
  pandoc-crossref"
-fi
+nocross=yes
+nopie_files="
+ /usr/bin/pandoc
+ /usr/bin/pandoc-sidenote
+ /usr/bin/pandoc-crossref"
 
 post_extract() {
 	sed -i 's/tasty .*,/tasty,/' pandoc-*/pandoc.cabal
 	sed -i 's/zip-archive .*,/zip-archive,/' pandoc-*/pandoc.cabal
+	# See https://github.com/lierdakil/pandoc-crossref/issues/342#issuecomment-1073256586
+	cp "${FILESDIR}/pandoc-crossref.cabal" pandoc-crossref-${_crossref_version}
 }
 
 post_install() {

From 96ca211c88712bf81839c41232703ec4fb89208e Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 12:15:01 +0100
Subject: [PATCH 08/17] shellcheck: bump for stackage lts-19.0

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

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

From d7c5bd5bc2bf3506928f1ec886dfdd3fb90799b9 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 12:52:11 +0100
Subject: [PATCH 09/17] hoogle: update to 5.0.18.3

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

diff --git a/srcpkgs/hoogle/template b/srcpkgs/hoogle/template
index 4c3e80186494..dc487cab4017 100644
--- a/srcpkgs/hoogle/template
+++ b/srcpkgs/hoogle/template
@@ -1,16 +1,16 @@
 # Template file for 'hoogle'
 pkgname=hoogle
-version=5.0.18.2
-revision=2
+version=5.0.18.3
+revision=1
 build_style=haskell-stack
-stackage="lts-18.14"
+stackage="lts-19.0"
 makedepends="zlib-devel"
 short_desc="Haskell API search engine"
 maintainer="Inokentiy Babushkin <twk@twki.de>"
 license="BSD-3-Clause"
 homepage="https://hoogle.haskell.org/"
 distfiles="https://github.com/ndmitchell/${pkgname}/archive/v${version}.tar.gz"
-checksum=9f8f0afde52fe602100ab7828fad230c2f5e94050dda9fe1e2a9f0a93f7fe617
+checksum=a2765fcbaf99fe67a64ef29fe50e69fb380cce07807cddeb0836c148b1ae472b
 nopie_files="/usr/bin/hoogle"
 nocross=yes # Can't yet cross compile Haskell
 

From 3cc03d6b11b7f6ef4e6a8b8805cf4ee979b4badc Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 13:33:12 +0100
Subject: [PATCH 10/17] xmobar: update to 0.42

Also enable most flags during compilation in order to be less surprising
with regards to what features xmobar supports out of the box.
---
 srcpkgs/xmobar/files/stack.yaml | 2 +-
 srcpkgs/xmobar/template         | 8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/xmobar/files/stack.yaml b/srcpkgs/xmobar/files/stack.yaml
index 47544eb729d8..7e0956374142 100644
--- a/srcpkgs/xmobar/files/stack.yaml
+++ b/srcpkgs/xmobar/files/stack.yaml
@@ -1,4 +1,4 @@
-resolver: lts-18.13
+resolver: lts-19.0
 packages:
 - .
 extra-deps:
diff --git a/srcpkgs/xmobar/template b/srcpkgs/xmobar/template
index b97c9f268d68..6a12a9ed7055 100644
--- a/srcpkgs/xmobar/template
+++ b/srcpkgs/xmobar/template
@@ -1,7 +1,7 @@
 # Template file for 'xmobar'
 pkgname=xmobar
-version=0.39
-revision=2
+version=0.42
+revision=1
 build_style=haskell-stack
 hostmakedepends="pkg-config"
 makedepends="libX11-devel libXinerama-devel libXrandr-devel libXScrnSaver-devel
@@ -15,10 +15,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=46f37b90dd3ba3348dbe7de716b88606c7f0f0dd22a3580176b5cd089c1b36cc
+checksum=53f4a06d79c3db32ef1a498ec7b764b17d03ebf9bca3126c6b8259595492769b
 build_options="dbus threaded utf8 xft mpd mpris inotify iwlib alsa datezone
  xpm uvmeter weather nl80211"
-build_options_default="threaded utf8 xft inotify nl80211 datezone weather xpm"
+build_options_default="threaded utf8 xft inotify nl80211 datezone weather xpm alsa mpris mpd dbus"
 nopie_files="/usr/bin/xmobar"
 nocross=yes
 vopt_hflag() {

From d9425e49584c01d9b19fb4231d327bb36a5b15f7 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 18:09:34 +0100
Subject: [PATCH 11/17] hledger: update to 1.25

---
 srcpkgs/hledger/template | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/hledger/template b/srcpkgs/hledger/template
index fdcab180a6de..32d39207fd82 100644
--- a/srcpkgs/hledger/template
+++ b/srcpkgs/hledger/template
@@ -1,8 +1,9 @@
 # Template file for 'hledger'
 pkgname=hledger
-version=1.23
-revision=2
+version=1.25
+revision=1
 build_style=haskell-stack
+stackage="lts-19.0"
 makedepends="zlib-devel ncurses-devel"
 short_desc="Simple, precise, plain text accounting"
 maintainer="Inokentiy Babushkin <twk@twki.de>"
@@ -10,7 +11,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/${pkgname}/archive/${version}.tar.gz"
-checksum=7252d78aafbae488b113a6350518a702186cacc4e746cec2b31f8321b4dddcb4
+checksum=4c947c2a7d243d2a56efc1fa02994a118e995df025a412f6d2daeadfd78338ee
 nopie_files="/usr/bin/hledger"
 nocross=yes # Can't yet cross compile Haskell
 

From 54d9f8a086bfbb6efd1ffe6d3d8fb8a4666882fe Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Mon, 21 Mar 2022 08:19:29 +0100
Subject: [PATCH 12/17] haskell-language-server: update to 1.6.1.0

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

diff --git a/srcpkgs/haskell-language-server/template b/srcpkgs/haskell-language-server/template
index 0182c9b95757..0c7b2187c5ca 100644
--- a/srcpkgs/haskell-language-server/template
+++ b/srcpkgs/haskell-language-server/template
@@ -1,16 +1,16 @@
 # Template file for 'haskell-language-server'
 pkgname=haskell-language-server
-version=1.4.0
+version=1.6.1.0
 revision=1
 build_style="haskell-stack"
-make_build_args="--stack-yaml stack-8.10.7.yaml"
+make_build_args="--stack-yaml stack-9.0.2.yaml"
 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>"
 license="Apache-2.0"
 homepage="https://github.com/haskell/haskell-language-server"
 distfiles="https://github.com/haskell/haskell-language-server/archive/${version}.tar.gz"
-checksum=c5d7dbf7fae9aa3ed2c1184b49e82d8ac623ca786494ef6602cfe11735d28db0
+checksum=e5c336ad2de8d021c882cdac5bbc26bf6427df8d2a5bd244c05cf18296a9bfdc
 nopie_files="
  /usr/bin/haskell-language-server
  /usr/bin/haskell-language-server-wrapper

From 5812fa9cf0ff696b488e329966b54130cf39e185 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Mon, 21 Mar 2022 15:48:58 +0100
Subject: [PATCH 13/17] git-annex: update to 10.20220222

---
 srcpkgs/git-annex/files/stack.yaml | 33 ++++++++++++++++++++++++++++++
 srcpkgs/git-annex/template         |  5 +++--
 2 files changed, 36 insertions(+), 2 deletions(-)
 create mode 100644 srcpkgs/git-annex/files/stack.yaml

diff --git a/srcpkgs/git-annex/files/stack.yaml b/srcpkgs/git-annex/files/stack.yaml
new file mode 100644
index 000000000000..4935307f48cf
--- /dev/null
+++ b/srcpkgs/git-annex/files/stack.yaml
@@ -0,0 +1,33 @@
+flags:
+  git-annex:
+    production: true
+    assistant: true
+    pairing: true
+    torrentparser: true
+    webapp: true
+    magicmime: false
+    dbus: false
+    debuglocks: false
+    benchmark: true
+    networkbsd: true
+    gitlfs: true
+    httpclientrestricted: true
+packages:
+  - '.'
+resolver: lts-19.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
diff --git a/srcpkgs/git-annex/template b/srcpkgs/git-annex/template
index 1cf2ab14789f..7b788bc5861e 100644
--- a/srcpkgs/git-annex/template
+++ b/srcpkgs/git-annex/template
@@ -1,8 +1,9 @@
 # Template file for 'git-annex'
 pkgname=git-annex
-version=8.20211028
+version=10.20220222
 revision=1
 build_style=haskell-stack
+stackage="lts-19.0"
 makedepends="curl file-devel gnupg2 gnutls-devel gsasl-devel libxml2-devel
  lsof rsync git ncurses-devel"
 # depends are utilities required by git-annex
@@ -12,7 +13,7 @@ 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="http://git-annex.branchable.com"
 distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz"
-checksum=cf5efe15e68d467daad673bec10037a27a78da7e4af9b4a85e10980bd90ace2d
+checksum=1fb9f75a83feb16f7515122135c0f3abe6aa77544d8d778792296cbc053d2c85
 nopie_files="/usr/bin/git-annex"
 nocross=yes
 

From 35fdbb69e22e166c8630e1e1f6b9cb228c38e960 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Wed, 23 Mar 2022 09:14:58 +0100
Subject: [PATCH 14/17] darcs: bump for stackage lts-19.0

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

diff --git a/srcpkgs/darcs/files/stack.yaml b/srcpkgs/darcs/files/stack.yaml
index 5ae0f5313b8d..6e459703764a 100644
--- a/srcpkgs/darcs/files/stack.yaml
+++ b/srcpkgs/darcs/files/stack.yaml
@@ -1,7 +1,4 @@
-resolver: lts-18.14
+resolver: lts-19.0
 packages:
 - .
-extra-deps:
-- graphviz-2999.20.1.0
-- constraints-0.12@sha256:7edf1e72a92d0a6761da634f08be9123dfcc0dcec11c269cbf465a09721c3481,2322
-- cryptonite-0.27@sha256:c3a9c8ce11e654a9d5bee827b089d4b50587272828d0c52a85362a58667a916c,18163
+allow-newer: true
diff --git a/srcpkgs/darcs/template b/srcpkgs/darcs/template
index f9fcac534d46..15a8f71f9021 100644
--- a/srcpkgs/darcs/template
+++ b/srcpkgs/darcs/template
@@ -1,7 +1,7 @@
 # Template file for 'darcs'
 pkgname=darcs
 version=2.16.5
-revision=2
+revision=3
 build_style=haskell-stack
 hostmakedepends="unzip"
 makedepends="zlib-devel libcurl-devel ncurses-devel"

From 9313f5ae803cb443e4b4060e92d053cb1089e258 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Thu, 24 Mar 2022 11:50:45 +0100
Subject: [PATCH 15/17] debug-me: bump for stackage lts-19.0

---
 srcpkgs/debug-me/files/stack.yaml        |  8 +--
 srcpkgs/debug-me/patches/aeson-2.0.patch | 73 ++++++++++++++++++++++++
 srcpkgs/debug-me/patches/ghc8.10.4.patch | 11 ----
 srcpkgs/debug-me/template                |  2 +-
 4 files changed, 77 insertions(+), 17 deletions(-)
 create mode 100644 srcpkgs/debug-me/patches/aeson-2.0.patch

diff --git a/srcpkgs/debug-me/files/stack.yaml b/srcpkgs/debug-me/files/stack.yaml
index ad8b055bb33e..4363ebc5e4f9 100644
--- a/srcpkgs/debug-me/files/stack.yaml
+++ b/srcpkgs/debug-me/files/stack.yaml
@@ -1,8 +1,6 @@
 packages:
 - '.'
-resolver: lts-18.14
+resolver: lts-19.0
 extra-deps:
-- posix-pty-0.2.1.1
-- graphviz-2999.20.1.0
-- sandi-0.5
-- protobuf-0.2.1.3@sha256:d8ed3c73027c6b7e7583c6a94ee1835beee8a755a875b06bbf51bc667d53ab69,3048
+  - posix-pty-0.2.2@sha256:dd777df258b3b95fe01612c1204cde972ad1323c3289591ecc844ecb29e55e2b,1826
+  - sandi-0.5@sha256:b278d072ca717706ea38f9bd646e023f7f2576a778fb43565b434f93638849aa,3010
diff --git a/srcpkgs/debug-me/patches/aeson-2.0.patch b/srcpkgs/debug-me/patches/aeson-2.0.patch
new file mode 100644
index 000000000000..5feba2265724
--- /dev/null
+++ b/srcpkgs/debug-me/patches/aeson-2.0.patch
@@ -0,0 +1,73 @@
+From 6a3eb115c7d3732f2d0f6fa62df042b8afd0235c Mon Sep 17 00:00:00 2001
+From: Tony Zorman <soliditsallgood@mailbox.org>
+Date: Thu, 24 Mar 2022 10:58:13 +0100
+Subject: [PATCH] Support aeson 2.0
+
+As per the aeson 2.0.0.0 changelog[1], starting with that version the
+map type used by Object is now abstract, as is the key type of that map.
+
+Related: https://github.com/haskell/aeson/pull/866
+Related: https://github.com/haskell/aeson/pull/868
+[1]: https://hackage.haskell.org/package/aeson-2.0.0.0/changelog
+---
+ Gpg/Wot.hs     | 13 ++++++++++++-
+ debug-me.cabal |  2 +-
+ 2 files changed, 13 insertions(+), 2 deletions(-)
+
+diff --git a/Gpg/Wot.hs b/Gpg/Wot.hs
+index 2a6d541..d916ebc 100644
+--- a/Gpg/Wot.hs
++++ b/Gpg/Wot.hs
+@@ -3,6 +3,7 @@
+  - Licensed under the GNU AGPL version 3 or higher.
+  -}
+
++{-# LANGUAGE CPP           #-}
+ {-# LANGUAGE DeriveGeneric #-}
+
+ -- | Gpg web of trust checking, using wotsap's JSON output
+@@ -15,8 +16,13 @@ import JSON
+ import Network.HTTP.Client
+ import Network.HTTP.Client.TLS
+ import Data.List
+-import qualified Data.HashMap.Strict as M
+ import qualified Data.Text as T
++#if MIN_VERSION_aeson(2, 0, 0)
++import qualified Data.Aeson.KeyMap as AM
++import qualified Data.Aeson.Key as AK
++#else
++import qualified Data.HashMap.Strict as M
++#endif
+
+ data WotStats = WotStats
+        { key :: Node
+@@ -43,9 +49,14 @@ data Node = Node
+
+ -- | wotsap's json has some upper-case fields; lowercase field for parsing
+ jsonLower :: Value -> Value
++#if MIN_VERSION_aeson(2, 0, 0)
++jsonLower (Object o) = Object . AM.mapKeyVal lowerKey id $ o
++  where lowerKey = AK.fromText . T.toLower . AK.toText
++#else
+ jsonLower (Object o) = Object . M.fromList . map lowerPair . M.toList $ o
+   where
+        lowerPair (k, v) = (T.toLower k, v)
++#endif
+ jsonLower x = x
+
+ instance FromJSON WotStats where
+diff --git a/debug-me.cabal b/debug-me.cabal
+index d859cbb..db7cc63 100644
+--- a/debug-me.cabal
++++ b/debug-me.cabal
+@@ -64,7 +64,7 @@ Executable debug-me
+     , stm-chans (>= 3.0)
+     , posix-pty (>= 0.2.1)
+     , terminal-size (>= 0.3)
+-    , aeson (>= 0.11 && < 1.5)
++    , aeson (>= 0.11 && < 2.1)
+     , sandi (>= 0.4)
+     , text (>= 1.2.2)
+     , optparse-applicative (>= 0.12)
+--
+2.35.1
diff --git a/srcpkgs/debug-me/patches/ghc8.10.4.patch b/srcpkgs/debug-me/patches/ghc8.10.4.patch
index bfcff16a4438..dc9be027822f 100644
--- a/srcpkgs/debug-me/patches/ghc8.10.4.patch
+++ b/srcpkgs/debug-me/patches/ghc8.10.4.patch
@@ -20,14 +20,3 @@
  		defaultSettings
 
  checkEnv :: ServerOpts -> IO ServerOpts
---- a/debug-me.cabal
-+++ b/debug-me.cabal
-@@ -64,7 +64,7 @@
-     , stm-chans (>= 3.0)
-     , posix-pty (>= 0.2.1)
-     , terminal-size (>= 0.3)
--    , aeson (>= 0.11 && < 1.5)
-+    , aeson (>= 0.11 && < 1.6)
-     , sandi (>= 0.4)
-     , text (>= 1.2.2)
-     , optparse-applicative (>= 0.12)
diff --git a/srcpkgs/debug-me/template b/srcpkgs/debug-me/template
index 86ac0037311a..298b38de58cd 100644
--- a/srcpkgs/debug-me/template
+++ b/srcpkgs/debug-me/template
@@ -1,7 +1,7 @@
 # Template file for 'debug-me'
 pkgname=debug-me
 version=1.20200820
-revision=3
+revision=4
 build_style=haskell-stack
 makedepends="zlib-devel"
 short_desc="Secure remote debugging"

From 16f308bde16d6c86e5e4be39a14e07d5e9321663 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sigrid=20Solveig=20Hafl=C3=ADnud=C3=B3ttir?=
 <ftrvxmtrx@gmail.com>
Date: Thu, 24 Mar 2022 09:27:25 +0100
Subject: [PATCH 16/17] ghc, ghc-bin: Add aarch64* support

---
 srcpkgs/ghc-bin/template | 22 ++++++++++++++++------
 srcpkgs/ghc/template     |  8 ++++++++
 2 files changed, 24 insertions(+), 6 deletions(-)

diff --git a/srcpkgs/ghc-bin/template b/srcpkgs/ghc-bin/template
index 3949ee3fa1aa..8a725a84e76a 100644
--- a/srcpkgs/ghc-bin/template
+++ b/srcpkgs/ghc-bin/template
@@ -1,8 +1,8 @@
 # Template file for 'ghc-bin'
 pkgname=ghc-bin
-version=8.10.7
+version=9.0.2
 revision=1
-archs="i686 x86_64* ppc64le* ppc64"
+archs="i686 x86_64* ppc64le* ppc64 aarch64*"
 wrksrc="ghc-${version%[!0-9]}"
 hostmakedepends="perl libffi libnuma"
 depends="ncurses perl gcc libffi-devel gmp-devel"
@@ -15,8 +15,8 @@ noshlibprovides=yes
 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=ced9870ea351af64fb48274b81a664cdb6a9266775f1598a79cbb6fdd5770a23
+	distfiles="https://downloads.haskell.org/ghc/${version%[!0-9]}/ghc-${version}-x86_64-deb9-linux.tar.xz"
+	checksum=805f5628ce6cec678ba77ff48c924831ebdf75ec2c66368e8935a618913a150e
 	;;
 x86_64-musl)
 	# create with "make binary-dist"
@@ -24,8 +24,8 @@ x86_64-musl)
 	checksum=52f6492f39f13890f4ecd83784724ae9fff7a02fdc624a56c49872c912608a50
 	;;
 i686)
-	distfiles="https://downloads.haskell.org/~ghc/${version%[!0-9]}/ghc-${version}-i386-deb9-linux.tar.xz"
-	checksum=fbfc1ef194f4e7a4c0da8c11cc69b17458a4b928b609b3622c97acc4acd5c5ab
+	distfiles="https://downloads.haskell.org/ghc/${version%[!0-9]}/ghc-${version}-i386-deb9-linux.tar.xz"
+	checksum=fdeb9f8928fbe994064778a8e1e85bb1a58a6cd3dd7b724fcc2a1dcfda6cad47
 	;;
 ppc64le)
 	distfiles="https://alpha.de.repo.voidlinux.org/distfiles/ghc-${version}-powerpc64le-void-linux.tar.xz"
@@ -39,6 +39,16 @@ ppc64)
 	distfiles="https://alpha.de.repo.voidlinux.org/distfiles/ghc-${version}-powerpc64-void-linux.tar.xz"
 	checksum=b8578e602abd4b453845303fb9cfed0b2186f86f60e3aa45869026ea833726c8
 	;;
+aarch64)
+	distfiles="https://alpha.de.repo.voidlinux.org/distfiles/ghc-${version}-aarch64-void-linux.tar.xz"
+	checksum=429a84d2850357e305a017c7d3eb1cb7cf838e900e52920d555de39d9c59b8c6
+	depends+=" llvm"
+	;;
+aarch64-musl)
+	distfiles="https://alpha.de.repo.voidlinux.org/distfiles/ghc-${version}-aarch64-void-linux-musl.tar.xz"
+	checksum=f2c37a5ed028eebd3e69a22ce989f5cdf6f84a408871ff0933ac532414c6c273
+	depends+=" llvm"
+	;;
 *)
 	broken="No distfiles available for this target"
 	;;
diff --git a/srcpkgs/ghc/template b/srcpkgs/ghc/template
index c4bbb3e4e3b1..d0b1600987be 100644
--- a/srcpkgs/ghc/template
+++ b/srcpkgs/ghc/template
@@ -54,6 +54,14 @@ elif [ "${XBPS_MACHINE%-*}" != "${XBPS_TARGET_MACHINE%-*}" ]; then
 	configure_args+=" --host=${XBPS_TRIPLET} --target=${XBPS_CROSS_TRIPLET}"
 fi
 
+case "$XBPS_TARGET_MACHINE" in
+aarch64*)
+	# GHC uses LLVM to generate code on aarch64
+	hostmakedepends+=" llvm"
+	depends+=" llvm"
+	;;
+esac
+
 # Recent safe to use tarball
 # GHC's bundled tarball is from 2017, buggy on some archs
 _ffi_rev=4d6d2866ae43e55325e8ee96561221804602cd7a

From 18c28b272a079b3e3b23d30afb4fbfd5730fe4dc Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Thu, 24 Mar 2022 14:27:41 +0100
Subject: [PATCH 17/17] kmonad: update to
 65b501defdd0049563752f8af8c8c57f5a1ae38b

The reason for updating to an unreleased version is that the author
(and core maintainer) of the project is chronically ill[1] and unable
to spend a lot of time on kmonad.  At the same time, there is a rather
large refactor on the way, without which a new release would not make
too much sense[2].  As such, updating to what's essentially HEAD makes
sense in this case; it is not any less stable than 0.4.1 (I've
personally been running this for months without any problems).  As a
bonus, we get GHC 9.0.2 compatibility for free and do not need to
cherry pick the relevant commits.

[1]: https://github.com/kmonad/kmonad#disclaimer
[2]: https://github.com/kmonad/kmonad/pull/372
---
 srcpkgs/kmonad/template | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/srcpkgs/kmonad/template b/srcpkgs/kmonad/template
index c93d2bee4c4f..829d96a535eb 100644
--- a/srcpkgs/kmonad/template
+++ b/srcpkgs/kmonad/template
@@ -1,15 +1,15 @@
 # Template file for 'kmonad'
 pkgname=kmonad
-version=0.4.1
-revision=3
+version=65b501defdd0049563752f8af8c8c57f5a1ae38b
+revision=1
 build_style=haskell-stack
-stackage=lts-18.14
+stackage=lts-19.0
 short_desc="Keyboard remapping utility providing qmk-like functionality"
 maintainer="slotThe <soliditsallgood@mailbox.org>"
 license="MIT"
 homepage="https://github.com/david-janssen/kmonad"
 distfiles="${homepage}/archive/${version}.tar.gz"
-checksum=cb66f0c6d4c304c7e3c48cefd0c50ea00b156ffc361e278e1fc5c6070317d927
+checksum=2b0cb0c5d1575bf61b1c442476ad24103028c309d103fedb56214a3bb30f8c0f
 nopie_files="/usr/bin/kmonad"
 nocross=yes
 

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

* Re: [WIP] Update to GHC 9.0.2/Stackage LTS-19.0
  2022-03-23  7:20 [PR PATCH] [WIP] Update to GHC 9.0.2/Stackage LTS-19.0 slotThe
                   ` (5 preceding siblings ...)
  2022-03-24 13:37 ` slotThe
@ 2022-03-24 23:05 ` ftrvxmtrx
  2022-03-25 12:11 ` [PR PATCH] [Updated] " slotThe
                   ` (14 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: ftrvxmtrx @ 2022-03-24 23:05 UTC (permalink / raw)
  To: ml

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

New comment by ftrvxmtrx on void-packages repository

https://github.com/void-linux/void-packages/pull/36292#issuecomment-1078464900

Comment:
I've set up rsync://ftrv.se/ghc902 for the builds I'm making, just in case.

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

* Re: [PR PATCH] [Updated] [WIP] Update to GHC 9.0.2/Stackage LTS-19.0
  2022-03-23  7:20 [PR PATCH] [WIP] Update to GHC 9.0.2/Stackage LTS-19.0 slotThe
                   ` (6 preceding siblings ...)
  2022-03-24 23:05 ` ftrvxmtrx
@ 2022-03-25 12:11 ` slotThe
  2022-03-25 13:14 ` slotThe
                   ` (13 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: slotThe @ 2022-03-25 12:11 UTC (permalink / raw)
  To: ml

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

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

https://github.com/slotThe/void-packages stackage-19
https://github.com/void-linux/void-packages/pull/36292

[WIP] Update to GHC 9.0.2/Stackage LTS-19.0
And so... the ~~hunt~~ fun begins again!

### Core packages to bump

- [x] ghc
- [ ] ghc-bin
    - [ ] x86_64-musl
    cc. @q66 for the following
    - [ ] ppc64le
    - [ ] ppc64le-musl
    - [x] aarch64 [Link](https://ftrv.se/_/void/ghc-9.0.2/ghc-9.0.2-aarch64-void-linux.tar.xz) **Not uploaded yet**
    - [x] aarch64-musl [Link](https://ftrv.se/_/void/ghc-9.0.2/ghc-9.0.2-aarch64-void-linux-musl.tar.xz) **Not uploaded yet**
- [x] cabal-install
- [x] stack

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

Most of these are already done, things should probably go smoothly as 9.0.x does not contain any big breaking changes.

- [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 (contains a fix for `pandoc-crossref` on musl \o/)
- [x] xmobar
- [x] haskell-language-server

### Other things to do 

- [ ] Either incorporate https://github.com/void-linux/void-packages/pull/36193 into this PR or merge it first and then rebuild GHC for aarch64 and aarch64-musl; cc. @ftrvxmtrx

[ci skip]

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

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-stackage-19-36292.patch --]
[-- Type: text/x-diff, Size: 62961 bytes --]

From 5ce0a7ea17703bcfb1fc7b4007efef9e20b2d395 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Fri, 18 Mar 2022 17:33:46 +0100
Subject: [PATCH 01/17] ghc: update to 9.0.2

---
 .../ghc/patches/no-atomic-64-on-32bit.patch   | 58 -------------
 srcpkgs/ghc/patches/ppc64-be-elfv2.patch      | 86 ++++---------------
 srcpkgs/ghc/template                          |  4 +-
 3 files changed, 20 insertions(+), 128 deletions(-)
 delete mode 100644 srcpkgs/ghc/patches/no-atomic-64-on-32bit.patch

diff --git a/srcpkgs/ghc/patches/no-atomic-64-on-32bit.patch b/srcpkgs/ghc/patches/no-atomic-64-on-32bit.patch
deleted file mode 100644
index 05ca275ea9df..000000000000
--- a/srcpkgs/ghc/patches/no-atomic-64-on-32bit.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 5c5aa87d50dc4ea97e76e13f285a7b5dd71fcd88 Mon Sep 17 00:00:00 2001
-From: Ilias Tsitsimpis <iliastsi@debian.org>
-Date: Sun, 1 Mar 2020 16:25:13 +0200
-Subject: [PATCH] Do not define hs_atomic{read,write}64() on non-64bit
-
-Do not define hs_atomicread64() and hs_atomicwrite64() on machines where
-WORD_SIZE_IN_BITS is less than 64, just like we do with the rest of the atomic
-functions which work on 64-bit values.
-
-Without this, compilation fails on MIPSel and PowerPC with the following error:
-
-/usr/bin/ld: /<<PKGBUILDDIR>>/libraries/ghc-prim/dist-install/build/libHSghc-prim-0.5.3_p.a(atomic.p_o): in function `hs_atomicread64':
-atomic.c:(.text.hs_atomicread64+0x8): undefined reference to `__sync_add_and_fetch_8'
-/usr/bin/ld: /<<PKGBUILDDIR>>/libraries/ghc-prim/dist-install/build/libHSghc-prim-0.5.3_p.a(atomic.p_o): in function `hs_atomicwrite64':
-atomic.c:(.text.hs_atomicwrite64+0x38): undefined reference to `__sync_bool_compare_and_swap_8'
-
-Fixes #17886.
----
- libraries/ghc-prim/cbits/atomic.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/libraries/ghc-prim/cbits/atomic.c b/libraries/ghc-prim/cbits/atomic.c
-index ac2e608ec2..01037d70ee 100644
---- a/libraries/ghc-prim/cbits/atomic.c
-+++ b/libraries/ghc-prim/cbits/atomic.c
-@@ -361,6 +361,7 @@ hs_atomicread32(StgWord x)
- #endif
- }
- 
-+#if WORD_SIZE_IN_BITS == 64
- extern StgWord64 hs_atomicread64(StgWord x);
- StgWord64
- hs_atomicread64(StgWord x)
-@@ -371,6 +372,7 @@ hs_atomicread64(StgWord x)
-   return __sync_add_and_fetch((StgWord64 *) x, 0);
- #endif
- }
-+#endif
- 
- // AtomicWriteByteArrayOp_Int
- // Implies a full memory barrier (see compiler/prelude/primops.txt.pp)
-@@ -409,6 +411,7 @@ hs_atomicwrite32(StgWord x, StgWord val)
- #endif
- }
- 
-+#if WORD_SIZE_IN_BITS == 64
- extern void hs_atomicwrite64(StgWord x, StgWord64 val);
- void
- hs_atomicwrite64(StgWord x, StgWord64 val)
-@@ -420,3 +423,5 @@ hs_atomicwrite64(StgWord x, StgWord64 val)
- #endif
- }
- #endif
-+
-+#endif
--- 
-GitLab
-
diff --git a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
index 275444e828b7..7f074d17cbae 100644
--- a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
+++ b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
@@ -3,21 +3,9 @@ From: Daniel Kolesa <daniel@octaforge.org>
 Date: Tue, 5 Jan 2021 04:10:25 +0100
 Subject: [PATCH] fix up runtime for ppc64 BE ELFv2 + ensure it's used
 
----
- aclocal.m4                        |  2 +-
- configure                         |  2 +-
- libraries/ghci/GHCi/InfoTable.hsc | 36 ++++++++++++-------------------
- rts/Adjustor.c                    | 12 +++++------
- rts/AdjustorAsm.S                 |  2 +-
- rts/StgCRun.c                     |  4 ++--
- rts/StgCRunAsm.S                  |  2 +-
- 7 files changed, 26 insertions(+), 34 deletions(-)
-
-diff --git a/aclocal.m4 b/aclocal.m4
-index 41cecf0..ba08bd2 100644
---- a/aclocal.m4
-+++ b/aclocal.m4
-@@ -199,7 +199,7 @@ AC_DEFUN([FPTOOLS_SET_HASKELL_PLATFORM_V
+--- a/m4/fptools.m4
++++ b/m4/fptools.m4
+@@ -201,7 +201,7 @@
              test -z "[$]2" || eval "[$]2=ArchPPC"
              ;;
          powerpc64)
@@ -26,8 +14,6 @@ index 41cecf0..ba08bd2 100644
              ;;
          powerpc64le)
              test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
-diff --git a/configure b/configure
-index 183e661..8aae1bc 100755
 --- a/configure
 +++ b/configure
 @@ -10296,7 +10296,7 @@ $as_echo "done" >&6; }
@@ -39,8 +25,6 @@ index 183e661..8aae1bc 100755
              ;;
          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 ec3c18a..0359be7 100644
 --- a/libraries/ghci/GHCi/InfoTable.hsc
 +++ b/libraries/ghci/GHCi/InfoTable.hsc
 @@ -228,30 +228,22 @@ mkJumpToAddr a = case platform of
@@ -88,57 +72,28 @@ index ec3c18a..0359be7 100644
 
      ArchPPC64LE ->
          -- The ABI requires r12 to point to the function's entry point.
-diff --git a/rts/Adjustor.c b/rts/Adjustor.c
-index d360cfe..ab7ede7 100644
---- a/rts/Adjustor.c
-+++ b/rts/Adjustor.c
-@@ -49,7 +49,7 @@ Haskell side.
-
- #if defined(i386_HOST_ARCH)
- extern void adjustorCode(void);
--#elif defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
-+#elif defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
- // from AdjustorAsm.s
- // not declared as a function so that AIX-style
- // fundescs can never get in the way.
-@@ -278,7 +278,7 @@ __asm__("obscure_ccall_ret_code:\n\t"
+--- a/rts/adjustor/NativePowerPC.c
++++ b/rts/adjustor/NativePowerPC.c
+@@ -29,7 +29,7 @@
  extern void obscure_ccall_ret_code(void);
- #endif
+ #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: !!! !!!
-@@ -318,7 +318,7 @@ typedef struct AdjustorStub {
- } AdjustorStub;
- #endif
-
--#if defined(i386_HOST_ARCH) || defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
-+#if defined(i386_HOST_ARCH) || defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
- static int totalArgumentSize(char *typeString)
- {
-     int sz = 0;
-@@ -351,7 +351,7 @@ void*
+--- a/rts/adjustor/NativeIA64.c
++++ b/rts/adjustor/NativeIA64.c
+@@ -39,7 +39,7 @@
  createAdjustor(int cconv, StgStablePtr hptr,
                 StgFunPtr wptr,
                 char *typeString
 -#if !defined(powerpc_HOST_ARCH) && !defined(powerpc64_HOST_ARCH) && !defined(x86_64_HOST_ARCH)
 +#if !defined(powerpc_HOST_ARCH) && (!defined(powerpc64_HOST_ARCH) || (_CALL_ELF == 2)) && !defined(x86_64_HOST_ARCH)
-                   STG_UNUSED
+                STG_UNUSED
  #endif
-               )
-@@ -1271,7 +1271,7 @@ freeHaskellFunctionPtr(void* ptr)
-    return;
-  }
-  freeStablePtr(((StgStablePtr*)ptr)[1]);
--#elif defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
-+#elif defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
-  if ( ((AdjustorStub*)ptr)->code != (StgFunPtr) &adjustorCode ) {
-    errorBelch("freeHaskellFunctionPtr: not for me, guv! %p\n", ptr);
-    return;
-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 @@
@@ -150,20 +105,18 @@ index 2795b83..63cfe91 100644
  #if !(defined(powerpc_HOST_ARCH) && defined(linux_HOST_OS))
      /* The following code applies, with some differences,
         to all powerpc platforms except for powerpc32-linux,
-diff --git a/rts/StgCRun.c b/rts/StgCRun.c
-index 934926e..2ff8662 100644
 --- a/rts/StgCRun.c
 +++ b/rts/StgCRun.c
-@@ -726,7 +726,7 @@ StgRunIsImplementedInAssembler(void)
+@@ -635,7 +635,7 @@
     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)
+-#if defined(powerpc_HOST_ARCH)
++#if defined(powerpc_HOST_ARCH) && (_CALL_ELF != 2)
+
+ #define STG_GLOBAL ".globl "
 
- static void GNUC3_ATTRIBUTE(used)
- StgRunIsImplementedInAssembler(void)
-@@ -851,7 +851,7 @@ StgRunIsImplementedInAssembler(void)
+@@ -792,6 +792,6 @@
 
  #endif
 
@@ -171,9 +124,6 @@ index 934926e..2ff8662 100644
 +#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 9274a44..3b4fc33 100644
 --- a/rts/StgCRunAsm.S
 +++ b/rts/StgCRunAsm.S
 @@ -5,7 +5,7 @@
diff --git a/srcpkgs/ghc/template b/srcpkgs/ghc/template
index b8b16f67b433..c4bbb3e4e3b1 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=8.10.7
+version=9.0.2
 revision=1
 wrksrc="ghc-${version%[!0-9]}"
 build_style=gnu-configure
@@ -14,7 +14,7 @@ maintainer="slotThe <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=e3eef6229ce9908dfe1ea41436befb0455fefb1932559e860ad4c606b0d03c9d
+checksum=140e42b96346322d1a39eb17602bcdc76e292028ad4a69286b230bab188a9197
 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 90bdce8ae8ab36517c9cfb601f4e51cba4703bce Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sat, 19 Mar 2022 10:48:13 +0100
Subject: [PATCH 02/17] cabal-install: update to 3.6.3.0

Technically, this is only upgrading Cabal (the library) to 3.6.3.0, as
the installed version of cabal-install is still 3.6.2.0.  This is,
however, necessary for GHC 9.x support.
---
 srcpkgs/cabal-install/files/linux-9.0.2.json | 1 +
 srcpkgs/cabal-install/template               | 9 +++++----
 2 files changed, 6 insertions(+), 4 deletions(-)
 create mode 100644 srcpkgs/cabal-install/files/linux-9.0.2.json

diff --git a/srcpkgs/cabal-install/files/linux-9.0.2.json b/srcpkgs/cabal-install/files/linux-9.0.2.json
new file mode 100644
index 000000000000..f3cb6b4aeeb5
--- /dev/null
+++ b/srcpkgs/cabal-install/files/linux-9.0.2.json
@@ -0,0 +1 @@
+{"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/template b/srcpkgs/cabal-install/template
index d6d718709993..6a4b0ad7fc0e 100644
--- a/srcpkgs/cabal-install/template
+++ b/srcpkgs/cabal-install/template
@@ -1,6 +1,6 @@
 # Template file for 'cabal-install'
 pkgname=cabal-install
-version=3.6.2.0
+version=3.6.3.0
 revision=1
 wrksrc=cabal-Cabal-v${version}
 hostmakedepends="ghc curl tar which"
@@ -11,7 +11,7 @@ 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=dcf31e82cd85ea3236be18cc36c68058948994579ea7de18f99175821dbbcb64
+checksum=dea086acad6d9fe5fe22d838b95b4e988022e8519f38d41609119ea32bfb7466
 nopie_files="/usr/bin/cabal"
 nocross=yes
 
@@ -19,12 +19,13 @@ 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-8.10.7.json ;;
+		vsed -i -e 's/+ofd-locking/-ofd-locking/' bootstrap/linux-9.0.2.json ;;
 	esac
 }
 
 do_build() {
-	PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-8.10.7.json
+	cp "${FILESDIR}/linux-9.0.2.json" bootstrap/
+	PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-9.0.2.json
 }
 do_install() {
 	vbin _build/bin/cabal

From fca528d49c56be81a9fc18c0f74b3ad761698a27 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sat, 19 Mar 2022 12:54:36 +0100
Subject: [PATCH 03/17] stack: update stackage resolver to lts-19.0

Related: https://github.com/commercialhaskell/stack/pull/5559
---
 srcpkgs/stack/patches/ghc9.0.2.patch | 212 +++++++++++++++++++++++++++
 srcpkgs/stack/template               |   6 +-
 2 files changed, 215 insertions(+), 3 deletions(-)
 create mode 100644 srcpkgs/stack/patches/ghc9.0.2.patch

diff --git a/srcpkgs/stack/patches/ghc9.0.2.patch b/srcpkgs/stack/patches/ghc9.0.2.patch
new file mode 100644
index 000000000000..bdd77de58c6b
--- /dev/null
+++ b/srcpkgs/stack/patches/ghc9.0.2.patch
@@ -0,0 +1,212 @@
+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/template b/srcpkgs/stack/template
index 9e53b95ca633..15c38039684d 100644
--- a/srcpkgs/stack/template
+++ b/srcpkgs/stack/template
@@ -1,8 +1,8 @@
 # Template file for 'stack'
 pkgname=stack
 version=2.7.5
-revision=1
-_stackage="lts-18.14"
+revision=2
+_stackage="lts-19.0"
 hostmakedepends="cabal-install pkg-config unzip"
 makedepends="zlib-devel pcre-devel"
 depends="git gmp-devel iana-etc"
@@ -13,7 +13,7 @@ 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
- 78577c091074d78f9d6e09d6e31e7fc8ac2ddbb0dbc4ac65c606adcac4957d7f"
+ 6b9983f6448eb825231f65fe955d6d85516f482f0d26fee84183a1a79c6b0646"
 skip_extraction="cabal.config-${_stackage}"
 nocross=yes
 nopie_files="/usr/bin/stack"

From 9de9a979acc648b9901fbc319d5af00023176d9b Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 09:17:26 +0100
Subject: [PATCH 04/17] cgrep: bump for stackage lts-19.0

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

diff --git a/srcpkgs/cgrep/template b/srcpkgs/cgrep/template
index e57106f3fa26..1c54fe367396 100644
--- a/srcpkgs/cgrep/template
+++ b/srcpkgs/cgrep/template
@@ -1,9 +1,9 @@
 # Template file for 'cgrep'
 pkgname=cgrep
 version=6.7.1
-revision=2
+revision=3
 build_style=haskell-stack
-stackage="lts-18.15"
+stackage="lts-19.0"
 makedepends="pcre-devel pkg-config"
 short_desc="Context-aware grep for source codes"
 maintainer="slotThe <soliditsallgood@mailbox.org>"

From 39baaa9e9822341c8c1d8a90f62843a60692c679 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 09:23:26 +0100
Subject: [PATCH 05/17] git-mediate: bump for stackage lts-19.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 0c9ec10241e5..705df7843b8e 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=2
+revision=3
 build_style=haskell-stack
-stackage="lts-18.14"
+stackage="lts-19.0"
 depends="git"
 short_desc="Tool to help resolving git conflicts"
 maintainer="Peter Wang <novalazy@gmail.com>"

From 47024f61e647b0f4fa02b273516755d86fda46a6 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 09:51:34 +0100
Subject: [PATCH 06/17] hlint: update to 3.3.6

---
 srcpkgs/hlint/template | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/srcpkgs/hlint/template b/srcpkgs/hlint/template
index fd72c1bbea58..0109be25805f 100644
--- a/srcpkgs/hlint/template
+++ b/srcpkgs/hlint/template
@@ -1,16 +1,16 @@
 # Template file for 'hlint'
 pkgname=hlint
-version=3.2.7
-revision=2
+version=3.3.6
+revision=1
 build_style=haskell-stack
-stackage="lts-18.14"
+stackage="lts-19.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=fcdeefcc79a52206add44b409abcab48c5fe2adff9d5aff077acbc43c702b54e
+checksum=7d536c03f77a0c259efb2b00b525ef34578ca8a4a95ccb412708e8c7172e2e6a
 nocross=yes # Can't yet cross compile Haskell
 nopie_files="/usr/bin/hlint"
 

From 9187ce00b74630b99af08af7afd8a17e6fc0fbea Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 11:38:44 +0100
Subject: [PATCH 07/17] pandoc: update to 2.17.1.1

+ Fix compilation of `pandoc-crossref` for musl systems.
+ Remove the `system-lua` flag, as `pkg-config` already implies it [1].

Related: https://github.com/lierdakil/pandoc-crossref/issues/342
[1]: https://github.com/hslua/hslua/blob/main/lua/README.md?plain=1#L39-L40
---
 srcpkgs/pandoc/files/pandoc-crossref.cabal | 230 +++++++++++++++++++++
 srcpkgs/pandoc/template                    |  43 ++--
 2 files changed, 249 insertions(+), 24 deletions(-)
 create mode 100644 srcpkgs/pandoc/files/pandoc-crossref.cabal

diff --git a/srcpkgs/pandoc/files/pandoc-crossref.cabal b/srcpkgs/pandoc/files/pandoc-crossref.cabal
new file mode 100644
index 000000000000..39f2b9e7bde0
--- /dev/null
+++ b/srcpkgs/pandoc/files/pandoc-crossref.cabal
@@ -0,0 +1,230 @@
+cabal-version: 2.0
+
+-- This file has been generated from package.yaml by hpack version 0.34.6.
+--
+-- see: https://github.com/sol/hpack
+--
+-- hash: 20655cd6263e9fe7e5737ee81b093c8c6f5eae67e260ddd3a821ac6ef5e35e69
+
+name:           pandoc-crossref
+version:        0.3.13.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
+homepage:       https://github.com/lierdakil/pandoc-crossref#readme
+bug-reports:    https://github.com/lierdakil/pandoc-crossref/issues
+author:         Nikolay Yakimov
+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
+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/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/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
+
+source-repository head
+  type: git
+  location: https://github.com/lierdakil/pandoc-crossref
+
+flag enable_flaky_tests
+  description: Some tests rely on specific behaviour of pandoc, which may change between minor versions. These are still useful indicators for the developer, but not necessarily indicating there's a problem with the package itself. Enable if you know what you are doing.
+  manual: True
+  default: False
+
+library
+  exposed-modules:
+      Text.Pandoc.CrossRef
+  other-modules:
+      Text.Pandoc.CrossRef.References
+      Text.Pandoc.CrossRef.References.Blocks
+      Text.Pandoc.CrossRef.References.List
+      Text.Pandoc.CrossRef.References.Refs
+      Text.Pandoc.CrossRef.References.Types
+      Text.Pandoc.CrossRef.Util.CodeBlockCaptions
+      Text.Pandoc.CrossRef.Util.CustomLabels
+      Text.Pandoc.CrossRef.Util.Meta
+      Text.Pandoc.CrossRef.Util.ModifyMeta
+      Text.Pandoc.CrossRef.Util.Options
+      Text.Pandoc.CrossRef.Util.Settings
+      Text.Pandoc.CrossRef.Util.Settings.Gen
+      Text.Pandoc.CrossRef.Util.Settings.Template
+      Text.Pandoc.CrossRef.Util.Template
+      Text.Pandoc.CrossRef.Util.Util
+  hs-source-dirs:
+      lib
+      lib-internal
+  ghc-options: -Wall
+  build-depends:
+      base >=4.11 && <5
+    , containers >=0.1 && <0.7
+    , data-default >=0.4 && <0.8
+    , directory >=1 && <1.4
+    , filepath >=1.1 && <1.5
+    , 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.*
+    , syb >=0.4 && <0.8
+    , template-haskell >=2.7.0.0 && <3.0.0.0
+    , text >=1.2.2 && <1.3
+    , utility-ht >=0.0.11 && <0.1.0
+  default-language: Haskell2010
+
+executable pandoc-crossref
+  main-is: pandoc-crossref.hs
+  other-modules:
+      ManData
+  hs-source-dirs:
+      src
+  ghc-options: -Wall -threaded
+  build-depends:
+      base >=4.11 && <5
+    , deepseq ==1.4.*
+    , gitrev >=1.3.1 && <1.4
+    , open-browser ==0.2.*
+    , optparse-applicative >=0.13 && <0.17
+    , pandoc >=2.10 && <2.18
+    , pandoc-crossref
+    , pandoc-types >=1.21 && <1.23
+    , template-haskell >=2.7.0.0 && <3.0.0.0
+    , temporary >=1.2 && <1.4
+    , text >=1.2.2 && <1.3
+  default-language: Haskell2010
+
+test-suite test-integrative
+  type: exitcode-stdio-1.0
+  main-is: test-integrative.hs
+  hs-source-dirs:
+      test
+  ghc-options: -Wall -fno-warn-unused-do-bind -threaded
+  build-depends:
+      base >=4.11 && <5
+    , directory >=1 && <1.4
+    , filepath >=1.1 && <1.5
+    , hspec >=2.4.4 && <3
+    , pandoc >=2.10 && <2.18
+    , pandoc-crossref
+    , pandoc-types >=1.21 && <1.23
+    , text >=1.2.2 && <1.3
+  if flag(enable_flaky_tests)
+    cpp-options: -DFLAKY
+  default-language: Haskell2010
+
+test-suite test-pandoc-crossref
+  type: exitcode-stdio-1.0
+  main-is: test-pandoc-crossref.hs
+  other-modules:
+      Native
+      Paths_pandoc_crossref
+  autogen-modules:
+      Paths_pandoc_crossref
+  hs-source-dirs:
+      test
+  ghc-options: -Wall -fno-warn-unused-do-bind -threaded
+  build-depends:
+      base >=4.11 && <5
+    , containers >=0.1 && <0.7
+    , data-default >=0.4 && <0.8
+    , 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-crossref
+    , pandoc-types >=1.21 && <1.23
+    , text >=1.2.2 && <1.3
+  if flag(enable_flaky_tests)
+    cpp-options: -DFLAKY
+  default-language: Haskell2010
+
+benchmark simple
+  type: exitcode-stdio-1.0
+  main-is: bench-simple.hs
+  other-modules:
+      Native
+  hs-source-dirs:
+      test
+  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
+    , pandoc-crossref
+    , pandoc-types >=1.21 && <1.23
+    , text >=1.2.2 && <1.3
+  default-language: Haskell2010
diff --git a/srcpkgs/pandoc/template b/srcpkgs/pandoc/template
index 8628b1d1f3c2..9bdf32ef3c53 100644
--- a/srcpkgs/pandoc/template
+++ b/srcpkgs/pandoc/template
@@ -1,18 +1,18 @@
 # Template file for 'pandoc'
 pkgname=pandoc
 # Keep in sync with http://www.stackage.org/lts
-version=2.14.0.3
-revision=3
-_sidenote_version=0.20.0.0
+version=2.17.1.1
+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
 create_wrksrc=yes
 build_style=haskell-stack
-stackage="lts-18.14"
+stackage="lts-19.0"
 make_build_args="
- --flag pandoc:embed_data_files --flag=hslua:system-lua
- --flag=hslua:pkg-config"
+ --flag pandoc:embed_data_files
+ --flag=lua:pkg-config"
 hostmakedepends="pkg-config unzip wget"
 makedepends="zlib-devel lua53-devel tar"
 short_desc="Universal converter between markup formats"
@@ -21,33 +21,28 @@ license="GPL-2.0-or-later, BSD-3-Clause"
 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"
-checksum="82e3f55bff3059bf30cf532e93d9876c9e3599aa4eafae9c907fe75a4430eddd
- 91f8e96d8470722d677d31d4bbf16c2ac6902567d818ed7a2715bad2617a4cdb
- be8485023fce236b5b915f2f6074f7b0470a2040f84cdd137c5227f1b4c98465"
-subpackages="pandoc-sidenote"
-nocross=yes
-nopie_files="
- /usr/bin/pandoc
- /usr/bin/pandoc-sidenote"
-
-# pandoc-crossref is currently broken on musl. See lierdakil/pandoc-crossref#342 and commercialhaskell/stack#5683
-if [ "$XBPS_TARGET_LIBC" != "musl" ]; then
-	distfiles+="
+ 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+="
+checksum="649ec528d1413130c5ce304b826ff473b3696269eea8834d908589e775bd1ad1
+ c39dd7343b9cb4dc5b1c91c9e47c3d357874e9e1a30b8d377bbea0b1d50323b2
+ be8485023fce236b5b915f2f6074f7b0470a2040f84cdd137c5227f1b4c98465
  94540325c9c98ae4d5199c634bf402ffa41e3c5b020d7207daef90fd9e224fb4
  b9c7195b69b1662a286d2c28a55fafdcb693c522ba5eb54a11b1d0a4e92eaa81"
-	nopie_files+="
- /usr/bin/pandoc-crossref"
-	subpackages+="
+subpackages="
+ pandoc-sidenote
  pandoc-crossref"
-fi
+nocross=yes
+nopie_files="
+ /usr/bin/pandoc
+ /usr/bin/pandoc-sidenote
+ /usr/bin/pandoc-crossref"
 
 post_extract() {
 	sed -i 's/tasty .*,/tasty,/' pandoc-*/pandoc.cabal
 	sed -i 's/zip-archive .*,/zip-archive,/' pandoc-*/pandoc.cabal
+	# See https://github.com/lierdakil/pandoc-crossref/issues/342#issuecomment-1073256586
+	cp "${FILESDIR}/pandoc-crossref.cabal" pandoc-crossref-${_crossref_version}
 }
 
 post_install() {

From 96ca211c88712bf81839c41232703ec4fb89208e Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 12:15:01 +0100
Subject: [PATCH 08/17] shellcheck: bump for stackage lts-19.0

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

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

From d7c5bd5bc2bf3506928f1ec886dfdd3fb90799b9 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 12:52:11 +0100
Subject: [PATCH 09/17] hoogle: update to 5.0.18.3

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

diff --git a/srcpkgs/hoogle/template b/srcpkgs/hoogle/template
index 4c3e80186494..dc487cab4017 100644
--- a/srcpkgs/hoogle/template
+++ b/srcpkgs/hoogle/template
@@ -1,16 +1,16 @@
 # Template file for 'hoogle'
 pkgname=hoogle
-version=5.0.18.2
-revision=2
+version=5.0.18.3
+revision=1
 build_style=haskell-stack
-stackage="lts-18.14"
+stackage="lts-19.0"
 makedepends="zlib-devel"
 short_desc="Haskell API search engine"
 maintainer="Inokentiy Babushkin <twk@twki.de>"
 license="BSD-3-Clause"
 homepage="https://hoogle.haskell.org/"
 distfiles="https://github.com/ndmitchell/${pkgname}/archive/v${version}.tar.gz"
-checksum=9f8f0afde52fe602100ab7828fad230c2f5e94050dda9fe1e2a9f0a93f7fe617
+checksum=a2765fcbaf99fe67a64ef29fe50e69fb380cce07807cddeb0836c148b1ae472b
 nopie_files="/usr/bin/hoogle"
 nocross=yes # Can't yet cross compile Haskell
 

From 3cc03d6b11b7f6ef4e6a8b8805cf4ee979b4badc Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 13:33:12 +0100
Subject: [PATCH 10/17] xmobar: update to 0.42

Also enable most flags during compilation in order to be less surprising
with regards to what features xmobar supports out of the box.
---
 srcpkgs/xmobar/files/stack.yaml | 2 +-
 srcpkgs/xmobar/template         | 8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/xmobar/files/stack.yaml b/srcpkgs/xmobar/files/stack.yaml
index 47544eb729d8..7e0956374142 100644
--- a/srcpkgs/xmobar/files/stack.yaml
+++ b/srcpkgs/xmobar/files/stack.yaml
@@ -1,4 +1,4 @@
-resolver: lts-18.13
+resolver: lts-19.0
 packages:
 - .
 extra-deps:
diff --git a/srcpkgs/xmobar/template b/srcpkgs/xmobar/template
index b97c9f268d68..6a12a9ed7055 100644
--- a/srcpkgs/xmobar/template
+++ b/srcpkgs/xmobar/template
@@ -1,7 +1,7 @@
 # Template file for 'xmobar'
 pkgname=xmobar
-version=0.39
-revision=2
+version=0.42
+revision=1
 build_style=haskell-stack
 hostmakedepends="pkg-config"
 makedepends="libX11-devel libXinerama-devel libXrandr-devel libXScrnSaver-devel
@@ -15,10 +15,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=46f37b90dd3ba3348dbe7de716b88606c7f0f0dd22a3580176b5cd089c1b36cc
+checksum=53f4a06d79c3db32ef1a498ec7b764b17d03ebf9bca3126c6b8259595492769b
 build_options="dbus threaded utf8 xft mpd mpris inotify iwlib alsa datezone
  xpm uvmeter weather nl80211"
-build_options_default="threaded utf8 xft inotify nl80211 datezone weather xpm"
+build_options_default="threaded utf8 xft inotify nl80211 datezone weather xpm alsa mpris mpd dbus"
 nopie_files="/usr/bin/xmobar"
 nocross=yes
 vopt_hflag() {

From d9425e49584c01d9b19fb4231d327bb36a5b15f7 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 18:09:34 +0100
Subject: [PATCH 11/17] hledger: update to 1.25

---
 srcpkgs/hledger/template | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/hledger/template b/srcpkgs/hledger/template
index fdcab180a6de..32d39207fd82 100644
--- a/srcpkgs/hledger/template
+++ b/srcpkgs/hledger/template
@@ -1,8 +1,9 @@
 # Template file for 'hledger'
 pkgname=hledger
-version=1.23
-revision=2
+version=1.25
+revision=1
 build_style=haskell-stack
+stackage="lts-19.0"
 makedepends="zlib-devel ncurses-devel"
 short_desc="Simple, precise, plain text accounting"
 maintainer="Inokentiy Babushkin <twk@twki.de>"
@@ -10,7 +11,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/${pkgname}/archive/${version}.tar.gz"
-checksum=7252d78aafbae488b113a6350518a702186cacc4e746cec2b31f8321b4dddcb4
+checksum=4c947c2a7d243d2a56efc1fa02994a118e995df025a412f6d2daeadfd78338ee
 nopie_files="/usr/bin/hledger"
 nocross=yes # Can't yet cross compile Haskell
 

From 54d9f8a086bfbb6efd1ffe6d3d8fb8a4666882fe Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Mon, 21 Mar 2022 08:19:29 +0100
Subject: [PATCH 12/17] haskell-language-server: update to 1.6.1.0

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

diff --git a/srcpkgs/haskell-language-server/template b/srcpkgs/haskell-language-server/template
index 0182c9b95757..0c7b2187c5ca 100644
--- a/srcpkgs/haskell-language-server/template
+++ b/srcpkgs/haskell-language-server/template
@@ -1,16 +1,16 @@
 # Template file for 'haskell-language-server'
 pkgname=haskell-language-server
-version=1.4.0
+version=1.6.1.0
 revision=1
 build_style="haskell-stack"
-make_build_args="--stack-yaml stack-8.10.7.yaml"
+make_build_args="--stack-yaml stack-9.0.2.yaml"
 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>"
 license="Apache-2.0"
 homepage="https://github.com/haskell/haskell-language-server"
 distfiles="https://github.com/haskell/haskell-language-server/archive/${version}.tar.gz"
-checksum=c5d7dbf7fae9aa3ed2c1184b49e82d8ac623ca786494ef6602cfe11735d28db0
+checksum=e5c336ad2de8d021c882cdac5bbc26bf6427df8d2a5bd244c05cf18296a9bfdc
 nopie_files="
  /usr/bin/haskell-language-server
  /usr/bin/haskell-language-server-wrapper

From 5812fa9cf0ff696b488e329966b54130cf39e185 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Mon, 21 Mar 2022 15:48:58 +0100
Subject: [PATCH 13/17] git-annex: update to 10.20220222

---
 srcpkgs/git-annex/files/stack.yaml | 33 ++++++++++++++++++++++++++++++
 srcpkgs/git-annex/template         |  5 +++--
 2 files changed, 36 insertions(+), 2 deletions(-)
 create mode 100644 srcpkgs/git-annex/files/stack.yaml

diff --git a/srcpkgs/git-annex/files/stack.yaml b/srcpkgs/git-annex/files/stack.yaml
new file mode 100644
index 000000000000..4935307f48cf
--- /dev/null
+++ b/srcpkgs/git-annex/files/stack.yaml
@@ -0,0 +1,33 @@
+flags:
+  git-annex:
+    production: true
+    assistant: true
+    pairing: true
+    torrentparser: true
+    webapp: true
+    magicmime: false
+    dbus: false
+    debuglocks: false
+    benchmark: true
+    networkbsd: true
+    gitlfs: true
+    httpclientrestricted: true
+packages:
+  - '.'
+resolver: lts-19.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
diff --git a/srcpkgs/git-annex/template b/srcpkgs/git-annex/template
index 1cf2ab14789f..7b788bc5861e 100644
--- a/srcpkgs/git-annex/template
+++ b/srcpkgs/git-annex/template
@@ -1,8 +1,9 @@
 # Template file for 'git-annex'
 pkgname=git-annex
-version=8.20211028
+version=10.20220222
 revision=1
 build_style=haskell-stack
+stackage="lts-19.0"
 makedepends="curl file-devel gnupg2 gnutls-devel gsasl-devel libxml2-devel
  lsof rsync git ncurses-devel"
 # depends are utilities required by git-annex
@@ -12,7 +13,7 @@ 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="http://git-annex.branchable.com"
 distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz"
-checksum=cf5efe15e68d467daad673bec10037a27a78da7e4af9b4a85e10980bd90ace2d
+checksum=1fb9f75a83feb16f7515122135c0f3abe6aa77544d8d778792296cbc053d2c85
 nopie_files="/usr/bin/git-annex"
 nocross=yes
 

From 35fdbb69e22e166c8630e1e1f6b9cb228c38e960 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Wed, 23 Mar 2022 09:14:58 +0100
Subject: [PATCH 14/17] darcs: bump for stackage lts-19.0

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

diff --git a/srcpkgs/darcs/files/stack.yaml b/srcpkgs/darcs/files/stack.yaml
index 5ae0f5313b8d..6e459703764a 100644
--- a/srcpkgs/darcs/files/stack.yaml
+++ b/srcpkgs/darcs/files/stack.yaml
@@ -1,7 +1,4 @@
-resolver: lts-18.14
+resolver: lts-19.0
 packages:
 - .
-extra-deps:
-- graphviz-2999.20.1.0
-- constraints-0.12@sha256:7edf1e72a92d0a6761da634f08be9123dfcc0dcec11c269cbf465a09721c3481,2322
-- cryptonite-0.27@sha256:c3a9c8ce11e654a9d5bee827b089d4b50587272828d0c52a85362a58667a916c,18163
+allow-newer: true
diff --git a/srcpkgs/darcs/template b/srcpkgs/darcs/template
index f9fcac534d46..15a8f71f9021 100644
--- a/srcpkgs/darcs/template
+++ b/srcpkgs/darcs/template
@@ -1,7 +1,7 @@
 # Template file for 'darcs'
 pkgname=darcs
 version=2.16.5
-revision=2
+revision=3
 build_style=haskell-stack
 hostmakedepends="unzip"
 makedepends="zlib-devel libcurl-devel ncurses-devel"

From 93a1014fafab6ee81037ee0e518bccf41dcc8602 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Thu, 24 Mar 2022 11:50:45 +0100
Subject: [PATCH 15/17] debug-me: update to 1.20220324

---
 srcpkgs/debug-me/files/stack.yaml        |  8 +++---
 srcpkgs/debug-me/patches/ghc8.10.4.patch | 33 ------------------------
 srcpkgs/debug-me/template                |  7 ++---
 3 files changed, 7 insertions(+), 41 deletions(-)
 delete mode 100644 srcpkgs/debug-me/patches/ghc8.10.4.patch

diff --git a/srcpkgs/debug-me/files/stack.yaml b/srcpkgs/debug-me/files/stack.yaml
index ad8b055bb33e..f2b1a79d70c6 100644
--- a/srcpkgs/debug-me/files/stack.yaml
+++ b/srcpkgs/debug-me/files/stack.yaml
@@ -1,8 +1,6 @@
 packages:
 - '.'
-resolver: lts-18.14
+resolver: lts-19.0
 extra-deps:
-- posix-pty-0.2.1.1
-- graphviz-2999.20.1.0
-- sandi-0.5
-- protobuf-0.2.1.3@sha256:d8ed3c73027c6b7e7583c6a94ee1835beee8a755a875b06bbf51bc667d53ab69,3048
+  - posix-pty-0.2.1.1
+  - sandi-0.5@sha256:b278d072ca717706ea38f9bd646e023f7f2576a778fb43565b434f93638849aa,3010
diff --git a/srcpkgs/debug-me/patches/ghc8.10.4.patch b/srcpkgs/debug-me/patches/ghc8.10.4.patch
deleted file mode 100644
index bfcff16a4438..000000000000
--- a/srcpkgs/debug-me/patches/ghc8.10.4.patch
+++ /dev/null
@@ -1,33 +0,0 @@
---- a/Val.hs	2020-03-31 11:00:33.329814064 +0200
-+++ b/Val.hs	2020-03-31 11:00:24.602711845 +0200
-@@ -42,7 +42,7 @@
- b64 :: B.ByteString -> T.Text
- b64 = T.decodeUtf8 . B64.encode
-
--unb64 :: Monad m => T.Text -> m B.ByteString
-+unb64 :: MonadFail m => T.Text -> m B.ByteString
- unb64 t = either
- 	(\_ -> fail "bad base64 data")
- 	return
---- a/Server.hs	2020-03-31 12:53:45.860509650 +0200
-+++ b/Server.hs	2020-03-31 12:52:34.873835069 +0200
-@@ -105,7 +105,7 @@
- 		-- (Workaround for
- 		-- https://github.com/jaspervdj/websockets/issues/140)
- 		setHost "*6" $
--		setPort (serverPort o) $
-+		setPort (CmdLine.serverPort o) $
- 		defaultSettings
-
- checkEnv :: ServerOpts -> IO ServerOpts
---- a/debug-me.cabal
-+++ b/debug-me.cabal
-@@ -64,7 +64,7 @@
-     , stm-chans (>= 3.0)
-     , posix-pty (>= 0.2.1)
-     , terminal-size (>= 0.3)
--    , aeson (>= 0.11 && < 1.5)
-+    , aeson (>= 0.11 && < 1.6)
-     , sandi (>= 0.4)
-     , text (>= 1.2.2)
-     , optparse-applicative (>= 0.12)
diff --git a/srcpkgs/debug-me/template b/srcpkgs/debug-me/template
index 86ac0037311a..f971f2156c77 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.20200820
-revision=3
+version=1.20220324
+revision=1
 build_style=haskell-stack
+stackage="lts-19.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=9497dc9b85a58e5c499ea25fa1bed9f4fd6cdd2f57564f52a0e4152ad4fdc102
+checksum=9fd6256aa34408106ff095e0560850aca3558a774be4ce19de6ab6e81fbfdb9f
 nocross=yes # Can't yet cross compile Haskell
 nopie_files="/usr/bin/debug-me"
 

From c409ff55666f010f5bb37f01fe76f584db210c16 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sigrid=20Solveig=20Hafl=C3=ADnud=C3=B3ttir?=
 <ftrvxmtrx@gmail.com>
Date: Thu, 24 Mar 2022 09:27:25 +0100
Subject: [PATCH 16/17] ghc, ghc-bin: Add aarch64* support

---
 srcpkgs/ghc-bin/template | 22 ++++++++++++++++------
 srcpkgs/ghc/template     |  8 ++++++++
 2 files changed, 24 insertions(+), 6 deletions(-)

diff --git a/srcpkgs/ghc-bin/template b/srcpkgs/ghc-bin/template
index 3949ee3fa1aa..8a725a84e76a 100644
--- a/srcpkgs/ghc-bin/template
+++ b/srcpkgs/ghc-bin/template
@@ -1,8 +1,8 @@
 # Template file for 'ghc-bin'
 pkgname=ghc-bin
-version=8.10.7
+version=9.0.2
 revision=1
-archs="i686 x86_64* ppc64le* ppc64"
+archs="i686 x86_64* ppc64le* ppc64 aarch64*"
 wrksrc="ghc-${version%[!0-9]}"
 hostmakedepends="perl libffi libnuma"
 depends="ncurses perl gcc libffi-devel gmp-devel"
@@ -15,8 +15,8 @@ noshlibprovides=yes
 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=ced9870ea351af64fb48274b81a664cdb6a9266775f1598a79cbb6fdd5770a23
+	distfiles="https://downloads.haskell.org/ghc/${version%[!0-9]}/ghc-${version}-x86_64-deb9-linux.tar.xz"
+	checksum=805f5628ce6cec678ba77ff48c924831ebdf75ec2c66368e8935a618913a150e
 	;;
 x86_64-musl)
 	# create with "make binary-dist"
@@ -24,8 +24,8 @@ x86_64-musl)
 	checksum=52f6492f39f13890f4ecd83784724ae9fff7a02fdc624a56c49872c912608a50
 	;;
 i686)
-	distfiles="https://downloads.haskell.org/~ghc/${version%[!0-9]}/ghc-${version}-i386-deb9-linux.tar.xz"
-	checksum=fbfc1ef194f4e7a4c0da8c11cc69b17458a4b928b609b3622c97acc4acd5c5ab
+	distfiles="https://downloads.haskell.org/ghc/${version%[!0-9]}/ghc-${version}-i386-deb9-linux.tar.xz"
+	checksum=fdeb9f8928fbe994064778a8e1e85bb1a58a6cd3dd7b724fcc2a1dcfda6cad47
 	;;
 ppc64le)
 	distfiles="https://alpha.de.repo.voidlinux.org/distfiles/ghc-${version}-powerpc64le-void-linux.tar.xz"
@@ -39,6 +39,16 @@ ppc64)
 	distfiles="https://alpha.de.repo.voidlinux.org/distfiles/ghc-${version}-powerpc64-void-linux.tar.xz"
 	checksum=b8578e602abd4b453845303fb9cfed0b2186f86f60e3aa45869026ea833726c8
 	;;
+aarch64)
+	distfiles="https://alpha.de.repo.voidlinux.org/distfiles/ghc-${version}-aarch64-void-linux.tar.xz"
+	checksum=429a84d2850357e305a017c7d3eb1cb7cf838e900e52920d555de39d9c59b8c6
+	depends+=" llvm"
+	;;
+aarch64-musl)
+	distfiles="https://alpha.de.repo.voidlinux.org/distfiles/ghc-${version}-aarch64-void-linux-musl.tar.xz"
+	checksum=f2c37a5ed028eebd3e69a22ce989f5cdf6f84a408871ff0933ac532414c6c273
+	depends+=" llvm"
+	;;
 *)
 	broken="No distfiles available for this target"
 	;;
diff --git a/srcpkgs/ghc/template b/srcpkgs/ghc/template
index c4bbb3e4e3b1..d0b1600987be 100644
--- a/srcpkgs/ghc/template
+++ b/srcpkgs/ghc/template
@@ -54,6 +54,14 @@ elif [ "${XBPS_MACHINE%-*}" != "${XBPS_TARGET_MACHINE%-*}" ]; then
 	configure_args+=" --host=${XBPS_TRIPLET} --target=${XBPS_CROSS_TRIPLET}"
 fi
 
+case "$XBPS_TARGET_MACHINE" in
+aarch64*)
+	# GHC uses LLVM to generate code on aarch64
+	hostmakedepends+=" llvm"
+	depends+=" llvm"
+	;;
+esac
+
 # Recent safe to use tarball
 # GHC's bundled tarball is from 2017, buggy on some archs
 _ffi_rev=4d6d2866ae43e55325e8ee96561221804602cd7a

From 456a68636a7b3e91d1cee7240062639dbb1eac50 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Thu, 24 Mar 2022 14:27:41 +0100
Subject: [PATCH 17/17] kmonad: update to
 65b501defdd0049563752f8af8c8c57f5a1ae38b

The reason for updating to an unreleased version is that the author
(and core maintainer) of the project is chronically ill[1] and unable
to spend a lot of time on kmonad.  At the same time, there is a rather
large refactor on the way, without which a new release would not make
too much sense[2].  As such, updating to what's essentially HEAD makes
sense in this case; it is not any less stable than 0.4.1 (I've
personally been running this for months without any problems).  As a
bonus, we get GHC 9.0.2 compatibility for free and do not need to
cherry pick the relevant commits.

[1]: https://github.com/kmonad/kmonad#disclaimer
[2]: https://github.com/kmonad/kmonad/pull/372
---
 srcpkgs/kmonad/template | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/srcpkgs/kmonad/template b/srcpkgs/kmonad/template
index c93d2bee4c4f..829d96a535eb 100644
--- a/srcpkgs/kmonad/template
+++ b/srcpkgs/kmonad/template
@@ -1,15 +1,15 @@
 # Template file for 'kmonad'
 pkgname=kmonad
-version=0.4.1
-revision=3
+version=65b501defdd0049563752f8af8c8c57f5a1ae38b
+revision=1
 build_style=haskell-stack
-stackage=lts-18.14
+stackage=lts-19.0
 short_desc="Keyboard remapping utility providing qmk-like functionality"
 maintainer="slotThe <soliditsallgood@mailbox.org>"
 license="MIT"
 homepage="https://github.com/david-janssen/kmonad"
 distfiles="${homepage}/archive/${version}.tar.gz"
-checksum=cb66f0c6d4c304c7e3c48cefd0c50ea00b156ffc361e278e1fc5c6070317d927
+checksum=2b0cb0c5d1575bf61b1c442476ad24103028c309d103fedb56214a3bb30f8c0f
 nopie_files="/usr/bin/kmonad"
 nocross=yes
 

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

* Re: [WIP] Update to GHC 9.0.2/Stackage LTS-19.0
  2022-03-23  7:20 [PR PATCH] [WIP] Update to GHC 9.0.2/Stackage LTS-19.0 slotThe
                   ` (7 preceding siblings ...)
  2022-03-25 12:11 ` [PR PATCH] [Updated] " slotThe
@ 2022-03-25 13:14 ` slotThe
  2022-03-25 13:15 ` [PR PATCH] [Updated] " slotThe
                   ` (12 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: slotThe @ 2022-03-25 13:14 UTC (permalink / raw)
  To: ml

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

New comment by slotThe on void-packages repository

https://github.com/void-linux/void-packages/pull/36292#issuecomment-1079016467

Comment:
Ah, very good point; we don't have those data-files so the cabal file shouldn't mention them

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

* Re: [PR PATCH] [Updated] [WIP] Update to GHC 9.0.2/Stackage LTS-19.0
  2022-03-23  7:20 [PR PATCH] [WIP] Update to GHC 9.0.2/Stackage LTS-19.0 slotThe
                   ` (8 preceding siblings ...)
  2022-03-25 13:14 ` slotThe
@ 2022-03-25 13:15 ` slotThe
  2022-03-25 13:44 ` slotThe
                   ` (11 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: slotThe @ 2022-03-25 13:15 UTC (permalink / raw)
  To: ml

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

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

https://github.com/slotThe/void-packages stackage-19
https://github.com/void-linux/void-packages/pull/36292

[WIP] Update to GHC 9.0.2/Stackage LTS-19.0
And so... the ~~hunt~~ fun begins again!

### Core packages to bump

- [x] ghc
- [ ] ghc-bin
    - [ ] x86_64-musl
    cc. @q66 for the following
    - [ ] ppc64le
    - [ ] ppc64le-musl
    - [x] aarch64 [Link](https://ftrv.se/_/void/ghc-9.0.2/ghc-9.0.2-aarch64-void-linux.tar.xz) **Not uploaded yet**
    - [x] aarch64-musl [Link](https://ftrv.se/_/void/ghc-9.0.2/ghc-9.0.2-aarch64-void-linux-musl.tar.xz) **Not uploaded yet**
- [x] cabal-install
- [x] stack

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

Most of these are already done, things should probably go smoothly as 9.0.x does not contain any big breaking changes.

- [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 (contains a fix for `pandoc-crossref` on musl \o/)
- [x] xmobar
- [x] haskell-language-server

### Other things to do 

- [ ] Either incorporate https://github.com/void-linux/void-packages/pull/36193 into this PR or merge it first and then rebuild GHC for aarch64 and aarch64-musl; cc. @ftrvxmtrx

[ci skip]

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

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-stackage-19-36292.patch --]
[-- Type: text/x-diff, Size: 66583 bytes --]

From 5ce0a7ea17703bcfb1fc7b4007efef9e20b2d395 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Fri, 18 Mar 2022 17:33:46 +0100
Subject: [PATCH 01/18] ghc: update to 9.0.2

---
 .../ghc/patches/no-atomic-64-on-32bit.patch   | 58 -------------
 srcpkgs/ghc/patches/ppc64-be-elfv2.patch      | 86 ++++---------------
 srcpkgs/ghc/template                          |  4 +-
 3 files changed, 20 insertions(+), 128 deletions(-)
 delete mode 100644 srcpkgs/ghc/patches/no-atomic-64-on-32bit.patch

diff --git a/srcpkgs/ghc/patches/no-atomic-64-on-32bit.patch b/srcpkgs/ghc/patches/no-atomic-64-on-32bit.patch
deleted file mode 100644
index 05ca275ea9df..000000000000
--- a/srcpkgs/ghc/patches/no-atomic-64-on-32bit.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 5c5aa87d50dc4ea97e76e13f285a7b5dd71fcd88 Mon Sep 17 00:00:00 2001
-From: Ilias Tsitsimpis <iliastsi@debian.org>
-Date: Sun, 1 Mar 2020 16:25:13 +0200
-Subject: [PATCH] Do not define hs_atomic{read,write}64() on non-64bit
-
-Do not define hs_atomicread64() and hs_atomicwrite64() on machines where
-WORD_SIZE_IN_BITS is less than 64, just like we do with the rest of the atomic
-functions which work on 64-bit values.
-
-Without this, compilation fails on MIPSel and PowerPC with the following error:
-
-/usr/bin/ld: /<<PKGBUILDDIR>>/libraries/ghc-prim/dist-install/build/libHSghc-prim-0.5.3_p.a(atomic.p_o): in function `hs_atomicread64':
-atomic.c:(.text.hs_atomicread64+0x8): undefined reference to `__sync_add_and_fetch_8'
-/usr/bin/ld: /<<PKGBUILDDIR>>/libraries/ghc-prim/dist-install/build/libHSghc-prim-0.5.3_p.a(atomic.p_o): in function `hs_atomicwrite64':
-atomic.c:(.text.hs_atomicwrite64+0x38): undefined reference to `__sync_bool_compare_and_swap_8'
-
-Fixes #17886.
----
- libraries/ghc-prim/cbits/atomic.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/libraries/ghc-prim/cbits/atomic.c b/libraries/ghc-prim/cbits/atomic.c
-index ac2e608ec2..01037d70ee 100644
---- a/libraries/ghc-prim/cbits/atomic.c
-+++ b/libraries/ghc-prim/cbits/atomic.c
-@@ -361,6 +361,7 @@ hs_atomicread32(StgWord x)
- #endif
- }
- 
-+#if WORD_SIZE_IN_BITS == 64
- extern StgWord64 hs_atomicread64(StgWord x);
- StgWord64
- hs_atomicread64(StgWord x)
-@@ -371,6 +372,7 @@ hs_atomicread64(StgWord x)
-   return __sync_add_and_fetch((StgWord64 *) x, 0);
- #endif
- }
-+#endif
- 
- // AtomicWriteByteArrayOp_Int
- // Implies a full memory barrier (see compiler/prelude/primops.txt.pp)
-@@ -409,6 +411,7 @@ hs_atomicwrite32(StgWord x, StgWord val)
- #endif
- }
- 
-+#if WORD_SIZE_IN_BITS == 64
- extern void hs_atomicwrite64(StgWord x, StgWord64 val);
- void
- hs_atomicwrite64(StgWord x, StgWord64 val)
-@@ -420,3 +423,5 @@ hs_atomicwrite64(StgWord x, StgWord64 val)
- #endif
- }
- #endif
-+
-+#endif
--- 
-GitLab
-
diff --git a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
index 275444e828b7..7f074d17cbae 100644
--- a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
+++ b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
@@ -3,21 +3,9 @@ From: Daniel Kolesa <daniel@octaforge.org>
 Date: Tue, 5 Jan 2021 04:10:25 +0100
 Subject: [PATCH] fix up runtime for ppc64 BE ELFv2 + ensure it's used
 
----
- aclocal.m4                        |  2 +-
- configure                         |  2 +-
- libraries/ghci/GHCi/InfoTable.hsc | 36 ++++++++++++-------------------
- rts/Adjustor.c                    | 12 +++++------
- rts/AdjustorAsm.S                 |  2 +-
- rts/StgCRun.c                     |  4 ++--
- rts/StgCRunAsm.S                  |  2 +-
- 7 files changed, 26 insertions(+), 34 deletions(-)
-
-diff --git a/aclocal.m4 b/aclocal.m4
-index 41cecf0..ba08bd2 100644
---- a/aclocal.m4
-+++ b/aclocal.m4
-@@ -199,7 +199,7 @@ AC_DEFUN([FPTOOLS_SET_HASKELL_PLATFORM_V
+--- a/m4/fptools.m4
++++ b/m4/fptools.m4
+@@ -201,7 +201,7 @@
              test -z "[$]2" || eval "[$]2=ArchPPC"
              ;;
          powerpc64)
@@ -26,8 +14,6 @@ index 41cecf0..ba08bd2 100644
              ;;
          powerpc64le)
              test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
-diff --git a/configure b/configure
-index 183e661..8aae1bc 100755
 --- a/configure
 +++ b/configure
 @@ -10296,7 +10296,7 @@ $as_echo "done" >&6; }
@@ -39,8 +25,6 @@ index 183e661..8aae1bc 100755
              ;;
          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 ec3c18a..0359be7 100644
 --- a/libraries/ghci/GHCi/InfoTable.hsc
 +++ b/libraries/ghci/GHCi/InfoTable.hsc
 @@ -228,30 +228,22 @@ mkJumpToAddr a = case platform of
@@ -88,57 +72,28 @@ index ec3c18a..0359be7 100644
 
      ArchPPC64LE ->
          -- The ABI requires r12 to point to the function's entry point.
-diff --git a/rts/Adjustor.c b/rts/Adjustor.c
-index d360cfe..ab7ede7 100644
---- a/rts/Adjustor.c
-+++ b/rts/Adjustor.c
-@@ -49,7 +49,7 @@ Haskell side.
-
- #if defined(i386_HOST_ARCH)
- extern void adjustorCode(void);
--#elif defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
-+#elif defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
- // from AdjustorAsm.s
- // not declared as a function so that AIX-style
- // fundescs can never get in the way.
-@@ -278,7 +278,7 @@ __asm__("obscure_ccall_ret_code:\n\t"
+--- a/rts/adjustor/NativePowerPC.c
++++ b/rts/adjustor/NativePowerPC.c
+@@ -29,7 +29,7 @@
  extern void obscure_ccall_ret_code(void);
- #endif
+ #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: !!! !!!
-@@ -318,7 +318,7 @@ typedef struct AdjustorStub {
- } AdjustorStub;
- #endif
-
--#if defined(i386_HOST_ARCH) || defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
-+#if defined(i386_HOST_ARCH) || defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
- static int totalArgumentSize(char *typeString)
- {
-     int sz = 0;
-@@ -351,7 +351,7 @@ void*
+--- a/rts/adjustor/NativeIA64.c
++++ b/rts/adjustor/NativeIA64.c
+@@ -39,7 +39,7 @@
  createAdjustor(int cconv, StgStablePtr hptr,
                 StgFunPtr wptr,
                 char *typeString
 -#if !defined(powerpc_HOST_ARCH) && !defined(powerpc64_HOST_ARCH) && !defined(x86_64_HOST_ARCH)
 +#if !defined(powerpc_HOST_ARCH) && (!defined(powerpc64_HOST_ARCH) || (_CALL_ELF == 2)) && !defined(x86_64_HOST_ARCH)
-                   STG_UNUSED
+                STG_UNUSED
  #endif
-               )
-@@ -1271,7 +1271,7 @@ freeHaskellFunctionPtr(void* ptr)
-    return;
-  }
-  freeStablePtr(((StgStablePtr*)ptr)[1]);
--#elif defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
-+#elif defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
-  if ( ((AdjustorStub*)ptr)->code != (StgFunPtr) &adjustorCode ) {
-    errorBelch("freeHaskellFunctionPtr: not for me, guv! %p\n", ptr);
-    return;
-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 @@
@@ -150,20 +105,18 @@ index 2795b83..63cfe91 100644
  #if !(defined(powerpc_HOST_ARCH) && defined(linux_HOST_OS))
      /* The following code applies, with some differences,
         to all powerpc platforms except for powerpc32-linux,
-diff --git a/rts/StgCRun.c b/rts/StgCRun.c
-index 934926e..2ff8662 100644
 --- a/rts/StgCRun.c
 +++ b/rts/StgCRun.c
-@@ -726,7 +726,7 @@ StgRunIsImplementedInAssembler(void)
+@@ -635,7 +635,7 @@
     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)
+-#if defined(powerpc_HOST_ARCH)
++#if defined(powerpc_HOST_ARCH) && (_CALL_ELF != 2)
+
+ #define STG_GLOBAL ".globl "
 
- static void GNUC3_ATTRIBUTE(used)
- StgRunIsImplementedInAssembler(void)
-@@ -851,7 +851,7 @@ StgRunIsImplementedInAssembler(void)
+@@ -792,6 +792,6 @@
 
  #endif
 
@@ -171,9 +124,6 @@ index 934926e..2ff8662 100644
 +#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 9274a44..3b4fc33 100644
 --- a/rts/StgCRunAsm.S
 +++ b/rts/StgCRunAsm.S
 @@ -5,7 +5,7 @@
diff --git a/srcpkgs/ghc/template b/srcpkgs/ghc/template
index b8b16f67b433..c4bbb3e4e3b1 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=8.10.7
+version=9.0.2
 revision=1
 wrksrc="ghc-${version%[!0-9]}"
 build_style=gnu-configure
@@ -14,7 +14,7 @@ maintainer="slotThe <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=e3eef6229ce9908dfe1ea41436befb0455fefb1932559e860ad4c606b0d03c9d
+checksum=140e42b96346322d1a39eb17602bcdc76e292028ad4a69286b230bab188a9197
 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 90bdce8ae8ab36517c9cfb601f4e51cba4703bce Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sat, 19 Mar 2022 10:48:13 +0100
Subject: [PATCH 02/18] cabal-install: update to 3.6.3.0

Technically, this is only upgrading Cabal (the library) to 3.6.3.0, as
the installed version of cabal-install is still 3.6.2.0.  This is,
however, necessary for GHC 9.x support.
---
 srcpkgs/cabal-install/files/linux-9.0.2.json | 1 +
 srcpkgs/cabal-install/template               | 9 +++++----
 2 files changed, 6 insertions(+), 4 deletions(-)
 create mode 100644 srcpkgs/cabal-install/files/linux-9.0.2.json

diff --git a/srcpkgs/cabal-install/files/linux-9.0.2.json b/srcpkgs/cabal-install/files/linux-9.0.2.json
new file mode 100644
index 000000000000..f3cb6b4aeeb5
--- /dev/null
+++ b/srcpkgs/cabal-install/files/linux-9.0.2.json
@@ -0,0 +1 @@
+{"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/template b/srcpkgs/cabal-install/template
index d6d718709993..6a4b0ad7fc0e 100644
--- a/srcpkgs/cabal-install/template
+++ b/srcpkgs/cabal-install/template
@@ -1,6 +1,6 @@
 # Template file for 'cabal-install'
 pkgname=cabal-install
-version=3.6.2.0
+version=3.6.3.0
 revision=1
 wrksrc=cabal-Cabal-v${version}
 hostmakedepends="ghc curl tar which"
@@ -11,7 +11,7 @@ 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=dcf31e82cd85ea3236be18cc36c68058948994579ea7de18f99175821dbbcb64
+checksum=dea086acad6d9fe5fe22d838b95b4e988022e8519f38d41609119ea32bfb7466
 nopie_files="/usr/bin/cabal"
 nocross=yes
 
@@ -19,12 +19,13 @@ 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-8.10.7.json ;;
+		vsed -i -e 's/+ofd-locking/-ofd-locking/' bootstrap/linux-9.0.2.json ;;
 	esac
 }
 
 do_build() {
-	PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-8.10.7.json
+	cp "${FILESDIR}/linux-9.0.2.json" bootstrap/
+	PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-9.0.2.json
 }
 do_install() {
 	vbin _build/bin/cabal

From fca528d49c56be81a9fc18c0f74b3ad761698a27 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sat, 19 Mar 2022 12:54:36 +0100
Subject: [PATCH 03/18] stack: update stackage resolver to lts-19.0

Related: https://github.com/commercialhaskell/stack/pull/5559
---
 srcpkgs/stack/patches/ghc9.0.2.patch | 212 +++++++++++++++++++++++++++
 srcpkgs/stack/template               |   6 +-
 2 files changed, 215 insertions(+), 3 deletions(-)
 create mode 100644 srcpkgs/stack/patches/ghc9.0.2.patch

diff --git a/srcpkgs/stack/patches/ghc9.0.2.patch b/srcpkgs/stack/patches/ghc9.0.2.patch
new file mode 100644
index 000000000000..bdd77de58c6b
--- /dev/null
+++ b/srcpkgs/stack/patches/ghc9.0.2.patch
@@ -0,0 +1,212 @@
+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/template b/srcpkgs/stack/template
index 9e53b95ca633..15c38039684d 100644
--- a/srcpkgs/stack/template
+++ b/srcpkgs/stack/template
@@ -1,8 +1,8 @@
 # Template file for 'stack'
 pkgname=stack
 version=2.7.5
-revision=1
-_stackage="lts-18.14"
+revision=2
+_stackage="lts-19.0"
 hostmakedepends="cabal-install pkg-config unzip"
 makedepends="zlib-devel pcre-devel"
 depends="git gmp-devel iana-etc"
@@ -13,7 +13,7 @@ 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
- 78577c091074d78f9d6e09d6e31e7fc8ac2ddbb0dbc4ac65c606adcac4957d7f"
+ 6b9983f6448eb825231f65fe955d6d85516f482f0d26fee84183a1a79c6b0646"
 skip_extraction="cabal.config-${_stackage}"
 nocross=yes
 nopie_files="/usr/bin/stack"

From 9de9a979acc648b9901fbc319d5af00023176d9b Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 09:17:26 +0100
Subject: [PATCH 04/18] cgrep: bump for stackage lts-19.0

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

diff --git a/srcpkgs/cgrep/template b/srcpkgs/cgrep/template
index e57106f3fa26..1c54fe367396 100644
--- a/srcpkgs/cgrep/template
+++ b/srcpkgs/cgrep/template
@@ -1,9 +1,9 @@
 # Template file for 'cgrep'
 pkgname=cgrep
 version=6.7.1
-revision=2
+revision=3
 build_style=haskell-stack
-stackage="lts-18.15"
+stackage="lts-19.0"
 makedepends="pcre-devel pkg-config"
 short_desc="Context-aware grep for source codes"
 maintainer="slotThe <soliditsallgood@mailbox.org>"

From 39baaa9e9822341c8c1d8a90f62843a60692c679 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 09:23:26 +0100
Subject: [PATCH 05/18] git-mediate: bump for stackage lts-19.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 0c9ec10241e5..705df7843b8e 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=2
+revision=3
 build_style=haskell-stack
-stackage="lts-18.14"
+stackage="lts-19.0"
 depends="git"
 short_desc="Tool to help resolving git conflicts"
 maintainer="Peter Wang <novalazy@gmail.com>"

From 47024f61e647b0f4fa02b273516755d86fda46a6 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 09:51:34 +0100
Subject: [PATCH 06/18] hlint: update to 3.3.6

---
 srcpkgs/hlint/template | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/srcpkgs/hlint/template b/srcpkgs/hlint/template
index fd72c1bbea58..0109be25805f 100644
--- a/srcpkgs/hlint/template
+++ b/srcpkgs/hlint/template
@@ -1,16 +1,16 @@
 # Template file for 'hlint'
 pkgname=hlint
-version=3.2.7
-revision=2
+version=3.3.6
+revision=1
 build_style=haskell-stack
-stackage="lts-18.14"
+stackage="lts-19.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=fcdeefcc79a52206add44b409abcab48c5fe2adff9d5aff077acbc43c702b54e
+checksum=7d536c03f77a0c259efb2b00b525ef34578ca8a4a95ccb412708e8c7172e2e6a
 nocross=yes # Can't yet cross compile Haskell
 nopie_files="/usr/bin/hlint"
 

From 9187ce00b74630b99af08af7afd8a17e6fc0fbea Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 11:38:44 +0100
Subject: [PATCH 07/18] pandoc: update to 2.17.1.1

+ Fix compilation of `pandoc-crossref` for musl systems.
+ Remove the `system-lua` flag, as `pkg-config` already implies it [1].

Related: https://github.com/lierdakil/pandoc-crossref/issues/342
[1]: https://github.com/hslua/hslua/blob/main/lua/README.md?plain=1#L39-L40
---
 srcpkgs/pandoc/files/pandoc-crossref.cabal | 230 +++++++++++++++++++++
 srcpkgs/pandoc/template                    |  43 ++--
 2 files changed, 249 insertions(+), 24 deletions(-)
 create mode 100644 srcpkgs/pandoc/files/pandoc-crossref.cabal

diff --git a/srcpkgs/pandoc/files/pandoc-crossref.cabal b/srcpkgs/pandoc/files/pandoc-crossref.cabal
new file mode 100644
index 000000000000..39f2b9e7bde0
--- /dev/null
+++ b/srcpkgs/pandoc/files/pandoc-crossref.cabal
@@ -0,0 +1,230 @@
+cabal-version: 2.0
+
+-- This file has been generated from package.yaml by hpack version 0.34.6.
+--
+-- see: https://github.com/sol/hpack
+--
+-- hash: 20655cd6263e9fe7e5737ee81b093c8c6f5eae67e260ddd3a821ac6ef5e35e69
+
+name:           pandoc-crossref
+version:        0.3.13.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
+homepage:       https://github.com/lierdakil/pandoc-crossref#readme
+bug-reports:    https://github.com/lierdakil/pandoc-crossref/issues
+author:         Nikolay Yakimov
+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
+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/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/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
+
+source-repository head
+  type: git
+  location: https://github.com/lierdakil/pandoc-crossref
+
+flag enable_flaky_tests
+  description: Some tests rely on specific behaviour of pandoc, which may change between minor versions. These are still useful indicators for the developer, but not necessarily indicating there's a problem with the package itself. Enable if you know what you are doing.
+  manual: True
+  default: False
+
+library
+  exposed-modules:
+      Text.Pandoc.CrossRef
+  other-modules:
+      Text.Pandoc.CrossRef.References
+      Text.Pandoc.CrossRef.References.Blocks
+      Text.Pandoc.CrossRef.References.List
+      Text.Pandoc.CrossRef.References.Refs
+      Text.Pandoc.CrossRef.References.Types
+      Text.Pandoc.CrossRef.Util.CodeBlockCaptions
+      Text.Pandoc.CrossRef.Util.CustomLabels
+      Text.Pandoc.CrossRef.Util.Meta
+      Text.Pandoc.CrossRef.Util.ModifyMeta
+      Text.Pandoc.CrossRef.Util.Options
+      Text.Pandoc.CrossRef.Util.Settings
+      Text.Pandoc.CrossRef.Util.Settings.Gen
+      Text.Pandoc.CrossRef.Util.Settings.Template
+      Text.Pandoc.CrossRef.Util.Template
+      Text.Pandoc.CrossRef.Util.Util
+  hs-source-dirs:
+      lib
+      lib-internal
+  ghc-options: -Wall
+  build-depends:
+      base >=4.11 && <5
+    , containers >=0.1 && <0.7
+    , data-default >=0.4 && <0.8
+    , directory >=1 && <1.4
+    , filepath >=1.1 && <1.5
+    , 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.*
+    , syb >=0.4 && <0.8
+    , template-haskell >=2.7.0.0 && <3.0.0.0
+    , text >=1.2.2 && <1.3
+    , utility-ht >=0.0.11 && <0.1.0
+  default-language: Haskell2010
+
+executable pandoc-crossref
+  main-is: pandoc-crossref.hs
+  other-modules:
+      ManData
+  hs-source-dirs:
+      src
+  ghc-options: -Wall -threaded
+  build-depends:
+      base >=4.11 && <5
+    , deepseq ==1.4.*
+    , gitrev >=1.3.1 && <1.4
+    , open-browser ==0.2.*
+    , optparse-applicative >=0.13 && <0.17
+    , pandoc >=2.10 && <2.18
+    , pandoc-crossref
+    , pandoc-types >=1.21 && <1.23
+    , template-haskell >=2.7.0.0 && <3.0.0.0
+    , temporary >=1.2 && <1.4
+    , text >=1.2.2 && <1.3
+  default-language: Haskell2010
+
+test-suite test-integrative
+  type: exitcode-stdio-1.0
+  main-is: test-integrative.hs
+  hs-source-dirs:
+      test
+  ghc-options: -Wall -fno-warn-unused-do-bind -threaded
+  build-depends:
+      base >=4.11 && <5
+    , directory >=1 && <1.4
+    , filepath >=1.1 && <1.5
+    , hspec >=2.4.4 && <3
+    , pandoc >=2.10 && <2.18
+    , pandoc-crossref
+    , pandoc-types >=1.21 && <1.23
+    , text >=1.2.2 && <1.3
+  if flag(enable_flaky_tests)
+    cpp-options: -DFLAKY
+  default-language: Haskell2010
+
+test-suite test-pandoc-crossref
+  type: exitcode-stdio-1.0
+  main-is: test-pandoc-crossref.hs
+  other-modules:
+      Native
+      Paths_pandoc_crossref
+  autogen-modules:
+      Paths_pandoc_crossref
+  hs-source-dirs:
+      test
+  ghc-options: -Wall -fno-warn-unused-do-bind -threaded
+  build-depends:
+      base >=4.11 && <5
+    , containers >=0.1 && <0.7
+    , data-default >=0.4 && <0.8
+    , 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-crossref
+    , pandoc-types >=1.21 && <1.23
+    , text >=1.2.2 && <1.3
+  if flag(enable_flaky_tests)
+    cpp-options: -DFLAKY
+  default-language: Haskell2010
+
+benchmark simple
+  type: exitcode-stdio-1.0
+  main-is: bench-simple.hs
+  other-modules:
+      Native
+  hs-source-dirs:
+      test
+  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
+    , pandoc-crossref
+    , pandoc-types >=1.21 && <1.23
+    , text >=1.2.2 && <1.3
+  default-language: Haskell2010
diff --git a/srcpkgs/pandoc/template b/srcpkgs/pandoc/template
index 8628b1d1f3c2..9bdf32ef3c53 100644
--- a/srcpkgs/pandoc/template
+++ b/srcpkgs/pandoc/template
@@ -1,18 +1,18 @@
 # Template file for 'pandoc'
 pkgname=pandoc
 # Keep in sync with http://www.stackage.org/lts
-version=2.14.0.3
-revision=3
-_sidenote_version=0.20.0.0
+version=2.17.1.1
+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
 create_wrksrc=yes
 build_style=haskell-stack
-stackage="lts-18.14"
+stackage="lts-19.0"
 make_build_args="
- --flag pandoc:embed_data_files --flag=hslua:system-lua
- --flag=hslua:pkg-config"
+ --flag pandoc:embed_data_files
+ --flag=lua:pkg-config"
 hostmakedepends="pkg-config unzip wget"
 makedepends="zlib-devel lua53-devel tar"
 short_desc="Universal converter between markup formats"
@@ -21,33 +21,28 @@ license="GPL-2.0-or-later, BSD-3-Clause"
 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"
-checksum="82e3f55bff3059bf30cf532e93d9876c9e3599aa4eafae9c907fe75a4430eddd
- 91f8e96d8470722d677d31d4bbf16c2ac6902567d818ed7a2715bad2617a4cdb
- be8485023fce236b5b915f2f6074f7b0470a2040f84cdd137c5227f1b4c98465"
-subpackages="pandoc-sidenote"
-nocross=yes
-nopie_files="
- /usr/bin/pandoc
- /usr/bin/pandoc-sidenote"
-
-# pandoc-crossref is currently broken on musl. See lierdakil/pandoc-crossref#342 and commercialhaskell/stack#5683
-if [ "$XBPS_TARGET_LIBC" != "musl" ]; then
-	distfiles+="
+ 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+="
+checksum="649ec528d1413130c5ce304b826ff473b3696269eea8834d908589e775bd1ad1
+ c39dd7343b9cb4dc5b1c91c9e47c3d357874e9e1a30b8d377bbea0b1d50323b2
+ be8485023fce236b5b915f2f6074f7b0470a2040f84cdd137c5227f1b4c98465
  94540325c9c98ae4d5199c634bf402ffa41e3c5b020d7207daef90fd9e224fb4
  b9c7195b69b1662a286d2c28a55fafdcb693c522ba5eb54a11b1d0a4e92eaa81"
-	nopie_files+="
- /usr/bin/pandoc-crossref"
-	subpackages+="
+subpackages="
+ pandoc-sidenote
  pandoc-crossref"
-fi
+nocross=yes
+nopie_files="
+ /usr/bin/pandoc
+ /usr/bin/pandoc-sidenote
+ /usr/bin/pandoc-crossref"
 
 post_extract() {
 	sed -i 's/tasty .*,/tasty,/' pandoc-*/pandoc.cabal
 	sed -i 's/zip-archive .*,/zip-archive,/' pandoc-*/pandoc.cabal
+	# See https://github.com/lierdakil/pandoc-crossref/issues/342#issuecomment-1073256586
+	cp "${FILESDIR}/pandoc-crossref.cabal" pandoc-crossref-${_crossref_version}
 }
 
 post_install() {

From 96ca211c88712bf81839c41232703ec4fb89208e Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 12:15:01 +0100
Subject: [PATCH 08/18] shellcheck: bump for stackage lts-19.0

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

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

From d7c5bd5bc2bf3506928f1ec886dfdd3fb90799b9 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 12:52:11 +0100
Subject: [PATCH 09/18] hoogle: update to 5.0.18.3

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

diff --git a/srcpkgs/hoogle/template b/srcpkgs/hoogle/template
index 4c3e80186494..dc487cab4017 100644
--- a/srcpkgs/hoogle/template
+++ b/srcpkgs/hoogle/template
@@ -1,16 +1,16 @@
 # Template file for 'hoogle'
 pkgname=hoogle
-version=5.0.18.2
-revision=2
+version=5.0.18.3
+revision=1
 build_style=haskell-stack
-stackage="lts-18.14"
+stackage="lts-19.0"
 makedepends="zlib-devel"
 short_desc="Haskell API search engine"
 maintainer="Inokentiy Babushkin <twk@twki.de>"
 license="BSD-3-Clause"
 homepage="https://hoogle.haskell.org/"
 distfiles="https://github.com/ndmitchell/${pkgname}/archive/v${version}.tar.gz"
-checksum=9f8f0afde52fe602100ab7828fad230c2f5e94050dda9fe1e2a9f0a93f7fe617
+checksum=a2765fcbaf99fe67a64ef29fe50e69fb380cce07807cddeb0836c148b1ae472b
 nopie_files="/usr/bin/hoogle"
 nocross=yes # Can't yet cross compile Haskell
 

From 3cc03d6b11b7f6ef4e6a8b8805cf4ee979b4badc Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 13:33:12 +0100
Subject: [PATCH 10/18] xmobar: update to 0.42

Also enable most flags during compilation in order to be less surprising
with regards to what features xmobar supports out of the box.
---
 srcpkgs/xmobar/files/stack.yaml | 2 +-
 srcpkgs/xmobar/template         | 8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/xmobar/files/stack.yaml b/srcpkgs/xmobar/files/stack.yaml
index 47544eb729d8..7e0956374142 100644
--- a/srcpkgs/xmobar/files/stack.yaml
+++ b/srcpkgs/xmobar/files/stack.yaml
@@ -1,4 +1,4 @@
-resolver: lts-18.13
+resolver: lts-19.0
 packages:
 - .
 extra-deps:
diff --git a/srcpkgs/xmobar/template b/srcpkgs/xmobar/template
index b97c9f268d68..6a12a9ed7055 100644
--- a/srcpkgs/xmobar/template
+++ b/srcpkgs/xmobar/template
@@ -1,7 +1,7 @@
 # Template file for 'xmobar'
 pkgname=xmobar
-version=0.39
-revision=2
+version=0.42
+revision=1
 build_style=haskell-stack
 hostmakedepends="pkg-config"
 makedepends="libX11-devel libXinerama-devel libXrandr-devel libXScrnSaver-devel
@@ -15,10 +15,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=46f37b90dd3ba3348dbe7de716b88606c7f0f0dd22a3580176b5cd089c1b36cc
+checksum=53f4a06d79c3db32ef1a498ec7b764b17d03ebf9bca3126c6b8259595492769b
 build_options="dbus threaded utf8 xft mpd mpris inotify iwlib alsa datezone
  xpm uvmeter weather nl80211"
-build_options_default="threaded utf8 xft inotify nl80211 datezone weather xpm"
+build_options_default="threaded utf8 xft inotify nl80211 datezone weather xpm alsa mpris mpd dbus"
 nopie_files="/usr/bin/xmobar"
 nocross=yes
 vopt_hflag() {

From d9425e49584c01d9b19fb4231d327bb36a5b15f7 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 18:09:34 +0100
Subject: [PATCH 11/18] hledger: update to 1.25

---
 srcpkgs/hledger/template | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/hledger/template b/srcpkgs/hledger/template
index fdcab180a6de..32d39207fd82 100644
--- a/srcpkgs/hledger/template
+++ b/srcpkgs/hledger/template
@@ -1,8 +1,9 @@
 # Template file for 'hledger'
 pkgname=hledger
-version=1.23
-revision=2
+version=1.25
+revision=1
 build_style=haskell-stack
+stackage="lts-19.0"
 makedepends="zlib-devel ncurses-devel"
 short_desc="Simple, precise, plain text accounting"
 maintainer="Inokentiy Babushkin <twk@twki.de>"
@@ -10,7 +11,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/${pkgname}/archive/${version}.tar.gz"
-checksum=7252d78aafbae488b113a6350518a702186cacc4e746cec2b31f8321b4dddcb4
+checksum=4c947c2a7d243d2a56efc1fa02994a118e995df025a412f6d2daeadfd78338ee
 nopie_files="/usr/bin/hledger"
 nocross=yes # Can't yet cross compile Haskell
 

From 54d9f8a086bfbb6efd1ffe6d3d8fb8a4666882fe Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Mon, 21 Mar 2022 08:19:29 +0100
Subject: [PATCH 12/18] haskell-language-server: update to 1.6.1.0

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

diff --git a/srcpkgs/haskell-language-server/template b/srcpkgs/haskell-language-server/template
index 0182c9b95757..0c7b2187c5ca 100644
--- a/srcpkgs/haskell-language-server/template
+++ b/srcpkgs/haskell-language-server/template
@@ -1,16 +1,16 @@
 # Template file for 'haskell-language-server'
 pkgname=haskell-language-server
-version=1.4.0
+version=1.6.1.0
 revision=1
 build_style="haskell-stack"
-make_build_args="--stack-yaml stack-8.10.7.yaml"
+make_build_args="--stack-yaml stack-9.0.2.yaml"
 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>"
 license="Apache-2.0"
 homepage="https://github.com/haskell/haskell-language-server"
 distfiles="https://github.com/haskell/haskell-language-server/archive/${version}.tar.gz"
-checksum=c5d7dbf7fae9aa3ed2c1184b49e82d8ac623ca786494ef6602cfe11735d28db0
+checksum=e5c336ad2de8d021c882cdac5bbc26bf6427df8d2a5bd244c05cf18296a9bfdc
 nopie_files="
  /usr/bin/haskell-language-server
  /usr/bin/haskell-language-server-wrapper

From 5812fa9cf0ff696b488e329966b54130cf39e185 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Mon, 21 Mar 2022 15:48:58 +0100
Subject: [PATCH 13/18] git-annex: update to 10.20220222

---
 srcpkgs/git-annex/files/stack.yaml | 33 ++++++++++++++++++++++++++++++
 srcpkgs/git-annex/template         |  5 +++--
 2 files changed, 36 insertions(+), 2 deletions(-)
 create mode 100644 srcpkgs/git-annex/files/stack.yaml

diff --git a/srcpkgs/git-annex/files/stack.yaml b/srcpkgs/git-annex/files/stack.yaml
new file mode 100644
index 000000000000..4935307f48cf
--- /dev/null
+++ b/srcpkgs/git-annex/files/stack.yaml
@@ -0,0 +1,33 @@
+flags:
+  git-annex:
+    production: true
+    assistant: true
+    pairing: true
+    torrentparser: true
+    webapp: true
+    magicmime: false
+    dbus: false
+    debuglocks: false
+    benchmark: true
+    networkbsd: true
+    gitlfs: true
+    httpclientrestricted: true
+packages:
+  - '.'
+resolver: lts-19.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
diff --git a/srcpkgs/git-annex/template b/srcpkgs/git-annex/template
index 1cf2ab14789f..7b788bc5861e 100644
--- a/srcpkgs/git-annex/template
+++ b/srcpkgs/git-annex/template
@@ -1,8 +1,9 @@
 # Template file for 'git-annex'
 pkgname=git-annex
-version=8.20211028
+version=10.20220222
 revision=1
 build_style=haskell-stack
+stackage="lts-19.0"
 makedepends="curl file-devel gnupg2 gnutls-devel gsasl-devel libxml2-devel
  lsof rsync git ncurses-devel"
 # depends are utilities required by git-annex
@@ -12,7 +13,7 @@ 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="http://git-annex.branchable.com"
 distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz"
-checksum=cf5efe15e68d467daad673bec10037a27a78da7e4af9b4a85e10980bd90ace2d
+checksum=1fb9f75a83feb16f7515122135c0f3abe6aa77544d8d778792296cbc053d2c85
 nopie_files="/usr/bin/git-annex"
 nocross=yes
 

From 35fdbb69e22e166c8630e1e1f6b9cb228c38e960 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Wed, 23 Mar 2022 09:14:58 +0100
Subject: [PATCH 14/18] darcs: bump for stackage lts-19.0

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

diff --git a/srcpkgs/darcs/files/stack.yaml b/srcpkgs/darcs/files/stack.yaml
index 5ae0f5313b8d..6e459703764a 100644
--- a/srcpkgs/darcs/files/stack.yaml
+++ b/srcpkgs/darcs/files/stack.yaml
@@ -1,7 +1,4 @@
-resolver: lts-18.14
+resolver: lts-19.0
 packages:
 - .
-extra-deps:
-- graphviz-2999.20.1.0
-- constraints-0.12@sha256:7edf1e72a92d0a6761da634f08be9123dfcc0dcec11c269cbf465a09721c3481,2322
-- cryptonite-0.27@sha256:c3a9c8ce11e654a9d5bee827b089d4b50587272828d0c52a85362a58667a916c,18163
+allow-newer: true
diff --git a/srcpkgs/darcs/template b/srcpkgs/darcs/template
index f9fcac534d46..15a8f71f9021 100644
--- a/srcpkgs/darcs/template
+++ b/srcpkgs/darcs/template
@@ -1,7 +1,7 @@
 # Template file for 'darcs'
 pkgname=darcs
 version=2.16.5
-revision=2
+revision=3
 build_style=haskell-stack
 hostmakedepends="unzip"
 makedepends="zlib-devel libcurl-devel ncurses-devel"

From 93a1014fafab6ee81037ee0e518bccf41dcc8602 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Thu, 24 Mar 2022 11:50:45 +0100
Subject: [PATCH 15/18] debug-me: update to 1.20220324

---
 srcpkgs/debug-me/files/stack.yaml        |  8 +++---
 srcpkgs/debug-me/patches/ghc8.10.4.patch | 33 ------------------------
 srcpkgs/debug-me/template                |  7 ++---
 3 files changed, 7 insertions(+), 41 deletions(-)
 delete mode 100644 srcpkgs/debug-me/patches/ghc8.10.4.patch

diff --git a/srcpkgs/debug-me/files/stack.yaml b/srcpkgs/debug-me/files/stack.yaml
index ad8b055bb33e..f2b1a79d70c6 100644
--- a/srcpkgs/debug-me/files/stack.yaml
+++ b/srcpkgs/debug-me/files/stack.yaml
@@ -1,8 +1,6 @@
 packages:
 - '.'
-resolver: lts-18.14
+resolver: lts-19.0
 extra-deps:
-- posix-pty-0.2.1.1
-- graphviz-2999.20.1.0
-- sandi-0.5
-- protobuf-0.2.1.3@sha256:d8ed3c73027c6b7e7583c6a94ee1835beee8a755a875b06bbf51bc667d53ab69,3048
+  - posix-pty-0.2.1.1
+  - sandi-0.5@sha256:b278d072ca717706ea38f9bd646e023f7f2576a778fb43565b434f93638849aa,3010
diff --git a/srcpkgs/debug-me/patches/ghc8.10.4.patch b/srcpkgs/debug-me/patches/ghc8.10.4.patch
deleted file mode 100644
index bfcff16a4438..000000000000
--- a/srcpkgs/debug-me/patches/ghc8.10.4.patch
+++ /dev/null
@@ -1,33 +0,0 @@
---- a/Val.hs	2020-03-31 11:00:33.329814064 +0200
-+++ b/Val.hs	2020-03-31 11:00:24.602711845 +0200
-@@ -42,7 +42,7 @@
- b64 :: B.ByteString -> T.Text
- b64 = T.decodeUtf8 . B64.encode
-
--unb64 :: Monad m => T.Text -> m B.ByteString
-+unb64 :: MonadFail m => T.Text -> m B.ByteString
- unb64 t = either
- 	(\_ -> fail "bad base64 data")
- 	return
---- a/Server.hs	2020-03-31 12:53:45.860509650 +0200
-+++ b/Server.hs	2020-03-31 12:52:34.873835069 +0200
-@@ -105,7 +105,7 @@
- 		-- (Workaround for
- 		-- https://github.com/jaspervdj/websockets/issues/140)
- 		setHost "*6" $
--		setPort (serverPort o) $
-+		setPort (CmdLine.serverPort o) $
- 		defaultSettings
-
- checkEnv :: ServerOpts -> IO ServerOpts
---- a/debug-me.cabal
-+++ b/debug-me.cabal
-@@ -64,7 +64,7 @@
-     , stm-chans (>= 3.0)
-     , posix-pty (>= 0.2.1)
-     , terminal-size (>= 0.3)
--    , aeson (>= 0.11 && < 1.5)
-+    , aeson (>= 0.11 && < 1.6)
-     , sandi (>= 0.4)
-     , text (>= 1.2.2)
-     , optparse-applicative (>= 0.12)
diff --git a/srcpkgs/debug-me/template b/srcpkgs/debug-me/template
index 86ac0037311a..f971f2156c77 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.20200820
-revision=3
+version=1.20220324
+revision=1
 build_style=haskell-stack
+stackage="lts-19.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=9497dc9b85a58e5c499ea25fa1bed9f4fd6cdd2f57564f52a0e4152ad4fdc102
+checksum=9fd6256aa34408106ff095e0560850aca3558a774be4ce19de6ab6e81fbfdb9f
 nocross=yes # Can't yet cross compile Haskell
 nopie_files="/usr/bin/debug-me"
 

From c409ff55666f010f5bb37f01fe76f584db210c16 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sigrid=20Solveig=20Hafl=C3=ADnud=C3=B3ttir?=
 <ftrvxmtrx@gmail.com>
Date: Thu, 24 Mar 2022 09:27:25 +0100
Subject: [PATCH 16/18] ghc, ghc-bin: Add aarch64* support

---
 srcpkgs/ghc-bin/template | 22 ++++++++++++++++------
 srcpkgs/ghc/template     |  8 ++++++++
 2 files changed, 24 insertions(+), 6 deletions(-)

diff --git a/srcpkgs/ghc-bin/template b/srcpkgs/ghc-bin/template
index 3949ee3fa1aa..8a725a84e76a 100644
--- a/srcpkgs/ghc-bin/template
+++ b/srcpkgs/ghc-bin/template
@@ -1,8 +1,8 @@
 # Template file for 'ghc-bin'
 pkgname=ghc-bin
-version=8.10.7
+version=9.0.2
 revision=1
-archs="i686 x86_64* ppc64le* ppc64"
+archs="i686 x86_64* ppc64le* ppc64 aarch64*"
 wrksrc="ghc-${version%[!0-9]}"
 hostmakedepends="perl libffi libnuma"
 depends="ncurses perl gcc libffi-devel gmp-devel"
@@ -15,8 +15,8 @@ noshlibprovides=yes
 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=ced9870ea351af64fb48274b81a664cdb6a9266775f1598a79cbb6fdd5770a23
+	distfiles="https://downloads.haskell.org/ghc/${version%[!0-9]}/ghc-${version}-x86_64-deb9-linux.tar.xz"
+	checksum=805f5628ce6cec678ba77ff48c924831ebdf75ec2c66368e8935a618913a150e
 	;;
 x86_64-musl)
 	# create with "make binary-dist"
@@ -24,8 +24,8 @@ x86_64-musl)
 	checksum=52f6492f39f13890f4ecd83784724ae9fff7a02fdc624a56c49872c912608a50
 	;;
 i686)
-	distfiles="https://downloads.haskell.org/~ghc/${version%[!0-9]}/ghc-${version}-i386-deb9-linux.tar.xz"
-	checksum=fbfc1ef194f4e7a4c0da8c11cc69b17458a4b928b609b3622c97acc4acd5c5ab
+	distfiles="https://downloads.haskell.org/ghc/${version%[!0-9]}/ghc-${version}-i386-deb9-linux.tar.xz"
+	checksum=fdeb9f8928fbe994064778a8e1e85bb1a58a6cd3dd7b724fcc2a1dcfda6cad47
 	;;
 ppc64le)
 	distfiles="https://alpha.de.repo.voidlinux.org/distfiles/ghc-${version}-powerpc64le-void-linux.tar.xz"
@@ -39,6 +39,16 @@ ppc64)
 	distfiles="https://alpha.de.repo.voidlinux.org/distfiles/ghc-${version}-powerpc64-void-linux.tar.xz"
 	checksum=b8578e602abd4b453845303fb9cfed0b2186f86f60e3aa45869026ea833726c8
 	;;
+aarch64)
+	distfiles="https://alpha.de.repo.voidlinux.org/distfiles/ghc-${version}-aarch64-void-linux.tar.xz"
+	checksum=429a84d2850357e305a017c7d3eb1cb7cf838e900e52920d555de39d9c59b8c6
+	depends+=" llvm"
+	;;
+aarch64-musl)
+	distfiles="https://alpha.de.repo.voidlinux.org/distfiles/ghc-${version}-aarch64-void-linux-musl.tar.xz"
+	checksum=f2c37a5ed028eebd3e69a22ce989f5cdf6f84a408871ff0933ac532414c6c273
+	depends+=" llvm"
+	;;
 *)
 	broken="No distfiles available for this target"
 	;;
diff --git a/srcpkgs/ghc/template b/srcpkgs/ghc/template
index c4bbb3e4e3b1..d0b1600987be 100644
--- a/srcpkgs/ghc/template
+++ b/srcpkgs/ghc/template
@@ -54,6 +54,14 @@ elif [ "${XBPS_MACHINE%-*}" != "${XBPS_TARGET_MACHINE%-*}" ]; then
 	configure_args+=" --host=${XBPS_TRIPLET} --target=${XBPS_CROSS_TRIPLET}"
 fi
 
+case "$XBPS_TARGET_MACHINE" in
+aarch64*)
+	# GHC uses LLVM to generate code on aarch64
+	hostmakedepends+=" llvm"
+	depends+=" llvm"
+	;;
+esac
+
 # Recent safe to use tarball
 # GHC's bundled tarball is from 2017, buggy on some archs
 _ffi_rev=4d6d2866ae43e55325e8ee96561221804602cd7a

From 456a68636a7b3e91d1cee7240062639dbb1eac50 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Thu, 24 Mar 2022 14:27:41 +0100
Subject: [PATCH 17/18] kmonad: update to
 65b501defdd0049563752f8af8c8c57f5a1ae38b

The reason for updating to an unreleased version is that the author
(and core maintainer) of the project is chronically ill[1] and unable
to spend a lot of time on kmonad.  At the same time, there is a rather
large refactor on the way, without which a new release would not make
too much sense[2].  As such, updating to what's essentially HEAD makes
sense in this case; it is not any less stable than 0.4.1 (I've
personally been running this for months without any problems).  As a
bonus, we get GHC 9.0.2 compatibility for free and do not need to
cherry pick the relevant commits.

[1]: https://github.com/kmonad/kmonad#disclaimer
[2]: https://github.com/kmonad/kmonad/pull/372
---
 srcpkgs/kmonad/template | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/srcpkgs/kmonad/template b/srcpkgs/kmonad/template
index c93d2bee4c4f..829d96a535eb 100644
--- a/srcpkgs/kmonad/template
+++ b/srcpkgs/kmonad/template
@@ -1,15 +1,15 @@
 # Template file for 'kmonad'
 pkgname=kmonad
-version=0.4.1
-revision=3
+version=65b501defdd0049563752f8af8c8c57f5a1ae38b
+revision=1
 build_style=haskell-stack
-stackage=lts-18.14
+stackage=lts-19.0
 short_desc="Keyboard remapping utility providing qmk-like functionality"
 maintainer="slotThe <soliditsallgood@mailbox.org>"
 license="MIT"
 homepage="https://github.com/david-janssen/kmonad"
 distfiles="${homepage}/archive/${version}.tar.gz"
-checksum=cb66f0c6d4c304c7e3c48cefd0c50ea00b156ffc361e278e1fc5c6070317d927
+checksum=2b0cb0c5d1575bf61b1c442476ad24103028c309d103fedb56214a3bb30f8c0f
 nopie_files="/usr/bin/kmonad"
 nocross=yes
 

From 176a62677d2a809395f6b9612aa27acac75d8cf9 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Fri, 25 Mar 2022 14:14:51 +0100
Subject: [PATCH 18/18] fixup! pandoc: update to 2.17.1.1

---
 srcpkgs/pandoc/files/pandoc-crossref.cabal | 76 ----------------------
 1 file changed, 76 deletions(-)

diff --git a/srcpkgs/pandoc/files/pandoc-crossref.cabal b/srcpkgs/pandoc/files/pandoc-crossref.cabal
index 39f2b9e7bde0..7aacc47278f3 100644
--- a/srcpkgs/pandoc/files/pandoc-crossref.cabal
+++ b/srcpkgs/pandoc/files/pandoc-crossref.cabal
@@ -18,82 +18,6 @@ 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
-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/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/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
 
 source-repository head
   type: git

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

* Re: [PR PATCH] [Updated] [WIP] Update to GHC 9.0.2/Stackage LTS-19.0
  2022-03-23  7:20 [PR PATCH] [WIP] Update to GHC 9.0.2/Stackage LTS-19.0 slotThe
                   ` (9 preceding siblings ...)
  2022-03-25 13:15 ` [PR PATCH] [Updated] " slotThe
@ 2022-03-25 13:44 ` slotThe
  2022-03-26 16:43 ` ftrvxmtrx
                   ` (10 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: slotThe @ 2022-03-25 13:44 UTC (permalink / raw)
  To: ml

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

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

https://github.com/slotThe/void-packages stackage-19
https://github.com/void-linux/void-packages/pull/36292

[WIP] Update to GHC 9.0.2/Stackage LTS-19.0
And so... the ~~hunt~~ fun begins again!

### Core packages to bump

- [x] ghc
- [ ] ghc-bin
    - [ ] x86_64-musl
    cc. @q66 for the following
    - [ ] ppc64le
    - [ ] ppc64le-musl
    - [x] aarch64 [Link](https://ftrv.se/_/void/ghc-9.0.2/ghc-9.0.2-aarch64-void-linux.tar.xz) **Not uploaded yet**
    - [x] aarch64-musl [Link](https://ftrv.se/_/void/ghc-9.0.2/ghc-9.0.2-aarch64-void-linux-musl.tar.xz) **Not uploaded yet**
- [x] cabal-install
- [x] stack

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

Most of these are already done, things should probably go smoothly as 9.0.x does not contain any big breaking changes.

- [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 (contains a fix for `pandoc-crossref` on musl \o/)
- [x] xmobar
- [x] haskell-language-server

### Other things to do 

- [ ] Either incorporate https://github.com/void-linux/void-packages/pull/36193 into this PR or merge it first and then rebuild GHC for aarch64 and aarch64-musl; cc. @ftrvxmtrx

[ci skip]

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

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-stackage-19-36292.patch --]
[-- Type: text/x-diff, Size: 61082 bytes --]

From 5ce0a7ea17703bcfb1fc7b4007efef9e20b2d395 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Fri, 18 Mar 2022 17:33:46 +0100
Subject: [PATCH 01/18] ghc: update to 9.0.2

---
 .../ghc/patches/no-atomic-64-on-32bit.patch   | 58 -------------
 srcpkgs/ghc/patches/ppc64-be-elfv2.patch      | 86 ++++---------------
 srcpkgs/ghc/template                          |  4 +-
 3 files changed, 20 insertions(+), 128 deletions(-)
 delete mode 100644 srcpkgs/ghc/patches/no-atomic-64-on-32bit.patch

diff --git a/srcpkgs/ghc/patches/no-atomic-64-on-32bit.patch b/srcpkgs/ghc/patches/no-atomic-64-on-32bit.patch
deleted file mode 100644
index 05ca275ea9df..000000000000
--- a/srcpkgs/ghc/patches/no-atomic-64-on-32bit.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 5c5aa87d50dc4ea97e76e13f285a7b5dd71fcd88 Mon Sep 17 00:00:00 2001
-From: Ilias Tsitsimpis <iliastsi@debian.org>
-Date: Sun, 1 Mar 2020 16:25:13 +0200
-Subject: [PATCH] Do not define hs_atomic{read,write}64() on non-64bit
-
-Do not define hs_atomicread64() and hs_atomicwrite64() on machines where
-WORD_SIZE_IN_BITS is less than 64, just like we do with the rest of the atomic
-functions which work on 64-bit values.
-
-Without this, compilation fails on MIPSel and PowerPC with the following error:
-
-/usr/bin/ld: /<<PKGBUILDDIR>>/libraries/ghc-prim/dist-install/build/libHSghc-prim-0.5.3_p.a(atomic.p_o): in function `hs_atomicread64':
-atomic.c:(.text.hs_atomicread64+0x8): undefined reference to `__sync_add_and_fetch_8'
-/usr/bin/ld: /<<PKGBUILDDIR>>/libraries/ghc-prim/dist-install/build/libHSghc-prim-0.5.3_p.a(atomic.p_o): in function `hs_atomicwrite64':
-atomic.c:(.text.hs_atomicwrite64+0x38): undefined reference to `__sync_bool_compare_and_swap_8'
-
-Fixes #17886.
----
- libraries/ghc-prim/cbits/atomic.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/libraries/ghc-prim/cbits/atomic.c b/libraries/ghc-prim/cbits/atomic.c
-index ac2e608ec2..01037d70ee 100644
---- a/libraries/ghc-prim/cbits/atomic.c
-+++ b/libraries/ghc-prim/cbits/atomic.c
-@@ -361,6 +361,7 @@ hs_atomicread32(StgWord x)
- #endif
- }
- 
-+#if WORD_SIZE_IN_BITS == 64
- extern StgWord64 hs_atomicread64(StgWord x);
- StgWord64
- hs_atomicread64(StgWord x)
-@@ -371,6 +372,7 @@ hs_atomicread64(StgWord x)
-   return __sync_add_and_fetch((StgWord64 *) x, 0);
- #endif
- }
-+#endif
- 
- // AtomicWriteByteArrayOp_Int
- // Implies a full memory barrier (see compiler/prelude/primops.txt.pp)
-@@ -409,6 +411,7 @@ hs_atomicwrite32(StgWord x, StgWord val)
- #endif
- }
- 
-+#if WORD_SIZE_IN_BITS == 64
- extern void hs_atomicwrite64(StgWord x, StgWord64 val);
- void
- hs_atomicwrite64(StgWord x, StgWord64 val)
-@@ -420,3 +423,5 @@ hs_atomicwrite64(StgWord x, StgWord64 val)
- #endif
- }
- #endif
-+
-+#endif
--- 
-GitLab
-
diff --git a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
index 275444e828b7..7f074d17cbae 100644
--- a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
+++ b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
@@ -3,21 +3,9 @@ From: Daniel Kolesa <daniel@octaforge.org>
 Date: Tue, 5 Jan 2021 04:10:25 +0100
 Subject: [PATCH] fix up runtime for ppc64 BE ELFv2 + ensure it's used
 
----
- aclocal.m4                        |  2 +-
- configure                         |  2 +-
- libraries/ghci/GHCi/InfoTable.hsc | 36 ++++++++++++-------------------
- rts/Adjustor.c                    | 12 +++++------
- rts/AdjustorAsm.S                 |  2 +-
- rts/StgCRun.c                     |  4 ++--
- rts/StgCRunAsm.S                  |  2 +-
- 7 files changed, 26 insertions(+), 34 deletions(-)
-
-diff --git a/aclocal.m4 b/aclocal.m4
-index 41cecf0..ba08bd2 100644
---- a/aclocal.m4
-+++ b/aclocal.m4
-@@ -199,7 +199,7 @@ AC_DEFUN([FPTOOLS_SET_HASKELL_PLATFORM_V
+--- a/m4/fptools.m4
++++ b/m4/fptools.m4
+@@ -201,7 +201,7 @@
              test -z "[$]2" || eval "[$]2=ArchPPC"
              ;;
          powerpc64)
@@ -26,8 +14,6 @@ index 41cecf0..ba08bd2 100644
              ;;
          powerpc64le)
              test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
-diff --git a/configure b/configure
-index 183e661..8aae1bc 100755
 --- a/configure
 +++ b/configure
 @@ -10296,7 +10296,7 @@ $as_echo "done" >&6; }
@@ -39,8 +25,6 @@ index 183e661..8aae1bc 100755
              ;;
          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 ec3c18a..0359be7 100644
 --- a/libraries/ghci/GHCi/InfoTable.hsc
 +++ b/libraries/ghci/GHCi/InfoTable.hsc
 @@ -228,30 +228,22 @@ mkJumpToAddr a = case platform of
@@ -88,57 +72,28 @@ index ec3c18a..0359be7 100644
 
      ArchPPC64LE ->
          -- The ABI requires r12 to point to the function's entry point.
-diff --git a/rts/Adjustor.c b/rts/Adjustor.c
-index d360cfe..ab7ede7 100644
---- a/rts/Adjustor.c
-+++ b/rts/Adjustor.c
-@@ -49,7 +49,7 @@ Haskell side.
-
- #if defined(i386_HOST_ARCH)
- extern void adjustorCode(void);
--#elif defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
-+#elif defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
- // from AdjustorAsm.s
- // not declared as a function so that AIX-style
- // fundescs can never get in the way.
-@@ -278,7 +278,7 @@ __asm__("obscure_ccall_ret_code:\n\t"
+--- a/rts/adjustor/NativePowerPC.c
++++ b/rts/adjustor/NativePowerPC.c
+@@ -29,7 +29,7 @@
  extern void obscure_ccall_ret_code(void);
- #endif
+ #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: !!! !!!
-@@ -318,7 +318,7 @@ typedef struct AdjustorStub {
- } AdjustorStub;
- #endif
-
--#if defined(i386_HOST_ARCH) || defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
-+#if defined(i386_HOST_ARCH) || defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
- static int totalArgumentSize(char *typeString)
- {
-     int sz = 0;
-@@ -351,7 +351,7 @@ void*
+--- a/rts/adjustor/NativeIA64.c
++++ b/rts/adjustor/NativeIA64.c
+@@ -39,7 +39,7 @@
  createAdjustor(int cconv, StgStablePtr hptr,
                 StgFunPtr wptr,
                 char *typeString
 -#if !defined(powerpc_HOST_ARCH) && !defined(powerpc64_HOST_ARCH) && !defined(x86_64_HOST_ARCH)
 +#if !defined(powerpc_HOST_ARCH) && (!defined(powerpc64_HOST_ARCH) || (_CALL_ELF == 2)) && !defined(x86_64_HOST_ARCH)
-                   STG_UNUSED
+                STG_UNUSED
  #endif
-               )
-@@ -1271,7 +1271,7 @@ freeHaskellFunctionPtr(void* ptr)
-    return;
-  }
-  freeStablePtr(((StgStablePtr*)ptr)[1]);
--#elif defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
-+#elif defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
-  if ( ((AdjustorStub*)ptr)->code != (StgFunPtr) &adjustorCode ) {
-    errorBelch("freeHaskellFunctionPtr: not for me, guv! %p\n", ptr);
-    return;
-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 @@
@@ -150,20 +105,18 @@ index 2795b83..63cfe91 100644
  #if !(defined(powerpc_HOST_ARCH) && defined(linux_HOST_OS))
      /* The following code applies, with some differences,
         to all powerpc platforms except for powerpc32-linux,
-diff --git a/rts/StgCRun.c b/rts/StgCRun.c
-index 934926e..2ff8662 100644
 --- a/rts/StgCRun.c
 +++ b/rts/StgCRun.c
-@@ -726,7 +726,7 @@ StgRunIsImplementedInAssembler(void)
+@@ -635,7 +635,7 @@
     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)
+-#if defined(powerpc_HOST_ARCH)
++#if defined(powerpc_HOST_ARCH) && (_CALL_ELF != 2)
+
+ #define STG_GLOBAL ".globl "
 
- static void GNUC3_ATTRIBUTE(used)
- StgRunIsImplementedInAssembler(void)
-@@ -851,7 +851,7 @@ StgRunIsImplementedInAssembler(void)
+@@ -792,6 +792,6 @@
 
  #endif
 
@@ -171,9 +124,6 @@ index 934926e..2ff8662 100644
 +#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 9274a44..3b4fc33 100644
 --- a/rts/StgCRunAsm.S
 +++ b/rts/StgCRunAsm.S
 @@ -5,7 +5,7 @@
diff --git a/srcpkgs/ghc/template b/srcpkgs/ghc/template
index b8b16f67b433..c4bbb3e4e3b1 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=8.10.7
+version=9.0.2
 revision=1
 wrksrc="ghc-${version%[!0-9]}"
 build_style=gnu-configure
@@ -14,7 +14,7 @@ maintainer="slotThe <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=e3eef6229ce9908dfe1ea41436befb0455fefb1932559e860ad4c606b0d03c9d
+checksum=140e42b96346322d1a39eb17602bcdc76e292028ad4a69286b230bab188a9197
 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 90bdce8ae8ab36517c9cfb601f4e51cba4703bce Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sat, 19 Mar 2022 10:48:13 +0100
Subject: [PATCH 02/18] cabal-install: update to 3.6.3.0

Technically, this is only upgrading Cabal (the library) to 3.6.3.0, as
the installed version of cabal-install is still 3.6.2.0.  This is,
however, necessary for GHC 9.x support.
---
 srcpkgs/cabal-install/files/linux-9.0.2.json | 1 +
 srcpkgs/cabal-install/template               | 9 +++++----
 2 files changed, 6 insertions(+), 4 deletions(-)
 create mode 100644 srcpkgs/cabal-install/files/linux-9.0.2.json

diff --git a/srcpkgs/cabal-install/files/linux-9.0.2.json b/srcpkgs/cabal-install/files/linux-9.0.2.json
new file mode 100644
index 000000000000..f3cb6b4aeeb5
--- /dev/null
+++ b/srcpkgs/cabal-install/files/linux-9.0.2.json
@@ -0,0 +1 @@
+{"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/template b/srcpkgs/cabal-install/template
index d6d718709993..6a4b0ad7fc0e 100644
--- a/srcpkgs/cabal-install/template
+++ b/srcpkgs/cabal-install/template
@@ -1,6 +1,6 @@
 # Template file for 'cabal-install'
 pkgname=cabal-install
-version=3.6.2.0
+version=3.6.3.0
 revision=1
 wrksrc=cabal-Cabal-v${version}
 hostmakedepends="ghc curl tar which"
@@ -11,7 +11,7 @@ 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=dcf31e82cd85ea3236be18cc36c68058948994579ea7de18f99175821dbbcb64
+checksum=dea086acad6d9fe5fe22d838b95b4e988022e8519f38d41609119ea32bfb7466
 nopie_files="/usr/bin/cabal"
 nocross=yes
 
@@ -19,12 +19,13 @@ 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-8.10.7.json ;;
+		vsed -i -e 's/+ofd-locking/-ofd-locking/' bootstrap/linux-9.0.2.json ;;
 	esac
 }
 
 do_build() {
-	PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-8.10.7.json
+	cp "${FILESDIR}/linux-9.0.2.json" bootstrap/
+	PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-9.0.2.json
 }
 do_install() {
 	vbin _build/bin/cabal

From fca528d49c56be81a9fc18c0f74b3ad761698a27 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sat, 19 Mar 2022 12:54:36 +0100
Subject: [PATCH 03/18] stack: update stackage resolver to lts-19.0

Related: https://github.com/commercialhaskell/stack/pull/5559
---
 srcpkgs/stack/patches/ghc9.0.2.patch | 212 +++++++++++++++++++++++++++
 srcpkgs/stack/template               |   6 +-
 2 files changed, 215 insertions(+), 3 deletions(-)
 create mode 100644 srcpkgs/stack/patches/ghc9.0.2.patch

diff --git a/srcpkgs/stack/patches/ghc9.0.2.patch b/srcpkgs/stack/patches/ghc9.0.2.patch
new file mode 100644
index 000000000000..bdd77de58c6b
--- /dev/null
+++ b/srcpkgs/stack/patches/ghc9.0.2.patch
@@ -0,0 +1,212 @@
+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/template b/srcpkgs/stack/template
index 9e53b95ca633..15c38039684d 100644
--- a/srcpkgs/stack/template
+++ b/srcpkgs/stack/template
@@ -1,8 +1,8 @@
 # Template file for 'stack'
 pkgname=stack
 version=2.7.5
-revision=1
-_stackage="lts-18.14"
+revision=2
+_stackage="lts-19.0"
 hostmakedepends="cabal-install pkg-config unzip"
 makedepends="zlib-devel pcre-devel"
 depends="git gmp-devel iana-etc"
@@ -13,7 +13,7 @@ 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
- 78577c091074d78f9d6e09d6e31e7fc8ac2ddbb0dbc4ac65c606adcac4957d7f"
+ 6b9983f6448eb825231f65fe955d6d85516f482f0d26fee84183a1a79c6b0646"
 skip_extraction="cabal.config-${_stackage}"
 nocross=yes
 nopie_files="/usr/bin/stack"

From 9de9a979acc648b9901fbc319d5af00023176d9b Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 09:17:26 +0100
Subject: [PATCH 04/18] cgrep: bump for stackage lts-19.0

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

diff --git a/srcpkgs/cgrep/template b/srcpkgs/cgrep/template
index e57106f3fa26..1c54fe367396 100644
--- a/srcpkgs/cgrep/template
+++ b/srcpkgs/cgrep/template
@@ -1,9 +1,9 @@
 # Template file for 'cgrep'
 pkgname=cgrep
 version=6.7.1
-revision=2
+revision=3
 build_style=haskell-stack
-stackage="lts-18.15"
+stackage="lts-19.0"
 makedepends="pcre-devel pkg-config"
 short_desc="Context-aware grep for source codes"
 maintainer="slotThe <soliditsallgood@mailbox.org>"

From 39baaa9e9822341c8c1d8a90f62843a60692c679 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 09:23:26 +0100
Subject: [PATCH 05/18] git-mediate: bump for stackage lts-19.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 0c9ec10241e5..705df7843b8e 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=2
+revision=3
 build_style=haskell-stack
-stackage="lts-18.14"
+stackage="lts-19.0"
 depends="git"
 short_desc="Tool to help resolving git conflicts"
 maintainer="Peter Wang <novalazy@gmail.com>"

From 47024f61e647b0f4fa02b273516755d86fda46a6 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 09:51:34 +0100
Subject: [PATCH 06/18] hlint: update to 3.3.6

---
 srcpkgs/hlint/template | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/srcpkgs/hlint/template b/srcpkgs/hlint/template
index fd72c1bbea58..0109be25805f 100644
--- a/srcpkgs/hlint/template
+++ b/srcpkgs/hlint/template
@@ -1,16 +1,16 @@
 # Template file for 'hlint'
 pkgname=hlint
-version=3.2.7
-revision=2
+version=3.3.6
+revision=1
 build_style=haskell-stack
-stackage="lts-18.14"
+stackage="lts-19.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=fcdeefcc79a52206add44b409abcab48c5fe2adff9d5aff077acbc43c702b54e
+checksum=7d536c03f77a0c259efb2b00b525ef34578ca8a4a95ccb412708e8c7172e2e6a
 nocross=yes # Can't yet cross compile Haskell
 nopie_files="/usr/bin/hlint"
 

From 7792c49fc49bc377e579a2260ac344230352b5db Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 11:38:44 +0100
Subject: [PATCH 07/18] pandoc: update to 2.17.1.1

+ Fix compilation of `pandoc-crossref` for musl systems.
+ Remove the `system-lua` flag, as `pkg-config` already implies it [1].

Related: https://github.com/lierdakil/pandoc-crossref/issues/342
[1]: https://github.com/hslua/hslua/blob/main/lua/README.md?plain=1#L39-L40
---
 srcpkgs/pandoc/files/pandoc-crossref.cabal | 154 +++++++++++++++++++++
 srcpkgs/pandoc/template                    |  43 +++---
 2 files changed, 173 insertions(+), 24 deletions(-)
 create mode 100644 srcpkgs/pandoc/files/pandoc-crossref.cabal

diff --git a/srcpkgs/pandoc/files/pandoc-crossref.cabal b/srcpkgs/pandoc/files/pandoc-crossref.cabal
new file mode 100644
index 000000000000..7aacc47278f3
--- /dev/null
+++ b/srcpkgs/pandoc/files/pandoc-crossref.cabal
@@ -0,0 +1,154 @@
+cabal-version: 2.0
+
+-- This file has been generated from package.yaml by hpack version 0.34.6.
+--
+-- see: https://github.com/sol/hpack
+--
+-- hash: 20655cd6263e9fe7e5737ee81b093c8c6f5eae67e260ddd3a821ac6ef5e35e69
+
+name:           pandoc-crossref
+version:        0.3.13.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
+homepage:       https://github.com/lierdakil/pandoc-crossref#readme
+bug-reports:    https://github.com/lierdakil/pandoc-crossref/issues
+author:         Nikolay Yakimov
+maintainer:     root@livid.pp.ru
+license:        GPL-2
+license-file:   LICENSE
+build-type:     Simple
+
+source-repository head
+  type: git
+  location: https://github.com/lierdakil/pandoc-crossref
+
+flag enable_flaky_tests
+  description: Some tests rely on specific behaviour of pandoc, which may change between minor versions. These are still useful indicators for the developer, but not necessarily indicating there's a problem with the package itself. Enable if you know what you are doing.
+  manual: True
+  default: False
+
+library
+  exposed-modules:
+      Text.Pandoc.CrossRef
+  other-modules:
+      Text.Pandoc.CrossRef.References
+      Text.Pandoc.CrossRef.References.Blocks
+      Text.Pandoc.CrossRef.References.List
+      Text.Pandoc.CrossRef.References.Refs
+      Text.Pandoc.CrossRef.References.Types
+      Text.Pandoc.CrossRef.Util.CodeBlockCaptions
+      Text.Pandoc.CrossRef.Util.CustomLabels
+      Text.Pandoc.CrossRef.Util.Meta
+      Text.Pandoc.CrossRef.Util.ModifyMeta
+      Text.Pandoc.CrossRef.Util.Options
+      Text.Pandoc.CrossRef.Util.Settings
+      Text.Pandoc.CrossRef.Util.Settings.Gen
+      Text.Pandoc.CrossRef.Util.Settings.Template
+      Text.Pandoc.CrossRef.Util.Template
+      Text.Pandoc.CrossRef.Util.Util
+  hs-source-dirs:
+      lib
+      lib-internal
+  ghc-options: -Wall
+  build-depends:
+      base >=4.11 && <5
+    , containers >=0.1 && <0.7
+    , data-default >=0.4 && <0.8
+    , directory >=1 && <1.4
+    , filepath >=1.1 && <1.5
+    , 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.*
+    , syb >=0.4 && <0.8
+    , template-haskell >=2.7.0.0 && <3.0.0.0
+    , text >=1.2.2 && <1.3
+    , utility-ht >=0.0.11 && <0.1.0
+  default-language: Haskell2010
+
+executable pandoc-crossref
+  main-is: pandoc-crossref.hs
+  other-modules:
+      ManData
+  hs-source-dirs:
+      src
+  ghc-options: -Wall -threaded
+  build-depends:
+      base >=4.11 && <5
+    , deepseq ==1.4.*
+    , gitrev >=1.3.1 && <1.4
+    , open-browser ==0.2.*
+    , optparse-applicative >=0.13 && <0.17
+    , pandoc >=2.10 && <2.18
+    , pandoc-crossref
+    , pandoc-types >=1.21 && <1.23
+    , template-haskell >=2.7.0.0 && <3.0.0.0
+    , temporary >=1.2 && <1.4
+    , text >=1.2.2 && <1.3
+  default-language: Haskell2010
+
+test-suite test-integrative
+  type: exitcode-stdio-1.0
+  main-is: test-integrative.hs
+  hs-source-dirs:
+      test
+  ghc-options: -Wall -fno-warn-unused-do-bind -threaded
+  build-depends:
+      base >=4.11 && <5
+    , directory >=1 && <1.4
+    , filepath >=1.1 && <1.5
+    , hspec >=2.4.4 && <3
+    , pandoc >=2.10 && <2.18
+    , pandoc-crossref
+    , pandoc-types >=1.21 && <1.23
+    , text >=1.2.2 && <1.3
+  if flag(enable_flaky_tests)
+    cpp-options: -DFLAKY
+  default-language: Haskell2010
+
+test-suite test-pandoc-crossref
+  type: exitcode-stdio-1.0
+  main-is: test-pandoc-crossref.hs
+  other-modules:
+      Native
+      Paths_pandoc_crossref
+  autogen-modules:
+      Paths_pandoc_crossref
+  hs-source-dirs:
+      test
+  ghc-options: -Wall -fno-warn-unused-do-bind -threaded
+  build-depends:
+      base >=4.11 && <5
+    , containers >=0.1 && <0.7
+    , data-default >=0.4 && <0.8
+    , 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-crossref
+    , pandoc-types >=1.21 && <1.23
+    , text >=1.2.2 && <1.3
+  if flag(enable_flaky_tests)
+    cpp-options: -DFLAKY
+  default-language: Haskell2010
+
+benchmark simple
+  type: exitcode-stdio-1.0
+  main-is: bench-simple.hs
+  other-modules:
+      Native
+  hs-source-dirs:
+      test
+  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
+    , pandoc-crossref
+    , pandoc-types >=1.21 && <1.23
+    , text >=1.2.2 && <1.3
+  default-language: Haskell2010
diff --git a/srcpkgs/pandoc/template b/srcpkgs/pandoc/template
index 8628b1d1f3c2..9bdf32ef3c53 100644
--- a/srcpkgs/pandoc/template
+++ b/srcpkgs/pandoc/template
@@ -1,18 +1,18 @@
 # Template file for 'pandoc'
 pkgname=pandoc
 # Keep in sync with http://www.stackage.org/lts
-version=2.14.0.3
-revision=3
-_sidenote_version=0.20.0.0
+version=2.17.1.1
+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
 create_wrksrc=yes
 build_style=haskell-stack
-stackage="lts-18.14"
+stackage="lts-19.0"
 make_build_args="
- --flag pandoc:embed_data_files --flag=hslua:system-lua
- --flag=hslua:pkg-config"
+ --flag pandoc:embed_data_files
+ --flag=lua:pkg-config"
 hostmakedepends="pkg-config unzip wget"
 makedepends="zlib-devel lua53-devel tar"
 short_desc="Universal converter between markup formats"
@@ -21,33 +21,28 @@ license="GPL-2.0-or-later, BSD-3-Clause"
 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"
-checksum="82e3f55bff3059bf30cf532e93d9876c9e3599aa4eafae9c907fe75a4430eddd
- 91f8e96d8470722d677d31d4bbf16c2ac6902567d818ed7a2715bad2617a4cdb
- be8485023fce236b5b915f2f6074f7b0470a2040f84cdd137c5227f1b4c98465"
-subpackages="pandoc-sidenote"
-nocross=yes
-nopie_files="
- /usr/bin/pandoc
- /usr/bin/pandoc-sidenote"
-
-# pandoc-crossref is currently broken on musl. See lierdakil/pandoc-crossref#342 and commercialhaskell/stack#5683
-if [ "$XBPS_TARGET_LIBC" != "musl" ]; then
-	distfiles+="
+ 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+="
+checksum="649ec528d1413130c5ce304b826ff473b3696269eea8834d908589e775bd1ad1
+ c39dd7343b9cb4dc5b1c91c9e47c3d357874e9e1a30b8d377bbea0b1d50323b2
+ be8485023fce236b5b915f2f6074f7b0470a2040f84cdd137c5227f1b4c98465
  94540325c9c98ae4d5199c634bf402ffa41e3c5b020d7207daef90fd9e224fb4
  b9c7195b69b1662a286d2c28a55fafdcb693c522ba5eb54a11b1d0a4e92eaa81"
-	nopie_files+="
- /usr/bin/pandoc-crossref"
-	subpackages+="
+subpackages="
+ pandoc-sidenote
  pandoc-crossref"
-fi
+nocross=yes
+nopie_files="
+ /usr/bin/pandoc
+ /usr/bin/pandoc-sidenote
+ /usr/bin/pandoc-crossref"
 
 post_extract() {
 	sed -i 's/tasty .*,/tasty,/' pandoc-*/pandoc.cabal
 	sed -i 's/zip-archive .*,/zip-archive,/' pandoc-*/pandoc.cabal
+	# See https://github.com/lierdakil/pandoc-crossref/issues/342#issuecomment-1073256586
+	cp "${FILESDIR}/pandoc-crossref.cabal" pandoc-crossref-${_crossref_version}
 }
 
 post_install() {

From 7a9c17c8649d1d85c4b7029ba5ba8d26d4244801 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 12:15:01 +0100
Subject: [PATCH 08/18] shellcheck: bump for stackage lts-19.0

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

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

From 014c8047e38b71959bfbe826be7c2db4a60816f8 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 12:52:11 +0100
Subject: [PATCH 09/18] hoogle: update to 5.0.18.3

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

diff --git a/srcpkgs/hoogle/template b/srcpkgs/hoogle/template
index 4c3e80186494..dc487cab4017 100644
--- a/srcpkgs/hoogle/template
+++ b/srcpkgs/hoogle/template
@@ -1,16 +1,16 @@
 # Template file for 'hoogle'
 pkgname=hoogle
-version=5.0.18.2
-revision=2
+version=5.0.18.3
+revision=1
 build_style=haskell-stack
-stackage="lts-18.14"
+stackage="lts-19.0"
 makedepends="zlib-devel"
 short_desc="Haskell API search engine"
 maintainer="Inokentiy Babushkin <twk@twki.de>"
 license="BSD-3-Clause"
 homepage="https://hoogle.haskell.org/"
 distfiles="https://github.com/ndmitchell/${pkgname}/archive/v${version}.tar.gz"
-checksum=9f8f0afde52fe602100ab7828fad230c2f5e94050dda9fe1e2a9f0a93f7fe617
+checksum=a2765fcbaf99fe67a64ef29fe50e69fb380cce07807cddeb0836c148b1ae472b
 nopie_files="/usr/bin/hoogle"
 nocross=yes # Can't yet cross compile Haskell
 

From e1d7b9d74ed337ce9e0f008e94dfc4a300a133bc Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 13:33:12 +0100
Subject: [PATCH 10/18] xmobar: update to 0.42

Also enable most flags during compilation in order to be less surprising
with regards to what features xmobar supports out of the box.
---
 srcpkgs/xmobar/files/stack.yaml | 2 +-
 srcpkgs/xmobar/template         | 8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/xmobar/files/stack.yaml b/srcpkgs/xmobar/files/stack.yaml
index 47544eb729d8..7e0956374142 100644
--- a/srcpkgs/xmobar/files/stack.yaml
+++ b/srcpkgs/xmobar/files/stack.yaml
@@ -1,4 +1,4 @@
-resolver: lts-18.13
+resolver: lts-19.0
 packages:
 - .
 extra-deps:
diff --git a/srcpkgs/xmobar/template b/srcpkgs/xmobar/template
index b97c9f268d68..6a12a9ed7055 100644
--- a/srcpkgs/xmobar/template
+++ b/srcpkgs/xmobar/template
@@ -1,7 +1,7 @@
 # Template file for 'xmobar'
 pkgname=xmobar
-version=0.39
-revision=2
+version=0.42
+revision=1
 build_style=haskell-stack
 hostmakedepends="pkg-config"
 makedepends="libX11-devel libXinerama-devel libXrandr-devel libXScrnSaver-devel
@@ -15,10 +15,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=46f37b90dd3ba3348dbe7de716b88606c7f0f0dd22a3580176b5cd089c1b36cc
+checksum=53f4a06d79c3db32ef1a498ec7b764b17d03ebf9bca3126c6b8259595492769b
 build_options="dbus threaded utf8 xft mpd mpris inotify iwlib alsa datezone
  xpm uvmeter weather nl80211"
-build_options_default="threaded utf8 xft inotify nl80211 datezone weather xpm"
+build_options_default="threaded utf8 xft inotify nl80211 datezone weather xpm alsa mpris mpd dbus"
 nopie_files="/usr/bin/xmobar"
 nocross=yes
 vopt_hflag() {

From 636d2ada74e352a871ff8cc869b8c07e73bc5a3f Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 18:09:34 +0100
Subject: [PATCH 11/18] hledger: update to 1.25

---
 srcpkgs/hledger/template | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/hledger/template b/srcpkgs/hledger/template
index fdcab180a6de..32d39207fd82 100644
--- a/srcpkgs/hledger/template
+++ b/srcpkgs/hledger/template
@@ -1,8 +1,9 @@
 # Template file for 'hledger'
 pkgname=hledger
-version=1.23
-revision=2
+version=1.25
+revision=1
 build_style=haskell-stack
+stackage="lts-19.0"
 makedepends="zlib-devel ncurses-devel"
 short_desc="Simple, precise, plain text accounting"
 maintainer="Inokentiy Babushkin <twk@twki.de>"
@@ -10,7 +11,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/${pkgname}/archive/${version}.tar.gz"
-checksum=7252d78aafbae488b113a6350518a702186cacc4e746cec2b31f8321b4dddcb4
+checksum=4c947c2a7d243d2a56efc1fa02994a118e995df025a412f6d2daeadfd78338ee
 nopie_files="/usr/bin/hledger"
 nocross=yes # Can't yet cross compile Haskell
 

From 5fef7bac1959ab50197801527e3710c633bc44ca Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Mon, 21 Mar 2022 08:19:29 +0100
Subject: [PATCH 12/18] haskell-language-server: update to 1.6.1.0

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

diff --git a/srcpkgs/haskell-language-server/template b/srcpkgs/haskell-language-server/template
index 0182c9b95757..0c7b2187c5ca 100644
--- a/srcpkgs/haskell-language-server/template
+++ b/srcpkgs/haskell-language-server/template
@@ -1,16 +1,16 @@
 # Template file for 'haskell-language-server'
 pkgname=haskell-language-server
-version=1.4.0
+version=1.6.1.0
 revision=1
 build_style="haskell-stack"
-make_build_args="--stack-yaml stack-8.10.7.yaml"
+make_build_args="--stack-yaml stack-9.0.2.yaml"
 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>"
 license="Apache-2.0"
 homepage="https://github.com/haskell/haskell-language-server"
 distfiles="https://github.com/haskell/haskell-language-server/archive/${version}.tar.gz"
-checksum=c5d7dbf7fae9aa3ed2c1184b49e82d8ac623ca786494ef6602cfe11735d28db0
+checksum=e5c336ad2de8d021c882cdac5bbc26bf6427df8d2a5bd244c05cf18296a9bfdc
 nopie_files="
  /usr/bin/haskell-language-server
  /usr/bin/haskell-language-server-wrapper

From e62974b86860969757a275749c92d3ab43393de1 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Mon, 21 Mar 2022 15:48:58 +0100
Subject: [PATCH 13/18] git-annex: update to 10.20220222

---
 srcpkgs/git-annex/files/stack.yaml | 33 ++++++++++++++++++++++++++++++
 srcpkgs/git-annex/template         |  5 +++--
 2 files changed, 36 insertions(+), 2 deletions(-)
 create mode 100644 srcpkgs/git-annex/files/stack.yaml

diff --git a/srcpkgs/git-annex/files/stack.yaml b/srcpkgs/git-annex/files/stack.yaml
new file mode 100644
index 000000000000..4935307f48cf
--- /dev/null
+++ b/srcpkgs/git-annex/files/stack.yaml
@@ -0,0 +1,33 @@
+flags:
+  git-annex:
+    production: true
+    assistant: true
+    pairing: true
+    torrentparser: true
+    webapp: true
+    magicmime: false
+    dbus: false
+    debuglocks: false
+    benchmark: true
+    networkbsd: true
+    gitlfs: true
+    httpclientrestricted: true
+packages:
+  - '.'
+resolver: lts-19.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
diff --git a/srcpkgs/git-annex/template b/srcpkgs/git-annex/template
index 1cf2ab14789f..7b788bc5861e 100644
--- a/srcpkgs/git-annex/template
+++ b/srcpkgs/git-annex/template
@@ -1,8 +1,9 @@
 # Template file for 'git-annex'
 pkgname=git-annex
-version=8.20211028
+version=10.20220222
 revision=1
 build_style=haskell-stack
+stackage="lts-19.0"
 makedepends="curl file-devel gnupg2 gnutls-devel gsasl-devel libxml2-devel
  lsof rsync git ncurses-devel"
 # depends are utilities required by git-annex
@@ -12,7 +13,7 @@ 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="http://git-annex.branchable.com"
 distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz"
-checksum=cf5efe15e68d467daad673bec10037a27a78da7e4af9b4a85e10980bd90ace2d
+checksum=1fb9f75a83feb16f7515122135c0f3abe6aa77544d8d778792296cbc053d2c85
 nopie_files="/usr/bin/git-annex"
 nocross=yes
 

From b0bda15a0a2e485873bb6e1bc4a8dde3e42209c5 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Wed, 23 Mar 2022 09:14:58 +0100
Subject: [PATCH 14/18] darcs: bump for stackage lts-19.0

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

diff --git a/srcpkgs/darcs/files/stack.yaml b/srcpkgs/darcs/files/stack.yaml
index 5ae0f5313b8d..6e459703764a 100644
--- a/srcpkgs/darcs/files/stack.yaml
+++ b/srcpkgs/darcs/files/stack.yaml
@@ -1,7 +1,4 @@
-resolver: lts-18.14
+resolver: lts-19.0
 packages:
 - .
-extra-deps:
-- graphviz-2999.20.1.0
-- constraints-0.12@sha256:7edf1e72a92d0a6761da634f08be9123dfcc0dcec11c269cbf465a09721c3481,2322
-- cryptonite-0.27@sha256:c3a9c8ce11e654a9d5bee827b089d4b50587272828d0c52a85362a58667a916c,18163
+allow-newer: true
diff --git a/srcpkgs/darcs/template b/srcpkgs/darcs/template
index f9fcac534d46..15a8f71f9021 100644
--- a/srcpkgs/darcs/template
+++ b/srcpkgs/darcs/template
@@ -1,7 +1,7 @@
 # Template file for 'darcs'
 pkgname=darcs
 version=2.16.5
-revision=2
+revision=3
 build_style=haskell-stack
 hostmakedepends="unzip"
 makedepends="zlib-devel libcurl-devel ncurses-devel"

From 526522e486f4299fdfa483a7cd92648c4c4d83f2 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Thu, 24 Mar 2022 11:50:45 +0100
Subject: [PATCH 15/18] debug-me: update to 1.20220324

---
 srcpkgs/debug-me/files/stack.yaml        |  8 +++---
 srcpkgs/debug-me/patches/ghc8.10.4.patch | 33 ------------------------
 srcpkgs/debug-me/template                |  7 ++---
 3 files changed, 7 insertions(+), 41 deletions(-)
 delete mode 100644 srcpkgs/debug-me/patches/ghc8.10.4.patch

diff --git a/srcpkgs/debug-me/files/stack.yaml b/srcpkgs/debug-me/files/stack.yaml
index ad8b055bb33e..f2b1a79d70c6 100644
--- a/srcpkgs/debug-me/files/stack.yaml
+++ b/srcpkgs/debug-me/files/stack.yaml
@@ -1,8 +1,6 @@
 packages:
 - '.'
-resolver: lts-18.14
+resolver: lts-19.0
 extra-deps:
-- posix-pty-0.2.1.1
-- graphviz-2999.20.1.0
-- sandi-0.5
-- protobuf-0.2.1.3@sha256:d8ed3c73027c6b7e7583c6a94ee1835beee8a755a875b06bbf51bc667d53ab69,3048
+  - posix-pty-0.2.1.1
+  - sandi-0.5@sha256:b278d072ca717706ea38f9bd646e023f7f2576a778fb43565b434f93638849aa,3010
diff --git a/srcpkgs/debug-me/patches/ghc8.10.4.patch b/srcpkgs/debug-me/patches/ghc8.10.4.patch
deleted file mode 100644
index bfcff16a4438..000000000000
--- a/srcpkgs/debug-me/patches/ghc8.10.4.patch
+++ /dev/null
@@ -1,33 +0,0 @@
---- a/Val.hs	2020-03-31 11:00:33.329814064 +0200
-+++ b/Val.hs	2020-03-31 11:00:24.602711845 +0200
-@@ -42,7 +42,7 @@
- b64 :: B.ByteString -> T.Text
- b64 = T.decodeUtf8 . B64.encode
-
--unb64 :: Monad m => T.Text -> m B.ByteString
-+unb64 :: MonadFail m => T.Text -> m B.ByteString
- unb64 t = either
- 	(\_ -> fail "bad base64 data")
- 	return
---- a/Server.hs	2020-03-31 12:53:45.860509650 +0200
-+++ b/Server.hs	2020-03-31 12:52:34.873835069 +0200
-@@ -105,7 +105,7 @@
- 		-- (Workaround for
- 		-- https://github.com/jaspervdj/websockets/issues/140)
- 		setHost "*6" $
--		setPort (serverPort o) $
-+		setPort (CmdLine.serverPort o) $
- 		defaultSettings
-
- checkEnv :: ServerOpts -> IO ServerOpts
---- a/debug-me.cabal
-+++ b/debug-me.cabal
-@@ -64,7 +64,7 @@
-     , stm-chans (>= 3.0)
-     , posix-pty (>= 0.2.1)
-     , terminal-size (>= 0.3)
--    , aeson (>= 0.11 && < 1.5)
-+    , aeson (>= 0.11 && < 1.6)
-     , sandi (>= 0.4)
-     , text (>= 1.2.2)
-     , optparse-applicative (>= 0.12)
diff --git a/srcpkgs/debug-me/template b/srcpkgs/debug-me/template
index 86ac0037311a..f971f2156c77 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.20200820
-revision=3
+version=1.20220324
+revision=1
 build_style=haskell-stack
+stackage="lts-19.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=9497dc9b85a58e5c499ea25fa1bed9f4fd6cdd2f57564f52a0e4152ad4fdc102
+checksum=9fd6256aa34408106ff095e0560850aca3558a774be4ce19de6ab6e81fbfdb9f
 nocross=yes # Can't yet cross compile Haskell
 nopie_files="/usr/bin/debug-me"
 

From b45f29ccc2aa2aca686a48fb65f7b9def81e2a38 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Fri, 25 Mar 2022 14:40:52 +0100
Subject: [PATCH 16/18] ghc-bin: update to 9.0.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Co-authored-by: Sigrid Solveig Haflínudóttir <ftrvxmtrx@gmail.com>
---
 srcpkgs/ghc-bin/template | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/ghc-bin/template b/srcpkgs/ghc-bin/template
index 3949ee3fa1aa..5e87ecc42d17 100644
--- a/srcpkgs/ghc-bin/template
+++ b/srcpkgs/ghc-bin/template
@@ -1,6 +1,6 @@
 # Template file for 'ghc-bin'
 pkgname=ghc-bin
-version=8.10.7
+version=9.0.2
 revision=1
 archs="i686 x86_64* ppc64le* ppc64"
 wrksrc="ghc-${version%[!0-9]}"
@@ -15,17 +15,17 @@ noshlibprovides=yes
 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=ced9870ea351af64fb48274b81a664cdb6a9266775f1598a79cbb6fdd5770a23
+	distfiles="https://downloads.haskell.org/ghc/${version%[!0-9]}/ghc-${version}-x86_64-deb9-linux.tar.xz"
+	checksum=805f5628ce6cec678ba77ff48c924831ebdf75ec2c66368e8935a618913a150e
 	;;
 x86_64-musl)
 	# create with "make binary-dist"
-	distfiles="https://alpha.de.repo.voidlinux.org/distfiles/ghc-${version}-x86_64-void-linux-musl.tar.xz"
-	checksum=52f6492f39f13890f4ecd83784724ae9fff7a02fdc624a56c49872c912608a50
+	distfiles="https://download1640.mediafire.com/02oxtdmod6tg/2g0umndrffyechx/ghc-9.0.2-x86_64-void-linux-musl.tar.xz"
+	checksum=e21eaddeffcd5de7abe43b1f3982a3bc2c5b5f408d2574857cb2b0368106e12c
 	;;
 i686)
-	distfiles="https://downloads.haskell.org/~ghc/${version%[!0-9]}/ghc-${version}-i386-deb9-linux.tar.xz"
-	checksum=fbfc1ef194f4e7a4c0da8c11cc69b17458a4b928b609b3622c97acc4acd5c5ab
+	distfiles="https://downloads.haskell.org/ghc/${version%[!0-9]}/ghc-${version}-i386-deb9-linux.tar.xz"
+	checksum=fdeb9f8928fbe994064778a8e1e85bb1a58a6cd3dd7b724fcc2a1dcfda6cad47
 	;;
 ppc64le)
 	distfiles="https://alpha.de.repo.voidlinux.org/distfiles/ghc-${version}-powerpc64le-void-linux.tar.xz"

From 16c818ca557417321a19363624aeff2cad92d179 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sigrid=20Solveig=20Hafl=C3=ADnud=C3=B3ttir?=
 <ftrvxmtrx@gmail.com>
Date: Thu, 24 Mar 2022 09:27:25 +0100
Subject: [PATCH 17/18] ghc, ghc-bin: Add aarch64* support

---
 srcpkgs/ghc-bin/template | 12 +++++++++++-
 srcpkgs/ghc/template     |  8 ++++++++
 2 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/srcpkgs/ghc-bin/template b/srcpkgs/ghc-bin/template
index 5e87ecc42d17..382b2987f661 100644
--- a/srcpkgs/ghc-bin/template
+++ b/srcpkgs/ghc-bin/template
@@ -2,7 +2,7 @@
 pkgname=ghc-bin
 version=9.0.2
 revision=1
-archs="i686 x86_64* ppc64le* ppc64"
+archs="i686 x86_64* ppc64le* ppc64 aarch64*"
 wrksrc="ghc-${version%[!0-9]}"
 hostmakedepends="perl libffi libnuma"
 depends="ncurses perl gcc libffi-devel gmp-devel"
@@ -39,6 +39,16 @@ ppc64)
 	distfiles="https://alpha.de.repo.voidlinux.org/distfiles/ghc-${version}-powerpc64-void-linux.tar.xz"
 	checksum=b8578e602abd4b453845303fb9cfed0b2186f86f60e3aa45869026ea833726c8
 	;;
+aarch64)
+	distfiles="https://alpha.de.repo.voidlinux.org/distfiles/ghc-${version}-aarch64-void-linux.tar.xz"
+	checksum=429a84d2850357e305a017c7d3eb1cb7cf838e900e52920d555de39d9c59b8c6
+	depends+=" llvm"
+	;;
+aarch64-musl)
+	distfiles="https://alpha.de.repo.voidlinux.org/distfiles/ghc-${version}-aarch64-void-linux-musl.tar.xz"
+	checksum=f2c37a5ed028eebd3e69a22ce989f5cdf6f84a408871ff0933ac532414c6c273
+	depends+=" llvm"
+	;;
 *)
 	broken="No distfiles available for this target"
 	;;
diff --git a/srcpkgs/ghc/template b/srcpkgs/ghc/template
index c4bbb3e4e3b1..d0b1600987be 100644
--- a/srcpkgs/ghc/template
+++ b/srcpkgs/ghc/template
@@ -54,6 +54,14 @@ elif [ "${XBPS_MACHINE%-*}" != "${XBPS_TARGET_MACHINE%-*}" ]; then
 	configure_args+=" --host=${XBPS_TRIPLET} --target=${XBPS_CROSS_TRIPLET}"
 fi
 
+case "$XBPS_TARGET_MACHINE" in
+aarch64*)
+	# GHC uses LLVM to generate code on aarch64
+	hostmakedepends+=" llvm"
+	depends+=" llvm"
+	;;
+esac
+
 # Recent safe to use tarball
 # GHC's bundled tarball is from 2017, buggy on some archs
 _ffi_rev=4d6d2866ae43e55325e8ee96561221804602cd7a

From ab621279284b4f8f9a3e976a994e44ad7bed5515 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Thu, 24 Mar 2022 14:27:41 +0100
Subject: [PATCH 18/18] kmonad: update to
 65b501defdd0049563752f8af8c8c57f5a1ae38b

The reason for updating to an unreleased version is that the author
(and core maintainer) of the project is chronically ill[1] and unable
to spend a lot of time on kmonad.  At the same time, there is a rather
large refactor on the way, without which a new release would not make
too much sense[2].  As such, updating to what's essentially HEAD makes
sense in this case; it is not any less stable than 0.4.1 (I've
personally been running this for months without any problems).  As a
bonus, we get GHC 9.0.2 compatibility for free and do not need to
cherry pick the relevant commits.

[1]: https://github.com/kmonad/kmonad#disclaimer
[2]: https://github.com/kmonad/kmonad/pull/372
---
 srcpkgs/kmonad/template | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/srcpkgs/kmonad/template b/srcpkgs/kmonad/template
index c93d2bee4c4f..829d96a535eb 100644
--- a/srcpkgs/kmonad/template
+++ b/srcpkgs/kmonad/template
@@ -1,15 +1,15 @@
 # Template file for 'kmonad'
 pkgname=kmonad
-version=0.4.1
-revision=3
+version=65b501defdd0049563752f8af8c8c57f5a1ae38b
+revision=1
 build_style=haskell-stack
-stackage=lts-18.14
+stackage=lts-19.0
 short_desc="Keyboard remapping utility providing qmk-like functionality"
 maintainer="slotThe <soliditsallgood@mailbox.org>"
 license="MIT"
 homepage="https://github.com/david-janssen/kmonad"
 distfiles="${homepage}/archive/${version}.tar.gz"
-checksum=cb66f0c6d4c304c7e3c48cefd0c50ea00b156ffc361e278e1fc5c6070317d927
+checksum=2b0cb0c5d1575bf61b1c442476ad24103028c309d103fedb56214a3bb30f8c0f
 nopie_files="/usr/bin/kmonad"
 nocross=yes
 

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

* Re: [WIP] Update to GHC 9.0.2/Stackage LTS-19.0
  2022-03-23  7:20 [PR PATCH] [WIP] Update to GHC 9.0.2/Stackage LTS-19.0 slotThe
                   ` (10 preceding siblings ...)
  2022-03-25 13:44 ` slotThe
@ 2022-03-26 16:43 ` ftrvxmtrx
  2022-03-28 16:15 ` ftrvxmtrx
                   ` (9 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: ftrvxmtrx @ 2022-03-26 16:43 UTC (permalink / raw)
  To: ml

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

New comment by ftrvxmtrx on void-packages repository

https://github.com/void-linux/void-packages/pull/36292#issuecomment-1079730161

Comment:
@slotThe nice, worked this time!

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

* Re: [WIP] Update to GHC 9.0.2/Stackage LTS-19.0
  2022-03-23  7:20 [PR PATCH] [WIP] Update to GHC 9.0.2/Stackage LTS-19.0 slotThe
                   ` (11 preceding siblings ...)
  2022-03-26 16:43 ` ftrvxmtrx
@ 2022-03-28 16:15 ` ftrvxmtrx
  2022-03-30 13:44 ` ftrvxmtrx
                   ` (8 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: ftrvxmtrx @ 2022-03-28 16:15 UTC (permalink / raw)
  To: ml

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

New comment by ftrvxmtrx on void-packages repository

https://github.com/void-linux/void-packages/pull/36292#issuecomment-1080847001

Comment:
k, all packages built successfully for `aarch64-musl`, tested some of them and it works fine, uploaded to `rsync://ftrv.se/ghc902/aarch64-musl/`.

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

* Re: [WIP] Update to GHC 9.0.2/Stackage LTS-19.0
  2022-03-23  7:20 [PR PATCH] [WIP] Update to GHC 9.0.2/Stackage LTS-19.0 slotThe
                   ` (12 preceding siblings ...)
  2022-03-28 16:15 ` ftrvxmtrx
@ 2022-03-30 13:44 ` ftrvxmtrx
  2022-03-31 17:15 ` [PR PATCH] [Updated] " slotThe
                   ` (7 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: ftrvxmtrx @ 2022-03-30 13:44 UTC (permalink / raw)
  To: ml

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

New comment by ftrvxmtrx on void-packages repository

https://github.com/void-linux/void-packages/pull/36292#issuecomment-1083159517

Comment:
@slotThe I updated my patch https://github.com/ftrvxmtrx/void-packages/commit/a5ead59471bfaa690f88bbc1818d29b640f0e949 with new checksums. @q66 pointed out I missed some steps while building a proper bindist so I had to rebuild those.

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

* Re: [PR PATCH] [Updated] [WIP] Update to GHC 9.0.2/Stackage LTS-19.0
  2022-03-23  7:20 [PR PATCH] [WIP] Update to GHC 9.0.2/Stackage LTS-19.0 slotThe
                   ` (13 preceding siblings ...)
  2022-03-30 13:44 ` ftrvxmtrx
@ 2022-03-31 17:15 ` slotThe
  2022-03-31 17:16 ` slotThe
                   ` (6 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: slotThe @ 2022-03-31 17:15 UTC (permalink / raw)
  To: ml

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

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

https://github.com/slotThe/void-packages stackage-19
https://github.com/void-linux/void-packages/pull/36292

[WIP] Update to GHC 9.0.2/Stackage LTS-19.0
And so... the ~~hunt~~ fun begins again!

### Core packages to bump

- [x] ghc
- [ ] ghc-bin
    - [x] x86_64-musl [Link](https://download1640.mediafire.com/02oxtdmod6tg/2g0umndrffyechx/ghc-9.0.2-x86_64-void-linux-musl.tar.xz) **Not uploaded yet**
    cc. @q66 for the following
    - [ ] ppc64le
    - [ ] ppc64le-musl
    - [x] aarch64 [Link](https://ftrv.se/_/void/ghc-9.0.2/ghc-9.0.2-aarch64-void-linux.tar.xz) **Not uploaded yet**
    - [x] aarch64-musl [Link](https://ftrv.se/_/void/ghc-9.0.2/ghc-9.0.2-aarch64-void-linux-musl.tar.xz) **Not uploaded yet**
- [x] cabal-install
- [x] stack

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

Most of these are already done, things should probably go smoothly as 9.0.x does not contain any big breaking changes.

- [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 (contains a fix for `pandoc-crossref` on musl \o/)
- [x] xmobar
- [x] haskell-language-server

### Other things to do 

- [x] Either incorporate https://github.com/void-linux/void-packages/pull/36193 into this PR or merge it first and then rebuild GHC for aarch64 and aarch64-musl; cc. @ftrvxmtrx

Closes https://github.com/void-linux/void-packages/pull/36193

[ci skip]

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

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-stackage-19-36292.patch --]
[-- Type: text/x-diff, Size: 61082 bytes --]

From 5ce0a7ea17703bcfb1fc7b4007efef9e20b2d395 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Fri, 18 Mar 2022 17:33:46 +0100
Subject: [PATCH 01/18] ghc: update to 9.0.2

---
 .../ghc/patches/no-atomic-64-on-32bit.patch   | 58 -------------
 srcpkgs/ghc/patches/ppc64-be-elfv2.patch      | 86 ++++---------------
 srcpkgs/ghc/template                          |  4 +-
 3 files changed, 20 insertions(+), 128 deletions(-)
 delete mode 100644 srcpkgs/ghc/patches/no-atomic-64-on-32bit.patch

diff --git a/srcpkgs/ghc/patches/no-atomic-64-on-32bit.patch b/srcpkgs/ghc/patches/no-atomic-64-on-32bit.patch
deleted file mode 100644
index 05ca275ea9df..000000000000
--- a/srcpkgs/ghc/patches/no-atomic-64-on-32bit.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 5c5aa87d50dc4ea97e76e13f285a7b5dd71fcd88 Mon Sep 17 00:00:00 2001
-From: Ilias Tsitsimpis <iliastsi@debian.org>
-Date: Sun, 1 Mar 2020 16:25:13 +0200
-Subject: [PATCH] Do not define hs_atomic{read,write}64() on non-64bit
-
-Do not define hs_atomicread64() and hs_atomicwrite64() on machines where
-WORD_SIZE_IN_BITS is less than 64, just like we do with the rest of the atomic
-functions which work on 64-bit values.
-
-Without this, compilation fails on MIPSel and PowerPC with the following error:
-
-/usr/bin/ld: /<<PKGBUILDDIR>>/libraries/ghc-prim/dist-install/build/libHSghc-prim-0.5.3_p.a(atomic.p_o): in function `hs_atomicread64':
-atomic.c:(.text.hs_atomicread64+0x8): undefined reference to `__sync_add_and_fetch_8'
-/usr/bin/ld: /<<PKGBUILDDIR>>/libraries/ghc-prim/dist-install/build/libHSghc-prim-0.5.3_p.a(atomic.p_o): in function `hs_atomicwrite64':
-atomic.c:(.text.hs_atomicwrite64+0x38): undefined reference to `__sync_bool_compare_and_swap_8'
-
-Fixes #17886.
----
- libraries/ghc-prim/cbits/atomic.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/libraries/ghc-prim/cbits/atomic.c b/libraries/ghc-prim/cbits/atomic.c
-index ac2e608ec2..01037d70ee 100644
---- a/libraries/ghc-prim/cbits/atomic.c
-+++ b/libraries/ghc-prim/cbits/atomic.c
-@@ -361,6 +361,7 @@ hs_atomicread32(StgWord x)
- #endif
- }
- 
-+#if WORD_SIZE_IN_BITS == 64
- extern StgWord64 hs_atomicread64(StgWord x);
- StgWord64
- hs_atomicread64(StgWord x)
-@@ -371,6 +372,7 @@ hs_atomicread64(StgWord x)
-   return __sync_add_and_fetch((StgWord64 *) x, 0);
- #endif
- }
-+#endif
- 
- // AtomicWriteByteArrayOp_Int
- // Implies a full memory barrier (see compiler/prelude/primops.txt.pp)
-@@ -409,6 +411,7 @@ hs_atomicwrite32(StgWord x, StgWord val)
- #endif
- }
- 
-+#if WORD_SIZE_IN_BITS == 64
- extern void hs_atomicwrite64(StgWord x, StgWord64 val);
- void
- hs_atomicwrite64(StgWord x, StgWord64 val)
-@@ -420,3 +423,5 @@ hs_atomicwrite64(StgWord x, StgWord64 val)
- #endif
- }
- #endif
-+
-+#endif
--- 
-GitLab
-
diff --git a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
index 275444e828b7..7f074d17cbae 100644
--- a/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
+++ b/srcpkgs/ghc/patches/ppc64-be-elfv2.patch
@@ -3,21 +3,9 @@ From: Daniel Kolesa <daniel@octaforge.org>
 Date: Tue, 5 Jan 2021 04:10:25 +0100
 Subject: [PATCH] fix up runtime for ppc64 BE ELFv2 + ensure it's used
 
----
- aclocal.m4                        |  2 +-
- configure                         |  2 +-
- libraries/ghci/GHCi/InfoTable.hsc | 36 ++++++++++++-------------------
- rts/Adjustor.c                    | 12 +++++------
- rts/AdjustorAsm.S                 |  2 +-
- rts/StgCRun.c                     |  4 ++--
- rts/StgCRunAsm.S                  |  2 +-
- 7 files changed, 26 insertions(+), 34 deletions(-)
-
-diff --git a/aclocal.m4 b/aclocal.m4
-index 41cecf0..ba08bd2 100644
---- a/aclocal.m4
-+++ b/aclocal.m4
-@@ -199,7 +199,7 @@ AC_DEFUN([FPTOOLS_SET_HASKELL_PLATFORM_V
+--- a/m4/fptools.m4
++++ b/m4/fptools.m4
+@@ -201,7 +201,7 @@
              test -z "[$]2" || eval "[$]2=ArchPPC"
              ;;
          powerpc64)
@@ -26,8 +14,6 @@ index 41cecf0..ba08bd2 100644
              ;;
          powerpc64le)
              test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
-diff --git a/configure b/configure
-index 183e661..8aae1bc 100755
 --- a/configure
 +++ b/configure
 @@ -10296,7 +10296,7 @@ $as_echo "done" >&6; }
@@ -39,8 +25,6 @@ index 183e661..8aae1bc 100755
              ;;
          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 ec3c18a..0359be7 100644
 --- a/libraries/ghci/GHCi/InfoTable.hsc
 +++ b/libraries/ghci/GHCi/InfoTable.hsc
 @@ -228,30 +228,22 @@ mkJumpToAddr a = case platform of
@@ -88,57 +72,28 @@ index ec3c18a..0359be7 100644
 
      ArchPPC64LE ->
          -- The ABI requires r12 to point to the function's entry point.
-diff --git a/rts/Adjustor.c b/rts/Adjustor.c
-index d360cfe..ab7ede7 100644
---- a/rts/Adjustor.c
-+++ b/rts/Adjustor.c
-@@ -49,7 +49,7 @@ Haskell side.
-
- #if defined(i386_HOST_ARCH)
- extern void adjustorCode(void);
--#elif defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
-+#elif defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
- // from AdjustorAsm.s
- // not declared as a function so that AIX-style
- // fundescs can never get in the way.
-@@ -278,7 +278,7 @@ __asm__("obscure_ccall_ret_code:\n\t"
+--- a/rts/adjustor/NativePowerPC.c
++++ b/rts/adjustor/NativePowerPC.c
+@@ -29,7 +29,7 @@
  extern void obscure_ccall_ret_code(void);
- #endif
+ #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: !!! !!!
-@@ -318,7 +318,7 @@ typedef struct AdjustorStub {
- } AdjustorStub;
- #endif
-
--#if defined(i386_HOST_ARCH) || defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
-+#if defined(i386_HOST_ARCH) || defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
- static int totalArgumentSize(char *typeString)
- {
-     int sz = 0;
-@@ -351,7 +351,7 @@ void*
+--- a/rts/adjustor/NativeIA64.c
++++ b/rts/adjustor/NativeIA64.c
+@@ -39,7 +39,7 @@
  createAdjustor(int cconv, StgStablePtr hptr,
                 StgFunPtr wptr,
                 char *typeString
 -#if !defined(powerpc_HOST_ARCH) && !defined(powerpc64_HOST_ARCH) && !defined(x86_64_HOST_ARCH)
 +#if !defined(powerpc_HOST_ARCH) && (!defined(powerpc64_HOST_ARCH) || (_CALL_ELF == 2)) && !defined(x86_64_HOST_ARCH)
-                   STG_UNUSED
+                STG_UNUSED
  #endif
-               )
-@@ -1271,7 +1271,7 @@ freeHaskellFunctionPtr(void* ptr)
-    return;
-  }
-  freeStablePtr(((StgStablePtr*)ptr)[1]);
--#elif defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
-+#elif defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
-  if ( ((AdjustorStub*)ptr)->code != (StgFunPtr) &adjustorCode ) {
-    errorBelch("freeHaskellFunctionPtr: not for me, guv! %p\n", ptr);
-    return;
-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 @@
@@ -150,20 +105,18 @@ index 2795b83..63cfe91 100644
  #if !(defined(powerpc_HOST_ARCH) && defined(linux_HOST_OS))
      /* The following code applies, with some differences,
         to all powerpc platforms except for powerpc32-linux,
-diff --git a/rts/StgCRun.c b/rts/StgCRun.c
-index 934926e..2ff8662 100644
 --- a/rts/StgCRun.c
 +++ b/rts/StgCRun.c
-@@ -726,7 +726,7 @@ StgRunIsImplementedInAssembler(void)
+@@ -635,7 +635,7 @@
     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)
+-#if defined(powerpc_HOST_ARCH)
++#if defined(powerpc_HOST_ARCH) && (_CALL_ELF != 2)
+
+ #define STG_GLOBAL ".globl "
 
- static void GNUC3_ATTRIBUTE(used)
- StgRunIsImplementedInAssembler(void)
-@@ -851,7 +851,7 @@ StgRunIsImplementedInAssembler(void)
+@@ -792,6 +792,6 @@
 
  #endif
 
@@ -171,9 +124,6 @@ index 934926e..2ff8662 100644
 +#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 9274a44..3b4fc33 100644
 --- a/rts/StgCRunAsm.S
 +++ b/rts/StgCRunAsm.S
 @@ -5,7 +5,7 @@
diff --git a/srcpkgs/ghc/template b/srcpkgs/ghc/template
index b8b16f67b433..c4bbb3e4e3b1 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=8.10.7
+version=9.0.2
 revision=1
 wrksrc="ghc-${version%[!0-9]}"
 build_style=gnu-configure
@@ -14,7 +14,7 @@ maintainer="slotThe <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=e3eef6229ce9908dfe1ea41436befb0455fefb1932559e860ad4c606b0d03c9d
+checksum=140e42b96346322d1a39eb17602bcdc76e292028ad4a69286b230bab188a9197
 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 90bdce8ae8ab36517c9cfb601f4e51cba4703bce Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sat, 19 Mar 2022 10:48:13 +0100
Subject: [PATCH 02/18] cabal-install: update to 3.6.3.0

Technically, this is only upgrading Cabal (the library) to 3.6.3.0, as
the installed version of cabal-install is still 3.6.2.0.  This is,
however, necessary for GHC 9.x support.
---
 srcpkgs/cabal-install/files/linux-9.0.2.json | 1 +
 srcpkgs/cabal-install/template               | 9 +++++----
 2 files changed, 6 insertions(+), 4 deletions(-)
 create mode 100644 srcpkgs/cabal-install/files/linux-9.0.2.json

diff --git a/srcpkgs/cabal-install/files/linux-9.0.2.json b/srcpkgs/cabal-install/files/linux-9.0.2.json
new file mode 100644
index 000000000000..f3cb6b4aeeb5
--- /dev/null
+++ b/srcpkgs/cabal-install/files/linux-9.0.2.json
@@ -0,0 +1 @@
+{"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/template b/srcpkgs/cabal-install/template
index d6d718709993..6a4b0ad7fc0e 100644
--- a/srcpkgs/cabal-install/template
+++ b/srcpkgs/cabal-install/template
@@ -1,6 +1,6 @@
 # Template file for 'cabal-install'
 pkgname=cabal-install
-version=3.6.2.0
+version=3.6.3.0
 revision=1
 wrksrc=cabal-Cabal-v${version}
 hostmakedepends="ghc curl tar which"
@@ -11,7 +11,7 @@ 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=dcf31e82cd85ea3236be18cc36c68058948994579ea7de18f99175821dbbcb64
+checksum=dea086acad6d9fe5fe22d838b95b4e988022e8519f38d41609119ea32bfb7466
 nopie_files="/usr/bin/cabal"
 nocross=yes
 
@@ -19,12 +19,13 @@ 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-8.10.7.json ;;
+		vsed -i -e 's/+ofd-locking/-ofd-locking/' bootstrap/linux-9.0.2.json ;;
 	esac
 }
 
 do_build() {
-	PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-8.10.7.json
+	cp "${FILESDIR}/linux-9.0.2.json" bootstrap/
+	PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-9.0.2.json
 }
 do_install() {
 	vbin _build/bin/cabal

From fca528d49c56be81a9fc18c0f74b3ad761698a27 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sat, 19 Mar 2022 12:54:36 +0100
Subject: [PATCH 03/18] stack: update stackage resolver to lts-19.0

Related: https://github.com/commercialhaskell/stack/pull/5559
---
 srcpkgs/stack/patches/ghc9.0.2.patch | 212 +++++++++++++++++++++++++++
 srcpkgs/stack/template               |   6 +-
 2 files changed, 215 insertions(+), 3 deletions(-)
 create mode 100644 srcpkgs/stack/patches/ghc9.0.2.patch

diff --git a/srcpkgs/stack/patches/ghc9.0.2.patch b/srcpkgs/stack/patches/ghc9.0.2.patch
new file mode 100644
index 000000000000..bdd77de58c6b
--- /dev/null
+++ b/srcpkgs/stack/patches/ghc9.0.2.patch
@@ -0,0 +1,212 @@
+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/template b/srcpkgs/stack/template
index 9e53b95ca633..15c38039684d 100644
--- a/srcpkgs/stack/template
+++ b/srcpkgs/stack/template
@@ -1,8 +1,8 @@
 # Template file for 'stack'
 pkgname=stack
 version=2.7.5
-revision=1
-_stackage="lts-18.14"
+revision=2
+_stackage="lts-19.0"
 hostmakedepends="cabal-install pkg-config unzip"
 makedepends="zlib-devel pcre-devel"
 depends="git gmp-devel iana-etc"
@@ -13,7 +13,7 @@ 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
- 78577c091074d78f9d6e09d6e31e7fc8ac2ddbb0dbc4ac65c606adcac4957d7f"
+ 6b9983f6448eb825231f65fe955d6d85516f482f0d26fee84183a1a79c6b0646"
 skip_extraction="cabal.config-${_stackage}"
 nocross=yes
 nopie_files="/usr/bin/stack"

From 9de9a979acc648b9901fbc319d5af00023176d9b Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 09:17:26 +0100
Subject: [PATCH 04/18] cgrep: bump for stackage lts-19.0

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

diff --git a/srcpkgs/cgrep/template b/srcpkgs/cgrep/template
index e57106f3fa26..1c54fe367396 100644
--- a/srcpkgs/cgrep/template
+++ b/srcpkgs/cgrep/template
@@ -1,9 +1,9 @@
 # Template file for 'cgrep'
 pkgname=cgrep
 version=6.7.1
-revision=2
+revision=3
 build_style=haskell-stack
-stackage="lts-18.15"
+stackage="lts-19.0"
 makedepends="pcre-devel pkg-config"
 short_desc="Context-aware grep for source codes"
 maintainer="slotThe <soliditsallgood@mailbox.org>"

From 39baaa9e9822341c8c1d8a90f62843a60692c679 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 09:23:26 +0100
Subject: [PATCH 05/18] git-mediate: bump for stackage lts-19.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 0c9ec10241e5..705df7843b8e 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=2
+revision=3
 build_style=haskell-stack
-stackage="lts-18.14"
+stackage="lts-19.0"
 depends="git"
 short_desc="Tool to help resolving git conflicts"
 maintainer="Peter Wang <novalazy@gmail.com>"

From 47024f61e647b0f4fa02b273516755d86fda46a6 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 09:51:34 +0100
Subject: [PATCH 06/18] hlint: update to 3.3.6

---
 srcpkgs/hlint/template | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/srcpkgs/hlint/template b/srcpkgs/hlint/template
index fd72c1bbea58..0109be25805f 100644
--- a/srcpkgs/hlint/template
+++ b/srcpkgs/hlint/template
@@ -1,16 +1,16 @@
 # Template file for 'hlint'
 pkgname=hlint
-version=3.2.7
-revision=2
+version=3.3.6
+revision=1
 build_style=haskell-stack
-stackage="lts-18.14"
+stackage="lts-19.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=fcdeefcc79a52206add44b409abcab48c5fe2adff9d5aff077acbc43c702b54e
+checksum=7d536c03f77a0c259efb2b00b525ef34578ca8a4a95ccb412708e8c7172e2e6a
 nocross=yes # Can't yet cross compile Haskell
 nopie_files="/usr/bin/hlint"
 

From 7792c49fc49bc377e579a2260ac344230352b5db Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 11:38:44 +0100
Subject: [PATCH 07/18] pandoc: update to 2.17.1.1

+ Fix compilation of `pandoc-crossref` for musl systems.
+ Remove the `system-lua` flag, as `pkg-config` already implies it [1].

Related: https://github.com/lierdakil/pandoc-crossref/issues/342
[1]: https://github.com/hslua/hslua/blob/main/lua/README.md?plain=1#L39-L40
---
 srcpkgs/pandoc/files/pandoc-crossref.cabal | 154 +++++++++++++++++++++
 srcpkgs/pandoc/template                    |  43 +++---
 2 files changed, 173 insertions(+), 24 deletions(-)
 create mode 100644 srcpkgs/pandoc/files/pandoc-crossref.cabal

diff --git a/srcpkgs/pandoc/files/pandoc-crossref.cabal b/srcpkgs/pandoc/files/pandoc-crossref.cabal
new file mode 100644
index 000000000000..7aacc47278f3
--- /dev/null
+++ b/srcpkgs/pandoc/files/pandoc-crossref.cabal
@@ -0,0 +1,154 @@
+cabal-version: 2.0
+
+-- This file has been generated from package.yaml by hpack version 0.34.6.
+--
+-- see: https://github.com/sol/hpack
+--
+-- hash: 20655cd6263e9fe7e5737ee81b093c8c6f5eae67e260ddd3a821ac6ef5e35e69
+
+name:           pandoc-crossref
+version:        0.3.13.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
+homepage:       https://github.com/lierdakil/pandoc-crossref#readme
+bug-reports:    https://github.com/lierdakil/pandoc-crossref/issues
+author:         Nikolay Yakimov
+maintainer:     root@livid.pp.ru
+license:        GPL-2
+license-file:   LICENSE
+build-type:     Simple
+
+source-repository head
+  type: git
+  location: https://github.com/lierdakil/pandoc-crossref
+
+flag enable_flaky_tests
+  description: Some tests rely on specific behaviour of pandoc, which may change between minor versions. These are still useful indicators for the developer, but not necessarily indicating there's a problem with the package itself. Enable if you know what you are doing.
+  manual: True
+  default: False
+
+library
+  exposed-modules:
+      Text.Pandoc.CrossRef
+  other-modules:
+      Text.Pandoc.CrossRef.References
+      Text.Pandoc.CrossRef.References.Blocks
+      Text.Pandoc.CrossRef.References.List
+      Text.Pandoc.CrossRef.References.Refs
+      Text.Pandoc.CrossRef.References.Types
+      Text.Pandoc.CrossRef.Util.CodeBlockCaptions
+      Text.Pandoc.CrossRef.Util.CustomLabels
+      Text.Pandoc.CrossRef.Util.Meta
+      Text.Pandoc.CrossRef.Util.ModifyMeta
+      Text.Pandoc.CrossRef.Util.Options
+      Text.Pandoc.CrossRef.Util.Settings
+      Text.Pandoc.CrossRef.Util.Settings.Gen
+      Text.Pandoc.CrossRef.Util.Settings.Template
+      Text.Pandoc.CrossRef.Util.Template
+      Text.Pandoc.CrossRef.Util.Util
+  hs-source-dirs:
+      lib
+      lib-internal
+  ghc-options: -Wall
+  build-depends:
+      base >=4.11 && <5
+    , containers >=0.1 && <0.7
+    , data-default >=0.4 && <0.8
+    , directory >=1 && <1.4
+    , filepath >=1.1 && <1.5
+    , 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.*
+    , syb >=0.4 && <0.8
+    , template-haskell >=2.7.0.0 && <3.0.0.0
+    , text >=1.2.2 && <1.3
+    , utility-ht >=0.0.11 && <0.1.0
+  default-language: Haskell2010
+
+executable pandoc-crossref
+  main-is: pandoc-crossref.hs
+  other-modules:
+      ManData
+  hs-source-dirs:
+      src
+  ghc-options: -Wall -threaded
+  build-depends:
+      base >=4.11 && <5
+    , deepseq ==1.4.*
+    , gitrev >=1.3.1 && <1.4
+    , open-browser ==0.2.*
+    , optparse-applicative >=0.13 && <0.17
+    , pandoc >=2.10 && <2.18
+    , pandoc-crossref
+    , pandoc-types >=1.21 && <1.23
+    , template-haskell >=2.7.0.0 && <3.0.0.0
+    , temporary >=1.2 && <1.4
+    , text >=1.2.2 && <1.3
+  default-language: Haskell2010
+
+test-suite test-integrative
+  type: exitcode-stdio-1.0
+  main-is: test-integrative.hs
+  hs-source-dirs:
+      test
+  ghc-options: -Wall -fno-warn-unused-do-bind -threaded
+  build-depends:
+      base >=4.11 && <5
+    , directory >=1 && <1.4
+    , filepath >=1.1 && <1.5
+    , hspec >=2.4.4 && <3
+    , pandoc >=2.10 && <2.18
+    , pandoc-crossref
+    , pandoc-types >=1.21 && <1.23
+    , text >=1.2.2 && <1.3
+  if flag(enable_flaky_tests)
+    cpp-options: -DFLAKY
+  default-language: Haskell2010
+
+test-suite test-pandoc-crossref
+  type: exitcode-stdio-1.0
+  main-is: test-pandoc-crossref.hs
+  other-modules:
+      Native
+      Paths_pandoc_crossref
+  autogen-modules:
+      Paths_pandoc_crossref
+  hs-source-dirs:
+      test
+  ghc-options: -Wall -fno-warn-unused-do-bind -threaded
+  build-depends:
+      base >=4.11 && <5
+    , containers >=0.1 && <0.7
+    , data-default >=0.4 && <0.8
+    , 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-crossref
+    , pandoc-types >=1.21 && <1.23
+    , text >=1.2.2 && <1.3
+  if flag(enable_flaky_tests)
+    cpp-options: -DFLAKY
+  default-language: Haskell2010
+
+benchmark simple
+  type: exitcode-stdio-1.0
+  main-is: bench-simple.hs
+  other-modules:
+      Native
+  hs-source-dirs:
+      test
+  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
+    , pandoc-crossref
+    , pandoc-types >=1.21 && <1.23
+    , text >=1.2.2 && <1.3
+  default-language: Haskell2010
diff --git a/srcpkgs/pandoc/template b/srcpkgs/pandoc/template
index 8628b1d1f3c2..9bdf32ef3c53 100644
--- a/srcpkgs/pandoc/template
+++ b/srcpkgs/pandoc/template
@@ -1,18 +1,18 @@
 # Template file for 'pandoc'
 pkgname=pandoc
 # Keep in sync with http://www.stackage.org/lts
-version=2.14.0.3
-revision=3
-_sidenote_version=0.20.0.0
+version=2.17.1.1
+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
 create_wrksrc=yes
 build_style=haskell-stack
-stackage="lts-18.14"
+stackage="lts-19.0"
 make_build_args="
- --flag pandoc:embed_data_files --flag=hslua:system-lua
- --flag=hslua:pkg-config"
+ --flag pandoc:embed_data_files
+ --flag=lua:pkg-config"
 hostmakedepends="pkg-config unzip wget"
 makedepends="zlib-devel lua53-devel tar"
 short_desc="Universal converter between markup formats"
@@ -21,33 +21,28 @@ license="GPL-2.0-or-later, BSD-3-Clause"
 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"
-checksum="82e3f55bff3059bf30cf532e93d9876c9e3599aa4eafae9c907fe75a4430eddd
- 91f8e96d8470722d677d31d4bbf16c2ac6902567d818ed7a2715bad2617a4cdb
- be8485023fce236b5b915f2f6074f7b0470a2040f84cdd137c5227f1b4c98465"
-subpackages="pandoc-sidenote"
-nocross=yes
-nopie_files="
- /usr/bin/pandoc
- /usr/bin/pandoc-sidenote"
-
-# pandoc-crossref is currently broken on musl. See lierdakil/pandoc-crossref#342 and commercialhaskell/stack#5683
-if [ "$XBPS_TARGET_LIBC" != "musl" ]; then
-	distfiles+="
+ 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+="
+checksum="649ec528d1413130c5ce304b826ff473b3696269eea8834d908589e775bd1ad1
+ c39dd7343b9cb4dc5b1c91c9e47c3d357874e9e1a30b8d377bbea0b1d50323b2
+ be8485023fce236b5b915f2f6074f7b0470a2040f84cdd137c5227f1b4c98465
  94540325c9c98ae4d5199c634bf402ffa41e3c5b020d7207daef90fd9e224fb4
  b9c7195b69b1662a286d2c28a55fafdcb693c522ba5eb54a11b1d0a4e92eaa81"
-	nopie_files+="
- /usr/bin/pandoc-crossref"
-	subpackages+="
+subpackages="
+ pandoc-sidenote
  pandoc-crossref"
-fi
+nocross=yes
+nopie_files="
+ /usr/bin/pandoc
+ /usr/bin/pandoc-sidenote
+ /usr/bin/pandoc-crossref"
 
 post_extract() {
 	sed -i 's/tasty .*,/tasty,/' pandoc-*/pandoc.cabal
 	sed -i 's/zip-archive .*,/zip-archive,/' pandoc-*/pandoc.cabal
+	# See https://github.com/lierdakil/pandoc-crossref/issues/342#issuecomment-1073256586
+	cp "${FILESDIR}/pandoc-crossref.cabal" pandoc-crossref-${_crossref_version}
 }
 
 post_install() {

From 7a9c17c8649d1d85c4b7029ba5ba8d26d4244801 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 12:15:01 +0100
Subject: [PATCH 08/18] shellcheck: bump for stackage lts-19.0

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

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

From 014c8047e38b71959bfbe826be7c2db4a60816f8 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 12:52:11 +0100
Subject: [PATCH 09/18] hoogle: update to 5.0.18.3

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

diff --git a/srcpkgs/hoogle/template b/srcpkgs/hoogle/template
index 4c3e80186494..dc487cab4017 100644
--- a/srcpkgs/hoogle/template
+++ b/srcpkgs/hoogle/template
@@ -1,16 +1,16 @@
 # Template file for 'hoogle'
 pkgname=hoogle
-version=5.0.18.2
-revision=2
+version=5.0.18.3
+revision=1
 build_style=haskell-stack
-stackage="lts-18.14"
+stackage="lts-19.0"
 makedepends="zlib-devel"
 short_desc="Haskell API search engine"
 maintainer="Inokentiy Babushkin <twk@twki.de>"
 license="BSD-3-Clause"
 homepage="https://hoogle.haskell.org/"
 distfiles="https://github.com/ndmitchell/${pkgname}/archive/v${version}.tar.gz"
-checksum=9f8f0afde52fe602100ab7828fad230c2f5e94050dda9fe1e2a9f0a93f7fe617
+checksum=a2765fcbaf99fe67a64ef29fe50e69fb380cce07807cddeb0836c148b1ae472b
 nopie_files="/usr/bin/hoogle"
 nocross=yes # Can't yet cross compile Haskell
 

From e1d7b9d74ed337ce9e0f008e94dfc4a300a133bc Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 13:33:12 +0100
Subject: [PATCH 10/18] xmobar: update to 0.42

Also enable most flags during compilation in order to be less surprising
with regards to what features xmobar supports out of the box.
---
 srcpkgs/xmobar/files/stack.yaml | 2 +-
 srcpkgs/xmobar/template         | 8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/xmobar/files/stack.yaml b/srcpkgs/xmobar/files/stack.yaml
index 47544eb729d8..7e0956374142 100644
--- a/srcpkgs/xmobar/files/stack.yaml
+++ b/srcpkgs/xmobar/files/stack.yaml
@@ -1,4 +1,4 @@
-resolver: lts-18.13
+resolver: lts-19.0
 packages:
 - .
 extra-deps:
diff --git a/srcpkgs/xmobar/template b/srcpkgs/xmobar/template
index b97c9f268d68..6a12a9ed7055 100644
--- a/srcpkgs/xmobar/template
+++ b/srcpkgs/xmobar/template
@@ -1,7 +1,7 @@
 # Template file for 'xmobar'
 pkgname=xmobar
-version=0.39
-revision=2
+version=0.42
+revision=1
 build_style=haskell-stack
 hostmakedepends="pkg-config"
 makedepends="libX11-devel libXinerama-devel libXrandr-devel libXScrnSaver-devel
@@ -15,10 +15,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=46f37b90dd3ba3348dbe7de716b88606c7f0f0dd22a3580176b5cd089c1b36cc
+checksum=53f4a06d79c3db32ef1a498ec7b764b17d03ebf9bca3126c6b8259595492769b
 build_options="dbus threaded utf8 xft mpd mpris inotify iwlib alsa datezone
  xpm uvmeter weather nl80211"
-build_options_default="threaded utf8 xft inotify nl80211 datezone weather xpm"
+build_options_default="threaded utf8 xft inotify nl80211 datezone weather xpm alsa mpris mpd dbus"
 nopie_files="/usr/bin/xmobar"
 nocross=yes
 vopt_hflag() {

From 636d2ada74e352a871ff8cc869b8c07e73bc5a3f Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Sun, 20 Mar 2022 18:09:34 +0100
Subject: [PATCH 11/18] hledger: update to 1.25

---
 srcpkgs/hledger/template | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/hledger/template b/srcpkgs/hledger/template
index fdcab180a6de..32d39207fd82 100644
--- a/srcpkgs/hledger/template
+++ b/srcpkgs/hledger/template
@@ -1,8 +1,9 @@
 # Template file for 'hledger'
 pkgname=hledger
-version=1.23
-revision=2
+version=1.25
+revision=1
 build_style=haskell-stack
+stackage="lts-19.0"
 makedepends="zlib-devel ncurses-devel"
 short_desc="Simple, precise, plain text accounting"
 maintainer="Inokentiy Babushkin <twk@twki.de>"
@@ -10,7 +11,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/${pkgname}/archive/${version}.tar.gz"
-checksum=7252d78aafbae488b113a6350518a702186cacc4e746cec2b31f8321b4dddcb4
+checksum=4c947c2a7d243d2a56efc1fa02994a118e995df025a412f6d2daeadfd78338ee
 nopie_files="/usr/bin/hledger"
 nocross=yes # Can't yet cross compile Haskell
 

From 5fef7bac1959ab50197801527e3710c633bc44ca Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Mon, 21 Mar 2022 08:19:29 +0100
Subject: [PATCH 12/18] haskell-language-server: update to 1.6.1.0

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

diff --git a/srcpkgs/haskell-language-server/template b/srcpkgs/haskell-language-server/template
index 0182c9b95757..0c7b2187c5ca 100644
--- a/srcpkgs/haskell-language-server/template
+++ b/srcpkgs/haskell-language-server/template
@@ -1,16 +1,16 @@
 # Template file for 'haskell-language-server'
 pkgname=haskell-language-server
-version=1.4.0
+version=1.6.1.0
 revision=1
 build_style="haskell-stack"
-make_build_args="--stack-yaml stack-8.10.7.yaml"
+make_build_args="--stack-yaml stack-9.0.2.yaml"
 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>"
 license="Apache-2.0"
 homepage="https://github.com/haskell/haskell-language-server"
 distfiles="https://github.com/haskell/haskell-language-server/archive/${version}.tar.gz"
-checksum=c5d7dbf7fae9aa3ed2c1184b49e82d8ac623ca786494ef6602cfe11735d28db0
+checksum=e5c336ad2de8d021c882cdac5bbc26bf6427df8d2a5bd244c05cf18296a9bfdc
 nopie_files="
  /usr/bin/haskell-language-server
  /usr/bin/haskell-language-server-wrapper

From e62974b86860969757a275749c92d3ab43393de1 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Mon, 21 Mar 2022 15:48:58 +0100
Subject: [PATCH 13/18] git-annex: update to 10.20220222

---
 srcpkgs/git-annex/files/stack.yaml | 33 ++++++++++++++++++++++++++++++
 srcpkgs/git-annex/template         |  5 +++--
 2 files changed, 36 insertions(+), 2 deletions(-)
 create mode 100644 srcpkgs/git-annex/files/stack.yaml

diff --git a/srcpkgs/git-annex/files/stack.yaml b/srcpkgs/git-annex/files/stack.yaml
new file mode 100644
index 000000000000..4935307f48cf
--- /dev/null
+++ b/srcpkgs/git-annex/files/stack.yaml
@@ -0,0 +1,33 @@
+flags:
+  git-annex:
+    production: true
+    assistant: true
+    pairing: true
+    torrentparser: true
+    webapp: true
+    magicmime: false
+    dbus: false
+    debuglocks: false
+    benchmark: true
+    networkbsd: true
+    gitlfs: true
+    httpclientrestricted: true
+packages:
+  - '.'
+resolver: lts-19.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
diff --git a/srcpkgs/git-annex/template b/srcpkgs/git-annex/template
index 1cf2ab14789f..7b788bc5861e 100644
--- a/srcpkgs/git-annex/template
+++ b/srcpkgs/git-annex/template
@@ -1,8 +1,9 @@
 # Template file for 'git-annex'
 pkgname=git-annex
-version=8.20211028
+version=10.20220222
 revision=1
 build_style=haskell-stack
+stackage="lts-19.0"
 makedepends="curl file-devel gnupg2 gnutls-devel gsasl-devel libxml2-devel
  lsof rsync git ncurses-devel"
 # depends are utilities required by git-annex
@@ -12,7 +13,7 @@ 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="http://git-annex.branchable.com"
 distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz"
-checksum=cf5efe15e68d467daad673bec10037a27a78da7e4af9b4a85e10980bd90ace2d
+checksum=1fb9f75a83feb16f7515122135c0f3abe6aa77544d8d778792296cbc053d2c85
 nopie_files="/usr/bin/git-annex"
 nocross=yes
 

From b0bda15a0a2e485873bb6e1bc4a8dde3e42209c5 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Wed, 23 Mar 2022 09:14:58 +0100
Subject: [PATCH 14/18] darcs: bump for stackage lts-19.0

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

diff --git a/srcpkgs/darcs/files/stack.yaml b/srcpkgs/darcs/files/stack.yaml
index 5ae0f5313b8d..6e459703764a 100644
--- a/srcpkgs/darcs/files/stack.yaml
+++ b/srcpkgs/darcs/files/stack.yaml
@@ -1,7 +1,4 @@
-resolver: lts-18.14
+resolver: lts-19.0
 packages:
 - .
-extra-deps:
-- graphviz-2999.20.1.0
-- constraints-0.12@sha256:7edf1e72a92d0a6761da634f08be9123dfcc0dcec11c269cbf465a09721c3481,2322
-- cryptonite-0.27@sha256:c3a9c8ce11e654a9d5bee827b089d4b50587272828d0c52a85362a58667a916c,18163
+allow-newer: true
diff --git a/srcpkgs/darcs/template b/srcpkgs/darcs/template
index f9fcac534d46..15a8f71f9021 100644
--- a/srcpkgs/darcs/template
+++ b/srcpkgs/darcs/template
@@ -1,7 +1,7 @@
 # Template file for 'darcs'
 pkgname=darcs
 version=2.16.5
-revision=2
+revision=3
 build_style=haskell-stack
 hostmakedepends="unzip"
 makedepends="zlib-devel libcurl-devel ncurses-devel"

From 526522e486f4299fdfa483a7cd92648c4c4d83f2 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Thu, 24 Mar 2022 11:50:45 +0100
Subject: [PATCH 15/18] debug-me: update to 1.20220324

---
 srcpkgs/debug-me/files/stack.yaml        |  8 +++---
 srcpkgs/debug-me/patches/ghc8.10.4.patch | 33 ------------------------
 srcpkgs/debug-me/template                |  7 ++---
 3 files changed, 7 insertions(+), 41 deletions(-)
 delete mode 100644 srcpkgs/debug-me/patches/ghc8.10.4.patch

diff --git a/srcpkgs/debug-me/files/stack.yaml b/srcpkgs/debug-me/files/stack.yaml
index ad8b055bb33e..f2b1a79d70c6 100644
--- a/srcpkgs/debug-me/files/stack.yaml
+++ b/srcpkgs/debug-me/files/stack.yaml
@@ -1,8 +1,6 @@
 packages:
 - '.'
-resolver: lts-18.14
+resolver: lts-19.0
 extra-deps:
-- posix-pty-0.2.1.1
-- graphviz-2999.20.1.0
-- sandi-0.5
-- protobuf-0.2.1.3@sha256:d8ed3c73027c6b7e7583c6a94ee1835beee8a755a875b06bbf51bc667d53ab69,3048
+  - posix-pty-0.2.1.1
+  - sandi-0.5@sha256:b278d072ca717706ea38f9bd646e023f7f2576a778fb43565b434f93638849aa,3010
diff --git a/srcpkgs/debug-me/patches/ghc8.10.4.patch b/srcpkgs/debug-me/patches/ghc8.10.4.patch
deleted file mode 100644
index bfcff16a4438..000000000000
--- a/srcpkgs/debug-me/patches/ghc8.10.4.patch
+++ /dev/null
@@ -1,33 +0,0 @@
---- a/Val.hs	2020-03-31 11:00:33.329814064 +0200
-+++ b/Val.hs	2020-03-31 11:00:24.602711845 +0200
-@@ -42,7 +42,7 @@
- b64 :: B.ByteString -> T.Text
- b64 = T.decodeUtf8 . B64.encode
-
--unb64 :: Monad m => T.Text -> m B.ByteString
-+unb64 :: MonadFail m => T.Text -> m B.ByteString
- unb64 t = either
- 	(\_ -> fail "bad base64 data")
- 	return
---- a/Server.hs	2020-03-31 12:53:45.860509650 +0200
-+++ b/Server.hs	2020-03-31 12:52:34.873835069 +0200
-@@ -105,7 +105,7 @@
- 		-- (Workaround for
- 		-- https://github.com/jaspervdj/websockets/issues/140)
- 		setHost "*6" $
--		setPort (serverPort o) $
-+		setPort (CmdLine.serverPort o) $
- 		defaultSettings
-
- checkEnv :: ServerOpts -> IO ServerOpts
---- a/debug-me.cabal
-+++ b/debug-me.cabal
-@@ -64,7 +64,7 @@
-     , stm-chans (>= 3.0)
-     , posix-pty (>= 0.2.1)
-     , terminal-size (>= 0.3)
--    , aeson (>= 0.11 && < 1.5)
-+    , aeson (>= 0.11 && < 1.6)
-     , sandi (>= 0.4)
-     , text (>= 1.2.2)
-     , optparse-applicative (>= 0.12)
diff --git a/srcpkgs/debug-me/template b/srcpkgs/debug-me/template
index 86ac0037311a..f971f2156c77 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.20200820
-revision=3
+version=1.20220324
+revision=1
 build_style=haskell-stack
+stackage="lts-19.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=9497dc9b85a58e5c499ea25fa1bed9f4fd6cdd2f57564f52a0e4152ad4fdc102
+checksum=9fd6256aa34408106ff095e0560850aca3558a774be4ce19de6ab6e81fbfdb9f
 nocross=yes # Can't yet cross compile Haskell
 nopie_files="/usr/bin/debug-me"
 

From b45f29ccc2aa2aca686a48fb65f7b9def81e2a38 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Fri, 25 Mar 2022 14:40:52 +0100
Subject: [PATCH 16/18] ghc-bin: update to 9.0.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Co-authored-by: Sigrid Solveig Haflínudóttir <ftrvxmtrx@gmail.com>
---
 srcpkgs/ghc-bin/template | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/ghc-bin/template b/srcpkgs/ghc-bin/template
index 3949ee3fa1aa..5e87ecc42d17 100644
--- a/srcpkgs/ghc-bin/template
+++ b/srcpkgs/ghc-bin/template
@@ -1,6 +1,6 @@
 # Template file for 'ghc-bin'
 pkgname=ghc-bin
-version=8.10.7
+version=9.0.2
 revision=1
 archs="i686 x86_64* ppc64le* ppc64"
 wrksrc="ghc-${version%[!0-9]}"
@@ -15,17 +15,17 @@ noshlibprovides=yes
 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=ced9870ea351af64fb48274b81a664cdb6a9266775f1598a79cbb6fdd5770a23
+	distfiles="https://downloads.haskell.org/ghc/${version%[!0-9]}/ghc-${version}-x86_64-deb9-linux.tar.xz"
+	checksum=805f5628ce6cec678ba77ff48c924831ebdf75ec2c66368e8935a618913a150e
 	;;
 x86_64-musl)
 	# create with "make binary-dist"
-	distfiles="https://alpha.de.repo.voidlinux.org/distfiles/ghc-${version}-x86_64-void-linux-musl.tar.xz"
-	checksum=52f6492f39f13890f4ecd83784724ae9fff7a02fdc624a56c49872c912608a50
+	distfiles="https://download1640.mediafire.com/02oxtdmod6tg/2g0umndrffyechx/ghc-9.0.2-x86_64-void-linux-musl.tar.xz"
+	checksum=e21eaddeffcd5de7abe43b1f3982a3bc2c5b5f408d2574857cb2b0368106e12c
 	;;
 i686)
-	distfiles="https://downloads.haskell.org/~ghc/${version%[!0-9]}/ghc-${version}-i386-deb9-linux.tar.xz"
-	checksum=fbfc1ef194f4e7a4c0da8c11cc69b17458a4b928b609b3622c97acc4acd5c5ab
+	distfiles="https://downloads.haskell.org/ghc/${version%[!0-9]}/ghc-${version}-i386-deb9-linux.tar.xz"
+	checksum=fdeb9f8928fbe994064778a8e1e85bb1a58a6cd3dd7b724fcc2a1dcfda6cad47
 	;;
 ppc64le)
 	distfiles="https://alpha.de.repo.voidlinux.org/distfiles/ghc-${version}-powerpc64le-void-linux.tar.xz"

From 817db2dec773ccf1a9dde653f020d7ba51a0fd9f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sigrid=20Solveig=20Hafl=C3=ADnud=C3=B3ttir?=
 <ftrvxmtrx@gmail.com>
Date: Thu, 24 Mar 2022 09:27:25 +0100
Subject: [PATCH 17/18] ghc, ghc-bin: Add aarch64* support

---
 srcpkgs/ghc-bin/template | 12 +++++++++++-
 srcpkgs/ghc/template     |  8 ++++++++
 2 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/srcpkgs/ghc-bin/template b/srcpkgs/ghc-bin/template
index 5e87ecc42d17..7ea050f41ffb 100644
--- a/srcpkgs/ghc-bin/template
+++ b/srcpkgs/ghc-bin/template
@@ -2,7 +2,7 @@
 pkgname=ghc-bin
 version=9.0.2
 revision=1
-archs="i686 x86_64* ppc64le* ppc64"
+archs="i686 x86_64* ppc64le* ppc64 aarch64*"
 wrksrc="ghc-${version%[!0-9]}"
 hostmakedepends="perl libffi libnuma"
 depends="ncurses perl gcc libffi-devel gmp-devel"
@@ -39,6 +39,16 @@ ppc64)
 	distfiles="https://alpha.de.repo.voidlinux.org/distfiles/ghc-${version}-powerpc64-void-linux.tar.xz"
 	checksum=b8578e602abd4b453845303fb9cfed0b2186f86f60e3aa45869026ea833726c8
 	;;
+aarch64)
+	distfiles="https://alpha.de.repo.voidlinux.org/distfiles/ghc-${version}-aarch64-void-linux.tar.xz"
+	checksum=44a20a896246dce64392b7d0feedd0a28a9d733245a803e95dbe4b4b7e15b4fd
+	depends+=" llvm"
+	;;
+aarch64-musl)
+	distfiles="https://alpha.de.repo.voidlinux.org/distfiles/ghc-${version}-aarch64-void-linux-musl.tar.xz"
+	checksum=de98e2ff33a25cb32a28c738066fecacb736a33cac12688876eec4eb96d88607
+	depends+=" llvm"
+	;;
 *)
 	broken="No distfiles available for this target"
 	;;
diff --git a/srcpkgs/ghc/template b/srcpkgs/ghc/template
index c4bbb3e4e3b1..d0b1600987be 100644
--- a/srcpkgs/ghc/template
+++ b/srcpkgs/ghc/template
@@ -54,6 +54,14 @@ elif [ "${XBPS_MACHINE%-*}" != "${XBPS_TARGET_MACHINE%-*}" ]; then
 	configure_args+=" --host=${XBPS_TRIPLET} --target=${XBPS_CROSS_TRIPLET}"
 fi
 
+case "$XBPS_TARGET_MACHINE" in
+aarch64*)
+	# GHC uses LLVM to generate code on aarch64
+	hostmakedepends+=" llvm"
+	depends+=" llvm"
+	;;
+esac
+
 # Recent safe to use tarball
 # GHC's bundled tarball is from 2017, buggy on some archs
 _ffi_rev=4d6d2866ae43e55325e8ee96561221804602cd7a

From a194a9cc1e6fdde9b5d8f70b6afde47b0a6b35e4 Mon Sep 17 00:00:00 2001
From: slotThe <soliditsallgood@mailbox.org>
Date: Thu, 24 Mar 2022 14:27:41 +0100
Subject: [PATCH 18/18] kmonad: update to
 65b501defdd0049563752f8af8c8c57f5a1ae38b

The reason for updating to an unreleased version is that the author
(and core maintainer) of the project is chronically ill[1] and unable
to spend a lot of time on kmonad.  At the same time, there is a rather
large refactor on the way, without which a new release would not make
too much sense[2].  As such, updating to what's essentially HEAD makes
sense in this case; it is not any less stable than 0.4.1 (I've
personally been running this for months without any problems).  As a
bonus, we get GHC 9.0.2 compatibility for free and do not need to
cherry pick the relevant commits.

[1]: https://github.com/kmonad/kmonad#disclaimer
[2]: https://github.com/kmonad/kmonad/pull/372
---
 srcpkgs/kmonad/template | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/srcpkgs/kmonad/template b/srcpkgs/kmonad/template
index c93d2bee4c4f..829d96a535eb 100644
--- a/srcpkgs/kmonad/template
+++ b/srcpkgs/kmonad/template
@@ -1,15 +1,15 @@
 # Template file for 'kmonad'
 pkgname=kmonad
-version=0.4.1
-revision=3
+version=65b501defdd0049563752f8af8c8c57f5a1ae38b
+revision=1
 build_style=haskell-stack
-stackage=lts-18.14
+stackage=lts-19.0
 short_desc="Keyboard remapping utility providing qmk-like functionality"
 maintainer="slotThe <soliditsallgood@mailbox.org>"
 license="MIT"
 homepage="https://github.com/david-janssen/kmonad"
 distfiles="${homepage}/archive/${version}.tar.gz"
-checksum=cb66f0c6d4c304c7e3c48cefd0c50ea00b156ffc361e278e1fc5c6070317d927
+checksum=2b0cb0c5d1575bf61b1c442476ad24103028c309d103fedb56214a3bb30f8c0f
 nopie_files="/usr/bin/kmonad"
 nocross=yes
 

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

* Re: [WIP] Update to GHC 9.0.2/Stackage LTS-19.0
  2022-03-23  7:20 [PR PATCH] [WIP] Update to GHC 9.0.2/Stackage LTS-19.0 slotThe
                   ` (14 preceding siblings ...)
  2022-03-31 17:15 ` [PR PATCH] [Updated] " slotThe
@ 2022-03-31 17:16 ` slotThe
  2022-04-03 11:51 ` ftrvxmtrx
                   ` (5 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: slotThe @ 2022-03-31 17:16 UTC (permalink / raw)
  To: ml

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

New comment by slotThe on void-packages repository

https://github.com/void-linux/void-packages/pull/36292#issuecomment-1084873855

Comment:
@ftrvxmtrx thanks, applied!

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

* Re: [WIP] Update to GHC 9.0.2/Stackage LTS-19.0
  2022-03-23  7:20 [PR PATCH] [WIP] Update to GHC 9.0.2/Stackage LTS-19.0 slotThe
                   ` (15 preceding siblings ...)
  2022-03-31 17:16 ` slotThe
@ 2022-04-03 11:51 ` ftrvxmtrx
  2022-04-23  5:51 ` slotThe
                   ` (4 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: ftrvxmtrx @ 2022-04-03 11:51 UTC (permalink / raw)
  To: ml

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

New comment by ftrvxmtrx on void-packages repository

https://github.com/void-linux/void-packages/pull/36292#issuecomment-1086848840

Comment:
All packages in question built for both `aarch64` and `aarch64-musl` successfully now, jfyi.

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

* Re: Update to GHC 9.0.2/Stackage LTS-19.0
  2022-03-23  7:20 [PR PATCH] [WIP] Update to GHC 9.0.2/Stackage LTS-19.0 slotThe
                   ` (16 preceding siblings ...)
  2022-04-03 11:51 ` ftrvxmtrx
@ 2022-04-23  5:51 ` slotThe
  2022-04-23  5:51 ` slotThe
                   ` (3 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: slotThe @ 2022-04-23  5:51 UTC (permalink / raw)
  To: ml

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

New comment by slotThe on void-packages repository

https://github.com/void-linux/void-packages/pull/36292#issuecomment-1107374664

Comment:
@q66 friendly ping

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

* Re: Update to GHC 9.0.2/Stackage LTS-19.0
  2022-03-23  7:20 [PR PATCH] [WIP] Update to GHC 9.0.2/Stackage LTS-19.0 slotThe
                   ` (17 preceding siblings ...)
  2022-04-23  5:51 ` slotThe
@ 2022-04-23  5:51 ` slotThe
  2022-04-28  0:47 ` [PR PATCH] [Closed]: " q66
                   ` (2 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: slotThe @ 2022-04-23  5:51 UTC (permalink / raw)
  To: ml

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

New comment by slotThe on void-packages repository

https://github.com/void-linux/void-packages/pull/36292#issuecomment-1107374664

Comment:
@q66 friendly ping :)

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

* Re: [PR PATCH] [Closed]: Update to GHC 9.0.2/Stackage LTS-19.0
  2022-03-23  7:20 [PR PATCH] [WIP] Update to GHC 9.0.2/Stackage LTS-19.0 slotThe
                   ` (18 preceding siblings ...)
  2022-04-23  5:51 ` slotThe
@ 2022-04-28  0:47 ` q66
  2022-04-28  0:47 ` q66
  2022-05-03 10:12 ` Piraty
  21 siblings, 0 replies; 23+ messages in thread
From: q66 @ 2022-04-28  0:47 UTC (permalink / raw)
  To: ml

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

There's a closed pull request on the void-packages repository

Update to GHC 9.0.2/Stackage LTS-19.0
https://github.com/void-linux/void-packages/pull/36292

Description:
And so... the ~~hunt~~ fun begins again!

### Core packages to bump

- [x] ghc
- [ ] ghc-bin
    - [x] x86_64-musl [Link](https://download1640.mediafire.com/02oxtdmod6tg/2g0umndrffyechx/ghc-9.0.2-x86_64-void-linux-musl.tar.xz) **Not uploaded yet**
    cc. @q66 for the following
    - [ ] ppc64le
    - [ ] ppc64le-musl
    - [x] aarch64 [Link](https://ftrv.se/_/void/ghc-9.0.2/ghc-9.0.2-aarch64-void-linux.tar.xz) **Not uploaded yet**
    - [x] aarch64-musl [Link](https://ftrv.se/_/void/ghc-9.0.2/ghc-9.0.2-aarch64-void-linux-musl.tar.xz) **Not uploaded yet**
- [x] cabal-install
- [x] stack

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

Most of these are already done, things should probably go smoothly as 9.0.x does not contain any big breaking changes.

- [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 (contains a fix for `pandoc-crossref` on musl \o/)
- [x] xmobar
- [x] haskell-language-server

### Other things to do 

- [x] Either incorporate https://github.com/void-linux/void-packages/pull/36193 into this PR or merge it first and then rebuild GHC for aarch64 and aarch64-musl; cc. @ftrvxmtrx

Closes https://github.com/void-linux/void-packages/pull/36193

[ci skip]

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

* Re: Update to GHC 9.0.2/Stackage LTS-19.0
  2022-03-23  7:20 [PR PATCH] [WIP] Update to GHC 9.0.2/Stackage LTS-19.0 slotThe
                   ` (19 preceding siblings ...)
  2022-04-28  0:47 ` [PR PATCH] [Closed]: " q66
@ 2022-04-28  0:47 ` q66
  2022-05-03 10:12 ` Piraty
  21 siblings, 0 replies; 23+ messages in thread
From: q66 @ 2022-04-28  0:47 UTC (permalink / raw)
  To: ml

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

New comment by q66 on void-packages repository

https://github.com/void-linux/void-packages/pull/36292#issuecomment-1111618036

Comment:
closing, i will merge this with local changes separately (ghc-bin x86_64-musl path needs to be reverted back, ppc checksums updated, also ppc64 big endian patch got broken in the process and i had to fix that)

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

* Re: Update to GHC 9.0.2/Stackage LTS-19.0
  2022-03-23  7:20 [PR PATCH] [WIP] Update to GHC 9.0.2/Stackage LTS-19.0 slotThe
                   ` (20 preceding siblings ...)
  2022-04-28  0:47 ` q66
@ 2022-05-03 10:12 ` Piraty
  21 siblings, 0 replies; 23+ messages in thread
From: Piraty @ 2022-05-03 10:12 UTC (permalink / raw)
  To: ml

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

New comment by Piraty on void-packages repository

https://github.com/void-linux/void-packages/pull/36292#issuecomment-1115938279

Comment:
https://github.com/void-linux/void-packages/pull/36971

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

end of thread, other threads:[~2022-05-03 10:12 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-23  7:20 [PR PATCH] [WIP] Update to GHC 9.0.2/Stackage LTS-19.0 slotThe
2022-03-23 20:31 ` ftrvxmtrx
2022-03-23 20:40 ` ftrvxmtrx
2022-03-24 10:51 ` [PR PATCH] [Updated] " slotThe
2022-03-24 10:51 ` slotThe
2022-03-24 11:34 ` slotThe
2022-03-24 13:37 ` slotThe
2022-03-24 23:05 ` ftrvxmtrx
2022-03-25 12:11 ` [PR PATCH] [Updated] " slotThe
2022-03-25 13:14 ` slotThe
2022-03-25 13:15 ` [PR PATCH] [Updated] " slotThe
2022-03-25 13:44 ` slotThe
2022-03-26 16:43 ` ftrvxmtrx
2022-03-28 16:15 ` ftrvxmtrx
2022-03-30 13:44 ` ftrvxmtrx
2022-03-31 17:15 ` [PR PATCH] [Updated] " slotThe
2022-03-31 17:16 ` slotThe
2022-04-03 11:51 ` ftrvxmtrx
2022-04-23  5:51 ` slotThe
2022-04-23  5:51 ` slotThe
2022-04-28  0:47 ` [PR PATCH] [Closed]: " q66
2022-04-28  0:47 ` q66
2022-05-03 10:12 ` Piraty

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).