Compare commits

...

28 Commits
CI ... issue-14

Author SHA1 Message Date
37fb99d25a Use integer-gmp bindists for alpine x86_64, fixes #14 2022-01-20 16:33:10 +01:00
610714d15f Add alpine i386 GHC 9.0.2 2022-01-05 11:46:40 +01:00
fd8e23873a Revert "Don't make missing i386 alpine fatal"
This reverts commit b24fff8359.
2022-01-05 11:46:20 +01:00
37e87912c3 Add GHC 9.0.2 2022-01-05 10:54:13 +01:00
b24fff8359 Don't make missing i386 alpine fatal 2022-01-05 10:53:21 +01:00
e199e9bc99 Improve toolRequirements for Darwin M1 2021-12-04 20:39:08 +01:00
453552f9b1 Add FreeBSD 13 ghcup 2021-12-02 17:47:30 +01:00
9f0a816876 Add HLS-1.5.1 FreeBSD 13 bindist 2021-12-02 15:50:00 +01:00
de121bca52 Update signature 2021-12-02 14:37:38 +01:00
401b308307 Merge remote-tracking branch 'origin/pr/11' 2021-12-02 12:42:51 +01:00
jneira
acfaee0bd5 Complete gitlab artifacts 2021-12-02 10:01:18 +01:00
jneira
e0a863cd53 Add hls-1.5.1 (incomplete) 2021-11-29 22:00:51 +01:00
176d619b1f Add experimental unofficial stack binaries 2021-11-22 18:16:40 +01:00
ffd62a4c32 Uhm 2021-11-18 18:10:37 +01:00
11600fbb34 Fix signature 2021-11-18 18:09:07 +01:00
15c76331f8 Sign 2021-11-18 18:07:24 +01:00
8fd5f30f19 Add HLS-1.5.0 2021-11-18 18:06:56 +01:00
3a7b8e138c Update sig 2021-11-14 12:17:52 +01:00
9fb3a29d64 Bump to 0.1.17.4 2021-11-14 12:17:12 +01:00
e966566fc3 Bump to latest ghcup 2021-11-13 21:21:19 +01:00
0730c8727d Update debian version constraints, fixes #8 2021-10-31 00:29:45 +02:00
837be46b54 Add alpine 32bit 2021-10-29 22:37:15 +02:00
b0afc6ce76 Add ghc-9.2.1 2021-10-29 19:31:13 +02:00
97a0c97074 Merge branch 'ghcup-gen' 2021-10-27 15:48:45 +02:00
f16faca114 Add ghcup-gen 2021-10-27 15:28:43 +02:00
8e457d1870 Set Cabal 3.6.2.0 as recommended 2021-10-27 15:10:29 +02:00
aa77fec353 Update ghcup to 0.1.17.3 2021-10-27 14:26:29 +02:00
8b9e932c2d Merge branch 'CI' 2021-10-27 14:25:50 +02:00
11 changed files with 1090 additions and 142 deletions

View File

@@ -14,6 +14,10 @@ jobs:
YAML_VER: 0.0.6
strategy:
matrix:
ghc:
- '8.10.7'
cabal:
- '3.6.2.0'
os:
- ubuntu-latest
steps:
@@ -22,8 +26,22 @@ jobs:
- uses: haskell/actions/setup@v1.2
with:
ghc-version: 8.10.7
cabal-version: 3.6.2.0
ghc-version: ${{ matrix.ghc }}
cabal-version: ${{ matrix.cabal }}
- name: Cache Cabal
uses: actions/cache@v2
env:
cache-name: cache-cabal
with:
path: |
~/.cabal/store
~/.cabal/packages
key: v2-${{ runner.os }}-${{ matrix.ghc }}-${{ matrix.cabal }}-build-${{ hashFiles('cabal.project') }}
restore-keys: |
v2-${{ runner.os }}-${{ matrix.ghc }}-${{ matrix.cabal }}-build-${{ hashFiles('cabal.project') }}
v2-${{ runner.os }}-${{ matrix.ghc }}-${{ matrix.cabal }}-build-
v2-${{ runner.os }}-${{ matrix.ghc }}
- name: create ~/.local/bin
run: mkdir -p "$HOME/.local/bin"
@@ -39,7 +57,7 @@ jobs:
- name: Install ghcup-gen
run: |
cabal install --installdir="$HOME/.local/bin" --overwrite-policy=always --install-method=copy ghcup
cabal install --installdir="$HOME/.local/bin" --overwrite-policy=always --install-method=copy ghcup-gen
shell: bash
- name: Check

17
.gitignore vendored Normal file
View File

@@ -0,0 +1,17 @@
.ghci
.vim
codex.tags
dist-newstyle/
cabal.project.local
.stack-work/
bin/
/*.prof
/*.ps
/*.hp
tags
TAGS
/tmp/
.entangled
release/
releases/
site/

View File

@@ -7,7 +7,6 @@
3. copy-paste it
4. adjust the version, tags, changelog, source url
5. adjust the various bindist urls (make sure to also change the yaml anchors)
6. build the `ghcup-gen` binary from the [ghcup repo](https://gitlab.haskell.org/haskell/ghcup-hs)
7. run `ghcup-gen -- check -f ghcup-<yaml-ver>.yaml`
8. run `ghcup-gen -- check-tarballs -f ghcup-<yaml-ver>.yaml -u 'ghc-8\.10\.8'`
6. run `cabal run ghcup-gen -- check -f ghcup-<yaml-ver>.yaml`
7. run `cabal run ghcup-gen -- check-tarballs -f ghcup-<yaml-ver>.yaml -u 'ghc-8\.10\.8'`

29
cabal.project Normal file
View File

@@ -0,0 +1,29 @@
packages: ./ghcup-gen/ghcup-gen.cabal
package ghcup
tests: False
flags: -tui +no-exe
source-repository-package
type: git
location: https://gitlab.haskell.org/haskell/ghcup-hs.git
tag: v0.1.17.4
constraints: http-io-streams -brotli,
any.Cabal ==3.6.2.0,
any.aeson >= 2.0.1.0
package libarchive
flags: -system-libarchive
package aeson-pretty
flags: +lib-only
package cabal-plan
flags: -exe
package aeson
flags: +ordered-keymap
allow-newer: base, ghc-prim, template-haskell, language-c

View File

@@ -130,6 +130,9 @@ toolRequirements:
notes: On OS X, in the course of running ghcup you will be given a dialog
box to install the command line tools. Accept and the requirements will
be installed for you. You will then need to run the command again.
On Darwin M1 you might also need a working llvm installed (e.g. via brew)
and have the toolchain exposed in PATH.
FreeBSD:
unknown_versioning:
distroPKGs:
@@ -234,7 +237,7 @@ ghcupDownloads:
viArch:
A_64:
Linux_Debian:
'( >= 7 && < 8 )':
'< 8':
dlUri: https://downloads.haskell.org/~ghc/8.0.2/ghc-8.0.2-x86_64-deb7-linux.tar.xz
dlSubdir: ghc-8.0.2
dlHash: b2f5c304b57ac5840a0d2ef763a3c6fa858c70840f749cfad12ed227da973c0a
@@ -270,7 +273,7 @@ ghcupDownloads:
dlHash: 8c42c1f4af995205b9816a1e97e2752fe758544c1f5fe77958cdcd319c9c2d53
A_32:
Linux_Debian:
'( >= 7 && < 8 )':
'< 8':
dlUri: https://downloads.haskell.org/~ghc/8.0.2/ghc-8.0.2-i386-deb7-linux.tar.xz
dlSubdir: ghc-8.0.2
dlHash: 07ead3a49f8c9df4b429e7a2f96f6f31bcab8d3ff8277a9aed0201d13ddad448
@@ -298,7 +301,7 @@ ghcupDownloads:
viArch:
A_64:
Linux_Debian:
'( >= 7 && < 8 )': &ghc-822-64-deb7
'< 8': &ghc-822-64-deb7
dlUri: https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-x86_64-deb7-linux.tar.xz
dlSubdir: ghc-8.2.2
dlHash: cd7afbca54edf9890da9f432c63366556246c85c1198e40c99df5af01c555834
@@ -339,7 +342,7 @@ ghcupDownloads:
dlHash: 1e033df2092aa546e763e7be63167720b32df64f76673ea1ce7ae7c9f564b223
A_32:
Linux_Debian:
'( >= 7 && < 8 )':
'< 8':
dlUri: https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-i386-deb7-linux.tar.xz
dlSubdir: ghc-8.2.2
dlHash: cd18766b1a9b74fc6c90003a719ecab158f281f9a755d8b1bd3fd764ba6947b5
@@ -426,7 +429,7 @@ ghcupDownloads:
viArch:
A_64:
Linux_Debian:
'( >= 8 && < 9 )':
'< 9':
dlUri: https://downloads.haskell.org/~ghc/8.4.2/ghc-8.4.2-x86_64-deb8-linux.tar.xz
dlSubdir: ghc-8.4.2
dlHash: 246f66eb56f4ad0f1c7755502cfc8f9972f2d067dede17e151f6f479c1f76fbd
@@ -486,7 +489,7 @@ ghcupDownloads:
viArch:
A_64:
Linux_Debian:
'( >= 8 && < 9 )':
'< 9':
dlUri: https://downloads.haskell.org/~ghc/8.4.3/ghc-8.4.3-x86_64-deb8-linux.tar.xz
dlSubdir: ghc-8.4.3
dlHash: 30a402c6d4754a6c020e0547f19ae3ac42e907e35349aa932d347f73e421a8e2
@@ -540,7 +543,7 @@ ghcupDownloads:
viArch:
A_64:
Linux_Debian:
'( >= 8 && < 9 )':
'< 9':
dlUri: https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-deb8-linux.tar.xz
dlSubdir: ghc-8.4.4
dlHash: 4c2a8857f76b7f3e34ecba0b51015d5cb8b767fe5377a7ec477abde10705ab1a
@@ -619,7 +622,7 @@ ghcupDownloads:
viArch:
A_64:
Linux_Debian:
'( >= 8 && < 9 )':
'< 9':
dlUri: https://downloads.haskell.org/~ghc/8.6.1/ghc-8.6.1-x86_64-deb8-linux.tar.xz
dlSubdir: ghc-8.6.1
dlHash: 6d8784401b7dd80c90fa17306ec0539920e3987399a2c7ef247989e53197dc42
@@ -730,7 +733,7 @@ ghcupDownloads:
viArch:
A_64:
Linux_Debian:
'( >= 8 && < 9 )':
'< 9':
dlUri: https://downloads.haskell.org/~ghc/8.6.3/ghc-8.6.3-x86_64-deb8-linux.tar.xz
dlSubdir: ghc-8.6.3
dlHash: 291ca565374f4d51cc311488581f3279d3167a064fabfd4a6722fe2bd4532fd5
@@ -799,7 +802,7 @@ ghcupDownloads:
viArch:
A_64:
Linux_Debian:
'( >= 8 && < 9 )':
'< 9':
dlUri: https://downloads.haskell.org/~ghc/8.6.4/ghc-8.6.4-x86_64-deb8-linux.tar.xz
dlSubdir: ghc-8.6.4
dlHash: 34ef5fc8ddf2fc32a027180bea5b1c8a81ea840c87faace2977a572188d4b42d
@@ -853,7 +856,7 @@ ghcupDownloads:
viArch:
A_64:
Linux_Debian:
'( >= 8 && < 9 )':
'< 9':
dlUri: https://downloads.haskell.org/~ghc/8.6.5/ghc-8.6.5-x86_64-deb8-linux.tar.xz
dlSubdir: ghc-8.6.5
dlHash: c419fd0aa9065fe4d2eb9a248e323860c696ddf3859749ca96a84938aee49107
@@ -938,7 +941,7 @@ ghcupDownloads:
viArch:
A_64:
Linux_Debian:
'( >= 8 && < 9 )':
'< 9':
dlUri: https://downloads.haskell.org/~ghc/8.8.1/ghc-8.8.1-x86_64-deb8-linux.tar.xz
dlSubdir: ghc-8.8.1
dlHash: fd96eb851971fbc3332bf2fa7821732cfa8b37e5a076a69f6a06f83f0ea7ccc5
@@ -1002,7 +1005,7 @@ ghcupDownloads:
viArch:
A_64:
Linux_Debian:
'( >= 8 && < 9 )':
'< 9':
dlUri: https://downloads.haskell.org/~ghc/8.8.2/ghc-8.8.2-x86_64-deb8-linux.tar.xz
dlSubdir: ghc-8.8.2
dlHash: fbe69652eba75dadb758d00292247d17fb018c29cac5acd79843e56311256c9f
@@ -1066,7 +1069,7 @@ ghcupDownloads:
viArch:
A_64:
Linux_Debian:
'( >= 8 && < 9 )':
'< 9':
dlUri: https://downloads.haskell.org/~ghc/8.8.3/ghc-8.8.3-x86_64-deb8-linux.tar.xz
dlSubdir: ghc-8.8.3
dlHash: 92b9fadc442976968d2c190c14e000d737240a7d721581cda8d8741b7bd402f0
@@ -1140,7 +1143,7 @@ ghcupDownloads:
viArch:
A_64:
Linux_Debian:
'( >= 8 && < 9 )':
'< 9':
dlUri: https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-deb8-linux.tar.xz
dlSubdir: ghc-8.8.4
dlHash: 51a36892f1264744195274187298d13ac62bce2da86d4ddf76d8054ab90f2feb
@@ -1219,15 +1222,15 @@ ghcupDownloads:
viArch:
A_64:
Linux_Debian:
'( >= 9 && < 10 )': &ghc-8101-64-deb9
'< 10': &ghc-8101-64-deb9
dlUri: https://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-x86_64-deb9-linux.tar.xz
dlSubdir: ghc-8.10.1
dlHash: d1cf7886f27af070f3b7dbe1975a78b43ef2d32b86362cbe953e79464fe70761
'( >= 10 && < 11 )': &ghc-8101-64-deb10
'>= 10': &ghc-8101-64-deb10
dlUri: https://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-x86_64-deb10-linux.tar.xz
dlSubdir: ghc-8.10.1
dlHash: c1e31d798b013699b3c0de4fda27fb4cda47f572df0e75e3bd598a3012060615
unknown_versioning: *ghc-8101-64-deb9
unknown_versioning: *ghc-8101-64-deb10
Linux_Ubuntu:
unknown_versioning: &ghc-8101-64-fedora
dlUri: https://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-x86_64-fedora27-linux.tar.xz
@@ -1273,7 +1276,7 @@ ghcupDownloads:
dlHash: 38a3166ea50cccd5bae7e1680eae3aae2b4ae31b61f82a1d8168fb821f43bd67
A_32:
Linux_Debian:
'( >= 9 && < 10 )': &ghc-8101-32-deb9
'< 10': &ghc-8101-32-deb9
dlUri: https://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-i386-deb9-linux.tar.xz
dlSubdir: ghc-8.10.1
dlHash: 8b53eef2c827b5f634d72920a93c0c9dd66ea288691a2bfe28def45d3c686ee2
@@ -1314,15 +1317,15 @@ ghcupDownloads:
viArch:
A_64:
Linux_Debian:
'( >= 9 && < 10 )': &ghc-8102-64-deb9
'< 10': &ghc-8102-64-deb9
dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-x86_64-deb9-linux.tar.xz
dlSubdir: ghc-8.10.2
dlHash: 4dbe3b479e76767bfeb4cbb7a4db8b761c4720266193483ca370b2ace3f10f7c
'( >= 10 && < 11 )': &ghc-8102-64-deb10
'>= 10': &ghc-8102-64-deb10
dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-x86_64-deb10-linux.tar.xz
dlSubdir: ghc-8.10.2
dlHash: 94513d82c38c848f489113a75fa5ef4e5a8e3ecfaa74ca90e2620d2193ff1632
unknown_versioning: *ghc-8102-64-deb9
unknown_versioning: *ghc-8102-64-deb10
Linux_Ubuntu:
unknown_versioning: &ghc-8102-64-fedora
dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-x86_64-fedora27-linux.tar.xz
@@ -1368,7 +1371,7 @@ ghcupDownloads:
dlHash: dcae4c173b9896e07ff048de5509aa0a4537233150e06e5ce8848303dfadc176
A_32:
Linux_Debian:
'( >= 9 && < 10 )': &ghc-8102-32-deb9
'< 10': &ghc-8102-32-deb9
dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-i386-deb9-linux.tar.xz
dlSubdir: ghc-8.10.2
dlHash: 9dae2a86ad43d08f72c783542c944d1556b075aa20a8063efae5034ea88e7c2f
@@ -1409,15 +1412,15 @@ ghcupDownloads:
viArch:
A_64:
Linux_Debian:
'( >= 9 && < 10 )': &ghc-8103-64-deb9
'< 10': &ghc-8103-64-deb9
dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-x86_64-deb9-linux.tar.xz
dlSubdir: ghc-8.10.3
dlHash: 95e4aadea30701fe5ab84d15f757926d843ded7115e11c4cd827809ca830718d
'( >= 10 && < 11 )': &ghc-8103-64-deb10
'>= 10': &ghc-8103-64-deb10
dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-x86_64-deb10-linux.tar.xz
dlSubdir: ghc-8.10.3
dlHash: c8f3d9f0e61a89eaba1d3ad8fb2eced1af0e81576811261b887993bee12538ac
unknown_versioning: *ghc-8103-64-deb9
unknown_versioning: *ghc-8103-64-deb10
Linux_Ubuntu:
unknown_versioning: &ghc-8103-64-fedora
dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-x86_64-fedora27-linux.tar.xz
@@ -1463,7 +1466,7 @@ ghcupDownloads:
dlHash: 927a6c699533a115cd49772ef2c753d9af2c13bf9f0b2d3bd13645cc6a144ee3
A_32:
Linux_Debian:
'( >= 9 && < 10 )': &ghc-8103-32-deb9
'< 10': &ghc-8103-32-deb9
dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-i386-deb9-linux.tar.xz
dlSubdir: ghc-8.10.3
dlHash: f0addd2a16b705f58ff9e8702c3ddf3e2d6bd0d3555707b5b5095e51bafee7b1
@@ -1505,15 +1508,15 @@ ghcupDownloads:
viArch:
A_64:
Linux_Debian:
'( >= 9 && < 10 )': &ghc-8104-64-deb9
'< 10': &ghc-8104-64-deb9
dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-x86_64-deb9-linux.tar.xz
dlSubdir: ghc-8.10.4
dlHash: 5694200a5c38f22c142baf850b1d2f3784211d2ec9302e11693259a1ae8e38b7
'( >= 10 && < 11 )': &ghc-8104-64-deb10
'>= 10': &ghc-8104-64-deb10
dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-x86_64-deb10-linux.tar.xz
dlSubdir: ghc-8.10.4
dlHash: 816365565e9927459b035515a7db6a0db62f9796f327389b6f8a0035d12fbda0
unknown_versioning: *ghc-8104-64-deb9
unknown_versioning: *ghc-8104-64-deb10
Linux_Ubuntu:
unknown_versioning: &ghc-8104-64-fedora
dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-x86_64-fedora27-linux.tar.xz
@@ -1559,7 +1562,7 @@ ghcupDownloads:
dlHash: e9175a276504c3390a5e0084954e6997d56078737dbe7158049518892cf6bfb2
A_32:
Linux_Debian:
'( >= 9 && < 10 )': &ghc-8104-32-deb9
'< 10': &ghc-8104-32-deb9
dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-i386-deb9-linux.tar.xz
dlSubdir: ghc-8.10.4
dlHash: 0022c5b9ac22825bb7b4745af3d92cef0ba1ecd01fab3ef387ddbd47146569ad
@@ -1606,15 +1609,15 @@ ghcupDownloads:
viArch:
A_64:
Linux_Debian:
'( >= 9 && < 10 )': &ghc-8105-64-deb9
'< 10': &ghc-8105-64-deb9
dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-x86_64-deb9-linux.tar.xz
dlSubdir: ghc-8.10.5
dlHash: 15e71325c3bdfe3804be0f84c2fc5c913d811322d19b0f4d4cff20f29cdd804d
'( >= 10 && < 11 )': &ghc-8105-64-deb10
'>= 10': &ghc-8105-64-deb10
dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-x86_64-deb10-linux.tar.xz
dlSubdir: ghc-8.10.5
dlHash: bc623c20ca4c5c18e952071ba14aa0cfc5c94d34219bffaa615f7b491f376787
unknown_versioning: *ghc-8105-64-deb9
unknown_versioning: *ghc-8105-64-deb10
Linux_Ubuntu:
unknown_versioning: &ghc-8105-64-fedora
dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-x86_64-fedora27-linux.tar.xz
@@ -1660,7 +1663,7 @@ ghcupDownloads:
dlHash: 4443d989df4f2680f681a4d8b8db310ce9582d21743984016b0eb0163b0c9998
A_32:
Linux_Debian:
'( >= 9 && < 10 )': &ghc-8105-32-deb9
'< 10': &ghc-8105-32-deb9
dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-i386-deb9-linux.tar.xz
dlSubdir: ghc-8.10.5
dlHash: 0ccb5b2c1222374874795c35410754dd650f649b774872abbea2a4ef21ac9c9d
@@ -1708,15 +1711,15 @@ ghcupDownloads:
viArch:
A_64:
Linux_Debian:
'( >= 9 && < 10 )': &ghc-8106-64-deb9
'< 10': &ghc-8106-64-deb9
dlUri: https://downloads.haskell.org/~ghc/8.10.6/ghc-8.10.6-x86_64-deb9-linux.tar.xz
dlSubdir: ghc-8.10.6
dlHash: c14b631437ebc867f1fe1648579bc1dbe1a9b9ad31d7c801c3c77639523a83ae
'( >= 10 && < 11 )': &ghc-8106-64-deb10
'>= 10': &ghc-8106-64-deb10
dlUri: https://downloads.haskell.org/~ghc/8.10.6/ghc-8.10.6-x86_64-deb10-linux.tar.xz
dlSubdir: ghc-8.10.6
dlHash: 95be925e310b8c419e1099d620a727a1ca2d8c918f33eb905a8221d7eb16467b
unknown_versioning: *ghc-8106-64-deb9
unknown_versioning: *ghc-8106-64-deb10
Linux_Ubuntu:
unknown_versioning: &ghc-8106-64-fedora
dlUri: https://downloads.haskell.org/~ghc/8.10.6/ghc-8.10.6-x86_64-fedora27-linux.tar.xz
@@ -1738,9 +1741,9 @@ ghcupDownloads:
unknown_versioning: *ghc-8106-64-centos
Linux_Alpine:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghc/8.10.6/ghc-8.10.6-x86_64-alpine3.10-linux-integer-simple.tar.xz
dlSubdir: ghc-8.10.6-x86_64-unknown-linux
dlHash: f6c86909f665c9a01b9703450a500a5206a951ee43e6a0a227eebe1da0987d6a
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/ghc/8.10.6/ghc-8.10.6-x86_64-alpine-linux-integer-gmp.tar.xz
dlSubdir: ghc-8.10.6
dlHash: 9abde42f1acb713d3423957c13af8c5e654f51126e66586f9b9c4df266c6c044
Linux_AmazonLinux:
unknown_versioning: *ghc-8106-64-centos
Linux_UnknownLinux:
@@ -1762,7 +1765,7 @@ ghcupDownloads:
dlHash: ff62f4a245c2427a1a5e6f5f1c2ad7521f69f9274a27ffb17c76f252ca573f3b
A_32:
Linux_Debian:
'( >= 9 && < 10 )': &ghc-8106-32-deb9
'< 10': &ghc-8106-32-deb9
dlUri: https://downloads.haskell.org/~ghc/8.10.6/ghc-8.10.6-i386-deb9-linux.tar.xz
dlSubdir: ghc-8.10.6
dlHash: 31f934423d7971b462eaa53cf87b15265d11420578c5a8a04304348cb90f1c13
@@ -1809,15 +1812,15 @@ ghcupDownloads:
viArch:
A_64:
Linux_Debian:
'( >= 9 && < 10 )': &ghc-8107-64-deb9
'< 10': &ghc-8107-64-deb9
dlUri: https://downloads.haskell.org/~ghc/8.10.7/ghc-8.10.7-x86_64-deb9-linux.tar.xz
dlSubdir: ghc-8.10.7
dlHash: ced9870ea351af64fb48274b81a664cdb6a9266775f1598a79cbb6fdd5770a23
'( >= 10 && < 11 )': &ghc-8107-64-deb10
'>= 10': &ghc-8107-64-deb10
dlUri: https://downloads.haskell.org/~ghc/8.10.7/ghc-8.10.7-x86_64-deb10-linux.tar.xz
dlSubdir: ghc-8.10.7
dlHash: a13719bca87a0d3ac0c7d4157a4e60887009a7f1a8dbe95c4759ec413e086d30
unknown_versioning: *ghc-8107-64-deb9
unknown_versioning: *ghc-8107-64-deb10
Linux_Ubuntu:
unknown_versioning: &ghc-8107-64-fedora
dlUri: https://downloads.haskell.org/~ghc/8.10.7/ghc-8.10.7-x86_64-fedora27-linux.tar.xz
@@ -1839,9 +1842,9 @@ ghcupDownloads:
unknown_versioning: *ghc-8107-64-centos
Linux_Alpine:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghc/8.10.7/ghc-8.10.7-x86_64-alpine3.10-linux-integer-simple.tar.xz
dlSubdir: ghc-8.10.7-x86_64-unknown-linux
dlHash: 16903df850ef73d5246f2ff169cbf57ecab76c2ac5acfa9928934282cfad575c
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/ghc/8.10.7/ghc-8.10.7-x86_64-alpine-linux-integer-gmp.tar.xz
dlSubdir: ghc-8.10.7
dlHash: fa9fbb921fba5a9482ac009800be43f0fe42c60e54fab55ded9f2327d624cb6d
Linux_AmazonLinux:
unknown_versioning: *ghc-8107-64-centos
Linux_UnknownLinux:
@@ -1863,7 +1866,7 @@ ghcupDownloads:
dlHash: b6515b0ea3f7a6e34d92e7fcd0c1fef50d6030fe8f46883000185289a4b8ea9a
A_32:
Linux_Debian:
'( >= 9 && < 10 )': &ghc-8107-32-deb9
'< 10': &ghc-8107-32-deb9
dlUri: https://downloads.haskell.org/~ghc/8.10.7/ghc-8.10.7-i386-deb9-linux.tar.xz
dlSubdir: ghc-8.10.7
dlHash: fbfc1ef194f4e7a4c0da8c11cc69b17458a4b928b609b3622c97acc4acd5c5ab
@@ -1898,7 +1901,6 @@ ghcupDownloads:
dlHash: 3949c31bdf7d3b4afb765ea8246bca4ca9707c5d988d9961a244f0da100956a2
9.0.1:
viTags:
- Latest
- base-4.15.0.0
viChangeLog: https://downloads.haskell.org/~ghc/9.0.1/docs/html/users_guide/9.0.1-notes.html
viSourceDL:
@@ -1909,15 +1911,15 @@ ghcupDownloads:
viArch:
A_64:
Linux_Debian:
'( >= 9 && < 10 )': &ghc-901-64-deb9
'< 10': &ghc-901-64-deb9
dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-x86_64-deb9-linux.tar.xz
dlSubdir: ghc-9.0.1
dlHash: 4ca6252492f59fe589029fadca4b6f922d6a9f0ff39d19a2bd9886fde4e183d5
'( >= 10 && < 11 )': &ghc-901-64-deb10
'>= 10': &ghc-901-64-deb10
dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-x86_64-deb10-linux.tar.xz
dlSubdir: ghc-9.0.1
dlHash: c253e7eb62cc9da6524c491c85ec8d3727c2ca6035a8653388e636aaa30a2a0f
unknown_versioning: *ghc-901-64-deb9
unknown_versioning: *ghc-901-64-deb10
Linux_Ubuntu:
unknown_versioning: &ghc-901-64-fedora
dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-x86_64-fedora27-linux.tar.xz
@@ -1939,9 +1941,9 @@ ghcupDownloads:
unknown_versioning: *ghc-901-64-centos
Linux_Alpine:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-x86_64-alpine3.10-linux-integer-simple.tar.xz
dlSubdir: ghc-9.0.1-x86_64-unknown-linux
dlHash: 7c1a0154c9e361b75be6cb0305533bb8a3b963c54e8092ffd1759e5710805a5c
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/ghc/9.0.1/ghc-9.0.1-x86_64-alpine-linux-integer-gmp.tar.xz
dlSubdir: ghc-9.0.1
dlHash: 33dd5221ead3c81711f2a21fbf97b411327c837f2d1b8753e2de5e6e63abb805
Linux_AmazonLinux:
unknown_versioning: *ghc-901-64-centos
Linux_UnknownLinux:
@@ -1963,7 +1965,7 @@ ghcupDownloads:
dlHash: 4f4ab118df01cbc7e7c510096deca0cb25025339a97730de0466416296202493
A_32:
Linux_Debian:
'( >= 9 && < 10 )': &ghc-901-32-deb9
'< 10': &ghc-901-32-deb9
dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-i386-deb9-linux.tar.xz
dlSubdir: ghc-9.0.1
dlHash: 880e37cea8328401bcfecfe4bb56eb85195f30135b140140b3f24094264f8ba5
@@ -1991,86 +1993,184 @@ ghcupDownloads:
dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-armv7-deb9-linux.tar.xz
dlSubdir: ghc-9.0.1
dlHash: 6f404f9b88468407b3a9ec5800bcc2d01dd453ef3d63414853b4fbbd4d8df496
9.2.0.20210821:
9.0.2:
viTags:
- Prerelease
- base-4.16.0.0
viChangeLog: https://downloads.haskell.org/~ghc/9.2.1-rc1/docs/html/users_guide/index.html
- base-4.15.1.0
viChangeLog: https://downloads.haskell.org/~ghc/9.0.2/docs/html/users_guide/9.0.2-notes.html
viSourceDL:
dlUri: https://downloads.haskell.org/~ghc/9.2.1-rc1/ghc-9.2.0.20210821-src.tar.xz
dlSubdir: ghc-9.2.0.20210821
dlHash: 7c4772d9a22a1774a13f67a570719c339f744b1607fbddfdf4702bb1fbbd57e0
dlUri: https://downloads.haskell.org/~ghc/9.0.2/ghc-9.0.2-src.tar.xz
dlSubdir: ghc-9.0.2
dlHash: 140e42b96346322d1a39eb17602bcdc76e292028ad4a69286b230bab188a9197
viPostRemove: *ghc-post-remove
viArch:
A_64:
Linux_Debian:
'( >= 9 && < 10 )': &ghc-921-rc1-64-deb9
dlUri: https://downloads.haskell.org/~ghc/9.2.1-rc1/ghc-9.2.0.20210821-x86_64-deb9-linux.tar.xz
dlSubdir: ghc-9.2.0.20210821
dlHash: 4a561cb97f0cbe51de676d4e29968d49beb415a0190514d8f1a8f8ae0405f313
'( >= 10 && < 11 )': &ghc-921-rc1-64-deb10
dlUri: https://downloads.haskell.org/~ghc/9.2.1-rc1/ghc-9.2.0.20210821-x86_64-deb10-linux.tar.xz
dlSubdir: ghc-9.2.0.20210821
dlHash: 28112271739b490635e7fd6ed1936949c3a3c41d4a7d95833bb47f420dd1a815
unknown_versioning: *ghc-921-rc1-64-deb9
'< 10': &ghc-902-64-deb9
dlUri: https://downloads.haskell.org/~ghc/9.0.2/ghc-9.0.2-x86_64-deb9-linux.tar.xz
dlSubdir: ghc-9.0.2
dlHash: 805f5628ce6cec678ba77ff48c924831ebdf75ec2c66368e8935a618913a150e
'>= 10': &ghc-902-64-deb10
dlUri: https://downloads.haskell.org/~ghc/9.0.2/ghc-9.0.2-x86_64-deb10-linux.tar.xz
dlSubdir: ghc-9.0.2
dlHash: 5d0b9414b10cfb918453bcd01c5ea7a1824fe95948b08498d6780f20ba247afc
unknown_versioning: *ghc-902-64-deb10
Linux_Ubuntu:
unknown_versioning: &ghc-921-rc1-64-fedora
dlUri: https://downloads.haskell.org/~ghc/9.2.1-rc1/ghc-9.2.0.20210821-x86_64-fedora27-linux.tar.xz
dlSubdir: ghc-9.2.0.20210821
dlHash: 3c4d3874e4438baf54bdf8bcbdca60a7416ca88c32da1823127dd3159bbede62
'( >= 16 && < 19 )': *ghc-921-rc1-64-deb9
unknown_versioning: &ghc-902-64-fedora
dlUri: https://downloads.haskell.org/~ghc/9.0.2/ghc-9.0.2-x86_64-fedora27-linux.tar.xz
dlSubdir: ghc-9.0.2
dlHash: f42f7bf075665a3971fa0d9b881f1400725e9e6cc3b5067cb83442f578c62691
'( >= 16 && < 19 )': *ghc-902-64-deb9
Linux_Mint:
unknown_versioning: *ghc-921-rc1-64-deb10
unknown_versioning: *ghc-902-64-deb10
Linux_Fedora:
'( >= 27 && < 28 )': *ghc-921-rc1-64-fedora
unknown_versioning: *ghc-921-rc1-64-fedora
Linux_UnknownLinux:
unknown_versioning: *ghc-921-rc1-64-fedora
FreeBSD:
'( >= 27 && < 28 )': *ghc-902-64-fedora
unknown_versioning: *ghc-902-64-fedora
Linux_CentOS:
'( >= 7 && < 8 )': &ghc-902-64-centos
dlUri: https://downloads.haskell.org/~ghc/9.0.2/ghc-9.0.2-x86_64-centos7-linux.tar.xz
dlSubdir: ghc-9.0.2
dlHash: 42c78fa5ca8eb2bc7fabb8b9d7634d5b0ddd81c7fe16d8e212aeb9dac91a4f4e
unknown_versioning: *ghc-902-64-centos
Linux_RedHat:
unknown_versioning: *ghc-902-64-centos
Linux_Alpine:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghc/9.2.1-rc1/ghc-9.2.0.20210821-x86_64-unknown-freebsd.tar.xz
dlSubdir: ghc-9.2.0.20210821
dlHash: ed31d0ca40588fcbed4f03e83e49abea7babb37e528bb36ab3c1fb6191c4c422
dlUri: https://downloads.haskell.org/~ghc/9.0.2/ghc-9.0.2-x86_64-alpine3.12-linux-gmp.tar.xz
dlSubdir: ghc-9.0.2-x86_64-unknown-linux
dlHash: 5bb1e7192c2b9fcff68930dbdc65509d345138e9a43c5d447056a68decc05ec8
Linux_AmazonLinux:
unknown_versioning: *ghc-902-64-centos
Linux_UnknownLinux:
unknown_versioning: *ghc-902-64-fedora
Darwin:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghc/9.2.1-rc1/ghc-9.2.0.20210821-x86_64-apple-darwin.tar.xz
dlSubdir: ghc-9.2.0.20210821-x86_64-apple-darwin
dlHash: 38199ca35117cc1f4372a4b6692596f8639688c286d2a0d09bc7336826c05e10
dlUri: https://downloads.haskell.org/~ghc/9.0.2/ghc-9.0.2-x86_64-apple-darwin.tar.xz
dlSubdir: ghc-9.0.2-x86_64-apple-darwin
dlHash: e1fe990eb987f5c4b03e0396f9c228a10da71769c8a2bc8fadbc1d3b10a0f53a
FreeBSD:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghc/9.0.2/ghc-9.0.2-x86_64-portbld-freebsd.tar.xz
dlSubdir: ghc-9.0.2
dlHash: 1c8057803e3d8dcb86b5e36a1cfcad15d95bdf6a202f4ac614aea5952d34673d
Windows:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghc/9.2.1-rc1/ghc-9.2.0.20210821-x86_64-unknown-mingw32.tar.xz
dlSubdir: ghc-9.2.0.20210821-x86_64-unknown-mingw32
dlHash: 3926620698cb43b9e9a5381b4c3b7b84d22c67b3509a546581aa17afecd6a846
dlUri: https://downloads.haskell.org/~ghc/9.0.2/ghc-9.0.2-x86_64-unknown-mingw32.tar.xz
dlSubdir: ghc-9.0.2-x86_64-unknown-mingw32
dlHash: f6fbb8047ae16049dc6215a6abb652b4307205310bfffddea695a854af92dc99
A_32:
Linux_Debian:
'( >= 9 && < 10 )': &ghc-921-rc1-32-deb9
dlUri: https://downloads.haskell.org/~ghc/9.2.1-rc1/ghc-9.2.0.20210821-i386-deb9-linux.tar.xz
dlSubdir: ghc-9.2.0.20210821
dlHash: 30b25b787a787473988a785606b01099ce077f99d5c08940c0024537433f5084
unknown_versioning: *ghc-921-rc1-32-deb9
'< 10': &ghc-902-32-deb9
dlUri: https://downloads.haskell.org/~ghc/9.0.2/ghc-9.0.2-i386-deb9-linux.tar.xz
dlSubdir: ghc-9.0.2
dlHash: fdeb9f8928fbe994064778a8e1e85bb1a58a6cd3dd7b724fcc2a1dcfda6cad47
unknown_versioning: *ghc-902-32-deb9
Linux_Ubuntu:
unknown_versioning: *ghc-921-rc1-32-deb9
unknown_versioning: *ghc-902-32-deb9
Linux_Mint:
unknown_versioning: *ghc-921-rc1-32-deb9
unknown_versioning: *ghc-902-32-deb9
Linux_UnknownLinux:
unknown_versioning: *ghc-921-rc1-32-deb9
unknown_versioning: *ghc-902-32-deb9
Linux_Alpine:
unknown_versioning:
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/9.0.2/ghc-9.0.2-i386-alpine-linux.tar.xz
dlSubdir: ghc-9.0.2
dlHash: 13d00eacd9a9fdc3453f3cfa43a79ea6ab88746f20622dd50e2c1f4db34c06c9
A_ARM64:
Linux_UnknownLinux:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghc/9.2.1-rc1/ghc-9.2.0.20210821-aarch64-deb10-linux.tar.xz
dlSubdir: ghc-9.2.0.20210821
dlHash: 289fc361be4a3199ac15449e30405a9831454811dd454e81eab73bfcdd2c4088
dlUri: https://downloads.haskell.org/~ghc/9.0.2/ghc-9.0.2-aarch64-deb10-linux.tar.xz
dlSubdir: ghc-9.0.2
dlHash: cb016344c70a872738a24af60bd15d3b18749087b9905c1b3f1b1549dc01f46d
Darwin:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghc/9.2.1-rc1/ghc-9.2.0.20210821-aarch64-apple-darwin.tar.xz
dlSubdir: ghc-9.2.0.20210821-aarch64-apple-darwin
dlHash: 0d763fb619cfa32fa37c113c446e13bebc2215db5946e5fa8fd8400559cf4152
dlUri: https://downloads.haskell.org/~ghc/9.0.2/ghc-9.0.2-aarch64-apple-darwin.tar.xz
dlSubdir: ghc-9.0.2-aarch64-apple-darwin
dlHash: b1fcab17fe48326d2ff302d70c12bc4cf4d570dfbbce68ab57c719cfec882b05
9.2.1:
viTags:
- Latest
- base-4.16.0.0
viChangeLog: https://downloads.haskell.org/~ghc/9.2.1/docs/html/users_guide/index.html
viSourceDL:
dlUri: https://downloads.haskell.org/~ghc/9.2.1/ghc-9.2.1-src.tar.xz
dlSubdir: ghc-9.2.1
dlHash: f444012f97a136d9940f77cdff03fda48f9475e2ed0fec966c4d35c4df55f746
viPostRemove: *ghc-post-remove
viArch:
A_64:
Linux_Debian:
'< 10': &ghc-921-64-deb9
dlUri: https://downloads.haskell.org/~ghc/9.2.1/ghc-9.2.1-x86_64-deb9-linux.tar.xz
dlSubdir: ghc-9.2.1
dlHash: f09133ed735e9f3b221b5ed54787e5651f039ed0f7dab0ab834a27c8ca68fc9b
'>= 10': &ghc-921-64-deb10
dlUri: https://downloads.haskell.org/~ghc/9.2.1/ghc-9.2.1-x86_64-deb10-linux.tar.xz
dlSubdir: ghc-9.2.1
dlHash: 53f1650ed092230480ff5750b94f409e5dfe66bd07ced00bbbcdf5d6b180234c
unknown_versioning: *ghc-921-64-deb10
Linux_Ubuntu:
unknown_versioning: &ghc-921-64-fedora
dlUri: https://downloads.haskell.org/~ghc/9.2.1/ghc-9.2.1-x86_64-fedora27-linux.tar.xz
dlSubdir: ghc-9.2.1
dlHash: e37cd1fe64006dd42f418dacbae3fea0938ce0905407cfc7c3ea61054f5d5329
'( >= 16 && < 19 )': *ghc-921-64-deb9
Linux_Mint:
unknown_versioning: *ghc-921-64-deb10
Linux_Fedora:
'( >= 27 && < 28 )': *ghc-921-64-fedora
unknown_versioning: *ghc-921-64-fedora
Linux_UnknownLinux:
unknown_versioning: *ghc-921-64-fedora
Darwin:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghc/9.2.1/ghc-9.2.1-x86_64-apple-darwin.tar.xz
dlSubdir: ghc-9.2.1-x86_64-apple-darwin
dlHash: c527700a210306098ce85d2c956089deea539aefe1d1816701d5c14cf9c113b7
Windows:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghc/9.2.1/ghc-9.2.1-x86_64-unknown-mingw32.tar.xz
dlSubdir: ghc-9.2.1-x86_64-unknown-mingw32
dlHash: 649e04abd4fa35796070b35de1c353721507a49842b18663aa1c7adc6b4115d8
Linux_Alpine:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghc/9.2.1/ghc-9.2.1-x86_64-alpine3.12-linux-gmp.tar.xz
dlSubdir: ghc-9.2.1-x86_64-unknown-linux
dlHash: 952b37671ef2838961e53949f4eecb4667d57472720058922929005ea7dc5b15
A_32:
Linux_Debian:
'< 10': &ghc-921-32-deb9
dlUri: https://downloads.haskell.org/~ghc/9.2.1/ghc-9.2.1-i386-deb9-linux.tar.xz
dlSubdir: ghc-9.2.1
dlHash: 6daa9e983fbe5af5a3c449c92e5b331d2ecb8e76ea07fc4e237ba5ff27af2c45
unknown_versioning: *ghc-921-32-deb9
Linux_Ubuntu:
unknown_versioning: *ghc-921-32-deb9
Linux_Mint:
unknown_versioning: *ghc-921-32-deb9
Linux_UnknownLinux:
unknown_versioning: *ghc-921-32-deb9
Linux_Alpine:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/ghc/9.2.1/ghc-9.2.1-i386-unknown-linux.tar.xz
dlSubdir: ghc-9.2.1-i386-unknown-linux
dlHash: 92e8c4d3eee1ede5bbc324b3ebad0bdb891413a872335733b754543162dadd98
A_ARM64:
Linux_UnknownLinux:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghc/9.2.1/ghc-9.2.1-aarch64-deb10-linux.tar.xz
dlSubdir: ghc-9.2.1
dlHash: 717d4246a8b407a807048ce6eddb2785aca2e4c73b6b634c01e1726f42d539a1
Darwin:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghc/9.2.1/ghc-9.2.1-aarch64-apple-darwin.tar.xz
dlSubdir: ghc-9.2.1-aarch64-apple-darwin
dlHash: 356b99081ae38ded43b78840d673e8c782e0088e9a2aea0e19faaf677ccb54cf
A_ARM:
Linux_UnknownLinux:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghc/9.2.1-rc1/ghc-9.2.0.20210821-armv7-deb10-linux.tar.xz
dlSubdir: ghc-9.2.0.20210821
dlHash: 9ff0be63191181700a1f51c453056c2dab16e11ecb7a4b1dd72e4b7aad5999a6
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/ghc/9.2.1/ghc-9.2.1-armv7-linux-deb10.tar.xz
dlSubdir: ghc-9.2.1
dlHash: 3bde9deeb6969ff0f5aea566d2602edc57f5f3ca158b4c03f039c44d8c51ea0f
Cabal:
2.4.1.0:
viTags:
@@ -2233,8 +2333,7 @@ ghcupDownloads:
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/3.4.0.0/cabal-install-3.4.0.0-armv7-linux-bootstrapped.tar.xz
dlHash: 16c0d1eaba24bed14f3e152970179a45d9f9bb5cc839b2c210ad06eb7d4826ed
3.4.1.0:
viTags:
- Recommended
viTags: []
viChangeLog: https://github.com/haskell/cabal/blob/master/release-notes/cabal-install-3.4.1.0.md
viArch:
A_64:
@@ -2335,6 +2434,7 @@ ghcupDownloads:
3.6.2.0:
viTags:
- Latest
- Recommended
viChangeLog: https://github.com/haskell/cabal/blob/master/release-notes/cabal-install-3.6.2.0.md
viArch:
A_64:
@@ -2382,7 +2482,7 @@ ghcupDownloads:
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/3.6.2.0/cabal-install-3.6.2.0-armv7-linux-deb10.tar.xz
dlHash: 694ba7c14f8d720c6e790ab0488dbff2d8a07d9c6de97b4deeba31088f825bc2
GHCup:
0.1.17.2:
0.1.17.4:
viTags:
- Recommended
- Latest
@@ -2392,46 +2492,46 @@ ghcupDownloads:
A_64:
Linux_UnknownLinux:
unknown_versioning: &ghcup-64
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.2/x86_64-linux-ghcup-0.1.17.2
dlHash: e9adb022b9bcfe501caca39e76ae7241af0f30fbb466a2202837a7a578607daf
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.4/x86_64-linux-ghcup-0.1.17.4
dlHash: a737cdf850d4874659050968b42745229f44b32cb40f7f3ad90b3820bb969582
Darwin:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.2/x86_64-apple-darwin-ghcup-0.1.17.2
dlHash: 9418dab0f603b25f925739d66ca2328e876ce5197c131d7e75060f8edf7c57c9
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.4/x86_64-apple-darwin-ghcup-0.1.17.4
dlHash: f49841668e224381be8ee63579492ff01dc730019fd0d3047d2628103da9fcbb
FreeBSD:
'( >= 12 && < 13 )':
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.2/x86_64-portbld-freebsd12-ghcup-0.1.17.2
dlHash: b6f0558e66f95a0772a60902c2c96202d0271d8d963db436a1359f1c4e1d2947
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.4/x86_64-freebsd12-ghcup-0.1.17.4
dlHash: 3fd8b644ddee0614cd1aaac8e066f69f13647e76b381f61a68099e29f8e8db53
'( >= 13 )':
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.2/x86_64-portbld-freebsd13-ghcup-0.1.17.2
dlHash: 5bd5760dd29117ca2797a87b79f99b804743e7e64fcdcfe6ad6436314423ef84
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.4/x86_64-freebsd13-ghcup-0.1.17.4
dlHash: 2245bcfbb6a20c400e11726e87610e73968d6611ddfceaa66ebe9ce6ef72e9cf
Windows:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.2/x86_64-mingw64-ghcup-0.1.17.2.exe
dlHash: 17ab704551c691067d590760c513891d0d0d375efb59dc3c99219fdf352fed71
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.4/x86_64-mingw64-ghcup-0.1.17.4.exe
dlHash: e39791a87f4c1561082214b722c982ba92c4c25e1f686f2083872e096cd05280
Linux_Alpine:
unknown_versioning: *ghcup-64
A_32:
Linux_UnknownLinux:
unknown_versioning: &ghcup-32
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.2/i386-linux-ghcup-0.1.17.2
dlHash: eb29a33ed9798c94ed05b10c66c2cd6690a4d5aa79ed7ce6a9b8564e0c095ff4
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.4/i386-linux-ghcup-0.1.17.4
dlHash: 889357956397a4f77eb320e39fc1c628c7c51bd7934095bc87792959ecd0e62d
Linux_Alpine:
unknown_versioning: *ghcup-32
A_ARM64:
Linux_UnknownLinux:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.2/aarch64-linux-ghcup-0.1.17.2
dlHash: ad72641877f91f1cc5142151dafad68566f439114f96a738837ed549430173a5
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.4/aarch64-linux-ghcup-0.1.17.4
dlHash: 5a3075337e638245d182d9d27030cddbd3cb5e3ab8e3e88cd3ae412d2974c4a2
Darwin:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.2/aarch64-apple-darwin-ghcup-0.1.17.2
dlHash: bf8691a88627b02253c2068537dc16e7eb1d3dbb22bcb1342cb7f0d00df08fd5
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.4/aarch64-apple-darwin-ghcup-0.1.17.4
dlHash: 6e7a9c009d152e291ad67f6399ccba87a71f9e9698a9cda3b1854b85bf3c6565
A_ARM:
Linux_UnknownLinux:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.2/armv7-linux-ghcup-0.1.17.2
dlHash: 03f2f8aaa8393372e9f7e16061703eda3f497b9604171825995389f3d5cc8f8f
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.4/armv7-linux-ghcup-0.1.17.4
dlHash: 1ae599a96daf8de717b80a0bf8e7575b533b4baadb5f5720e478146b58e90a2a
HLS:
1.1.0:
viTags:
@@ -2479,7 +2579,8 @@ ghcupDownloads:
Linux_Alpine:
unknown_versioning: *hls-120-64
1.3.0:
viTags: []
viTags:
- old
viChangeLog: https://github.com/haskell/haskell-language-server/blob/master/ChangeLog.md#130
viPostInstall: *hls-post-install
viArch:
@@ -2499,9 +2600,7 @@ ghcupDownloads:
Linux_Alpine:
unknown_versioning: *hls-130-64
1.4.0:
viTags:
- Recommended
- Latest
viTags: []
viChangeLog: https://github.com/haskell/haskell-language-server/blob/master/ChangeLog.md#140
viPostInstall: *hls-post-install
viSourceDL:
@@ -2542,6 +2641,96 @@ ghcupDownloads:
unknown_versioning:
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/haskell-language-server/1.4.0/haskell-language-server-linux-armv7-1.4.0.tar.gz
dlHash: 4a921fbca06b02f3b1c0930cec5e65e9362b603e7715680ec7b150f18bd703d6
1.5.0:
viTags: []
viChangeLog: https://github.com/haskell/haskell-language-server/blob/master/ChangeLog.md#150
viPostInstall: *hls-post-install
viSourceDL:
dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.5.0/haskell-language-server-1.5.0-src.tar.gz
dlSubdir: haskell-language-server-1.5.0
dlHash: fb801c0693cb98446667b94bd858dcaaca2c1e18ec12bf260c4c928023bdfd06
viArch:
A_64:
Linux_UnknownLinux:
unknown_versioning: &hls-150-64
dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.5.0/haskell-language-server-Linux-1.5.0.tar.gz
dlHash: 9fcd5f97de4efa92534b199965aa4aff7907fdc0eff4e2ae5af4c8b33cca2acc
Darwin:
unknown_versioning:
dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.5.0/haskell-language-server-macOS-1.5.0.tar.gz
dlHash: 4557c0692f3ea0fc67e171b80c15dc9556d94853ab7d2f1a5ad882d0c50ce31c
FreeBSD:
unknown_versioning:
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/haskell-language-server/1.5.0/haskell-language-server-FreeBSD-1.5.0.tar.xz
dlHash: a399cb7b2ab76d1d4e481f2dd234da30f78c3f4790bac6a44635f636ce3b4d72
Windows:
unknown_versioning:
dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.5.0/haskell-language-server-Windows-1.5.0.tar.gz
dlHash: 60c4a876181b4372a9b883b9257680517462f0400d9ac0b5aca38cbedb6fec8a
Linux_Alpine:
unknown_versioning: *hls-150-64
A_ARM64:
Linux_UnknownLinux:
unknown_versioning:
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/haskell-language-server/1.5.0/haskell-language-server-linux-aarch64-1.5.0.tar.xz
dlHash: 7310a233094e0d4303f72afbb49b724c68a25a20fcb16354f862dd95ca63ad0a
Darwin:
unknown_versioning:
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/haskell-language-server/1.5.0/haskell-language-server-macOS-aarch64-1.5.0.tar.xz
dlHash: ebabc495c7741bb8969470ac94a6a58e4e88be2feb2ca7e28060ba7dce044b38
A_ARM:
Linux_UnknownLinux:
unknown_versioning:
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/haskell-language-server/1.5.0/haskell-language-server-linux-armv7-1.5.0.tar.xz
dlHash: 7115c5861d8d30206ba2600d1a294539f3a15c09a1cb88ce48ac75dc5034e38a
1.5.1:
viTags:
- Recommended
- Latest
viChangeLog: https://github.com/haskell/haskell-language-server/blob/master/ChangeLog.md#151
viPostInstall: *hls-post-install
viSourceDL:
dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.5.1/haskell-language-server-1.5.1-src.tar.gz
dlSubdir: haskell-language-server-1.5.1
dlHash: fa2b1d39d413283202ee1f75e4ad9fc44544535741370d6f1e63afd5878d9e40
viArch:
A_64:
Linux_UnknownLinux:
unknown_versioning: &hls-151-64
dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.5.1/haskell-language-server-Linux-1.5.1.tar.gz
dlHash: 8c6406f46181f31e2314ec008bd290bfcdfe2c6126851934b3b11d7d0266c554
Darwin:
unknown_versioning:
dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.5.1/haskell-language-server-macOS-1.5.1.tar.gz
dlHash: 9efcff9ed2b8f07176899dfdb1b2ad6161f994e56102cf020cbe9602ad0a0e34
FreeBSD:
'( >= 12 && < 13 )':
dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.5.1/haskell-language-server-FreeBSD-1.5.1.tar.xz
dlHash: 79d0ca919800f361dca9d69ce822b6ac178f60c6594925e24e8931f9328e68c6
'( >= 13 )':
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/haskell-language-server/1.5.1/haskell-language-server-1.5.1.0-x86_64-freebsd13.tar.xz
dlHash: 86152ac4c5400fc17b7459f4f94d2b41395ac6860511db7ca9ba1c41510636b2
Windows:
unknown_versioning:
dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.5.1/haskell-language-server-Windows-1.5.1.tar.gz
dlHash: 353756304f8a912e329a6d18e588560d3ee8d34fe5ca14a0c7adee787d350bb0
Linux_Alpine:
unknown_versioning: *hls-151-64
A_ARM64:
Linux_UnknownLinux:
unknown_versioning:
dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.5.1/haskell-language-server-Linux-aarch64-1.5.1.tar.xz
dlHash: 1f4252132f1eec5d84f5e5b7a296e90f2c8ab401f07f3a3de645110ba0190894
Darwin:
unknown_versioning:
dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.5.1/haskell-language-server-macOS-aarch64-1.5.1.tar.xz
dlHash: af8f5038678f8e16466a885e9d56dc9ae750d1e19426c16716410d032515c7fc
A_ARM:
Linux_UnknownLinux:
unknown_versioning:
dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.5.1/haskell-language-server-Linux-armv7-1.5.1.tar.xz
dlHash: d28beb003581d5a2133099fd59c83a49af850e7b5cbca72fb3df088d218e0f2b
Stack:
2.5.1:
viTags:
@@ -2552,7 +2741,7 @@ ghcupDownloads:
GHC versions you can run the following commands:
stack config set install-ghc false --global
stack config set system-ghc true --global
On windows, you may find the following config options useful too:
skip-msys, extra-path, extra-include-dirs, extra-lib-dirs
@@ -2634,6 +2823,31 @@ ghcupDownloads:
dlHash: e6ba12e0ecabf0df2567d88a0d247da238bc114bcccfca4195f5e86472c9330c
dlSubdir:
RegexDir: "stack-.*"
FreeBSD:
'>= 12':
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/stack/2.7.3/stack-2.7.3-freebsd-x86_64.tar.gz
dlHash: 000ffd88795b628b1438266827894f6af1c5d020217610eda19962915dd935b3
Linux_Alpine:
unknown_versioning: *stack-273-64
A_32:
Linux_UnknownLinux:
unknown_versioning: &stack-273-32
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/stack/2.7.3/stack-2.7.3-linux-i386.tar.gz
dlHash: 507730fcee5289c90811633d48d3ec437f165eec9c700908bbfc1e21c226effd
Linux_Alpine:
unknown_versioning: *stack-273-32
A_ARM64:
Linux_UnknownLinux:
unknown_versioning:
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/stack/2.7.3/stack-2.7.3-linux-aarch64.tar.gz
dlHash: d9721a46fcff2d9873c1bb6310116e21b0a6923fc5c952849843d27f0225c2a2
Darwin:
unknown_versioning:
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/stack/2.7.3/stack-2.7.3-osx-aarch64.tar.gz
dlHash: 9abaf77787cdad8c2db97a087c6295f197f256181602b4424f03220ae21b47d9
A_ARM:
Linux_UnknownLinux:
unknown_versioning:
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/stack/2.7.3/stack-2.7.3-linux-armv7.tar.gz
dlHash: 3e22c66ea38525ca2ee5b0d222c8aa193c50152a53ff2c80ae179a40592512fe

Binary file not shown.

6
ghcup-gen/CHANGELOG.md Normal file
View File

@@ -0,0 +1,6 @@
# Revision history for ghcup-gen
## 0.1.17.3 -- 2021-10-27
* First release (split from ghcup)

165
ghcup-gen/LICENSE Normal file
View File

@@ -0,0 +1,165 @@
GNU LESSER GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
This version of the GNU Lesser General Public License incorporates
the terms and conditions of version 3 of the GNU General Public
License, supplemented by the additional permissions listed below.
0. Additional Definitions.
As used herein, "this License" refers to version 3 of the GNU Lesser
General Public License, and the "GNU GPL" refers to version 3 of the GNU
General Public License.
"The Library" refers to a covered work governed by this License,
other than an Application or a Combined Work as defined below.
An "Application" is any work that makes use of an interface provided
by the Library, but which is not otherwise based on the Library.
Defining a subclass of a class defined by the Library is deemed a mode
of using an interface provided by the Library.
A "Combined Work" is a work produced by combining or linking an
Application with the Library. The particular version of the Library
with which the Combined Work was made is also called the "Linked
Version".
The "Minimal Corresponding Source" for a Combined Work means the
Corresponding Source for the Combined Work, excluding any source code
for portions of the Combined Work that, considered in isolation, are
based on the Application, and not on the Linked Version.
The "Corresponding Application Code" for a Combined Work means the
object code and/or source code for the Application, including any data
and utility programs needed for reproducing the Combined Work from the
Application, but excluding the System Libraries of the Combined Work.
1. Exception to Section 3 of the GNU GPL.
You may convey a covered work under sections 3 and 4 of this License
without being bound by section 3 of the GNU GPL.
2. Conveying Modified Versions.
If you modify a copy of the Library, and, in your modifications, a
facility refers to a function or data to be supplied by an Application
that uses the facility (other than as an argument passed when the
facility is invoked), then you may convey a copy of the modified
version:
a) under this License, provided that you make a good faith effort to
ensure that, in the event an Application does not supply the
function or data, the facility still operates, and performs
whatever part of its purpose remains meaningful, or
b) under the GNU GPL, with none of the additional permissions of
this License applicable to that copy.
3. Object Code Incorporating Material from Library Header Files.
The object code form of an Application may incorporate material from
a header file that is part of the Library. You may convey such object
code under terms of your choice, provided that, if the incorporated
material is not limited to numerical parameters, data structure
layouts and accessors, or small macros, inline functions and templates
(ten or fewer lines in length), you do both of the following:
a) Give prominent notice with each copy of the object code that the
Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the object code with a copy of the GNU GPL and this license
document.
4. Combined Works.
You may convey a Combined Work under terms of your choice that,
taken together, effectively do not restrict modification of the
portions of the Library contained in the Combined Work and reverse
engineering for debugging such modifications, if you also do each of
the following:
a) Give prominent notice with each copy of the Combined Work that
the Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the Combined Work with a copy of the GNU GPL and this license
document.
c) For a Combined Work that displays copyright notices during
execution, include the copyright notice for the Library among
these notices, as well as a reference directing the user to the
copies of the GNU GPL and this license document.
d) Do one of the following:
0) Convey the Minimal Corresponding Source under the terms of this
License, and the Corresponding Application Code in a form
suitable for, and under terms that permit, the user to
recombine or relink the Application with a modified version of
the Linked Version to produce a modified Combined Work, in the
manner specified by section 6 of the GNU GPL for conveying
Corresponding Source.
1) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (a) uses at run time
a copy of the Library already present on the user's computer
system, and (b) will operate properly with a modified version
of the Library that is interface-compatible with the Linked
Version.
e) Provide Installation Information, but only if you would otherwise
be required to provide such information under section 6 of the
GNU GPL, and only to the extent that such information is
necessary to install and execute a modified version of the
Combined Work produced by recombining or relinking the
Application with a modified version of the Linked Version. (If
you use option 4d0, the Installation Information must accompany
the Minimal Corresponding Source and Corresponding Application
Code. If you use option 4d1, you must provide the Installation
Information in the manner specified by section 6 of the GNU GPL
for conveying Corresponding Source.)
5. Combined Libraries.
You may place library facilities that are a work based on the
Library side by side in a single library together with other library
facilities that are not Applications and are not covered by this
License, and convey such a combined library under terms of your
choice, if you do both of the following:
a) Accompany the combined library with a copy of the same work based
on the Library, uncombined with any other library facilities,
conveyed under the terms of this License.
b) Give prominent notice with the combined library that part of it
is a work based on the Library, and explaining where to find the
accompanying uncombined form of the same work.
6. Revised Versions of the GNU Lesser General Public License.
The Free Software Foundation may publish revised and/or new versions
of the GNU Lesser General Public License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the
Library as you received it specifies that a certain numbered version
of the GNU Lesser General Public License "or any later version"
applies to it, you have the option of following the terms and
conditions either of that published version or of any later version
published by the Free Software Foundation. If the Library as you
received it does not specify a version number of the GNU Lesser
General Public License, you may choose any version of the GNU Lesser
General Public License ever published by the Free Software Foundation.
If the Library as you received it specifies that a proxy can decide
whether future versions of the GNU Lesser General Public License shall
apply, that proxy's public statement of acceptance of any version is
permanent authorization for you to choose that version for the
Library.

155
ghcup-gen/Main.hs Normal file
View File

@@ -0,0 +1,155 @@
{-# LANGUAGE CPP #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TypeApplications #-}
module Main where
import GHCup.Types
import GHCup.Errors
import GHCup.Platform
import GHCup.Utils.Dirs
import GHCup.Utils.Logger
import GHCup.Types.JSON ( )
import Control.Exception ( displayException )
import Control.Monad.Trans.Reader ( runReaderT )
import Control.Monad.IO.Class
import Data.Char ( toLower )
import Data.Maybe
#if !MIN_VERSION_base(4,13,0)
import Data.Semigroup ( (<>) )
#endif
import Options.Applicative hiding ( style )
import Haskus.Utils.Variant.Excepts
import System.Console.Pretty
import System.Environment
import System.Exit
import System.IO ( stderr )
import Text.Regex.Posix
import Validate
import Text.PrettyPrint.HughesPJClass ( prettyShow )
import qualified Data.Text.IO as T
import qualified Data.Text as T
import qualified Data.ByteString as B
import qualified Data.Yaml.Aeson as Y
data Options = Options
{ optCommand :: Command
}
data Command = ValidateYAML ValidateYAMLOpts
| ValidateTarballs ValidateYAMLOpts TarballFilter
data Input
= FileInput FilePath -- optsparse-applicative doesn't handle ByteString correctly anyway
| StdInput
fileInput :: Parser Input
fileInput =
FileInput
<$> strOption
(long "file" <> short 'f' <> metavar "FILENAME" <> help
"Input file to validate"
)
stdInput :: Parser Input
stdInput = flag'
StdInput
(short 'i' <> long "stdin" <> help "Validate from stdin (default)")
inputP :: Parser Input
inputP = fileInput <|> stdInput
data ValidateYAMLOpts = ValidateYAMLOpts
{ vInput :: Maybe Input
}
validateYAMLOpts :: Parser ValidateYAMLOpts
validateYAMLOpts = ValidateYAMLOpts <$> optional inputP
tarballFilterP :: Parser TarballFilter
tarballFilterP = option readm $
long "tarball-filter" <> short 'u' <> metavar "<tool>-<version>" <> value def
<> help "Only check certain tarballs (format: <tool>-<version>)"
where
def = TarballFilter (Right Nothing) (makeRegex ("" :: String))
readm = do
s <- str
case span (/= '-') s of
(_, []) -> fail "invalid format, missing '-' after the tool name"
(t, v) | [tool] <- [ tool | tool <- [minBound..maxBound], low (show tool) == low t ] ->
pure (TarballFilter $ Right $ Just tool) <*> makeRegexOptsM compIgnoreCase execBlank (drop 1 v)
(t, v) | [tool] <- [ tool | tool <- [minBound..maxBound], low (show tool) == low t ] ->
pure (TarballFilter $ Left tool) <*> makeRegexOptsM compIgnoreCase execBlank (drop 1 v)
_ -> fail "invalid tool"
low = fmap toLower
opts :: Parser Options
opts = Options <$> com
com :: Parser Command
com = subparser
( command
"check"
( ValidateYAML
<$> info (validateYAMLOpts <**> helper)
(progDesc "Validate the YAML")
)
<> command
"check-tarballs"
(info
((ValidateTarballs <$> validateYAMLOpts <*> tarballFilterP) <**> helper)
(progDesc "Validate all tarballs (download and checksum)")
)
)
main :: IO ()
main = do
no_color <- isJust <$> lookupEnv "NO_COLOR"
let loggerConfig = LoggerConfig { lcPrintDebug = True
, consoleOutter = T.hPutStr stderr
, fileOutter = \_ -> pure ()
, fancyColors = not no_color
}
dirs <- liftIO getAllDirs
let leanAppstate = LeanAppState (Settings True 0 False Never Curl True GHCupURL False GPGNone False) dirs defaultKeyBindings loggerConfig
pfreq <- (
flip runReaderT leanAppstate . runE @'[NoCompatiblePlatform, NoCompatibleArch, DistroNotFound] $ platformRequest
) >>= \case
VRight r -> pure r
VLeft e -> do
flip runReaderT leanAppstate $ logError $ T.pack $ prettyShow e
liftIO $ exitWith (ExitFailure 2)
let appstate = AppState (Settings True 0 False Never Curl True GHCupURL False GPGNone False) dirs defaultKeyBindings (GHCupInfo mempty mempty mempty) pfreq loggerConfig
_ <- customExecParser (prefs showHelpOnError) (info (opts <**> helper) idm)
>>= \Options {..} -> case optCommand of
ValidateYAML vopts -> withValidateYamlOpts vopts (\dl m -> flip runReaderT appstate $ validate dl m)
ValidateTarballs vopts tarballFilter -> withValidateYamlOpts vopts (\dl m -> flip runReaderT appstate $ validateTarballs tarballFilter dl m)
pure ()
where
withValidateYamlOpts vopts f = case vopts of
ValidateYAMLOpts { vInput = Nothing } ->
B.getContents >>= valAndExit f
ValidateYAMLOpts { vInput = Just StdInput } ->
B.getContents >>= valAndExit f
ValidateYAMLOpts { vInput = Just (FileInput file) } ->
B.readFile file >>= valAndExit f
valAndExit f contents = do
(GHCupInfo _ av gt) <- case Y.decodeEither' contents of
Right r -> pure r
Left e -> die (color Red $ displayException e)
f av gt
>>= exitWith

280
ghcup-gen/Validate.hs Normal file
View File

@@ -0,0 +1,280 @@
{-# LANGUAGE CPP #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE ViewPatterns #-}
{-# LANGUAGE OverloadedStrings #-}
module Validate where
import GHCup
import GHCup.Download
import GHCup.Errors
import GHCup.Types
import GHCup.Types.Optics
import GHCup.Utils
import GHCup.Utils.Logger
import GHCup.Utils.Version.QQ
import Codec.Archive
import Control.Applicative
import Control.Exception.Safe
import Control.Monad
import Control.Monad.IO.Class
import Control.Monad.Reader.Class
import Control.Monad.Trans.Class ( lift )
import Control.Monad.Trans.Reader ( runReaderT )
import Control.Monad.Trans.Resource ( runResourceT
, MonadUnliftIO
)
import Data.Containers.ListUtils ( nubOrd )
import Data.IORef
import Data.List
import Data.Versions
import Haskus.Utils.Variant.Excepts
import Optics
import System.FilePath
import System.Exit
import Text.ParserCombinators.ReadP
import Text.PrettyPrint.HughesPJClass ( prettyShow )
import Text.Regex.Posix
import qualified Data.Map.Strict as M
import qualified Data.Text as T
import qualified Data.Version as V
data ValidationError = InternalError String
deriving Show
instance Exception ValidationError
addError :: (MonadReader (IORef Int) m, MonadIO m, Monad m) => m ()
addError = do
ref <- ask
liftIO $ modifyIORef ref (+ 1)
validate :: (Monad m, MonadReader env m, HasLog env, MonadThrow m, MonadIO m, MonadUnliftIO m)
=> GHCupDownloads
-> M.Map GlobalTool DownloadInfo
-> m ExitCode
validate dls _ = do
ref <- liftIO $ newIORef 0
-- verify binary downloads --
flip runReaderT ref $ do
-- unique tags
forM_ (M.toList dls) $ \(t, _) -> checkUniqueTags t
-- required platforms
forM_ (M.toList dls) $ \(t, versions) ->
forM_ (M.toList versions) $ \(v, vi) ->
forM_ (M.toList $ _viArch vi) $ \(arch, pspecs) -> do
checkHasRequiredPlatforms t v (_viTags vi) arch (M.keys pspecs)
checkGHCVerIsValid
forM_ (M.toList dls) $ \(t, _) -> checkMandatoryTags t
_ <- checkGHCHasBaseVersion
-- exit
e <- liftIO $ readIORef ref
if e > 0
then pure $ ExitFailure e
else do
lift $ logInfo "All good"
pure ExitSuccess
where
checkHasRequiredPlatforms t v tags arch pspecs = do
let v' = prettyVer v
arch' = prettyShow arch
when (Linux UnknownLinux `notElem` pspecs) $ do
lift $ logError $
"Linux UnknownLinux missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
addError
when ((Darwin `notElem` pspecs) && arch == A_64) $ do
lift $ logError $ "Darwin missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
addError
when ((FreeBSD `notElem` pspecs) && arch == A_64) $ lift $ logWarn $
"FreeBSD missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
when (Windows `notElem` pspecs && arch == A_64) $ do
lift $ logError $ "Windows missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
addError
-- alpine needs to be set explicitly, because
-- we cannot assume that "Linux UnknownLinux" runs on Alpine
-- (although it could be static)
when (Linux Alpine `notElem` pspecs) $
case t of
GHCup | arch `elem` [A_64, A_32] -> lift (logError $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch)) >> addError
Cabal | v > [vver|2.4.1.0|]
, arch `elem` [A_64, A_32] -> lift (logError $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch)) >> addError
GHC | Latest `elem` tags || Recommended `elem` tags
, arch `elem` [A_64, A_32] -> lift (logError $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch))
_ -> lift $ logWarn $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch)
checkUniqueTags tool = do
let allTags = _viTags =<< M.elems (availableToolVersions dls tool)
let nonUnique =
fmap fst
. filter (\(_, b) -> not b)
<$> ( mapM
(\case
[] -> throwM $ InternalError "empty inner list"
(t : ts) ->
pure $ (t, ) (not (isUniqueTag t) || null ts)
)
. group
. sort
$ allTags
)
case join nonUnique of
[] -> pure ()
xs -> do
lift $ logError $ "Tags not unique for " <> T.pack (prettyShow tool) <> ": " <> T.pack (prettyShow xs)
addError
where
isUniqueTag Latest = True
isUniqueTag Recommended = True
isUniqueTag Old = False
isUniqueTag Prerelease = False
isUniqueTag (Base _) = False
isUniqueTag (UnknownTag _) = False
checkGHCVerIsValid = do
let ghcVers = toListOf (ix GHC % to M.keys % folded) dls
forM_ ghcVers $ \v ->
case [ x | (x,"") <- readP_to_S V.parseVersion (T.unpack . prettyVer $ v) ] of
[_] -> pure ()
_ -> do
lift $ logError $ "GHC version " <> prettyVer v <> " is not valid"
addError
-- a tool must have at least one of each mandatory tags
checkMandatoryTags tool = do
let allTags = _viTags =<< M.elems (availableToolVersions dls tool)
forM_ [Latest, Recommended] $ \t -> case t `elem` allTags of
False -> do
lift $ logError $ "Tag " <> T.pack (prettyShow t) <> " missing from " <> T.pack (prettyShow tool)
addError
True -> pure ()
-- all GHC versions must have a base tag
checkGHCHasBaseVersion = do
let allTags = M.toList $ availableToolVersions dls GHC
forM allTags $ \(ver, _viTags -> tags) -> case any isBase tags of
False -> do
lift $ logError $ "Base tag missing from GHC ver " <> prettyVer ver
addError
True -> pure ()
isBase (Base _) = True
isBase _ = False
data TarballFilter = TarballFilter
{ tfTool :: Either GlobalTool (Maybe Tool)
, tfVersion :: Regex
}
validateTarballs :: ( Monad m
, MonadReader env m
, HasLog env
, HasDirs env
, HasSettings env
, MonadThrow m
, MonadIO m
, MonadUnliftIO m
, MonadMask m
, Alternative m
, MonadFail m
)
=> TarballFilter
-> GHCupDownloads
-> M.Map GlobalTool DownloadInfo
-> m ExitCode
validateTarballs (TarballFilter etool versionRegex) dls gt = do
ref <- liftIO $ newIORef 0
-- download/verify all tarballs
let dlis = either (const []) (\tool -> nubOrd $ dls ^.. each %& indices (maybe (const True) (==) tool) %> each %& indices (matchTest versionRegex . T.unpack . prettyVer) % (viSourceDL % _Just `summing` viArch % each % each % each)) etool
let gdlis = nubOrd $ gt ^.. each
let allDls = either (const gdlis) (const dlis) etool
when (null allDls) $ logError "no tarballs selected by filter" *> runReaderT addError ref
forM_ allDls (downloadAll ref)
-- exit
e <- liftIO $ readIORef ref
if e > 0
then pure $ ExitFailure e
else do
logInfo "All good"
pure ExitSuccess
where
downloadAll :: ( MonadUnliftIO m
, MonadIO m
, MonadReader env m
, HasLog env
, HasDirs env
, HasSettings env
, MonadCatch m
, MonadMask m
, MonadThrow m
)
=> IORef Int
-> DownloadInfo
-> m ()
downloadAll ref dli = do
r <- runResourceT
. runE @'[DigestError
, GPGError
, DownloadFailed
, UnknownArchive
, ArchiveResult
]
$ do
case etool of
Right (Just GHCup) -> do
tmpUnpack <- lift mkGhcupTmpDir
_ <- liftE $ download (_dlUri dli) Nothing (Just (_dlHash dli)) tmpUnpack Nothing False
pure Nothing
Right _ -> do
p <- liftE $ downloadCached dli Nothing
fmap (Just . head . splitDirectories . head)
. liftE
. getArchiveFiles
$ p
Left ShimGen -> do
tmpUnpack <- lift mkGhcupTmpDir
_ <- liftE $ download (_dlUri dli) Nothing (Just (_dlHash dli)) tmpUnpack Nothing False
pure Nothing
case r of
VRight (Just basePath) -> do
case _dlSubdir dli of
Just (RealDir prel) -> do
logInfo
$ " verifying subdir: " <> T.pack prel
when (basePath /= prel) $ do
logError $
"Subdir doesn't match: expected " <> T.pack prel <> ", got " <> T.pack basePath
runReaderT addError ref
Just (RegexDir regexString) -> do
logInfo $
"verifying subdir (regex): " <> T.pack regexString
let regex = makeRegexOpts
compIgnoreCase
execBlank
regexString
unless (match regex basePath) $ do
logError $
"Subdir doesn't match: expected regex " <> T.pack regexString <> ", got " <> T.pack basePath
runReaderT addError ref
Nothing -> pure ()
VRight Nothing -> pure ()
VLeft e -> do
logError $
"Could not download (or verify hash) of " <> T.pack (show dli) <> ", Error was: " <> T.pack (prettyShow e)
runReaderT addError ref

65
ghcup-gen/ghcup-gen.cabal Normal file
View File

@@ -0,0 +1,65 @@
cabal-version: 3.0
name: ghcup-gen
version: 0.1.17.3
license: LGPL-3.0-only
license-file: LICENSE
copyright: Julian Ospald 2020
maintainer: hasufell@posteo.de
author: Julian Ospald
homepage: https://github.com/haskell/ghcup-metadata
bug-reports: https://github.com/haskell/ghcup-metadata/issues
synopsis: ghcup-gen dev tool
description: Dev tool for handling ghcup metadata
category: System
build-type: Simple
extra-doc-files:
CHANGELOG.md
source-repository head
type: git
location: https://github.com/haskell/ghcup-metadata.git
executable ghcup-gen
main-is: Main.hs
other-modules: Validate
default-language: Haskell2010
default-extensions:
DeriveGeneric
LambdaCase
MultiWayIf
NamedFieldPuns
PackageImports
QuasiQuotes
RecordWildCards
ScopedTypeVariables
StrictData
TupleSections
TypeApplications
TypeFamilies
ViewPatterns
ghc-options:
-Wall -fwarn-tabs -fwarn-incomplete-uni-patterns
-fwarn-incomplete-record-updates -threaded
build-depends:
, base >=4.13 && <5
, bytestring ^>=0.10
, containers ^>=0.6
, filepath ^>=1.4.2.1
, ghcup ^>=0.1.17.3
, haskus-utils-variant ^>=3.2
, libarchive ^>=3.0.3.0
, mtl ^>=2.2
, optics ^>=0.4
, optparse-applicative >=0.15.1.0 && <0.17
, pretty ^>=1.1.3.1
, pretty-terminal ^>=0.1.0.0
, regex-posix ^>=0.96
, resourcet ^>=1.2.2
, safe-exceptions ^>=0.1
, text ^>=1.2.4.0
, transformers ^>=0.5
, versions >=4.0.1 && <5.1
, yaml-streamly ^>=0.12.0