Compare commits
1 Commits
develop
...
bryans-pgp
Author | SHA1 | Date | |
---|---|---|---|
31448202b8 |
28
.github/scripts/brew.sh
vendored
28
.github/scripts/brew.sh
vendored
@ -1,28 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -eux
|
||||
|
||||
# shellcheck disable=SC1091
|
||||
. .github/scripts/env.sh
|
||||
|
||||
if [ -e "$HOME/.brew" ] ; then
|
||||
(
|
||||
cd "$HOME/.brew"
|
||||
git fetch --depth 1
|
||||
git reset --hard origin/master
|
||||
)
|
||||
else
|
||||
git clone --depth=1 https://github.com/Homebrew/brew "$HOME/.brew"
|
||||
fi
|
||||
export PATH="$HOME/.brew/bin:$HOME/.brew/sbin:$PATH"
|
||||
|
||||
mkdir -p "$CI_PROJECT_DIR/.brew_cache"
|
||||
export HOMEBREW_CACHE="$CI_PROJECT_DIR/.brew_cache"
|
||||
mkdir -p "$CI_PROJECT_DIR/.brew_logs"
|
||||
export HOMEBREW_LOGS="$CI_PROJECT_DIR/.brew_logs"
|
||||
mkdir -p /private/tmp/.brew_tmp
|
||||
export HOMEBREW_TEMP=/private/tmp/.brew_tmp
|
||||
|
||||
#brew update
|
||||
brew install ${1+"$@"}
|
||||
|
66
.github/scripts/build.sh
vendored
66
.github/scripts/build.sh
vendored
@ -1,66 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eux
|
||||
|
||||
# shellcheck disable=SC1091
|
||||
. .github/scripts/env.sh
|
||||
# shellcheck disable=SC1091
|
||||
. .github/scripts/common.sh
|
||||
|
||||
uname -a
|
||||
uname -p
|
||||
uname
|
||||
pwd
|
||||
env
|
||||
|
||||
# ensure ghcup
|
||||
install_ghcup
|
||||
|
||||
# build
|
||||
ghcup install ghc "${GHC_VERSION}"
|
||||
ghcup set ghc "${GHC_VERSION}"
|
||||
sed -i.bak -e '/DELETE MARKER FOR CI/,/END DELETE/d' cabal.project # see comment in cabal.project
|
||||
ecabal update
|
||||
ecabal user-config diff
|
||||
ecabal user-config init -f
|
||||
"ghc-${GHC_VERSION}" --info
|
||||
"ghc" --info
|
||||
|
||||
# https://github.com/haskell/cabal/issues/7313#issuecomment-811851884
|
||||
if [ "$(getconf LONG_BIT)" == "32" ] || [ "${DISTRO}" == "CentOS" ] ; then
|
||||
echo 'constraints: lukko -ofd-locking' >> cabal.project.release.local
|
||||
fi
|
||||
|
||||
# shellcheck disable=SC2206
|
||||
args=(
|
||||
-w "ghc-$GHC_VERSION"
|
||||
--disable-profiling
|
||||
--enable-executable-stripping
|
||||
--project-file=cabal.project.release
|
||||
${ADD_CABAL_ARGS}
|
||||
)
|
||||
|
||||
run cabal v2-build "${args[@]}" cabal-install
|
||||
|
||||
mkdir -p "$CI_PROJECT_DIR/out"
|
||||
# shellcheck disable=SC2154
|
||||
cp "$(cabal list-bin "${args[@]}" cabal-install:exe:cabal)" "$CI_PROJECT_DIR/out/cabal$ext"
|
||||
cp dist-newstyle/cache/plan.json "$CI_PROJECT_DIR/out/plan.json"
|
||||
cd "$CI_PROJECT_DIR/out/"
|
||||
|
||||
# create tarball/zip
|
||||
TARBALL_PREFIX="cabal-install-$("$CI_PROJECT_DIR/out/cabal" --numeric-version)"
|
||||
case "${TARBALL_EXT}" in
|
||||
zip)
|
||||
zip "${TARBALL_PREFIX}-${ARTIFACT}.${TARBALL_EXT}" "cabal${ext}" plan.json
|
||||
;;
|
||||
tar.xz)
|
||||
tar caf "${TARBALL_PREFIX}-${ARTIFACT}.${TARBALL_EXT}" "cabal${ext}" plan.json
|
||||
;;
|
||||
*)
|
||||
fail "Unknown TARBALL_EXT: ${TARBALL_EXT}"
|
||||
;;
|
||||
esac
|
||||
|
||||
rm cabal plan.json
|
||||
|
110
.github/scripts/common.sh
vendored
110
.github/scripts/common.sh
vendored
@ -1,110 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# shellcheck disable=SC1091
|
||||
. .github/scripts/env.sh
|
||||
|
||||
# Colors
|
||||
RED="0;31"
|
||||
LT_BROWN="1;33"
|
||||
LT_BLUE="1;34"
|
||||
|
||||
ecabal() {
|
||||
cabal "$@"
|
||||
}
|
||||
|
||||
nonfatal() {
|
||||
"$@" || "$* failed"
|
||||
}
|
||||
|
||||
sha_sum() {
|
||||
if [ "${RUNNER_OS}" = "FreeBSD" ] ; then
|
||||
sha256 "$@"
|
||||
else
|
||||
sha256sum "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
git_describe() {
|
||||
git config --global --get-all safe.directory | grep '^\*$' || git config --global --add safe.directory "*"
|
||||
git describe --always
|
||||
}
|
||||
|
||||
install_ghcup() {
|
||||
# find "$GHCUP_INSTALL_BASE_PREFIX"
|
||||
mkdir -p "$GHCUP_BIN"
|
||||
mkdir -p "$GHCUP_BIN"/../cache
|
||||
|
||||
if [ "${RUNNER_OS}" = "FreeBSD" ] ; then
|
||||
curl -o ghcup https://downloads.haskell.org/ghcup/tmp/x86_64-portbld-freebsd-ghcup-0.1.18.1
|
||||
chmod +x ghcup
|
||||
mv ghcup "$HOME/.local/bin/ghcup"
|
||||
else
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | BOOTSTRAP_HASKELL_MINIMAL=1 sh
|
||||
source "$(dirname "${GHCUP_BIN}")/env"
|
||||
ghcup install cabal --set "${BOOTSTRAP_HASKELL_CABAL_VERSION}"
|
||||
fi
|
||||
}
|
||||
|
||||
strip_binary() {
|
||||
(
|
||||
set -e
|
||||
local binary=$1
|
||||
case "$(uname -s)" in
|
||||
"Darwin"|"darwin")
|
||||
;;
|
||||
MSYS_*|MINGW*)
|
||||
;;
|
||||
*)
|
||||
strip -s "${binary}"
|
||||
;;
|
||||
esac
|
||||
)
|
||||
}
|
||||
|
||||
# GitLab Pipelines log section delimiters
|
||||
# https://gitlab.com/gitlab-org/gitlab-foss/issues/14664
|
||||
start_section() {
|
||||
name="$1"
|
||||
echo -e "section_start:$(date +%s):$name\015\033[0K"
|
||||
}
|
||||
|
||||
end_section() {
|
||||
name="$1"
|
||||
echo -e "section_end:$(date +%s):$name\015\033[0K"
|
||||
}
|
||||
|
||||
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; }
|
||||
|
||||
run() {
|
||||
info "Running $*..."
|
||||
"$@" || ( error "$* failed"; return 1; )
|
||||
}
|
||||
|
||||
emake() {
|
||||
if command -v gmake >/dev/null 2>&1 ; then
|
||||
gmake "$@"
|
||||
else
|
||||
make "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
mktempdir() {
|
||||
case "$(uname -s)" in
|
||||
"Darwin"|"darwin")
|
||||
mktemp -d -t cabal_ci.XXXXXXX
|
||||
;;
|
||||
*)
|
||||
mktemp -d
|
||||
;;
|
||||
esac
|
||||
}
|
38
.github/scripts/env.sh
vendored
38
.github/scripts/env.sh
vendored
@ -1,38 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
mkdir -p "$HOME"/.local/bin
|
||||
|
||||
if [ "${RUNNER_OS}" = "Windows" ] ; then
|
||||
ext=".exe"
|
||||
else
|
||||
# shellcheck disable=SC2034
|
||||
ext=''
|
||||
fi
|
||||
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
|
||||
export BOOTSTRAP_HASKELL_NONINTERACTIVE=1
|
||||
export BOOTSTRAP_HASKELL_CABAL_VERSION="${CABAL_VER:-3.6.2.0-p2}"
|
||||
export BOOTSTRAP_HASKELL_ADJUST_CABAL_CONFIG=no
|
||||
export BOOTSTRAP_HASKELL_INSTALL_NO_STACK=yes
|
||||
export BOOTSTRAP_HASKELL_ADJUST_BASHRC=1
|
||||
|
||||
if [ "${RUNNER_OS}" = "Windows" ] ; then
|
||||
# on windows use pwd to get unix style path
|
||||
CI_PROJECT_DIR="$(pwd)"
|
||||
export CI_PROJECT_DIR
|
||||
export GHCUP_INSTALL_BASE_PREFIX="/c"
|
||||
export GHCUP_BIN="$GHCUP_INSTALL_BASE_PREFIX/ghcup/bin"
|
||||
export PATH="$GHCUP_BIN:$PATH"
|
||||
export CABAL_DIR="C:\\Users\\runneradmin\\AppData\\Roaming\\cabal"
|
||||
else
|
||||
export CI_PROJECT_DIR="${GITHUB_WORKSPACE}"
|
||||
export GHCUP_INSTALL_BASE_PREFIX="$CI_PROJECT_DIR"
|
||||
export GHCUP_BIN="$GHCUP_INSTALL_BASE_PREFIX/.ghcup/bin"
|
||||
export PATH="$GHCUP_BIN:$PATH"
|
||||
export CABAL_DIR="$CI_PROJECT_DIR/cabal"
|
||||
export CABAL_CACHE="$CI_PROJECT_DIR/cabal-cache"
|
||||
fi
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
export TZ=Asia/Singapore
|
96
.github/workflows/bindists.yaml
vendored
96
.github/workflows/bindists.yaml
vendored
@ -16,12 +16,7 @@ on:
|
||||
metadataFile:
|
||||
description: Metadata file
|
||||
required: true
|
||||
default: ghcup-0.0.8.yaml
|
||||
type: string
|
||||
channel:
|
||||
description: Distribution channel (main|prerelease|nightly)
|
||||
required: true
|
||||
default: Main
|
||||
default: ghcup-0.0.7.yaml
|
||||
type: string
|
||||
env:
|
||||
BOOTSTRAP_HASKELL_NONINTERACTIVE: 1
|
||||
@ -30,7 +25,6 @@ env:
|
||||
TOOL: ${{ github.event.inputs.tool }}
|
||||
VERSION: ${{ github.event.inputs.version }}
|
||||
METADATA_FILE: ${{ github.event.inputs.metadataFile }}
|
||||
CHANNEL: ${{ github.event.inputs.channel }}
|
||||
jobs:
|
||||
bindist-install:
|
||||
name: linux-${{ matrix.image }}
|
||||
@ -48,15 +42,6 @@ jobs:
|
||||
- image: debian:11
|
||||
installCmd: apt-get update && apt-get install -y
|
||||
toolRequirements: build-essential curl libffi-dev libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5 libnuma-dev
|
||||
- image: debian:12
|
||||
installCmd: apt-get update && apt-get install -y
|
||||
toolRequirements: build-essential curl libffi-dev libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5 libnuma-dev
|
||||
- image: debian:unstable
|
||||
installCmd: apt-get update && apt-get install -y
|
||||
toolRequirements: build-essential curl libffi-dev libgmp-dev libgmp10 libncurses-dev libncurses6 libtinfo6 libnuma-dev
|
||||
- image: ubuntu:16.04
|
||||
installCmd: apt-get update && apt-get install -y
|
||||
toolRequirements: build-essential curl libffi-dev libffi6 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
|
||||
- image: ubuntu:18.04
|
||||
installCmd: apt-get update && apt-get install -y
|
||||
toolRequirements: build-essential curl libffi-dev libffi6 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
|
||||
@ -72,7 +57,7 @@ jobs:
|
||||
- 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:37
|
||||
- image: fedora:36
|
||||
installCmd: dnf install -y
|
||||
toolRequirements: which gcc g++ gmp gmp-devel make ncurses ncurses-compat-libs xz perl
|
||||
- image: rockylinux:8
|
||||
@ -84,15 +69,12 @@ jobs:
|
||||
- image: linuxmintd/mint19.3-amd64
|
||||
installCmd: apt-get update && apt-get install -y
|
||||
toolRequirements: build-essential curl libffi-dev libffi6 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
|
||||
- image: linuxmintd/mint20.3-amd64
|
||||
- image: linuxmintd/mint20.2-amd64
|
||||
installCmd: apt-get update && apt-get install -y
|
||||
toolRequirements: build-essential curl libffi-dev libffi7 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
|
||||
- image: linuxmintd/mint21.3-amd64
|
||||
- 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
|
||||
- image: ghcr.io/void-linux/void-glibc-full:latest
|
||||
installCmd: xbps-install -Suy && xbps-install -y
|
||||
toolRequirements: binutils curl gcc gmp-devel glibc-devel libffi-devel make ncurses-devel ncurses-libtinfo-libs perl tar xz
|
||||
container:
|
||||
image: ${{ matrix.image }}
|
||||
steps:
|
||||
@ -132,9 +114,9 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- os: [self-hosted, Linux, ARM64, maerwald]
|
||||
- os: [self-hosted, Linux, ARM64]
|
||||
ARCH: ARM
|
||||
- os: [self-hosted, Linux, ARM64, maerwald]
|
||||
- os: [self-hosted, Linux, ARM64]
|
||||
ARCH: ARM64
|
||||
steps:
|
||||
- uses: docker://arm64v8/ubuntu:focal
|
||||
@ -161,72 +143,6 @@ jobs:
|
||||
with:
|
||||
args: sh -c '.github/workflows/install-bindist.sh'
|
||||
|
||||
bindist-install-freebsd:
|
||||
name: Install FreeBSD binary
|
||||
runs-on: [self-hosted, FreeBSD, X64]
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Run build
|
||||
run: .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
|
||||
|
38
.github/workflows/install-bindist.sh
vendored
38
.github/workflows/install-bindist.sh
vendored
@ -6,7 +6,7 @@ set -eo pipefail
|
||||
|
||||
export GHCUP_INSTALL_BASE_PREFIX=$RUNNER_TEMP/foobarbaz
|
||||
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/haskell/ghcup-hs/master/scripts/bootstrap/bootstrap-haskell | sh
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
|
||||
|
||||
source "$GHCUP_INSTALL_BASE_PREFIX"/.ghcup/env || source "$HOME/.bashrc"
|
||||
|
||||
@ -14,14 +14,7 @@ ghcup --version
|
||||
which ghcup | grep foobarbaz
|
||||
|
||||
ghcup_fun() {
|
||||
case "$(uname -s)" in
|
||||
MSYS_*|MINGW*)
|
||||
ghcup -v --url-source="file:${GITHUB_WORKSPACE//\\//}/$METADATA_FILE" "$@"
|
||||
;;
|
||||
*)
|
||||
ghcup -v --url-source="file://${GITHUB_WORKSPACE}/$METADATA_FILE" "$@"
|
||||
;;
|
||||
esac
|
||||
ghcup -v --url-source="file:$METADATA_FILE" "$@"
|
||||
}
|
||||
|
||||
case $TOOL in
|
||||
@ -33,10 +26,9 @@ case $TOOL in
|
||||
esac
|
||||
|
||||
mkdir -p /tmp/install-bindist-ci
|
||||
cp "$METADATA_FILE" /tmp/install-bindist-ci/
|
||||
cd /tmp/install-bindist-ci
|
||||
|
||||
trap 'rm -rf -- /tmp/install-bindist-ci' EXIT
|
||||
|
||||
cat <<EOF > main.hs
|
||||
{- cabal:
|
||||
build-depends: base
|
||||
@ -68,6 +60,7 @@ case $TOOL in
|
||||
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'
|
||||
@ -91,7 +84,6 @@ case $TOOL in
|
||||
ghcup_fun rm ghc "${bin_noexe/haskell-language-server-/}"
|
||||
fi
|
||||
done
|
||||
ghcup_fun install ghc --set recommended
|
||||
"$bindir/haskell-language-server-wrapper${ext}" typecheck "${test_module}" || fail "failed to typecheck with HLS wrapper"
|
||||
}
|
||||
|
||||
@ -111,28 +103,6 @@ case $TOOL in
|
||||
ghc --info
|
||||
ghc -prof main.hs
|
||||
[[ $(./main +RTS -s) -eq 2 ]]
|
||||
ghcup install cabal recommended
|
||||
cabal --version
|
||||
cabal update
|
||||
case "${CHANNEL}" in
|
||||
Prerelease|prereleasee)
|
||||
cabal install --lib --package-env=. --allow-newer clock
|
||||
# https://github.com/haskell/ghcup-hs/issues/966
|
||||
cabal install --lib --package-env=. --allow-newer --constraint='filepath <1.5' hashable
|
||||
;;
|
||||
*)
|
||||
cabal install --lib --package-env=. clock
|
||||
# https://github.com/haskell/ghcup-hs/issues/966
|
||||
cabal install --lib --package-env=. hashable
|
||||
;;
|
||||
esac
|
||||
case "$(uname -s)" in
|
||||
MSYS_*|MINGW*)
|
||||
;;
|
||||
*)
|
||||
[[ -e "$(ghcup whereis --directory ghc "$VERSION")/../share/man/man1/ghc.1" ]]
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
cabal)
|
||||
ghcup_fun install ghc --set "$(ghcup_fun list -t ghc -r -c available | tail -1 | awk '{ print $2 }')"
|
||||
|
1
.github/workflows/sigs
vendored
1
.github/workflows/sigs
vendored
@ -3,4 +3,5 @@ keys=(
|
||||
FFEB7CE81E16A36B3E2DED6F2DE04D4E97DB64AD # Ben Gamari <ben@well-typed.com>
|
||||
88B57FCF7DB53B4DB3BFA4B1588764FBE22D19C4 # Zubin Duggal <zubin@well-typed.com>
|
||||
EAF2A9A722C0C96F2B431CA511AAD8CEDEE0CAEF # Hécate <hecate@glitchbra.in>
|
||||
FE5AB6C91FEA597C3B31180B73EDE9E8CFBAEF01 # Bryan Richter <b@chreekat.net>
|
||||
)
|
||||
|
4
.github/workflows/test-sigs.sh
vendored
4
.github/workflows/test-sigs.sh
vendored
@ -21,7 +21,3 @@ done
|
||||
unset key
|
||||
gpg --verify "${METADATA_FILE}.sig"
|
||||
|
||||
for f in ghcup-*.json ghcup-*.yaml hls-metadata-*.json ; do
|
||||
gpg --verify "${f}.sig"
|
||||
done
|
||||
|
||||
|
4
.gitignore
vendored
4
.gitignore
vendored
@ -12,6 +12,6 @@ tags
|
||||
TAGS
|
||||
/tmp/
|
||||
.entangled
|
||||
/release/
|
||||
/releases/
|
||||
release/
|
||||
releases/
|
||||
site/
|
||||
|
51
README.md
51
README.md
@ -1,34 +1,6 @@
|
||||
# GHCup metadata
|
||||
|
||||
## 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 experimental cross compilers. See https://www.haskell.org/ghcup/guide/#cross-support for details.
|
||||
|
||||
### 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
|
||||
```
|
||||
|
||||
If you want **only** vanilla upstream bindists and opt out of all unofficial stuff, you'd run:
|
||||
|
||||
```sh
|
||||
ghcup config set url-source https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-vanilla-0.0.8.yaml
|
||||
```
|
||||
|
||||
Also check the [config.yaml documentation](https://github.com/haskell/ghcup-hs/blob/master/data/config.yaml).
|
||||
|
||||
## For contributors
|
||||
|
||||
### Adding a new GHC version
|
||||
## Adding a new GHC version
|
||||
|
||||
1. open the latest `ghcup-<yaml-ver>.yaml`
|
||||
2. find the latest ghc version (in yaml tree e.g. `ghcupDownloads -> GHC -> 8.10.7`)
|
||||
@ -39,24 +11,3 @@ Also check the [config.yaml documentation](https://github.com/haskell/ghcup-hs/b
|
||||
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`
|
||||
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`
|
||||
|
||||
|
@ -7,7 +7,7 @@ package ghcup
|
||||
source-repository-package
|
||||
type: git
|
||||
location: https://github.com/haskell/ghcup-hs.git
|
||||
tag: 91ef2c7666d118bc6bd7d2fc2eeb7754081a9f3d
|
||||
tag: fd6ff9f8ece147bb4527843822462c72824e8ba7
|
||||
|
||||
constraints: http-io-streams -brotli,
|
||||
any.aeson >= 2.0.1.0
|
||||
|
@ -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
|
||||
dlHash: 694ba7c14f8d720c6e790ab0488dbff2d8a07d9c6de97b4deeba31088f825bc2
|
||||
GHCup:
|
||||
0.1.22.0:
|
||||
0.1.19.0:
|
||||
viTags:
|
||||
- Recommended
|
||||
- Latest
|
||||
viChangeLog: https://github.com/haskell/ghcup-hs/blob/master/CHANGELOG.md
|
||||
viSourceDL:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.22.0/ghcup-0.1.22.0-src.tar.gz
|
||||
dlSubdir: ghcup-0.1.22.0
|
||||
dlHash: 8309058a58e7b65e41cf045e555fd2f4e9e651c32d85c63fef09330b827d2478
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &ghcup-64
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.22.0/x86_64-linux-ghcup-0.1.22.0
|
||||
dlHash: bf213f4dfd2271b46ca52e2f14e96850ce32e9115e5acc90f1dc5a4e815e32af
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-linux-ghcup-0.1.19.0
|
||||
dlHash: 33ee6a758ee06e3b520be176905e6192e31f5fa2e2acdc525b1bea77ca368a12
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.22.0/x86_64-apple-darwin-ghcup-0.1.22.0
|
||||
dlHash: e588fe2c6a065afb56eca257c4ff19b83f192e95ee74d9601976ce5c05991b06
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-apple-darwin-ghcup-0.1.19.0
|
||||
dlHash: 416de8509092fd95f97ee19a5f3def91fbd6e6fa4fa630a5c5e7226f49a83af7
|
||||
FreeBSD:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.22.0/x86_64-portbld-freebsd-ghcup-0.1.22.0
|
||||
dlHash: ce87fcebd2db01adcb3e57635e611437a96dd8ba98932a436f45ac71c4ae2e8a
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-portbld-freebsd-ghcup-0.1.19.0
|
||||
dlHash: dadf49f8ac045946ccea7369d0c80cf3a5221b2282d8f9943cc3dc86e8516a62
|
||||
Windows:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.22.0/x86_64-mingw64-ghcup-0.1.22.0.exe
|
||||
dlHash: 92d3827cd369112a7e3c328807e1748db8da3df1661227d473d4cf019fb01e46
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-mingw64-ghcup-0.1.19.0.exe
|
||||
dlHash: c4e4a764b0844e351eb6939ff236452f33c34808aaca69f973ea82e18d3aa1ac
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *ghcup-64
|
||||
A_32:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &ghcup-32
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.22.0/i386-linux-ghcup-0.1.22.0
|
||||
dlHash: 1fd4fa989653a127d33f90cb4cc11fd024ea4085e795c0b0f6ed97afc5e8b634
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/i386-linux-ghcup-0.1.19.0
|
||||
dlHash: 0308ebed4431241ef2886a9d374feb20a795d97ef3a24dd38b6bc7dd69e81e53
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *ghcup-32
|
||||
A_ARM64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.22.0/aarch64-linux-ghcup-0.1.22.0
|
||||
dlHash: 3eda556959462579b73558616646c9fc01a583acc7a4611bb21a32706deae142
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/aarch64-linux-ghcup-0.1.19.0
|
||||
dlHash: a546dcd23a7e56f31bc4d6afad0276f88d3f0b850a3d3c36369721797dc3c3d5
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.22.0/aarch64-apple-darwin-ghcup-0.1.22.0
|
||||
dlHash: d39a8dbbd6d76ce87ad91cee6ecc9c680af5339ab25e8789af5b7e717564fc95
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/aarch64-apple-darwin-ghcup-0.1.19.0
|
||||
dlHash: 69bd8e37cd07606d928dca9215c066564a264e0def3c81171b76d5747dc6507c
|
||||
A_ARM:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.22.0/armv7-linux-ghcup-0.1.22.0
|
||||
dlHash: 7c66253e52c5fb627a4d4b203a69e69f4d7732348ad6a830a41d7e2d79a61c5d
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/armv7-linux-ghcup-0.1.19.0
|
||||
dlHash: 58a170c1fb0b4e701ebb40f90a23f6ababe9e61291726aad82e18d4649aed908
|
||||
HLS:
|
||||
1.1.0:
|
||||
viTags:
|
||||
|
Binary file not shown.
1738
ghcup-0.0.7.yaml
1738
ghcup-0.0.7.yaml
File diff suppressed because it is too large
Load Diff
Binary file not shown.
7486
ghcup-0.0.8.yaml
7486
ghcup-0.0.8.yaml
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@ -27,114 +27,16 @@ ghcupDownloads:
|
||||
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
|
||||
javascript-unknown-ghcjs-9.10.0.20240413:
|
||||
viPreInstall: |
|
||||
To use this bindist, you have to use emscripten version 3.1.57
|
||||
Also see: https://www.haskell.org/ghcup/guide/#ghc-js-cross-bindists-experimental
|
||||
wasm32-wasi-9.6.2.20230523:
|
||||
viTags:
|
||||
- base-4.20.0.0
|
||||
- base-4.18.0.0
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/ghc/javascript-unknown-ghcjs-9.10.0.20240413/ghc-javascript-unknown-ghcjs-9.10.0.20240413-x86_64-linux-rocky-8.9-2024-04-16-dc318739.tar.xz
|
||||
dlSubdir: ghc-9.10.0.20240413-javascript-unknown-ghcjs
|
||||
dlHash: dc318739b1ec4f1051dd4b38793b5fbc8eb4dea56b6177d1fe212edcf9e28b30
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/ghc/javascript-unknown-ghcjs-9.10.0.20240413/ghc-javascript-unknown-ghcjs-9.10.0.20240413-x86_64-darwin-2024-04-16-a819da18.tar.xz
|
||||
dlSubdir: ghc-9.10.0.20240413-javascript-unknown-ghcjs
|
||||
dlHash: a819da1875e9763da5732c37dc7f36eb6e9eb6d33ddc6ea11894df9cfa18a6ee
|
||||
A_ARM64:
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/ghc/javascript-unknown-ghcjs-9.10.0.20240413/ghc-javascript-unknown-ghcjs-9.10.0.20240413-aarch64-darwin-2024-04-16-c946719b.tar.xz
|
||||
dlSubdir: ghc-9.10.0.20240413-javascript-unknown-ghcjs
|
||||
dlHash: c946719b31f9249e899fdc15351b86a4297e66857ce4063743b1bcbd62cf9e0e
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/ghc/javascript-unknown-ghcjs-9.10.0.20240413/ghc-javascript-unknown-ghcjs-9.10.0.20240413-aarch64-linux-debian-12-2024-04-16-5f63452c.tar.xz
|
||||
dlSubdir: ghc-9.10.0.20240413-javascript-unknown-ghcjs
|
||||
dlHash: 5f63452c8bee2fcc1282645158bcd20bae7ff93181f3e5d5dc8b2aa8d15f4696
|
||||
wasm32-wasi-9.6.3.20230927:
|
||||
viTags:
|
||||
- base-4.18.1.0
|
||||
viPreInstall: &old-wasm-pre-install |
|
||||
To use this bindist, you need to use the commit c0aa3bb7d88bb6ec809210e17658dd1ed64ba66c of ghc-wasm-meta repository.
|
||||
Also see: https://www.haskell.org/ghcup/guide/#ghc-wasm-cross-bindists-experimental
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &ghc-wasm32-wasi-963-64-static
|
||||
dlHash: 2e1d363320c03e35fd9048a252a0cfed8f7b87da76c063c7fc52122c390f42c3
|
||||
dlSubdir: ghc-9.6.3.20230927-wasm32-wasi
|
||||
dlUri: https://github.com/amesgen/ghc-wasm-bindists/releases/download/20231001T201511/wasm32-wasi-ghc-9.6.tar.xz
|
||||
dlOutput: ghc-9.6.3.20230927-x86_64-linux-alpine3_12-cross_wasm32-wasi-release+fully_static.tar.xz
|
||||
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-963-64-static
|
||||
wasm32-wasi-9.6.4:
|
||||
viTags:
|
||||
- base-4.18.2.0
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &ghc-wasm32-wasi-964-64-static
|
||||
dlHash: 9eebb42c40d880ec777f729e24b9b52e8aa51d76994f386bd79893d065f5239a
|
||||
dlSubdir: ghc-9.6.4-wasm32-wasi
|
||||
dlUri: https://github.com/amesgen/ghc-wasm-bindists/releases/download/20240218T031934/wasm32-wasi-ghc-9.6.tar.xz
|
||||
dlOutput: ghc-9.6.4-x86_64-linux-alpine3_18-wasm-cross_wasm32-wasi-release+fully_static.tar.xz
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *ghc-wasm32-wasi-964-64-static
|
||||
wasm32-wasi-9.8.0.20230927:
|
||||
viTags:
|
||||
- base-4.19.0.0
|
||||
viPreInstall: *old-wasm-pre-install
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &ghc-wasm32-wasi-980-64-static
|
||||
dlHash: bad3393b6eba103230c62f050ffd9d458916c6238e5d5fa031d3eee5d995305a
|
||||
dlSubdir: ghc-9.8.0.20230927-wasm32-wasi
|
||||
dlUri: https://github.com/amesgen/ghc-wasm-bindists/releases/download/20231001T201511/wasm32-wasi-ghc-9.8.tar.xz
|
||||
dlOutput: ghc-9.8.0.20230927-x86_64-linux-alpine3_12-cross_wasm32-wasi-release+fully_static.tar.xz
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *ghc-wasm32-wasi-980-64-static
|
||||
wasm32-wasi-9.8.1:
|
||||
viTags:
|
||||
- base-4.19.0.0
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &ghc-wasm32-wasi-981-64-static
|
||||
dlHash: b1714d54468754e3a4353661bec883fef8b5d27398db53b5955753db7453da3e
|
||||
dlSubdir: ghc-9.8.1-wasm32-wasi
|
||||
dlUri: https://github.com/amesgen/ghc-wasm-bindists/releases/download/20240218T031934/wasm32-wasi-ghc-9.8.tar.xz
|
||||
dlOutput: ghc-9.8.1-x86_64-linux-alpine3_18-wasm-cross_wasm32-wasi-release+fully_static.tar.xz
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *ghc-wasm32-wasi-981-64-static
|
||||
wasm32-wasi-9.10.0.20240313:
|
||||
viTags:
|
||||
- base-4.20.0.0
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &ghc-wasm32-wasi-9101-64-static
|
||||
dlHash: e2ee5a0417f3617a93f8ca8df2b455c17e50dd5fb750b2fbe37e75982c3a4917
|
||||
dlSubdir: ghc-9.10.0.20240313-wasm32-wasi
|
||||
dlUri: https://github.com/amesgen/ghc-wasm-bindists/releases/download/20240318T183143/wasm32-wasi-ghc-9.10.tar.xz
|
||||
dlOutput: ghc-9.10.0.20240313-x86_64-linux-alpine3_18-wasm-cross_wasm32-wasi-release+fully_static.tar.xz
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *ghc-wasm32-wasi-9101-64-static
|
||||
wasm32-wasi-9.10.0.20240412:
|
||||
viTags:
|
||||
- base-4.20.0.0
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &ghc-wasm32-wasi-9101-a3-64-static
|
||||
dlHash: e7648d84f7948d53dcd6935a0358967dc8d5d68ee3a60c0706f4b5a94a0fb628
|
||||
dlSubdir: ghc-9.10.0.20240412-wasm32-wasi
|
||||
dlUri: https://github.com/amesgen/ghc-wasm-bindists/releases/download/20240414T232345/wasm32-wasi-ghc-9.10.tar.xz
|
||||
dlOutput: ghc-9.10.0.20240412-x86_64-linux-alpine3_18-wasm-cross_wasm32-wasi-release+fully_static.tar.xz
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *ghc-wasm32-wasi-9101-a3-64-static
|
||||
unknown_versioning: *ghc-wasm32-wasi-64-static
|
||||
|
Binary file not shown.
@ -105,43 +105,26 @@ inputP :: Parser Input
|
||||
inputP = fileInput <|> stdInput
|
||||
|
||||
data ValidateYAMLOpts = ValidateYAMLOpts
|
||||
{ vChannel :: DistributionChannel
|
||||
, vInput :: Maybe Input
|
||||
{ vInput :: Maybe Input
|
||||
}
|
||||
|
||||
validateYAMLOpts :: Parser ValidateYAMLOpts
|
||||
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')
|
||||
validateYAMLOpts = ValidateYAMLOpts <$> optional inputP
|
||||
|
||||
tarballFilterP :: Parser TarballFilter
|
||||
tarballFilterP = option readm $
|
||||
long "tarball-filter" <> short 'u' <> metavar "<tool>-<version>" <> value def
|
||||
<> help "Only check certain tarballs (format: <tool>-<version>)"
|
||||
where
|
||||
def = TarballFilter Nothing (makeRegex ("" :: String))
|
||||
def = TarballFilter (Right Nothing) (makeRegex ("" :: String))
|
||||
readm = do
|
||||
s <- str
|
||||
case span (/= '-') s of
|
||||
(_, []) -> fail "invalid format, missing '-' after the tool name"
|
||||
(t, v) | [tool] <- [ tool | tool <- [minBound..maxBound], low (show tool) == low t ] ->
|
||||
pure (TarballFilter $ Just tool) <*> makeRegexOptsM compIgnoreCase execBlank (drop 1 v)
|
||||
pure (TarballFilter $ Right $ Just tool) <*> makeRegexOptsM compIgnoreCase execBlank (drop 1 v)
|
||||
(t, v) | [tool] <- [ tool | tool <- [minBound..maxBound], low (show tool) == low t ] ->
|
||||
pure (TarballFilter $ Left tool) <*> makeRegexOptsM compIgnoreCase execBlank (drop 1 v)
|
||||
_ -> fail "invalid tool"
|
||||
low = fmap toLower
|
||||
|
||||
@ -204,7 +187,7 @@ main = do
|
||||
flip runReaderT leanAppstate $ logError $ T.pack $ prettyShow e
|
||||
liftIO $ exitWith (ExitFailure 2)
|
||||
|
||||
let appstate = AppState (Settings True 0 Lax False Never Curl True GHCupURL False GPGNone True Nothing (DM mempty)) dirs defaultKeyBindings (GHCupInfo mempty mempty Nothing) 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
|
||||
ValidateYAMLOpts { vInput = Nothing } ->
|
||||
@ -222,7 +205,7 @@ main = do
|
||||
|
||||
_ <- customExecParser (prefs showHelpOnError) (info (opts <**> helper) idm)
|
||||
>>= \Options {..} -> case optCommand of
|
||||
ValidateYAML vopts@ValidateYAMLOpts{ .. } -> withValidateYamlOpts vopts (validate vChannel)
|
||||
ValidateYAML vopts -> withValidateYamlOpts vopts validate
|
||||
ValidateTarballs vopts tarballFilter -> withValidateYamlOpts vopts (validateTarballs tarballFilter)
|
||||
GenerateHlsGhc vopts format output -> withValidateYamlOpts vopts (generateHLSGhc format output)
|
||||
GenerateToolTable vopts output -> withValidateYamlOpts vopts (generateTable output)
|
||||
|
@ -51,11 +51,6 @@ data ValidationError = InternalError String
|
||||
|
||||
instance Exception ValidationError
|
||||
|
||||
data DistributionChannel = MainChan
|
||||
| PrereleaseChan
|
||||
| NightlyChan
|
||||
deriving (Show, Eq)
|
||||
|
||||
|
||||
addError :: (MonadReader (IORef Int) m, MonadIO m, Monad m) => m ()
|
||||
addError = do
|
||||
@ -71,9 +66,8 @@ validate :: ( Monad m
|
||||
, MonadUnliftIO m
|
||||
, HasGHCupInfo env
|
||||
)
|
||||
=> DistributionChannel
|
||||
-> m ExitCode
|
||||
validate distroChannel = do
|
||||
=> m ExitCode
|
||||
validate = do
|
||||
GHCupInfo { _ghcupDownloads = dls } <- getGHCupInfo
|
||||
|
||||
ref <- liftIO $ newIORef 0
|
||||
@ -101,36 +95,33 @@ validate distroChannel = do
|
||||
lift $ logInfo "All good"
|
||||
pure ExitSuccess
|
||||
where
|
||||
checkHasRequiredPlatforms t v tags arch pspecs
|
||||
-- relax requirements for prerelease and nightly channels
|
||||
| distroChannel `elem` [PrereleaseChan, NightlyChan] = pure ()
|
||||
| otherwise = do
|
||||
let v' = prettyVer v
|
||||
arch' = prettyShow arch
|
||||
when (Linux UnknownLinux `notElem` pspecs) $ do
|
||||
lift $ logError $
|
||||
"Linux UnknownLinux missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
|
||||
addError
|
||||
when ((Darwin `notElem` pspecs) && arch == A_64) $ do
|
||||
lift $ logError $ "Darwin missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
|
||||
addError
|
||||
when ((FreeBSD `notElem` pspecs) && arch == A_64) $ lift $ logWarn $
|
||||
"FreeBSD missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
|
||||
when (Windows `notElem` pspecs && arch == A_64) $ do
|
||||
lift $ logError $ "Windows missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
|
||||
addError
|
||||
checkHasRequiredPlatforms t v tags arch pspecs = do
|
||||
let v' = prettyVer v
|
||||
arch' = prettyShow arch
|
||||
when (Linux UnknownLinux `notElem` pspecs) $ do
|
||||
lift $ logError $
|
||||
"Linux UnknownLinux missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
|
||||
addError
|
||||
when ((Darwin `notElem` pspecs) && arch == A_64) $ do
|
||||
lift $ logError $ "Darwin missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
|
||||
addError
|
||||
when ((FreeBSD `notElem` pspecs) && arch == A_64) $ lift $ logWarn $
|
||||
"FreeBSD missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
|
||||
when (Windows `notElem` pspecs && arch == A_64) $ do
|
||||
lift $ logError $ "Windows missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
|
||||
addError
|
||||
|
||||
-- alpine needs to be set explicitly, because
|
||||
-- we cannot assume that "Linux UnknownLinux" runs on Alpine
|
||||
-- (although it could be static)
|
||||
when (Linux Alpine `notElem` pspecs) $
|
||||
case t of
|
||||
GHCup | arch `elem` [A_64, A_32] -> lift (logError $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch)) >> addError
|
||||
Cabal | v > [vver|2.4.1.0|]
|
||||
, arch `elem` [A_64, A_32] -> lift (logError $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch)) >> addError
|
||||
GHC | Latest `elem` tags || Recommended `elem` tags
|
||||
, arch `elem` [A_64, A_32] -> lift (logError $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch))
|
||||
_ -> lift $ logWarn $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch)
|
||||
-- alpine needs to be set explicitly, because
|
||||
-- we cannot assume that "Linux UnknownLinux" runs on Alpine
|
||||
-- (although it could be static)
|
||||
when (Linux Alpine `notElem` pspecs) $
|
||||
case t of
|
||||
GHCup | arch `elem` [A_64, A_32] -> lift (logError $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch)) >> addError
|
||||
Cabal | v > [vver|2.4.1.0|]
|
||||
, arch `elem` [A_64, A_32] -> lift (logError $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch)) >> addError
|
||||
GHC | Latest `elem` tags || Recommended `elem` tags
|
||||
, arch `elem` [A_64, A_32] -> lift (logError $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch))
|
||||
_ -> lift $ logWarn $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch)
|
||||
|
||||
checkUniqueTags tool = do
|
||||
GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo
|
||||
@ -154,15 +145,12 @@ validate distroChannel = do
|
||||
lift $ logError $ "Tags not unique for " <> T.pack (prettyShow tool) <> ": " <> T.pack (prettyShow xs)
|
||||
addError
|
||||
where
|
||||
isUniqueTag Latest = True
|
||||
isUniqueTag Recommended = True
|
||||
isUniqueTag Old = False
|
||||
isUniqueTag Prerelease = False
|
||||
isUniqueTag LatestPrerelease = True
|
||||
isUniqueTag Nightly = False
|
||||
isUniqueTag LatestNightly = True
|
||||
isUniqueTag (Base _) = False
|
||||
isUniqueTag (UnknownTag _) = False
|
||||
isUniqueTag Latest = True
|
||||
isUniqueTag Recommended = True
|
||||
isUniqueTag Old = False
|
||||
isUniqueTag Prerelease = False
|
||||
isUniqueTag (Base _) = False
|
||||
isUniqueTag (UnknownTag _) = False
|
||||
|
||||
checkGHCVerIsValid = do
|
||||
GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo
|
||||
@ -178,21 +166,12 @@ validate distroChannel = do
|
||||
checkMandatoryTags tool = do
|
||||
GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo
|
||||
let allTags = _viTags =<< M.elems (availableToolVersions dls tool)
|
||||
forM_ (mandatoryTags tool) $ \t -> case t `elem` allTags of
|
||||
forM_ [Latest, Recommended] $ \t -> case t `elem` allTags of
|
||||
False -> do
|
||||
lift $ logError $ "Tag " <> T.pack (prettyShow t) <> " missing from " <> T.pack (prettyShow tool)
|
||||
addError
|
||||
True -> pure ()
|
||||
|
||||
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
|
||||
checkGHCHasBaseVersion = do
|
||||
GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo
|
||||
@ -207,7 +186,7 @@ validate distroChannel = do
|
||||
isBase _ = False
|
||||
|
||||
data TarballFilter = TarballFilter
|
||||
{ tfTool :: Maybe Tool
|
||||
{ tfTool :: Either GlobalTool (Maybe Tool)
|
||||
, tfVersion :: Regex
|
||||
}
|
||||
|
||||
@ -226,16 +205,20 @@ validateTarballs :: ( Monad m
|
||||
)
|
||||
=> TarballFilter
|
||||
-> m ExitCode
|
||||
validateTarballs (TarballFilter mtool versionRegex) = do
|
||||
GHCupInfo { _ghcupDownloads = dls } <- getGHCupInfo
|
||||
validateTarballs (TarballFilter etool versionRegex) = do
|
||||
GHCupInfo { _ghcupDownloads = dls, _globalTools = gt } <- getGHCupInfo
|
||||
ref <- liftIO $ newIORef 0
|
||||
|
||||
-- download/verify all tarballs
|
||||
let dlis = nubOrd $ dls ^.. each %& indices (maybe (const True) (==) mtool)
|
||||
%> each %& indices (matchTest versionRegex . T.unpack . prettyVer . _tvVersion)
|
||||
% (viTestDL % _Just `summing` viSourceDL % _Just `summing` viArch % each % each % each)
|
||||
when (null dlis) $ logError "no tarballs selected by filter" *> runReaderT addError ref
|
||||
forM_ dlis (downloadAll ref)
|
||||
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 allDls = either (const gdlis) (const dlis) etool
|
||||
when (null allDls) $ logError "no tarballs selected by filter" *> runReaderT addError ref
|
||||
forM_ allDls (downloadAll ref)
|
||||
|
||||
-- exit
|
||||
e <- liftIO $ readIORef ref
|
||||
@ -269,16 +252,20 @@ validateTarballs (TarballFilter mtool versionRegex) = do
|
||||
, ContentLengthError
|
||||
]
|
||||
$ do
|
||||
case mtool of
|
||||
(Just GHCup) -> do
|
||||
case etool of
|
||||
Right (Just GHCup) -> do
|
||||
tmpUnpack <- lift mkGhcupTmpDir
|
||||
_ <- liftE $ download (_dlUri dli) Nothing (Just (_dlHash dli)) Nothing (fromGHCupPath tmpUnpack) Nothing False
|
||||
pure Nothing
|
||||
_ -> do
|
||||
Right _ -> do
|
||||
p <- liftE $ downloadCached dli Nothing
|
||||
fmap Just $ liftE
|
||||
. getArchiveFiles
|
||||
$ p
|
||||
Left ShimGen -> do
|
||||
tmpUnpack <- lift mkGhcupTmpDir
|
||||
_ <- liftE $ download (_dlUri dli) Nothing (Just (_dlHash dli)) Nothing (fromGHCupPath tmpUnpack) Nothing False
|
||||
pure Nothing
|
||||
case r of
|
||||
VRight (Just entries) -> do
|
||||
case _dlSubdir dli of
|
||||
|
@ -52,7 +52,7 @@ executable ghcup-gen
|
||||
, deepseq ^>=1.4
|
||||
, filepath ^>=1.4.2.1
|
||||
, ghcup ^>=0.1.19.0
|
||||
, haskus-utils-variant ^>=3.3
|
||||
, haskus-utils-variant ^>=3.2
|
||||
, libarchive ^>=3.0.3.0
|
||||
, megaparsec >=8.0.0 && <9.3
|
||||
, mtl ^>=2.2
|
||||
@ -65,5 +65,5 @@ executable ghcup-gen
|
||||
, safe-exceptions ^>=0.1
|
||||
, text ^>=2.0
|
||||
, transformers ^>=0.5
|
||||
, versions >=6.0.0
|
||||
, versions >=4.0.1 && <5.1
|
||||
, yaml-streamly ^>=0.12.0
|
||||
|
@ -13,11 +13,11 @@ ghcupDownloads:
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &cabal-3720-64
|
||||
unknown_versioning: &cabal-3720-32
|
||||
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/3.7.0.0-pre20220407/cabal-install-3.7-x86_64-linux-alpine.tar.xz
|
||||
dlHash: c9e28e1578dfb851918e523040cb0f913df747fe95e24d089bcf7cd821c21885
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *cabal-3720-64
|
||||
unknown_versioning: *cabal-3720-32
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/3.7.0.0-pre20220407/cabal-install-3.7-x86_64-darwin.tar.xz
|
||||
@ -59,11 +59,11 @@ ghcupDownloads:
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &cabal-3810-64
|
||||
unknown_versioning: &cabal-3810-32
|
||||
dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.8.1.0-rc1/cabal-install-3.8.0.20220526-x86_64-linux-alpine.tar.xz
|
||||
dlHash: a4e6cb7990d7150c4e64cbd3ebd0a62fb6b00f96f0f9bc3fb751ff6d1f898fdb
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *cabal-3810-64
|
||||
unknown_versioning: *cabal-3810-32
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.8.1.0-rc1/cabal-install-3.8.0.20220526-x86_64-darwin.tar.xz
|
||||
@ -100,11 +100,11 @@ ghcupDownloads:
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &cabal-3900-64
|
||||
unknown_versioning: &cabal-3900-32
|
||||
dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.9.0.0/cabal-install-3.9-x86_64-linux-alpine.tar.xz
|
||||
dlHash: 0374716dc33f255e1fb9ec38d83fdd3a3dc81ecf38af0a94b8ab0e1ba1a1ac1c
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *cabal-3900-64
|
||||
unknown_versioning: *cabal-3900-32
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.9.0.0/cabal-install-3.9-x86_64-darwin.tar.xz
|
||||
@ -210,7 +210,7 @@ ghcupDownloads:
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.4.1-alpha2/ghc-9.4.0.20220523-src.tar.xz
|
||||
dlSubdir: ghc-9.4.0.20220523
|
||||
dlHash: 3bcac9a2043bbc99cd8113547d92fdcad7d7bb4c286a9222ccbcbd4b4a26b635
|
||||
viPostRemove: *ghc-post-remove
|
||||
viPostRemove: &ghc-post-remove "After removing GHC you might also want to clean up your cabal store at: ~/.cabal/store/ghc-<ghcver>"
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_Debian:
|
||||
@ -549,11 +549,11 @@ ghcupDownloads:
|
||||
viArch:
|
||||
A_32:
|
||||
Linux_Debian:
|
||||
<10: &ghc-961alpha2-32-deb9
|
||||
<10: &ghc-961alpha2-64-deb9
|
||||
dlHash: e2f3e622f1aecfe0b6a305d0fb997e83453ecbc2949cb2b393549e35f2b062e1
|
||||
dlSubdir: ghc-9.6.0.20230128-i386-unknown-linux
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.6.0.20230128/ghc-9.6.0.20230128-i386-deb9-linux.tar.xz
|
||||
unknown_versioning: *ghc-961alpha2-32-deb9
|
||||
unknown_versioning: *ghc-961alpha2-64-deb9
|
||||
A_64:
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
@ -1290,7 +1290,7 @@ ghcupDownloads:
|
||||
dlSubdir: ghc-9.8.0.20230919
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.8.0.20230919/ghc-9.8.0.20230919-src.tar.xz
|
||||
viTags:
|
||||
- Prerelease
|
||||
- LatestPrerelease
|
||||
- base-4.19.0.0
|
||||
viTestDL:
|
||||
dlHash: a586567b51ce856d15cc4bdde2316aa0aaf7381d80896d2fdcc4f13757b303e6
|
||||
@ -1298,121 +1298,6 @@ ghcupDownloads:
|
||||
dlSubdir: ghc-9.8.0.20230919
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.8.0.20230919/ghc-9.8.0.20230919-src.tar.xz
|
||||
|
||||
9.8.0.20230929:
|
||||
viArch:
|
||||
A_32:
|
||||
Linux_Debian:
|
||||
unknown_versioning: &ghc-981rc1-i386-deb10
|
||||
dlHash: 972ecaadafff7d4a65fa5c328d4f9b5210001c75534f3ba123fe51039643ab09
|
||||
dlOutput: ghc-9.8.0.20230929-i386-linux-deb10.tar.xz
|
||||
dlSubdir: ghc-9.8.0.20230929-i386-unknown-linux
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.8.0.20230929/ghc-9.8.0.20230929-i386-deb10-linux.tar.xz
|
||||
Linux_Mint:
|
||||
unknown_versioning: *ghc-981rc1-i386-deb10
|
||||
Linux_Ubuntu:
|
||||
unknown_versioning: *ghc-981rc1-i386-deb10
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: *ghc-981rc1-i386-deb10
|
||||
A_64:
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlHash: 95ff4a6fe3202e14311bfd22b2ef166d47e8cc8a848cf9cfd5d66734e4dac919
|
||||
dlOutput: ghc-9.8.0.20230929-x86_64-darwin.tar.xz
|
||||
dlSubdir: ghc-9.8.0.20230929-x86_64-apple-darwin
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.8.0.20230929/ghc-9.8.0.20230929-x86_64-apple-darwin.tar.xz
|
||||
Linux_Alpine:
|
||||
unknown_versioning:
|
||||
dlHash: 4f73dbe0967d831252744d59a238d4a49aa474ea04b4cc8683fe06847f6b071d
|
||||
dlOutput: ghc-9.8.0.20230929-x86_64-linux-alpine3_12.tar.xz
|
||||
dlSubdir: ghc-9.8.0.20230929-x86_64-unknown-linux
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.8.0.20230929/ghc-9.8.0.20230929-x86_64-alpine3_12-linux.tar.xz
|
||||
Linux_CentOS:
|
||||
( >= 7 && < 8 ): &ghc-981rc1-x86_64-centos7
|
||||
dlHash: ca3526b013b9889f4b43074dcdb0cc213facb55db9f0e6de9c2365bb0365b664
|
||||
dlOutput: ghc-9.8.0.20230929-x86_64-linux-centos7.tar.xz
|
||||
dlSubdir: ghc-9.8.0.20230929-x86_64-unknown-linux
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.8.0.20230929/ghc-9.8.0.20230929-x86_64-centos7-linux.tar.xz
|
||||
unknown_versioning: *ghc-981rc1-x86_64-centos7
|
||||
Linux_Debian:
|
||||
(>= 10 && < 11):
|
||||
dlHash: abd39667c4227614c3f2c6a58a911837eb08f2664ca8dcc06389f6e2fe88d576
|
||||
dlOutput: ghc-9.8.0.20230929-x86_64-linux-deb10.tar.xz
|
||||
dlSubdir: ghc-9.8.0.20230929-x86_64-unknown-linux
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.8.0.20230929/ghc-9.8.0.20230929-x86_64-deb10-linux.tar.xz
|
||||
< 10:
|
||||
dlHash: 9d5c85c58b4f35125c6ff62974e935d035ff42ef7e4bb366007982127f9b4312
|
||||
dlOutput: ghc-9.8.0.20230929-x86_64-linux-deb9.tar.xz
|
||||
dlSubdir: ghc-9.8.0.20230929-x86_64-unknown-linux
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.8.0.20230929/ghc-9.8.0.20230929-x86_64-deb9-linux.tar.xz
|
||||
'>= 11': &ghc-981rc1-x86_64-deb11
|
||||
dlHash: 4be779e74afb510de27f7d9ed3b2a63044e678d2bdf8356a42f2232dcd4bc332
|
||||
dlOutput: ghc-9.8.0.20230929-x86_64-linux-deb11.tar.xz
|
||||
dlSubdir: ghc-9.8.0.20230929-x86_64-unknown-linux
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.8.0.20230929/ghc-9.8.0.20230929-x86_64-deb11-linux.tar.xz
|
||||
unknown_versioning: *ghc-981rc1-x86_64-deb11
|
||||
Linux_Fedora:
|
||||
'>= 33':
|
||||
dlHash: a85cfaee4b3d3a9900282a01f473e5520e31c405cd3319a30a8ab06321cd90e0
|
||||
dlOutput: ghc-9.8.0.20230929-x86_64-linux-fedora33.tar.xz
|
||||
dlSubdir: ghc-9.8.0.20230929-x86_64-unknown-linux
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.8.0.20230929/ghc-9.8.0.20230929-x86_64-fedora33-linux.tar.xz
|
||||
unknown_versioning: *ghc-981rc1-x86_64-centos7
|
||||
Linux_Mint:
|
||||
< 20: &ghc-981rc1-x86_64-ubuntu18_04
|
||||
dlHash: d07a57858490dfa5ed1299939eacf068f52603b4ab55a5cc68b3fe19b0bb81da
|
||||
dlOutput: ghc-9.8.0.20230929-x86_64-linux-ubuntu18_04.tar.xz
|
||||
dlSubdir: ghc-9.8.0.20230929-x86_64-unknown-linux
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.8.0.20230929/ghc-9.8.0.20230929-x86_64-ubuntu18_04-linux.tar.xz
|
||||
'>= 20': &ghc-981rc1-x86_64-ubuntu20_04
|
||||
dlHash: 433e70733015c64fd967ee2f6c93ac519a0a72455463dac76030a8b2aa54c021
|
||||
dlOutput: ghc-9.8.0.20230929-x86_64-linux-ubuntu20_04.tar.xz
|
||||
dlSubdir: ghc-9.8.0.20230929-x86_64-unknown-linux
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.8.0.20230929/ghc-9.8.0.20230929-x86_64-ubuntu20_04-linux.tar.xz
|
||||
Linux_RedHat:
|
||||
unknown_versioning: *ghc-981rc1-x86_64-centos7
|
||||
Linux_Ubuntu:
|
||||
( >= 16 && < 19 ): *ghc-981rc1-x86_64-ubuntu18_04
|
||||
unknown_versioning: *ghc-981rc1-x86_64-ubuntu20_04
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning:
|
||||
dlHash: aaaeb2c1a0bc111676b240bb171e622532cafab2b8d9fb98da181d8df799cf32
|
||||
dlOutput: ghc-9.8.0.20230929-x86_64-linux-rocky8.tar.xz
|
||||
dlSubdir: ghc-9.8.0.20230929-x86_64-unknown-linux
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.8.0.20230929/ghc-9.8.0.20230929-x86_64-rocky8-linux.tar.xz
|
||||
Windows:
|
||||
unknown_versioning:
|
||||
dlHash: 89960b8e52b21c455369025a6ba9f7445ad763cd8ea924771ef65052d3b0caf6
|
||||
dlOutput: ghc-9.8.0.20230929-x86_64-windows.tar.xz
|
||||
dlSubdir: ghc-9.8.0.20230929-x86_64-unknown-mingw32
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.8.0.20230929/ghc-9.8.0.20230929-x86_64-unknown-mingw32.tar.xz
|
||||
A_ARM64:
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlHash: 62f66aa167ff08e862549750511fe4c7a1b789ac82a1203e5154ddaa62e0a0e6
|
||||
dlOutput: ghc-9.8.0.20230929-aarch64-darwin.tar.xz
|
||||
dlSubdir: ghc-9.8.0.20230929-aarch64-apple-darwin
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.8.0.20230929/ghc-9.8.0.20230929-aarch64-apple-darwin.tar.xz
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning:
|
||||
dlHash: cf212fc580fd881dbf80c8a2d7df355cc8728c94b8bab2217a3257247d4b459a
|
||||
dlOutput: ghc-9.8.0.20230929-aarch64-linux-deb10.tar.xz
|
||||
dlSubdir: ghc-9.8.0.20230929-aarch64-unknown-linux
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.8.0.20230929/ghc-9.8.0.20230929-aarch64-deb10-linux.tar.xz
|
||||
viChangeLog: https://downloads.haskell.org/~ghc/9.8.0.20230929/docs/users_guide/9.8.1-notes.html
|
||||
viReleaseDay: '2023-09-29'
|
||||
viSourceDL:
|
||||
dlHash: 93bda13ca9e612210147210c23c2d565b9a4cfafa0f4d8a033ec533a8d07fd4b
|
||||
dlOutput: ghc-9.8.0.20230929-src.tar.xz
|
||||
dlSubdir: ghc-9.8.0.20230929
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.8.0.20230929/ghc-9.8.0.20230929-src.tar.xz
|
||||
viTags:
|
||||
- LatestPrerelease
|
||||
- base-4.19.0.0
|
||||
viTestDL:
|
||||
dlHash: b0afd2912ba91914519739907ede6008857871668a138829410d72948c3c359e
|
||||
dlOutput: ghc-9.8.0.20230929-testsuite.tar.xz
|
||||
dlSubdir: ghc-9.8.0.20230929
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.8.0.20230929/ghc-9.8.0.20230929-src.tar.xz
|
||||
|
||||
Stack:
|
||||
2.9.2.1:
|
||||
@ -1490,8 +1375,7 @@ ghcupDownloads:
|
||||
RegexDir: "stack-.*"
|
||||
2.13.0.1:
|
||||
viTags:
|
||||
- Prerelease
|
||||
- old
|
||||
- LatestPrerelease
|
||||
viChangeLog: https://github.com/commercialhaskell/stack/blob/rc/v2.13/ChangeLog.md#v21301-release-candidate
|
||||
viArch:
|
||||
A_64:
|
||||
@ -1528,122 +1412,55 @@ ghcupDownloads:
|
||||
dlHash: 9c3b957c7c8b1c5c09e0251907372563b48d5869c31e35be43916736f679535d
|
||||
dlSubdir:
|
||||
RegexDir: "stack-.*"
|
||||
2.15.0.1:
|
||||
|
||||
GHCup:
|
||||
0.1.19.5:
|
||||
viTags:
|
||||
- Prerelease
|
||||
- old
|
||||
viChangeLog: https://github.com/commercialhaskell/stack/blob/rc/v2.15/ChangeLog.md#v21501-release-candidate---2024-01-27
|
||||
- Latest
|
||||
- Recommended
|
||||
viChangeLog: https://github.com/haskell/ghcup-hs/blob/master/CHANGELOG.md
|
||||
viSourceDL:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.5/ghcup-0.1.19.5-src.tar.gz
|
||||
dlSubdir: ghcup-0.1.19.5
|
||||
dlHash: abfb1f18201c77bcebae6a0282844df2cc644427270a8df9af341901211f7b9c
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &stack-21501-64
|
||||
dlUri: https://github.com/commercialhaskell/stack/releases/download/rc/v2.15.0.1/stack-2.15.0.1-linux-x86_64.tar.gz
|
||||
dlHash: f59b41418b2c12f1ac643b1c8c8caa9e4936d2c5a35593e67d7243d97a1de948
|
||||
dlSubdir:
|
||||
RegexDir: "stack-.*"
|
||||
unknown_versioning: &ghcup-64
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.5/x86_64-linux-ghcup-0.1.19.5
|
||||
dlHash: 2d07c7c64d9eb472d85210c27c4489931804fd753a99724d1df740dbf1bfc5a5
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://github.com/commercialhaskell/stack/releases/download/rc/v2.15.0.1/stack-2.15.0.1-osx-x86_64.tar.gz
|
||||
dlHash: 7cbdb14060f19eefeff56d7d4887db0a1c5ade6bcd1d05abff5e5d819e4945f0
|
||||
dlSubdir:
|
||||
RegexDir: "stack-.*"
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.5/x86_64-apple-darwin-ghcup-0.1.19.5
|
||||
dlHash: bde41f049e795e086c1ee27a4ae0629285c56bdf041f039e798f77481a133202
|
||||
FreeBSD:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.5/x86_64-portbld-freebsd-ghcup-0.1.19.5
|
||||
dlHash: 6b743f440f6bf9e4525acec2bd360d8a07af06925a74d0d960b9fe7c8c90b176
|
||||
Windows:
|
||||
unknown_versioning:
|
||||
dlUri: https://github.com/commercialhaskell/stack/releases/download/rc/v2.15.0.1/stack-2.15.0.1-windows-x86_64.tar.gz
|
||||
dlHash: f23f45c47228f98df47da4613df87f2ee5b55edcf4e466a1d7b3aced2161a7d0
|
||||
dlSubdir:
|
||||
RegexDir: "stack-.*"
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.5/x86_64-mingw64-ghcup-0.1.19.5.exe
|
||||
dlHash: 085fc717bcea786034133c5028e5c3e5d46da341787bb267482996e97d076c88
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *stack-21501-64
|
||||
unknown_versioning: *ghcup-64
|
||||
A_32:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &ghcup-32
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.5/i386-linux-ghcup-0.1.19.5
|
||||
dlHash: 9bb0870ae4b4fd0d4d18982f4aa88749018aed81479e51070478f699ed9a85e0
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *ghcup-32
|
||||
A_ARM64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning:
|
||||
dlUri: https://github.com/commercialhaskell/stack/releases/download/rc/v2.15.0.1/stack-2.15.0.1-linux-aarch64.tar.gz
|
||||
dlHash: 087b9b02e318ba28cbbd13b512da0758e2522016e260e2b2a3d076148225972e
|
||||
dlSubdir:
|
||||
RegexDir: "stack-.*"
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.5/aarch64-linux-ghcup-0.1.19.5
|
||||
dlHash: cea78d9189be6fd62519c9d450654e7dd4e0923a7834c38b0539ba9264c6762e
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://github.com/commercialhaskell/stack/releases/download/rc/v2.15.0.1/stack-2.15.0.1-osx-aarch64.tar.gz
|
||||
dlHash: 2c5fb2efcf646287aa91d3a1d6f8d08129734bc3e0c50d6756aba81b9309d7c1
|
||||
dlSubdir:
|
||||
RegexDir: "stack-.*"
|
||||
2.15.4.1:
|
||||
viTags:
|
||||
- Prerelease
|
||||
- old
|
||||
viChangeLog: https://github.com/commercialhaskell/stack/blob/rc/v2.15/ChangeLog.md#v21541-release-candidate---2024-03-20
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &stack-21541-64
|
||||
dlUri: https://github.com/commercialhaskell/stack/releases/download/rc/v2.15.4.1/stack-2.15.4.1-linux-x86_64.tar.gz
|
||||
dlHash: 4bb514147384329b16d7aa7ddf394336b18364456f86e6235ad620e6cba3e168
|
||||
dlSubdir:
|
||||
RegexDir: "stack-.*"
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://github.com/commercialhaskell/stack/releases/download/rc/v2.15.4.1/stack-2.15.4.1-osx-x86_64.tar.gz
|
||||
dlHash: 49c442e5c51dc89fd47b6c914539822cb1bca67d968b6cc96d5b3d39d8fdfe66
|
||||
dlSubdir:
|
||||
RegexDir: "stack-.*"
|
||||
Windows:
|
||||
unknown_versioning:
|
||||
dlUri: https://github.com/commercialhaskell/stack/releases/download/rc/v2.15.4.1/stack-2.15.4.1-windows-x86_64.tar.gz
|
||||
dlHash: 3a1dafff2b91dacfc71803bb0c76d1e8d6a55ad3d5f14f4aa17e0de6b2207d2e
|
||||
dlSubdir:
|
||||
RegexDir: "stack-.*"
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *stack-21541-64
|
||||
A_ARM64:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.5/aarch64-apple-darwin-ghcup-0.1.19.5
|
||||
dlHash: 4dafad0be3314372e2d312ee4ff3999060826ed1b53678dc2fb8715ee4bb4c53
|
||||
A_ARM:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning:
|
||||
dlUri: https://github.com/commercialhaskell/stack/releases/download/rc/v2.15.4.1/stack-2.15.4.1-linux-aarch64.tar.gz
|
||||
dlHash: 72094efade888f63c2b0709886899ba76c2101941efeccd5dd770cb36c5a350f
|
||||
dlSubdir:
|
||||
RegexDir: "stack-.*"
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://github.com/commercialhaskell/stack/releases/download/rc/v2.15.4.1/stack-2.15.4.1-osx-aarch64.tar.gz
|
||||
dlHash: 1361f068a3ccfec59a6290f94ebfe38d42dd368b8e6c937375d9e3ec3cbdbc1e
|
||||
dlSubdir:
|
||||
RegexDir: "stack-.*"
|
||||
2.15.6.1:
|
||||
viTags:
|
||||
- LatestPrerelease
|
||||
viChangeLog: https://github.com/commercialhaskell/stack/blob/rc/v2.15/ChangeLog.md#v21561-release-candidate
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &stack-21561-64
|
||||
dlUri: https://github.com/commercialhaskell/stack/releases/download/rc/v2.15.6.1/stack-2.15.6.1-linux-x86_64.tar.gz
|
||||
dlHash: 34f67ae9868d80a6afb152ccd89bebde2f6140cdda262f9ec4690366398fb360
|
||||
dlSubdir:
|
||||
RegexDir: "stack-.*"
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://github.com/commercialhaskell/stack/releases/download/rc/v2.15.6.1/stack-2.15.6.1-osx-x86_64.tar.gz
|
||||
dlHash: f705ebf804a8837cdfd017838e4e2f2b4fc5866cc5f631e2a90e5f28512cc7e4
|
||||
dlSubdir:
|
||||
RegexDir: "stack-.*"
|
||||
Windows:
|
||||
unknown_versioning:
|
||||
dlUri: https://github.com/commercialhaskell/stack/releases/download/rc/v2.15.6.1/stack-2.15.6.1-windows-x86_64.tar.gz
|
||||
dlHash: 839f62c7bff7f8b385f9cbbb4fe758bfadbd71acca54b1ee92f1aa8fce82a33e
|
||||
dlSubdir:
|
||||
RegexDir: "stack-.*"
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *stack-21561-64
|
||||
A_ARM64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning:
|
||||
dlUri: https://github.com/commercialhaskell/stack/releases/download/rc/v2.15.6.1/stack-2.15.6.1-linux-aarch64.tar.gz
|
||||
dlHash: ee40ea016655570d4b91d4f0629e5e1161e0774efce060455f11b73d86b69e38
|
||||
dlSubdir:
|
||||
RegexDir: "stack-.*"
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://github.com/commercialhaskell/stack/releases/download/rc/v2.15.6.1/stack-2.15.6.1-osx-aarch64.tar.gz
|
||||
dlHash: f532383713e247340cea2f3e4666b1d1a2839f31f6c380bb3d0367c8145a512c
|
||||
dlSubdir:
|
||||
RegexDir: "stack-.*"
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.5/armv7-linux-ghcup-0.1.19.5
|
||||
dlHash: 46147824b921b61e3161e03c638a8ff684667ea1d877df0e06721c4b2149cd5f
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@ -1343,345 +1343,5 @@
|
||||
"9.6.3"
|
||||
]
|
||||
}
|
||||
},
|
||||
"2.4.0.0": {
|
||||
"A_64": {
|
||||
"Darwin": [
|
||||
"9.0.2",
|
||||
"9.2.8",
|
||||
"9.4.7",
|
||||
"9.6.3",
|
||||
"9.8.1"
|
||||
],
|
||||
"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.3",
|
||||
"9.8.1"
|
||||
],
|
||||
"Linux_Debian": [
|
||||
"9.0.2",
|
||||
"9.2.8",
|
||||
"9.4.7",
|
||||
"9.6.3",
|
||||
"9.8.1"
|
||||
],
|
||||
"Linux_Fedora": [
|
||||
"9.0.2",
|
||||
"9.2.8",
|
||||
"9.4.7",
|
||||
"9.6.3",
|
||||
"9.8.1"
|
||||
],
|
||||
"Linux_Mint": [
|
||||
"9.0.2",
|
||||
"9.2.8",
|
||||
"9.4.7",
|
||||
"9.6.3",
|
||||
"9.8.1"
|
||||
],
|
||||
"Linux_RedHat": [
|
||||
"9.0.2",
|
||||
"9.2.8",
|
||||
"9.4.7",
|
||||
"9.6.3",
|
||||
"9.8.1"
|
||||
],
|
||||
"Linux_Ubuntu": [
|
||||
"9.0.2",
|
||||
"9.2.8",
|
||||
"9.4.7",
|
||||
"9.6.3",
|
||||
"9.8.1"
|
||||
],
|
||||
"Linux_UnknownLinux": [
|
||||
"9.0.2",
|
||||
"9.2.8",
|
||||
"9.4.7",
|
||||
"9.6.3",
|
||||
"9.8.1"
|
||||
],
|
||||
"Windows": [
|
||||
"9.0.2",
|
||||
"9.2.8",
|
||||
"9.4.7",
|
||||
"9.6.3",
|
||||
"9.8.1"
|
||||
]
|
||||
},
|
||||
"A_ARM64": {
|
||||
"Darwin": [
|
||||
"9.2.8",
|
||||
"9.4.7",
|
||||
"9.6.3",
|
||||
"9.8.1"
|
||||
],
|
||||
"Linux_UnknownLinux": [
|
||||
"9.0.2",
|
||||
"9.2.8",
|
||||
"9.4.7",
|
||||
"9.6.3",
|
||||
"9.8.1"
|
||||
]
|
||||
}
|
||||
},
|
||||
"2.5.0.0": {
|
||||
"A_64": {
|
||||
"Darwin": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.3",
|
||||
"9.8.1"
|
||||
],
|
||||
"FreeBSD": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.3",
|
||||
"9.8.1"
|
||||
],
|
||||
"Linux_CentOS": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.3",
|
||||
"9.8.1"
|
||||
],
|
||||
"Linux_Debian": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.3",
|
||||
"9.8.1"
|
||||
],
|
||||
"Linux_Fedora": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.3",
|
||||
"9.8.1"
|
||||
],
|
||||
"Linux_Mint": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.3",
|
||||
"9.8.1"
|
||||
],
|
||||
"Linux_RedHat": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.3",
|
||||
"9.8.1"
|
||||
],
|
||||
"Linux_Ubuntu": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.3",
|
||||
"9.8.1"
|
||||
],
|
||||
"Linux_UnknownLinux": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.3",
|
||||
"9.8.1"
|
||||
],
|
||||
"Windows": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.3",
|
||||
"9.8.1"
|
||||
]
|
||||
},
|
||||
"A_ARM64": {
|
||||
"Darwin": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.3",
|
||||
"9.8.1"
|
||||
],
|
||||
"Linux_UnknownLinux": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.3",
|
||||
"9.8.1"
|
||||
]
|
||||
}
|
||||
},
|
||||
"2.6.0.0": {
|
||||
"A_64": {
|
||||
"Darwin": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.4",
|
||||
"9.8.1"
|
||||
],
|
||||
"FreeBSD": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.4",
|
||||
"9.8.1"
|
||||
],
|
||||
"Linux_Alpine": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.4",
|
||||
"9.8.1"
|
||||
],
|
||||
"Linux_CentOS": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.4",
|
||||
"9.8.1"
|
||||
],
|
||||
"Linux_Debian": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.4",
|
||||
"9.8.1"
|
||||
],
|
||||
"Linux_Fedora": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.4",
|
||||
"9.8.1"
|
||||
],
|
||||
"Linux_Mint": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.4",
|
||||
"9.8.1"
|
||||
],
|
||||
"Linux_RedHat": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.4",
|
||||
"9.8.1"
|
||||
],
|
||||
"Linux_Ubuntu": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.4",
|
||||
"9.8.1"
|
||||
],
|
||||
"Linux_UnknownLinux": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.4",
|
||||
"9.8.1"
|
||||
],
|
||||
"Windows": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.4",
|
||||
"9.8.1"
|
||||
]
|
||||
},
|
||||
"A_ARM64": {
|
||||
"Darwin": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.4",
|
||||
"9.8.1"
|
||||
],
|
||||
"Linux_UnknownLinux": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.4",
|
||||
"9.8.1"
|
||||
]
|
||||
}
|
||||
},
|
||||
"2.7.0.0": {
|
||||
"A_64": {
|
||||
"Darwin": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.4",
|
||||
"9.8.2"
|
||||
],
|
||||
"FreeBSD": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.4",
|
||||
"9.8.2"
|
||||
],
|
||||
"Linux_Alpine": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.4",
|
||||
"9.8.2"
|
||||
],
|
||||
"Linux_CentOS": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.4",
|
||||
"9.8.2"
|
||||
],
|
||||
"Linux_Debian": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.4",
|
||||
"9.8.2"
|
||||
],
|
||||
"Linux_Fedora": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.4",
|
||||
"9.8.2"
|
||||
],
|
||||
"Linux_Mint": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.4",
|
||||
"9.8.2"
|
||||
],
|
||||
"Linux_RedHat": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.4",
|
||||
"9.8.2"
|
||||
],
|
||||
"Linux_Rocky": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.4",
|
||||
"9.8.2"
|
||||
],
|
||||
"Linux_Ubuntu": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.4",
|
||||
"9.8.2"
|
||||
],
|
||||
"Linux_UnknownLinux": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.4",
|
||||
"9.8.2"
|
||||
],
|
||||
"Windows": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.4",
|
||||
"9.8.2"
|
||||
]
|
||||
},
|
||||
"A_ARM64": {
|
||||
"Darwin": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.4",
|
||||
"9.8.2"
|
||||
],
|
||||
"Linux_UnknownLinux": [
|
||||
"9.2.8",
|
||||
"9.4.8",
|
||||
"9.6.4",
|
||||
"9.8.2"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user