diff --git a/Cabal-syntax/Cabal-syntax.cabal b/Cabal-syntax/Cabal-syntax.cabal index ab9170e18111feb203b57dc44f785b1fb0a570c5..a915c48db94105d4e782db84e9bbec57ac0b60a8 100644 --- a/Cabal-syntax/Cabal-syntax.cabal +++ b/Cabal-syntax/Cabal-syntax.cabal @@ -58,6 +58,8 @@ library if impl(ghc >= 8.0) && impl(ghc < 8.8) ghc-options: -Wnoncanonical-monadfail-instances + build-tool-depends: alex:alex + exposed-modules: Distribution.Backpack Distribution.CabalSpecVersion diff --git a/templates/Lexer.x b/Cabal-syntax/src/Distribution/Fields/Lexer.x similarity index 95% rename from templates/Lexer.x rename to Cabal-syntax/src/Distribution/Fields/Lexer.x index da6a029f97ef09d648b57ff4ad5eac1a74f40cd5..4fc501d51863387efe3f3af3f7b4f3fd610e1e3c 100644 --- a/templates/Lexer.x +++ b/Cabal-syntax/src/Distribution/Fields/Lexer.x @@ -19,18 +19,6 @@ module Distribution.Fields.Lexer ,bol_section, in_section, in_field_layout, in_field_braces ,mkLexState) where --- [Note: bootstrapping parsec parser] --- --- We manually produce the `Lexer.hs` file from `boot/Lexer.x` (make lexer) --- because bootstrapping cabal-install would be otherwise tricky. --- Alex is (atm) tricky package to build, cabal-install has some magic --- to move bundled generated files in place, so rather we don't depend --- on it before we can build it ourselves. --- Therefore there is one thing less to worry in bootstrap.sh, which is a win. --- --- See also https://github.com/haskell/cabal/issues/4633 --- - import Prelude () import qualified Prelude as Prelude import Distribution.Compat.Prelude @@ -53,6 +41,8 @@ import qualified Data.Text.Encoding.Error as T } -- Various character classes +%encoding "latin1" + $space = \ -- single space char $ctlchar = [\x0-\x1f \x7f] $printable = \x0-\xff # $ctlchar -- so no \n \r diff --git a/Makefile b/Makefile index 8f35c847af67ce3577840cab12cab70fde47810e..3ca0bf58fb466296d2caa91bd1b7d9ea9e5fabfd 100644 --- a/Makefile +++ b/Makefile @@ -25,19 +25,6 @@ style-modified: ## Run the code styler on modified files @git ls-files --modified Cabal Cabal-syntax cabal-install \ | grep '.hs$$' | xargs -P $(PROCS) -I {} fourmolu -q -i {} -# source generation: Lexer - -LEXER_HS:=Cabal-syntax/src/Distribution/Fields/Lexer.hs - -lexer : $(LEXER_HS) - -$(LEXER_HS) : templates/Lexer.x - alex --latin1 --ghc -o $@ $^ - @rm -f Lexer.tmp - echo '{- FOURMOLU_DISABLE -}' >> Lexer.tmp - cat -s $@ >> Lexer.tmp - mv Lexer.tmp $@ - # source generation: SPDX SPDX_LICENSE_HS:=Cabal-syntax/src/Distribution/SPDX/LicenseId.hs diff --git a/bootstrap/bootstrap.py b/bootstrap/bootstrap.py index 10d8dfe5717689c74bc0b2cb33e79174c742c2be..cf2ee03b44283c64cabef262c93e8515087683e8 100755 --- a/bootstrap/bootstrap.py +++ b/bootstrap/bootstrap.py @@ -64,6 +64,7 @@ BootstrapDep = NamedTuple('BootstrapDep', [ ('revision', Optional[int]), ('cabal_sha256', Optional[SHA256Hash]), ('flags', List[str]), + ('component', Optional[str]) ]) BootstrapInfo = NamedTuple('BootstrapInfo', [ @@ -189,9 +190,9 @@ def install_dep(dep: BootstrapDep, ghc: Compiler) -> None: sdist_dir = resolve_dep(dep) - install_sdist(dist_dir, sdist_dir, ghc, dep.flags) + install_sdist(dist_dir, sdist_dir, ghc, dep.flags, dep.component) -def install_sdist(dist_dir: Path, sdist_dir: Path, ghc: Compiler, flags: List[str]): +def install_sdist(dist_dir: Path, sdist_dir: Path, ghc: Compiler, flags: List[str], component): prefix = PSEUDOSTORE.resolve() flags_option = ' '.join(flags) setup_dist_dir = dist_dir / 'setup' @@ -205,10 +206,12 @@ def install_sdist(dist_dir: Path, sdist_dir: Path, ghc: Compiler, flags: List[st f'--package-db={PKG_DB.resolve()}', f'--prefix={prefix}', f'--bindir={BINDIR.resolve()}', + f'--extra-prog-path={BINDIR.resolve()}', f'--with-compiler={ghc.ghc_path}', f'--with-hc-pkg={ghc.ghc_pkg_path}', f'--with-hsc2hs={ghc.hsc2hs_path}', f'--flags={flags_option}', + f'{component or ""}' ] def check_call(args: List[str]) -> None: diff --git a/bootstrap/cabal.project b/bootstrap/cabal.project index 8d1ac11b28e9a470af300c203abb96a20c30f278..d1eb5750c9d627ca3580c609256d2bcf30c94bf0 100644 --- a/bootstrap/cabal.project +++ b/bootstrap/cabal.project @@ -3,6 +3,3 @@ packages: . optimization: False - -allow-newer: - cabal-install-parsers:Cabal-syntax diff --git a/bootstrap/linux-8.10.7.json b/bootstrap/linux-8.10.7.json index 24dc7fcf5e6d37bb246469274fcef1786653082d..4ef250fd0c26fb5c1eb92fc7de648ddaf5939a77 100644 --- a/bootstrap/linux-8.10.7.json +++ b/bootstrap/linux-8.10.7.json @@ -24,6 +24,10 @@ "package": "deepseq", "version": "1.4.4.0" }, + { + "package": "containers", + "version": "0.6.5.1" + }, { "package": "ghc-boot-th", "version": "8.10.7" @@ -36,10 +40,6 @@ "package": "template-haskell", "version": "2.16.0.0" }, - { - "package": "containers", - "version": "0.6.5.1" - }, { "package": "transformers", "version": "0.5.6.2" @@ -63,45 +63,40 @@ ], "dependencies": [ { - "cabal_sha256": "55390b63bbd7846aab6b16b7b255cf5108a3a422798a1e9a3b674eb0c68ac20c", + "cabal_sha256": "458d4794a5ced371a844e325fe539dd5fee8fe41f78b6f00e6c70920b7dd18e3", + "component": "lib:bytestring", "flags": [], "package": "bytestring", "revision": 0, "source": "hackage", - "src_sha256": "491aaef7625c693a06c26ae7f097caf23d9e3f9cae14af5ab17e71abb39576d3", - "version": "0.11.4.0" + "src_sha256": "76193d39b66197107f452184597a4e458194c64731efbba1e9605550c732f7f4", + "version": "0.11.5.0" }, { - "cabal_sha256": "81f468c1c75fd6535152ab69b2d32ac6cfcc03e345267b069abe4da56ec95801", - "flags": [], - "package": "binary", - "revision": 0, - "source": "hackage", - "src_sha256": "ac21ca63452dfc9b0bcab87c57699c531d87f7a9bcb6230ca46fba1b7faeebc0", - "version": "0.8.9.1" - }, - { - "cabal_sha256": "ab6e3330c42817b0effb14cae9c60d5cdc41d61f7354d04bc529ed031113f27c", + "cabal_sha256": "2de84756d3907308230e34fcc7c1917a73f218f6d53838618b7d5b95dd33e2c3", + "component": "lib:filepath", "flags": [ "-cpphs" ], "package": "filepath", "revision": 0, "source": "hackage", - "src_sha256": "ed1d11173f5052461cd1df58b5ef4abbfa1803ad2b237da7ddb7c7d64e017de2", - "version": "1.4.100.3" + "src_sha256": "82876250347c2fdf0f9de5448ce44f02539f37951b671d9a30719a6c4f96e9ad", + "version": "1.4.100.4" }, { - "cabal_sha256": "26eeda14432a2fcc6049045068ecf59525ffff9196616a642b5ab2326a003692", + "cabal_sha256": "91cbc951a742fc2c95d5902be38fcf1b859c2891241bc353ff16154a8f7c35ae", + "component": "lib:unix", "flags": [], "package": "unix", "revision": 0, "source": "hackage", - "src_sha256": "5e59d9ca0f8e505d2203af7dba17c67275621fbcd4ed8fcbdd59e80df4d79a7d", - "version": "2.8.1.0" + "src_sha256": "cc287659427c80f3598c199387ba7eb7d4cc3270cbb31f75e2f677e879f26384", + "version": "2.8.1.1" }, { "cabal_sha256": "e384a4831b0ac0f8908a1d99d14ce44bf9c5fe2092eec5b2c47ea072d477a493", + "component": "lib:directory", "flags": [], "package": "directory", "revision": 0, @@ -110,19 +105,41 @@ "version": "1.3.8.1" }, { - "cabal_sha256": "d495b2a2a53da7e66163477a5837d2109074f8818fc938739b9ecf27d506050a", + "cabal_sha256": "3c9e1e6b4f2f956623375dd15b904144dd3183b28f1ce1afcce11192f6d868dd", + "component": "exe:alex", + "flags": [], + "package": "alex", + "revision": 0, + "source": "hackage", + "src_sha256": "7a1cd4e21399c40ea9372d1c03bf38698944b8437ce95cf27d1a7c262babe38e", + "version": "3.4.0.0" + }, + { + "cabal_sha256": "81f468c1c75fd6535152ab69b2d32ac6cfcc03e345267b069abe4da56ec95801", + "component": "lib:binary", + "flags": [], + "package": "binary", + "revision": 0, + "source": "hackage", + "src_sha256": "ac21ca63452dfc9b0bcab87c57699c531d87f7a9bcb6230ca46fba1b7faeebc0", + "version": "0.8.9.1" + }, + { + "cabal_sha256": "71b5fa8c64d3c1fd0a08f993463220867b08290a2256e94b0952bf0e8f5a45cc", + "component": "lib:text", "flags": [ "-developer", "+simdutf" ], "package": "text", - "revision": 0, + "revision": 1, "source": "hackage", "src_sha256": "c735be650a898606ce9f2c8642bc6ac6123eea82871d5e90f92797801f59efad", "version": "2.0.2" }, { "cabal_sha256": "5769242043b01bf759b07b7efedcb19607837ee79015fcddde34645664136aed", + "component": "lib:parsec", "flags": [], "package": "parsec", "revision": 0, @@ -132,6 +149,7 @@ }, { "cabal_sha256": null, + "component": "lib:Cabal-syntax", "flags": [], "package": "Cabal-syntax", "revision": null, @@ -141,6 +159,7 @@ }, { "cabal_sha256": "49d8a7f372d35363011591b253cae4c8db8b9ec594590448e20b7bed7acaee98", + "component": "lib:process", "flags": [], "package": "process", "revision": 0, @@ -150,6 +169,7 @@ }, { "cabal_sha256": null, + "component": "lib:Cabal", "flags": [], "package": "Cabal", "revision": null, @@ -158,18 +178,32 @@ "version": "3.11.0.0" }, { - "cabal_sha256": "29b28d2e19ae9f5ff92cea4ab8d2e185408ee5de73b4127f7b485a904c9a8b15", + "cabal_sha256": "115b8c34b9f83603cfd9eb8b1e2d7ac520da0a4a43d96be435f06ce01a7bc95e", + "component": "exe:hsc2hs", + "flags": [ + "-in-ghc-tree" + ], + "package": "hsc2hs", + "revision": 0, + "source": "hackage", + "src_sha256": "c95b10ce0b2c881480e35118d738dcc9cefc435ec72baa0031af81d0d4d3bc0a", + "version": "0.68.9" + }, + { + "cabal_sha256": "e152cdb03243afb52bbc740cfbe96905ca298a6f6342f0c47b3f2e227ff19def", + "component": "lib:network", "flags": [ "-devel" ], "package": "network", - "revision": 0, + "revision": 1, "source": "hackage", - "src_sha256": "fde2d4b065f1984c76755004c64a29ae9ec52c8bf74f2485d805ef577e7c7822", - "version": "3.1.2.8" + "src_sha256": "b452a2afac95d9207357eb3820c719c7c7d27871ef4b6ed7bfcd03a036b9158e", + "version": "3.1.4.0" }, { "cabal_sha256": "e5ae7c083ef3a22248558f8451669bb1c55ea8090f5908b86b9033743c161730", + "component": "lib:th-compat", "flags": [], "package": "th-compat", "revision": 2, @@ -179,6 +213,7 @@ }, { "cabal_sha256": "1fde59abf5d82a9666b4415bc2b2e9e33f6c1309074fda12d50410c7dbd95f3b", + "component": "lib:network-uri", "flags": [], "package": "network-uri", "revision": 0, @@ -187,7 +222,8 @@ "version": "2.6.4.2" }, { - "cabal_sha256": "b878d575c470bd1f72d37af6654d924ab2b9489d88de8a71bd74d9d5d726c013", + "cabal_sha256": "d9220cc1b8c1f287248d650910710b96e62e54530772e3bcd19dbdec6547f8ae", + "component": "lib:HTTP", "flags": [ "-conduit10", "+network-uri", @@ -195,13 +231,14 @@ "-warp-tests" ], "package": "HTTP", - "revision": 1, + "revision": 2, "source": "hackage", "src_sha256": "df31d8efec775124dab856d7177ddcba31be9f9e0836ebdab03d94392f2dd453", "version": "4000.4.1" }, { "cabal_sha256": "0bdd3486d3a1bcbed0513b46af4a13ca74b395313fa5b6e0068d6b7413b76a04", + "component": "lib:base-orphans", "flags": [], "package": "base-orphans", "revision": 0, @@ -211,6 +248,7 @@ }, { "cabal_sha256": "2ef1bd3511e82ba56f7f23cd793dd2da84338a1e7c2cbea5b151417afe3baada", + "component": "lib:data-array-byte", "flags": [], "package": "data-array-byte", "revision": 1, @@ -220,6 +258,7 @@ }, { "cabal_sha256": "585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a", + "component": "lib:hashable", "flags": [ "+integer-gmp", "-random-initial-seed" @@ -232,6 +271,7 @@ }, { "cabal_sha256": "46367dc0c8326dcbeb7b93f200b567491c2f6029bccf822b8bb26ee660397e08", + "component": "lib:async", "flags": [ "-bench" ], @@ -243,6 +283,7 @@ }, { "cabal_sha256": "64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a", + "component": "lib:base16-bytestring", "flags": [], "package": "base16-bytestring", "revision": 0, @@ -251,16 +292,18 @@ "version": "1.0.2.0" }, { - "cabal_sha256": "50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8", + "cabal_sha256": "45305ccf8914c66d385b518721472c7b8c858f1986945377f74f85c1e0d49803", + "component": "lib:base64-bytestring", "flags": [], "package": "base64-bytestring", - "revision": 0, + "revision": 1, "source": "hackage", "src_sha256": "fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9", "version": "1.2.1.0" }, { "cabal_sha256": "db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e", + "component": "lib:splitmix", "flags": [ "-optimised-mixer" ], @@ -272,6 +315,7 @@ }, { "cabal_sha256": "dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9", + "component": "lib:random", "flags": [], "package": "random", "revision": 0, @@ -281,6 +325,7 @@ }, { "cabal_sha256": "4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee", + "component": "lib:edit-distance", "flags": [], "package": "edit-distance", "revision": 1, @@ -290,6 +335,7 @@ }, { "cabal_sha256": null, + "component": "lib:cabal-install-solver", "flags": [ "-debug-conflict-sets", "-debug-expensive-assertions", @@ -302,19 +348,21 @@ "version": "3.11.0.0" }, { - "cabal_sha256": "facd0c04925ef925ec05243471fd16055229fdf51f64db1a1049de0cc6c6dfc3", + "cabal_sha256": "72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc", + "component": "lib:cryptohash-sha256", "flags": [ "-exe", "+use-cbits" ], "package": "cryptohash-sha256", - "revision": 1, + "revision": 2, "source": "hackage", "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6", "version": "0.11.102.1" }, { "cabal_sha256": "ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42", + "component": "lib:echo", "flags": [ "-example" ], @@ -325,7 +373,8 @@ "version": "0.1.4" }, { - "cabal_sha256": "885c9e2410e5d91a08b199897df0867fecedf818216d7329a2d43a512833dd63", + "cabal_sha256": "3db04d7c18b9e68ba5eef3fa7eeca05e1e248958dd182290c8e6b010c81ef73e", + "component": "lib:ed25519", "flags": [ "+no-donna", "+test-doctests", @@ -333,49 +382,53 @@ "+test-properties" ], "package": "ed25519", - "revision": 6, + "revision": 7, "source": "hackage", "src_sha256": "d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d", "version": "0.0.5.0" }, { - "cabal_sha256": "efd4c08c4df1ac3f423858a834c0e3b5b4909febda66a901d12a8e1d57bddaa8", + "cabal_sha256": "9ab54ee4f80bbd8a3fddd639ea142b7039ee2deb27f7df031a93de1819e34146", + "component": "lib:lukko", "flags": [ "+ofd-locking" ], "package": "lukko", - "revision": 3, + "revision": 4, "source": "hackage", "src_sha256": "a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f", "version": "0.1.1.3" }, { - "cabal_sha256": "bc14969ea4adfec6eee20264decf4a07c4002b38b2aa802d58d86b1a2cf7b895", + "cabal_sha256": "63dbcb0f507273a8331363e4c13a1fe91f4ea0c495883cf65f314629582a2630", + "component": "lib:tar", "flags": [ "-old-bytestring", "-old-time" ], "package": "tar", - "revision": 5, + "revision": 6, "source": "hackage", "src_sha256": "b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de", "version": "0.5.1.1" }, { - "cabal_sha256": "9adce39e4ca0b7a87d45df0a243134816c57059a08e28cff5469c98ae1f54dfc", + "cabal_sha256": "386dd93bc0352bf6ad5c6bca4dee0442b52d95b4c34e85901064f3eb05c81731", + "component": "lib:zlib", "flags": [ "-bundled-c-zlib", "-non-blocking-ffi", "-pkg-config" ], "package": "zlib", - "revision": 1, + "revision": 2, "source": "hackage", "src_sha256": "9eaa989ad4534438b5beb51c1d3a4c8f6a088fdff0b259a5394fbf39aaee04da", "version": "0.6.3.0" }, { - "cabal_sha256": "18405474813b37ddfc27778c88c549f444661432224999068417dfab3471281e", + "cabal_sha256": "2e5893334ee8967a990349a04953331b28e83bebd64d4f7cb46b71603d183d0c", + "component": "lib:hackage-security", "flags": [ "+base48", "+cabal-syntax", @@ -385,60 +438,79 @@ "+use-network-uri" ], "package": "hackage-security", - "revision": 2, + "revision": 5, "source": "hackage", "src_sha256": "52ee0576971955571d846b8e6c09638f89f4f7881f4a95173e44ccc0d856a066", "version": "0.6.2.3" }, { - "cabal_sha256": "4ff4425c710cddf440dfbac6cd52310bb6b23e17902390ff71c9fc7eaafc4fcc", + "cabal_sha256": "3a76c313f9f75e8e0b3c103c1bff5bbaf754da30cbddedc1d5b7061d001030e0", + "component": "lib:regex-base", "flags": [], "package": "regex-base", - "revision": 1, + "revision": 2, "source": "hackage", "src_sha256": "7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1", "version": "0.94.0.2" }, { - "cabal_sha256": "9dbba4b65a3bb6975d9740814be5593c6b2d2d6a0b3febc8ec940edb9a9bbdf4", + "cabal_sha256": "d479ca2cc6274c15801169f83dae883c9b62b78af3c7b30ed3fbd4b4612156b8", + "component": "lib:regex-posix", "flags": [ "-_regex-posix-clib" ], "package": "regex-posix", - "revision": 1, + "revision": 2, "source": "hackage", "src_sha256": "c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c", "version": "0.96.0.1" }, { - "cabal_sha256": "61e2d98ff634b8b4b3db467772420c0f9c79c2da9ddf3d2daeb2af2417f2c535", + "cabal_sha256": "a42b4a473478db92f4728f755403db232b55445e3091a957be073fc8e84e5d46", + "component": "lib:resolv", "flags": [], "package": "resolv", - "revision": 5, + "revision": 1, "source": "hackage", - "src_sha256": "81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671", - "version": "0.1.2.0" + "src_sha256": "880d283df9132a7375fa28670f71e86480a4f49972256dc2a204c648274ae74b", + "version": "0.2.0.2" }, { - "cabal_sha256": "6e9b1b233af80cc0aa17ea858d2641ba146fb11cbcc5970a52649e89d77282e2", + "cabal_sha256": "f4aad0eca90044cb1eba53b84f75d5fa142d25d695117730bf31178d409c4fe0", + "component": "lib:safe-exceptions", "flags": [], "package": "safe-exceptions", "revision": 0, "source": "hackage", - "src_sha256": "91ce28d8f8a6efd31788d4827ed5cdcb9a546ad4053a86c56f7947c66a30b5bf", - "version": "0.1.7.3" + "src_sha256": "3c51d8d50c9b60ff8bf94f942fd92e3bea9e62c5afa778dfc9f707b79da41ef6", + "version": "0.1.7.4" }, { - "cabal_sha256": "868694b09361e7c6756542bcdcfba68a9b8b93410c6798709e475abd3751afe7", + "cabal_sha256": "8ed6242cab5b0e1a8c654424275ac178035d108dfe4d651053947790fcf83017", + "component": "lib:semaphore-compat", "flags": [], "package": "semaphore-compat", - "revision": 0, + "revision": 1, "source": "hackage", "src_sha256": "1c6e6fab021c2ccee5d86112fb1c0bd016d15e0cf70c489dae5fb5ec156ed9e2", "version": "1.0.0" }, { "cabal_sha256": null, + "component": "lib:cabal-install", + "flags": [ + "+lukko", + "+native-dns" + ], + "package": "cabal-install", + "revision": null, + "source": "local", + "src_sha256": null, + "version": "3.11.0.0" + }, + { + "cabal_sha256": null, + "component": "exe:cabal", "flags": [ "+lukko", "+native-dns" diff --git a/bootstrap/linux-9.0.2.json b/bootstrap/linux-9.0.2.json index 5700325f05cf8e98da9efeb5fbcb4ab703c49f07..36613ac64ea9f2aeff86ebbf262f00a6ce2e9d75 100644 --- a/bootstrap/linux-9.0.2.json +++ b/bootstrap/linux-9.0.2.json @@ -24,6 +24,10 @@ "package": "deepseq", "version": "1.4.5.0" }, + { + "package": "containers", + "version": "0.6.4.1" + }, { "package": "ghc-boot-th", "version": "9.0.2" @@ -36,10 +40,6 @@ "package": "template-haskell", "version": "2.17.0.0" }, - { - "package": "containers", - "version": "0.6.4.1" - }, { "package": "transformers", "version": "0.5.6.2" @@ -63,45 +63,40 @@ ], "dependencies": [ { - "cabal_sha256": "55390b63bbd7846aab6b16b7b255cf5108a3a422798a1e9a3b674eb0c68ac20c", + "cabal_sha256": "458d4794a5ced371a844e325fe539dd5fee8fe41f78b6f00e6c70920b7dd18e3", + "component": "lib:bytestring", "flags": [], "package": "bytestring", "revision": 0, "source": "hackage", - "src_sha256": "491aaef7625c693a06c26ae7f097caf23d9e3f9cae14af5ab17e71abb39576d3", - "version": "0.11.4.0" + "src_sha256": "76193d39b66197107f452184597a4e458194c64731efbba1e9605550c732f7f4", + "version": "0.11.5.0" }, { - "cabal_sha256": "81f468c1c75fd6535152ab69b2d32ac6cfcc03e345267b069abe4da56ec95801", - "flags": [], - "package": "binary", - "revision": 0, - "source": "hackage", - "src_sha256": "ac21ca63452dfc9b0bcab87c57699c531d87f7a9bcb6230ca46fba1b7faeebc0", - "version": "0.8.9.1" - }, - { - "cabal_sha256": "ab6e3330c42817b0effb14cae9c60d5cdc41d61f7354d04bc529ed031113f27c", + "cabal_sha256": "2de84756d3907308230e34fcc7c1917a73f218f6d53838618b7d5b95dd33e2c3", + "component": "lib:filepath", "flags": [ "-cpphs" ], "package": "filepath", "revision": 0, "source": "hackage", - "src_sha256": "ed1d11173f5052461cd1df58b5ef4abbfa1803ad2b237da7ddb7c7d64e017de2", - "version": "1.4.100.3" + "src_sha256": "82876250347c2fdf0f9de5448ce44f02539f37951b671d9a30719a6c4f96e9ad", + "version": "1.4.100.4" }, { - "cabal_sha256": "26eeda14432a2fcc6049045068ecf59525ffff9196616a642b5ab2326a003692", + "cabal_sha256": "91cbc951a742fc2c95d5902be38fcf1b859c2891241bc353ff16154a8f7c35ae", + "component": "lib:unix", "flags": [], "package": "unix", "revision": 0, "source": "hackage", - "src_sha256": "5e59d9ca0f8e505d2203af7dba17c67275621fbcd4ed8fcbdd59e80df4d79a7d", - "version": "2.8.1.0" + "src_sha256": "cc287659427c80f3598c199387ba7eb7d4cc3270cbb31f75e2f677e879f26384", + "version": "2.8.1.1" }, { "cabal_sha256": "e384a4831b0ac0f8908a1d99d14ce44bf9c5fe2092eec5b2c47ea072d477a493", + "component": "lib:directory", "flags": [], "package": "directory", "revision": 0, @@ -110,19 +105,41 @@ "version": "1.3.8.1" }, { - "cabal_sha256": "d495b2a2a53da7e66163477a5837d2109074f8818fc938739b9ecf27d506050a", + "cabal_sha256": "3c9e1e6b4f2f956623375dd15b904144dd3183b28f1ce1afcce11192f6d868dd", + "component": "exe:alex", + "flags": [], + "package": "alex", + "revision": 0, + "source": "hackage", + "src_sha256": "7a1cd4e21399c40ea9372d1c03bf38698944b8437ce95cf27d1a7c262babe38e", + "version": "3.4.0.0" + }, + { + "cabal_sha256": "81f468c1c75fd6535152ab69b2d32ac6cfcc03e345267b069abe4da56ec95801", + "component": "lib:binary", + "flags": [], + "package": "binary", + "revision": 0, + "source": "hackage", + "src_sha256": "ac21ca63452dfc9b0bcab87c57699c531d87f7a9bcb6230ca46fba1b7faeebc0", + "version": "0.8.9.1" + }, + { + "cabal_sha256": "71b5fa8c64d3c1fd0a08f993463220867b08290a2256e94b0952bf0e8f5a45cc", + "component": "lib:text", "flags": [ "-developer", "+simdutf" ], "package": "text", - "revision": 0, + "revision": 1, "source": "hackage", "src_sha256": "c735be650a898606ce9f2c8642bc6ac6123eea82871d5e90f92797801f59efad", "version": "2.0.2" }, { "cabal_sha256": "5769242043b01bf759b07b7efedcb19607837ee79015fcddde34645664136aed", + "component": "lib:parsec", "flags": [], "package": "parsec", "revision": 0, @@ -132,6 +149,7 @@ }, { "cabal_sha256": null, + "component": "lib:Cabal-syntax", "flags": [], "package": "Cabal-syntax", "revision": null, @@ -141,6 +159,7 @@ }, { "cabal_sha256": "49d8a7f372d35363011591b253cae4c8db8b9ec594590448e20b7bed7acaee98", + "component": "lib:process", "flags": [], "package": "process", "revision": 0, @@ -150,6 +169,7 @@ }, { "cabal_sha256": null, + "component": "lib:Cabal", "flags": [], "package": "Cabal", "revision": null, @@ -158,18 +178,32 @@ "version": "3.11.0.0" }, { - "cabal_sha256": "29b28d2e19ae9f5ff92cea4ab8d2e185408ee5de73b4127f7b485a904c9a8b15", + "cabal_sha256": "115b8c34b9f83603cfd9eb8b1e2d7ac520da0a4a43d96be435f06ce01a7bc95e", + "component": "exe:hsc2hs", + "flags": [ + "-in-ghc-tree" + ], + "package": "hsc2hs", + "revision": 0, + "source": "hackage", + "src_sha256": "c95b10ce0b2c881480e35118d738dcc9cefc435ec72baa0031af81d0d4d3bc0a", + "version": "0.68.9" + }, + { + "cabal_sha256": "e152cdb03243afb52bbc740cfbe96905ca298a6f6342f0c47b3f2e227ff19def", + "component": "lib:network", "flags": [ "-devel" ], "package": "network", - "revision": 0, + "revision": 1, "source": "hackage", - "src_sha256": "fde2d4b065f1984c76755004c64a29ae9ec52c8bf74f2485d805ef577e7c7822", - "version": "3.1.2.8" + "src_sha256": "b452a2afac95d9207357eb3820c719c7c7d27871ef4b6ed7bfcd03a036b9158e", + "version": "3.1.4.0" }, { "cabal_sha256": "e5ae7c083ef3a22248558f8451669bb1c55ea8090f5908b86b9033743c161730", + "component": "lib:th-compat", "flags": [], "package": "th-compat", "revision": 2, @@ -179,6 +213,7 @@ }, { "cabal_sha256": "1fde59abf5d82a9666b4415bc2b2e9e33f6c1309074fda12d50410c7dbd95f3b", + "component": "lib:network-uri", "flags": [], "package": "network-uri", "revision": 0, @@ -187,7 +222,8 @@ "version": "2.6.4.2" }, { - "cabal_sha256": "b878d575c470bd1f72d37af6654d924ab2b9489d88de8a71bd74d9d5d726c013", + "cabal_sha256": "d9220cc1b8c1f287248d650910710b96e62e54530772e3bcd19dbdec6547f8ae", + "component": "lib:HTTP", "flags": [ "-conduit10", "+network-uri", @@ -195,13 +231,14 @@ "-warp-tests" ], "package": "HTTP", - "revision": 1, + "revision": 2, "source": "hackage", "src_sha256": "df31d8efec775124dab856d7177ddcba31be9f9e0836ebdab03d94392f2dd453", "version": "4000.4.1" }, { "cabal_sha256": "0bdd3486d3a1bcbed0513b46af4a13ca74b395313fa5b6e0068d6b7413b76a04", + "component": "lib:base-orphans", "flags": [], "package": "base-orphans", "revision": 0, @@ -211,6 +248,7 @@ }, { "cabal_sha256": "2ef1bd3511e82ba56f7f23cd793dd2da84338a1e7c2cbea5b151417afe3baada", + "component": "lib:data-array-byte", "flags": [], "package": "data-array-byte", "revision": 1, @@ -220,6 +258,7 @@ }, { "cabal_sha256": "585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a", + "component": "lib:hashable", "flags": [ "+integer-gmp", "-random-initial-seed" @@ -232,6 +271,7 @@ }, { "cabal_sha256": "46367dc0c8326dcbeb7b93f200b567491c2f6029bccf822b8bb26ee660397e08", + "component": "lib:async", "flags": [ "-bench" ], @@ -243,6 +283,7 @@ }, { "cabal_sha256": "64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a", + "component": "lib:base16-bytestring", "flags": [], "package": "base16-bytestring", "revision": 0, @@ -251,16 +292,18 @@ "version": "1.0.2.0" }, { - "cabal_sha256": "50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8", + "cabal_sha256": "45305ccf8914c66d385b518721472c7b8c858f1986945377f74f85c1e0d49803", + "component": "lib:base64-bytestring", "flags": [], "package": "base64-bytestring", - "revision": 0, + "revision": 1, "source": "hackage", "src_sha256": "fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9", "version": "1.2.1.0" }, { "cabal_sha256": "db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e", + "component": "lib:splitmix", "flags": [ "-optimised-mixer" ], @@ -272,6 +315,7 @@ }, { "cabal_sha256": "dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9", + "component": "lib:random", "flags": [], "package": "random", "revision": 0, @@ -281,6 +325,7 @@ }, { "cabal_sha256": "4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee", + "component": "lib:edit-distance", "flags": [], "package": "edit-distance", "revision": 1, @@ -290,6 +335,7 @@ }, { "cabal_sha256": null, + "component": "lib:cabal-install-solver", "flags": [ "-debug-conflict-sets", "-debug-expensive-assertions", @@ -302,19 +348,21 @@ "version": "3.11.0.0" }, { - "cabal_sha256": "facd0c04925ef925ec05243471fd16055229fdf51f64db1a1049de0cc6c6dfc3", + "cabal_sha256": "72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc", + "component": "lib:cryptohash-sha256", "flags": [ "-exe", "+use-cbits" ], "package": "cryptohash-sha256", - "revision": 1, + "revision": 2, "source": "hackage", "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6", "version": "0.11.102.1" }, { "cabal_sha256": "ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42", + "component": "lib:echo", "flags": [ "-example" ], @@ -325,7 +373,8 @@ "version": "0.1.4" }, { - "cabal_sha256": "885c9e2410e5d91a08b199897df0867fecedf818216d7329a2d43a512833dd63", + "cabal_sha256": "3db04d7c18b9e68ba5eef3fa7eeca05e1e248958dd182290c8e6b010c81ef73e", + "component": "lib:ed25519", "flags": [ "+no-donna", "+test-doctests", @@ -333,49 +382,53 @@ "+test-properties" ], "package": "ed25519", - "revision": 6, + "revision": 7, "source": "hackage", "src_sha256": "d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d", "version": "0.0.5.0" }, { - "cabal_sha256": "efd4c08c4df1ac3f423858a834c0e3b5b4909febda66a901d12a8e1d57bddaa8", + "cabal_sha256": "9ab54ee4f80bbd8a3fddd639ea142b7039ee2deb27f7df031a93de1819e34146", + "component": "lib:lukko", "flags": [ "+ofd-locking" ], "package": "lukko", - "revision": 3, + "revision": 4, "source": "hackage", "src_sha256": "a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f", "version": "0.1.1.3" }, { - "cabal_sha256": "bc14969ea4adfec6eee20264decf4a07c4002b38b2aa802d58d86b1a2cf7b895", + "cabal_sha256": "63dbcb0f507273a8331363e4c13a1fe91f4ea0c495883cf65f314629582a2630", + "component": "lib:tar", "flags": [ "-old-bytestring", "-old-time" ], "package": "tar", - "revision": 5, + "revision": 6, "source": "hackage", "src_sha256": "b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de", "version": "0.5.1.1" }, { - "cabal_sha256": "9adce39e4ca0b7a87d45df0a243134816c57059a08e28cff5469c98ae1f54dfc", + "cabal_sha256": "386dd93bc0352bf6ad5c6bca4dee0442b52d95b4c34e85901064f3eb05c81731", + "component": "lib:zlib", "flags": [ "-bundled-c-zlib", "-non-blocking-ffi", "-pkg-config" ], "package": "zlib", - "revision": 1, + "revision": 2, "source": "hackage", "src_sha256": "9eaa989ad4534438b5beb51c1d3a4c8f6a088fdff0b259a5394fbf39aaee04da", "version": "0.6.3.0" }, { - "cabal_sha256": "18405474813b37ddfc27778c88c549f444661432224999068417dfab3471281e", + "cabal_sha256": "2e5893334ee8967a990349a04953331b28e83bebd64d4f7cb46b71603d183d0c", + "component": "lib:hackage-security", "flags": [ "+base48", "+cabal-syntax", @@ -385,60 +438,79 @@ "+use-network-uri" ], "package": "hackage-security", - "revision": 2, + "revision": 5, "source": "hackage", "src_sha256": "52ee0576971955571d846b8e6c09638f89f4f7881f4a95173e44ccc0d856a066", "version": "0.6.2.3" }, { - "cabal_sha256": "4ff4425c710cddf440dfbac6cd52310bb6b23e17902390ff71c9fc7eaafc4fcc", + "cabal_sha256": "3a76c313f9f75e8e0b3c103c1bff5bbaf754da30cbddedc1d5b7061d001030e0", + "component": "lib:regex-base", "flags": [], "package": "regex-base", - "revision": 1, + "revision": 2, "source": "hackage", "src_sha256": "7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1", "version": "0.94.0.2" }, { - "cabal_sha256": "9dbba4b65a3bb6975d9740814be5593c6b2d2d6a0b3febc8ec940edb9a9bbdf4", + "cabal_sha256": "d479ca2cc6274c15801169f83dae883c9b62b78af3c7b30ed3fbd4b4612156b8", + "component": "lib:regex-posix", "flags": [ "-_regex-posix-clib" ], "package": "regex-posix", - "revision": 1, + "revision": 2, "source": "hackage", "src_sha256": "c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c", "version": "0.96.0.1" }, { - "cabal_sha256": "61e2d98ff634b8b4b3db467772420c0f9c79c2da9ddf3d2daeb2af2417f2c535", + "cabal_sha256": "a42b4a473478db92f4728f755403db232b55445e3091a957be073fc8e84e5d46", + "component": "lib:resolv", "flags": [], "package": "resolv", - "revision": 5, + "revision": 1, "source": "hackage", - "src_sha256": "81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671", - "version": "0.1.2.0" + "src_sha256": "880d283df9132a7375fa28670f71e86480a4f49972256dc2a204c648274ae74b", + "version": "0.2.0.2" }, { - "cabal_sha256": "6e9b1b233af80cc0aa17ea858d2641ba146fb11cbcc5970a52649e89d77282e2", + "cabal_sha256": "f4aad0eca90044cb1eba53b84f75d5fa142d25d695117730bf31178d409c4fe0", + "component": "lib:safe-exceptions", "flags": [], "package": "safe-exceptions", "revision": 0, "source": "hackage", - "src_sha256": "91ce28d8f8a6efd31788d4827ed5cdcb9a546ad4053a86c56f7947c66a30b5bf", - "version": "0.1.7.3" + "src_sha256": "3c51d8d50c9b60ff8bf94f942fd92e3bea9e62c5afa778dfc9f707b79da41ef6", + "version": "0.1.7.4" }, { - "cabal_sha256": "868694b09361e7c6756542bcdcfba68a9b8b93410c6798709e475abd3751afe7", + "cabal_sha256": "8ed6242cab5b0e1a8c654424275ac178035d108dfe4d651053947790fcf83017", + "component": "lib:semaphore-compat", "flags": [], "package": "semaphore-compat", - "revision": 0, + "revision": 1, "source": "hackage", "src_sha256": "1c6e6fab021c2ccee5d86112fb1c0bd016d15e0cf70c489dae5fb5ec156ed9e2", "version": "1.0.0" }, { "cabal_sha256": null, + "component": "lib:cabal-install", + "flags": [ + "+lukko", + "+native-dns" + ], + "package": "cabal-install", + "revision": null, + "source": "local", + "src_sha256": null, + "version": "3.11.0.0" + }, + { + "cabal_sha256": null, + "component": "exe:cabal", "flags": [ "+lukko", "+native-dns" diff --git a/bootstrap/linux-9.2.7.json b/bootstrap/linux-9.2.7.json index 3b8fda58d69ac33c4746f6317e8b32b9edcd3f25..4cc8973f751e43d92eacf26df05f7b2fd7f8c25f 100644 --- a/bootstrap/linux-9.2.7.json +++ b/bootstrap/linux-9.2.7.json @@ -24,6 +24,10 @@ "package": "deepseq", "version": "1.4.6.1" }, + { + "package": "containers", + "version": "0.6.5.1" + }, { "package": "ghc-boot-th", "version": "9.2.7" @@ -40,14 +44,6 @@ "package": "bytestring", "version": "0.11.4.0" }, - { - "package": "containers", - "version": "0.6.5.1" - }, - { - "package": "binary", - "version": "0.8.9.0" - }, { "package": "transformers", "version": "0.5.6.2" @@ -68,6 +64,10 @@ "package": "time", "version": "1.11.1.1" }, + { + "package": "binary", + "version": "0.8.9.0" + }, { "package": "text", "version": "1.2.5.0" @@ -79,27 +79,30 @@ ], "dependencies": [ { - "cabal_sha256": "ab6e3330c42817b0effb14cae9c60d5cdc41d61f7354d04bc529ed031113f27c", + "cabal_sha256": "2de84756d3907308230e34fcc7c1917a73f218f6d53838618b7d5b95dd33e2c3", + "component": "lib:filepath", "flags": [ "-cpphs" ], "package": "filepath", "revision": 0, "source": "hackage", - "src_sha256": "ed1d11173f5052461cd1df58b5ef4abbfa1803ad2b237da7ddb7c7d64e017de2", - "version": "1.4.100.3" + "src_sha256": "82876250347c2fdf0f9de5448ce44f02539f37951b671d9a30719a6c4f96e9ad", + "version": "1.4.100.4" }, { - "cabal_sha256": "26eeda14432a2fcc6049045068ecf59525ffff9196616a642b5ab2326a003692", + "cabal_sha256": "91cbc951a742fc2c95d5902be38fcf1b859c2891241bc353ff16154a8f7c35ae", + "component": "lib:unix", "flags": [], "package": "unix", "revision": 0, "source": "hackage", - "src_sha256": "5e59d9ca0f8e505d2203af7dba17c67275621fbcd4ed8fcbdd59e80df4d79a7d", - "version": "2.8.1.0" + "src_sha256": "cc287659427c80f3598c199387ba7eb7d4cc3270cbb31f75e2f677e879f26384", + "version": "2.8.1.1" }, { "cabal_sha256": "e384a4831b0ac0f8908a1d99d14ce44bf9c5fe2092eec5b2c47ea072d477a493", + "component": "lib:directory", "flags": [], "package": "directory", "revision": 0, @@ -107,8 +110,19 @@ "src_sha256": "bd8253197587d32d4553070d2de89d3817176860932b0e9ab7bb7ba3759d8e9c", "version": "1.3.8.1" }, + { + "cabal_sha256": "3c9e1e6b4f2f956623375dd15b904144dd3183b28f1ce1afcce11192f6d868dd", + "component": "exe:alex", + "flags": [], + "package": "alex", + "revision": 0, + "source": "hackage", + "src_sha256": "7a1cd4e21399c40ea9372d1c03bf38698944b8437ce95cf27d1a7c262babe38e", + "version": "3.4.0.0" + }, { "cabal_sha256": null, + "component": "lib:Cabal-syntax", "flags": [], "package": "Cabal-syntax", "revision": null, @@ -118,6 +132,7 @@ }, { "cabal_sha256": "49d8a7f372d35363011591b253cae4c8db8b9ec594590448e20b7bed7acaee98", + "component": "lib:process", "flags": [], "package": "process", "revision": 0, @@ -127,6 +142,7 @@ }, { "cabal_sha256": null, + "component": "lib:Cabal", "flags": [], "package": "Cabal", "revision": null, @@ -135,18 +151,32 @@ "version": "3.11.0.0" }, { - "cabal_sha256": "29b28d2e19ae9f5ff92cea4ab8d2e185408ee5de73b4127f7b485a904c9a8b15", + "cabal_sha256": "115b8c34b9f83603cfd9eb8b1e2d7ac520da0a4a43d96be435f06ce01a7bc95e", + "component": "exe:hsc2hs", + "flags": [ + "-in-ghc-tree" + ], + "package": "hsc2hs", + "revision": 0, + "source": "hackage", + "src_sha256": "c95b10ce0b2c881480e35118d738dcc9cefc435ec72baa0031af81d0d4d3bc0a", + "version": "0.68.9" + }, + { + "cabal_sha256": "e152cdb03243afb52bbc740cfbe96905ca298a6f6342f0c47b3f2e227ff19def", + "component": "lib:network", "flags": [ "-devel" ], "package": "network", - "revision": 0, + "revision": 1, "source": "hackage", - "src_sha256": "fde2d4b065f1984c76755004c64a29ae9ec52c8bf74f2485d805ef577e7c7822", - "version": "3.1.2.8" + "src_sha256": "b452a2afac95d9207357eb3820c719c7c7d27871ef4b6ed7bfcd03a036b9158e", + "version": "3.1.4.0" }, { "cabal_sha256": "e5ae7c083ef3a22248558f8451669bb1c55ea8090f5908b86b9033743c161730", + "component": "lib:th-compat", "flags": [], "package": "th-compat", "revision": 2, @@ -156,6 +186,7 @@ }, { "cabal_sha256": "1fde59abf5d82a9666b4415bc2b2e9e33f6c1309074fda12d50410c7dbd95f3b", + "component": "lib:network-uri", "flags": [], "package": "network-uri", "revision": 0, @@ -164,7 +195,8 @@ "version": "2.6.4.2" }, { - "cabal_sha256": "b878d575c470bd1f72d37af6654d924ab2b9489d88de8a71bd74d9d5d726c013", + "cabal_sha256": "d9220cc1b8c1f287248d650910710b96e62e54530772e3bcd19dbdec6547f8ae", + "component": "lib:HTTP", "flags": [ "-conduit10", "+network-uri", @@ -172,13 +204,14 @@ "-warp-tests" ], "package": "HTTP", - "revision": 1, + "revision": 2, "source": "hackage", "src_sha256": "df31d8efec775124dab856d7177ddcba31be9f9e0836ebdab03d94392f2dd453", "version": "4000.4.1" }, { "cabal_sha256": "2ef1bd3511e82ba56f7f23cd793dd2da84338a1e7c2cbea5b151417afe3baada", + "component": "lib:data-array-byte", "flags": [], "package": "data-array-byte", "revision": 1, @@ -188,6 +221,7 @@ }, { "cabal_sha256": "585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a", + "component": "lib:hashable", "flags": [ "+integer-gmp", "-random-initial-seed" @@ -200,6 +234,7 @@ }, { "cabal_sha256": "46367dc0c8326dcbeb7b93f200b567491c2f6029bccf822b8bb26ee660397e08", + "component": "lib:async", "flags": [ "-bench" ], @@ -211,6 +246,7 @@ }, { "cabal_sha256": "64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a", + "component": "lib:base16-bytestring", "flags": [], "package": "base16-bytestring", "revision": 0, @@ -219,16 +255,18 @@ "version": "1.0.2.0" }, { - "cabal_sha256": "50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8", + "cabal_sha256": "45305ccf8914c66d385b518721472c7b8c858f1986945377f74f85c1e0d49803", + "component": "lib:base64-bytestring", "flags": [], "package": "base64-bytestring", - "revision": 0, + "revision": 1, "source": "hackage", "src_sha256": "fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9", "version": "1.2.1.0" }, { "cabal_sha256": "db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e", + "component": "lib:splitmix", "flags": [ "-optimised-mixer" ], @@ -240,6 +278,7 @@ }, { "cabal_sha256": "dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9", + "component": "lib:random", "flags": [], "package": "random", "revision": 0, @@ -249,6 +288,7 @@ }, { "cabal_sha256": "4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee", + "component": "lib:edit-distance", "flags": [], "package": "edit-distance", "revision": 1, @@ -258,6 +298,7 @@ }, { "cabal_sha256": null, + "component": "lib:cabal-install-solver", "flags": [ "-debug-conflict-sets", "-debug-expensive-assertions", @@ -270,19 +311,21 @@ "version": "3.11.0.0" }, { - "cabal_sha256": "facd0c04925ef925ec05243471fd16055229fdf51f64db1a1049de0cc6c6dfc3", + "cabal_sha256": "72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc", + "component": "lib:cryptohash-sha256", "flags": [ "-exe", "+use-cbits" ], "package": "cryptohash-sha256", - "revision": 1, + "revision": 2, "source": "hackage", "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6", "version": "0.11.102.1" }, { "cabal_sha256": "ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42", + "component": "lib:echo", "flags": [ "-example" ], @@ -293,7 +336,8 @@ "version": "0.1.4" }, { - "cabal_sha256": "885c9e2410e5d91a08b199897df0867fecedf818216d7329a2d43a512833dd63", + "cabal_sha256": "3db04d7c18b9e68ba5eef3fa7eeca05e1e248958dd182290c8e6b010c81ef73e", + "component": "lib:ed25519", "flags": [ "+no-donna", "+test-doctests", @@ -301,49 +345,53 @@ "+test-properties" ], "package": "ed25519", - "revision": 6, + "revision": 7, "source": "hackage", "src_sha256": "d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d", "version": "0.0.5.0" }, { - "cabal_sha256": "efd4c08c4df1ac3f423858a834c0e3b5b4909febda66a901d12a8e1d57bddaa8", + "cabal_sha256": "9ab54ee4f80bbd8a3fddd639ea142b7039ee2deb27f7df031a93de1819e34146", + "component": "lib:lukko", "flags": [ "+ofd-locking" ], "package": "lukko", - "revision": 3, + "revision": 4, "source": "hackage", "src_sha256": "a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f", "version": "0.1.1.3" }, { - "cabal_sha256": "bc14969ea4adfec6eee20264decf4a07c4002b38b2aa802d58d86b1a2cf7b895", + "cabal_sha256": "63dbcb0f507273a8331363e4c13a1fe91f4ea0c495883cf65f314629582a2630", + "component": "lib:tar", "flags": [ "-old-bytestring", "-old-time" ], "package": "tar", - "revision": 5, + "revision": 6, "source": "hackage", "src_sha256": "b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de", "version": "0.5.1.1" }, { - "cabal_sha256": "9adce39e4ca0b7a87d45df0a243134816c57059a08e28cff5469c98ae1f54dfc", + "cabal_sha256": "386dd93bc0352bf6ad5c6bca4dee0442b52d95b4c34e85901064f3eb05c81731", + "component": "lib:zlib", "flags": [ "-bundled-c-zlib", "-non-blocking-ffi", "-pkg-config" ], "package": "zlib", - "revision": 1, + "revision": 2, "source": "hackage", "src_sha256": "9eaa989ad4534438b5beb51c1d3a4c8f6a088fdff0b259a5394fbf39aaee04da", "version": "0.6.3.0" }, { - "cabal_sha256": "18405474813b37ddfc27778c88c549f444661432224999068417dfab3471281e", + "cabal_sha256": "2e5893334ee8967a990349a04953331b28e83bebd64d4f7cb46b71603d183d0c", + "component": "lib:hackage-security", "flags": [ "+base48", "+cabal-syntax", @@ -353,60 +401,79 @@ "+use-network-uri" ], "package": "hackage-security", - "revision": 2, + "revision": 5, "source": "hackage", "src_sha256": "52ee0576971955571d846b8e6c09638f89f4f7881f4a95173e44ccc0d856a066", "version": "0.6.2.3" }, { - "cabal_sha256": "4ff4425c710cddf440dfbac6cd52310bb6b23e17902390ff71c9fc7eaafc4fcc", + "cabal_sha256": "3a76c313f9f75e8e0b3c103c1bff5bbaf754da30cbddedc1d5b7061d001030e0", + "component": "lib:regex-base", "flags": [], "package": "regex-base", - "revision": 1, + "revision": 2, "source": "hackage", "src_sha256": "7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1", "version": "0.94.0.2" }, { - "cabal_sha256": "9dbba4b65a3bb6975d9740814be5593c6b2d2d6a0b3febc8ec940edb9a9bbdf4", + "cabal_sha256": "d479ca2cc6274c15801169f83dae883c9b62b78af3c7b30ed3fbd4b4612156b8", + "component": "lib:regex-posix", "flags": [ "-_regex-posix-clib" ], "package": "regex-posix", - "revision": 1, + "revision": 2, "source": "hackage", "src_sha256": "c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c", "version": "0.96.0.1" }, { - "cabal_sha256": "61e2d98ff634b8b4b3db467772420c0f9c79c2da9ddf3d2daeb2af2417f2c535", + "cabal_sha256": "a42b4a473478db92f4728f755403db232b55445e3091a957be073fc8e84e5d46", + "component": "lib:resolv", "flags": [], "package": "resolv", - "revision": 5, + "revision": 1, "source": "hackage", - "src_sha256": "81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671", - "version": "0.1.2.0" + "src_sha256": "880d283df9132a7375fa28670f71e86480a4f49972256dc2a204c648274ae74b", + "version": "0.2.0.2" }, { - "cabal_sha256": "6e9b1b233af80cc0aa17ea858d2641ba146fb11cbcc5970a52649e89d77282e2", + "cabal_sha256": "f4aad0eca90044cb1eba53b84f75d5fa142d25d695117730bf31178d409c4fe0", + "component": "lib:safe-exceptions", "flags": [], "package": "safe-exceptions", "revision": 0, "source": "hackage", - "src_sha256": "91ce28d8f8a6efd31788d4827ed5cdcb9a546ad4053a86c56f7947c66a30b5bf", - "version": "0.1.7.3" + "src_sha256": "3c51d8d50c9b60ff8bf94f942fd92e3bea9e62c5afa778dfc9f707b79da41ef6", + "version": "0.1.7.4" }, { - "cabal_sha256": "868694b09361e7c6756542bcdcfba68a9b8b93410c6798709e475abd3751afe7", + "cabal_sha256": "8ed6242cab5b0e1a8c654424275ac178035d108dfe4d651053947790fcf83017", + "component": "lib:semaphore-compat", "flags": [], "package": "semaphore-compat", - "revision": 0, + "revision": 1, "source": "hackage", "src_sha256": "1c6e6fab021c2ccee5d86112fb1c0bd016d15e0cf70c489dae5fb5ec156ed9e2", "version": "1.0.0" }, { "cabal_sha256": null, + "component": "lib:cabal-install", + "flags": [ + "+lukko", + "+native-dns" + ], + "package": "cabal-install", + "revision": null, + "source": "local", + "src_sha256": null, + "version": "3.11.0.0" + }, + { + "cabal_sha256": null, + "component": "exe:cabal", "flags": [ "+lukko", "+native-dns" diff --git a/bootstrap/linux-9.4.4.json b/bootstrap/linux-9.4.4.json index bcb80b9104ab6e40c6f031999db76b39a486a984..af00acf12afa608a78c4551b9c285fea8dc6c254 100644 --- a/bootstrap/linux-9.4.4.json +++ b/bootstrap/linux-9.4.4.json @@ -36,17 +36,13 @@ "package": "template-haskell", "version": "2.19.0.0" }, - { - "package": "bytestring", - "version": "0.11.3.1" - }, { "package": "containers", "version": "0.6.6" }, { - "package": "binary", - "version": "0.8.9.1" + "package": "bytestring", + "version": "0.11.3.1" }, { "package": "transformers", @@ -68,6 +64,10 @@ "package": "time", "version": "1.12.2" }, + { + "package": "binary", + "version": "0.8.9.1" + }, { "package": "text", "version": "2.0.1" @@ -79,27 +79,30 @@ ], "dependencies": [ { - "cabal_sha256": "ab6e3330c42817b0effb14cae9c60d5cdc41d61f7354d04bc529ed031113f27c", + "cabal_sha256": "2de84756d3907308230e34fcc7c1917a73f218f6d53838618b7d5b95dd33e2c3", + "component": "lib:filepath", "flags": [ "-cpphs" ], "package": "filepath", "revision": 0, "source": "hackage", - "src_sha256": "ed1d11173f5052461cd1df58b5ef4abbfa1803ad2b237da7ddb7c7d64e017de2", - "version": "1.4.100.3" + "src_sha256": "82876250347c2fdf0f9de5448ce44f02539f37951b671d9a30719a6c4f96e9ad", + "version": "1.4.100.4" }, { - "cabal_sha256": "26eeda14432a2fcc6049045068ecf59525ffff9196616a642b5ab2326a003692", + "cabal_sha256": "91cbc951a742fc2c95d5902be38fcf1b859c2891241bc353ff16154a8f7c35ae", + "component": "lib:unix", "flags": [], "package": "unix", "revision": 0, "source": "hackage", - "src_sha256": "5e59d9ca0f8e505d2203af7dba17c67275621fbcd4ed8fcbdd59e80df4d79a7d", - "version": "2.8.1.0" + "src_sha256": "cc287659427c80f3598c199387ba7eb7d4cc3270cbb31f75e2f677e879f26384", + "version": "2.8.1.1" }, { "cabal_sha256": "e384a4831b0ac0f8908a1d99d14ce44bf9c5fe2092eec5b2c47ea072d477a493", + "component": "lib:directory", "flags": [], "package": "directory", "revision": 0, @@ -107,8 +110,19 @@ "src_sha256": "bd8253197587d32d4553070d2de89d3817176860932b0e9ab7bb7ba3759d8e9c", "version": "1.3.8.1" }, + { + "cabal_sha256": "3c9e1e6b4f2f956623375dd15b904144dd3183b28f1ce1afcce11192f6d868dd", + "component": "exe:alex", + "flags": [], + "package": "alex", + "revision": 0, + "source": "hackage", + "src_sha256": "7a1cd4e21399c40ea9372d1c03bf38698944b8437ce95cf27d1a7c262babe38e", + "version": "3.4.0.0" + }, { "cabal_sha256": null, + "component": "lib:Cabal-syntax", "flags": [], "package": "Cabal-syntax", "revision": null, @@ -118,6 +132,7 @@ }, { "cabal_sha256": "49d8a7f372d35363011591b253cae4c8db8b9ec594590448e20b7bed7acaee98", + "component": "lib:process", "flags": [], "package": "process", "revision": 0, @@ -127,6 +142,7 @@ }, { "cabal_sha256": null, + "component": "lib:Cabal", "flags": [], "package": "Cabal", "revision": null, @@ -135,18 +151,32 @@ "version": "3.11.0.0" }, { - "cabal_sha256": "29b28d2e19ae9f5ff92cea4ab8d2e185408ee5de73b4127f7b485a904c9a8b15", + "cabal_sha256": "115b8c34b9f83603cfd9eb8b1e2d7ac520da0a4a43d96be435f06ce01a7bc95e", + "component": "exe:hsc2hs", + "flags": [ + "-in-ghc-tree" + ], + "package": "hsc2hs", + "revision": 0, + "source": "hackage", + "src_sha256": "c95b10ce0b2c881480e35118d738dcc9cefc435ec72baa0031af81d0d4d3bc0a", + "version": "0.68.9" + }, + { + "cabal_sha256": "e152cdb03243afb52bbc740cfbe96905ca298a6f6342f0c47b3f2e227ff19def", + "component": "lib:network", "flags": [ "-devel" ], "package": "network", - "revision": 0, + "revision": 1, "source": "hackage", - "src_sha256": "fde2d4b065f1984c76755004c64a29ae9ec52c8bf74f2485d805ef577e7c7822", - "version": "3.1.2.8" + "src_sha256": "b452a2afac95d9207357eb3820c719c7c7d27871ef4b6ed7bfcd03a036b9158e", + "version": "3.1.4.0" }, { "cabal_sha256": "e5ae7c083ef3a22248558f8451669bb1c55ea8090f5908b86b9033743c161730", + "component": "lib:th-compat", "flags": [], "package": "th-compat", "revision": 2, @@ -156,6 +186,7 @@ }, { "cabal_sha256": "1fde59abf5d82a9666b4415bc2b2e9e33f6c1309074fda12d50410c7dbd95f3b", + "component": "lib:network-uri", "flags": [], "package": "network-uri", "revision": 0, @@ -164,7 +195,8 @@ "version": "2.6.4.2" }, { - "cabal_sha256": "b878d575c470bd1f72d37af6654d924ab2b9489d88de8a71bd74d9d5d726c013", + "cabal_sha256": "d9220cc1b8c1f287248d650910710b96e62e54530772e3bcd19dbdec6547f8ae", + "component": "lib:HTTP", "flags": [ "-conduit10", "+network-uri", @@ -172,13 +204,14 @@ "-warp-tests" ], "package": "HTTP", - "revision": 1, + "revision": 2, "source": "hackage", "src_sha256": "df31d8efec775124dab856d7177ddcba31be9f9e0836ebdab03d94392f2dd453", "version": "4000.4.1" }, { "cabal_sha256": "585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a", + "component": "lib:hashable", "flags": [ "+integer-gmp", "-random-initial-seed" @@ -191,6 +224,7 @@ }, { "cabal_sha256": "46367dc0c8326dcbeb7b93f200b567491c2f6029bccf822b8bb26ee660397e08", + "component": "lib:async", "flags": [ "-bench" ], @@ -202,6 +236,7 @@ }, { "cabal_sha256": "64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a", + "component": "lib:base16-bytestring", "flags": [], "package": "base16-bytestring", "revision": 0, @@ -210,16 +245,18 @@ "version": "1.0.2.0" }, { - "cabal_sha256": "50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8", + "cabal_sha256": "45305ccf8914c66d385b518721472c7b8c858f1986945377f74f85c1e0d49803", + "component": "lib:base64-bytestring", "flags": [], "package": "base64-bytestring", - "revision": 0, + "revision": 1, "source": "hackage", "src_sha256": "fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9", "version": "1.2.1.0" }, { "cabal_sha256": "db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e", + "component": "lib:splitmix", "flags": [ "-optimised-mixer" ], @@ -231,6 +268,7 @@ }, { "cabal_sha256": "dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9", + "component": "lib:random", "flags": [], "package": "random", "revision": 0, @@ -240,6 +278,7 @@ }, { "cabal_sha256": "4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee", + "component": "lib:edit-distance", "flags": [], "package": "edit-distance", "revision": 1, @@ -249,6 +288,7 @@ }, { "cabal_sha256": null, + "component": "lib:cabal-install-solver", "flags": [ "-debug-conflict-sets", "-debug-expensive-assertions", @@ -261,19 +301,21 @@ "version": "3.11.0.0" }, { - "cabal_sha256": "facd0c04925ef925ec05243471fd16055229fdf51f64db1a1049de0cc6c6dfc3", + "cabal_sha256": "72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc", + "component": "lib:cryptohash-sha256", "flags": [ "-exe", "+use-cbits" ], "package": "cryptohash-sha256", - "revision": 1, + "revision": 2, "source": "hackage", "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6", "version": "0.11.102.1" }, { "cabal_sha256": "ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42", + "component": "lib:echo", "flags": [ "-example" ], @@ -284,7 +326,8 @@ "version": "0.1.4" }, { - "cabal_sha256": "885c9e2410e5d91a08b199897df0867fecedf818216d7329a2d43a512833dd63", + "cabal_sha256": "3db04d7c18b9e68ba5eef3fa7eeca05e1e248958dd182290c8e6b010c81ef73e", + "component": "lib:ed25519", "flags": [ "+no-donna", "+test-doctests", @@ -292,49 +335,53 @@ "+test-properties" ], "package": "ed25519", - "revision": 6, + "revision": 7, "source": "hackage", "src_sha256": "d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d", "version": "0.0.5.0" }, { - "cabal_sha256": "efd4c08c4df1ac3f423858a834c0e3b5b4909febda66a901d12a8e1d57bddaa8", + "cabal_sha256": "9ab54ee4f80bbd8a3fddd639ea142b7039ee2deb27f7df031a93de1819e34146", + "component": "lib:lukko", "flags": [ "+ofd-locking" ], "package": "lukko", - "revision": 3, + "revision": 4, "source": "hackage", "src_sha256": "a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f", "version": "0.1.1.3" }, { - "cabal_sha256": "bc14969ea4adfec6eee20264decf4a07c4002b38b2aa802d58d86b1a2cf7b895", + "cabal_sha256": "63dbcb0f507273a8331363e4c13a1fe91f4ea0c495883cf65f314629582a2630", + "component": "lib:tar", "flags": [ "-old-bytestring", "-old-time" ], "package": "tar", - "revision": 5, + "revision": 6, "source": "hackage", "src_sha256": "b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de", "version": "0.5.1.1" }, { - "cabal_sha256": "9adce39e4ca0b7a87d45df0a243134816c57059a08e28cff5469c98ae1f54dfc", + "cabal_sha256": "386dd93bc0352bf6ad5c6bca4dee0442b52d95b4c34e85901064f3eb05c81731", + "component": "lib:zlib", "flags": [ "-bundled-c-zlib", "-non-blocking-ffi", "-pkg-config" ], "package": "zlib", - "revision": 1, + "revision": 2, "source": "hackage", "src_sha256": "9eaa989ad4534438b5beb51c1d3a4c8f6a088fdff0b259a5394fbf39aaee04da", "version": "0.6.3.0" }, { - "cabal_sha256": "18405474813b37ddfc27778c88c549f444661432224999068417dfab3471281e", + "cabal_sha256": "2e5893334ee8967a990349a04953331b28e83bebd64d4f7cb46b71603d183d0c", + "component": "lib:hackage-security", "flags": [ "+base48", "+cabal-syntax", @@ -344,60 +391,79 @@ "+use-network-uri" ], "package": "hackage-security", - "revision": 2, + "revision": 5, "source": "hackage", "src_sha256": "52ee0576971955571d846b8e6c09638f89f4f7881f4a95173e44ccc0d856a066", "version": "0.6.2.3" }, { - "cabal_sha256": "4ff4425c710cddf440dfbac6cd52310bb6b23e17902390ff71c9fc7eaafc4fcc", + "cabal_sha256": "3a76c313f9f75e8e0b3c103c1bff5bbaf754da30cbddedc1d5b7061d001030e0", + "component": "lib:regex-base", "flags": [], "package": "regex-base", - "revision": 1, + "revision": 2, "source": "hackage", "src_sha256": "7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1", "version": "0.94.0.2" }, { - "cabal_sha256": "9dbba4b65a3bb6975d9740814be5593c6b2d2d6a0b3febc8ec940edb9a9bbdf4", + "cabal_sha256": "d479ca2cc6274c15801169f83dae883c9b62b78af3c7b30ed3fbd4b4612156b8", + "component": "lib:regex-posix", "flags": [ "-_regex-posix-clib" ], "package": "regex-posix", - "revision": 1, + "revision": 2, "source": "hackage", "src_sha256": "c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c", "version": "0.96.0.1" }, { - "cabal_sha256": "61e2d98ff634b8b4b3db467772420c0f9c79c2da9ddf3d2daeb2af2417f2c535", + "cabal_sha256": "a42b4a473478db92f4728f755403db232b55445e3091a957be073fc8e84e5d46", + "component": "lib:resolv", "flags": [], "package": "resolv", - "revision": 5, + "revision": 1, "source": "hackage", - "src_sha256": "81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671", - "version": "0.1.2.0" + "src_sha256": "880d283df9132a7375fa28670f71e86480a4f49972256dc2a204c648274ae74b", + "version": "0.2.0.2" }, { - "cabal_sha256": "6e9b1b233af80cc0aa17ea858d2641ba146fb11cbcc5970a52649e89d77282e2", + "cabal_sha256": "f4aad0eca90044cb1eba53b84f75d5fa142d25d695117730bf31178d409c4fe0", + "component": "lib:safe-exceptions", "flags": [], "package": "safe-exceptions", "revision": 0, "source": "hackage", - "src_sha256": "91ce28d8f8a6efd31788d4827ed5cdcb9a546ad4053a86c56f7947c66a30b5bf", - "version": "0.1.7.3" + "src_sha256": "3c51d8d50c9b60ff8bf94f942fd92e3bea9e62c5afa778dfc9f707b79da41ef6", + "version": "0.1.7.4" }, { - "cabal_sha256": "868694b09361e7c6756542bcdcfba68a9b8b93410c6798709e475abd3751afe7", + "cabal_sha256": "8ed6242cab5b0e1a8c654424275ac178035d108dfe4d651053947790fcf83017", + "component": "lib:semaphore-compat", "flags": [], "package": "semaphore-compat", - "revision": 0, + "revision": 1, "source": "hackage", "src_sha256": "1c6e6fab021c2ccee5d86112fb1c0bd016d15e0cf70c489dae5fb5ec156ed9e2", "version": "1.0.0" }, { "cabal_sha256": null, + "component": "lib:cabal-install", + "flags": [ + "+lukko", + "+native-dns" + ], + "package": "cabal-install", + "revision": null, + "source": "local", + "src_sha256": null, + "version": "3.11.0.0" + }, + { + "cabal_sha256": null, + "component": "exe:cabal", "flags": [ "+lukko", "+native-dns" diff --git a/bootstrap/src/Main.hs b/bootstrap/src/Main.hs index 0ca636ea0207adfb6ed300eaddd69951609fa098..8f06acba2ce931280f0ddc295935ec03297c2c59 100644 --- a/bootstrap/src/Main.hs +++ b/bootstrap/src/Main.hs @@ -1,11 +1,12 @@ {-# LANGUAGE CPP #-} +{-# LANGUAGE ScopedTypeVariables #-} +{-# LANGUAGE LambdaCase #-} +{-# OPTIONS_GHC -Wno-deferred-out-of-scope-variables #-} module Main (main) where -import Control.Monad (when) import Data.Either (partitionEithers) -import Data.Foldable (for_, traverse_) -import Data.Maybe (listToMaybe) +import Data.Foldable (for_) import Data.String (fromString) import Data.Traversable (for) import System.Environment (getArgs) @@ -18,10 +19,11 @@ import qualified Cabal.Plan as P import qualified Data.Aeson as A import qualified Data.ByteString.Lazy as LBS import qualified Data.Map.Strict as Map -import qualified Data.Set as Set import qualified Distribution.Types.PackageName as C import qualified Distribution.Types.Version as C import qualified Topograph as TG +import Control.Exception +import System.IO.Error (isDoesNotExistError) ------------------------------------------------------------------------------- -- Main @@ -31,8 +33,30 @@ main :: IO () main = do args <- getArgs case args of - [fp] -> main1 fp - _ -> die "Usage: cabal-bootstrap-gen plan.json" + [fp] -> + handleJust + (\e -> if isDoesNotExistError e then Just e else Nothing) + (\e -> die $ unlines ["~~~ ERROR ~~~", "", displayException e, "", cabalDirWarning]) + (main1 fp) + _ -> die "Usage: cabal-bootstrap-gen plan.json" + +cabalDirWarning :: String +cabalDirWarning = + unlines [ + "~~~ NOTE ~~~", + "", + "This script will look for cabal global config file in the following locations", + " - $CABAL_CONFIG", + " - $CABAL_DIR/config", + " - $HOME/.cabal/config (on Unix-like systems)", + " - %APPDATA%/cabal (on Windows)", + "", + "If you are using XDG paths or a entirely different location, you can set either", + "CABAL_CONFIG or CABAL_DIR to guide the script to the correct location.", + "", + "E.g.", + " $ CABAL_DIR=$HOME/.config/cabal cabal-bootstrap-gen" + ] main1 :: FilePath -> IO () main1 planPath = do @@ -50,69 +74,60 @@ main2 :: Map.Map C.PackageName I.PackageInfo -> P.PlanJson -> IO () main2 meta plan = do info $ show $ Map.keys $ P.pjUnits plan - -- find cabal-install:exe:cabal unit - (cabalUid, cabalUnit) <- case findCabalExe plan of - Just x -> return x - Nothing -> die "Cannot find cabal-install:exe:cabal unit" - - info $ "cabal-install:exe:cabal unit " ++ show cabalUid + let res = TG.runG (P.planJsonIdGraph plan) $ \g -> + map (TG.gFromVertex g) (reverse $ TG.gVertices g) - -- BFS from cabal unit, getting all dependencies - units <- bfs plan cabalUnit + units <- case res of + Left loop -> die $ "Loop in install-plan: " ++ show loop + Right uids -> for uids $ lookupUnit (P.pjUnits plan) - info $ "Unit order:" + info "Unit order:" for_ units $ \unit -> do info $ " - " ++ show (P.uId unit) (builtin, deps) <- fmap partitionEithers $ for units $ \unit -> do let P.PkgId pkgname@(P.PkgName tpkgname) ver@(P.Ver verdigits) = P.uPId unit - let uid = P.uId unit - let cpkgname :: C.PackageName cpkgname = C.mkPackageName (T.unpack tpkgname) let cversion :: C.Version cversion = C.mkVersion verdigits + let flags = [ (if fval then "+" else "-") ++ T.unpack fname + | (P.FlagName fname, fval) <- Map.toList (P.uFlags unit) + ] + let relInfo = Map.lookup cpkgname meta >>= \pkgInfo -> Map.lookup cversion $ I.piVersions pkgInfo case P.uType unit of P.UnitTypeBuiltin -> return $ Left Builtin { builtinPackageName = pkgname , builtinVersion = ver } - _ -> do - (src, rev, revhash) <- case P.uSha256 unit of - Just _ -> do - pkgInfo <- maybe (die $ "Cannot find " ++ show uid ++ " package metadata") return $ - Map.lookup cpkgname meta - relInfo <- maybe (die $ "Cannot find " ++ show uid ++ " version metadata") return $ - Map.lookup cversion $ I.piVersions pkgInfo - - return - ( Hackage - , Just $ fromIntegral (I.riRevision relInfo) - , P.sha256FromByteString $ I.getSHA256 $ getHash relInfo - ) - - Nothing -> case P.uType unit of - P.UnitTypeLocal -> return (Local, Nothing, Nothing) - t -> die $ "Unit of wrong type " ++ show uid ++ " " ++ show t - - return $ Right Dep - { depPackageName = pkgname - , depVersion = ver - , depSource = src - , depSrcHash = P.uSha256 unit - , depRevision = rev - , depRevHash = revhash - , depFlags = - [ (if fval then "+" else "-") ++ T.unpack fname - | (P.FlagName fname, fval) <- Map.toList (P.uFlags unit) - ] - } - + let component = case Map.keys (P.uComps unit) of + [c] -> Just (P.dispCompNameTarget pkgname c) + _ -> Nothing + + source <- + case P.uPkgSrc unit of + Just (P.RepoTarballPackage (P.RepoSecure _uri)) -> + return Hackage + Just (P.LocalUnpackedPackage _path) -> + return Local + pkgsrc -> + die $ "package source not supported: " ++ show pkgsrc + + return $ Right Dep + { depPackageName = pkgname + , depVersion = ver + , depSource = source + , depSrcHash = P.uSha256 unit + , depRevision = fromIntegral . I.riRevision <$> relInfo + , depRevHash = relInfo >>= P.sha256FromByteString . I.getSHA256 . getHash + , depFlags = flags + , depComponent = component + } LBS.putStr $ A.encode Result { resBuiltin = builtin , resDependencies = deps @@ -124,42 +139,6 @@ main2 meta plan = do getHash = I.riCabal #endif -bfs :: P.PlanJson -> P.Unit -> IO [P.Unit] -bfs plan unit0 = do - uids <- either (\loop -> die $ "Loop in install-plan " ++ show loop) id $ TG.runG am $ \g -> do - v <- maybe (die "Cannot find cabal-install unit in topograph") return $ - TG.gToVertex g $ P.uId unit0 - - let t = TG.dfs g v - - return $ map (TG.gFromVertex g) $ - -- nub and sort - reverse $ Set.toList $ Set.fromList $ concat t - - units <- for uids $ \uid -> do - unit <- lookupUnit (P.pjUnits plan) uid - case Map.toList (P.uComps unit) of - [(_, compinfo)] -> checkExeDeps uid (P.pjUnits plan) (P.ciExeDeps compinfo) - _ -> die $ "Unit with multiple components " ++ show uid - return unit - - -- Remove non-exe copies of cabal-install. Otherwise, cabal-install - -- may appear as cabal-install:lib before dependencies of - -- cabal-install:exe:cabal, and the bootstrap build tries to build - -- all of cabal-install before those dependencies. - return $ filter (\u -> P.uId u == P.uId unit0 || P.uPId u /= P.uPId unit0) units - where - am :: Map.Map P.UnitId (Set.Set P.UnitId) - am = fmap (foldMap P.ciLibDeps . P.uComps) (P.pjUnits plan) - -checkExeDeps :: P.UnitId -> Map.Map P.UnitId P.Unit -> Set.Set P.UnitId -> IO () -checkExeDeps pkgUid units = traverse_ check . Set.toList where - check uid = do - unit <- lookupUnit units uid - let P.PkgId pkgname _ = P.uPId unit - when (pkgname /= P.PkgName (fromString "hsc2hs")) $ do - die $ "unit " ++ show pkgUid ++ " depends on executable " ++ show uid - lookupUnit :: Map.Map P.UnitId P.Unit -> P.UnitId -> IO P.Unit lookupUnit units uid = maybe (die $ "Cannot find unit " ++ show uid) return @@ -189,6 +168,7 @@ data Dep = Dep , depRevision :: Maybe Int , depRevHash :: Maybe P.Sha256 , depFlags :: [String] + , depComponent :: Maybe T.Text } deriving (Show) @@ -218,6 +198,7 @@ instance A.ToJSON Dep where , fromString "revision" A..= depRevision dep , fromString "cabal_sha256" A..= depRevHash dep , fromString "flags" A..= depFlags dep + , fromString "component" A..= depComponent dep ] instance A.ToJSON SrcType where @@ -241,16 +222,3 @@ die :: String -> IO a die msg = do hPutStrLn stderr msg exitFailure - -------------------------------------------------------------------------------- --- Pure bits -------------------------------------------------------------------------------- - -findCabalExe :: P.PlanJson -> Maybe (P.UnitId, P.Unit) -findCabalExe plan = listToMaybe - [ (uid, unit) - | (uid, unit) <- Map.toList (P.pjUnits plan) - , let P.PkgId pkgname _ = P.uPId unit - , pkgname == P.PkgName (fromString "cabal-install") - , Map.keys (P.uComps unit) == [P.CompNameExe (fromString "cabal")] - ]