Compare commits
235 Commits
stack-2.9.
...
issue-99
| Author | SHA1 | Date | |
|---|---|---|---|
| 493c2c81f4 | |||
| 041f8b1421 | |||
| b62f7ffa3b | |||
| 6ee7342fe3 | |||
| 1d43217082 | |||
| 4ffadfdda4 | |||
| 3e2ab12988 | |||
| 68731892cc | |||
| b2843da016 | |||
| 53ef921fe1 | |||
| 20916def87 | |||
| 335bc378aa | |||
|
|
1d366edea6 | ||
|
|
971e013861 | ||
|
|
397fd411af | ||
|
|
124f62c0a2 | ||
|
|
e93e21835e | ||
| 2d5701d480 | |||
| d9fe82364c | |||
|
|
ac43fb74c8 | ||
|
|
5013094656 | ||
|
|
fe6ad60f1d | ||
|
|
5e077005e6 | ||
|
|
ad3f8f9507 | ||
|
|
97553d92cc | ||
|
|
4f4e82f3a7 | ||
|
|
9f5f9d0d40 | ||
|
|
0e394642f1 | ||
|
|
977147b65a | ||
|
|
67de4cb8db | ||
|
|
9946e32869 | ||
|
|
7aa3b26848 | ||
|
|
c8cfd2717f | ||
|
|
62c55a1893 | ||
|
|
0972ffb4c9 | ||
|
|
73a6c8c0cf | ||
|
|
cca4a2386d | ||
| 44cad536cf | |||
| 392c3879da | |||
|
|
0702ea6eac | ||
|
|
88882cc757 | ||
| b2d276cd43 | |||
| 4be5f2a861 | |||
| 76bbc57292 | |||
|
|
7c3d976be2 | ||
|
|
4543dbe628 | ||
| 0dd813c3bc | |||
| 9cda41867d | |||
|
|
3fb3d65717 | ||
|
|
a66c722d9c | ||
|
|
228b60092e | ||
|
|
236a679e1f | ||
| 69dd66bfb8 | |||
|
|
fab0629aab | ||
| dff3e395c0 | |||
| 8faa5a00a4 | |||
|
|
44c6e2b5d0 | ||
|
|
9332b5c3b6 | ||
|
|
6dc4112b03 | ||
|
|
f40933da42 | ||
|
|
9137f4b994 | ||
|
|
ae0c031c78 | ||
|
|
309ceffb43 | ||
|
|
a239e448fa | ||
|
|
5c735e8478 | ||
|
|
fb1e1a8f7d | ||
|
|
803b2cfd1b | ||
|
|
dac7e22520 | ||
| 0759634d3c | |||
| 7312daf7da | |||
| 8fa3fc6f6f | |||
| 8550a086b4 | |||
| b2aaecac07 | |||
| fd29f96559 | |||
| 6aa90ff5dd | |||
| 046205bdc0 | |||
| 737cc346db | |||
| 7ab3419345 | |||
| c88802ea8c | |||
| 5a85e7f735 | |||
| cdd58df6a4 | |||
| b089af6578 | |||
| 909e64ae8b | |||
| 9cff00364a | |||
| e34b095e99 | |||
| 1a10c6d2e2 | |||
| f5cf930de3 | |||
| 3ff8cf172d | |||
| 2b0f9134e9 | |||
| 4854047dc9 | |||
| 9266021236 | |||
| 8defb9068a | |||
| b88e461c7c | |||
| bb94c7445a | |||
| 27325db7c0 | |||
| 3459025d6f | |||
|
|
62c05e25c6 | ||
| e2102511b1 | |||
| 508f52dfb1 | |||
| ec29b4bcc3 | |||
| 52f4dde1ee | |||
| 4cf9867563 | |||
|
|
e9426c246d | ||
|
|
5cba359c78 | ||
| 66a24ec9aa | |||
| d7d93a85c2 | |||
| 13fad50ca2 | |||
| 484dd1084c | |||
| c58fe8aaef | |||
| 407d47a2ba | |||
|
|
d643f9f84e | ||
|
|
0540871277 | ||
| 49063b09ba | |||
| d6e7b29250 | |||
| ffc8c38074 | |||
|
|
e7a1ac0c15 | ||
| 9459d1cb08 | |||
| d97d4fb8d7 | |||
| d35571f02d | |||
| 2dbfc84ef6 | |||
| 92efb732ac | |||
| 6474e0e7de | |||
| 5f1802aee7 | |||
| 7a5ffc84ff | |||
|
|
b37a8ca419 | ||
| 309dcd0344 | |||
| 16ca788725 | |||
| 86526f6015 | |||
| 1d00d31730 | |||
| c975203b5e | |||
| 5c692ab9ec | |||
| 7c1bf39704 | |||
| 673a49bcc1 | |||
| 6926df6a00 | |||
| 874f9a52f8 | |||
|
|
cb19cf7a20 | ||
|
|
59ea5163ce | ||
|
b0a026f6a0
|
|||
|
5700321a7d
|
|||
|
c58f03c71d
|
|||
|
96b1c8e3e9
|
|||
|
60a30d8522
|
|||
|
7de9fd3a8c
|
|||
|
b8606ec3b7
|
|||
|
d19cc1d0f0
|
|||
|
b703c55991
|
|||
|
8b95d10664
|
|||
|
d5c7e708d8
|
|||
|
fea14b9a06
|
|||
|
eadf9b61ba
|
|||
|
594bd5490d
|
|||
|
|
1fa98afb67 | ||
|
9a262dc451
|
|||
|
d4f085edf4
|
|||
|
9c4b70f495
|
|||
|
3e05dee7bf
|
|||
|
f8d0da5743
|
|||
|
dfe477c1b7
|
|||
|
f752a23491
|
|||
|
df38f4edf2
|
|||
|
ad42891618
|
|||
|
|
fe5f56580b
|
||
|
4f8635e560
|
|||
|
8501a6d4b2
|
|||
|
94b469197d
|
|||
|
b1c5e84b42
|
|||
|
51aa203205
|
|||
|
0b98de04cc
|
|||
|
3e07ac0a20
|
|||
|
d819571955
|
|||
|
d33b26a495
|
|||
|
0ba569e44c
|
|||
|
ea9b67d5d0
|
|||
|
f47527468b
|
|||
|
|
0939170115 | ||
|
2941394cb1
|
|||
|
152f531e31
|
|||
|
033fcb7f19
|
|||
|
c3d3804e12
|
|||
|
1b5713af8f
|
|||
|
8544b1bd49
|
|||
|
cd5ff36ece
|
|||
|
3520430cd5
|
|||
|
95b6a0a455
|
|||
|
a68345fa44
|
|||
|
98ca9d2f37
|
|||
|
|
f45f8c6061 | ||
|
12cb639ca1
|
|||
|
eeb1e14e37
|
|||
|
3d85d4d78a
|
|||
|
61f49e0992
|
|||
|
7a709a22a4
|
|||
|
b0004fb0e3
|
|||
|
4b30ea60c0
|
|||
|
bcc2ced30a
|
|||
|
|
510f1f281d | ||
|
|
1b182831ae | ||
|
7acba3cd1e
|
|||
|
023f6b1a74
|
|||
|
|
f9977b5a25 | ||
|
727ed6a374
|
|||
|
f595461414
|
|||
|
|
0daacd0fb3 | ||
|
0306776a0b
|
|||
|
9e14e6c736
|
|||
|
25b231442a
|
|||
|
dde651c769
|
|||
|
a05354bbc8
|
|||
|
27c82dc3f7
|
|||
|
e85fc30d6c
|
|||
|
|
93204da7fa | ||
|
adae303354
|
|||
|
b6698d1d2b
|
|||
|
7e08589078
|
|||
|
e6b0a8086a
|
|||
|
7fe858c762
|
|||
|
c8fc5fb44e
|
|||
|
0b92651bcc
|
|||
|
bcfe45ad6b
|
|||
|
|
ae180380b5 | ||
|
11aa850e1c
|
|||
|
e86689a03b
|
|||
|
053d4fe216
|
|||
|
|
173dc63375 | ||
|
9061e416ce
|
|||
|
e3cdf35f45
|
|||
|
f45500e82a
|
|||
|
c42bb4a2ff
|
|||
|
|
7601d79710 | ||
|
|
11cb83955f | ||
|
0a1655fbb2
|
|||
|
4bccb92d3f
|
|||
|
|
c3f824ddc3 | ||
|
9abf634f8c
|
|||
|
5d50438a4c
|
300
.github/workflows/bindists.yaml
vendored
300
.github/workflows/bindists.yaml
vendored
@@ -3,10 +3,6 @@ defaults:
|
|||||||
run:
|
run:
|
||||||
shell: bash
|
shell: bash
|
||||||
on:
|
on:
|
||||||
pull_request:
|
|
||||||
types: [opened]
|
|
||||||
issue_comment:
|
|
||||||
types: [created]
|
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
inputs:
|
inputs:
|
||||||
tool:
|
tool:
|
||||||
@@ -22,6 +18,11 @@ on:
|
|||||||
required: true
|
required: true
|
||||||
default: ghcup-0.0.7.yaml
|
default: ghcup-0.0.7.yaml
|
||||||
type: string
|
type: string
|
||||||
|
channel:
|
||||||
|
description: Distribution channel (main|prerelease|nightly)
|
||||||
|
required: true
|
||||||
|
default: Main
|
||||||
|
type: string
|
||||||
env:
|
env:
|
||||||
BOOTSTRAP_HASKELL_NONINTERACTIVE: 1
|
BOOTSTRAP_HASKELL_NONINTERACTIVE: 1
|
||||||
BOOTSTRAP_HASKELL_MINIMAL: 1
|
BOOTSTRAP_HASKELL_MINIMAL: 1
|
||||||
@@ -29,6 +30,7 @@ env:
|
|||||||
TOOL: ${{ github.event.inputs.tool }}
|
TOOL: ${{ github.event.inputs.tool }}
|
||||||
VERSION: ${{ github.event.inputs.version }}
|
VERSION: ${{ github.event.inputs.version }}
|
||||||
METADATA_FILE: ${{ github.event.inputs.metadataFile }}
|
METADATA_FILE: ${{ github.event.inputs.metadataFile }}
|
||||||
|
CHANNEL: ${{ github.event.inputs.channel }}
|
||||||
jobs:
|
jobs:
|
||||||
bindist-install:
|
bindist-install:
|
||||||
name: linux-${{ matrix.image }}
|
name: linux-${{ matrix.image }}
|
||||||
@@ -40,15 +42,12 @@ jobs:
|
|||||||
- image: alpine:latest
|
- image: alpine:latest
|
||||||
installCmd: apk update && apk add
|
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
|
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
|
- image: debian:10
|
||||||
installCmd: apt-get update && apt-get install -y
|
installCmd: apt-get update && apt-get install -y
|
||||||
toolRequirements: build-essential curl libffi-dev libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
|
toolRequirements: build-essential curl libffi-dev libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5 libnuma-dev
|
||||||
- image: debian:11
|
- image: debian:11
|
||||||
installCmd: apt-get update && apt-get install -y
|
installCmd: apt-get update && apt-get install -y
|
||||||
toolRequirements: build-essential curl libffi-dev libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
|
toolRequirements: build-essential curl libffi-dev libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5 libnuma-dev
|
||||||
- image: ubuntu:18.04
|
- image: ubuntu:18.04
|
||||||
installCmd: apt-get update && apt-get install -y
|
installCmd: apt-get update && apt-get install -y
|
||||||
toolRequirements: build-essential curl libffi-dev libffi6 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
|
toolRequirements: build-essential curl libffi-dev libffi6 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
|
||||||
@@ -61,15 +60,27 @@ jobs:
|
|||||||
- image: archlinux:latest
|
- image: archlinux:latest
|
||||||
installCmd: pacman -Syu --noconfirm
|
installCmd: pacman -Syu --noconfirm
|
||||||
toolRequirements: which gcc gmp libffi make ncurses perl tar xz
|
toolRequirements: which gcc gmp libffi make ncurses perl tar xz
|
||||||
|
- image: fedora:27
|
||||||
|
installCmd: dnf install -y
|
||||||
|
toolRequirements: which findutils gcc gcc-c++ gmp gmp-devel make ncurses ncurses-compat-libs xz perl
|
||||||
- image: fedora:36
|
- image: fedora:36
|
||||||
installCmd: dnf install -y
|
installCmd: dnf install -y
|
||||||
toolRequirements: which gcc g++ gmp gmp-devel make ncurses ncurses-compat-libs xz perl
|
toolRequirements: which gcc g++ gmp gmp-devel make ncurses ncurses-compat-libs xz perl
|
||||||
|
- image: rockylinux:8
|
||||||
|
installCmd: dnf install -y
|
||||||
|
toolRequirements: which findutils gcc gcc-c++ gmp gmp-devel make ncurses ncurses-compat-libs xz perl
|
||||||
|
- image: rockylinux:9
|
||||||
|
installCmd: dnf install -y --allowerasing
|
||||||
|
toolRequirements: which findutils gcc gcc-c++ gmp gmp-devel make ncurses xz perl
|
||||||
- image: linuxmintd/mint19.3-amd64
|
- image: linuxmintd/mint19.3-amd64
|
||||||
installCmd: apt-get update && apt-get install -y
|
installCmd: apt-get update && apt-get install -y
|
||||||
toolRequirements: build-essential curl libffi-dev libffi6 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
|
toolRequirements: build-essential curl libffi-dev libffi6 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
|
||||||
- image: linuxmintd/mint20.2-amd64
|
- image: linuxmintd/mint20.2-amd64
|
||||||
installCmd: apt-get update && apt-get install -y
|
installCmd: apt-get update && apt-get install -y
|
||||||
toolRequirements: build-essential curl libffi-dev libffi7 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
|
toolRequirements: build-essential curl libffi-dev libffi7 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
|
||||||
|
- image: linuxmintd/mint21.1-amd64
|
||||||
|
installCmd: apt-get update && apt-get install -y
|
||||||
|
toolRequirements: build-essential curl libffi-dev libffi7 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
|
||||||
container:
|
container:
|
||||||
image: ${{ matrix.image }}
|
image: ${{ matrix.image }}
|
||||||
steps:
|
steps:
|
||||||
@@ -78,182 +89,133 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
${{ matrix.installCmd }} curl bash git ${{ matrix.toolRequirements }}
|
${{ matrix.installCmd }} curl bash git ${{ matrix.toolRequirements }}
|
||||||
|
|
||||||
- uses: shpingalet007/pull-request-comment-trigger@696de492b50cee0ba671934893c91c5805a403b9
|
- uses: actions/checkout@v3
|
||||||
id: check
|
|
||||||
with:
|
|
||||||
trigger: '@bindistTest ** ** **'
|
|
||||||
reaction: rocket
|
|
||||||
allow_arguments: true
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: '${{secrets.GITHUB_TOKEN}}'
|
|
||||||
|
|
||||||
- uses: shpingalet007/pull-request-comment-trigger@696de492b50cee0ba671934893c91c5805a403b9
|
- name: Install ghcup and bindist
|
||||||
id: checkRef
|
run: .github/workflows/install-bindist.sh
|
||||||
with:
|
|
||||||
trigger: '@bindistTestRef ** ** ** **'
|
|
||||||
reaction: rocket
|
|
||||||
allow_arguments: true
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: '${{secrets.GITHUB_TOKEN}}'
|
|
||||||
|
|
||||||
- if: ${{ steps.checkRef.outputs.triggered == 'true' }}
|
bindist-install-mac-win:
|
||||||
uses: actions/checkout@v3
|
name: Build non-linux
|
||||||
with:
|
|
||||||
ref: ${{ fromJson(steps.check.outputs.arguments)[3] }}
|
|
||||||
|
|
||||||
- if: ${{ steps.checkRef.outputs.triggered != 'true' }}
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- if: ${{ github.event_name != 'workflow_dispatch' || steps.check.outputs.triggered == 'true' }}
|
|
||||||
continue-on-error: true
|
|
||||||
name: Install ghcup and bindist
|
|
||||||
run: |
|
|
||||||
[ -z "${TOOL}" ] && export TOOL=${{ fromJson(steps.check.outputs.arguments)[0] }}
|
|
||||||
[ -z "${VERSION}" ] && export VERSION=${{ fromJson(steps.check.outputs.arguments)[1] }}
|
|
||||||
[ -z "${METADATA_FILE}" ] && export METADATA_FILE=${{ fromJson(steps.check.outputs.arguments)[2] }}
|
|
||||||
.github/workflows/install-bindist.sh
|
|
||||||
echo SUCCESS=true >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- if: ${{ github.event_name != 'workflow_dispatch' && steps.check.outputs.triggered != 'true' && steps.checkRef.outputs.triggered == 'true' }}
|
|
||||||
continue-on-error: true
|
|
||||||
name: Install ghcup and bindist
|
|
||||||
run: |
|
|
||||||
[ -z "${TOOL}" ] && export TOOL=${{ fromJson(steps.checkRef.outputs.arguments)[0] }}
|
|
||||||
[ -z "${VERSION}" ] && export VERSION=${{ fromJson(steps.checkRef.outputs.arguments)[1] }}
|
|
||||||
[ -z "${METADATA_FILE}" ] && export METADATA_FILE=${{ fromJson(steps.checkRef.outputs.arguments)[2] }}
|
|
||||||
.github/workflows/install-bindist.sh
|
|
||||||
echo SUCCESS=true >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- if: ${{ github.event_name == 'workflow_dispatch' }}
|
|
||||||
name: Install ghcup and bindist
|
|
||||||
run: |
|
|
||||||
.github/workflows/install-bindist.sh
|
|
||||||
echo SUCCESS=true >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- run: |
|
|
||||||
if [ "${{ env.SUCCESS }}" = "true" ] ; then
|
|
||||||
echo "true" > message-linux.txt
|
|
||||||
else
|
|
||||||
echo "false" > message-linux.txt
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Upload artifact
|
|
||||||
uses: actions/upload-artifact@v3
|
|
||||||
with:
|
|
||||||
name: artifacts
|
|
||||||
path: |
|
|
||||||
./message-linux.txt
|
|
||||||
|
|
||||||
bindist-install-non-linux:
|
|
||||||
name: ${{ matrix.os }}
|
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
include:
|
||||||
- macos-11
|
- os: [self-hosted, macOS, ARM64]
|
||||||
- macos-12
|
- os: macos-11
|
||||||
- windows-latest
|
- os: macos-12
|
||||||
|
- os: windows-latest
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- uses: shpingalet007/pull-request-comment-trigger@696de492b50cee0ba671934893c91c5805a403b9
|
|
||||||
id: check
|
|
||||||
with:
|
|
||||||
trigger: '@bindistTest ** ** **'
|
|
||||||
reaction: rocket
|
|
||||||
allow_arguments: true
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: '${{secrets.GITHUB_TOKEN}}'
|
|
||||||
|
|
||||||
- uses: shpingalet007/pull-request-comment-trigger@696de492b50cee0ba671934893c91c5805a403b9
|
- uses: actions/checkout@v3
|
||||||
id: checkRef
|
|
||||||
with:
|
|
||||||
trigger: '@bindistTestRef ** ** ** **'
|
|
||||||
reaction: rocket
|
|
||||||
allow_arguments: true
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: '${{secrets.GITHUB_TOKEN}}'
|
|
||||||
|
|
||||||
- if: ${{ steps.checkRef.outputs.triggered == 'true' }}
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
ref: ${{ fromJson(steps.check.outputs.arguments)[3] }}
|
|
||||||
|
|
||||||
- if: ${{ steps.checkRef.outputs.triggered != 'true' }}
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- if: ${{ github.event_name != 'workflow_dispatch' || steps.check.outputs.triggered == 'true' }}
|
|
||||||
continue-on-error: true
|
|
||||||
name: Install ghcup and bindist
|
|
||||||
run: |
|
|
||||||
[ -z "${TOOL}" ] && export TOOL=${{ fromJson(steps.check.outputs.arguments)[0] }}
|
|
||||||
[ -z "${VERSION}" ] && export VERSION=${{ fromJson(steps.check.outputs.arguments)[1] }}
|
|
||||||
[ -z "${METADATA_FILE}" ] && export METADATA_FILE=${{ fromJson(steps.check.outputs.arguments)[2] }}
|
|
||||||
.github/workflows/install-bindist.sh
|
|
||||||
echo SUCCESS=true >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- if: ${{ github.event_name != 'workflow_dispatch' && steps.check.outputs.triggered != 'true' && steps.checkRef.outputs.triggered == 'true' }}
|
|
||||||
continue-on-error: true
|
|
||||||
name: Install ghcup and bindist
|
|
||||||
run: |
|
|
||||||
[ -z "${TOOL}" ] && export TOOL=${{ fromJson(steps.checkRef.outputs.arguments)[0] }}
|
|
||||||
[ -z "${VERSION}" ] && export VERSION=${{ fromJson(steps.checkRef.outputs.arguments)[1] }}
|
|
||||||
[ -z "${METADATA_FILE}" ] && export METADATA_FILE=${{ fromJson(steps.checkRef.outputs.arguments)[2] }}
|
|
||||||
.github/workflows/install-bindist.sh
|
|
||||||
echo SUCCESS=true >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- if: ${{ github.event_name == 'workflow_dispatch' }}
|
- if: ${{ github.event_name == 'workflow_dispatch' }}
|
||||||
name: Install ghcup and bindist
|
name: Install ghcup and bindist
|
||||||
run: |
|
run: .github/workflows/install-bindist.sh
|
||||||
.github/workflows/install-bindist.sh
|
|
||||||
echo SUCCESS=true >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- run: |
|
bindist-install-arm:
|
||||||
if [ "${{ env.SUCCESS }}" = "true" ] ; then
|
name: Build ARM binary
|
||||||
echo "true" > message.txt
|
runs-on: ${{ matrix.os }}
|
||||||
else
|
strategy:
|
||||||
echo "false" > message.txt
|
fail-fast: false
|
||||||
fi
|
matrix:
|
||||||
|
include:
|
||||||
- name: Upload artifact
|
- os: [self-hosted, Linux, ARM64]
|
||||||
uses: actions/upload-artifact@v3
|
ARCH: ARM
|
||||||
|
- os: [self-hosted, Linux, ARM64]
|
||||||
|
ARCH: ARM64
|
||||||
|
steps:
|
||||||
|
- uses: docker://arm64v8/ubuntu:focal
|
||||||
|
name: Cleanup (aarch64 linux)
|
||||||
with:
|
with:
|
||||||
name: artifacts
|
args: "find . -mindepth 1 -maxdepth 1 -exec rm -rf -- {} +"
|
||||||
path: |
|
|
||||||
./message.txt
|
|
||||||
|
|
||||||
comment:
|
- name: git config
|
||||||
name: comment
|
run: |
|
||||||
needs: ["bindist-install", "bindist-install-non-linux"]
|
git config --global --get-all safe.directory | grep '^\*$' || git config --global --add safe.directory "*"
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- if: matrix.ARCH == 'ARM'
|
||||||
|
uses: docker://hasufell/arm32v7-ubuntu-haskell:focal
|
||||||
|
name: Run build (armv7 linux)
|
||||||
|
with:
|
||||||
|
args: sh -c '.github/workflows/install-bindist.sh'
|
||||||
|
|
||||||
|
- if: matrix.ARCH == 'ARM64'
|
||||||
|
uses: docker://hasufell/arm64v8-ubuntu-haskell:focal
|
||||||
|
name: Run build (aarch64 linux)
|
||||||
|
with:
|
||||||
|
args: sh -c '.github/workflows/install-bindist.sh'
|
||||||
|
|
||||||
|
validate:
|
||||||
|
name: ghcup-gen check
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
env:
|
||||||
|
GHC: 9.2.8
|
||||||
|
CABAL: 3.10.1.0
|
||||||
|
steps:
|
||||||
|
- name: create ~/.local/bin
|
||||||
|
run: mkdir -p "$HOME/.local/bin"
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
- name: Add ~/.local/bin to PATH
|
||||||
|
run: echo "$HOME/.local/bin" >> $GITHUB_PATH
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
- name: install yamllint
|
||||||
|
run: pip install yamllint
|
||||||
|
|
||||||
|
- name: Update cabal cache
|
||||||
|
run: cabal update
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
- name: Install requirements
|
||||||
|
shell: sh
|
||||||
|
run: |
|
||||||
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
|
export TZ=Asia/Singapore
|
||||||
|
sudo apt-get update && sudo apt-get install -y curl bash git gnupg libarchive-dev
|
||||||
|
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Cache Cabal
|
||||||
|
uses: actions/cache@v2
|
||||||
|
env:
|
||||||
|
cache-name: cache-cabal
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
~/.cabal/store
|
||||||
|
~/.cabal/packages
|
||||||
|
key: v2-${{ runner.os }}-${{ env.GHC }}-${{ env.CABAL }}-build-${{ hashFiles('cabal.project') }}
|
||||||
|
restore-keys: |
|
||||||
|
v2-${{ runner.os }}-${{ env.GHC }}-${{ env.CABAL }}-build-${{ hashFiles('cabal.project') }}
|
||||||
|
v2-${{ runner.os }}-${{ env.GHC }}-${{ env.CABAL }}-build-
|
||||||
|
v2-${{ runner.os }}-${{ env.GHC }}
|
||||||
|
|
||||||
|
- name: Install ghcup-gen
|
||||||
|
run: |
|
||||||
|
ghcup run --cabal 3.10.1.0 --ghc 9.2.8 --install -- cabal install --installdir="$HOME/.local/bin" --overwrite-policy=always --install-method=copy ghcup-gen
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
- name: Check yaml
|
||||||
|
run: |
|
||||||
|
ghcup-gen -- check -f ${{ env.METADATA_FILE }} --channel ${{ env.CHANNEL }}
|
||||||
|
yamllint ${{ env.METADATA_FILE }}
|
||||||
|
python3 -c "import yaml ; stream = open('${{ env.METADATA_FILE }}', 'r') ; yaml.safe_load(stream)"
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
signature-test:
|
||||||
|
name: Test signatures
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Download artifacts
|
- name: Install requirements
|
||||||
uses: actions/download-artifact@v3
|
shell: sh
|
||||||
with:
|
|
||||||
name: artifacts
|
|
||||||
|
|
||||||
- run: |
|
|
||||||
if [ "$(cat message.txt)" == "true" ] && [ "$(cat message-linux.txt)" == "true" ] ; then
|
|
||||||
echo "SUCCESS=true" >> $GITHUB_ENV
|
|
||||||
else
|
|
||||||
echo "SUCCESS=false" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
|
|
||||||
- id: message
|
|
||||||
run: |
|
run: |
|
||||||
if [ "${{ env.SUCCESS }}" = "true" ] ; then
|
sudo apt-get update && sudo apt-get install -y curl bash git gnupg
|
||||||
echo 'MESSAGE=Bindist check success :+1:' >> $GITHUB_OUTPUT
|
|
||||||
else
|
|
||||||
echo 'MESSAGE=Bindist check failure :-1:' >> $GITHUB_OUTPUT
|
|
||||||
fi
|
|
||||||
|
|
||||||
- if: ${{ github.event_name == 'pull_request' }}
|
- uses: actions/checkout@v3
|
||||||
name: Comment PR
|
|
||||||
uses: thollander/actions-comment-pull-request@v2
|
|
||||||
with:
|
|
||||||
message: |
|
|
||||||
${{ steps.message.outputs.MESSAGE }}
|
|
||||||
|
|
||||||
- name: Check on failures
|
|
||||||
if: env.SUCCESS != 'true'
|
|
||||||
run: exit 1
|
|
||||||
|
|
||||||
|
- name: Test signatures
|
||||||
|
run: .github/workflows/test-sigs.sh
|
||||||
|
|||||||
30
.github/workflows/common.sh
vendored
Normal file
30
.github/workflows/common.sh
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ "${RUNNER_OS}" = "Windows" ] ; then
|
||||||
|
ext=".exe"
|
||||||
|
else
|
||||||
|
ext=''
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo_color() {
|
||||||
|
local color="$1"
|
||||||
|
local msg="$2"
|
||||||
|
echo -e "\033[${color}m${msg}\033[0m"
|
||||||
|
}
|
||||||
|
|
||||||
|
error() { echo_color "${RED}" "$1"; }
|
||||||
|
warn() { echo_color "${LT_BROWN}" "$1"; }
|
||||||
|
info() { echo_color "${LT_BLUE}" "$1"; }
|
||||||
|
|
||||||
|
fail() { error "error: $1"; exit 1; }
|
||||||
|
|
||||||
|
mktempdir() {
|
||||||
|
case "$(uname -s)" in
|
||||||
|
"Darwin"|"darwin")
|
||||||
|
mktemp -d -t hls_ci.XXXXXXX
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
mktemp -d
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
83
.github/workflows/install-bindist.sh
vendored
83
.github/workflows/install-bindist.sh
vendored
@@ -2,23 +2,31 @@
|
|||||||
set -x
|
set -x
|
||||||
set -eo pipefail
|
set -eo pipefail
|
||||||
|
|
||||||
|
. .github/workflows/common.sh
|
||||||
|
|
||||||
export GHCUP_INSTALL_BASE_PREFIX=$RUNNER_TEMP/foobarbaz
|
export GHCUP_INSTALL_BASE_PREFIX=$RUNNER_TEMP/foobarbaz
|
||||||
|
|
||||||
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
|
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
|
||||||
|
|
||||||
source $GHCUP_INSTALL_BASE_PREFIX/.ghcup/env || source ~/.bashrc
|
source "$GHCUP_INSTALL_BASE_PREFIX"/.ghcup/env || source "$HOME/.bashrc"
|
||||||
|
|
||||||
ghcup --version
|
ghcup --version
|
||||||
which ghcup | grep foobarbaz
|
which ghcup | grep foobarbaz
|
||||||
|
|
||||||
# oh no
|
ghcup_fun() {
|
||||||
if [ "${TOOL}" = "hls" ] ; then
|
ghcup -v --url-source="file:$METADATA_FILE" "$@"
|
||||||
ghcup -v --url-source=file:$METADATA_FILE install ghc --set 9.2.4
|
}
|
||||||
fi
|
|
||||||
|
|
||||||
ghcup -v --url-source=file:$METADATA_FILE install $TOOL --set $VERSION
|
case $TOOL in
|
||||||
|
ghcup)
|
||||||
|
ghcup_fun upgrade --force
|
||||||
|
;;
|
||||||
|
*) ghcup_fun install "$TOOL" --set "$VERSION"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
mkdir /tmp/install-bindist-ci
|
mkdir -p /tmp/install-bindist-ci
|
||||||
|
cp "$METADATA_FILE" /tmp/install-bindist-ci/
|
||||||
cd /tmp/install-bindist-ci
|
cd /tmp/install-bindist-ci
|
||||||
|
|
||||||
cat <<EOF > main.hs
|
cat <<EOF > main.hs
|
||||||
@@ -30,9 +38,65 @@ main = print $ 1 + 1
|
|||||||
EOF
|
EOF
|
||||||
|
|
||||||
case $TOOL in
|
case $TOOL in
|
||||||
|
ghcup)
|
||||||
|
ghcup_fun list
|
||||||
|
;;
|
||||||
hls)
|
hls)
|
||||||
haskell-language-server-wrapper --version
|
ghcup_fun install cabal latest
|
||||||
haskell-language-server-wrapper typecheck main.hs
|
ghcup_fun install ghc --set recommended
|
||||||
|
cabal update
|
||||||
|
|
||||||
|
test_package="bytestring-0.11.1.0"
|
||||||
|
test_module="Data/ByteString.hs"
|
||||||
|
|
||||||
|
create_cradle() {
|
||||||
|
echo "cradle:" > hie.yaml
|
||||||
|
echo " cabal:" >> hie.yaml
|
||||||
|
}
|
||||||
|
|
||||||
|
enter_test_package() {
|
||||||
|
local tmp_dir
|
||||||
|
tmp_dir=$(mktempdir)
|
||||||
|
cd "$tmp_dir"
|
||||||
|
cabal unpack "${test_package}"
|
||||||
|
cd "${test_package}"
|
||||||
|
cp "/tmp/install-bindist-ci/${METADATA_FILE}" .
|
||||||
|
}
|
||||||
|
|
||||||
|
# For all HLS GHC versions and the wrapper, run 'typecheck'
|
||||||
|
# over the $test_module
|
||||||
|
test_all_hls() {
|
||||||
|
local bin
|
||||||
|
local bin_noexe
|
||||||
|
local bindir
|
||||||
|
local hls
|
||||||
|
bindir=$1
|
||||||
|
|
||||||
|
for hls in "${bindir}/"haskell-language-server-* ; do
|
||||||
|
bin=${hls##*/}
|
||||||
|
bin_noexe=${bin/.exe/}
|
||||||
|
if ! [[ "${bin_noexe}" =~ "haskell-language-server-wrapper" ]] && ! [[ "${bin_noexe}" =~ "~" ]] && ! [[ "${bin_noexe}" =~ ".shim" ]] ; then
|
||||||
|
if ghcup_fun install ghc --set "${bin_noexe/haskell-language-server-/}" ; then
|
||||||
|
"${hls}" typecheck "${test_module}" || fail "failed to typecheck with HLS for GHC ${bin_noexe/haskell-language-server-/}"
|
||||||
|
else
|
||||||
|
fail "GHCup failed to install GHC ${bin_noexe/haskell-language-server-/}"
|
||||||
|
fi
|
||||||
|
ghcup_fun rm ghc "${bin_noexe/haskell-language-server-/}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
"$bindir/haskell-language-server-wrapper${ext}" typecheck "${test_module}" || fail "failed to typecheck with HLS wrapper"
|
||||||
|
}
|
||||||
|
|
||||||
|
enter_test_package
|
||||||
|
create_cradle
|
||||||
|
case "$(uname -s)" in
|
||||||
|
MSYS_*|MINGW*)
|
||||||
|
test_all_hls "$(dirname "$(which ghcup)")"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
test_all_hls "$(ghcup whereis bindir)"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
;;
|
;;
|
||||||
ghc)
|
ghc)
|
||||||
ghc --version
|
ghc --version
|
||||||
@@ -41,6 +105,7 @@ case $TOOL in
|
|||||||
[[ $(./main +RTS -s) -eq 2 ]]
|
[[ $(./main +RTS -s) -eq 2 ]]
|
||||||
;;
|
;;
|
||||||
cabal)
|
cabal)
|
||||||
|
ghcup_fun install ghc --set "$(ghcup_fun list -t ghc -r -c available | tail -1 | awk '{ print $2 }')"
|
||||||
cabal --version
|
cabal --version
|
||||||
cabal update
|
cabal update
|
||||||
[[ $(cabal --verbose=0 run --enable-profiling ./main.hs -- +RTS -s) -eq 2 ]]
|
[[ $(cabal --verbose=0 run --enable-profiling ./main.hs -- +RTS -s) -eq 2 ]]
|
||||||
|
|||||||
6
.github/workflows/sigs
vendored
Normal file
6
.github/workflows/sigs
vendored
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
keys=(
|
||||||
|
7D1E8AFD1D4A16D71FADA2F2CCC85C0E40C06A8C # Julian Ospald <maerwald@hasufell.de>
|
||||||
|
FFEB7CE81E16A36B3E2DED6F2DE04D4E97DB64AD # Ben Gamari <ben@well-typed.com>
|
||||||
|
88B57FCF7DB53B4DB3BFA4B1588764FBE22D19C4 # Zubin Duggal <zubin@well-typed.com>
|
||||||
|
EAF2A9A722C0C96F2B431CA511AAD8CEDEE0CAEF # Hécate <hecate@glitchbra.in>
|
||||||
|
)
|
||||||
23
.github/workflows/test-sigs.sh
vendored
Executable file
23
.github/workflows/test-sigs.sh
vendored
Executable file
@@ -0,0 +1,23 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -x
|
||||||
|
set -eo pipefail
|
||||||
|
|
||||||
|
. .github/workflows/common.sh
|
||||||
|
|
||||||
|
get_key() {
|
||||||
|
local key=$1
|
||||||
|
local server=$2
|
||||||
|
gpg --batch --keyserver "${server}" --recv-keys "${key}"
|
||||||
|
echo -e "${key}:6:" | gpg --import-ownertrust
|
||||||
|
}
|
||||||
|
|
||||||
|
# verify signature
|
||||||
|
. .github/workflows/sigs
|
||||||
|
|
||||||
|
for key in "${keys[@]}" ; do
|
||||||
|
get_key "${key}" keys.openpgp.org || get_key "${key}" keyserver.ubuntu.com
|
||||||
|
done
|
||||||
|
unset key
|
||||||
|
gpg --verify "${METADATA_FILE}.sig"
|
||||||
|
|
||||||
18
.github/workflows/test.yaml
vendored
18
.github/workflows/test.yaml
vendored
@@ -11,7 +11,7 @@ jobs:
|
|||||||
name: Test metadata
|
name: Test metadata
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
env:
|
env:
|
||||||
YAML_VER: 0.0.6
|
YAML_VER: 0.0.7
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
ghc:
|
ghc:
|
||||||
@@ -19,7 +19,7 @@ jobs:
|
|||||||
cabal:
|
cabal:
|
||||||
- '3.6.2.0'
|
- '3.6.2.0'
|
||||||
os:
|
os:
|
||||||
- ubuntu-latest
|
- ubuntu-22.04
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
@@ -51,18 +51,30 @@ jobs:
|
|||||||
run: echo "$HOME/.local/bin" >> $GITHUB_PATH
|
run: echo "$HOME/.local/bin" >> $GITHUB_PATH
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
|
- name: install yamllint
|
||||||
|
run: pip install yamllint
|
||||||
|
|
||||||
- name: Update cabal cache
|
- name: Update cabal cache
|
||||||
run: cabal update
|
run: cabal update
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
|
- name: Install some deps
|
||||||
|
run: |
|
||||||
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
|
export TZ=Asia/Singapore
|
||||||
|
sudo apt install -y libarchive-dev
|
||||||
|
shell: bash
|
||||||
|
|
||||||
- name: Install ghcup-gen
|
- name: Install ghcup-gen
|
||||||
run: |
|
run: |
|
||||||
cabal install --installdir="$HOME/.local/bin" --overwrite-policy=always --install-method=copy ghcup-gen
|
cabal install --installdir="$HOME/.local/bin" --overwrite-policy=always --install-method=copy ghcup-gen
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
- name: Check
|
- name: Check yaml
|
||||||
run: |
|
run: |
|
||||||
ghcup-gen -- check -f ghcup-${{ env.YAML_VER }}.yaml
|
ghcup-gen -- check -f ghcup-${{ env.YAML_VER }}.yaml
|
||||||
|
yamllint ghcup-${{ env.YAML_VER }}.yaml
|
||||||
|
python3 -c "import yaml ; stream = open('ghcup-${{ env.YAML_VER }}.yaml', 'r') ; yaml.safe_load(stream)"
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
- name: Check tarballs
|
- name: Check tarballs
|
||||||
|
|||||||
5
.yamllint
Normal file
5
.yamllint
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
extends: default
|
||||||
|
|
||||||
|
rules:
|
||||||
|
line-length: disable
|
||||||
|
indentation: disable
|
||||||
43
README.md
43
README.md
@@ -1,6 +1,26 @@
|
|||||||
# GHCup metadata
|
# GHCup metadata
|
||||||
|
|
||||||
## Adding a new GHC version
|
## For end users
|
||||||
|
|
||||||
|
### Metadata variants (distribution channels)
|
||||||
|
|
||||||
|
* `ghcup-A.B.C.yaml`: this is the main metadata and what ghcup uses by default
|
||||||
|
* `ghcup-vanilla-A.B.C.yaml`: this is similar to `ghcup-A.B.C.yaml`, but only uses upstream bindists (no patches/fixes are applied, no missing platforms added)
|
||||||
|
* `ghcup-prereleases-A.B.C.yaml`: this contains pre-releases of all tools
|
||||||
|
* `ghcup-cross-A.B.C.yaml`: this contains (usually experimental) cross compilers
|
||||||
|
|
||||||
|
### Using the metadata
|
||||||
|
|
||||||
|
If you want access to both pre-releases and cross compilers, run:
|
||||||
|
|
||||||
|
```
|
||||||
|
ghcup config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-prereleases-0.0.7.yaml
|
||||||
|
ghcup config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-cross-0.0.8.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
## For contributors
|
||||||
|
|
||||||
|
### Adding a new GHC version
|
||||||
|
|
||||||
1. open the latest `ghcup-<yaml-ver>.yaml`
|
1. open the latest `ghcup-<yaml-ver>.yaml`
|
||||||
2. find the latest ghc version (in yaml tree e.g. `ghcupDownloads -> GHC -> 8.10.7`)
|
2. find the latest ghc version (in yaml tree e.g. `ghcupDownloads -> GHC -> 8.10.7`)
|
||||||
@@ -11,3 +31,24 @@
|
|||||||
7. run `cabal run ghcup-gen -- check-tarballs -f ghcup-<yaml-ver>.yaml -u 'ghc-8\.10\.8'`
|
7. run `cabal 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`
|
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
|
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
|
||||||
|
|
||||||
|
### During a pull request
|
||||||
|
|
||||||
|
* make sure to always add new versions to both `ghcup-A.B.C.yaml` and `ghcup-vanilla-A.B.C.yaml`
|
||||||
|
* make sure to run the bindist action to check tool installation on all platforms: https://github.com/haskell/ghcup-metadata/actions/workflows/bindists.yaml
|
||||||
|
- this is a manual pipeline
|
||||||
|
- set the appropriate parameters
|
||||||
|
* make sure to sign the yaml files you edited, e.g.: `gpg --detach-sign -u <your-email> ghcup-0.0.7.yaml` or ask a GHCup developer to sign
|
||||||
|
- PGP pubkeys need to be cross-signed by the GHCup team
|
||||||
|
- they need to be added to the CI: https://github.com/haskell/ghcup-metadata/blob/develop/.github/workflows/sigs
|
||||||
|
- and need to be documented on the homepage
|
||||||
|
* https://github.com/haskell/ghcup-hs/blob/master/docs/guide.md#gpg-verification
|
||||||
|
* https://github.com/haskell/ghcup-hs/blob/master/docs/install.md#unix
|
||||||
|
|
||||||
|
### Understanding tags
|
||||||
|
|
||||||
|
Tags are documented [here](https://github.com/haskell/ghcup-hs/blob/master/lib/GHCup/Types.hs). Search for `data Tag`.
|
||||||
|
Some tags are unique. Uniqueness is checked by `cabal run ghcup-gen -- check -f ghcup-<yaml-ver>.yaml`.
|
||||||
|
|
||||||
|
If you want to check prereleases, do: `cabal run ghcup-gen -- check -f ghcup-prereleases-<yaml-ver>.yaml --channel=prerelease`
|
||||||
|
|
||||||
|
|||||||
@@ -2,19 +2,18 @@ packages: ./ghcup-gen/ghcup-gen.cabal
|
|||||||
|
|
||||||
package ghcup
|
package ghcup
|
||||||
tests: False
|
tests: False
|
||||||
flags: -tui +no-exe
|
flags: +tui +no-exe
|
||||||
|
|
||||||
source-repository-package
|
source-repository-package
|
||||||
type: git
|
type: git
|
||||||
location: https://gitlab.haskell.org/haskell/ghcup-hs.git
|
location: https://github.com/haskell/ghcup-hs.git
|
||||||
tag: v0.1.17.8
|
tag: e27fed09f3eb4b0b72ce7825c65f16a4202a2399
|
||||||
|
|
||||||
constraints: http-io-streams -brotli,
|
constraints: http-io-streams -brotli,
|
||||||
any.Cabal ==3.6.2.0,
|
|
||||||
any.aeson >= 2.0.1.0
|
any.aeson >= 2.0.1.0
|
||||||
|
|
||||||
package libarchive
|
package libarchive
|
||||||
flags: -system-libarchive
|
flags: +system-libarchive
|
||||||
|
|
||||||
package aeson-pretty
|
package aeson-pretty
|
||||||
flags: +lib-only
|
flags: +lib-only
|
||||||
@@ -25,5 +24,5 @@ package cabal-plan
|
|||||||
package aeson
|
package aeson
|
||||||
flags: +ordered-keymap
|
flags: +ordered-keymap
|
||||||
|
|
||||||
allow-newer: base, ghc-prim, template-haskell, language-c
|
package streamly
|
||||||
|
flags: +use-unliftio
|
||||||
|
|||||||
@@ -2132,43 +2132,39 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"GHCup": {
|
"GHCup": {
|
||||||
"0.1.17.5": {
|
"0.1.19.0": {
|
||||||
"viTags": [
|
"viTags": [
|
||||||
"Recommended",
|
"Recommended",
|
||||||
"Latest"
|
"Latest"
|
||||||
],
|
],
|
||||||
"viChangeLog": "https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/CHANGELOG.md",
|
"viChangeLog": "https://github.com/haskell/ghcup-hs/blob/master/CHANGELOG.md",
|
||||||
"viSourceDL": null,
|
"viSourceDL": null,
|
||||||
"viArch": {
|
"viArch": {
|
||||||
"A_64": {
|
"A_64": {
|
||||||
"Linux_UnknownLinux": {
|
"Linux_UnknownLinux": {
|
||||||
"unknown_versioning": {
|
"unknown_versioning": {
|
||||||
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-linux-ghcup-0.1.17.5",
|
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-linux-ghcup-0.1.19.0",
|
||||||
"dlSubdir": null,
|
"dlHash": "33ee6a758ee06e3b520be176905e6192e31f5fa2e2acdc525b1bea77ca368a12"
|
||||||
"dlHash": "7541bcf0b402f99d05cd1937f9fef69aec45c3153e42606671825be248484fb5"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"Darwin": {
|
"Darwin": {
|
||||||
"unknown_versioning": {
|
"unknown_versioning": {
|
||||||
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-apple-darwin-ghcup-0.1.17.5",
|
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-apple-darwin-ghcup-0.1.19.0",
|
||||||
"dlSubdir": null,
|
"dlHash": "416de8509092fd95f97ee19a5f3def91fbd6e6fa4fa630a5c5e7226f49a83af7"
|
||||||
"dlHash": "8b5159775de08a5f268f4be217fbb6f427ff8d8977197af209211b81ca0fe27f"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"FreeBSD": {
|
"FreeBSD": {
|
||||||
"unknown_versioning": {
|
"unknown_versioning": {
|
||||||
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-freebsd12-ghcup-0.1.17.5",
|
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-portbld-freebsd-ghcup-0.1.19.0",
|
||||||
"dlSubdir": null,
|
"dlHash": "dadf49f8ac045946ccea7369d0c80cf3a5221b2282d8f9943cc3dc86e8516a62"
|
||||||
"dlHash": "babb7366abb17bcb5d4fc1500039040f1b957073d618db3f1473b0bae6abc6bb"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"A_32": {
|
"A_32": {
|
||||||
"Linux_UnknownLinux": {
|
"Linux_UnknownLinux": {
|
||||||
"unknown_versioning": {
|
"unknown_versioning": {
|
||||||
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.17.5/i386-linux-ghcup-0.1.17.5",
|
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.19.0/i386-linux-ghcup-0.1.19.0",
|
||||||
"dlSubdir": null,
|
"dlHash": "0308ebed4431241ef2886a9d374feb20a795d97ef3a24dd38b6bc7dd69e81e53"
|
||||||
"dlHash": "5a2b1d2ceb32857866689ee1a1e29c5747333882a4e952d80eccf49482d3daab"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
@@ -2674,51 +2674,51 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"GHCup": {
|
"GHCup": {
|
||||||
"0.1.16.2": {
|
"0.1.19.0": {
|
||||||
"viTags": [
|
"viTags": [
|
||||||
"Recommended",
|
"Recommended",
|
||||||
"Latest"
|
"Latest"
|
||||||
],
|
],
|
||||||
"viChangeLog": "https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/CHANGELOG.md",
|
"viChangeLog": "https://github.com/haskell/ghcup-hs/blob/master/CHANGELOG.md",
|
||||||
"viSourceDL": null,
|
"viSourceDL": null,
|
||||||
"viArch": {
|
"viArch": {
|
||||||
"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.19.0/x86_64-linux-ghcup-0.1.19.0",
|
||||||
"dlHash": "d5e43b95ce1d42263376e414f7eb7c5dd440271c7c6cd9bad446fdeff3823893"
|
"dlHash": "33ee6a758ee06e3b520be176905e6192e31f5fa2e2acdc525b1bea77ca368a12"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"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.19.0/x86_64-apple-darwin-ghcup-0.1.19.0",
|
||||||
"dlHash": "a334620ccce7705211b2142882dde544003e6030af4b91a44c890542a90f879f"
|
"dlHash": "416de8509092fd95f97ee19a5f3def91fbd6e6fa4fa630a5c5e7226f49a83af7"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"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.19.0/x86_64-portbld-freebsd-ghcup-0.1.19.0",
|
||||||
"dlHash": "92359592a5694375e53b22628920086bf4bbf0faff5be018a0ed3e745a6426a9"
|
"dlHash": "dadf49f8ac045946ccea7369d0c80cf3a5221b2282d8f9943cc3dc86e8516a62"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"Linux_Alpine": {
|
"Linux_Alpine": {
|
||||||
"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.19.0/x86_64-linux-ghcup-0.1.19.0",
|
||||||
"dlHash": "d5e43b95ce1d42263376e414f7eb7c5dd440271c7c6cd9bad446fdeff3823893"
|
"dlHash": "33ee6a758ee06e3b520be176905e6192e31f5fa2e2acdc525b1bea77ca368a12"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"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.19.0/i386-linux-ghcup-0.1.19.0",
|
||||||
"dlHash": "01968ca6decac7b6e8ba6e2c817870d3fa47289a6507e0c1ab563f7b6eec0e38"
|
"dlHash": "0308ebed4431241ef2886a9d374feb20a795d97ef3a24dd38b6bc7dd69e81e53"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"Linux_Alpine": {
|
"Linux_Alpine": {
|
||||||
"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.19.0/i386-linux-ghcup-0.1.19.0",
|
||||||
"dlHash": "01968ca6decac7b6e8ba6e2c817870d3fa47289a6507e0c1ab563f7b6eec0e38"
|
"dlHash": "0308ebed4431241ef2886a9d374feb20a795d97ef3a24dd38b6bc7dd69e81e53"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
@@ -1384,32 +1384,32 @@ 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.17.5:
|
0.1.19.0:
|
||||||
viTags:
|
viTags:
|
||||||
- Recommended
|
- Recommended
|
||||||
- Latest
|
- Latest
|
||||||
viChangeLog: https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/CHANGELOG.md
|
viChangeLog: https://github.com/haskell/ghcup-hs/blob/master/CHANGELOG.md
|
||||||
viSourceDL:
|
viSourceDL:
|
||||||
viArch:
|
viArch:
|
||||||
A_64:
|
A_64:
|
||||||
Linux_UnknownLinux:
|
Linux_UnknownLinux:
|
||||||
unknown_versioning: &ghcup-64
|
unknown_versioning: &ghcup-64
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-linux-ghcup-0.1.17.5
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-linux-ghcup-0.1.19.0
|
||||||
dlHash: 7541bcf0b402f99d05cd1937f9fef69aec45c3153e42606671825be248484fb5
|
dlHash: 33ee6a758ee06e3b520be176905e6192e31f5fa2e2acdc525b1bea77ca368a12
|
||||||
Darwin:
|
Darwin:
|
||||||
unknown_versioning:
|
unknown_versioning:
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-apple-darwin-ghcup-0.1.17.5
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-apple-darwin-ghcup-0.1.19.0
|
||||||
dlHash: 8b5159775de08a5f268f4be217fbb6f427ff8d8977197af209211b81ca0fe27f
|
dlHash: 416de8509092fd95f97ee19a5f3def91fbd6e6fa4fa630a5c5e7226f49a83af7
|
||||||
FreeBSD:
|
FreeBSD:
|
||||||
unknown_versioning:
|
unknown_versioning:
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-freebsd12-ghcup-0.1.17.5
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-portbld-freebsd-ghcup-0.1.19.0
|
||||||
dlHash: babb7366abb17bcb5d4fc1500039040f1b957073d618db3f1473b0bae6abc6bb
|
dlHash: dadf49f8ac045946ccea7369d0c80cf3a5221b2282d8f9943cc3dc86e8516a62
|
||||||
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.17.5/i386-linux-ghcup-0.1.17.5
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/i386-linux-ghcup-0.1.19.0
|
||||||
dlHash: 5a2b1d2ceb32857866689ee1a1e29c5747333882a4e952d80eccf49482d3daab
|
dlHash: 0308ebed4431241ef2886a9d374feb20a795d97ef3a24dd38b6bc7dd69e81e53
|
||||||
Linux_Alpine:
|
Linux_Alpine:
|
||||||
unknown_versioning: *ghcup-32
|
unknown_versioning: *ghcup-32
|
||||||
|
|||||||
Binary file not shown.
@@ -1451,33 +1451,33 @@ 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.17.5:
|
0.1.19.0:
|
||||||
viTags:
|
viTags:
|
||||||
- Recommended
|
- Recommended
|
||||||
- Latest
|
- Latest
|
||||||
viChangeLog: https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/CHANGELOG.md
|
viChangeLog: https://github.com/haskell/ghcup-hs/blob/master/CHANGELOG.md
|
||||||
viSourceDL:
|
viSourceDL:
|
||||||
viArch:
|
viArch:
|
||||||
A_64:
|
A_64:
|
||||||
Linux_UnknownLinux:
|
Linux_UnknownLinux:
|
||||||
unknown_versioning: &ghcup-64
|
unknown_versioning: &ghcup-64
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-linux-ghcup-0.1.17.5
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-linux-ghcup-0.1.19.0
|
||||||
dlHash: 7541bcf0b402f99d05cd1937f9fef69aec45c3153e42606671825be248484fb5
|
dlHash: 33ee6a758ee06e3b520be176905e6192e31f5fa2e2acdc525b1bea77ca368a12
|
||||||
Darwin:
|
Darwin:
|
||||||
unknown_versioning:
|
unknown_versioning:
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-apple-darwin-ghcup-0.1.17.5
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-apple-darwin-ghcup-0.1.19.0
|
||||||
dlHash: 8b5159775de08a5f268f4be217fbb6f427ff8d8977197af209211b81ca0fe27f
|
dlHash: 416de8509092fd95f97ee19a5f3def91fbd6e6fa4fa630a5c5e7226f49a83af7
|
||||||
FreeBSD:
|
FreeBSD:
|
||||||
unknown_versioning:
|
unknown_versioning:
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-freebsd12-ghcup-0.1.17.5
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-portbld-freebsd-ghcup-0.1.19.0
|
||||||
dlHash: babb7366abb17bcb5d4fc1500039040f1b957073d618db3f1473b0bae6abc6bb
|
dlHash: dadf49f8ac045946ccea7369d0c80cf3a5221b2282d8f9943cc3dc86e8516a62
|
||||||
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.17.5/i386-linux-ghcup-0.1.17.5
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/i386-linux-ghcup-0.1.19.0
|
||||||
dlHash: 5a2b1d2ceb32857866689ee1a1e29c5747333882a4e952d80eccf49482d3daab
|
dlHash: 0308ebed4431241ef2886a9d374feb20a795d97ef3a24dd38b6bc7dd69e81e53
|
||||||
Linux_Alpine:
|
Linux_Alpine:
|
||||||
unknown_versioning: *ghcup-32
|
unknown_versioning: *ghcup-32
|
||||||
HLS:
|
HLS:
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -1868,49 +1868,49 @@ 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.17.7:
|
0.1.19.0:
|
||||||
viTags:
|
viTags:
|
||||||
- Recommended
|
- Recommended
|
||||||
- Latest
|
- Latest
|
||||||
viChangeLog: https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/CHANGELOG.md
|
viChangeLog: https://github.com/haskell/ghcup-hs/blob/master/CHANGELOG.md
|
||||||
viSourceDL:
|
viSourceDL:
|
||||||
viArch:
|
viArch:
|
||||||
A_64:
|
A_64:
|
||||||
Linux_UnknownLinux:
|
Linux_UnknownLinux:
|
||||||
unknown_versioning: &ghcup-64
|
unknown_versioning: &ghcup-64
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.7/x86_64-linux-ghcup-0.1.17.7
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-linux-ghcup-0.1.19.0
|
||||||
dlHash: e16eaf59dab84be7aa6415b53a3497f211d05163a50584dc854569b2ef8a7a3a
|
dlHash: 33ee6a758ee06e3b520be176905e6192e31f5fa2e2acdc525b1bea77ca368a12
|
||||||
Darwin:
|
Darwin:
|
||||||
unknown_versioning:
|
unknown_versioning:
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.7/x86_64-apple-darwin-ghcup-0.1.17.7
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-apple-darwin-ghcup-0.1.19.0
|
||||||
dlHash: 9702f30c9374a122d79f7ef11170b34deb248a0f3cd92d671c0aab747be4add7
|
dlHash: 416de8509092fd95f97ee19a5f3def91fbd6e6fa4fa630a5c5e7226f49a83af7
|
||||||
FreeBSD:
|
FreeBSD:
|
||||||
unknown_versioning:
|
unknown_versioning:
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.7/x86_64-freebsd12-ghcup-0.1.17.7
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-portbld-freebsd-ghcup-0.1.19.0
|
||||||
dlHash: d3d0644dc5d9b51ed1c345fc006e936e9284b3181e5a9cccf4cf70a7184398fe
|
dlHash: dadf49f8ac045946ccea7369d0c80cf3a5221b2282d8f9943cc3dc86e8516a62
|
||||||
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.17.7/i386-linux-ghcup-0.1.17.7
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/i386-linux-ghcup-0.1.19.0
|
||||||
dlHash: 209f61872a5b401e85e4d542dd8d0c96437c1f1ad94b4fa5a28856f34ab0cab8
|
dlHash: 0308ebed4431241ef2886a9d374feb20a795d97ef3a24dd38b6bc7dd69e81e53
|
||||||
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.17.7/aarch64-linux-ghcup-0.1.17.7
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/aarch64-linux-ghcup-0.1.19.0
|
||||||
dlHash: 392dc46ef3f98733b154188982866859d174a750e32c5b742e6a1cf60159954e
|
dlHash: a546dcd23a7e56f31bc4d6afad0276f88d3f0b850a3d3c36369721797dc3c3d5
|
||||||
Darwin:
|
Darwin:
|
||||||
unknown_versioning:
|
unknown_versioning:
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.7/aarch64-apple-darwin-ghcup-0.1.17.7
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/aarch64-apple-darwin-ghcup-0.1.19.0
|
||||||
dlHash: 102d808b31248f86cbf569162ba1b7955e6747a684b2b4200b0958d6e4c54267
|
dlHash: 69bd8e37cd07606d928dca9215c066564a264e0def3c81171b76d5747dc6507c
|
||||||
A_ARM:
|
A_ARM:
|
||||||
Linux_UnknownLinux:
|
Linux_UnknownLinux:
|
||||||
unknown_versioning:
|
unknown_versioning:
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.7/armv7-linux-ghcup-0.1.17.7
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/armv7-linux-ghcup-0.1.19.0
|
||||||
dlHash: 8438e22241fab4bfde94066a34600ab003db2f4ecadfd54bfad4ae990e6549a1
|
dlHash: 58a170c1fb0b4e701ebb40f90a23f6ababe9e61291726aad82e18d4649aed908
|
||||||
HLS:
|
HLS:
|
||||||
1.1.0:
|
1.1.0:
|
||||||
viTags:
|
viTags:
|
||||||
|
|||||||
Binary file not shown.
@@ -2025,53 +2025,53 @@ 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.18.0:
|
0.1.19.0:
|
||||||
viTags:
|
viTags:
|
||||||
- Recommended
|
- Recommended
|
||||||
- Latest
|
- Latest
|
||||||
viChangeLog: https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/CHANGELOG.md
|
viChangeLog: https://github.com/haskell/ghcup-hs/blob/master/CHANGELOG.md
|
||||||
viSourceDL:
|
viSourceDL:
|
||||||
viArch:
|
viArch:
|
||||||
A_64:
|
A_64:
|
||||||
Linux_UnknownLinux:
|
Linux_UnknownLinux:
|
||||||
unknown_versioning: &ghcup-64
|
unknown_versioning: &ghcup-64
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/x86_64-linux-ghcup-0.1.18.0
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-linux-ghcup-0.1.19.0
|
||||||
dlHash: 94559eb7c4569919446af1597d07675e803c20b150323edb7f9d8601c8bbda50
|
dlHash: 33ee6a758ee06e3b520be176905e6192e31f5fa2e2acdc525b1bea77ca368a12
|
||||||
Darwin:
|
Darwin:
|
||||||
unknown_versioning:
|
unknown_versioning:
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/x86_64-apple-darwin-ghcup-0.1.18.0
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-apple-darwin-ghcup-0.1.19.0
|
||||||
dlHash: b34ed98bc0cc6d2169974f8d03173f93c3e3f60607013f1af42c9882c1a0d6f0
|
dlHash: 416de8509092fd95f97ee19a5f3def91fbd6e6fa4fa630a5c5e7226f49a83af7
|
||||||
FreeBSD:
|
FreeBSD:
|
||||||
unknown_versioning:
|
unknown_versioning:
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/x86_64-freebsd12-ghcup-0.1.18.0
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-portbld-freebsd-ghcup-0.1.19.0
|
||||||
dlHash: cc8378a53f3028331dc853acfb253e2258d720b0e18b618b294ed67182a7fa03
|
dlHash: dadf49f8ac045946ccea7369d0c80cf3a5221b2282d8f9943cc3dc86e8516a62
|
||||||
Windows:
|
Windows:
|
||||||
unknown_versioning:
|
unknown_versioning:
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/x86_64-mingw64-ghcup-0.1.18.0.exe
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-mingw64-ghcup-0.1.19.0.exe
|
||||||
dlHash: e2166a50437c677dfab3362749f676f92ff786aae1bfd7a2d289efa3544ee654
|
dlHash: c4e4a764b0844e351eb6939ff236452f33c34808aaca69f973ea82e18d3aa1ac
|
||||||
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.18.0/i386-linux-ghcup-0.1.18.0
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/i386-linux-ghcup-0.1.19.0
|
||||||
dlHash: 222914720135261dcc644155bc8a5b15d1d4966c769d50686fe4f41547208759
|
dlHash: 0308ebed4431241ef2886a9d374feb20a795d97ef3a24dd38b6bc7dd69e81e53
|
||||||
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.18.0/aarch64-linux-ghcup-0.1.18.0
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/aarch64-linux-ghcup-0.1.19.0
|
||||||
dlHash: 3e3ee4aa06e426373fb7e29f1770987ca1621e414925f261f325f9acb77e0bcb
|
dlHash: a546dcd23a7e56f31bc4d6afad0276f88d3f0b850a3d3c36369721797dc3c3d5
|
||||||
Darwin:
|
Darwin:
|
||||||
unknown_versioning:
|
unknown_versioning:
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/aarch64-apple-darwin-ghcup-0.1.18.0
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/aarch64-apple-darwin-ghcup-0.1.19.0
|
||||||
dlHash: 2d3aa19d6f012c1a4ebc5907a05b06cf0d43a1499107020f59847ea2638c8649
|
dlHash: 69bd8e37cd07606d928dca9215c066564a264e0def3c81171b76d5747dc6507c
|
||||||
A_ARM:
|
A_ARM:
|
||||||
Linux_UnknownLinux:
|
Linux_UnknownLinux:
|
||||||
unknown_versioning:
|
unknown_versioning:
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/armv7-linux-ghcup-0.1.18.0
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/armv7-linux-ghcup-0.1.19.0
|
||||||
dlHash: 2e94920c772bc24c9fe41004dedf46840f5f036d28d3ed183679d3f34d2c50e0
|
dlHash: 58a170c1fb0b4e701ebb40f90a23f6ababe9e61291726aad82e18d4649aed908
|
||||||
HLS:
|
HLS:
|
||||||
1.1.0:
|
1.1.0:
|
||||||
viTags: []
|
viTags: []
|
||||||
|
|||||||
Binary file not shown.
@@ -2569,56 +2569,53 @@ ghcupDownloads:
|
|||||||
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/3.6.2.0/cabal-install-3.6.2.0-armv7-linux-deb10.tar.xz
|
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/3.6.2.0/cabal-install-3.6.2.0-armv7-linux-deb10.tar.xz
|
||||||
dlHash: 694ba7c14f8d720c6e790ab0488dbff2d8a07d9c6de97b4deeba31088f825bc2
|
dlHash: 694ba7c14f8d720c6e790ab0488dbff2d8a07d9c6de97b4deeba31088f825bc2
|
||||||
GHCup:
|
GHCup:
|
||||||
0.1.18.0:
|
0.1.19.0:
|
||||||
viTags:
|
viTags:
|
||||||
- Recommended
|
- Recommended
|
||||||
- Latest
|
- Latest
|
||||||
viChangeLog: https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/CHANGELOG.md
|
viChangeLog: https://github.com/haskell/ghcup-hs/blob/master/CHANGELOG.md
|
||||||
viSourceDL:
|
viSourceDL:
|
||||||
viArch:
|
viArch:
|
||||||
A_64:
|
A_64:
|
||||||
Linux_UnknownLinux:
|
Linux_UnknownLinux:
|
||||||
unknown_versioning: &ghcup-64
|
unknown_versioning: &ghcup-64
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/x86_64-linux-ghcup-0.1.18.0
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-linux-ghcup-0.1.19.0
|
||||||
dlHash: 94559eb7c4569919446af1597d07675e803c20b150323edb7f9d8601c8bbda50
|
dlHash: 33ee6a758ee06e3b520be176905e6192e31f5fa2e2acdc525b1bea77ca368a12
|
||||||
Darwin:
|
Darwin:
|
||||||
unknown_versioning:
|
unknown_versioning:
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/x86_64-apple-darwin-ghcup-0.1.18.0
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-apple-darwin-ghcup-0.1.19.0
|
||||||
dlHash: b34ed98bc0cc6d2169974f8d03173f93c3e3f60607013f1af42c9882c1a0d6f0
|
dlHash: 416de8509092fd95f97ee19a5f3def91fbd6e6fa4fa630a5c5e7226f49a83af7
|
||||||
FreeBSD:
|
FreeBSD:
|
||||||
'( >= 12 && < 13 )':
|
unknown_versioning:
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/x86_64-freebsd12-ghcup-0.1.18.0
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-portbld-freebsd-ghcup-0.1.19.0
|
||||||
dlHash: cc8378a53f3028331dc853acfb253e2258d720b0e18b618b294ed67182a7fa03
|
dlHash: dadf49f8ac045946ccea7369d0c80cf3a5221b2282d8f9943cc3dc86e8516a62
|
||||||
'( >= 13 )':
|
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/x86_64-freebsd13-ghcup-0.1.18.0
|
|
||||||
dlHash: cc8378a53f3028331dc853acfb253e2258d720b0e18b618b294ed67182a7fa03
|
|
||||||
Windows:
|
Windows:
|
||||||
unknown_versioning:
|
unknown_versioning:
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/x86_64-mingw64-ghcup-0.1.18.0.exe
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-mingw64-ghcup-0.1.19.0.exe
|
||||||
dlHash: e2166a50437c677dfab3362749f676f92ff786aae1bfd7a2d289efa3544ee654
|
dlHash: c4e4a764b0844e351eb6939ff236452f33c34808aaca69f973ea82e18d3aa1ac
|
||||||
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.18.0/i386-linux-ghcup-0.1.18.0
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/i386-linux-ghcup-0.1.19.0
|
||||||
dlHash: 222914720135261dcc644155bc8a5b15d1d4966c769d50686fe4f41547208759
|
dlHash: 0308ebed4431241ef2886a9d374feb20a795d97ef3a24dd38b6bc7dd69e81e53
|
||||||
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.18.0/aarch64-linux-ghcup-0.1.18.0
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/aarch64-linux-ghcup-0.1.19.0
|
||||||
dlHash: 3e3ee4aa06e426373fb7e29f1770987ca1621e414925f261f325f9acb77e0bcb
|
dlHash: a546dcd23a7e56f31bc4d6afad0276f88d3f0b850a3d3c36369721797dc3c3d5
|
||||||
Darwin:
|
Darwin:
|
||||||
unknown_versioning:
|
unknown_versioning:
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/aarch64-apple-darwin-ghcup-0.1.18.0
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/aarch64-apple-darwin-ghcup-0.1.19.0
|
||||||
dlHash: 2d3aa19d6f012c1a4ebc5907a05b06cf0d43a1499107020f59847ea2638c8649
|
dlHash: 69bd8e37cd07606d928dca9215c066564a264e0def3c81171b76d5747dc6507c
|
||||||
A_ARM:
|
A_ARM:
|
||||||
Linux_UnknownLinux:
|
Linux_UnknownLinux:
|
||||||
unknown_versioning:
|
unknown_versioning:
|
||||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/armv7-linux-ghcup-0.1.18.0
|
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/armv7-linux-ghcup-0.1.19.0
|
||||||
dlHash: 2e94920c772bc24c9fe41004dedf46840f5f036d28d3ed183679d3f34d2c50e0
|
dlHash: 58a170c1fb0b4e701ebb40f90a23f6ababe9e61291726aad82e18d4649aed908
|
||||||
HLS:
|
HLS:
|
||||||
1.1.0:
|
1.1.0:
|
||||||
viTags:
|
viTags:
|
||||||
|
|||||||
Binary file not shown.
2112
ghcup-0.0.7.yaml
2112
ghcup-0.0.7.yaml
File diff suppressed because it is too large
Load Diff
Binary file not shown.
42
ghcup-cross-0.0.8.yaml
Normal file
42
ghcup-cross-0.0.8.yaml
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
---
|
||||||
|
globalTools:
|
||||||
|
ShimGen:
|
||||||
|
dlUri: https://downloads.haskell.org/~ghcup/shimgen/shim-2.exe
|
||||||
|
dlHash: 7c55e201f71860c5babea886007c8fa44b861abf50d1c07e5677eb0bda387a70
|
||||||
|
toolRequirements: {}
|
||||||
|
ghcupDownloads:
|
||||||
|
GHC:
|
||||||
|
javascript-unknown-ghcjs-9.6.2:
|
||||||
|
viTags:
|
||||||
|
- base-4.18.0.0
|
||||||
|
viArch:
|
||||||
|
A_64:
|
||||||
|
Linux_UnknownLinux:
|
||||||
|
unknown_versioning:
|
||||||
|
dlHash: 4e12b602869206830eef1aa6a17a5a00fa887d6c98c3a552269c418ee7f736f8
|
||||||
|
dlSubdir: ghc-9.6.2-javascript-unknown-ghcjs
|
||||||
|
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/ghc/javascript-unknown-ghcjs-9.6.2/ghc-javascript-unknown-ghcjs-9.6.2-x86_64-linux-unknown.tar.xz
|
||||||
|
Darwin:
|
||||||
|
unknown_versioning:
|
||||||
|
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/ghc/javascript-unknown-ghcjs-9.6.2/ghc-javascript-unknown-ghcjs-9.6.2-x86_64-apple-darwin.tar.xz
|
||||||
|
dlHash: dddb0ee68857a79e67a52c4ab9b7230023a8684a5e826e9afbb9c5820abf47e1
|
||||||
|
dlSubdir: ghc-9.6.2-javascript-unknown-ghcjs
|
||||||
|
A_ARM64:
|
||||||
|
Darwin:
|
||||||
|
unknown_versioning:
|
||||||
|
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/ghc/javascript-unknown-ghcjs-9.6.2/ghc-javascript-unknown-ghcjs-9.6.2-aarch64-apple-darwin.tar.xz
|
||||||
|
dlHash: 0d65bb3940a820d95b4b33ea0cd61bf39670d48c4d8f747153ded01a7ef34821
|
||||||
|
dlSubdir: ghc-9.6.2-javascript-unknown-ghcjs
|
||||||
|
wasm32-wasi-9.6.2.20230523:
|
||||||
|
viTags:
|
||||||
|
- base-4.18.0.0
|
||||||
|
viArch:
|
||||||
|
A_64:
|
||||||
|
Linux_UnknownLinux:
|
||||||
|
unknown_versioning: &ghc-wasm32-wasi-64-static
|
||||||
|
dlHash: 85433ce296f2f95a5c60f78060cb4a3a8bf8b56bf83ddd75f1b23cb2e2378888
|
||||||
|
dlSubdir: ghc-9.6.2.20230523-wasm32-wasi
|
||||||
|
dlUri: https://gitlab.haskell.org/api/v4/projects/3223/jobs/1530829/artifacts/ghc-x86_64-linux-alpine3_12-cross_wasm32-wasi-release%2Bfully_static.tar.xz
|
||||||
|
dlOutput: ghc-9.6.2.20230523-x86_64-linux-alpine3_12-cross_wasm32-wasi-release+fully_static.tar.xz
|
||||||
|
Linux_Alpine:
|
||||||
|
unknown_versioning: *ghc-wasm32-wasi-64-static
|
||||||
BIN
ghcup-cross-0.0.8.yaml.sig
Normal file
BIN
ghcup-cross-0.0.8.yaml.sig
Normal file
Binary file not shown.
@@ -6,6 +6,7 @@
|
|||||||
{-# LANGUAGE TypeApplications #-}
|
{-# LANGUAGE TypeApplications #-}
|
||||||
{-# LANGUAGE ViewPatterns #-}
|
{-# LANGUAGE ViewPatterns #-}
|
||||||
{-# LANGUAGE OverloadedStrings #-}
|
{-# LANGUAGE OverloadedStrings #-}
|
||||||
|
{-# LANGUAGE LambdaCase #-}
|
||||||
|
|
||||||
module Generate where
|
module Generate where
|
||||||
|
|
||||||
@@ -40,7 +41,7 @@ import System.Exit
|
|||||||
import System.FilePath
|
import System.FilePath
|
||||||
import System.IO
|
import System.IO
|
||||||
import Text.Regex.Posix
|
import Text.Regex.Posix
|
||||||
import GHCup.Utils.String.QQ
|
import GHCup.Prelude.String.QQ
|
||||||
|
|
||||||
import qualified Data.ByteString.Lazy as BSL
|
import qualified Data.ByteString.Lazy as BSL
|
||||||
import qualified Data.Map.Strict as M
|
import qualified Data.Map.Strict as M
|
||||||
@@ -48,6 +49,12 @@ import qualified Data.Text as T
|
|||||||
import qualified Data.Yaml.Pretty as YAML
|
import qualified Data.Yaml.Pretty as YAML
|
||||||
import qualified Text.Megaparsec as MP
|
import qualified Text.Megaparsec as MP
|
||||||
|
|
||||||
|
import Data.Bifoldable (bifoldMap)
|
||||||
|
import Data.Foldable (traverse_)
|
||||||
|
import Data.Text (Text)
|
||||||
|
|
||||||
|
import Text.PrettyPrint.HughesPJClass (pPrint)
|
||||||
|
|
||||||
data Format = FormatJSON
|
data Format = FormatJSON
|
||||||
| FormatYAML
|
| FormatYAML
|
||||||
|
|
||||||
@@ -84,6 +91,7 @@ generateHLSGhc format output = do
|
|||||||
, DownloadFailed
|
, DownloadFailed
|
||||||
, UnknownArchive
|
, UnknownArchive
|
||||||
, ArchiveResult
|
, ArchiveResult
|
||||||
|
, ContentLengthError
|
||||||
] $ do
|
] $ do
|
||||||
fp <- liftE $ downloadCached dli Nothing
|
fp <- liftE $ downloadCached dli Nothing
|
||||||
let subd = _dlSubdir dli
|
let subd = _dlSubdir dli
|
||||||
@@ -156,7 +164,7 @@ generateTable output = do
|
|||||||
liftIO $ hPutStrLn handle $ "<table>"
|
liftIO $ hPutStrLn handle $ "<table>"
|
||||||
liftIO $ hPutStrLn handle $ "<thead><tr><th>" <> show tool <> " Version</th><th>Tags</th></tr></thead>"
|
liftIO $ hPutStrLn handle $ "<thead><tr><th>" <> show tool <> " Version</th><th>Tags</th></tr></thead>"
|
||||||
liftIO $ hPutStrLn handle $ "<tbody>"
|
liftIO $ hPutStrLn handle $ "<tbody>"
|
||||||
vers <- reverse <$> listVersions (Just tool) Nothing
|
vers <- reverse <$> listVersions (Just tool) [] False False (Nothing, Nothing)
|
||||||
forM_ (filter (\ListResult{..} -> not lStray) vers) $ \ListResult{..} -> do
|
forM_ (filter (\ListResult{..} -> not lStray) vers) $ \ListResult{..} -> do
|
||||||
liftIO $ hPutStrLn handle $
|
liftIO $ hPutStrLn handle $
|
||||||
"<tr><td>"
|
"<tr><td>"
|
||||||
@@ -227,3 +235,53 @@ generateSystemInfo output = do
|
|||||||
prettyPlat (Linux UnknownLinux) = "Linux (generic)"
|
prettyPlat (Linux UnknownLinux) = "Linux (generic)"
|
||||||
prettyPlat p = show p
|
prettyPlat p = show p
|
||||||
|
|
||||||
|
|
||||||
|
generateSystemInfoWithDistroVersion :: ( 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
|
||||||
|
generateSystemInfoWithDistroVersion output = do
|
||||||
|
handle <- case output of
|
||||||
|
StdOut -> pure stdout
|
||||||
|
FileOutput fp -> liftIO $ openFile fp WriteMode
|
||||||
|
|
||||||
|
GHCupInfo { _toolRequirements = tr } <- getGHCupInfo
|
||||||
|
let ghcInfo = M.lookup Nothing <$> M.lookup GHC tr
|
||||||
|
liftIO $ traverse_ (\(key, value) -> do
|
||||||
|
liftIO $ hPutStrLn handle $ "### " <> prettyPlat key <> "\n"
|
||||||
|
liftIO $ hPutStrLn handle $ T.unpack $ versionsAndRequirements value <> T.pack "\n")
|
||||||
|
$ M.toList $ fromJust (fromJust ghcInfo)
|
||||||
|
pure ExitSuccess
|
||||||
|
|
||||||
|
where
|
||||||
|
pretty' Requirements {..} =
|
||||||
|
let d = if not . null $ _distroPKGs
|
||||||
|
then "The following distro packages are required: " <> "`" <> T.intercalate " " _distroPKGs <> "`" <> "\n"
|
||||||
|
else ""
|
||||||
|
n = if not . T.null $ _notes then _notes else ""
|
||||||
|
in if | T.null d -> n
|
||||||
|
| T.null n -> d
|
||||||
|
| otherwise -> d <> "\n" <> n
|
||||||
|
|
||||||
|
versionsAndRequirements :: PlatformReqVersionSpec -> Text
|
||||||
|
versionsAndRequirements =
|
||||||
|
bifoldMap
|
||||||
|
( \case
|
||||||
|
Nothing -> T.pack $ "#### Generic" <> "\n"
|
||||||
|
Just verz -> T.pack "#### Version " <> T.pack (show $ pPrint verz) <> "\n"
|
||||||
|
)
|
||||||
|
pretty'
|
||||||
|
|
||||||
|
prettyPlat (Linux UnknownLinux) = "Linux (generic)"
|
||||||
|
prettyPlat p = show p
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import GHCup.Types
|
|||||||
import GHCup.Errors
|
import GHCup.Errors
|
||||||
import GHCup.Platform
|
import GHCup.Platform
|
||||||
import GHCup.Utils.Dirs
|
import GHCup.Utils.Dirs
|
||||||
import GHCup.Utils.Logger
|
import GHCup.Prelude.Logger
|
||||||
import GHCup.Types.JSON ( )
|
import GHCup.Types.JSON ( )
|
||||||
|
|
||||||
import Control.Exception ( displayException )
|
import Control.Exception ( displayException )
|
||||||
@@ -105,11 +105,30 @@ inputP :: Parser Input
|
|||||||
inputP = fileInput <|> stdInput
|
inputP = fileInput <|> stdInput
|
||||||
|
|
||||||
data ValidateYAMLOpts = ValidateYAMLOpts
|
data ValidateYAMLOpts = ValidateYAMLOpts
|
||||||
{ vInput :: Maybe Input
|
{ vChannel :: DistributionChannel
|
||||||
|
, vInput :: Maybe Input
|
||||||
}
|
}
|
||||||
|
|
||||||
validateYAMLOpts :: Parser ValidateYAMLOpts
|
validateYAMLOpts :: Parser ValidateYAMLOpts
|
||||||
validateYAMLOpts = ValidateYAMLOpts <$> optional inputP
|
validateYAMLOpts = ValidateYAMLOpts <$> channelParser <*> optional inputP
|
||||||
|
|
||||||
|
channelParser :: Parser DistributionChannel
|
||||||
|
channelParser =
|
||||||
|
option
|
||||||
|
(eitherReader chanP)
|
||||||
|
(long "channel" <> metavar "CHANNEL" <> help
|
||||||
|
"Signal which distribution channel the YAML denotes: (main | prerelease | nightly). Main is defaul."
|
||||||
|
<> value MainChan
|
||||||
|
)
|
||||||
|
where
|
||||||
|
chanP :: String -> Either String DistributionChannel
|
||||||
|
chanP s' | t == T.pack "main" = Right MainChan
|
||||||
|
| t == T.pack "prerelease" = Right PrereleaseChan
|
||||||
|
| t == T.pack "prereleases" = Right PrereleaseChan
|
||||||
|
| t == T.pack "nightly" = Right NightlyChan
|
||||||
|
| t == T.pack "nightlies" = Right NightlyChan
|
||||||
|
| otherwise = Left ("Unknown channel value: " <> s')
|
||||||
|
where t = T.toLower (T.pack s')
|
||||||
|
|
||||||
tarballFilterP :: Parser TarballFilter
|
tarballFilterP :: Parser TarballFilter
|
||||||
tarballFilterP = option readm $
|
tarballFilterP = option readm $
|
||||||
@@ -177,7 +196,7 @@ main = do
|
|||||||
, fancyColors = not no_color
|
, fancyColors = not no_color
|
||||||
}
|
}
|
||||||
dirs <- liftIO getAllDirs
|
dirs <- liftIO getAllDirs
|
||||||
let leanAppstate = LeanAppState (Settings True 0 False Never Curl True GHCupURL False GPGNone True) dirs defaultKeyBindings loggerConfig
|
let leanAppstate = LeanAppState (Settings True 0 Lax False Never Curl True GHCupURL False GPGNone True Nothing (DM mempty)) dirs defaultKeyBindings loggerConfig
|
||||||
|
|
||||||
pfreq <- (
|
pfreq <- (
|
||||||
flip runReaderT leanAppstate . runE @'[NoCompatiblePlatform, NoCompatibleArch, DistroNotFound] $ platformRequest
|
flip runReaderT leanAppstate . runE @'[NoCompatiblePlatform, NoCompatibleArch, DistroNotFound] $ platformRequest
|
||||||
@@ -187,7 +206,7 @@ main = do
|
|||||||
flip runReaderT leanAppstate $ logError $ T.pack $ prettyShow e
|
flip runReaderT leanAppstate $ logError $ T.pack $ prettyShow e
|
||||||
liftIO $ exitWith (ExitFailure 2)
|
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 appstate = AppState (Settings True 0 Lax False Never Curl True GHCupURL False GPGNone True Nothing (DM mempty)) dirs defaultKeyBindings (GHCupInfo mempty mempty mempty) pfreq loggerConfig
|
||||||
|
|
||||||
let withValidateYamlOpts vopts f = case vopts of
|
let withValidateYamlOpts vopts f = case vopts of
|
||||||
ValidateYAMLOpts { vInput = Nothing } ->
|
ValidateYAMLOpts { vInput = Nothing } ->
|
||||||
@@ -205,11 +224,11 @@ main = do
|
|||||||
|
|
||||||
_ <- customExecParser (prefs showHelpOnError) (info (opts <**> helper) idm)
|
_ <- customExecParser (prefs showHelpOnError) (info (opts <**> helper) idm)
|
||||||
>>= \Options {..} -> case optCommand of
|
>>= \Options {..} -> case optCommand of
|
||||||
ValidateYAML vopts -> withValidateYamlOpts vopts validate
|
ValidateYAML vopts@ValidateYAMLOpts{ .. } -> withValidateYamlOpts vopts (validate vChannel)
|
||||||
ValidateTarballs vopts tarballFilter -> withValidateYamlOpts vopts (validateTarballs tarballFilter)
|
ValidateTarballs vopts tarballFilter -> withValidateYamlOpts vopts (validateTarballs tarballFilter)
|
||||||
GenerateHlsGhc vopts format output -> withValidateYamlOpts vopts (generateHLSGhc format output)
|
GenerateHlsGhc vopts format output -> withValidateYamlOpts vopts (generateHLSGhc format output)
|
||||||
GenerateToolTable vopts output -> withValidateYamlOpts vopts (generateTable output)
|
GenerateToolTable vopts output -> withValidateYamlOpts vopts (generateTable output)
|
||||||
GenerateSystemDepsInfo vopts output -> withValidateYamlOpts vopts (generateSystemInfo output)
|
GenerateSystemDepsInfo vopts output -> withValidateYamlOpts vopts (generateSystemInfoWithDistroVersion output)
|
||||||
pure ()
|
pure ()
|
||||||
|
|
||||||
where
|
where
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ import GHCup.Errors
|
|||||||
import GHCup.Types
|
import GHCup.Types
|
||||||
import GHCup.Types.Optics
|
import GHCup.Types.Optics
|
||||||
import GHCup.Utils
|
import GHCup.Utils
|
||||||
import GHCup.Utils.Logger
|
import GHCup.Prelude.Logger
|
||||||
import GHCup.Utils.Version.QQ
|
import GHCup.Prelude.Version.QQ
|
||||||
|
|
||||||
import Codec.Archive
|
import Codec.Archive
|
||||||
import Control.Applicative
|
import Control.Applicative
|
||||||
@@ -51,6 +51,11 @@ data ValidationError = InternalError String
|
|||||||
|
|
||||||
instance Exception ValidationError
|
instance Exception ValidationError
|
||||||
|
|
||||||
|
data DistributionChannel = MainChan
|
||||||
|
| PrereleaseChan
|
||||||
|
| NightlyChan
|
||||||
|
deriving (Show, Eq)
|
||||||
|
|
||||||
|
|
||||||
addError :: (MonadReader (IORef Int) m, MonadIO m, Monad m) => m ()
|
addError :: (MonadReader (IORef Int) m, MonadIO m, Monad m) => m ()
|
||||||
addError = do
|
addError = do
|
||||||
@@ -66,8 +71,9 @@ validate :: ( Monad m
|
|||||||
, MonadUnliftIO m
|
, MonadUnliftIO m
|
||||||
, HasGHCupInfo env
|
, HasGHCupInfo env
|
||||||
)
|
)
|
||||||
=> m ExitCode
|
=> DistributionChannel
|
||||||
validate = do
|
-> m ExitCode
|
||||||
|
validate distroChannel = do
|
||||||
GHCupInfo { _ghcupDownloads = dls } <- getGHCupInfo
|
GHCupInfo { _ghcupDownloads = dls } <- getGHCupInfo
|
||||||
|
|
||||||
ref <- liftIO $ newIORef 0
|
ref <- liftIO $ newIORef 0
|
||||||
@@ -81,7 +87,7 @@ validate = do
|
|||||||
forM_ (M.toList dls) $ \(t, versions) ->
|
forM_ (M.toList dls) $ \(t, versions) ->
|
||||||
forM_ (M.toList versions) $ \(v, vi) ->
|
forM_ (M.toList versions) $ \(v, vi) ->
|
||||||
forM_ (M.toList $ _viArch vi) $ \(arch, pspecs) -> do
|
forM_ (M.toList $ _viArch vi) $ \(arch, pspecs) -> do
|
||||||
checkHasRequiredPlatforms t v (_viTags vi) arch (M.keys pspecs)
|
checkHasRequiredPlatforms t (_tvVersion v) (_viTags vi) arch (M.keys pspecs)
|
||||||
|
|
||||||
checkGHCVerIsValid
|
checkGHCVerIsValid
|
||||||
forM_ (M.toList dls) $ \(t, _) -> checkMandatoryTags t
|
forM_ (M.toList dls) $ \(t, _) -> checkMandatoryTags t
|
||||||
@@ -95,33 +101,36 @@ validate = do
|
|||||||
lift $ logInfo "All good"
|
lift $ logInfo "All good"
|
||||||
pure ExitSuccess
|
pure ExitSuccess
|
||||||
where
|
where
|
||||||
checkHasRequiredPlatforms t v tags arch pspecs = do
|
checkHasRequiredPlatforms t v tags arch pspecs
|
||||||
let v' = prettyVer v
|
-- relax requirements for prerelease and nightly channels
|
||||||
arch' = prettyShow arch
|
| distroChannel `elem` [PrereleaseChan, NightlyChan] = pure ()
|
||||||
when (Linux UnknownLinux `notElem` pspecs) $ do
|
| otherwise = do
|
||||||
lift $ logError $
|
let v' = prettyVer v
|
||||||
"Linux UnknownLinux missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
|
arch' = prettyShow arch
|
||||||
addError
|
when (Linux UnknownLinux `notElem` pspecs) $ do
|
||||||
when ((Darwin `notElem` pspecs) && arch == A_64) $ do
|
lift $ logError $
|
||||||
lift $ logError $ "Darwin missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
|
"Linux UnknownLinux missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
|
||||||
addError
|
addError
|
||||||
when ((FreeBSD `notElem` pspecs) && arch == A_64) $ lift $ logWarn $
|
when ((Darwin `notElem` pspecs) && arch == A_64) $ do
|
||||||
"FreeBSD missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
|
lift $ logError $ "Darwin missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
|
||||||
when (Windows `notElem` pspecs && arch == A_64) $ do
|
addError
|
||||||
lift $ logError $ "Windows missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
|
when ((FreeBSD `notElem` pspecs) && arch == A_64) $ lift $ logWarn $
|
||||||
addError
|
"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
|
-- alpine needs to be set explicitly, because
|
||||||
-- we cannot assume that "Linux UnknownLinux" runs on Alpine
|
-- we cannot assume that "Linux UnknownLinux" runs on Alpine
|
||||||
-- (although it could be static)
|
-- (although it could be static)
|
||||||
when (Linux Alpine `notElem` pspecs) $
|
when (Linux Alpine `notElem` pspecs) $
|
||||||
case t of
|
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
|
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|]
|
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
|
, 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
|
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))
|
, 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)
|
_ -> lift $ logWarn $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch)
|
||||||
|
|
||||||
checkUniqueTags tool = do
|
checkUniqueTags tool = do
|
||||||
GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo
|
GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo
|
||||||
@@ -145,16 +154,19 @@ validate = do
|
|||||||
lift $ logError $ "Tags not unique for " <> T.pack (prettyShow tool) <> ": " <> T.pack (prettyShow xs)
|
lift $ logError $ "Tags not unique for " <> T.pack (prettyShow tool) <> ": " <> T.pack (prettyShow xs)
|
||||||
addError
|
addError
|
||||||
where
|
where
|
||||||
isUniqueTag Latest = True
|
isUniqueTag Latest = True
|
||||||
isUniqueTag Recommended = True
|
isUniqueTag Recommended = True
|
||||||
isUniqueTag Old = False
|
isUniqueTag Old = False
|
||||||
isUniqueTag Prerelease = False
|
isUniqueTag Prerelease = False
|
||||||
isUniqueTag (Base _) = False
|
isUniqueTag LatestPrerelease = True
|
||||||
isUniqueTag (UnknownTag _) = False
|
isUniqueTag Nightly = False
|
||||||
|
isUniqueTag LatestNightly = True
|
||||||
|
isUniqueTag (Base _) = False
|
||||||
|
isUniqueTag (UnknownTag _) = False
|
||||||
|
|
||||||
checkGHCVerIsValid = do
|
checkGHCVerIsValid = do
|
||||||
GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo
|
GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo
|
||||||
let ghcVers = toListOf (ix GHC % to M.keys % folded) dls
|
let ghcVers = toListOf (ix GHC % to M.keys % to (map _tvVersion) % folded) dls
|
||||||
forM_ ghcVers $ \v ->
|
forM_ ghcVers $ \v ->
|
||||||
case [ x | (x,"") <- readP_to_S V.parseVersion (T.unpack . prettyVer $ v) ] of
|
case [ x | (x,"") <- readP_to_S V.parseVersion (T.unpack . prettyVer $ v) ] of
|
||||||
[_] -> pure ()
|
[_] -> pure ()
|
||||||
@@ -166,19 +178,28 @@ validate = do
|
|||||||
checkMandatoryTags tool = do
|
checkMandatoryTags tool = do
|
||||||
GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo
|
GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo
|
||||||
let allTags = _viTags =<< M.elems (availableToolVersions dls tool)
|
let allTags = _viTags =<< M.elems (availableToolVersions dls tool)
|
||||||
forM_ [Latest, Recommended] $ \t -> case t `elem` allTags of
|
forM_ (mandatoryTags tool) $ \t -> case t `elem` allTags of
|
||||||
False -> do
|
False -> do
|
||||||
lift $ logError $ "Tag " <> T.pack (prettyShow t) <> " missing from " <> T.pack (prettyShow tool)
|
lift $ logError $ "Tag " <> T.pack (prettyShow t) <> " missing from " <> T.pack (prettyShow tool)
|
||||||
addError
|
addError
|
||||||
True -> pure ()
|
True -> pure ()
|
||||||
|
|
||||||
|
mandatoryTags tool
|
||||||
|
-- due to a quirk, even for ghcup prereleases we need the 'latest' tag
|
||||||
|
-- https://github.com/haskell/ghcup-hs/issues/891
|
||||||
|
| tool == GHCup = [Latest, Recommended]
|
||||||
|
| otherwise = case distroChannel of
|
||||||
|
MainChan -> [Latest, Recommended]
|
||||||
|
PrereleaseChan -> [LatestPrerelease]
|
||||||
|
NightlyChan -> [LatestNightly]
|
||||||
|
|
||||||
-- all GHC versions must have a base tag
|
-- all GHC versions must have a base tag
|
||||||
checkGHCHasBaseVersion = do
|
checkGHCHasBaseVersion = do
|
||||||
GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo
|
GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo
|
||||||
let allTags = M.toList $ availableToolVersions dls GHC
|
let allTags = M.toList $ availableToolVersions dls GHC
|
||||||
forM allTags $ \(ver, _viTags -> tags) -> case any isBase tags of
|
forM allTags $ \(ver, _viTags -> tags) -> case any isBase tags of
|
||||||
False -> do
|
False -> do
|
||||||
lift $ logError $ "Base tag missing from GHC ver " <> prettyVer ver
|
lift $ logError $ "Base tag missing from GHC ver " <> prettyVer (_tvVersion ver)
|
||||||
addError
|
addError
|
||||||
True -> pure ()
|
True -> pure ()
|
||||||
|
|
||||||
@@ -210,7 +231,11 @@ validateTarballs (TarballFilter etool versionRegex) = do
|
|||||||
ref <- liftIO $ newIORef 0
|
ref <- liftIO $ newIORef 0
|
||||||
|
|
||||||
-- download/verify all tarballs
|
-- 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 dlis = either (const []) (\tool -> nubOrd $ dls ^.. each %& indices (maybe (const True) (==) tool)
|
||||||
|
%> each %& indices (matchTest versionRegex . T.unpack . prettyVer . _tvVersion)
|
||||||
|
% (viTestDL % _Just `summing` viSourceDL % _Just `summing` viArch % each % each % each)
|
||||||
|
)
|
||||||
|
etool
|
||||||
let gdlis = nubOrd $ gt ^.. each
|
let gdlis = nubOrd $ gt ^.. each
|
||||||
let allDls = either (const gdlis) (const dlis) etool
|
let allDls = either (const gdlis) (const dlis) etool
|
||||||
when (null allDls) $ logError "no tarballs selected by filter" *> runReaderT addError ref
|
when (null allDls) $ logError "no tarballs selected by filter" *> runReaderT addError ref
|
||||||
@@ -245,32 +270,32 @@ validateTarballs (TarballFilter etool versionRegex) = do
|
|||||||
, DownloadFailed
|
, DownloadFailed
|
||||||
, UnknownArchive
|
, UnknownArchive
|
||||||
, ArchiveResult
|
, ArchiveResult
|
||||||
|
, ContentLengthError
|
||||||
]
|
]
|
||||||
$ do
|
$ do
|
||||||
case etool of
|
case etool of
|
||||||
Right (Just GHCup) -> do
|
Right (Just GHCup) -> do
|
||||||
tmpUnpack <- lift mkGhcupTmpDir
|
tmpUnpack <- lift mkGhcupTmpDir
|
||||||
_ <- liftE $ download (_dlUri dli) Nothing (Just (_dlHash dli)) tmpUnpack Nothing False
|
_ <- liftE $ download (_dlUri dli) Nothing (Just (_dlHash dli)) Nothing (fromGHCupPath tmpUnpack) Nothing False
|
||||||
pure Nothing
|
pure Nothing
|
||||||
Right _ -> do
|
Right _ -> do
|
||||||
p <- liftE $ downloadCached dli Nothing
|
p <- liftE $ downloadCached dli Nothing
|
||||||
fmap (Just . head . splitDirectories . head)
|
fmap Just $ liftE
|
||||||
. liftE
|
. getArchiveFiles
|
||||||
. getArchiveFiles
|
$ p
|
||||||
$ p
|
|
||||||
Left ShimGen -> do
|
Left ShimGen -> do
|
||||||
tmpUnpack <- lift mkGhcupTmpDir
|
tmpUnpack <- lift mkGhcupTmpDir
|
||||||
_ <- liftE $ download (_dlUri dli) Nothing (Just (_dlHash dli)) tmpUnpack Nothing False
|
_ <- liftE $ download (_dlUri dli) Nothing (Just (_dlHash dli)) Nothing (fromGHCupPath tmpUnpack) Nothing False
|
||||||
pure Nothing
|
pure Nothing
|
||||||
case r of
|
case r of
|
||||||
VRight (Just basePath) -> do
|
VRight (Just entries) -> do
|
||||||
case _dlSubdir dli of
|
case _dlSubdir dli of
|
||||||
Just (RealDir prel) -> do
|
Just (RealDir prel) -> do
|
||||||
logInfo
|
logInfo
|
||||||
$ " verifying subdir: " <> T.pack prel
|
$ " verifying subdir: " <> T.pack prel
|
||||||
when (basePath /= prel) $ do
|
when (normalise prel `notElem` fmap (normalise . takeDirectory) entries) $ do
|
||||||
logError $
|
logError $
|
||||||
"Subdir doesn't match: expected " <> T.pack prel <> ", got " <> T.pack basePath
|
"Subdir doesn't match: expected " <> T.pack prel
|
||||||
runReaderT addError ref
|
runReaderT addError ref
|
||||||
Just (RegexDir regexString) -> do
|
Just (RegexDir regexString) -> do
|
||||||
logInfo $
|
logInfo $
|
||||||
@@ -279,9 +304,9 @@ validateTarballs (TarballFilter etool versionRegex) = do
|
|||||||
compIgnoreCase
|
compIgnoreCase
|
||||||
execBlank
|
execBlank
|
||||||
regexString
|
regexString
|
||||||
unless (match regex basePath) $ do
|
unless (or $ fmap (match regex. normalise) entries) $ do
|
||||||
logError $
|
logError $
|
||||||
"Subdir doesn't match: expected regex " <> T.pack regexString <> ", got " <> T.pack basePath
|
"Subdir doesn't match: expected regex " <> T.pack regexString
|
||||||
runReaderT addError ref
|
runReaderT addError ref
|
||||||
Nothing -> pure ()
|
Nothing -> pure ()
|
||||||
VRight Nothing -> pure ()
|
VRight Nothing -> pure ()
|
||||||
|
|||||||
@@ -47,14 +47,14 @@ executable ghcup-gen
|
|||||||
build-depends:
|
build-depends:
|
||||||
, aeson-pretty ^>=0.8.9
|
, aeson-pretty ^>=0.8.9
|
||||||
, base >=4.13 && <5
|
, base >=4.13 && <5
|
||||||
, bytestring ^>=0.10
|
, bytestring ^>=0.11
|
||||||
, containers ^>=0.6
|
, containers ^>=0.6
|
||||||
, deepseq ^>=1.4
|
, deepseq ^>=1.4
|
||||||
, filepath ^>=1.4.2.1
|
, filepath ^>=1.4.2.1
|
||||||
, ghcup ^>=0.1.17.3
|
, ghcup ^>=0.1.19.0
|
||||||
, haskus-utils-variant ^>=3.2
|
, haskus-utils-variant ^>=3.2
|
||||||
, libarchive ^>=3.0.3.0
|
, libarchive ^>=3.0.3.0
|
||||||
, megaparsec ^>=9.0
|
, megaparsec >=8.0.0 && <9.3
|
||||||
, mtl ^>=2.2
|
, mtl ^>=2.2
|
||||||
, optics ^>=0.4
|
, optics ^>=0.4
|
||||||
, optparse-applicative >=0.15.1.0 && <0.17
|
, optparse-applicative >=0.15.1.0 && <0.17
|
||||||
@@ -63,7 +63,7 @@ executable ghcup-gen
|
|||||||
, regex-posix ^>=0.96
|
, regex-posix ^>=0.96
|
||||||
, resourcet ^>=1.2.2
|
, resourcet ^>=1.2.2
|
||||||
, safe-exceptions ^>=0.1
|
, safe-exceptions ^>=0.1
|
||||||
, text ^>=1.2.4.0
|
, text ^>=2.0
|
||||||
, transformers ^>=0.5
|
, transformers ^>=0.5
|
||||||
, versions >=4.0.1 && <5.1
|
, versions >=4.0.1 && <5.1
|
||||||
, yaml-streamly ^>=0.12.0
|
, yaml-streamly ^>=0.12.0
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
5456
ghcup-vanilla-0.0.7.yaml
Normal file
5456
ghcup-vanilla-0.0.7.yaml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
ghcup-vanilla-0.0.7.yaml.sig
Normal file
BIN
ghcup-vanilla-0.0.7.yaml.sig
Normal file
Binary file not shown.
@@ -608,5 +608,740 @@
|
|||||||
"9.4.2"
|
"9.4.2"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"1.9.0.0": {
|
||||||
|
"A_64": {
|
||||||
|
"Darwin": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.5",
|
||||||
|
"9.4.3",
|
||||||
|
"9.4.4"
|
||||||
|
],
|
||||||
|
"Linux_CentOS": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.5",
|
||||||
|
"9.4.3",
|
||||||
|
"9.4.4"
|
||||||
|
],
|
||||||
|
"Linux_Debian": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.5",
|
||||||
|
"9.4.3",
|
||||||
|
"9.4.4"
|
||||||
|
],
|
||||||
|
"Linux_Fedora": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.5",
|
||||||
|
"9.4.3",
|
||||||
|
"9.4.4"
|
||||||
|
],
|
||||||
|
"Linux_Mint": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.5",
|
||||||
|
"9.4.3",
|
||||||
|
"9.4.4"
|
||||||
|
],
|
||||||
|
"Linux_Ubuntu": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.5",
|
||||||
|
"9.4.3",
|
||||||
|
"9.4.4"
|
||||||
|
],
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.5",
|
||||||
|
"9.4.3",
|
||||||
|
"9.4.4"
|
||||||
|
],
|
||||||
|
"Windows": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.5",
|
||||||
|
"9.4.3",
|
||||||
|
"9.4.4"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"A_ARM64": {
|
||||||
|
"Darwin": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.5",
|
||||||
|
"9.4.3",
|
||||||
|
"9.4.4"
|
||||||
|
],
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.5",
|
||||||
|
"9.4.3",
|
||||||
|
"9.4.4"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"1.9.1.0": {
|
||||||
|
"A_64": {
|
||||||
|
"Darwin": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.5",
|
||||||
|
"9.2.6",
|
||||||
|
"9.4.4"
|
||||||
|
],
|
||||||
|
"FreeBSD": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.5",
|
||||||
|
"9.2.6"
|
||||||
|
],
|
||||||
|
"Linux_CentOS": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.5",
|
||||||
|
"9.2.6",
|
||||||
|
"9.4.4"
|
||||||
|
],
|
||||||
|
"Linux_Debian": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.5",
|
||||||
|
"9.2.6",
|
||||||
|
"9.4.4"
|
||||||
|
],
|
||||||
|
"Linux_Fedora": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.5",
|
||||||
|
"9.2.6",
|
||||||
|
"9.4.4"
|
||||||
|
],
|
||||||
|
"Linux_Mint": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.5",
|
||||||
|
"9.2.6",
|
||||||
|
"9.4.4"
|
||||||
|
],
|
||||||
|
"Linux_RedHat": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.5",
|
||||||
|
"9.2.6",
|
||||||
|
"9.4.4"
|
||||||
|
],
|
||||||
|
"Linux_Ubuntu": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.5",
|
||||||
|
"9.2.6",
|
||||||
|
"9.4.4"
|
||||||
|
],
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.5",
|
||||||
|
"9.2.6",
|
||||||
|
"9.4.4"
|
||||||
|
],
|
||||||
|
"Windows": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.5",
|
||||||
|
"9.2.6",
|
||||||
|
"9.4.4"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"A_ARM64": {
|
||||||
|
"Darwin": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.2.5",
|
||||||
|
"9.2.6",
|
||||||
|
"9.4.4"
|
||||||
|
],
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.5",
|
||||||
|
"9.2.6",
|
||||||
|
"9.4.4"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"1.10.0.0": {
|
||||||
|
"A_64": {
|
||||||
|
"Darwin": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.7",
|
||||||
|
"9.4.4",
|
||||||
|
"9.6.1"
|
||||||
|
],
|
||||||
|
"FreeBSD": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.5",
|
||||||
|
"9.2.7"
|
||||||
|
],
|
||||||
|
"Linux_CentOS": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.7",
|
||||||
|
"9.4.4",
|
||||||
|
"9.6.1"
|
||||||
|
],
|
||||||
|
"Linux_Debian": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.7",
|
||||||
|
"9.4.4",
|
||||||
|
"9.6.1"
|
||||||
|
],
|
||||||
|
"Linux_Fedora": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.7",
|
||||||
|
"9.4.4",
|
||||||
|
"9.6.1"
|
||||||
|
],
|
||||||
|
"Linux_Mint": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.7",
|
||||||
|
"9.4.4",
|
||||||
|
"9.6.1"
|
||||||
|
],
|
||||||
|
"Linux_RedHat": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.7",
|
||||||
|
"9.4.4",
|
||||||
|
"9.6.1"
|
||||||
|
],
|
||||||
|
"Linux_Ubuntu": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.7",
|
||||||
|
"9.4.4",
|
||||||
|
"9.6.1"
|
||||||
|
],
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.7",
|
||||||
|
"9.4.4",
|
||||||
|
"9.6.1"
|
||||||
|
],
|
||||||
|
"Windows": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.7",
|
||||||
|
"9.4.4",
|
||||||
|
"9.6.1"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"A_ARM64": {
|
||||||
|
"Darwin": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.2.7",
|
||||||
|
"9.4.4",
|
||||||
|
"9.6.1"
|
||||||
|
],
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.7",
|
||||||
|
"9.4.4",
|
||||||
|
"9.6.1"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"2.0.0.0": {
|
||||||
|
"A_64": {
|
||||||
|
"Darwin": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.7",
|
||||||
|
"9.4.5",
|
||||||
|
"9.6.1"
|
||||||
|
],
|
||||||
|
"FreeBSD": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.5",
|
||||||
|
"9.2.7"
|
||||||
|
],
|
||||||
|
"Linux_CentOS": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.7",
|
||||||
|
"9.4.5",
|
||||||
|
"9.6.1"
|
||||||
|
],
|
||||||
|
"Linux_Debian": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.7",
|
||||||
|
"9.4.5",
|
||||||
|
"9.6.1"
|
||||||
|
],
|
||||||
|
"Linux_Fedora": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.7",
|
||||||
|
"9.4.5",
|
||||||
|
"9.6.1"
|
||||||
|
],
|
||||||
|
"Linux_Mint": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.7",
|
||||||
|
"9.4.5",
|
||||||
|
"9.6.1"
|
||||||
|
],
|
||||||
|
"Linux_RedHat": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.7",
|
||||||
|
"9.4.5",
|
||||||
|
"9.6.1"
|
||||||
|
],
|
||||||
|
"Linux_Ubuntu": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.7",
|
||||||
|
"9.4.5",
|
||||||
|
"9.6.1"
|
||||||
|
],
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.7",
|
||||||
|
"9.4.5",
|
||||||
|
"9.6.1"
|
||||||
|
],
|
||||||
|
"Windows": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.7",
|
||||||
|
"9.4.5",
|
||||||
|
"9.6.1"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"A_ARM64": {
|
||||||
|
"Darwin": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.2.7",
|
||||||
|
"9.4.5",
|
||||||
|
"9.6.1"
|
||||||
|
],
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.7",
|
||||||
|
"9.4.5",
|
||||||
|
"9.6.1"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"2.0.0.1": {
|
||||||
|
"A_64": {
|
||||||
|
"Darwin": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.7",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.5",
|
||||||
|
"9.6.2"
|
||||||
|
],
|
||||||
|
"FreeBSD": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.5",
|
||||||
|
"9.2.7"
|
||||||
|
],
|
||||||
|
"Linux_CentOS": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.7",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.5",
|
||||||
|
"9.6.2"
|
||||||
|
],
|
||||||
|
"Linux_Debian": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.7",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.5",
|
||||||
|
"9.6.2"
|
||||||
|
],
|
||||||
|
"Linux_Fedora": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.7",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.5",
|
||||||
|
"9.6.2"
|
||||||
|
],
|
||||||
|
"Linux_Mint": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.7",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.5",
|
||||||
|
"9.6.2"
|
||||||
|
],
|
||||||
|
"Linux_RedHat": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.7",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.5",
|
||||||
|
"9.6.2"
|
||||||
|
],
|
||||||
|
"Linux_Ubuntu": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.7",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.5",
|
||||||
|
"9.6.2"
|
||||||
|
],
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.7",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.5",
|
||||||
|
"9.6.2"
|
||||||
|
],
|
||||||
|
"Windows": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.7",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.5",
|
||||||
|
"9.6.2"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"A_ARM64": {
|
||||||
|
"Darwin": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.2.7",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.5",
|
||||||
|
"9.6.2"
|
||||||
|
],
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.7",
|
||||||
|
"9.2.8",
|
||||||
|
"9.6.2"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"2.1.0.0": {
|
||||||
|
"A_64": {
|
||||||
|
"Darwin": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.5",
|
||||||
|
"9.4.6",
|
||||||
|
"9.6.2"
|
||||||
|
],
|
||||||
|
"FreeBSD": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.5",
|
||||||
|
"9.2.7"
|
||||||
|
],
|
||||||
|
"Linux_CentOS": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.5",
|
||||||
|
"9.4.6",
|
||||||
|
"9.6.2"
|
||||||
|
],
|
||||||
|
"Linux_Debian": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.5",
|
||||||
|
"9.4.6",
|
||||||
|
"9.6.2"
|
||||||
|
],
|
||||||
|
"Linux_Fedora": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.5",
|
||||||
|
"9.4.6",
|
||||||
|
"9.6.2"
|
||||||
|
],
|
||||||
|
"Linux_Mint": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.5",
|
||||||
|
"9.4.6",
|
||||||
|
"9.6.2"
|
||||||
|
],
|
||||||
|
"Linux_RedHat": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.5",
|
||||||
|
"9.4.6",
|
||||||
|
"9.6.2"
|
||||||
|
],
|
||||||
|
"Linux_Ubuntu": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.5",
|
||||||
|
"9.4.6",
|
||||||
|
"9.6.2"
|
||||||
|
],
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.5",
|
||||||
|
"9.4.6",
|
||||||
|
"9.6.2"
|
||||||
|
],
|
||||||
|
"Windows": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.5",
|
||||||
|
"9.4.6",
|
||||||
|
"9.6.2"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"A_ARM64": {
|
||||||
|
"Darwin": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.5",
|
||||||
|
"9.4.6",
|
||||||
|
"9.6.2"
|
||||||
|
],
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.5",
|
||||||
|
"9.4.6",
|
||||||
|
"9.6.2"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"2.2.0.0": {
|
||||||
|
"A_64": {
|
||||||
|
"Darwin": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.5",
|
||||||
|
"9.4.6",
|
||||||
|
"9.4.7",
|
||||||
|
"9.6.2"
|
||||||
|
],
|
||||||
|
"FreeBSD": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.5",
|
||||||
|
"9.2.7"
|
||||||
|
],
|
||||||
|
"Linux_CentOS": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.5",
|
||||||
|
"9.4.6",
|
||||||
|
"9.4.7",
|
||||||
|
"9.6.2"
|
||||||
|
],
|
||||||
|
"Linux_Debian": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.5",
|
||||||
|
"9.4.6",
|
||||||
|
"9.4.7",
|
||||||
|
"9.6.2"
|
||||||
|
],
|
||||||
|
"Linux_Fedora": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.5",
|
||||||
|
"9.4.6",
|
||||||
|
"9.4.7",
|
||||||
|
"9.6.2"
|
||||||
|
],
|
||||||
|
"Linux_Mint": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.5",
|
||||||
|
"9.4.6",
|
||||||
|
"9.4.7",
|
||||||
|
"9.6.2"
|
||||||
|
],
|
||||||
|
"Linux_RedHat": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.5",
|
||||||
|
"9.4.6",
|
||||||
|
"9.4.7",
|
||||||
|
"9.6.2"
|
||||||
|
],
|
||||||
|
"Linux_Ubuntu": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.5",
|
||||||
|
"9.4.6",
|
||||||
|
"9.4.7",
|
||||||
|
"9.6.2"
|
||||||
|
],
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.5",
|
||||||
|
"9.4.6",
|
||||||
|
"9.4.7",
|
||||||
|
"9.6.2"
|
||||||
|
],
|
||||||
|
"Windows": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.5",
|
||||||
|
"9.4.6",
|
||||||
|
"9.4.7",
|
||||||
|
"9.6.2"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"A_ARM64": {
|
||||||
|
"Darwin": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.5",
|
||||||
|
"9.4.6",
|
||||||
|
"9.4.7",
|
||||||
|
"9.6.2"
|
||||||
|
],
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.5",
|
||||||
|
"9.4.6",
|
||||||
|
"9.4.7",
|
||||||
|
"9.6.2"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"2.3.0.0": {
|
||||||
|
"A_64": {
|
||||||
|
"Darwin": [
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.7",
|
||||||
|
"9.6.2",
|
||||||
|
"9.6.3"
|
||||||
|
],
|
||||||
|
"FreeBSD": [
|
||||||
|
"8.10.7",
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.5",
|
||||||
|
"9.2.7"
|
||||||
|
],
|
||||||
|
"Linux_CentOS": [
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.7",
|
||||||
|
"9.6.2",
|
||||||
|
"9.6.3"
|
||||||
|
],
|
||||||
|
"Linux_Debian": [
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.7",
|
||||||
|
"9.6.2",
|
||||||
|
"9.6.3"
|
||||||
|
],
|
||||||
|
"Linux_Fedora": [
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.7",
|
||||||
|
"9.6.2",
|
||||||
|
"9.6.3"
|
||||||
|
],
|
||||||
|
"Linux_Mint": [
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.7",
|
||||||
|
"9.6.2",
|
||||||
|
"9.6.3"
|
||||||
|
],
|
||||||
|
"Linux_RedHat": [
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.7",
|
||||||
|
"9.6.2",
|
||||||
|
"9.6.3"
|
||||||
|
],
|
||||||
|
"Linux_Ubuntu": [
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.7",
|
||||||
|
"9.6.2",
|
||||||
|
"9.6.3"
|
||||||
|
],
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.7",
|
||||||
|
"9.6.2",
|
||||||
|
"9.6.3"
|
||||||
|
],
|
||||||
|
"Windows": [
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.7",
|
||||||
|
"9.6.2",
|
||||||
|
"9.6.3"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"A_ARM64": {
|
||||||
|
"Darwin": [
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.7",
|
||||||
|
"9.6.2",
|
||||||
|
"9.6.3"
|
||||||
|
],
|
||||||
|
"Linux_UnknownLinux": [
|
||||||
|
"9.0.2",
|
||||||
|
"9.2.8",
|
||||||
|
"9.4.7",
|
||||||
|
"9.6.2",
|
||||||
|
"9.6.3"
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user