summaryrefslogtreecommitdiff
path: root/skip/cabal-stage0
diff options
context:
space:
mode:
Diffstat (limited to 'skip/cabal-stage0')
-rw-r--r--skip/cabal-stage0/cabal-stage0.xibuild29
-rw-r--r--skip/cabal-stage0/depends-for-ghc-9.0.1.patch44
-rw-r--r--skip/cabal-stage0/linux-9.0.1.json1
3 files changed, 74 insertions, 0 deletions
diff --git a/skip/cabal-stage0/cabal-stage0.xibuild b/skip/cabal-stage0/cabal-stage0.xibuild
new file mode 100644
index 0000000..4905da8
--- /dev/null
+++ b/skip/cabal-stage0/cabal-stage0.xibuild
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+NAME="cabal-stage0"
+DESC="Cabal version used for bootstrapping"
+
+MAKEDEPS="make ghc"
+DEPS="gmp libffi musl zlib "
+
+PKG_VER=5b4258cbfa536b6362c4e20578ced51676206ea8
+SOURCE="https://github.com/haskell/cabal"
+BRANCH=$PKG_VER
+
+ADDITIONAL="linux-9.0.1.json depends-for-ghc-9.0.1.patch "
+
+prepare () {
+ apply_patches
+ cp linux-9.0.1.json "bootstrap"
+}
+
+build () {
+ ./bootstrap/bootstrap.py \
+ -d ./bootstrap/linux-9.0.1.json \
+ -w "$(command -v ghc)"
+}
+
+package () {
+ install -m 755 -D _build/bin/cabal "$PKG_DEST/usr/bin/cabal"
+ install -Dm644 LICENSE "$PKG_DEST/usr/share/licenses/cabal-stage0/LICENSE"
+}
diff --git a/skip/cabal-stage0/depends-for-ghc-9.0.1.patch b/skip/cabal-stage0/depends-for-ghc-9.0.1.patch
new file mode 100644
index 0000000..90dfae9
--- /dev/null
+++ b/skip/cabal-stage0/depends-for-ghc-9.0.1.patch
@@ -0,0 +1,44 @@
+A lot of packages do not work with GHC 9.0.1 by default since their
+version constraint for packages from the standard library is too
+restrictive. Adjust these version constrains to fix the build.
+
+Only in b: _build
+diff -upr a/bootstrap/bootstrap.py b/bootstrap/bootstrap.py
+--- a/bootstrap/bootstrap.py 2021-11-17 20:24:56.563114540 +0100
++++ b/bootstrap/bootstrap.py 2021-11-17 20:13:30.311479911 +0100
+@@ -147,6 +147,11 @@ def fetch_package(package: PackageName,
+ shutil.copyfileobj(resp, cabal_file.open('wb'))
+ verify_sha256(cabal_sha256, cabal_file)
+
++ if package == "ed25519":
++ subprocess_run(["sed", "-e", "s/ghc-prim ..*/ghc-prim >= 0.1,/", "-i", cabal_file], check=True)
++ elif package == "hackage-security":
++ subprocess_run(["sed", "-e", "s/template-haskell ..*/template-haskell >= 2.7,/", "-i", cabal_file], check=True)
++
+ return (tarball, cabal_file)
+
+ def read_bootstrap_info(path: Path) -> BootstrapInfo:
+diff -upr a/cabal-install/cabal-install.cabal b/cabal-install/cabal-install.cabal
+--- a/cabal-install/cabal-install.cabal 2021-11-05 00:16:33.000000000 +0100
++++ b/cabal-install/cabal-install.cabal 2021-11-17 20:17:03.488421095 +0100
+@@ -209,7 +209,7 @@ library
+ edit-distance >= 0.2.2 && < 0.3,
+ exceptions,
+ filepath >= 1.4.0.0 && < 1.5,
+- hashable >= 1.0 && < 1.4,
++ hashable >= 1.0,
+ HTTP >= 4000.1.5 && < 4000.4,
+ mtl >= 2.0 && < 2.3,
+ network-uri >= 2.6.0.2 && < 2.7,
+diff -upr a/cabal-install-solver/cabal-install-solver.cabal b/cabal-install-solver/cabal-install-solver.cabal
+--- a/cabal-install-solver/cabal-install-solver.cabal 2021-11-05 00:16:33.000000000 +0100
++++ b/cabal-install-solver/cabal-install-solver.cabal 2021-11-17 19:42:41.703460745 +0100
+@@ -103,7 +103,7 @@ library
+
+ build-depends:
+ , array >=0.4 && <0.6
+- , base >=4.10 && <4.15
++ , base >=4.10
+ , binary >=0.7.3 && <0.9
+ , bytestring >=0.10.6.0 && <0.12
+ , Cabal ^>=3.7
diff --git a/skip/cabal-stage0/linux-9.0.1.json b/skip/cabal-stage0/linux-9.0.1.json
new file mode 100644
index 0000000..99cb1cb
--- /dev/null
+++ b/skip/cabal-stage0/linux-9.0.1.json
@@ -0,0 +1 @@
+{"builtin":[{"package":"rts","version":"1.0"},{"package":"ghc-prim","version":"0.7.0"},{"package":"ghc-bignum","version":"1.0"},{"package":"base","version":"4.15.0.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.1"},{"package":"transformers","version":"0.5.6.2"},{"package":"mtl","version":"2.2.2"},{"package":"ghc-boot-th","version":"9.0.1"},{"package":"pretty","version":"1.1.3.6"},{"package":"template-haskell","version":"2.17.0.0"},{"package":"text","version":"1.2.4.1"},{"package":"parsec","version":"3.1.14.0"},{"package":"process","version":"1.6.11.0"},{"package":"stm","version":"2.5.0.0"},{"package":"exceptions","version":"0.10.4"}],"dependencies":[{"cabal_sha256":null,"flags":["-bundled-binary-generic"],"package":"Cabal","revision":null,"source":"local","src_sha256":null,"version":"3.7.0.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":"eb6758d0160d607e0c45dbd6b196f515b9a589fd4f6d2f926929dd5d56282d37","flags":[],"package":"base-orphans","revision":0,"source":"hackage","src_sha256":"20a21c4b7adb0fd844b25e196241467406a28286b021f9b7a082ab03fa8015eb","version":"0.8.6"},{"cabal_sha256":"4f6dfb2a191dd3068c2915ba96a1ab3c4b78b4b4e57186698b9ab42007bfa926","flags":[],"package":"ghc-bignum-orphans","revision":0,"source":"hackage","src_sha256":"a4c617c7b90288ba3e24c67633f99e97e11c2367686463b8884d2cd3591241db","version":"0.1.1"},{"cabal_sha256":"2d553c615bfea61a0b0ff7bc208904d009ff57dbd56f211fbae8584c12f432f9","flags":["+containers","+integer-gmp","-random-initial-seed"],"package":"hashable","revision":0,"source":"hackage","src_sha256":"a1af47889e6ddcbe137d625b7d40665930e935eb396aecbf35399862f276e57d","version":"1.4.0.0"},{"cabal_sha256":"b83dec34a53520de84c6dd3dc7aae45d22409b46eb471c478b98108215a370f0","flags":["-bench"],"package":"async","revision":1,"source":"hackage","src_sha256":"484df85be0e76c4fed9376451e48e1d0c6e97952ce79735b72d54297e7e0a725","version":"2.2.4"},{"cabal_sha256":"d8699f46b485f105eea9c7158f3d432ca578e6bbe5d68751184e9899a41d430d","flags":["-old-bytestring","-old-time"],"package":"tar","revision":4,"source":"hackage","src_sha256":"b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de","version":"0.5.1.1"},{"cabal_sha256":"433a5e076aaa8eb3e4158abae78fb409c6bd754e9af99bc2e87583d2bcd8404a","flags":["-devel"],"package":"network","revision":0,"source":"hackage","src_sha256":"f223c08e1c67b1bae4e595dfe87c4873e9f8de7d3f92d0c18e44fd1b2ab01851","version":"3.1.2.5"},{"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":"4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee","flags":[],"package":"edit-distance","revision":1,"source":"hackage","src_sha256":"3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a","version":"0.2.2.1"},{"cabal_sha256":null,"flags":["-debug-conflict-sets","-debug-expensive-assertions","-debug-tracetree"],"package":"cabal-install-solver","revision":null,"source":"local","src_sha256":null,"version":"3.7.0.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":"fb98b08de467d51f788f8bd9391f0e9ab9bd4d8dfc264296b895ffea0d822dfa","flags":["+no-donna","+test-doctests","+test-hlint","+test-properties"],"package":"ed25519","revision":3,"source":"hackage","src_sha256":"d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d","version":"0.0.5.0"},{"cabal_sha256":"2db49b6cb6632a46ec446fc51870cd0d49e0a66d1c5d2063f46ae52a100eb856","flags":["+ofd-locking"],"package":"lukko","revision":1,"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":"ae6cdda307237c0b7efeebfb0bf23ff8a26c30f5ba295dce5e4f81ef6e63fff6","flags":["+base48","+lukko","-mtl21","-old-directory","+use-network-uri"],"package":"hackage-security","revision":8,"source":"hackage","src_sha256":"9162b473af5a21c1ff32a50b972b9acf51f4c901604a22cf08a2dccac2f82f17","version":"0.6.0.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":"25c6e802dc342307e78e5e60433f5e20d03aa783b08b009a399100eb9b6ec529","flags":[],"package":"resolv","revision":3,"source":"hackage","src_sha256":"81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671","version":"0.1.2.0"},{"cabal_sha256":null,"flags":["+lukko","+native-dns"],"package":"cabal-install","revision":null,"source":"local","src_sha256":null,"version":"3.7.0.0"},{"cabal_sha256":null,"flags":["+lukko","+native-dns"],"package":"cabal-install","revision":null,"source":"local","src_sha256":null,"version":"3.7.0.0"}]} \ No newline at end of file