Compare commits
141 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
45db7a6349
|
|||
|
b29358a3ce
|
|||
|
448e6b65a1
|
|||
|
f79a614842
|
|||
|
38af24534d
|
|||
|
70f6aa4112
|
|||
|
34414b4a6b
|
|||
|
cea865595a
|
|||
|
3f891cc56a
|
|||
|
fd71594ee6
|
|||
|
8a0fcd3172
|
|||
|
c5d3930c8f
|
|||
|
36dd18eeb5
|
|||
|
4f8ca555fd
|
|||
|
|
03e9916d24 | ||
|
|
7737f5decf | ||
|
|
ba07fa8baa | ||
|
|
e8336c3093 | ||
|
|
7381149b4e | ||
|
|
ca7416674e | ||
|
|
ab7231f10f | ||
|
|
99133d949a | ||
|
|
02588b8025 | ||
|
9c78f17415
|
|||
|
33cb0e8708
|
|||
|
bc72af60ca
|
|||
|
320f96acf7
|
|||
|
|
f013568183 | ||
|
86da8c3dfe
|
|||
|
|
0bdb62c58e | ||
|
|
0c0736526a | ||
|
ff79db284a
|
|||
|
86c7f4374a
|
|||
|
25a2382694
|
|||
|
|
928375fa74 | ||
|
29c04ab231
|
|||
|
1a87f77dda
|
|||
|
fc911e1099
|
|||
|
|
2cc783fcab | ||
|
548aa90553
|
|||
|
90571cee09
|
|||
|
540ee16e8e
|
|||
|
|
19bc7f338e | ||
|
7ec72168b0
|
|||
|
d819e05b93
|
|||
|
42f43a6b2d
|
|||
|
012fbb3f13
|
|||
|
3fe6f8d804
|
|||
|
|
bbcf300e90 | ||
|
38062b4b0d
|
|||
|
81e04c51f1
|
|||
|
ab64d11db6
|
|||
|
4b22e690e7
|
|||
|
a81cfd135b
|
|||
|
a8f55748cd
|
|||
|
2abf4f081b
|
|||
|
1819b160ee
|
|||
|
437a84e8d9
|
|||
|
ac3cfb6193
|
|||
|
2c562f8eec
|
|||
|
a47c62ab54
|
|||
|
d54710d917
|
|||
|
1eb6f3f256
|
|||
|
3a9d5453fc
|
|||
|
366153c3c6
|
|||
|
85d1172440
|
|||
|
f7e62e1061
|
|||
|
7d8f7eaf66
|
|||
|
26e6477f3c
|
|||
|
855a7a9bcf
|
|||
|
abf57dbe8c
|
|||
|
fbf06cc9ee
|
|||
|
5f4cd00631
|
|||
|
ff2b373807
|
|||
|
ac808aebbd
|
|||
|
bb8c6b8d34
|
|||
|
88696a0cc5
|
|||
|
c9384767ac
|
|||
|
359ed3103a
|
|||
|
ba42ed295f
|
|||
|
7ab9f62645
|
|||
|
9d2ebcb74d
|
|||
|
4c23f6a49e
|
|||
|
3683db0155
|
|||
|
cc4bf53a23
|
|||
|
40bf6cd44b
|
|||
|
3ad280534b
|
|||
|
40be6ebe7a
|
|||
|
7eac30f2d9
|
|||
|
afcb5ff508
|
|||
|
b8907c7c14
|
|||
|
df8ab38e1f
|
|||
|
6fae2f7bc2
|
|||
|
0371870d77
|
|||
|
03f047e369
|
|||
|
2bedba1205
|
|||
|
3c9c41f9a7
|
|||
|
b1d0995221
|
|||
|
c12e652817
|
|||
|
80b61ee4b7
|
|||
|
a5c26cedb3
|
|||
|
ee446fb9f9
|
|||
|
81fe5fc42e
|
|||
|
1dea46b148
|
|||
|
d68f918a6d
|
|||
|
|
8e59562a96 | ||
|
|
9f06e257e0 | ||
|
0470341203
|
|||
|
0ccf71d8b9
|
|||
|
|
a7ceeca0f0 | ||
|
|
e22bba40c3 | ||
|
c43df2e806
|
|||
|
349f72488c
|
|||
|
cbc7043918
|
|||
|
610714d15f
|
|||
|
fd8e23873a
|
|||
|
37e87912c3
|
|||
|
b24fff8359
|
|||
|
e199e9bc99
|
|||
|
453552f9b1
|
|||
|
9f0a816876
|
|||
|
de121bca52
|
|||
|
401b308307
|
|||
|
|
acfaee0bd5 | ||
|
|
e0a863cd53 | ||
|
176d619b1f
|
|||
|
ffd62a4c32
|
|||
|
11600fbb34
|
|||
|
15c76331f8
|
|||
|
8fd5f30f19
|
|||
|
3a7b8e138c
|
|||
|
9fb3a29d64
|
|||
|
e966566fc3
|
|||
|
0730c8727d
|
|||
|
837be46b54
|
|||
|
b0afc6ce76
|
|||
|
97a0c97074
|
|||
|
f16faca114
|
|||
|
8e457d1870
|
|||
|
aa77fec353
|
|||
|
8b9e932c2d
|
92
.github/workflows/bindists.yaml
vendored
Normal file
92
.github/workflows/bindists.yaml
vendored
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
name: Bindist installation
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
shell: bash
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
tool:
|
||||||
|
description: Tool
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
version:
|
||||||
|
description: Version
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
metadataFile:
|
||||||
|
description: Metadata file
|
||||||
|
required: true
|
||||||
|
default: ghcup-0.0.7.yaml
|
||||||
|
type: string
|
||||||
|
env:
|
||||||
|
BOOTSTRAP_HASKELL_NONINTERACTIVE: 1
|
||||||
|
BOOTSTRAP_HASKELL_MINIMAL: 1
|
||||||
|
BOOTSTRAP_HASKELL_ADJUST_BASHRC: 1
|
||||||
|
TOOL: ${{ github.event.inputs.tool }}
|
||||||
|
VERSION: ${{ github.event.inputs.version }}
|
||||||
|
METADATA_FILE: ${{ github.event.inputs.metadataFile }}
|
||||||
|
jobs:
|
||||||
|
bindist-install:
|
||||||
|
name: linux-${{ matrix.image }}
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- image: alpine:latest
|
||||||
|
installCmd: apk update && apk add
|
||||||
|
toolRequirements: binutils-gold curl gcc g++ gmp-dev libc-dev libffi-dev make musl-dev ncurses-dev perl tar xz
|
||||||
|
- image: debian:9
|
||||||
|
installCmd: apt-get update && apt-get install -y
|
||||||
|
toolRequirements: build-essential curl libffi-dev libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
|
||||||
|
- image: debian:10
|
||||||
|
installCmd: apt-get update && apt-get install -y
|
||||||
|
toolRequirements: build-essential curl libffi-dev libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
|
||||||
|
- image: debian:11
|
||||||
|
installCmd: apt-get update && apt-get install -y
|
||||||
|
toolRequirements: build-essential curl libffi-dev libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
|
||||||
|
- image: ubuntu:18.04
|
||||||
|
installCmd: apt-get update && apt-get install -y
|
||||||
|
toolRequirements: build-essential curl libffi-dev libffi6 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
|
||||||
|
- image: ubuntu:20.04
|
||||||
|
installCmd: apt-get update && apt-get install -y
|
||||||
|
toolRequirements: build-essential curl libffi-dev libffi7 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
|
||||||
|
- image: ubuntu:22.04
|
||||||
|
installCmd: apt-get update && apt-get install -y
|
||||||
|
toolRequirements: build-essential curl libffi-dev libffi7 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
|
||||||
|
- image: archlinux:latest
|
||||||
|
installCmd: pacman -Syu --noconfirm
|
||||||
|
toolRequirements: which gcc gmp libffi make ncurses perl tar xz
|
||||||
|
- image: fedora:latest
|
||||||
|
installCmd: dnf install -y
|
||||||
|
toolRequirements: which gcc g++ gmp gmp-devel make ncurses ncurses-compat-libs xz perl
|
||||||
|
- image: linuxmintd/mint19.3-amd64
|
||||||
|
installCmd: apt-get update && apt-get install -y
|
||||||
|
toolRequirements: build-essential curl libffi-dev libffi6 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
|
||||||
|
- image: linuxmintd/mint20.2-amd64
|
||||||
|
installCmd: apt-get update && apt-get install -y
|
||||||
|
toolRequirements: build-essential curl libffi-dev libffi7 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
|
||||||
|
container:
|
||||||
|
image: ${{ matrix.image }}
|
||||||
|
steps:
|
||||||
|
- name: Install requirements
|
||||||
|
shell: sh
|
||||||
|
run: |
|
||||||
|
${{ matrix.installCmd }} curl bash git ${{ matrix.toolRequirements }}
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- name: Install ghcup and bindist for ${{ github.event.inputs.tool }} ${{ github.event.inputs.version }}
|
||||||
|
run: .github/workflows/install-bindist.sh
|
||||||
|
bindist-install-non-linux:
|
||||||
|
name: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
os:
|
||||||
|
- macos-11
|
||||||
|
- macos-12
|
||||||
|
- windows-latest
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- name: Install ghcup and bindist for ${{ github.event.inputs.tool }} ${{ github.event.inputs.version }}
|
||||||
|
run: .github/workflows/install-bindist.sh
|
||||||
42
.github/workflows/install-bindist.sh
vendored
Executable file
42
.github/workflows/install-bindist.sh
vendored
Executable file
@@ -0,0 +1,42 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -eo pipefail
|
||||||
|
|
||||||
|
export GHCUP_INSTALL_BASE_PREFIX=$RUNNER_TEMP/foobarbaz
|
||||||
|
|
||||||
|
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
|
||||||
|
|
||||||
|
source $GHCUP_INSTALL_BASE_PREFIX/.ghcup/env || source ~/.bashrc
|
||||||
|
|
||||||
|
ghcup --version
|
||||||
|
which ghcup | grep foobarbaz
|
||||||
|
|
||||||
|
ghcup -v --url-source=file:$METADATA_FILE install $TOOL --set $VERSION
|
||||||
|
|
||||||
|
cat <<EOF > main.hs
|
||||||
|
{- cabal:
|
||||||
|
build-depends: base
|
||||||
|
-}
|
||||||
|
|
||||||
|
main = print $ 1 + 1
|
||||||
|
EOF
|
||||||
|
|
||||||
|
case $TOOL in
|
||||||
|
hls)
|
||||||
|
haskell-language-server-wrapper --version
|
||||||
|
haskell-language-server-wrapper typecheck main.hs
|
||||||
|
;;
|
||||||
|
ghc)
|
||||||
|
ghc --version
|
||||||
|
ghc --info
|
||||||
|
ghc -prof main.hs
|
||||||
|
[[ $(./main +RTS -s) -eq 2 ]]
|
||||||
|
;;
|
||||||
|
cabal)
|
||||||
|
cabal --version
|
||||||
|
cabal update
|
||||||
|
[[ $(cabal --verbose=0 run --enable-profiling ./main.hs -- +RTS -s) -eq 2 ]]
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
$TOOL --version
|
||||||
|
;;
|
||||||
|
esac
|
||||||
28
.github/workflows/test.yaml
vendored
28
.github/workflows/test.yaml
vendored
@@ -2,9 +2,9 @@ name: Tests
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [ master ]
|
branches: [ master, develop ]
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: [ master ]
|
branches: [ master, develop ]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
test:
|
test:
|
||||||
@@ -14,6 +14,10 @@ jobs:
|
|||||||
YAML_VER: 0.0.6
|
YAML_VER: 0.0.6
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
|
ghc:
|
||||||
|
- '8.10.7'
|
||||||
|
cabal:
|
||||||
|
- '3.6.2.0'
|
||||||
os:
|
os:
|
||||||
- ubuntu-latest
|
- ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
@@ -22,8 +26,22 @@ jobs:
|
|||||||
|
|
||||||
- uses: haskell/actions/setup@v1.2
|
- uses: haskell/actions/setup@v1.2
|
||||||
with:
|
with:
|
||||||
ghc-version: 8.10.7
|
ghc-version: ${{ matrix.ghc }}
|
||||||
cabal-version: 3.6.2.0
|
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
|
- name: create ~/.local/bin
|
||||||
run: mkdir -p "$HOME/.local/bin"
|
run: mkdir -p "$HOME/.local/bin"
|
||||||
@@ -39,7 +57,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Install ghcup-gen
|
- name: Install ghcup-gen
|
||||||
run: |
|
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
|
shell: bash
|
||||||
|
|
||||||
- name: Check
|
- name: Check
|
||||||
|
|||||||
17
.gitignore
vendored
Normal file
17
.gitignore
vendored
Normal 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/
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
3. copy-paste it
|
3. copy-paste it
|
||||||
4. adjust the version, tags, changelog, source url
|
4. adjust the version, tags, changelog, source url
|
||||||
5. adjust the various bindist urls (make sure to also change the yaml anchors)
|
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)
|
6. run `cabal run ghcup-gen -- check -f ghcup-<yaml-ver>.yaml`
|
||||||
7. 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'`
|
||||||
8. run `ghcup-gen -- check-tarballs -f ghcup-<yaml-ver>.yaml -u 'ghc-8\.10\.8'`
|
8. run `cabal run ghcup-gen -- generate-hls-ghcs -f ghcup-<yaml-ver>.yaml --format json -o hls-metadata-0.0.1.json`
|
||||||
|
9. run `cabal run ghcup-gen -- generate-table -f ghcup-<yaml-ver>.yaml --stdout` and adjust [docs/install](https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/docs/install.md) tables
|
||||||
|
|||||||
29
cabal.project
Normal file
29
cabal.project
Normal 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.8
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
@@ -2132,7 +2132,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"GHCup": {
|
"GHCup": {
|
||||||
"0.1.16.2": {
|
"0.1.17.5": {
|
||||||
"viTags": [
|
"viTags": [
|
||||||
"Recommended",
|
"Recommended",
|
||||||
"Latest"
|
"Latest"
|
||||||
@@ -2143,32 +2143,32 @@
|
|||||||
"A_64": {
|
"A_64": {
|
||||||
"Linux_UnknownLinux": {
|
"Linux_UnknownLinux": {
|
||||||
"unknown_versioning": {
|
"unknown_versioning": {
|
||||||
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-linux-ghcup-0.1.16.2",
|
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-linux-ghcup-0.1.17.5",
|
||||||
"dlSubdir": null,
|
"dlSubdir": null,
|
||||||
"dlHash": "d5e43b95ce1d42263376e414f7eb7c5dd440271c7c6cd9bad446fdeff3823893"
|
"dlHash": "7541bcf0b402f99d05cd1937f9fef69aec45c3153e42606671825be248484fb5"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"Darwin": {
|
"Darwin": {
|
||||||
"unknown_versioning": {
|
"unknown_versioning": {
|
||||||
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-apple-darwin-ghcup-0.1.16.2",
|
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-apple-darwin-ghcup-0.1.17.5",
|
||||||
"dlSubdir": null,
|
"dlSubdir": null,
|
||||||
"dlHash": "a334620ccce7705211b2142882dde544003e6030af4b91a44c890542a90f879f"
|
"dlHash": "8b5159775de08a5f268f4be217fbb6f427ff8d8977197af209211b81ca0fe27f"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"FreeBSD": {
|
"FreeBSD": {
|
||||||
"unknown_versioning": {
|
"unknown_versioning": {
|
||||||
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-portbld-freebsd-ghcup-0.1.16.2",
|
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-freebsd12-ghcup-0.1.17.5",
|
||||||
"dlSubdir": null,
|
"dlSubdir": null,
|
||||||
"dlHash": "92359592a5694375e53b22628920086bf4bbf0faff5be018a0ed3e745a6426a9"
|
"dlHash": "babb7366abb17bcb5d4fc1500039040f1b957073d618db3f1473b0bae6abc6bb"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"A_32": {
|
"A_32": {
|
||||||
"Linux_UnknownLinux": {
|
"Linux_UnknownLinux": {
|
||||||
"unknown_versioning": {
|
"unknown_versioning": {
|
||||||
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.16.2/i386-linux-ghcup-0.1.16.2",
|
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.17.5/i386-linux-ghcup-0.1.17.5",
|
||||||
"dlSubdir": null,
|
"dlSubdir": null,
|
||||||
"dlHash": "01968ca6decac7b6e8ba6e2c817870d3fa47289a6507e0c1ab563f7b6eec0e38"
|
"dlHash": "5a2b1d2ceb32857866689ee1a1e29c5747333882a4e952d80eccf49482d3daab"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -1384,7 +1384,7 @@ ghcupDownloads:
|
|||||||
dlUri: https://oleg.fi/cabal-install-3.4.0.0-rc4/cabal-install-3.4.0.0-x86_64-freebsd-12.1-release.tar.xz
|
dlUri: https://oleg.fi/cabal-install-3.4.0.0-rc4/cabal-install-3.4.0.0-x86_64-freebsd-12.1-release.tar.xz
|
||||||
dlHash: 9705e16d03497b46be4ad477e6c64d10890af853eafa8a9adf6dba89aa9e05f7
|
dlHash: 9705e16d03497b46be4ad477e6c64d10890af853eafa8a9adf6dba89aa9e05f7
|
||||||
GHCup:
|
GHCup:
|
||||||
0.1.16.2:
|
0.1.17.5:
|
||||||
viTags:
|
viTags:
|
||||||
- Recommended
|
- Recommended
|
||||||
- Latest
|
- Latest
|
||||||
@@ -1394,22 +1394,22 @@ ghcupDownloads:
|
|||||||
A_64:
|
A_64:
|
||||||
Linux_UnknownLinux:
|
Linux_UnknownLinux:
|
||||||
unknown_versioning: &ghcup-64
|
unknown_versioning: &ghcup-64
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-linux-ghcup-0.1.16.2
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-linux-ghcup-0.1.17.5
|
||||||
dlHash: d5e43b95ce1d42263376e414f7eb7c5dd440271c7c6cd9bad446fdeff3823893
|
dlHash: 7541bcf0b402f99d05cd1937f9fef69aec45c3153e42606671825be248484fb5
|
||||||
Darwin:
|
Darwin:
|
||||||
unknown_versioning:
|
unknown_versioning:
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-apple-darwin-ghcup-0.1.16.2
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-apple-darwin-ghcup-0.1.17.5
|
||||||
dlHash: a334620ccce7705211b2142882dde544003e6030af4b91a44c890542a90f879f
|
dlHash: 8b5159775de08a5f268f4be217fbb6f427ff8d8977197af209211b81ca0fe27f
|
||||||
FreeBSD:
|
FreeBSD:
|
||||||
unknown_versioning:
|
unknown_versioning:
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-portbld-freebsd-ghcup-0.1.16.2
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-freebsd12-ghcup-0.1.17.5
|
||||||
dlHash: 92359592a5694375e53b22628920086bf4bbf0faff5be018a0ed3e745a6426a9
|
dlHash: babb7366abb17bcb5d4fc1500039040f1b957073d618db3f1473b0bae6abc6bb
|
||||||
Linux_Alpine:
|
Linux_Alpine:
|
||||||
unknown_versioning: *ghcup-64
|
unknown_versioning: *ghcup-64
|
||||||
A_32:
|
A_32:
|
||||||
Linux_UnknownLinux:
|
Linux_UnknownLinux:
|
||||||
unknown_versioning: &ghcup-32
|
unknown_versioning: &ghcup-32
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/i386-linux-ghcup-0.1.16.2
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/i386-linux-ghcup-0.1.17.5
|
||||||
dlHash: 01968ca6decac7b6e8ba6e2c817870d3fa47289a6507e0c1ab563f7b6eec0e38
|
dlHash: 5a2b1d2ceb32857866689ee1a1e29c5747333882a4e952d80eccf49482d3daab
|
||||||
Linux_Alpine:
|
Linux_Alpine:
|
||||||
unknown_versioning: *ghcup-32
|
unknown_versioning: *ghcup-32
|
||||||
|
|||||||
Binary file not shown.
@@ -1451,7 +1451,7 @@ ghcupDownloads:
|
|||||||
dlUri: https://oleg.fi/cabal-install-3.4.0.0-rc4/cabal-install-3.4.0.0-x86_64-freebsd-12.1-release.tar.xz
|
dlUri: https://oleg.fi/cabal-install-3.4.0.0-rc4/cabal-install-3.4.0.0-x86_64-freebsd-12.1-release.tar.xz
|
||||||
dlHash: 9705e16d03497b46be4ad477e6c64d10890af853eafa8a9adf6dba89aa9e05f7
|
dlHash: 9705e16d03497b46be4ad477e6c64d10890af853eafa8a9adf6dba89aa9e05f7
|
||||||
GHCup:
|
GHCup:
|
||||||
0.1.16.2:
|
0.1.17.5:
|
||||||
viTags:
|
viTags:
|
||||||
- Recommended
|
- Recommended
|
||||||
- Latest
|
- Latest
|
||||||
@@ -1461,23 +1461,23 @@ ghcupDownloads:
|
|||||||
A_64:
|
A_64:
|
||||||
Linux_UnknownLinux:
|
Linux_UnknownLinux:
|
||||||
unknown_versioning: &ghcup-64
|
unknown_versioning: &ghcup-64
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-linux-ghcup-0.1.16.2
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-linux-ghcup-0.1.17.5
|
||||||
dlHash: d5e43b95ce1d42263376e414f7eb7c5dd440271c7c6cd9bad446fdeff3823893
|
dlHash: 7541bcf0b402f99d05cd1937f9fef69aec45c3153e42606671825be248484fb5
|
||||||
Darwin:
|
Darwin:
|
||||||
unknown_versioning:
|
unknown_versioning:
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-apple-darwin-ghcup-0.1.16.2
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-apple-darwin-ghcup-0.1.17.5
|
||||||
dlHash: a334620ccce7705211b2142882dde544003e6030af4b91a44c890542a90f879f
|
dlHash: 8b5159775de08a5f268f4be217fbb6f427ff8d8977197af209211b81ca0fe27f
|
||||||
FreeBSD:
|
FreeBSD:
|
||||||
unknown_versioning:
|
unknown_versioning:
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-portbld-freebsd-ghcup-0.1.16.2
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-freebsd12-ghcup-0.1.17.5
|
||||||
dlHash: 92359592a5694375e53b22628920086bf4bbf0faff5be018a0ed3e745a6426a9
|
dlHash: babb7366abb17bcb5d4fc1500039040f1b957073d618db3f1473b0bae6abc6bb
|
||||||
Linux_Alpine:
|
Linux_Alpine:
|
||||||
unknown_versioning: *ghcup-64
|
unknown_versioning: *ghcup-64
|
||||||
A_32:
|
A_32:
|
||||||
Linux_UnknownLinux:
|
Linux_UnknownLinux:
|
||||||
unknown_versioning: &ghcup-32
|
unknown_versioning: &ghcup-32
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/i386-linux-ghcup-0.1.16.2
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/i386-linux-ghcup-0.1.17.5
|
||||||
dlHash: 01968ca6decac7b6e8ba6e2c817870d3fa47289a6507e0c1ab563f7b6eec0e38
|
dlHash: 5a2b1d2ceb32857866689ee1a1e29c5747333882a4e952d80eccf49482d3daab
|
||||||
Linux_Alpine:
|
Linux_Alpine:
|
||||||
unknown_versioning: *ghcup-32
|
unknown_versioning: *ghcup-32
|
||||||
HLS:
|
HLS:
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -1868,7 +1868,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
|
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
|
dlHash: 16c0d1eaba24bed14f3e152970179a45d9f9bb5cc839b2c210ad06eb7d4826ed
|
||||||
GHCup:
|
GHCup:
|
||||||
0.1.16.2:
|
0.1.17.7:
|
||||||
viTags:
|
viTags:
|
||||||
- Recommended
|
- Recommended
|
||||||
- Latest
|
- Latest
|
||||||
@@ -1878,39 +1878,39 @@ ghcupDownloads:
|
|||||||
A_64:
|
A_64:
|
||||||
Linux_UnknownLinux:
|
Linux_UnknownLinux:
|
||||||
unknown_versioning: &ghcup-64
|
unknown_versioning: &ghcup-64
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-linux-ghcup-0.1.16.2
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.7/x86_64-linux-ghcup-0.1.17.7
|
||||||
dlHash: d5e43b95ce1d42263376e414f7eb7c5dd440271c7c6cd9bad446fdeff3823893
|
dlHash: e16eaf59dab84be7aa6415b53a3497f211d05163a50584dc854569b2ef8a7a3a
|
||||||
Darwin:
|
Darwin:
|
||||||
unknown_versioning:
|
unknown_versioning:
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-apple-darwin-ghcup-0.1.16.2
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.7/x86_64-apple-darwin-ghcup-0.1.17.7
|
||||||
dlHash: a334620ccce7705211b2142882dde544003e6030af4b91a44c890542a90f879f
|
dlHash: 9702f30c9374a122d79f7ef11170b34deb248a0f3cd92d671c0aab747be4add7
|
||||||
FreeBSD:
|
FreeBSD:
|
||||||
unknown_versioning:
|
unknown_versioning:
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-portbld-freebsd-ghcup-0.1.16.2
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.7/x86_64-freebsd12-ghcup-0.1.17.7
|
||||||
dlHash: 92359592a5694375e53b22628920086bf4bbf0faff5be018a0ed3e745a6426a9
|
dlHash: d3d0644dc5d9b51ed1c345fc006e936e9284b3181e5a9cccf4cf70a7184398fe
|
||||||
Linux_Alpine:
|
Linux_Alpine:
|
||||||
unknown_versioning: *ghcup-64
|
unknown_versioning: *ghcup-64
|
||||||
A_32:
|
A_32:
|
||||||
Linux_UnknownLinux:
|
Linux_UnknownLinux:
|
||||||
unknown_versioning: &ghcup-32
|
unknown_versioning: &ghcup-32
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/i386-linux-ghcup-0.1.16.2
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.7/i386-linux-ghcup-0.1.17.7
|
||||||
dlHash: 01968ca6decac7b6e8ba6e2c817870d3fa47289a6507e0c1ab563f7b6eec0e38
|
dlHash: 209f61872a5b401e85e4d542dd8d0c96437c1f1ad94b4fa5a28856f34ab0cab8
|
||||||
Linux_Alpine:
|
Linux_Alpine:
|
||||||
unknown_versioning: *ghcup-32
|
unknown_versioning: *ghcup-32
|
||||||
A_ARM64:
|
A_ARM64:
|
||||||
Linux_UnknownLinux:
|
Linux_UnknownLinux:
|
||||||
unknown_versioning:
|
unknown_versioning:
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/aarch64-linux-ghcup-0.1.16.2
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.7/aarch64-linux-ghcup-0.1.17.7
|
||||||
dlHash: 0bdbfc724e0ddabb266156eea83c2c4e19c6ed79dd06db0c29b7d69df8d9fa8c
|
dlHash: 392dc46ef3f98733b154188982866859d174a750e32c5b742e6a1cf60159954e
|
||||||
Darwin:
|
Darwin:
|
||||||
unknown_versioning:
|
unknown_versioning:
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/aarch64-apple-darwin-ghcup-0.1.16.2
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.7/aarch64-apple-darwin-ghcup-0.1.17.7
|
||||||
dlHash: 8854e991a2ba1350abda59dab96ce50ae7729d1ce99399d67929ef31e90f1da5
|
dlHash: 102d808b31248f86cbf569162ba1b7955e6747a684b2b4200b0958d6e4c54267
|
||||||
A_ARM:
|
A_ARM:
|
||||||
Linux_UnknownLinux:
|
Linux_UnknownLinux:
|
||||||
unknown_versioning:
|
unknown_versioning:
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/armv7-linux-ghcup-0.1.16.2
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.7/armv7-linux-ghcup-0.1.17.7
|
||||||
dlHash: 983ebb5b584bfa600704216a63f94b40d36a02573834e90ef1042c8472d9ad57
|
dlHash: 8438e22241fab4bfde94066a34600ab003db2f4ecadfd54bfad4ae990e6549a1
|
||||||
HLS:
|
HLS:
|
||||||
1.1.0:
|
1.1.0:
|
||||||
viTags:
|
viTags:
|
||||||
|
|||||||
Binary file not shown.
@@ -2025,7 +2025,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
|
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
|
dlHash: 16c0d1eaba24bed14f3e152970179a45d9f9bb5cc839b2c210ad06eb7d4826ed
|
||||||
GHCup:
|
GHCup:
|
||||||
0.1.16.2:
|
0.1.18.0:
|
||||||
viTags:
|
viTags:
|
||||||
- Recommended
|
- Recommended
|
||||||
- Latest
|
- Latest
|
||||||
@@ -2035,43 +2035,43 @@ ghcupDownloads:
|
|||||||
A_64:
|
A_64:
|
||||||
Linux_UnknownLinux:
|
Linux_UnknownLinux:
|
||||||
unknown_versioning: &ghcup-64
|
unknown_versioning: &ghcup-64
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-linux-ghcup-0.1.16.2
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/x86_64-linux-ghcup-0.1.18.0
|
||||||
dlHash: d5e43b95ce1d42263376e414f7eb7c5dd440271c7c6cd9bad446fdeff3823893
|
dlHash: 94559eb7c4569919446af1597d07675e803c20b150323edb7f9d8601c8bbda50
|
||||||
Darwin:
|
Darwin:
|
||||||
unknown_versioning:
|
unknown_versioning:
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-apple-darwin-ghcup-0.1.16.2
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/x86_64-apple-darwin-ghcup-0.1.18.0
|
||||||
dlHash: a334620ccce7705211b2142882dde544003e6030af4b91a44c890542a90f879f
|
dlHash: b34ed98bc0cc6d2169974f8d03173f93c3e3f60607013f1af42c9882c1a0d6f0
|
||||||
FreeBSD:
|
FreeBSD:
|
||||||
unknown_versioning:
|
unknown_versioning:
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-portbld-freebsd-ghcup-0.1.16.2
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/x86_64-freebsd12-ghcup-0.1.18.0
|
||||||
dlHash: 92359592a5694375e53b22628920086bf4bbf0faff5be018a0ed3e745a6426a9
|
dlHash: cc8378a53f3028331dc853acfb253e2258d720b0e18b618b294ed67182a7fa03
|
||||||
Windows:
|
Windows:
|
||||||
unknown_versioning:
|
unknown_versioning:
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-mingw64-ghcup-0.1.16.2.exe
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/x86_64-mingw64-ghcup-0.1.18.0.exe
|
||||||
dlHash: ec78872a84213968c490675127b9aad2285980b747c68207801ae824b98c7948
|
dlHash: e2166a50437c677dfab3362749f676f92ff786aae1bfd7a2d289efa3544ee654
|
||||||
Linux_Alpine:
|
Linux_Alpine:
|
||||||
unknown_versioning: *ghcup-64
|
unknown_versioning: *ghcup-64
|
||||||
A_32:
|
A_32:
|
||||||
Linux_UnknownLinux:
|
Linux_UnknownLinux:
|
||||||
unknown_versioning: &ghcup-32
|
unknown_versioning: &ghcup-32
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/i386-linux-ghcup-0.1.16.2
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/i386-linux-ghcup-0.1.18.0
|
||||||
dlHash: 01968ca6decac7b6e8ba6e2c817870d3fa47289a6507e0c1ab563f7b6eec0e38
|
dlHash: 222914720135261dcc644155bc8a5b15d1d4966c769d50686fe4f41547208759
|
||||||
Linux_Alpine:
|
Linux_Alpine:
|
||||||
unknown_versioning: *ghcup-32
|
unknown_versioning: *ghcup-32
|
||||||
A_ARM64:
|
A_ARM64:
|
||||||
Linux_UnknownLinux:
|
Linux_UnknownLinux:
|
||||||
unknown_versioning:
|
unknown_versioning:
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/aarch64-linux-ghcup-0.1.16.2
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/aarch64-linux-ghcup-0.1.18.0
|
||||||
dlHash: 0bdbfc724e0ddabb266156eea83c2c4e19c6ed79dd06db0c29b7d69df8d9fa8c
|
dlHash: 3e3ee4aa06e426373fb7e29f1770987ca1621e414925f261f325f9acb77e0bcb
|
||||||
Darwin:
|
Darwin:
|
||||||
unknown_versioning:
|
unknown_versioning:
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/aarch64-apple-darwin-ghcup-0.1.16.2
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/aarch64-apple-darwin-ghcup-0.1.18.0
|
||||||
dlHash: 8854e991a2ba1350abda59dab96ce50ae7729d1ce99399d67929ef31e90f1da5
|
dlHash: 2d3aa19d6f012c1a4ebc5907a05b06cf0d43a1499107020f59847ea2638c8649
|
||||||
A_ARM:
|
A_ARM:
|
||||||
Linux_UnknownLinux:
|
Linux_UnknownLinux:
|
||||||
unknown_versioning:
|
unknown_versioning:
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/armv7-linux-ghcup-0.1.16.2
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/armv7-linux-ghcup-0.1.18.0
|
||||||
dlHash: 983ebb5b584bfa600704216a63f94b40d36a02573834e90ef1042c8472d9ad57
|
dlHash: 2e94920c772bc24c9fe41004dedf46840f5f036d28d3ed183679d3f34d2c50e0
|
||||||
HLS:
|
HLS:
|
||||||
1.1.0:
|
1.1.0:
|
||||||
viTags: []
|
viTags: []
|
||||||
|
|||||||
Binary file not shown.
725
ghcup-0.0.6.yaml
725
ghcup-0.0.6.yaml
File diff suppressed because it is too large
Load Diff
Binary file not shown.
3663
ghcup-0.0.7.yaml
Normal file
3663
ghcup-0.0.7.yaml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
ghcup-0.0.7.yaml.sig
Normal file
BIN
ghcup-0.0.7.yaml.sig
Normal file
Binary file not shown.
6
ghcup-gen/CHANGELOG.md
Normal file
6
ghcup-gen/CHANGELOG.md
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
# Revision history for ghcup-gen
|
||||||
|
|
||||||
|
## 0.1.17.3 -- 2021-10-27
|
||||||
|
|
||||||
|
* First release (split from ghcup)
|
||||||
|
|
||||||
177
ghcup-gen/Generate.hs
Normal file
177
ghcup-gen/Generate.hs
Normal file
@@ -0,0 +1,177 @@
|
|||||||
|
{-# LANGUAGE CPP #-}
|
||||||
|
{-# LANGUAGE DataKinds #-}
|
||||||
|
{-# LANGUAGE FlexibleContexts #-}
|
||||||
|
{-# LANGUAGE QuasiQuotes #-}
|
||||||
|
{-# LANGUAGE TemplateHaskell #-}
|
||||||
|
{-# LANGUAGE TypeApplications #-}
|
||||||
|
{-# LANGUAGE ViewPatterns #-}
|
||||||
|
{-# LANGUAGE OverloadedStrings #-}
|
||||||
|
|
||||||
|
module Generate where
|
||||||
|
|
||||||
|
import GHCup
|
||||||
|
import GHCup.Download
|
||||||
|
import GHCup.Errors
|
||||||
|
import GHCup.Types
|
||||||
|
import GHCup.Types.Optics
|
||||||
|
import GHCup.Utils
|
||||||
|
|
||||||
|
|
||||||
|
import Codec.Archive
|
||||||
|
import Control.DeepSeq
|
||||||
|
import Control.Exception ( evaluate )
|
||||||
|
import Control.Exception.Safe hiding ( handle )
|
||||||
|
import Control.Monad
|
||||||
|
import Control.Monad.IO.Class
|
||||||
|
import Control.Monad.Reader.Class
|
||||||
|
import Control.Monad.Trans.Resource ( runResourceT
|
||||||
|
, MonadUnliftIO
|
||||||
|
)
|
||||||
|
import qualified Data.Aeson.Encode.Pretty as Aeson
|
||||||
|
import Data.ByteString ( ByteString )
|
||||||
|
import Data.Either
|
||||||
|
import Data.Maybe
|
||||||
|
import Data.List
|
||||||
|
import Data.Map.Strict ( Map )
|
||||||
|
import Data.Versions
|
||||||
|
import Haskus.Utils.Variant.Excepts
|
||||||
|
import System.Exit
|
||||||
|
import System.FilePath
|
||||||
|
import System.IO
|
||||||
|
import Text.Regex.Posix
|
||||||
|
import GHCup.Utils.String.QQ
|
||||||
|
|
||||||
|
import qualified Data.ByteString.Lazy as BSL
|
||||||
|
import qualified Data.Map.Strict as M
|
||||||
|
import qualified Data.Text as T
|
||||||
|
import qualified Data.Yaml.Pretty as YAML
|
||||||
|
import qualified Text.Megaparsec as MP
|
||||||
|
|
||||||
|
data Format = FormatJSON
|
||||||
|
| FormatYAML
|
||||||
|
|
||||||
|
data Output
|
||||||
|
= FileOutput FilePath -- optsparse-applicative doesn't handle ByteString correctly anyway
|
||||||
|
| StdOut
|
||||||
|
|
||||||
|
type HlsGhcVersions = Map Version (Map Architecture (Map Platform Version))
|
||||||
|
|
||||||
|
generateHLSGhc :: ( MonadFail m
|
||||||
|
, MonadMask m
|
||||||
|
, Monad m
|
||||||
|
, MonadReader env m
|
||||||
|
, HasSettings env
|
||||||
|
, HasDirs env
|
||||||
|
, HasLog env
|
||||||
|
, MonadThrow m
|
||||||
|
, MonadIO m
|
||||||
|
, MonadUnliftIO m
|
||||||
|
, HasGHCupInfo env
|
||||||
|
)
|
||||||
|
=> Format
|
||||||
|
-> Output
|
||||||
|
-> m ExitCode
|
||||||
|
generateHLSGhc format output = do
|
||||||
|
GHCupInfo { _ghcupDownloads = dls } <- getGHCupInfo
|
||||||
|
let hlses = dls M.! HLS
|
||||||
|
r <- forM hlses $ \(_viArch -> archs) ->
|
||||||
|
forM archs $ \plats ->
|
||||||
|
forM plats $ \(head . M.toList -> (_, dli)) -> do
|
||||||
|
VRight r <- runResourceT . runE
|
||||||
|
@'[DigestError
|
||||||
|
, GPGError
|
||||||
|
, DownloadFailed
|
||||||
|
, UnknownArchive
|
||||||
|
, ArchiveResult
|
||||||
|
] $ do
|
||||||
|
fp <- liftE $ downloadCached dli Nothing
|
||||||
|
let subd = _dlSubdir dli
|
||||||
|
filesL <- liftE $ getArchiveFiles fp
|
||||||
|
files <- liftIO $ evaluate $ force filesL
|
||||||
|
case subd of
|
||||||
|
Just (RealDir d)
|
||||||
|
| d </> "GNUmakefile" `elem` files
|
||||||
|
-> do let regex = makeRegexOpts compExtended execBlank ([s|^haskell-language-server-([0-9]+\.)*([0-9]+)(\.in)$|] :: ByteString)
|
||||||
|
pure (rights $ MP.parse version' ""
|
||||||
|
. T.pack
|
||||||
|
. fromJust
|
||||||
|
. stripPrefix "haskell-language-server-"
|
||||||
|
. stripIn
|
||||||
|
<$> filter (match regex) (fromJust . stripPrefix (d <> "/") <$> files)
|
||||||
|
)
|
||||||
|
_ -> do let regex = makeRegexOpts compExtended execBlank ([s|^haskell-language-server-([0-9]+\.)*([0-9]+)(\.exe)?$|] :: ByteString)
|
||||||
|
pure (rights $ MP.parse version' ""
|
||||||
|
. T.pack
|
||||||
|
. fromJust
|
||||||
|
. stripPrefix "haskell-language-server-"
|
||||||
|
. stripExe
|
||||||
|
<$> filter (match regex) files
|
||||||
|
)
|
||||||
|
pure (sort r)
|
||||||
|
let w = case format of
|
||||||
|
FormatYAML -> BSL.fromStrict $ YAML.encodePretty YAML.defConfig r
|
||||||
|
FormatJSON -> Aeson.encodePretty r
|
||||||
|
case output of
|
||||||
|
StdOut -> liftIO $ BSL.putStr w
|
||||||
|
FileOutput f -> liftIO $ BSL.writeFile f w
|
||||||
|
pure ExitSuccess
|
||||||
|
where
|
||||||
|
stripExe :: String -> String
|
||||||
|
stripExe f = case reverse f of
|
||||||
|
('e':'x':'e':'.':r) -> reverse r
|
||||||
|
_ -> f
|
||||||
|
stripIn :: String -> String
|
||||||
|
stripIn f = case reverse f of
|
||||||
|
('n':'i':'.':r) -> reverse r
|
||||||
|
_ -> f
|
||||||
|
|
||||||
|
generateTable :: ( MonadFail m
|
||||||
|
, MonadMask m
|
||||||
|
, Monad m
|
||||||
|
, MonadReader env m
|
||||||
|
, HasSettings env
|
||||||
|
, HasDirs env
|
||||||
|
, HasLog env
|
||||||
|
, MonadThrow m
|
||||||
|
, MonadIO m
|
||||||
|
, HasPlatformReq env
|
||||||
|
, HasGHCupInfo env
|
||||||
|
, MonadUnliftIO m
|
||||||
|
)
|
||||||
|
=> Output
|
||||||
|
-> m ExitCode
|
||||||
|
generateTable output = do
|
||||||
|
handle <- case output of
|
||||||
|
StdOut -> pure stdout
|
||||||
|
FileOutput fp -> liftIO $ openFile fp WriteMode
|
||||||
|
|
||||||
|
forM_ [GHC,Cabal,HLS,Stack] $ \tool -> do
|
||||||
|
case tool of
|
||||||
|
GHC -> liftIO $ hPutStrLn handle $ "<details> <summary>Show all supported <a href='https://www.haskell.org/ghc/'>GHC</a> versions</summary>"
|
||||||
|
Cabal -> liftIO $ hPutStrLn handle $ "<details> <summary>Show all supported <a href='https://cabal.readthedocs.io/en/stable/'>cabal-install</a> versions</summary>"
|
||||||
|
HLS -> liftIO $ hPutStrLn handle $ "<details> <summary>Show all supported <a href='https://haskell-language-server.readthedocs.io/en/stable/'>HLS</a> versions</summary>"
|
||||||
|
Stack -> liftIO $ hPutStrLn handle $ "<details> <summary>Show all supported <a href='https://docs.haskellstack.org/en/stable/README/'>Stack</a> versions</summary>"
|
||||||
|
liftIO $ hPutStrLn handle $ "<table>"
|
||||||
|
liftIO $ hPutStrLn handle $ "<thead><tr><th>" <> show tool <> " Version</th><th>Tags</th></tr></thead>"
|
||||||
|
liftIO $ hPutStrLn handle $ "<tbody>"
|
||||||
|
vers <- reverse <$> listVersions (Just tool) Nothing
|
||||||
|
forM_ (filter (\ListResult{..} -> not lStray) vers) $ \ListResult{..} -> do
|
||||||
|
liftIO $ hPutStrLn handle $
|
||||||
|
"<tr><td>"
|
||||||
|
<> T.unpack (prettyVer lVer)
|
||||||
|
<> "</td><td>"
|
||||||
|
<> intercalate ", " (filter (/= "") . fmap printTag $ sort lTag)
|
||||||
|
<> "</td></tr>"
|
||||||
|
pure ()
|
||||||
|
liftIO $ hPutStrLn handle $ "</tbody>"
|
||||||
|
liftIO $ hPutStrLn handle $ "</table>"
|
||||||
|
liftIO $ hPutStrLn handle $ "</details>"
|
||||||
|
liftIO $ hPutStrLn handle $ ""
|
||||||
|
pure ExitSuccess
|
||||||
|
where
|
||||||
|
printTag Recommended = "<span style=\"color:green\">recommended</span>"
|
||||||
|
printTag Latest = "<span style=\"color:blue\">latest</span>"
|
||||||
|
printTag Prerelease = "<span style=\"color:red\">prerelease</span>"
|
||||||
|
printTag (Base pvp'') = "base-" ++ T.unpack (prettyPVP pvp'')
|
||||||
|
printTag (UnknownTag t ) = t
|
||||||
|
printTag Old = ""
|
||||||
165
ghcup-gen/LICENSE
Normal file
165
ghcup-gen/LICENSE
Normal 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.
|
||||||
207
ghcup-gen/Main.hs
Normal file
207
ghcup-gen/Main.hs
Normal file
@@ -0,0 +1,207 @@
|
|||||||
|
{-# 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 Generate
|
||||||
|
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
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
formatParser :: Parser Format
|
||||||
|
formatParser =
|
||||||
|
option
|
||||||
|
(eitherReader formatP)
|
||||||
|
(long "format" <> metavar "FORMAT" <> help
|
||||||
|
"Which format to use (JSON | YAML). Yaml is default."
|
||||||
|
<> value FormatJSON
|
||||||
|
)
|
||||||
|
where
|
||||||
|
formatP :: String -> Either String Format
|
||||||
|
formatP s' | t == T.pack "json" = Right FormatJSON
|
||||||
|
| t == T.pack "yaml" = Right FormatYAML
|
||||||
|
| t == T.pack "yml" = Right FormatYAML
|
||||||
|
| otherwise = Left ("Unknown format value: " <> s')
|
||||||
|
where t = T.toLower (T.pack s')
|
||||||
|
|
||||||
|
|
||||||
|
data Command = ValidateYAML ValidateYAMLOpts
|
||||||
|
| ValidateTarballs ValidateYAMLOpts TarballFilter
|
||||||
|
| GenerateHlsGhc ValidateYAMLOpts Format Output
|
||||||
|
| GenerateToolTable ValidateYAMLOpts Output
|
||||||
|
|
||||||
|
|
||||||
|
fileOutput :: Parser Output
|
||||||
|
fileOutput =
|
||||||
|
FileOutput
|
||||||
|
<$> strOption
|
||||||
|
(long "output-file" <> short 'o' <> metavar "FILENAME" <> help
|
||||||
|
"Output file to write to"
|
||||||
|
)
|
||||||
|
|
||||||
|
stdOutput :: Parser Output
|
||||||
|
stdOutput = flag'
|
||||||
|
StdOut
|
||||||
|
(short 'o' <> long "stdout" <> help "Output to stdout (default)")
|
||||||
|
|
||||||
|
outputP :: Parser Output
|
||||||
|
outputP = fileOutput <|> stdOutput
|
||||||
|
|
||||||
|
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)")
|
||||||
|
)
|
||||||
|
<> command
|
||||||
|
"generate-hls-ghcs"
|
||||||
|
(info
|
||||||
|
((GenerateHlsGhc <$> validateYAMLOpts <*> formatParser <*> outputP) <**> helper)
|
||||||
|
(progDesc "Generate a list of HLS-GHC support")
|
||||||
|
)
|
||||||
|
<> command
|
||||||
|
"generate-table"
|
||||||
|
(info
|
||||||
|
((GenerateToolTable <$> validateYAMLOpts <*> outputP) <**> helper)
|
||||||
|
(progDesc "Generate a markdown table of available tool versions")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
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 True) 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 True) dirs defaultKeyBindings (GHCupInfo mempty mempty mempty) pfreq loggerConfig
|
||||||
|
|
||||||
|
let 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
|
||||||
|
ginfo <- case Y.decodeEither' contents of
|
||||||
|
Right r -> pure r
|
||||||
|
Left e -> die (color Red $ displayException e)
|
||||||
|
r <- flip runReaderT appstate { ghcupInfo = ginfo } f
|
||||||
|
exitWith r
|
||||||
|
|
||||||
|
_ <- customExecParser (prefs showHelpOnError) (info (opts <**> helper) idm)
|
||||||
|
>>= \Options {..} -> case optCommand of
|
||||||
|
ValidateYAML vopts -> withValidateYamlOpts vopts validate
|
||||||
|
ValidateTarballs vopts tarballFilter -> withValidateYamlOpts vopts (validateTarballs tarballFilter)
|
||||||
|
GenerateHlsGhc vopts format output -> withValidateYamlOpts vopts (generateHLSGhc format output)
|
||||||
|
GenerateToolTable vopts output -> withValidateYamlOpts vopts (generateTable output)
|
||||||
|
pure ()
|
||||||
|
|
||||||
|
where
|
||||||
291
ghcup-gen/Validate.hs
Normal file
291
ghcup-gen/Validate.hs
Normal file
@@ -0,0 +1,291 @@
|
|||||||
|
{-# 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
|
||||||
|
, HasGHCupInfo env
|
||||||
|
)
|
||||||
|
=> m ExitCode
|
||||||
|
validate = do
|
||||||
|
GHCupInfo { _ghcupDownloads = dls } <- getGHCupInfo
|
||||||
|
|
||||||
|
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
|
||||||
|
GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo
|
||||||
|
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
|
||||||
|
GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo
|
||||||
|
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
|
||||||
|
GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo
|
||||||
|
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
|
||||||
|
GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo
|
||||||
|
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
|
||||||
|
, HasGHCupInfo env
|
||||||
|
)
|
||||||
|
=> TarballFilter
|
||||||
|
-> m ExitCode
|
||||||
|
validateTarballs (TarballFilter etool versionRegex) = do
|
||||||
|
GHCupInfo { _ghcupDownloads = dls, _globalTools = gt } <- getGHCupInfo
|
||||||
|
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
|
||||||
69
ghcup-gen/ghcup-gen.cabal
Normal file
69
ghcup-gen/ghcup-gen.cabal
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
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
|
||||||
|
Generate
|
||||||
|
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:
|
||||||
|
, aeson-pretty ^>=0.8.9
|
||||||
|
, base >=4.13 && <5
|
||||||
|
, bytestring ^>=0.10
|
||||||
|
, containers ^>=0.6
|
||||||
|
, deepseq ^>=1.4
|
||||||
|
, filepath ^>=1.4.2.1
|
||||||
|
, ghcup ^>=0.1.17.3
|
||||||
|
, haskus-utils-variant ^>=3.2
|
||||||
|
, libarchive ^>=3.0.3.0
|
||||||
|
, megaparsec ^>=9.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
|
||||||
430
ghcup-prereleases-0.0.7.yaml
Normal file
430
ghcup-prereleases-0.0.7.yaml
Normal file
@@ -0,0 +1,430 @@
|
|||||||
|
---
|
||||||
|
globalTools: {}
|
||||||
|
toolRequirements: {}
|
||||||
|
ghcupDownloads:
|
||||||
|
Cabal:
|
||||||
|
3.7.0.0:
|
||||||
|
viTags:
|
||||||
|
- Prerelease
|
||||||
|
- old
|
||||||
|
viArch:
|
||||||
|
A_64:
|
||||||
|
Linux_UnknownLinux:
|
||||||
|
unknown_versioning: &cabal-3720-32
|
||||||
|
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/3.7.0.0-pre20220407/cabal-install-3.7-x86_64-linux-alpine.tar.xz
|
||||||
|
dlHash: c9e28e1578dfb851918e523040cb0f913df747fe95e24d089bcf7cd821c21885
|
||||||
|
Linux_Alpine:
|
||||||
|
unknown_versioning: *cabal-3720-32
|
||||||
|
Darwin:
|
||||||
|
unknown_versioning:
|
||||||
|
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/3.7.0.0-pre20220407/cabal-install-3.7-x86_64-darwin.tar.xz
|
||||||
|
dlHash: 9b30b1231b280cdd95c60ac2d94d4bec6ccf07febd294d4f8e9e2d001fe1c55c
|
||||||
|
FreeBSD:
|
||||||
|
unknown_versioning:
|
||||||
|
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/3.7.0.0-pre20220407/cabal-install-3.7-x86_64-freebsd12.tar.xz
|
||||||
|
dlHash: ac482eb709af36ee0f11aebd3dc38fbc5fa5f767ea854c028257fabf39154005
|
||||||
|
Windows:
|
||||||
|
unknown_versioning:
|
||||||
|
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/3.7.0.0-pre20220407/cabal-install-3.7-x86_64-windows.zip
|
||||||
|
dlSubdir:
|
||||||
|
dlHash: 98efc1acd61c7cf262d9eb618548f463698016f9d67fbb7ad7501097206f29cf
|
||||||
|
A_32:
|
||||||
|
Linux_UnknownLinux:
|
||||||
|
unknown_versioning: &cabal-3720-32
|
||||||
|
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/3.7.0.0-pre20220407/cabal-install-3.7-i386-linux-alpine.tar.xz
|
||||||
|
dlHash: bf189ad094b02e42ef23b53384ecef7b1c27fea8323f9e09c00abab353f19d55
|
||||||
|
Linux_Alpine:
|
||||||
|
unknown_versioning: *cabal-3720-32
|
||||||
|
A_ARM64:
|
||||||
|
Linux_UnknownLinux:
|
||||||
|
unknown_versioning:
|
||||||
|
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/3.7.0.0-pre20220407/cabal-install-3.7-aarch64-linux-deb10.tar.xz
|
||||||
|
dlHash: 58306000d96674927ca2d811d3d4ee027d26e9b67f67de4e3de547de2042c3fc
|
||||||
|
Darwin:
|
||||||
|
unknown_versioning:
|
||||||
|
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/3.7.0.0-pre20220407/cabal-install-3.7-aarch64-darwin.tar.xz
|
||||||
|
dlHash: 324b8bf3a6f010b5c7083f1460e1e65881fecf5efd99ce21e4e7c73a020ab0bf
|
||||||
|
A_ARM:
|
||||||
|
Linux_UnknownLinux:
|
||||||
|
unknown_versioning:
|
||||||
|
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/3.7.0.0-pre20220407/cabal-install-3.7-armv7-linux-deb1.tar.xz
|
||||||
|
dlHash: 51dc486776a0047bc7b0122f468625e5d64189fac1948a6ba4e8ce85f47703ac
|
||||||
|
3.8.0.20220526:
|
||||||
|
viTags:
|
||||||
|
- Prerelease
|
||||||
|
viArch:
|
||||||
|
A_64:
|
||||||
|
Linux_UnknownLinux:
|
||||||
|
unknown_versioning: &cabal-3810-32
|
||||||
|
dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.8.1.0-rc1/cabal-install-3.8.0.20220526-x86_64-linux-alpine.tar.xz
|
||||||
|
dlHash: a4e6cb7990d7150c4e64cbd3ebd0a62fb6b00f96f0f9bc3fb751ff6d1f898fdb
|
||||||
|
Linux_Alpine:
|
||||||
|
unknown_versioning: *cabal-3810-32
|
||||||
|
Darwin:
|
||||||
|
unknown_versioning:
|
||||||
|
dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.8.1.0-rc1/cabal-install-3.8.0.20220526-x86_64-darwin.tar.xz
|
||||||
|
dlHash: 327808c88cdc355c82df1382d98c35876b4ca4e0a00706cda11b885938a2c0bd
|
||||||
|
Windows:
|
||||||
|
unknown_versioning:
|
||||||
|
dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.8.1.0-rc1/cabal-install-3.8.0.20220526-p1-x86_64-windows.zip
|
||||||
|
dlSubdir:
|
||||||
|
dlHash: 7a0c8a9ea58651fb4b56e7b7483d00685289f6e5f16f1c87bc6a9acc3cf8636e
|
||||||
|
A_32:
|
||||||
|
Linux_UnknownLinux:
|
||||||
|
unknown_versioning: &cabal-3810-32
|
||||||
|
dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.8.1.0-rc1/cabal-install-3.8.0.20220526-i386-linux-alpine.tar.xz
|
||||||
|
dlHash: 35d51d0270f3e20d325dac5226333e63cdec470e0ad87326ce3c46f5848c77fa
|
||||||
|
Linux_Alpine:
|
||||||
|
unknown_versioning: *cabal-3810-32
|
||||||
|
A_ARM64:
|
||||||
|
Linux_UnknownLinux:
|
||||||
|
unknown_versioning:
|
||||||
|
dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.8.1.0-rc1/cabal-install-3.8.0.20220526-aarch64-linux-deb10.tar.xz
|
||||||
|
dlHash: d5896c5b6ec320049afd84cc491d57e8392d16c248c8df1f9d10f666bb30250d
|
||||||
|
Darwin:
|
||||||
|
unknown_versioning:
|
||||||
|
dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.8.1.0-rc1/cabal-install-3.8.0.20220526-aarch64-darwin.tar.xz
|
||||||
|
dlHash: e18070ddb174c3c1916417c8dd424c2dcaad3411445e8b960dce24ca7532ed24
|
||||||
|
A_ARM:
|
||||||
|
Linux_UnknownLinux:
|
||||||
|
unknown_versioning:
|
||||||
|
dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.8.1.0-rc1/cabal-install-3.8.0.20220526-armv7-linux-deb1.tar.xz
|
||||||
|
dlHash: 143589378a4a0e6a948c9130e42832feee189dc89ab7f29088db4b11db6d61a3
|
||||||
|
GHC:
|
||||||
|
9.4.0.20220501:
|
||||||
|
viTags:
|
||||||
|
- Prerelease
|
||||||
|
- base-4.17.0.0
|
||||||
|
- old
|
||||||
|
viChangeLog: https://downloads.haskell.org/~ghc/9.4.1-alpha1/docs/html/users_guide/index.html
|
||||||
|
viSourceDL:
|
||||||
|
dlUri: https://downloads.haskell.org/~ghc/9.4.1-alpha1/ghc-9.4.0.20220501-src.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220501
|
||||||
|
dlHash: 59bc4c6d706413fa7cfc3c8f79e42104d0c76aef06883d54c6d15be62be41d36
|
||||||
|
viPostRemove: &ghc-post-remove "After removing GHC you might also want to clean up your cabal store at: ~/.cabal/store/ghc-<ghcver>"
|
||||||
|
viArch:
|
||||||
|
A_64:
|
||||||
|
Linux_Debian:
|
||||||
|
'< 10': &ghc-941a1-64-deb9
|
||||||
|
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/curated/9.4.1-alpha1/ghc-9.4.0.20220501-x86_64-deb9-linux.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220501-x86_64-unknown-linux
|
||||||
|
dlHash: f66849a393b93772149f1344509abd52f7a27ab600db073e9a4432e12c93ef9a
|
||||||
|
'( >= 10 && < 11 )': &ghc-941a1-64-deb10
|
||||||
|
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/curated/9.4.1-alpha1/ghc-9.4.0.20220501-x86_64-deb10-linux.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220501-x86_64-unknown-linux
|
||||||
|
dlHash: bc92095c1818798a203ad336a196975502c78c991fd9668a51106fcc2b831b76
|
||||||
|
'>= 11': &ghc-941a1-64-deb11
|
||||||
|
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/curated/9.4.1-alpha1/ghc-9.4.0.20220501-x86_64-deb11-linux.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220501-x86_64-unknown-linux
|
||||||
|
dlHash: d12102b398fa6fa22eced89b5e14a2b1d9c185ce076e50ce1a17c2fcddb7e413
|
||||||
|
unknown_versioning: *ghc-941a1-64-deb10
|
||||||
|
Linux_Ubuntu:
|
||||||
|
'( >= 16 && < 19 )': *ghc-941a1-64-deb9
|
||||||
|
'( >= 19 && < 20 )': *ghc-941a1-64-deb10
|
||||||
|
'>= 20': *ghc-941a1-64-deb11
|
||||||
|
Linux_Mint:
|
||||||
|
'< 20': *ghc-941a1-64-deb9
|
||||||
|
'>= 20': *ghc-941a1-64-deb10
|
||||||
|
Linux_Fedora:
|
||||||
|
unknown_versioning: &ghc-941a1-64-fedora
|
||||||
|
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/curated/9.4.1-alpha1/ghc-9.4.0.20220501-x86_64-fedora33-linux.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220501-x86_64-unknown-linux
|
||||||
|
dlHash: e260b3eea11d2e8cf625b884c11a524a60c73d1ad3bcc9bed19ccbbe1c1ad068
|
||||||
|
Linux_UnknownLinux:
|
||||||
|
unknown_versioning: *ghc-941a1-64-fedora
|
||||||
|
Darwin:
|
||||||
|
unknown_versioning:
|
||||||
|
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/curated/9.4.1-alpha1/ghc-9.4.0.20220501-x86_64-apple-darwin.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220501-x86_64-apple-darwin
|
||||||
|
dlHash: 6a01a1520461c71fbfc621ecb767d1d2237fafa2b2359d5663136bbe5669970a
|
||||||
|
Windows:
|
||||||
|
unknown_versioning:
|
||||||
|
dlUri: https://downloads.haskell.org/~ghc/9.4.1-alpha1/ghc-9.4.0.20220501-x86_64-unknown-mingw32.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220501-x86_64-unknown-mingw32
|
||||||
|
dlHash: 877fb61d200ece3f9e05e22be54e442f70d2aca82ff80da04972377d4f6a53cb
|
||||||
|
Linux_Alpine:
|
||||||
|
unknown_versioning:
|
||||||
|
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/curated/9.4.1-alpha1/ghc-9.4.0.20220501-x86_64-alpine3_12-linux-static.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220501-x86_64-unknown-linux
|
||||||
|
dlHash: 8571e8bbb0fd604259bd4408b04ccb6a011605cc91f3d93e39a18102d8e56120
|
||||||
|
A_32:
|
||||||
|
Linux_Debian:
|
||||||
|
'< 10': &ghc-941a1-32-deb9
|
||||||
|
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/curated/9.4.1-alpha1/ghc-9.4.0.20220501-i386-deb9-linux.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220501-i386-unknown-linux
|
||||||
|
dlHash: 3a802c64c40aff23b3dcdc7e0be8732b9140ffc1563a667ae559b6363004c98f
|
||||||
|
unknown_versioning: *ghc-941a1-32-deb9
|
||||||
|
Linux_Ubuntu:
|
||||||
|
unknown_versioning: *ghc-941a1-32-deb9
|
||||||
|
Linux_Mint:
|
||||||
|
unknown_versioning: *ghc-941a1-32-deb9
|
||||||
|
Linux_UnknownLinux:
|
||||||
|
unknown_versioning: *ghc-941a1-32-deb9
|
||||||
|
A_ARM64:
|
||||||
|
Linux_UnknownLinux:
|
||||||
|
unknown_versioning:
|
||||||
|
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/curated/9.4.1-alpha1/ghc-9.4.0.20220501-aarch64-deb10-linux.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220501-aarch64-unknown-linux
|
||||||
|
dlHash: 1918635bca1045efd8b01867871640872815816a348efccdc3bb743b49a53d3d
|
||||||
|
Darwin:
|
||||||
|
unknown_versioning:
|
||||||
|
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/curated/9.4.1-alpha1/ghc-9.4.0.20220501-aarch64-apple-darwin.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220501-aarch64-apple-darwin
|
||||||
|
dlHash: 80cf2df8de8ed12999d241c8e6bfb3fface8749fc22d37c9ea592d53c2934a2c
|
||||||
|
9.4.0.20220523:
|
||||||
|
viTags:
|
||||||
|
- Prerelease
|
||||||
|
- base-4.17.0.0
|
||||||
|
- old
|
||||||
|
viChangeLog: https://downloads.haskell.org/ghc/9.4.1-alpha2/docs/users_guide/index.html
|
||||||
|
viSourceDL:
|
||||||
|
dlUri: https://downloads.haskell.org/~ghc/9.4.1-alpha2/ghc-9.4.0.20220523-src.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220523
|
||||||
|
dlHash: 3bcac9a2043bbc99cd8113547d92fdcad7d7bb4c286a9222ccbcbd4b4a26b635
|
||||||
|
viPostRemove: &ghc-post-remove "After removing GHC you might also want to clean up your cabal store at: ~/.cabal/store/ghc-<ghcver>"
|
||||||
|
viArch:
|
||||||
|
A_64:
|
||||||
|
Linux_Debian:
|
||||||
|
'< 10': &ghc-941a2-64-deb9
|
||||||
|
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/curated/9.4.1-alpha2/ghc-9.4.1-alpha2-x86_64-deb9-linux.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220523-x86_64-unknown-linux
|
||||||
|
dlHash: e99b375a40123873c347656ab7c0445bce0ce76f88484764dd683bb15d4d6038
|
||||||
|
'( >= 10 && < 11 )': &ghc-941a2-64-deb10
|
||||||
|
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/curated/9.4.1-alpha2/ghc-9.4.1-alpha2-x86_64-deb10-linux.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220523-x86_64-unknown-linux
|
||||||
|
dlHash: f34867ba666e6c9579b5862816963a7b31bddb384dd2763ce88b7de87424f2cd
|
||||||
|
'>= 11': &ghc-941a2-64-deb11
|
||||||
|
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/curated/9.4.1-alpha2/ghc-9.4.1-alpha2-x86_64-deb11-linux.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220523-x86_64-unknown-linux
|
||||||
|
dlHash: dee6e4dc88246f73de8a35bed446d807b2ecf9f6e88f5207b2f627403244f1a2
|
||||||
|
unknown_versioning: *ghc-941a2-64-deb10
|
||||||
|
Linux_Ubuntu:
|
||||||
|
'( >= 16 && < 19 )': *ghc-941a2-64-deb9
|
||||||
|
'( >= 19 && < 20 )': *ghc-941a2-64-deb10
|
||||||
|
'>= 20': *ghc-941a2-64-deb11
|
||||||
|
Linux_Mint:
|
||||||
|
'< 20': *ghc-941a2-64-deb9
|
||||||
|
'>= 20': *ghc-941a2-64-deb10
|
||||||
|
Linux_Fedora:
|
||||||
|
unknown_versioning: &ghc-941a2-64-fedora
|
||||||
|
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/curated/9.4.1-alpha2/ghc-9.4.1-alpha2-x86_64-fedora33-linux.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220523-x86_64-unknown-linux
|
||||||
|
dlHash: 8a7adfa176b835ad20a559e6ef1acadea27c9f1c6d695c684f42f2c43a89e7ae
|
||||||
|
Linux_CentOS:
|
||||||
|
'( >= 7 && < 8 )': &ghc-941a2-64-centos
|
||||||
|
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/curated/9.4.1-alpha2/ghc-9.4.1-alpha2-x86_64-centos7-linux.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220523-x86_64-unknown-linux
|
||||||
|
dlHash: 7f4e317c86c36de997067c88fa544086b90c83f3488675bc30fcf0e4cd29c1a1
|
||||||
|
unknown_versioning: *ghc-941a2-64-centos
|
||||||
|
Linux_UnknownLinux:
|
||||||
|
unknown_versioning: *ghc-941a2-64-fedora
|
||||||
|
Darwin:
|
||||||
|
unknown_versioning:
|
||||||
|
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/curated/9.4.1-alpha2/ghc-9.4.1-alpha2-x86_64-apple-darwin.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220523-x86_64-apple-darwin
|
||||||
|
dlHash: c53e219bce3cd90b43e6305778712318f5812781dead185fc7821fbcd5805a35
|
||||||
|
Windows:
|
||||||
|
unknown_versioning:
|
||||||
|
dlUri: https://downloads.haskell.org/~ghc/9.4.1-alpha2/ghc-9.4.1-alpha2-x86_64-unknown-mingw32.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220523-x86_64-unknown-mingw32
|
||||||
|
dlHash: 25d817a39002f2120b2952b7bad9182d495bc275edc88211bdfcda5c899c242c
|
||||||
|
Linux_Alpine:
|
||||||
|
unknown_versioning:
|
||||||
|
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/curated/9.4.1-alpha2/ghc-9.4.1-alpha2-x86_64-alpine3_12-linux-static.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220523-x86_64-unknown-linux
|
||||||
|
dlHash: 502f4d4fe74ba43ae73d0e60baecf73b6204a6c2599a603d7ddbdf2d6d66f15a
|
||||||
|
A_32:
|
||||||
|
Linux_Debian:
|
||||||
|
'< 10': &ghc-941a2-32-deb9
|
||||||
|
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/curated/9.4.1-alpha2/ghc-9.4.1-alpha2-i386-deb9-linux.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220523-i386-unknown-linux
|
||||||
|
dlHash: dc195adca5e7b0bd6d2b6d573565daae1f95b47e7fba35f9ebf2650b094d8276
|
||||||
|
unknown_versioning: *ghc-941a2-32-deb9
|
||||||
|
Linux_Ubuntu:
|
||||||
|
unknown_versioning: *ghc-941a2-32-deb9
|
||||||
|
Linux_Mint:
|
||||||
|
unknown_versioning: *ghc-941a2-32-deb9
|
||||||
|
Linux_UnknownLinux:
|
||||||
|
unknown_versioning: *ghc-941a2-32-deb9
|
||||||
|
A_ARM64:
|
||||||
|
Linux_UnknownLinux:
|
||||||
|
unknown_versioning:
|
||||||
|
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/curated/9.4.1-alpha2/ghc-9.4.1-alpha2-aarch64-deb10-linux.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220523-aarch64-unknown-linux
|
||||||
|
dlHash: bf6ce2caf3b1de68c19ca26e533b29d1b08d1674eaf3f12e8b1aff66b0677b35
|
||||||
|
Darwin:
|
||||||
|
unknown_versioning:
|
||||||
|
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/curated/9.4.1-alpha2/ghc-9.4.1-alpha2-aarch64-apple-darwin.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220523-aarch64-apple-darwin
|
||||||
|
dlHash: bd44470eb124dc98331d14b5809b7bea204a660f0d5af46467497fe30459d5d4
|
||||||
|
9.4.0.20220623:
|
||||||
|
viTags:
|
||||||
|
- Prerelease
|
||||||
|
- base-4.17.0.0
|
||||||
|
- old
|
||||||
|
viChangeLog: https://downloads.haskell.org/ghc/9.4.1-alpha3/docs/users_guide/index.html
|
||||||
|
viSourceDL:
|
||||||
|
dlUri: https://downloads.haskell.org/~ghc/9.4.1-alpha3/ghc-9.4.0.20220623-src.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220623
|
||||||
|
dlHash: ccd5653097f779a8c7fbf09cb5e1068055a2de94ee7649a6ca45a1214a9a4d97
|
||||||
|
viPostRemove: *ghc-post-remove
|
||||||
|
viArch:
|
||||||
|
A_64:
|
||||||
|
Linux_Debian:
|
||||||
|
'< 10': &ghc-941a3-64-deb9
|
||||||
|
dlUri: https://downloads.haskell.org/ghc/9.4.1-alpha3/ghc-9.4.0.20220623-x86_64-deb9-linux.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220623-x86_64-unknown-linux
|
||||||
|
dlHash: b387afa7072953986e6299bbe232f12f62e218728624901b2c09937fb3f119c4
|
||||||
|
'( >= 10 && < 11 )': &ghc-941a3-64-deb10
|
||||||
|
dlUri: https://downloads.haskell.org/~ghc/9.4.1-alpha3/ghc-9.4.0.20220623-x86_64-deb10-linux.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220623-x86_64-unknown-linux
|
||||||
|
dlHash: d31c68a400a094bb4ef16957324d3a3804228cbbb0df22c8dabd342ebd156783
|
||||||
|
'>= 11': &ghc-941a3-64-deb11
|
||||||
|
dlUri: https://downloads.haskell.org/~ghc/9.4.1-alpha3/ghc-9.4.0.20220623-x86_64-deb11-linux.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220623-x86_64-unknown-linux
|
||||||
|
dlHash: d2f38c1e9b3c72dbefb8db407c6c89ab3930a0477e8289ae5f68aeba5bfd06a9
|
||||||
|
unknown_versioning: *ghc-941a3-64-deb10
|
||||||
|
Linux_Ubuntu:
|
||||||
|
'( >= 16 && < 19 )': *ghc-941a3-64-deb9
|
||||||
|
'( >= 19 && < 20 )': *ghc-941a3-64-deb10
|
||||||
|
'>= 20': *ghc-941a3-64-deb11
|
||||||
|
Linux_Mint:
|
||||||
|
'< 20': *ghc-941a3-64-deb9
|
||||||
|
'>= 20': *ghc-941a3-64-deb10
|
||||||
|
Linux_Fedora:
|
||||||
|
unknown_versioning: &ghc-941a3-64-fedora
|
||||||
|
dlUri: https://downloads.haskell.org/~ghc/9.4.1-alpha3/ghc-9.4.0.20220623-x86_64-fedora33-linux.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220623-x86_64-unknown-linux
|
||||||
|
dlHash: 9dbde7e189793acd5ed8bc23687b14239844d6c5fd0df4a319a9f69a6246513f
|
||||||
|
Linux_CentOS:
|
||||||
|
'( >= 7 && < 8 )': &ghc-941a3-64-centos
|
||||||
|
dlUri: https://downloads.haskell.org/~ghc/9.4.1-alpha3/ghc-9.4.0.20220623-x86_64-centos7-linux.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220623-x86_64-unknown-linux
|
||||||
|
dlHash: 94752e4c33b88ab7945d5ef2169f26eccdb74b8c9fd73e71c12e8c5689aa9a3c
|
||||||
|
unknown_versioning: *ghc-941a3-64-centos
|
||||||
|
Linux_UnknownLinux:
|
||||||
|
unknown_versioning: *ghc-941a3-64-fedora
|
||||||
|
Darwin:
|
||||||
|
unknown_versioning:
|
||||||
|
dlUri: https://downloads.haskell.org/~ghc/9.4.1-alpha3/ghc-9.4.0.20220623-x86_64-apple-darwin.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220623-x86_64-apple-darwin
|
||||||
|
dlHash: 6f9b0d2602c9fced66221162e4645cb6181953780c2476510d388c36f5d4d988
|
||||||
|
Windows:
|
||||||
|
unknown_versioning:
|
||||||
|
dlUri: https://downloads.haskell.org/~ghc/9.4.1-alpha3/ghc-9.4.0.20220623-x86_64-unknown-mingw32.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220623-x86_64-unknown-mingw32
|
||||||
|
dlHash: e903f1c426e0d8d0a6bde41179b938e30f8e9049082a8ed9be9cb218c2ece40a
|
||||||
|
Linux_Alpine:
|
||||||
|
unknown_versioning:
|
||||||
|
dlUri: https://downloads.haskell.org/~ghc/9.4.1-alpha3/ghc-9.4.0.20220623-x86_64-alpine3_12-linux-static.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220623-x86_64-unknown-linux
|
||||||
|
dlHash: 26c162cff0c0c7428e3145bfd12aeb4e5110631cb1a12f24572c123eb1504454
|
||||||
|
A_32:
|
||||||
|
Linux_Debian:
|
||||||
|
'< 10': &ghc-941a3-32-deb9
|
||||||
|
dlUri: https://downloads.haskell.org/~ghc/9.4.1-alpha3/ghc-9.4.0.20220623-i386-deb9-linux.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220623-i386-unknown-linux
|
||||||
|
dlHash: b765e6d73fae52a01cc9d7b82d54b4282f2ce1108a95ff13bcaef69725b03896
|
||||||
|
unknown_versioning: *ghc-941a3-32-deb9
|
||||||
|
Linux_Ubuntu:
|
||||||
|
unknown_versioning: *ghc-941a3-32-deb9
|
||||||
|
Linux_Mint:
|
||||||
|
unknown_versioning: *ghc-941a3-32-deb9
|
||||||
|
Linux_UnknownLinux:
|
||||||
|
unknown_versioning: *ghc-941a3-32-deb9
|
||||||
|
A_ARM64:
|
||||||
|
Linux_UnknownLinux:
|
||||||
|
unknown_versioning:
|
||||||
|
dlUri: https://downloads.haskell.org/~ghc/9.4.1-alpha3/ghc-9.4.0.20220623-aarch64-deb10-linux.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220623-aarch64-unknown-linux
|
||||||
|
dlHash: fac1b6256cf69a65ab852c0853b772b9a3964e2d9810f7d3bcaad64a70476db9
|
||||||
|
Darwin:
|
||||||
|
unknown_versioning:
|
||||||
|
dlUri: https://downloads.haskell.org/~ghc/9.4.1-alpha3/ghc-9.4.0.20220623-aarch64-apple-darwin.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220623-aarch64-apple-darwin
|
||||||
|
dlHash: d17bb845c53d11da078569f0bb9e91e760b7c7da0afed40da1192b5816d50416
|
||||||
|
9.4.0.20220721:
|
||||||
|
viTags:
|
||||||
|
- Prerelease
|
||||||
|
- base-4.17.0.0
|
||||||
|
viChangeLog: https://downloads.haskell.org/ghc/9.4.1-rc1/docs/users_guide/index.html
|
||||||
|
viSourceDL:
|
||||||
|
dlUri: https://downloads.haskell.org/~ghc/9.4.1-rc1/ghc-9.4.0.20220721-src.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220721
|
||||||
|
dlHash: bca8c52f76d8747a66291181de2de7bdf9ff80093808fe39bf5cbff0f116c426
|
||||||
|
viPostRemove: *ghc-post-remove
|
||||||
|
viArch:
|
||||||
|
A_64:
|
||||||
|
Linux_Debian:
|
||||||
|
'< 10': &ghc-941rc1-64-deb9
|
||||||
|
dlUri: https://downloads.haskell.org/ghc/9.4.1-rc1/ghc-9.4.0.20220721-x86_64-deb9-linux.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220721-x86_64-unknown-linux
|
||||||
|
dlHash: 225ffa4607305eec5c893d6598713e00cc114e689386cf1b0846f876ef6c36d7
|
||||||
|
'( >= 10 && < 11 )': &ghc-941rc1-64-deb10
|
||||||
|
dlUri: https://downloads.haskell.org/~ghc/9.4.1-rc1/ghc-9.4.0.20220721-x86_64-deb10-linux.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220721-x86_64-unknown-linux
|
||||||
|
dlHash: 9a5a7673a087c514fd6bec1b4968d6055341bb6355610f35f9bc2a662b843cf3
|
||||||
|
'>= 11': &ghc-941rc1-64-deb11
|
||||||
|
dlUri: https://downloads.haskell.org/~ghc/9.4.1-rc1/ghc-9.4.0.20220721-x86_64-deb11-linux.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220721-x86_64-unknown-linux
|
||||||
|
dlHash: 049e3217c3e199d0cacf06ef137c513cbbdbe901a26261ffae298048c638948f
|
||||||
|
unknown_versioning: *ghc-941rc1-64-deb10
|
||||||
|
Linux_Ubuntu:
|
||||||
|
'( >= 16 && < 19 )': *ghc-941rc1-64-deb9
|
||||||
|
'( >= 19 && < 20 )': *ghc-941rc1-64-deb10
|
||||||
|
'>= 20': *ghc-941rc1-64-deb11
|
||||||
|
Linux_Mint:
|
||||||
|
'< 20': *ghc-941rc1-64-deb9
|
||||||
|
'>= 20': *ghc-941rc1-64-deb10
|
||||||
|
Linux_Fedora:
|
||||||
|
unknown_versioning: &ghc-941rc1-64-fedora
|
||||||
|
dlUri: https://downloads.haskell.org/~ghc/9.4.1-rc1/ghc-9.4.0.20220721-x86_64-fedora33-linux.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220721-x86_64-unknown-linux
|
||||||
|
dlHash: a3fa0d0358fe93a00836b659832e25346f8f904d5e388756e7545aa010919dda
|
||||||
|
Linux_CentOS:
|
||||||
|
'( >= 7 && < 8 )': &ghc-941rc1-64-centos
|
||||||
|
dlUri: https://downloads.haskell.org/~ghc/9.4.1-rc1/ghc-9.4.0.20220721-x86_64-centos7-linux.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220721-x86_64-unknown-linux
|
||||||
|
dlHash: 2fb44e7541c320d0bc53ae95b538b6ab95103dc2d6b79427cdee3642a6e25f0d
|
||||||
|
unknown_versioning: *ghc-941rc1-64-centos
|
||||||
|
Linux_UnknownLinux:
|
||||||
|
unknown_versioning: *ghc-941rc1-64-fedora
|
||||||
|
Darwin:
|
||||||
|
unknown_versioning:
|
||||||
|
dlUri: https://downloads.haskell.org/~ghc/9.4.1-rc1/ghc-9.4.0.20220721-x86_64-apple-darwin.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220721-x86_64-apple-darwin
|
||||||
|
dlHash: 75d6de857de3372ece5283b4ba75bdf918e23cc9fc7a84f009d1542048142a07
|
||||||
|
Windows:
|
||||||
|
unknown_versioning:
|
||||||
|
dlUri: https://downloads.haskell.org/~ghc/9.4.1-rc1/ghc-9.4.0.20220721-x86_64-unknown-mingw32.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220721-x86_64-unknown-mingw32
|
||||||
|
dlHash: 8bd8d95b384b0f03fc50cc3f7720bbf928d2b44a2e4eec27d6019dfb2f16b3ca
|
||||||
|
Linux_Alpine:
|
||||||
|
unknown_versioning:
|
||||||
|
dlUri: https://downloads.haskell.org/~ghc/9.4.1-rc1/ghc-9.4.0.20220721-x86_64-alpine3_12-linux-static.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220721-x86_64-unknown-linux
|
||||||
|
dlHash: 2d0722c60b05203f1fdb16954b4b962381dd6ed4c7b2b2a8d96a0e17f713f8b3
|
||||||
|
A_32:
|
||||||
|
Linux_Debian:
|
||||||
|
'< 10': &ghc-941rc1-32-deb9
|
||||||
|
dlUri: https://downloads.haskell.org/~ghc/9.4.1-rc1/ghc-9.4.0.20220721-i386-deb9-linux.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220721-i386-unknown-linux
|
||||||
|
dlHash: e6be1db71a457e6aba9c3d22dd6acf8da8ea80879b45ec06687380c93649554e
|
||||||
|
unknown_versioning: *ghc-941rc1-32-deb9
|
||||||
|
Linux_Ubuntu:
|
||||||
|
unknown_versioning: *ghc-941rc1-32-deb9
|
||||||
|
Linux_Mint:
|
||||||
|
unknown_versioning: *ghc-941rc1-32-deb9
|
||||||
|
Linux_UnknownLinux:
|
||||||
|
unknown_versioning: *ghc-941rc1-32-deb9
|
||||||
|
A_ARM64:
|
||||||
|
Linux_UnknownLinux:
|
||||||
|
unknown_versioning:
|
||||||
|
dlUri: https://downloads.haskell.org/~ghc/9.4.1-rc1/ghc-9.4.0.20220721-aarch64-deb10-linux.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220721-aarch64-unknown-linux
|
||||||
|
dlHash: 4f8ad74aa5711827686373aef118b68feee0a5830265c5dd2df169a3b0c8e56d
|
||||||
|
Darwin:
|
||||||
|
unknown_versioning:
|
||||||
|
dlUri: https://downloads.haskell.org/~ghc/9.4.1-rc1/ghc-9.4.0.20220721-aarch64-apple-darwin.tar.xz
|
||||||
|
dlSubdir: ghc-9.4.0.20220721-aarch64-apple-darwin
|
||||||
|
dlHash: cca7bfbb7a8d4884314d8c033d4f9a96a9be5f399db276b796ad8cbb2deba6bd
|
||||||
BIN
ghcup-prereleases-0.0.7.yaml.sig
Normal file
BIN
ghcup-prereleases-0.0.7.yaml.sig
Normal file
Binary file not shown.
612
hls-metadata-0.0.1.json
Normal file
612
hls-metadata-0.0.1.json
Normal file
@@ -0,0 +1,612 @@
|
|||||||
|
{
|
||||||
|
"1.1.0": {
|
||||||
|
"A_64": {
|
||||||
|
"Darwin": [
|
||||||
|
"8.10.2",
|
||||||
|
"8.10.3",
|
||||||
|
"8.10.4",
|
||||||
|
"8.6.4",
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.2",
|
||||||
|
"8.8.3",
|
||||||
|
"8.8.4"
|
||||||
|
],
|
||||||
|
"Linux_Alpine": [
|
||||||
|
"8.10.2",
|
||||||
|
"8.10.3",
|
||||||
|
"8.10.4",
|
||||||
|
"8.6.4",
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.2",
|
||||||
|
"8.8.3",
|
||||||
|
"8.8.4"
|
||||||
|
],
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"8.10.2",
|
||||||
|
"8.10.3",
|
||||||
|
"8.10.4",
|
||||||
|
"8.6.4",
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.2",
|
||||||
|
"8.8.3",
|
||||||
|
"8.8.4"
|
||||||
|
],
|
||||||
|
"Windows": [
|
||||||
|
"8.6.4",
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.4",
|
||||||
|
"8.10.2",
|
||||||
|
"8.10.3",
|
||||||
|
"8.10.4"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"1.2.0": {
|
||||||
|
"A_64": {
|
||||||
|
"Darwin": [
|
||||||
|
"8.10.2",
|
||||||
|
"8.10.3",
|
||||||
|
"8.10.4",
|
||||||
|
"8.10.5",
|
||||||
|
"8.6.4",
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.2",
|
||||||
|
"8.8.3",
|
||||||
|
"8.8.4"
|
||||||
|
],
|
||||||
|
"Linux_Alpine": [
|
||||||
|
"8.10.2",
|
||||||
|
"8.10.3",
|
||||||
|
"8.10.4",
|
||||||
|
"8.10.5",
|
||||||
|
"8.6.4",
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.2",
|
||||||
|
"8.8.3",
|
||||||
|
"8.8.4"
|
||||||
|
],
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"8.10.2",
|
||||||
|
"8.10.3",
|
||||||
|
"8.10.4",
|
||||||
|
"8.10.5",
|
||||||
|
"8.6.4",
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.2",
|
||||||
|
"8.8.3",
|
||||||
|
"8.8.4"
|
||||||
|
],
|
||||||
|
"Windows": [
|
||||||
|
"8.10.2",
|
||||||
|
"8.10.3",
|
||||||
|
"8.10.4",
|
||||||
|
"8.10.5",
|
||||||
|
"8.6.4",
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.4"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"1.3.0": {
|
||||||
|
"A_64": {
|
||||||
|
"Darwin": [
|
||||||
|
"8.10.2",
|
||||||
|
"8.10.3",
|
||||||
|
"8.10.4",
|
||||||
|
"8.10.5",
|
||||||
|
"8.6.4",
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.3",
|
||||||
|
"8.8.4",
|
||||||
|
"9.0.1"
|
||||||
|
],
|
||||||
|
"Linux_Alpine": [
|
||||||
|
"8.10.2",
|
||||||
|
"8.10.3",
|
||||||
|
"8.10.4",
|
||||||
|
"8.10.5",
|
||||||
|
"8.6.4",
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.3",
|
||||||
|
"8.8.4",
|
||||||
|
"9.0.1"
|
||||||
|
],
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"8.10.2",
|
||||||
|
"8.10.3",
|
||||||
|
"8.10.4",
|
||||||
|
"8.10.5",
|
||||||
|
"8.6.4",
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.3",
|
||||||
|
"8.8.4",
|
||||||
|
"9.0.1"
|
||||||
|
],
|
||||||
|
"Windows": [
|
||||||
|
"8.10.2",
|
||||||
|
"8.10.3",
|
||||||
|
"8.10.4",
|
||||||
|
"8.10.5",
|
||||||
|
"8.6.4",
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.4",
|
||||||
|
"9.0.1"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"1.4.0": {
|
||||||
|
"A_64": {
|
||||||
|
"Darwin": [
|
||||||
|
"8.10.2",
|
||||||
|
"8.10.3",
|
||||||
|
"8.10.4",
|
||||||
|
"8.10.5",
|
||||||
|
"8.10.6",
|
||||||
|
"8.10.7",
|
||||||
|
"8.6.4",
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.3",
|
||||||
|
"8.8.4",
|
||||||
|
"9.0.1"
|
||||||
|
],
|
||||||
|
"FreeBSD": [
|
||||||
|
"8.10.7"
|
||||||
|
],
|
||||||
|
"Linux_Alpine": [
|
||||||
|
"8.10.2",
|
||||||
|
"8.10.3",
|
||||||
|
"8.10.4",
|
||||||
|
"8.10.5",
|
||||||
|
"8.10.6",
|
||||||
|
"8.10.7",
|
||||||
|
"8.6.4",
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.3",
|
||||||
|
"8.8.4",
|
||||||
|
"9.0.1"
|
||||||
|
],
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"8.10.2",
|
||||||
|
"8.10.3",
|
||||||
|
"8.10.4",
|
||||||
|
"8.10.5",
|
||||||
|
"8.10.6",
|
||||||
|
"8.10.7",
|
||||||
|
"8.6.4",
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.3",
|
||||||
|
"8.8.4",
|
||||||
|
"9.0.1"
|
||||||
|
],
|
||||||
|
"Windows": [
|
||||||
|
"8.10.2",
|
||||||
|
"8.10.3",
|
||||||
|
"8.10.4",
|
||||||
|
"8.10.5",
|
||||||
|
"8.10.6",
|
||||||
|
"8.10.7",
|
||||||
|
"8.6.4",
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.4",
|
||||||
|
"9.0.1"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"A_ARM": {
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"8.10.7"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"A_ARM64": {
|
||||||
|
"Darwin": [
|
||||||
|
"8.10.7"
|
||||||
|
],
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"8.10.7"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"1.5.0": {
|
||||||
|
"A_64": {
|
||||||
|
"Darwin": [
|
||||||
|
"8.10.5",
|
||||||
|
"8.10.6",
|
||||||
|
"8.10.7",
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.3",
|
||||||
|
"8.8.4",
|
||||||
|
"9.0.1"
|
||||||
|
],
|
||||||
|
"FreeBSD": [
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.4",
|
||||||
|
"8.10.5",
|
||||||
|
"8.10.6",
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.1"
|
||||||
|
],
|
||||||
|
"Linux_Alpine": [
|
||||||
|
"8.10.5",
|
||||||
|
"8.10.6",
|
||||||
|
"8.10.7",
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.3",
|
||||||
|
"8.8.4",
|
||||||
|
"9.0.1"
|
||||||
|
],
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"8.10.5",
|
||||||
|
"8.10.6",
|
||||||
|
"8.10.7",
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.3",
|
||||||
|
"8.8.4",
|
||||||
|
"9.0.1"
|
||||||
|
],
|
||||||
|
"Windows": [
|
||||||
|
"8.10.5",
|
||||||
|
"8.10.6",
|
||||||
|
"8.10.7",
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.4",
|
||||||
|
"9.0.1"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"A_ARM": {
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"8.10.7"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"A_ARM64": {
|
||||||
|
"Darwin": [
|
||||||
|
"8.10.7"
|
||||||
|
],
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"8.10.7"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"1.5.1": {
|
||||||
|
"A_64": {
|
||||||
|
"Darwin": [
|
||||||
|
"8.10.5",
|
||||||
|
"8.10.6",
|
||||||
|
"8.10.7",
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.3",
|
||||||
|
"8.8.4",
|
||||||
|
"9.0.1"
|
||||||
|
],
|
||||||
|
"FreeBSD": [
|
||||||
|
"8.10.7",
|
||||||
|
"8.8.4",
|
||||||
|
"9.0.1"
|
||||||
|
],
|
||||||
|
"Linux_Alpine": [
|
||||||
|
"8.10.5",
|
||||||
|
"8.10.6",
|
||||||
|
"8.10.7",
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.3",
|
||||||
|
"8.8.4",
|
||||||
|
"9.0.1"
|
||||||
|
],
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"8.10.5",
|
||||||
|
"8.10.6",
|
||||||
|
"8.10.7",
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.3",
|
||||||
|
"8.8.4",
|
||||||
|
"9.0.1"
|
||||||
|
],
|
||||||
|
"Windows": [
|
||||||
|
"8.10.5",
|
||||||
|
"8.10.6",
|
||||||
|
"8.10.7",
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.4",
|
||||||
|
"9.0.1"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"A_ARM": {
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"8.10.7"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"A_ARM64": {
|
||||||
|
"Darwin": [
|
||||||
|
"8.10.7"
|
||||||
|
],
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"8.10.7"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"1.6.0.0": {
|
||||||
|
"A_64": {
|
||||||
|
"Darwin": [
|
||||||
|
"8.10.6",
|
||||||
|
"8.10.7",
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.4",
|
||||||
|
"9.0.1",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.1"
|
||||||
|
],
|
||||||
|
"FreeBSD": [
|
||||||
|
"8.10.7",
|
||||||
|
"8.8.4",
|
||||||
|
"9.0.2"
|
||||||
|
],
|
||||||
|
"Linux_Alpine": [
|
||||||
|
"8.10.6",
|
||||||
|
"8.10.7",
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.4",
|
||||||
|
"9.0.1",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.1"
|
||||||
|
],
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"8.10.6",
|
||||||
|
"8.10.7",
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.4",
|
||||||
|
"9.0.1",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.1"
|
||||||
|
],
|
||||||
|
"Windows": [
|
||||||
|
"8.10.6",
|
||||||
|
"8.10.7",
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.4",
|
||||||
|
"9.0.1",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.1"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"A_ARM": {
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"8.10.7"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"A_ARM64": {
|
||||||
|
"Darwin": [
|
||||||
|
"8.10.7"
|
||||||
|
],
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"8.10.7"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"1.6.1.0": {
|
||||||
|
"A_64": {
|
||||||
|
"Darwin": [
|
||||||
|
"8.10.6",
|
||||||
|
"8.10.7",
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.4",
|
||||||
|
"9.0.1",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.1"
|
||||||
|
],
|
||||||
|
"FreeBSD": [
|
||||||
|
"8.10.7",
|
||||||
|
"8.8.4",
|
||||||
|
"9.0.2"
|
||||||
|
],
|
||||||
|
"Linux_Alpine": [
|
||||||
|
"8.10.7",
|
||||||
|
"8.8.4",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.1"
|
||||||
|
],
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"8.10.6",
|
||||||
|
"8.10.7",
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.4",
|
||||||
|
"9.0.1",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.1"
|
||||||
|
],
|
||||||
|
"Windows": [
|
||||||
|
"8.10.6",
|
||||||
|
"8.10.7",
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.4",
|
||||||
|
"9.0.1",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.1"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"A_ARM": {
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"8.10.7"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"A_ARM64": {
|
||||||
|
"Darwin": [
|
||||||
|
"8.10.7"
|
||||||
|
],
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"8.10.7"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"1.7.0.0": {
|
||||||
|
"A_64": {
|
||||||
|
"Darwin": [
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.4",
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.1",
|
||||||
|
"9.2.2"
|
||||||
|
],
|
||||||
|
"Linux_CentOS": [
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.4",
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.1",
|
||||||
|
"9.2.2"
|
||||||
|
],
|
||||||
|
"Linux_Debian": [
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.4",
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.1",
|
||||||
|
"9.2.2"
|
||||||
|
],
|
||||||
|
"Linux_Fedora": [
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.4",
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.1",
|
||||||
|
"9.2.2"
|
||||||
|
],
|
||||||
|
"Linux_Mint": [
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.4",
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.1",
|
||||||
|
"9.2.2"
|
||||||
|
],
|
||||||
|
"Linux_Ubuntu": [
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.4",
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.1",
|
||||||
|
"9.2.2"
|
||||||
|
],
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.4",
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.1",
|
||||||
|
"9.2.2"
|
||||||
|
],
|
||||||
|
"Windows": [
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.4",
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.1",
|
||||||
|
"9.2.2"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"A_ARM64": {
|
||||||
|
"Darwin": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.1",
|
||||||
|
"9.2.2"
|
||||||
|
],
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.1",
|
||||||
|
"9.2.2"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"1.8.0.0": {
|
||||||
|
"A_64": {
|
||||||
|
"Darwin": [
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.4",
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.3",
|
||||||
|
"9.2.4",
|
||||||
|
"9.4.1",
|
||||||
|
"9.4.2"
|
||||||
|
],
|
||||||
|
"Linux_CentOS": [
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.4",
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.3",
|
||||||
|
"9.2.4",
|
||||||
|
"9.4.1",
|
||||||
|
"9.4.2"
|
||||||
|
],
|
||||||
|
"Linux_Debian": [
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.4",
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.3",
|
||||||
|
"9.2.4",
|
||||||
|
"9.4.1",
|
||||||
|
"9.4.2"
|
||||||
|
],
|
||||||
|
"Linux_Fedora": [
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.4",
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.3",
|
||||||
|
"9.2.4",
|
||||||
|
"9.4.1",
|
||||||
|
"9.4.2"
|
||||||
|
],
|
||||||
|
"Linux_Mint": [
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.4",
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.3",
|
||||||
|
"9.2.4",
|
||||||
|
"9.4.1",
|
||||||
|
"9.4.2"
|
||||||
|
],
|
||||||
|
"Linux_Ubuntu": [
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.4",
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.3",
|
||||||
|
"9.2.4",
|
||||||
|
"9.4.1",
|
||||||
|
"9.4.2"
|
||||||
|
],
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"8.6.5",
|
||||||
|
"8.8.4",
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.3",
|
||||||
|
"9.2.4",
|
||||||
|
"9.4.1",
|
||||||
|
"9.4.2"
|
||||||
|
],
|
||||||
|
"Windows": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.3",
|
||||||
|
"9.2.4",
|
||||||
|
"9.4.1",
|
||||||
|
"9.4.2"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"A_ARM64": {
|
||||||
|
"Darwin": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.3",
|
||||||
|
"9.2.4",
|
||||||
|
"9.4.1",
|
||||||
|
"9.4.2"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
hls-metadata-0.0.1.json.sig
Normal file
BIN
hls-metadata-0.0.1.json.sig
Normal file
Binary file not shown.
Reference in New Issue
Block a user