diff --git a/common/build-helper/haskell.sh b/common/build-helper/haskell.sh new file mode 100644 index 00000000000..9cc5fff8788 --- /dev/null +++ b/common/build-helper/haskell.sh @@ -0,0 +1 @@ +export CABAL_DIR=/home/cabal diff --git a/common/build-style/cabal.sh b/common/build-style/cabal.sh new file mode 100644 index 00000000000..83e5d0d1511 --- /dev/null +++ b/common/build-style/cabal.sh @@ -0,0 +1,66 @@ +# +# This helper is for building haskell projects using Cabal. +# + +do_configure() { + : ${cabal_cmd:=cabal} + + local _cabal_project_file="cabal.project" + + if [ -e "${FILESDIR}/${_cabal_project_file}.freeze" ]; then + cp "${FILESDIR}/${_cabal_project_file}.freeze" . + fi + + if [ -n "${cabal_index_state}" ]; then + # index-state alone is enough to fully fix a cabal build + configure_args+=" --index-state=${cabal_index_state}" + elif [ -e "${_cabal_project_file}.freeze" ]; then + # With a freeze file we have to make sure that it fixes + # the index also + if ! grep -q '^index-state:' "${_cabal_project_file}.freeze"; then + msg_error "${_cabal_project_file}.freeze is missing index-state\n" + fi + elif [ -e "${_cabal_project_file}" ]; then + if ! grep -q '^index-state:' "${_cabal_project_file}"; then + msg_error "${_cabal_project_file} is missing index-state\n" + fi + else + msg_error "cabal build not fixed, set cabal_index_state or add a freeze file to FILESDIR\n" + fi + + ${cabal_cmd} update + ${cabal_cmd} configure --prefix=/usr ${configure_args} +} + +do_build() { + : ${make_cmd:=cabal} + + if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then + make_build_args+=" --ghc-option=-latomic" + fi + + ${make_cmd} build ${make_build_target} ${makejobs} ${make_build_args} +} + +do_check() { + : ${make_cmd:=cabal} + : ${make_check_target:=test} + + ${make_check_pre} ${make_cmd} ${make_check_target} ${make_check_args} +} + +do_install() { + : ${make_cmd:=cabal} + : ${make_install_target:=all} + + if ${make_cmd} list-bin ${make_install_target} >/dev/null 2>&1; then + vbin $(${make_cmd} list-bin ${make_install_target}) + else + for name in $(${make_cmd} list-bin ${make_install_target} 2>&1 | tr -d '\n ' | grep -Eo "theexecutable'[^']+'" | tr "'" ' ' | awk '{ print $2 }'); do + local _bin=$(${make_cmd} list-bin exe:$name) + if [ -s "$_bin" ]; then + vbin "$_bin" + fi + done + fi +} diff --git a/common/environment/build-style/cabal.sh b/common/environment/build-style/cabal.sh new file mode 100644 index 00000000000..1bb7e789a2c --- /dev/null +++ b/common/environment/build-style/cabal.sh @@ -0,0 +1,2 @@ +hostmakedepends+=" cabal-install git" +build_helper+=" haskell" diff --git a/srcpkgs/cabal-install/files/linux-9.0.2.json b/srcpkgs/cabal-install/files/linux-9.0.2.json deleted file mode 100644 index f3cb6b4aeeb..00000000000 --- a/srcpkgs/cabal-install/files/linux-9.0.2.json +++ /dev/null @@ -1 +0,0 @@ -{"builtin":[{"package":"rts","version":"1.0.2"},{"package":"ghc-prim","version":"0.7.0"},{"package":"ghc-bignum","version":"1.1"},{"package":"base","version":"4.15.1.0"},{"package":"array","version":"0.5.4.0"},{"package":"deepseq","version":"1.4.5.0"},{"package":"bytestring","version":"0.10.12.1"},{"package":"containers","version":"0.6.4.1"},{"package":"binary","version":"0.8.8.0"},{"package":"filepath","version":"1.4.2.1"},{"package":"time","version":"1.9.3"},{"package":"unix","version":"2.7.2.2"},{"package":"directory","version":"1.3.6.2"},{"package":"transformers","version":"0.5.6.2"},{"package":"mtl","version":"2.2.2"},{"package":"ghc-boot-th","version":"9.0.2"},{"package":"pretty","version":"1.1.3.6"},{"package":"template-haskell","version":"2.17.0.0"},{"package":"text","version":"1.2.5.0"},{"package":"parsec","version":"3.1.14.0"},{"package":"process","version":"1.6.13.2"},{"package":"stm","version":"2.5.0.0"}],"dependencies":[{"cabal_sha256":null,"flags":["-bundled-binary-generic"],"package":"Cabal","revision":null,"source":"local","src_sha256":null,"version":"3.6.3.0"},{"cabal_sha256":"714a55fd28d3e2533bd5b49e74f604ef8e5d7b06f249c8816f6c54aed431dcf1","flags":["-optimised-mixer"],"package":"splitmix","revision":0,"source":"hackage","src_sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","version":"0.1.0.4"},{"cabal_sha256":"8bee24dc0c985a90ee78d94c61f8aed21c49633686f0f1c14c5078d818ee43a2","flags":[],"package":"random","revision":0,"source":"hackage","src_sha256":"265c768fc5f2ca53cde6a87e706b4448cad474c3deece933c103f24453661457","version":"1.2.1"},{"cabal_sha256":"3a2beeafb220f9de706568a7e4a5b3c762cc4c9f25c94d7ef795b8c2d6a691d7","flags":["+integer-gmp","-random-initial-seed"],"package":"hashable","revision":1,"source":"hackage","src_sha256":"baaad82cd4271b197016bdbe76f22d5c3d3913fe38534cec7d817db9bae19886","version":"1.3.5.0"},{"cabal_sha256":"b83dec34a53520de84c6dd3dc7aae45d22409b46eb471c478b98108215a370f0","flags":["-bench"],"package":"async","revision":1,"source":"hackage","src_sha256":"484df85be0e76c4fed9376451e48e1d0c6e97952ce79735b72d54297e7e0a725","version":"2.2.4"},{"cabal_sha256":"037d70bb091c49f68726dde920f6a003b646835a86cdcb5b5ad58ad9af3207d9","flags":[],"package":"Cabal-syntax","revision":0,"source":"hackage","src_sha256":"ca25e5fc601397565fa857f1aa477740fac7f43d659e77c4d9b1485dca239251","version":"3.6.0.0"},{"cabal_sha256":"d8699f46b485f105eea9c7158f3d432ca578e6bbe5d68751184e9899a41d430d","flags":["-old-bytestring","-old-time"],"package":"tar","revision":4,"source":"hackage","src_sha256":"b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de","version":"0.5.1.1"},{"cabal_sha256":"e3d78b13db9512aeb106e44a334ab42b7aa48d26c097299084084cb8be5c5568","flags":["-devel"],"package":"network","revision":0,"source":"hackage","src_sha256":"7f7620fef1a1af3d3d6747f510e73223a5c600e7d7fd9ace073d1222bdc63d85","version":"3.1.2.7"},{"cabal_sha256":"a16dd922947a6877defe52c4c38d1ab48ed3f85a826930f5d1a568741d619993","flags":[],"package":"th-compat","revision":0,"source":"hackage","src_sha256":"6b5059caf6714f47da92953badf2f556119877e09708c14e206b3ae98b8681c6","version":"0.1.3"},{"cabal_sha256":"a4765164ed0a2d1668446eb2e03460ce98645fbf083598c690846af79b7de10d","flags":[],"package":"network-uri","revision":0,"source":"hackage","src_sha256":"57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584","version":"2.6.4.1"},{"cabal_sha256":"6042643c15a0b43e522a6693f1e322f05000d519543a84149cb80aeffee34f71","flags":["-conduit10","-mtl1","+network-uri","-warn-as-error","-warp-tests"],"package":"HTTP","revision":1,"source":"hackage","src_sha256":"d6091c037871ac3d08d021c906206174567499d5a26a6cb804cf530cd590fe2d","version":"4000.3.16"},{"cabal_sha256":"64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a","flags":[],"package":"base16-bytestring","revision":0,"source":"hackage","src_sha256":"1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784","version":"1.0.2.0"},{"cabal_sha256":"50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8","flags":[],"package":"base64-bytestring","revision":0,"source":"hackage","src_sha256":"fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9","version":"1.2.1.0"},{"cabal_sha256":"188d0b5a0491e8b686b32d9b144c9287760ba333d2509bf3f17e3d846fbc2332","flags":["-exe","+use-cbits"],"package":"cryptohash-sha256","revision":0,"source":"hackage","src_sha256":"73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6","version":"0.11.102.1"},{"cabal_sha256":"ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42","flags":["-example"],"package":"echo","revision":0,"source":"hackage","src_sha256":"c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43","version":"0.1.4"},{"cabal_sha256":"4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee","flags":[],"package":"edit-distance","revision":1,"source":"hackage","src_sha256":"3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a","version":"0.2.2.1"},{"cabal_sha256":"24ac7b5f3d9fa3c2f70262b329f2a75f24e7fd829f88c189b388efa1bcd67eb2","flags":["+no-donna","+test-doctests","+test-hlint","+test-properties"],"package":"ed25519","revision":5,"source":"hackage","src_sha256":"d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d","version":"0.0.5.0"},{"cabal_sha256":"c084c043a40632d3cafcac50fb5eeff84d91edb070a54baa94945f1c976f97c0","flags":["+ofd-locking"],"package":"lukko","revision":2,"source":"hackage","src_sha256":"a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f","version":"0.1.1.3"},{"cabal_sha256":"262a93dbf370be59f4ee57f3b1a51b338bc2c309797daa37c14f2262ae61dae4","flags":["-bundled-c-zlib","-non-blocking-ffi","-pkg-config"],"package":"zlib","revision":1,"source":"hackage","src_sha256":"807f6bddf9cb3c517ce5757d991dde3c7e319953a22c86ee03d74534bd5abc88","version":"0.6.2.3"},{"cabal_sha256":"eb34c3e2fa39f9819293045c03e56148a7125573c1de265cdfe5d967f1d71c6e","flags":["+base48","-cabal-syntax","+lukko","-mtl21","-old-directory","+use-network-uri"],"package":"hackage-security","revision":1,"source":"hackage","src_sha256":"bf22cd16dde7d6b7130463f4d7324b64a2964d9ef3f523df97d7cb98544d64a8","version":"0.6.2.1"},{"cabal_sha256":"2561adac8ce373910948066debe090a22b336b129ba5af18c0332524d16e72ce","flags":[],"package":"regex-base","revision":0,"source":"hackage","src_sha256":"7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1","version":"0.94.0.2"},{"cabal_sha256":"b6421e5356766b0c0a78b6094ae2e3a6259b42c147b717283c03c1cb09163dca","flags":["-_regex-posix-clib"],"package":"regex-posix","revision":0,"source":"hackage","src_sha256":"c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c","version":"0.96.0.1"},{"cabal_sha256":"2088eb9368b920f80bbe4e3b03c3b8484090208f5c3b31645bd67a9ef7d26db4","flags":[],"package":"resolv","revision":4,"source":"hackage","src_sha256":"81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671","version":"0.1.2.0"},{"cabal_sha256":null,"flags":["-debug-conflict-sets","-debug-expensive-assertions","-debug-tracetree","+lukko","+native-dns"],"package":"cabal-install","revision":null,"source":"local","src_sha256":null,"version":"3.6.2.0"}]} \ No newline at end of file diff --git a/srcpkgs/cabal-install/files/linux-9.8.4.json b/srcpkgs/cabal-install/files/linux-9.8.4.json new file mode 100644 index 00000000000..fb4f814b1b6 --- /dev/null +++ b/srcpkgs/cabal-install/files/linux-9.8.4.json @@ -0,0 +1,427 @@ +{ + "builtin": [ + { + "package": "rts", + "version": "1.0.2" + }, + { + "package": "ghc-prim", + "version": "0.11.0" + }, + { + "package": "ghc-bignum", + "version": "1.3" + }, + { + "package": "base", + "version": "4.19.2.0" + }, + { + "package": "array", + "version": "0.5.8.0" + }, + { + "package": "deepseq", + "version": "1.5.1.0" + }, + { + "package": "ghc-boot-th", + "version": "9.8.4" + }, + { + "package": "pretty", + "version": "1.1.3.6" + }, + { + "package": "template-haskell", + "version": "2.21.0.0" + }, + { + "package": "bytestring", + "version": "0.12.1.0" + }, + { + "package": "containers", + "version": "0.6.8" + }, + { + "package": "binary", + "version": "0.8.9.1" + }, + { + "package": "transformers", + "version": "0.6.1.0" + }, + { + "package": "mtl", + "version": "2.3.1" + }, + { + "package": "stm", + "version": "2.5.3.1" + }, + { + "package": "exceptions", + "version": "0.10.7" + }, + { + "package": "filepath", + "version": "1.4.301.0" + }, + { + "package": "time", + "version": "1.12.2" + }, + { + "package": "unix", + "version": "2.8.6.0" + }, + { + "package": "directory", + "version": "1.3.8.5" + }, + { + "package": "text", + "version": "2.1.1" + }, + { + "package": "parsec", + "version": "3.1.17.0" + }, + { + "package": "process", + "version": "1.6.25.0" + } + ], + "dependencies": [ + { + "cabal_sha256": null, + "flags": [], + "package": "Cabal-syntax", + "revision": null, + "source": "local", + "src_sha256": null, + "version": "3.10.3.0" + }, + { + "cabal_sha256": null, + "flags": [], + "package": "Cabal", + "revision": null, + "source": "local", + "src_sha256": null, + "version": "3.10.3.0" + }, + { + "cabal_sha256": "e3a1ec8b8dd32f1d5a541679a67de60d6626487a95f20c6bc245268ae7142ab7", + "flags": [ + "-devel" + ], + "package": "network", + "revision": 0, + "source": "hackage", + "src_sha256": "68548e660632a3c09b230c33fe08cc880273372b485e65cbe7a717936de9728b", + "version": "3.2.7.0" + }, + { + "cabal_sha256": "e83d97946f84fe492762ceb3b4753b4770c78b0b70e594078700baa91a5106c2", + "flags": [], + "package": "th-compat", + "revision": 0, + "source": "hackage", + "src_sha256": "b781a0c059872bc95406d00e98f6fa7d9e81e744730f75186583cb4dcea0a4eb", + "version": "0.1.6" + }, + { + "cabal_sha256": "6fffb57373962b5651a2db8b0af732098b3bf029a7ced76a9855615de2026588", + "flags": [], + "package": "network-uri", + "revision": 1, + "source": "hackage", + "src_sha256": "9c188973126e893250b881f20e8811dca06c223c23402b06f7a1f2e995797228", + "version": "2.6.4.2" + }, + { + "cabal_sha256": "75ada03bd2d2b747319e38877a55bf8be529db4520a07d4e5ffbd24c5e850dcb", + "flags": [ + "-conduit10", + "+network-uri", + "-warn-as-error", + "-warp-tests" + ], + "package": "HTTP", + "revision": 5, + "source": "hackage", + "src_sha256": "df31d8efec775124dab856d7177ddcba31be9f9e0836ebdab03d94392f2dd453", + "version": "4000.4.1" + }, + { + "cabal_sha256": "2efc549644dd418bad537d1601fdd437c440d807265016bd993b6996c679ad2f", + "flags": [], + "package": "os-string", + "revision": 0, + "source": "hackage", + "src_sha256": "339c35fd3a290522f23de4e33528423cfd0b0a8f22946b0b9816a817b926cba0", + "version": "2.0.7" + }, + { + "cabal_sha256": "573f3ab242f75465a0d67ce9d84202650a1606575e6dbd6d31ffcf4767a9a379", + "flags": [ + "-arch-native", + "+integer-gmp", + "-random-initial-seed" + ], + "package": "hashable", + "revision": 0, + "source": "hackage", + "src_sha256": "3baee4c9027a08830d148ec524cbc0471de645e1e8426d46780ef2758df0e8da", + "version": "1.4.7.0" + }, + { + "cabal_sha256": "b7648c6165729a973d95cb328f9fd874813a81c727707e8b2552b4f03399763b", + "flags": [ + "-bench" + ], + "package": "async", + "revision": 3, + "source": "hackage", + "src_sha256": "1818473ebab9212afad2ed76297aefde5fae8b5d4404daf36939aece6a8f16f7", + "version": "2.2.5" + }, + { + "cabal_sha256": "81a105aed2ee2f5e479448e44252b24cdfacf81a5a2106aabdd217bad94b6f40", + "flags": [ + "-dev", + "-no-cmm" + ], + "package": "atomic-counter", + "revision": 0, + "source": "hackage", + "src_sha256": "ce4b63391b3c0d426cbe32af89f483222602a5b43aa5379aa720bf6f45f4cf04", + "version": "0.1.2.3" + }, + { + "cabal_sha256": "a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd", + "flags": [], + "package": "base16-bytestring", + "revision": 1, + "source": "hackage", + "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784", + "version": "1.0.2.0" + }, + { + "cabal_sha256": "45305ccf8914c66d385b518721472c7b8c858f1986945377f74f85c1e0d49803", + "flags": [], + "package": "base64-bytestring", + "revision": 1, + "source": "hackage", + "src_sha256": "fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9", + "version": "1.2.1.0" + }, + { + "cabal_sha256": "8f92088f1c51c8d4569279a07565f8aa6b534a6735615b2295d2961dec8f1783", + "flags": [ + "-optimised-mixer" + ], + "package": "splitmix", + "revision": 0, + "source": "hackage", + "src_sha256": "d678c41a603a62032cf7e5f8336bb8222c93990e4b59c8b291b7ca26c7eb12c7", + "version": "0.1.1" + }, + { + "cabal_sha256": "117541ba0a177397a3333f94870f789ef050dca31b0688a19824b2bc401b8823", + "flags": [], + "package": "random", + "revision": 0, + "source": "hackage", + "src_sha256": "e9c81926a7d1e40328f645f73592b31efc9c631589669a7f130687b9cc3051dc", + "version": "1.2.1.3" + }, + { + "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.10.3.0" + }, + { + "cabal_sha256": "0e9de2ccce261e7a5b027e842f6f47f50eb0e6059a0de98a5479f75aa8164107", + "flags": [ + "-exe", + "+use-cbits" + ], + "package": "cryptohash-sha256", + "revision": 6, + "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": "f1550ddbe3b53f1087a035667364011460896cc2b1ff328b521c05ed5973bb78", + "flags": [ + "+no-donna", + "+test-doctests", + "+test-hlint", + "+test-properties" + ], + "package": "ed25519", + "revision": 9, + "source": "hackage", + "src_sha256": "d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d", + "version": "0.0.5.0" + }, + { + "cabal_sha256": "8334a8d810e385e1dc1423dc02945daaa1f1a9ba058e5227f1a3211e4882ca28", + "flags": [ + "+ofd-locking" + ], + "package": "lukko", + "revision": 1, + "source": "hackage", + "src_sha256": "72d86f8aa625b461f4397f737346f78a1700a7ffbff55cf6375c5e18916e986d", + "version": "0.1.2" + }, + { + "cabal_sha256": "8931b9ce6e63bf6202dc0c992ae3e6f2ad8e7f4b6eb69994ac6d512c6c9c0f77", + "flags": [ + "-os-string" + ], + "package": "directory-ospath-streaming", + "revision": 0, + "source": "hackage", + "src_sha256": "1ade8fbee13db15e8d22a1ecdca54794617cabc69911b51d46a65e12f4554ef7", + "version": "0.2.2" + }, + { + "cabal_sha256": "1d68a81fa684d006b1ec73836cebe3de9a54688836915fe3e56a20389846bb4e", + "flags": [ + "-os-string" + ], + "package": "file-io", + "revision": 0, + "source": "hackage", + "src_sha256": "310a19e4c792de4d30c912bc71ff3becb40818d7c796b9999bcd0979dab87d5b", + "version": "0.1.5" + }, + { + "cabal_sha256": "a72549370449fe99e3008744ad2e43685e96bf86aa0db15898189fcbaafcd815", + "flags": [], + "package": "tar", + "revision": 1, + "source": "hackage", + "src_sha256": "7949a50004a80993000512079bc03ebcad4872414fc181f45b3883d743c0f3aa", + "version": "0.6.4.0" + }, + { + "cabal_sha256": "a72549370449fe99e3008744ad2e43685e96bf86aa0db15898189fcbaafcd815", + "flags": [], + "package": "tar", + "revision": 1, + "source": "hackage", + "src_sha256": "7949a50004a80993000512079bc03ebcad4872414fc181f45b3883d743c0f3aa", + "version": "0.6.4.0" + }, + { + "cabal_sha256": "85e64a75c0b490506a7edaa2d54950c668e66b65758bb08bb14cd31faf53a206", + "flags": [ + "-bundled-c-zlib", + "+non-blocking-ffi", + "-pkg-config" + ], + "package": "zlib", + "revision": 2, + "source": "hackage", + "src_sha256": "6edd38b6b81df8d274952aa85affa6968ae86b2231e1d429ce8bc9083e6a55bc", + "version": "0.7.1.0" + }, + { + "cabal_sha256": "f85f6f1ef55d1f91795f2c7c476db36fd7aedb55c877d47f2a4411f0151040a9", + "flags": [ + "+cabal-syntax", + "+lukko" + ], + "package": "hackage-security", + "revision": 5, + "source": "hackage", + "src_sha256": "2e4261576b3e11b9f5175392947f56a638cc1a3584b8acbb962b809d7c69db69", + "version": "0.6.2.6" + }, + { + "cabal_sha256": "d6c0c6d1136f5046207a331114ff4130e70640452096de7719bf03e3fceb7c7b", + "flags": [], + "package": "regex-base", + "revision": 0, + "source": "hackage", + "src_sha256": "e8ca2dee598c790dd1c1c4359bdd1e495d9b881f5aa1f539c22f0dd5563747bf", + "version": "0.94.0.3" + }, + { + "cabal_sha256": "faf170ca5073e8d538a7a18f727a02a96f2a36c5fd53a1696263a70ab81bc6fe", + "flags": [ + "-_regex-posix-clib" + ], + "package": "regex-posix", + "revision": 0, + "source": "hackage", + "src_sha256": "7e570460c35c5deec54d1ba46305ddb4679c7d4aae84f631dd0c61daaeaa8150", + "version": "0.96.0.2" + }, + { + "cabal_sha256": "58a8c6f17dece62891e7534c6f033e1fb1d0685e68dbe5d4fbb71256d45c6132", + "flags": [], + "package": "resolv", + "revision": 5, + "source": "hackage", + "src_sha256": "880d283df9132a7375fa28670f71e86480a4f49972256dc2a204c648274ae74b", + "version": "0.2.0.2" + }, + { + "cabal_sha256": "8bb7261bd54bd58acfcb154be6a161fb6d0d31a1852aadc8e927d2ad2d7651d1", + "flags": [], + "package": "safe-exceptions", + "revision": 1, + "source": "hackage", + "src_sha256": "3c51d8d50c9b60ff8bf94f942fd92e3bea9e62c5afa778dfc9f707b79da41ef6", + "version": "0.1.7.4" + }, + { + "cabal_sha256": null, + "flags": [ + "+lukko", + "+native-dns" + ], + "package": "cabal-install", + "revision": null, + "source": "local", + "src_sha256": null, + "version": "3.10.3.0" + } + ] +} diff --git a/srcpkgs/cabal-install/template b/srcpkgs/cabal-install/template index 0499f5c4c5c..52159f23444 100644 --- a/srcpkgs/cabal-install/template +++ b/srcpkgs/cabal-install/template @@ -1,34 +1,50 @@ # Template file for 'cabal-install' pkgname=cabal-install -version=3.6.3.0 -revision=2 -hostmakedepends="ghc curl tar which" -makedepends="gmp-devel libffi-devel zlib-devel python3" +version=3.10.3.0 +revision=1 +build_helper="haskell" +hostmakedepends="python3 ghc curl tar" +makedepends="zlib-devel" depends="ghc" short_desc="Command-line interface for Cabal and Hackage" maintainer="Orphaned " license="BSD-3-Clause" -homepage="https://hackage.haskell.org/package/cabal-install" -distfiles="https://github.com/haskell/cabal/archive/Cabal-v${version}.tar.gz" -checksum=dea086acad6d9fe5fe22d838b95b4e988022e8519f38d41609119ea32bfb7466 +homepage="https://www.haskell.org/cabal/" +distfiles="https://github.com/haskell/cabal/archive/refs/tags/cabal-install-v${version}.tar.gz" +checksum=075fba81fca61f6957dae3a542a3213415682dd9767f6ccdf3f9059f2cd0f156 nopie_files="/usr/bin/cabal" nocross=yes +# Keep in sync with ghc +_ghc_ver=9.8.4 + post_extract() { - cp "${FILESDIR}/linux-9.0.2.json" bootstrap/ + if [ -e ${FILESDIR}/linux-${_ghc_ver}.json ]; then + cp "${FILESDIR}/linux-${_ghc_ver}.json" bootstrap/ + fi } -post_patch() { - case "${XBPS_TARGET_MACHINE}" in - i686*) - # https://github.com/haskell/cabal/issues/7313 - vsed -i -e 's/+ofd-locking/-ofd-locking/' bootstrap/linux-9.0.2.json ;; - esac +pre_build() { + if [ -e bootstrap/linux-${_ghc_ver}.json ]; then + if [ "$XBPS_TARGET_WORDSIZE" = 32 ]; then + # https://github.com/haskell/cabal/issues/7313 + sed -i 's/+ofd-locking/-ofd-locking/g' bootstrap/linux-${_ghc_ver}.json + fi + else + # To generate a bootstrap plan for a new ghc version ensure a + # cabal binary is available, run this, then move the plan to + # FILESDIR + cabal update + make bootstrap-json-${_ghc_ver} + msg_normal "Please install bootstrap/linux-${_ghc_ver}.json in ${FILESDIR}\n" + exit 1 + fi } do_build() { - PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-9.0.2.json + PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-${_ghc_ver}.json } + do_install() { vbin _build/bin/cabal PREFIX=$PWD _build/bin/cabal man --raw > cabal.1