Compare commits

...

32 Commits

Author SHA1 Message Date
53148fd1c9 Release 0.1.7 2020-07-20 22:25:28 +02:00
8985101b2a Use 8.8.4 for test build 2020-07-20 22:25:09 +02:00
d1949c8490 Use available bindists for release build 2020-07-20 22:24:21 +02:00
b7faae1203 Add more alpine bindists 2020-07-20 22:20:24 +02:00
b6a9d35c3e Merge branch 'alpine-bindists' 2020-07-20 20:59:08 +02:00
6cb6c7a448 Install alpine bindists with --disable-ld-override 2020-07-20 20:48:22 +02:00
22a5ad739e Don't try non-musl bindists for Alpine Linux 2020-07-20 20:47:45 +02:00
14c91bdd78 Merge branch 'libarchive-fix' 2020-07-20 20:34:54 +02:00
2c638cd2e2 Fix unpacking of bindists with hardinks pointing to themselves
https://github.com/vmchale/libarchive/issues/14
https://github.com/libarchive/libarchive/issues/1381
2020-07-20 20:34:36 +02:00
9e59f484e3 Fix alpine bindists 2020-07-20 20:30:47 +02:00
ac8419ecb2 Fix platform detection for i386 docker images wrt #37 2020-07-20 20:30:36 +02:00
3ecdb63063 Update tarballs 2020-07-19 00:50:57 +02:00
cfe24428fa Only check for upgrades when not upgrading 2020-07-19 00:47:20 +02:00
4c4266dd8c Add GHC-8.8.4 for FreeBSD 2020-07-16 14:38:19 +02:00
e8336bbc8a Add GHC-8.8.4 2020-07-16 10:57:44 +02:00
0f69c73e0e Rework printing/tee
This should be faster to draw, use less syscalls
and generally use EOF and pipes correctly.
2020-07-16 00:10:27 +02:00
e348de8dc4 Drop unused error variants 2020-07-14 19:16:01 +02:00
55a3ba9be2 Improve fish support in bootstrap-haskell 2020-07-14 19:08:20 +02:00
51b29b81b0 Use new-style ghcup commands in bootstrap-haskell 2020-07-14 19:07:57 +02:00
3c2e0334b7 Update ghcup binary urls 2020-07-14 19:07:19 +02:00
0679626514 Self host ghcup binaries 2020-07-14 14:29:23 +02:00
5035051135 Update 0.1.6 2020-07-13 23:50:11 +02:00
63c70ee74b Fix changelog subcommand on darwin 2020-07-13 23:10:17 +02:00
2e0bbca2e0 Fix freebsd tui 2020-07-13 22:45:38 +02:00
b52fa23ca2 Update alpine install-deps 2020-07-13 22:34:38 +02:00
ba03b78f23 Update ghcup binaries 2020-07-13 22:15:39 +02:00
04ef472c15 Fix freebsd gitlab-ci 2020-07-13 21:29:13 +02:00
75cd8f2341 Fix stripping in travis 2020-07-13 21:17:01 +02:00
f2e26c1800 Fix release build 2020-07-13 20:48:37 +02:00
0f7dd597d2 Update .gitignore 2020-07-13 20:37:34 +02:00
fb0eba9201 Release 0.1.6 2020-07-13 20:31:14 +02:00
3c80929c38 Merge branch 'ghc-8.10.1' 2020-07-13 20:06:17 +02:00
19 changed files with 538 additions and 476 deletions

7
.gitignore vendored
View File

@@ -5,3 +5,10 @@ dist-newstyle/
cabal.project.local cabal.project.local
.stack-work/ .stack-work/
bin/ bin/
/*.prof
/*.ps
/*.hp
tags
TAGS
/tmp/
.entangled

View File

@@ -97,7 +97,7 @@ variables:
test:linux:recommended: test:linux:recommended:
extends: .test_ghcup_version:linux extends: .test_ghcup_version:linux
variables: variables:
GHC_VERSION: "8.8.3" GHC_VERSION: "8.8.4"
CABAL_VERSION: "3.2.0.0" CABAL_VERSION: "3.2.0.0"
test:linux:latest: test:linux:latest:
@@ -150,7 +150,7 @@ release:linux:64bit:
- ./.gitlab/before_script/linux/alpine/install_deps.sh - ./.gitlab/before_script/linux/alpine/install_deps.sh
variables: variables:
ARTIFACT: "x86_64-linux-ghcup" ARTIFACT: "x86_64-linux-ghcup"
GHC_VERSION: "8.10.1" GHC_VERSION: "8.8.4"
CABAL_VERSION: "3.2.0.0" CABAL_VERSION: "3.2.0.0"
@@ -162,7 +162,7 @@ release:linux:32bit:
- ./.gitlab/before_script/linux/alpine/install_deps.sh - ./.gitlab/before_script/linux/alpine/install_deps.sh
variables: variables:
ARTIFACT: "i386-linux-ghcup" ARTIFACT: "i386-linux-ghcup"
GHC_VERSION: "8.10.1" GHC_VERSION: "8.6.5"
CABAL_VERSION: "3.2.0.0" CABAL_VERSION: "3.2.0.0"
@@ -177,7 +177,7 @@ release:darwin:
- ./.gitlab/before_script/darwin/install_deps.sh - ./.gitlab/before_script/darwin/install_deps.sh
variables: variables:
ARTIFACT: "x86_64-apple-darwin-ghcup" ARTIFACT: "x86_64-apple-darwin-ghcup"
GHC_VERSION: "8.10.1" GHC_VERSION: "8.8.3"
CABAL_VERSION: "3.2.0.0" CABAL_VERSION: "3.2.0.0"
MACOSX_DEPLOYMENT_TARGET: "10.7" MACOSX_DEPLOYMENT_TARGET: "10.7"
@@ -193,5 +193,6 @@ release:freebsd:
- ./.gitlab/before_script/freebsd/install_deps.sh - ./.gitlab/before_script/freebsd/install_deps.sh
variables: variables:
ARTIFACT: "x86_64-portbld-freebsd-ghcup" ARTIFACT: "x86_64-portbld-freebsd-ghcup"
GHC_VERSION: "8.10.1" GHC_VERSION: "8.8.3"
CABAL_VERSION: "3.2.0.0"

View File

@@ -23,26 +23,13 @@ ln -sf libncursesw.so.6 /usr/lib/libtinfow.so.6
ln -sf libtinfow.so.6 /usr/lib/libtinfow.so ln -sf libtinfow.so.6 /usr/lib/libtinfow.so
if [ "${BIT}" = "32" ] ; then if [ "${BIT}" = "32" ] ; then
curl -sSfL https://downloads.haskell.org/~ghcup/0.1.5/i386-linux-ghcup-0.1.5 > ./ghcup-bin curl -sSfL https://downloads.haskell.org/ghcup/i386-linux-ghcup > ./ghcup-bin
else else
curl -sSfL https://downloads.haskell.org/~ghcup/0.1.5/x86_64-linux-ghcup-0.1.5 > ./ghcup-bin curl -sSfL https://downloads.haskell.org/ghcup/x86_64-linux-ghcup > ./ghcup-bin
fi fi
chmod +x ghcup-bin chmod +x ghcup-bin
./ghcup-bin upgrade
./ghcup-bin install ${GHC_VERSION} ./ghcup-bin install ${GHC_VERSION}
# ./ghcup-bin install-cabal ${CABAL_VERSION} ./ghcup-bin install-cabal ${CABAL_VERSION}
# install cabal-3.2.0.0
if [ "${BIT}" = "32" ] ; then
curl -sSfL -o cabal-install-3.2.0.0-i386-alpine-linux-musl.tar.xz 'https://hasufell.de/d/d3e215db133e4fcaa61e/files/?p=/cabal-install-3.2.0.0-i386-alpine-linux-musl.tar.xz&dl=1'
tar xf cabal-install-3.2.0.0-i386-alpine-linux-musl.tar.xz
cp cabal-install-3.2.0.0-i386-alpine-linux-musl "${GHCUP_INSTALL_BASE_PREFIX}/.ghcup/bin/cabal"
else
curl -sSfL -o cabal-install-3.2.0.0-x86_64-alpine-linux-musl.tar.xz 'https://hasufell.de/d/d3e215db133e4fcaa61e/files/?p=/cabal-install-3.2.0.0-x86_64-alpine-linux-musl.tar.xz&dl=1'
tar xf cabal-install-3.2.0.0-x86_64-alpine-linux-musl.tar.xz
cp cabal-install-3.2.0.0-x86_64-alpine-linux-musl "${GHCUP_INSTALL_BASE_PREFIX}/.ghcup/bin/cabal"
fi
chmod +x "${GHCUP_INSTALL_BASE_PREFIX}/.ghcup/bin/cabal"
# utils # utils
apk add --no-cache \ apk add --no-cache \

View File

@@ -22,7 +22,7 @@ if [ "${OS}" = "LINUX" ] ; then
ecabal build -w ghc-${GHC_VERSION} --ghc-options='-split-sections -optl-static' -ftui ecabal build -w ghc-${GHC_VERSION} --ghc-options='-split-sections -optl-static' -ftui
fi fi
elif [ "${OS}" = "FREEBSD" ] ; then elif [ "${OS}" = "FREEBSD" ] ; then
ecabal build -w ghc-${GHC_VERSION} --ghc-options='-split-sections' --constraint="zlib static" ecabal build -w ghc-${GHC_VERSION} --ghc-options='-split-sections' --constraint="zlib static" -ftui
else else
ecabal build -w ghc-${GHC_VERSION} --constraint="zlib static" --constraint="lzma static" -ftui ecabal build -w ghc-${GHC_VERSION} --constraint="zlib static" --constraint="lzma static" -ftui
fi fi

View File

@@ -20,5 +20,5 @@ ghcup set 8.8.3
cabal update cabal update
cabal build --constraint="zlib static" --constraint="lzma static" -ftui cabal build --constraint="zlib static" --constraint="lzma static" -ftui
cp "$(cabal new-exec --verbose=0 --offline sh -- -c 'command -v ghcup')" . cp "$(cabal new-exec --verbose=0 --offline sh -- -c 'command -v ghcup')" .
strip -s ghcup strip ./ghcup
cp ghcup "./${ARTIFACT}" cp ghcup "./${ARTIFACT}"

View File

@@ -546,6 +546,7 @@ _archive_write_disk_header(struct archive *_a, struct archive_entry *entry)
{ {
struct archive_write_disk *a = (struct archive_write_disk *)_a; struct archive_write_disk *a = (struct archive_write_disk *)_a;
struct fixup_entry *fe; struct fixup_entry *fe;
const char *linkname;
int ret, r; int ret, r;
archive_check_magic(&a->archive, ARCHIVE_WRITE_DISK_MAGIC, archive_check_magic(&a->archive, ARCHIVE_WRITE_DISK_MAGIC,
@@ -590,6 +591,17 @@ _archive_write_disk_header(struct archive *_a, struct archive_entry *entry)
if (ret != ARCHIVE_OK) if (ret != ARCHIVE_OK)
return (ret); return (ret);
/*
* Check if we have a hardlink that points to itself.
*/
linkname = archive_entry_hardlink(a->entry);
if (linkname != NULL && strcmp(a->name, linkname) == 0) {
archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
"Skipping hardlink pointing to itself: %s",
a->name);
return (ARCHIVE_WARN);
}
/* /*
* Query the umask so we get predictable mode settings. * Query the umask so we get predictable mode settings.
* This gets done on every call to _write_header in case the * This gets done on every call to _write_header in case the

View File

@@ -1,5 +1,26 @@
# Revision history for ghcup # Revision history for ghcup
## 0.1.7 -- 2020-07-20
* Fix a bug in libarchive not unpacking some uncleanly packed bindists
* Improved fish support in bootstrap-haskell
* Only check for upgrades when not upgrading
* Fix platform detection for i386 docker images
* Improve alpine support
- more/proper bindists
- don't fall back to glibc based bindists
- install bindists with `--disable-ld-override` to avoid ld.gold bugs
## 0.1.6 -- 2020-07-13
* Create a new curses (brick) based TUI, accessible via `ghcup tui` #24
* Support multiple installed versions of cabal #23
* Improvements to `ghcup list` (show unavailable bindists for platform)
* Fix redhat downloads #29
* Support for hadrian bindists (fixes alpine-8.10.1) #31
* Add FreeBSD bindists 8.6.5 and 8.8.3
* Fix memory leak during unpack
## 0.1.5 -- 2020-04-30 ## 0.1.5 -- 2020-04-30
* Fix errors when PATH variable contains path components that are actually files * Fix errors when PATH variable contains path components that are actually files

View File

@@ -205,13 +205,10 @@ install' AppState {..} (_, ListResult {..}) = do
#if !defined(TAR) #if !defined(TAR)
, ArchiveResult , ArchiveResult
#endif #endif
, DistroNotFound
, FileDoesNotExistError , FileDoesNotExistError
, CopyError , CopyError
, NoCompatibleArch
, NoDownload , NoDownload
, NotInstalled , NotInstalled
, NoCompatiblePlatform
, BuildFailed , BuildFailed
, TagNotFound , TagNotFound
, DigestError , DigestError
@@ -283,7 +280,11 @@ changelog' AppState {..} (_, ListResult {..}) = do
Nothing -> pure $ Left Nothing -> pure $ Left
[i|Could not find ChangeLog for #{lTool}, version #{prettyVer lVer}|] [i|Could not find ChangeLog for #{lTool}, version #{prettyVer lVer}|]
Just uri -> do Just uri -> do
exec "xdg-open" True [serializeURIRef' uri] Nothing Nothing >>= \case let cmd = case _rPlatform pfreq of
Darwin -> "open"
Linux _ -> "xdg-open"
FreeBSD -> "xdg-open"
exec cmd True [serializeURIRef' uri] Nothing Nothing >>= \case
Right _ -> pure $ Right () Right _ -> pure $ Right ()
Left e -> pure $ Left [i|#{e}|] Left e -> pure $ Left [i|#{e}|]

View File

@@ -1033,7 +1033,10 @@ Report bugs at <https://gitlab.haskell.org/haskell/ghcup-hs/issues>|]
runLogger runLogger
($(logError) [i|Error fetching download info: #{e}|]) ($(logError) [i|Error fetching download info: #{e}|])
exitWith (ExitFailure 2) exitWith (ExitFailure 2)
runLogger $ checkForUpdates dls pfreq
case optCommand of
Upgrade _ _ -> pure ()
_ -> runLogger $ checkForUpdates dls pfreq
@@ -1308,9 +1311,14 @@ Make sure to clean up #{tmpdir} afterwards.|])
pure ExitSuccess pure ExitSuccess
Just uri -> do Just uri -> do
let uri' = T.unpack . decUTF8Safe . serializeURIRef' $ uri let uri' = T.unpack . decUTF8Safe . serializeURIRef' $ uri
cmd = case _rPlatform pfreq of
Darwin -> "open"
Linux _ -> "xdg-open"
FreeBSD -> "xdg-open"
if clOpen if clOpen
then then
exec "xdg-open" exec cmd
True True
[serializeURIRef' uri] [serializeURIRef' uri]
Nothing Nothing

View File

@@ -28,16 +28,25 @@ eghcup() {
download_ghcup() { download_ghcup() {
_plat="$(uname -s)" _plat="$(uname -s)"
_arch=$(uname -m) _arch=$(uname -m)
_ghver="0.1.5" _ghver="0.1.6"
_base_url="https://downloads.haskell.org/~ghcup"
case "${_plat}" in case "${_plat}" in
"linux"|"Linux") "linux"|"Linux")
case "${_arch}" in case "${_arch}" in
x86_64|amd64) x86_64|amd64)
_url=https://downloads.haskell.org/~ghcup/${_ghver}/x86_64-linux-ghcup-${_ghver} # we could be in a 32bit docker container, in which
# case uname doesn't give us what we want
if [ "$(getconf LONG_BIT)" = "32" ] ; then
_url=${_base_url}/${_ghver}/i386-linux-ghcup-${_ghver}
elif [ "$(getconf LONG_BIT)" = "64" ] ; then
_url=${_base_url}/${_ghver}/x86_64-linux-ghcup-${_ghver}
else
die "Unknown long bit size: $(getconf LONG_BIT)"
fi
;; ;;
i*86) i*86)
_url=https://downloads.haskell.org/~ghcup/${_ghver}/i386-linux-ghcup-${_ghver} _url=${_base_url}/${_ghver}/i386-linux-ghcup-${_ghver}
;; ;;
*) die "Unknown architecture: ${_arch}" *) die "Unknown architecture: ${_arch}"
;; ;;
@@ -53,7 +62,7 @@ download_ghcup() {
*) die "Unknown architecture: ${_arch}" *) die "Unknown architecture: ${_arch}"
;; ;;
esac esac
_url=https://downloads.haskell.org/~ghcup/${_ghver}/x86_64-portbld-freebsd-ghcup-${_ghver} _url=${_base_url}/${_ghver}/x86_64-portbld-freebsd-ghcup-${_ghver}
;; ;;
"Darwin"|"darwin") "Darwin"|"darwin")
case "${_arch}" in case "${_arch}" in
@@ -65,14 +74,14 @@ download_ghcup() {
*) die "Unknown architecture: ${_arch}" *) die "Unknown architecture: ${_arch}"
;; ;;
esac esac
_url=https://downloads.haskell.org/~ghcup/0.1.5/x86_64-apple-darwin-ghcup-0.1.5-p2 ;; _url=${_base_url}/${_ghver}/x86_64-apple-darwin-ghcup-${_ghver} ;;
*) die "Unknown platform: ${_plat}" *) die "Unknown platform: ${_plat}"
;; ;;
esac esac
edo curl -Lf "${_url}" > "${GHCUP_INSTALL_BASE_PREFIX}"/.ghcup/bin/ghcup edo curl -Lf "${_url}" > "${GHCUP_INSTALL_BASE_PREFIX}"/.ghcup/bin/ghcup
unset _plat _arch _url _ghver unset _plat _arch _url _ghver _base_url
} }
@@ -129,10 +138,10 @@ if [ -z "${BOOTSTRAP_HASKELL_NONINTERACTIVE}" ] ; then
read -r answer </dev/tty read -r answer </dev/tty
fi fi
eghcup --cache install "${BOOTSTRAP_HASKELL_GHC_VERSION}" eghcup --cache install ghc "${BOOTSTRAP_HASKELL_GHC_VERSION}"
eghcup set "${BOOTSTRAP_HASKELL_GHC_VERSION}" eghcup set ghc "${BOOTSTRAP_HASKELL_GHC_VERSION}"
eghcup --cache install-cabal "${BOOTSTRAP_HASKELL_CABAL_VERSION}" eghcup --cache install cabal "${BOOTSTRAP_HASKELL_CABAL_VERSION}"
edo cabal new-update edo cabal new-update
@@ -163,6 +172,9 @@ if [ -z "${BOOTSTRAP_HASKELL_NONINTERACTIVE}" ] ; then
exit 0 exit 0
fi fi
;; ;;
*/fish) # login shell is fish
GHCUP_PROFILE_FILE="$HOME/.config/fish/config.fish"
MY_SHELL="fish" ;;
*) exit 0 ;; *) exit 0 ;;
esac esac
@@ -178,7 +190,16 @@ if [ -z "${BOOTSTRAP_HASKELL_NONINTERACTIVE}" ] ; then
case $next_answer in case $next_answer in
[Yy]*) [Yy]*)
echo "[ -f \"\${GHCUP_INSTALL_BASE_PREFIX:=\$HOME}/.ghcup/env\" ] && source \"\${GHCUP_INSTALL_BASE_PREFIX:=\$HOME}/.ghcup/env\"" >> "${GHCUP_PROFILE_FILE}" case $MY_SHELL in
"") break ;;
fish)
echo "set -q GHCUP_INSTALL_BASE_PREFIX[1]; or set GHCUP_INSTALL_BASE_PREFIX \$HOME" >> "${GHCUP_PROFILE_FILE}"
echo "test -f \$GHCUP_INSTALL_BASE_PREFIX/.ghcup/env ; and set -gx PATH \$HOME/.cabal/bin \$GHCUP_INSTALL_BASE_PREFIX/.ghcup/bin \$PATH" >> "${GHCUP_PROFILE_FILE}"
break ;;
*)
echo "[ -f \"\${GHCUP_INSTALL_BASE_PREFIX:=\$HOME}/.ghcup/env\" ] && source \"\${GHCUP_INSTALL_BASE_PREFIX:=\$HOME}/.ghcup/env\"" >> "${GHCUP_PROFILE_FILE}"
break ;;
esac
printf "\\033[0;35m%s\\033[0m\\n" "OK! ${GHCUP_PROFILE_FILE} has been modified. Restart your terminal for the changes to take effect," printf "\\033[0;35m%s\\033[0m\\n" "OK! ${GHCUP_PROFILE_FILE} has been modified. Restart your terminal for the changes to take effect,"
printf "\\033[0;35m%s\\033[0m\\n" "or type \"source ${GHCUP_INSTALL_BASE_PREFIX}/.ghcup/env\" to apply them in your current terminal session." printf "\\033[0;35m%s\\033[0m\\n" "or type \"source ${GHCUP_INSTALL_BASE_PREFIX}/.ghcup/env\" to apply them in your current terminal session."
exit 0;; exit 0;;

View File

@@ -115,13 +115,6 @@
"8.6.2": { "8.6.2": {
"viArch": { "viArch": {
"A_64": { "A_64": {
"Linux_Alpine": {
"unknown_versioning": {
"dlHash": "5be9f98c25c49dbfb65223e2642335d4a45220f0c4044c8af70bbcaebe688467",
"dlSubdir": "ghc-8.6.2",
"dlUri": "https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.6.2-musl/ghc-8.6.2-x86_64-unknown-linux-musl.tar.xz"
}
},
"Linux_Debian": { "Linux_Debian": {
"unknown_versioning": { "unknown_versioning": {
"dlHash": "13f96e8b83bb5bb60f955786ff9085744c24927a33be8a17773f84c7c248533a", "dlHash": "13f96e8b83bb5bb60f955786ff9085744c24927a33be8a17773f84c7c248533a",
@@ -176,13 +169,6 @@
} }
}, },
"A_32": { "A_32": {
"Linux_Alpine": {
"unknown_versioning": {
"dlHash": "a1add75822258fbb6e57ad049919ef5f757bac10d3c7a6eaeee50d2521ffeb4e",
"dlSubdir": "ghc-8.6.2",
"dlUri": "https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.6.2-musl/ghc-8.6.2-i386-unknown-linux-musl.tar.xz"
}
},
"Linux_Debian": { "Linux_Debian": {
"unknown_versioning": { "unknown_versioning": {
"dlHash": "a288026d9ef22f7ac387edab6b29ef7dcb3b28945c8ea532a15c1fa35d4733ed", "dlHash": "a288026d9ef22f7ac387edab6b29ef7dcb3b28945c8ea532a15c1fa35d4733ed",
@@ -228,9 +214,9 @@
"A_64": { "A_64": {
"Linux_Alpine": { "Linux_Alpine": {
"unknown_versioning": { "unknown_versioning": {
"dlHash": "7f9ef3e048ca6f2a2a589e6c168d8c7699fbe32b1b39a9d7c72eff9b26e90c67", "dlHash": "325b48b2ea199b4f62c16dc9c3ff99b42ea6bb1dde5a74fa640dfeb8d63894d0",
"dlSubdir": "ghc-8.0.2", "dlSubdir": "ghc-8.0.2",
"dlUri": "https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.0.2-musl/ghc-8.0.2-x86_64-unknown-linux-musl.tar.xz" "dlUri": "https://files.hasufell.de/ghc/ghc-8.0.2-x86_64-alpine-linux.tar.xz"
} }
}, },
"FreeBSD": { "FreeBSD": {
@@ -284,9 +270,9 @@
"A_32": { "A_32": {
"Linux_Alpine": { "Linux_Alpine": {
"unknown_versioning": { "unknown_versioning": {
"dlHash": "815c68181013cd3f4dc748ddb5502a5e7a1a4011ba57d8eff6d66da411c72e84", "dlHash": "b4cd12a1048b2fff2f23c9eec0dd3a1174d54d017f8d79ec79af4534118e6881",
"dlSubdir": "ghc-8.0.2", "dlSubdir": "ghc-8.0.2",
"dlUri": "https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.0.2-musl/ghc-8.0.2-i386-unknown-linux-musl.tar.xz" "dlUri": "https://files.hasufell.de/ghc/ghc-8.0.2-i386-alpine-linux.tar.xz"
} }
}, },
"Linux_Debian": { "Linux_Debian": {
@@ -323,13 +309,6 @@
"8.6.4": { "8.6.4": {
"viArch": { "viArch": {
"A_64": { "A_64": {
"Linux_Alpine": {
"unknown_versioning": {
"dlHash": "ec73167bae1a173a9af07612df5fa1289e924f13ed9241339cb5617337cb2979",
"dlSubdir": "ghc-8.6.4",
"dlUri": "https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.6.4-musl/ghc-8.6.4-x86_64-unknown-linux-musl.tar.xz"
}
},
"Linux_Debian": { "Linux_Debian": {
"unknown_versioning": { "unknown_versioning": {
"dlHash": "ef74222ef3c01c3fc5b926f67e8b4ef612fe8efa40ac937317cff9b0eed8d863", "dlHash": "ef74222ef3c01c3fc5b926f67e8b4ef612fe8efa40ac937317cff9b0eed8d863",
@@ -389,13 +368,6 @@
} }
}, },
"A_32": { "A_32": {
"Linux_Alpine": {
"unknown_versioning": {
"dlHash": "21b39b89edadbb6ab5b98d46dfacc0fd0799f9b16465a05c64e48f41dcbb1f7a",
"dlSubdir": "ghc-8.6.4",
"dlUri": "https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.6.4-musl/ghc-8.6.4-i386-unknown-linux-musl.tar.xz"
}
},
"Linux_Debian": { "Linux_Debian": {
"unknown_versioning": { "unknown_versioning": {
"dlHash": "5e2ce88f4d13d23ac37e278e0c7b51c801008931359b9fa8a631d804d2da552c", "dlHash": "5e2ce88f4d13d23ac37e278e0c7b51c801008931359b9fa8a631d804d2da552c",
@@ -439,13 +411,6 @@
"8.4.1": { "8.4.1": {
"viArch": { "viArch": {
"A_64": { "A_64": {
"Linux_Alpine": {
"unknown_versioning": {
"dlHash": "82d4ea6247a91e7e76065c0cdf66eec813ab679c1f24de0fb92c89bba3ef27f2",
"dlSubdir": "ghc-8.4.1",
"dlUri": "https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.4.1-musl/ghc-8.4.1-x86_64-unknown-linux-musl.tar.xz"
}
},
"FreeBSD": { "FreeBSD": {
"unknown_versioning": { "unknown_versioning": {
"dlHash": "e748daec098445c6190090fe32bb2817a1140553be5acd2188e1af05ad24e5aa", "dlHash": "e748daec098445c6190090fe32bb2817a1140553be5acd2188e1af05ad24e5aa",
@@ -497,13 +462,6 @@
} }
}, },
"A_32": { "A_32": {
"Linux_Alpine": {
"unknown_versioning": {
"dlHash": "e5feee34b58c1a1cd6c270fbe696c178a4649675398f4e0d56a4bfad9641b736",
"dlSubdir": "ghc-8.4.1",
"dlUri": "https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.4.1-musl/ghc-8.4.1-i386-unknown-linux-musl.tar.xz"
}
},
"Linux_Debian": { "Linux_Debian": {
"unknown_versioning": { "unknown_versioning": {
"dlHash": "c56c589c76c7ddcb77cdbef885a811761e669d3e76868b723d5be56dedcd4f69", "dlHash": "c56c589c76c7ddcb77cdbef885a811761e669d3e76868b723d5be56dedcd4f69",
@@ -547,13 +505,6 @@
"8.6.3": { "8.6.3": {
"viArch": { "viArch": {
"A_64": { "A_64": {
"Linux_Alpine": {
"unknown_versioning": {
"dlHash": "274f7ea959e6f1c830b33efd462ab9d0ff32d1cb5be051a2a318464d05d674dd",
"dlSubdir": "ghc-8.6.3",
"dlUri": "https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.6.3-musl/ghc-8.6.3-x86_64-unknown-linux-musl.tar.xz"
}
},
"FreeBSD": { "FreeBSD": {
"unknown_versioning": { "unknown_versioning": {
"dlHash": "bc2419fa180f8a7808c49775987866435995df9bdd9ce08bcd38352d63ba6031", "dlHash": "bc2419fa180f8a7808c49775987866435995df9bdd9ce08bcd38352d63ba6031",
@@ -641,13 +592,6 @@
} }
}, },
"A_32": { "A_32": {
"Linux_Alpine": {
"unknown_versioning": {
"dlHash": "dc0b53a7f0e52232930abcfad427ccd0917c90797203fbc7b5d72f5335d85a7d",
"dlSubdir": "ghc-8.6.3",
"dlUri": "https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.6.3-musl/ghc-8.6.3-i386-unknown-linux-musl.tar.xz"
}
},
"Linux_Debian": { "Linux_Debian": {
"unknown_versioning": { "unknown_versioning": {
"dlHash": "b57070ba8c70b1333a3e47ce124baf791be39c20a592954772532fd6dd51882f", "dlHash": "b57070ba8c70b1333a3e47ce124baf791be39c20a592954772532fd6dd51882f",
@@ -851,9 +795,9 @@
"A_64": { "A_64": {
"Linux_Alpine": { "Linux_Alpine": {
"unknown_versioning": { "unknown_versioning": {
"dlHash": "ec6d0417822c3bfafc7aea0b0402294901231bc5d72dd17a2b849e3f44850695", "dlHash": "b9d3ed7f7aa24ef2d58bb579252289caa0b8877adee3685e3af2fb73d440afdc",
"dlSubdir": "ghc-8.6.5", "dlSubdir": "ghc-8.6.5",
"dlUri": "https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.6.5-musl/ghc-8.6.5-x86_64-unknown-linux-musl.tar.xz" "dlUri": "https://files.hasufell.de/ghc/ghc-8.6.5-x86_64-alpine-linux.tar.xz"
} }
}, },
"FreeBSD": { "FreeBSD": {
@@ -945,9 +889,9 @@
"A_32": { "A_32": {
"Linux_Alpine": { "Linux_Alpine": {
"unknown_versioning": { "unknown_versioning": {
"dlHash": "db13ff894faf431f9c64db21c090a1e4e42803794d56720a704c50166c7ca05d", "dlHash": "3737837550d9b177acfe150e3a3cd4545427ded020487c2ed5194d7b8f116349",
"dlSubdir": "ghc-8.6.5", "dlSubdir": "ghc-8.6.5",
"dlUri": "https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.6.5-musl/ghc-8.6.5-i386-unknown-linux-musl.tar.xz" "dlUri": "https://files.hasufell.de/ghc/ghc-8.6.5-i386-alpine-linux.tar.xz"
} }
}, },
"Linux_Debian": { "Linux_Debian": {
@@ -993,13 +937,6 @@
"8.4.2": { "8.4.2": {
"viArch": { "viArch": {
"A_64": { "A_64": {
"Linux_Alpine": {
"unknown_versioning": {
"dlHash": "3ebdb6e8001679e8722bd75a47805f1b3c1b25b37c4d237a7aaa4d66162f699f",
"dlSubdir": "ghc-8.4.2",
"dlUri": "https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.4.2-musl/ghc-8.4.2-x86_64-unknown-linux-musl.tar.xz"
}
},
"FreeBSD": { "FreeBSD": {
"unknown_versioning": { "unknown_versioning": {
"dlHash": "e9ed417fdf94c2ff2c6e344ed16f332bf6b591511f6442c0d9ea94854882b66c", "dlHash": "e9ed417fdf94c2ff2c6e344ed16f332bf6b591511f6442c0d9ea94854882b66c",
@@ -1066,13 +1003,6 @@
} }
}, },
"A_32": { "A_32": {
"Linux_Alpine": {
"unknown_versioning": {
"dlHash": "a43ac57214764717f0ffe515ef47b84e938f0a4fa8ff875773d6ba315b940835",
"dlSubdir": "ghc-8.4.2",
"dlUri": "https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.4.2-musl/ghc-8.4.2-i386-unknown-linux-musl.tar.xz"
}
},
"Linux_Debian": { "Linux_Debian": {
"unknown_versioning": { "unknown_versioning": {
"dlHash": "2d849c30b4c1eac25dc74333501920921e22fa483153f404993808bbda93df05", "dlHash": "2d849c30b4c1eac25dc74333501920921e22fa483153f404993808bbda93df05",
@@ -1116,13 +1046,6 @@
"8.8.1": { "8.8.1": {
"viArch": { "viArch": {
"A_64": { "A_64": {
"Linux_Alpine": {
"unknown_versioning": {
"dlHash": "029163c42a219983f4220d73c26b910c3ecf6eda45a3e5e27236e8a66b080890",
"dlSubdir": "ghc-8.8.1",
"dlUri": "https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.8.1-musl/ghc-8.8.1-x86_64-unknown-linux-musl.tar.xz"
}
},
"Linux_Debian": { "Linux_Debian": {
"unknown_versioning": { "unknown_versioning": {
"dlHash": "620fd560535b63cac5f8c97354ccddf93fa940cca78e2d19f6f98b7e67c6a723", "dlHash": "620fd560535b63cac5f8c97354ccddf93fa940cca78e2d19f6f98b7e67c6a723",
@@ -1203,13 +1126,6 @@
} }
}, },
"A_32": { "A_32": {
"Linux_Alpine": {
"unknown_versioning": {
"dlHash": "3f5462341a455a5677fba5cb24da8938878261069da5ee4234b1c6ac2d2ef77e",
"dlSubdir": "ghc-8.8.1",
"dlUri": "https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.8.1-musl/ghc-8.8.1-i386-unknown-linux-musl.tar.xz"
}
},
"Linux_Debian": { "Linux_Debian": {
"unknown_versioning": { "unknown_versioning": {
"dlHash": "3d3bb75aff2dd79ec87ace10483368681fbc328ff00ebf15edad33420f00f7f5", "dlHash": "3d3bb75aff2dd79ec87ace10483368681fbc328ff00ebf15edad33420f00f7f5",
@@ -1250,16 +1166,146 @@
"base-4.13.0.0" "base-4.13.0.0"
] ]
}, },
"8.4.3": { "8.8.4": {
"viArch": { "viArch": {
"A_64": { "A_64": {
"Linux_Alpine": { "Linux_Alpine": {
"unknown_versioning": { "unknown_versioning": {
"dlHash": "0f05c67e3fd29a3f505abb77e9c39349d312cdc1a566263b8f4b227d085906bc", "dlHash": "90c6a1661de7f20c7d169cd6270125035b3332063e45103ce028df0beecf434e",
"dlSubdir": "ghc-8.4.3", "dlSubdir": "ghc-8.8.4",
"dlUri": "https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.4.3-musl/ghc-8.4.3-x86_64-unknown-linux-musl.tar.xz" "dlUri": "https://files.hasufell.de/ghc/ghc-8.8.4-x86_64-alpine-linux.tar.xz"
} }
}, },
"FreeBSD": {
"unknown_versioning": {
"dlHash": "8cebe5ccf454e82acd1ff52ca57590d1ab0f3f44a981b46257ec12158c8c447e",
"dlSubdir": "ghc-8.8.4",
"dlUri": "https://files.hasufell.de/ghc/ghc-8.8.4-x86_64-portbld-freebsd.tar.xz"
}
},
"Linux_Debian": {
"unknown_versioning": {
"dlHash": "4862559d221153caf978f4bf2c15a82c114d1e1f43b298b2ecff2ac94b586d20",
"dlSubdir": "ghc-8.8.4",
"dlUri": "https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-deb9-linux.tar.xz"
},
"8": {
"dlHash": "51a36892f1264744195274187298d13ac62bce2da86d4ddf76d8054ab90f2feb",
"dlSubdir": "ghc-8.8.4",
"dlUri": "https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-deb8-linux.tar.xz"
}
},
"Linux_Ubuntu": {
"unknown_versioning": {
"dlHash": "f32e37f8aa03e74bad533ae02f62dc27a4521e78199576af490888ba34b515db",
"dlSubdir": "ghc-8.8.4",
"dlUri": "https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-fedora27-linux.tar.xz"
},
"16.04": {
"dlHash": "4862559d221153caf978f4bf2c15a82c114d1e1f43b298b2ecff2ac94b586d20",
"dlSubdir": "ghc-8.8.4",
"dlUri": "https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-deb9-linux.tar.xz"
},
"18.04": {
"dlHash": "4862559d221153caf978f4bf2c15a82c114d1e1f43b298b2ecff2ac94b586d20",
"dlSubdir": "ghc-8.8.4",
"dlUri": "https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-deb9-linux.tar.xz"
}
},
"Darwin": {
"unknown_versioning": {
"dlHash": "e80a789e9d8cfb41dd87f3284b75432427c4461c1731d220d04ead8733ccdb5e",
"dlSubdir": "ghc-8.8.4",
"dlUri": "https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-apple-darwin.tar.xz"
}
},
"Linux_RedHat": {
"unknown_versioning": {
"dlHash": "a12aa4b1fd3c64240a8a6d15196d33e1c0e0d55b51ff78c387242126d0ef7910",
"dlSubdir": "ghc-8.8.4",
"dlUri": "https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-centos7-linux.tar.xz"
}
},
"Linux_UnknownLinux": {
"unknown_versioning": {
"dlHash": "f32e37f8aa03e74bad533ae02f62dc27a4521e78199576af490888ba34b515db",
"dlSubdir": "ghc-8.8.4",
"dlUri": "https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-fedora27-linux.tar.xz"
}
},
"Linux_Mint": {
"unknown_versioning": {
"dlHash": "4862559d221153caf978f4bf2c15a82c114d1e1f43b298b2ecff2ac94b586d20",
"dlSubdir": "ghc-8.8.4",
"dlUri": "https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-deb9-linux.tar.xz"
}
},
"Linux_Fedora": {
"unknown_versioning": {
"dlHash": "f32e37f8aa03e74bad533ae02f62dc27a4521e78199576af490888ba34b515db",
"dlSubdir": "ghc-8.8.4",
"dlUri": "https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-fedora27-linux.tar.xz"
}
},
"Linux_CentOS": {
"unknown_versioning": {
"dlHash": "a12aa4b1fd3c64240a8a6d15196d33e1c0e0d55b51ff78c387242126d0ef7910",
"dlSubdir": "ghc-8.8.4",
"dlUri": "https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-centos7-linux.tar.xz"
}
},
"Linux_AmazonLinux": {
"unknown_versioning": {
"dlHash": "a12aa4b1fd3c64240a8a6d15196d33e1c0e0d55b51ff78c387242126d0ef7910",
"dlSubdir": "ghc-8.8.4",
"dlUri": "https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-centos7-linux.tar.xz"
}
}
},
"A_32": {
"Linux_Debian": {
"unknown_versioning": {
"dlHash": "43dd954910c9027694312cef0aabc7774d102d0422b7172802cfb72f7d5da3a0",
"dlSubdir": "ghc-8.8.4",
"dlUri": "https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-i386-deb9-linux.tar.xz"
}
},
"Linux_Ubuntu": {
"unknown_versioning": {
"dlHash": "43dd954910c9027694312cef0aabc7774d102d0422b7172802cfb72f7d5da3a0",
"dlSubdir": "ghc-8.8.4",
"dlUri": "https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-i386-deb9-linux.tar.xz"
}
},
"Linux_UnknownLinux": {
"unknown_versioning": {
"dlHash": "43dd954910c9027694312cef0aabc7774d102d0422b7172802cfb72f7d5da3a0",
"dlSubdir": "ghc-8.8.4",
"dlUri": "https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-i386-deb9-linux.tar.xz"
}
},
"Linux_Mint": {
"unknown_versioning": {
"dlHash": "43dd954910c9027694312cef0aabc7774d102d0422b7172802cfb72f7d5da3a0",
"dlSubdir": "ghc-8.8.4",
"dlUri": "https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-i386-deb9-linux.tar.xz"
}
}
}
},
"viSourceDL": {
"dlHash": "f0505e38b2235ff9f1090b51f44d6c8efd371068e5a6bb42a2a6d8b67b5ffc2d",
"dlSubdir": "ghc-8.8.4",
"dlUri": "https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-src.tar.xz"
},
"viChangeLog": "https://downloads.haskell.org/~ghc/8.8.4/docs/html/users_guide/8.8.4-notes.html",
"viTags": [
"base-4.13.0.0"
]
},
"8.4.3": {
"viArch": {
"A_64": {
"Linux_Debian": { "Linux_Debian": {
"unknown_versioning": { "unknown_versioning": {
"dlHash": "2e4f53afb872ad9c640f31aea283b3ff4c5028b65808a1920739900aef7d15c9", "dlHash": "2e4f53afb872ad9c640f31aea283b3ff4c5028b65808a1920739900aef7d15c9",
@@ -1319,13 +1365,6 @@
} }
}, },
"A_32": { "A_32": {
"Linux_Alpine": {
"unknown_versioning": {
"dlHash": "3a9a1ceb8eef234023fc36600245a03772bcb46b2abac41f6394104feaec8c43",
"dlSubdir": "ghc-8.4.3",
"dlUri": "https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.4.3-musl/ghc-8.4.3-i386-unknown-linux-musl.tar.xz"
}
},
"Linux_Debian": { "Linux_Debian": {
"unknown_versioning": { "unknown_versioning": {
"dlHash": "f5763983a26dedd88b65a0b17267359a3981b83a642569b26334423f684f8b8c", "dlHash": "f5763983a26dedd88b65a0b17267359a3981b83a642569b26334423f684f8b8c",
@@ -1369,13 +1408,6 @@
"8.6.1": { "8.6.1": {
"viArch": { "viArch": {
"A_64": { "A_64": {
"Linux_Alpine": {
"unknown_versioning": {
"dlHash": "2668e12facfa9083150b01b1137693cb3de266a6f8ac8c6b44a2be3826c73177",
"dlSubdir": "ghc-8.6.1",
"dlUri": "https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.6.1-musl/ghc-8.6.1-x86_64-unknown-linux-musl.tar.xz"
}
},
"FreeBSD": { "FreeBSD": {
"unknown_versioning": { "unknown_versioning": {
"dlHash": "51403b054a3a649039ac988e1d1112561f96750bfced63df864091a3fab36f08", "dlHash": "51403b054a3a649039ac988e1d1112561f96750bfced63df864091a3fab36f08",
@@ -1442,13 +1474,6 @@
} }
}, },
"A_32": { "A_32": {
"Linux_Alpine": {
"unknown_versioning": {
"dlHash": "12b9b5b78be94b57d301b2a31eda145928110fd103fbbcc1e6e6966237a30ed2",
"dlSubdir": "ghc-8.6.1",
"dlUri": "https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.6.1-musl/ghc-8.6.1-i386-unknown-linux-musl.tar.xz"
}
},
"Linux_Debian": { "Linux_Debian": {
"unknown_versioning": { "unknown_versioning": {
"dlHash": "83573af96e3dec8f67c1a844512f92cbf7d51ae7ceca53d948fc2a3300abd05c", "dlHash": "83573af96e3dec8f67c1a844512f92cbf7d51ae7ceca53d948fc2a3300abd05c",
@@ -1492,13 +1517,6 @@
"8.8.2": { "8.8.2": {
"viArch": { "viArch": {
"A_64": { "A_64": {
"Linux_Alpine": {
"unknown_versioning": {
"dlHash": "09d49c75b5626606409c982b23f70dec241a944928243f32d1b59b2005de6dea",
"dlSubdir": "ghc-8.8.2",
"dlUri": "https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.8.2-musl/ghc-8.8.2-x86_64-unknown-linux-musl.tar.xz"
}
},
"Linux_Debian": { "Linux_Debian": {
"unknown_versioning": { "unknown_versioning": {
"dlHash": "7b2d66c2d5d8c15750da5833d3018634a5eb792a5662282e3abfeb112c2a1cc3", "dlHash": "7b2d66c2d5d8c15750da5833d3018634a5eb792a5662282e3abfeb112c2a1cc3",
@@ -1579,13 +1597,6 @@
} }
}, },
"A_32": { "A_32": {
"Linux_Alpine": {
"unknown_versioning": {
"dlHash": "4ea4a81b6b5ba807c93b21b3cddf1f1b4b0fc1ce018cf6aa255a9ee40137b278",
"dlSubdir": "ghc-8.8.2",
"dlUri": "https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.8.2-musl/ghc-8.8.2-i386-unknown-linux-musl.tar.xz"
}
},
"Linux_Debian": { "Linux_Debian": {
"unknown_versioning": { "unknown_versioning": {
"dlHash": "ad1c628082c32635a436905a7ff83eaa4246347d869be5ef6b33c3bf85e8f00c", "dlHash": "ad1c628082c32635a436905a7ff83eaa4246347d869be5ef6b33c3bf85e8f00c",
@@ -1629,13 +1640,6 @@
"7.10.3": { "7.10.3": {
"viArch": { "viArch": {
"A_64": { "A_64": {
"Linux_Alpine": {
"unknown_versioning": {
"dlHash": "8b83dfa8b85ba45e24768337254e6eb23c0855df1a5168671a3a8090b6d0964e",
"dlSubdir": "ghc-7.10.3",
"dlUri": "https://github.com/redneb/ghc-alt-libc/releases/download/ghc-7.10.3-musl/ghc-7.10.3-x86_64-unknown-linux-musl.tar.xz"
}
},
"FreeBSD": { "FreeBSD": {
"unknown_versioning": { "unknown_versioning": {
"dlHash": "2aa396edd2bb651f4bc7eef7a396913ea24923de5aafdc76df6295333e487e48", "dlHash": "2aa396edd2bb651f4bc7eef7a396913ea24923de5aafdc76df6295333e487e48",
@@ -1817,6 +1821,13 @@
} }
}, },
"A_32": { "A_32": {
"Linux_Alpine": {
"unknown_versioning": {
"dlHash": "467534c32552cfd318753112dbc70af003693aad4b0081f2a07e61f5b5ea2c22",
"dlSubdir": "ghc-8.2.2",
"dlUri": "https://files.hasufell.de/ghc/ghc-8.2.2-i386-alpine-linux.tar.xz"
}
},
"Linux_Debian": { "Linux_Debian": {
"7": { "7": {
"dlHash": "cd18766b1a9b74fc6c90003a719ecab158f281f9a755d8b1bd3fd764ba6947b5", "dlHash": "cd18766b1a9b74fc6c90003a719ecab158f281f9a755d8b1bd3fd764ba6947b5",
@@ -1865,13 +1876,6 @@
"8.4.4": { "8.4.4": {
"viArch": { "viArch": {
"A_64": { "A_64": {
"Linux_Alpine": {
"unknown_versioning": {
"dlHash": "e15f1cf02adb2cfb77a202050300a92f61456c6e1e90b543fec82d99da893a69",
"dlSubdir": "ghc-8.4.4",
"dlUri": "https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.4.4-musl/ghc-8.4.4-x86_64-unknown-linux-musl.tar.xz"
}
},
"FreeBSD": { "FreeBSD": {
"unknown_versioning": { "unknown_versioning": {
"dlHash": "44fbd142d1c355d6110595c59c760e2c73866ff9259ec85ebf814edb244d1940", "dlHash": "44fbd142d1c355d6110595c59c760e2c73866ff9259ec85ebf814edb244d1940",
@@ -1961,9 +1965,9 @@
"A_32": { "A_32": {
"Linux_Alpine": { "Linux_Alpine": {
"unknown_versioning": { "unknown_versioning": {
"dlHash": "356f49b1acee0b0267fd8ca687aede14d43cee1f231d7f8a37525d50f07e1428", "dlHash": "892888d388ef5c9cadf5cfba1146d62237c25b9b066fb62fee940b2b285fd308",
"dlSubdir": "ghc-8.4.4", "dlSubdir": "ghc-8.4.4",
"dlUri": "https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.4.4-musl/ghc-8.4.4-i386-unknown-linux-musl.tar.xz" "dlUri": "https://files.hasufell.de/ghc/ghc-8.4.4-i386-alpine-linux.tar.xz"
} }
}, },
"Linux_Debian": { "Linux_Debian": {
@@ -2009,13 +2013,6 @@
"8.8.3": { "8.8.3": {
"viArch": { "viArch": {
"A_64": { "A_64": {
"Linux_Alpine": {
"unknown_versioning": {
"dlHash": "77a990d76dc10abe2ed19e5fcfef4095f0e9819d4ab84bec6d82f00dd85812a7",
"dlSubdir": "ghc-8.8.3",
"dlUri": "https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.8.3-musl/ghc-8.8.3-x86_64-unknown-linux-musl.tar.xz"
}
},
"FreeBSD": { "FreeBSD": {
"unknown_versioning": { "unknown_versioning": {
"dlHash": "569719075b4d14b3875a899df522090ae31e6fe085e6dffe518e875b09a2f0be", "dlHash": "569719075b4d14b3875a899df522090ae31e6fe085e6dffe518e875b09a2f0be",
@@ -2103,13 +2100,6 @@
} }
}, },
"A_32": { "A_32": {
"Linux_Alpine": {
"unknown_versioning": {
"dlHash": "7a5f41646d06777e75636291a1855d60a0984552bbdf33c3d107565d302f38a4",
"dlSubdir": "ghc-8.8.3",
"dlUri": "https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.8.3-musl/ghc-8.8.3-i386-unknown-linux-musl.tar.xz"
}
},
"Linux_Debian": { "Linux_Debian": {
"unknown_versioning": { "unknown_versioning": {
"dlHash": "441e2c7a4fc83ebf179712bd939b555cda7c6633545b7c8ac38049f9d85003ae", "dlHash": "441e2c7a4fc83ebf179712bd939b555cda7c6633545b7c8ac38049f9d85003ae",
@@ -2322,37 +2312,37 @@
} }
}, },
"GHCup": { "GHCup": {
"0.1.5": { "0.1.6": {
"viArch": { "viArch": {
"A_64": { "A_64": {
"FreeBSD": { "FreeBSD": {
"unknown_versioning": { "unknown_versioning": {
"dlHash": "6dd57cc5958ef3a6ba7de22808d9292d31dada8af95277578b69be35fc090194", "dlHash": "6bbfb1047691ff3ae9249e8805cf9f37bab30a008dae130cb2a4b3aa5253e6e5",
"dlSubdir": null, "dlSubdir": null,
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.5/x86_64-portbld-freebsd-ghcup-0.1.5" "dlUri": "https://downloads.haskell.org/~ghcup/0.1.6/x86_64-portbld-freebsd-ghcup-0.1.6"
} }
}, },
"Darwin": { "Darwin": {
"unknown_versioning": { "unknown_versioning": {
"dlHash": "456770c3b1510d44a0e401e0677faa9f5670ef81a11646f47cbba1b95404e788", "dlHash": "1e025e66d7f7b75d94f17a7da6120efd7e2df918a8eac88c4711ed11d2aac4ec",
"dlSubdir": null, "dlSubdir": null,
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.5/x86_64-apple-darwin-ghcup-0.1.5-p2" "dlUri": "https://downloads.haskell.org/~ghcup/0.1.6/x86_64-apple-darwin-ghcup-0.1.6"
} }
}, },
"Linux_UnknownLinux": { "Linux_UnknownLinux": {
"unknown_versioning": { "unknown_versioning": {
"dlHash": "cfdb01dde77121859b5d90b6707238b54e23787fcbb3003e18ab52a5dbfee330", "dlHash": "bdbec0cdf4c8511c4082dd83993d15034c0fbcb5722ecf418c1cee40667da8af",
"dlSubdir": null, "dlSubdir": null,
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.5/x86_64-linux-ghcup-0.1.5" "dlUri": "https://downloads.haskell.org/~ghcup/0.1.6/x86_64-linux-ghcup-0.1.6"
} }
} }
}, },
"A_32": { "A_32": {
"Linux_UnknownLinux": { "Linux_UnknownLinux": {
"unknown_versioning": { "unknown_versioning": {
"dlHash": "3707f60d703912709335dc0103fb1af5e5dfa83050825a8156b56bc81760b2a8", "dlHash": "0366ed6c00862c3c002cdefc3e37523ad80e655387956c7ab58b268aaa6fae5d",
"dlSubdir": null, "dlSubdir": null,
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.5/i386-linux-ghcup-0.1.5" "dlUri": "https://downloads.haskell.org/~ghcup/0.1.6/i386-linux-ghcup-0.1.6"
} }
} }
} }

View File

@@ -1,6 +1,6 @@
cabal-version: 3.0 cabal-version: 3.0
name: ghcup name: ghcup
version: 0.1.5 version: 0.1.7
synopsis: ghc toolchain installer as an exe/library synopsis: ghc toolchain installer as an exe/library
description: description:
A rewrite of the shell script ghcup, for providing A rewrite of the shell script ghcup, for providing

View File

@@ -50,7 +50,7 @@ import Data.Versions
import Data.Word8 import Data.Word8
import GHC.IO.Exception import GHC.IO.Exception
import HPath import HPath
import HPath.IO import HPath.IO hiding ( hideError )
import Haskus.Utils.Variant.Excepts import Haskus.Utils.Variant.Excepts
import Optics import Optics
import Prelude hiding ( abs import Prelude hiding ( abs
@@ -137,13 +137,18 @@ installGHCBin bDls ver pfreq@(PlatformRequest {..}) = do
lift $ $(logInfo) "Installing GHC (this may take a while)" lift $ $(logInfo) "Installing GHC (this may take a while)"
lEM $ execLogged "./configure" lEM $ execLogged "./configure"
False False
["--prefix=" <> toFilePath inst] (["--prefix=" <> toFilePath inst] ++ alpineArgs)
[rel|ghc-configure|] [rel|ghc-configure|]
(Just path) (Just path)
Nothing Nothing
lEM $ make ["install"] (Just path) lEM $ make ["install"] (Just path)
pure () pure ()
alpineArgs
| ver >= [vver|8.2.2|]
, Linux Alpine <- _rPlatform = ["--disable-ld-override"]
| otherwise = []
installCabalBin :: ( MonadMask m installCabalBin :: ( MonadMask m
, MonadCatch m , MonadCatch m

View File

@@ -62,12 +62,6 @@ ghc_7103_32_freebsd = DownloadInfo
(Just [rel|ghc-7.10.3|]) (Just [rel|ghc-7.10.3|])
"3dde05577c6f94dcb0ba201ebd53ab88553bbc9a3aa8e72237162ed7a9d588a3" "3dde05577c6f94dcb0ba201ebd53ab88553bbc9a3aa8e72237162ed7a9d588a3"
ghc_7103_64_musl :: DownloadInfo
ghc_7103_64_musl = DownloadInfo
[uri|https://github.com/redneb/ghc-alt-libc/releases/download/ghc-7.10.3-musl/ghc-7.10.3-x86_64-unknown-linux-musl.tar.xz|]
(Just [rel|ghc-7.10.3|])
"8b83dfa8b85ba45e24768337254e6eb23c0855df1a5168671a3a8090b6d0964e"
@@ -112,17 +106,17 @@ ghc_802_64_darwin = DownloadInfo
(Just [rel|ghc-8.0.2|]) (Just [rel|ghc-8.0.2|])
"ff50a2df9f002f33b9f09717ebf5ec5a47906b9b65cc57b1f9849f8b2e06788d" "ff50a2df9f002f33b9f09717ebf5ec5a47906b9b65cc57b1f9849f8b2e06788d"
ghc_802_64_musl :: DownloadInfo ghc_802_64_alpine :: DownloadInfo
ghc_802_64_musl = DownloadInfo ghc_802_64_alpine = DownloadInfo
[uri|https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.0.2-musl/ghc-8.0.2-x86_64-unknown-linux-musl.tar.xz|] [uri|https://files.hasufell.de/ghc/ghc-8.0.2-x86_64-alpine-linux.tar.xz|]
(Just [rel|ghc-8.0.2|]) (Just [rel|ghc-8.0.2|])
"7f9ef3e048ca6f2a2a589e6c168d8c7699fbe32b1b39a9d7c72eff9b26e90c67" "325b48b2ea199b4f62c16dc9c3ff99b42ea6bb1dde5a74fa640dfeb8d63894d0"
ghc_802_32_musl :: DownloadInfo ghc_802_32_alpine :: DownloadInfo
ghc_802_32_musl = DownloadInfo ghc_802_32_alpine = DownloadInfo
[uri|https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.0.2-musl/ghc-8.0.2-i386-unknown-linux-musl.tar.xz|] [uri|https://files.hasufell.de/ghc/ghc-8.0.2-i386-alpine-linux.tar.xz|]
(Just [rel|ghc-8.0.2|]) (Just [rel|ghc-8.0.2|])
"815c68181013cd3f4dc748ddb5502a5e7a1a4011ba57d8eff6d66da411c72e84" "b4cd12a1048b2fff2f23c9eec0dd3a1174d54d017f8d79ec79af4534118e6881"
@@ -180,6 +174,11 @@ ghc_822_64_freebsd11 = DownloadInfo
(Just [rel|ghc-8.2.2|]) (Just [rel|ghc-8.2.2|])
"cd351c704b92b9af23994024df07de8ca7090ea7675d5c8b14b2be857a46d804" "cd351c704b92b9af23994024df07de8ca7090ea7675d5c8b14b2be857a46d804"
ghc_822_32_alpine :: DownloadInfo
ghc_822_32_alpine = DownloadInfo
[uri|https://files.hasufell.de/ghc/ghc-8.2.2-i386-alpine-linux.tar.xz|]
(Just [rel|ghc-8.2.2|])
"467534c32552cfd318753112dbc70af003693aad4b0081f2a07e61f5b5ea2c22"
@@ -219,17 +218,6 @@ ghc_841_64_freebsd = DownloadInfo
(Just [rel|ghc-8.4.1|]) (Just [rel|ghc-8.4.1|])
"e748daec098445c6190090fe32bb2817a1140553be5acd2188e1af05ad24e5aa" "e748daec098445c6190090fe32bb2817a1140553be5acd2188e1af05ad24e5aa"
ghc_841_64_musl :: DownloadInfo
ghc_841_64_musl = DownloadInfo
[uri|https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.4.1-musl/ghc-8.4.1-x86_64-unknown-linux-musl.tar.xz|]
(Just [rel|ghc-8.4.1|])
"82d4ea6247a91e7e76065c0cdf66eec813ab679c1f24de0fb92c89bba3ef27f2"
ghc_841_32_musl :: DownloadInfo
ghc_841_32_musl = DownloadInfo
[uri|https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.4.1-musl/ghc-8.4.1-i386-unknown-linux-musl.tar.xz|]
(Just [rel|ghc-8.4.1|])
"e5feee34b58c1a1cd6c270fbe696c178a4649675398f4e0d56a4bfad9641b736"
@@ -275,17 +263,6 @@ ghc_842_64_freebsd = DownloadInfo
(Just [rel|ghc-8.4.2|]) (Just [rel|ghc-8.4.2|])
"e9ed417fdf94c2ff2c6e344ed16f332bf6b591511f6442c0d9ea94854882b66c" "e9ed417fdf94c2ff2c6e344ed16f332bf6b591511f6442c0d9ea94854882b66c"
ghc_842_64_musl :: DownloadInfo
ghc_842_64_musl = DownloadInfo
[uri|https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.4.2-musl/ghc-8.4.2-x86_64-unknown-linux-musl.tar.xz|]
(Just [rel|ghc-8.4.2|])
"3ebdb6e8001679e8722bd75a47805f1b3c1b25b37c4d237a7aaa4d66162f699f"
ghc_842_32_musl :: DownloadInfo
ghc_842_32_musl = DownloadInfo
[uri|https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.4.2-musl/ghc-8.4.2-i386-unknown-linux-musl.tar.xz|]
(Just [rel|ghc-8.4.2|])
"a43ac57214764717f0ffe515ef47b84e938f0a4fa8ff875773d6ba315b940835"
@@ -324,17 +301,6 @@ ghc_843_64_darwin = DownloadInfo
(Just [rel|ghc-8.4.3|]) (Just [rel|ghc-8.4.3|])
"af0b455f6c46b9802b4b48dad996619cfa27cc6e2bf2ce5532387b4a8c00aa64" "af0b455f6c46b9802b4b48dad996619cfa27cc6e2bf2ce5532387b4a8c00aa64"
ghc_843_64_musl :: DownloadInfo
ghc_843_64_musl = DownloadInfo
[uri|https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.4.3-musl/ghc-8.4.3-x86_64-unknown-linux-musl.tar.xz|]
(Just [rel|ghc-8.4.3|])
"0f05c67e3fd29a3f505abb77e9c39349d312cdc1a566263b8f4b227d085906bc"
ghc_843_32_musl :: DownloadInfo
ghc_843_32_musl = DownloadInfo
[uri|https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.4.3-musl/ghc-8.4.3-i386-unknown-linux-musl.tar.xz|]
(Just [rel|ghc-8.4.3|])
"3a9a1ceb8eef234023fc36600245a03772bcb46b2abac41f6394104feaec8c43"
@@ -386,17 +352,11 @@ ghc_844_64_freebsd = DownloadInfo
(Just [rel|ghc-8.4.4|]) (Just [rel|ghc-8.4.4|])
"44fbd142d1c355d6110595c59c760e2c73866ff9259ec85ebf814edb244d1940" "44fbd142d1c355d6110595c59c760e2c73866ff9259ec85ebf814edb244d1940"
ghc_844_64_musl :: DownloadInfo ghc_844_32_alpine :: DownloadInfo
ghc_844_64_musl = DownloadInfo ghc_844_32_alpine = DownloadInfo
[uri|https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.4.4-musl/ghc-8.4.4-x86_64-unknown-linux-musl.tar.xz|] [uri|https://files.hasufell.de/ghc/ghc-8.4.4-i386-alpine-linux.tar.xz|]
(Just [rel|ghc-8.4.4|]) (Just [rel|ghc-8.4.4|])
"e15f1cf02adb2cfb77a202050300a92f61456c6e1e90b543fec82d99da893a69" "892888d388ef5c9cadf5cfba1146d62237c25b9b066fb62fee940b2b285fd308"
ghc_844_32_musl :: DownloadInfo
ghc_844_32_musl = DownloadInfo
[uri|https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.4.4-musl/ghc-8.4.4-i386-unknown-linux-musl.tar.xz|]
(Just [rel|ghc-8.4.4|])
"356f49b1acee0b0267fd8ca687aede14d43cee1f231d7f8a37525d50f07e1428"
@@ -441,17 +401,6 @@ ghc_861_64_freebsd = DownloadInfo
(Just [rel|ghc-8.6.1|]) (Just [rel|ghc-8.6.1|])
"51403b054a3a649039ac988e1d1112561f96750bfced63df864091a3fab36f08" "51403b054a3a649039ac988e1d1112561f96750bfced63df864091a3fab36f08"
ghc_861_64_musl :: DownloadInfo
ghc_861_64_musl = DownloadInfo
[uri|https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.6.1-musl/ghc-8.6.1-x86_64-unknown-linux-musl.tar.xz|]
(Just [rel|ghc-8.6.1|])
"2668e12facfa9083150b01b1137693cb3de266a6f8ac8c6b44a2be3826c73177"
ghc_861_32_musl :: DownloadInfo
ghc_861_32_musl = DownloadInfo
[uri|https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.6.1-musl/ghc-8.6.1-i386-unknown-linux-musl.tar.xz|]
(Just [rel|ghc-8.6.1|])
"12b9b5b78be94b57d301b2a31eda145928110fd103fbbcc1e6e6966237a30ed2"
@@ -484,17 +433,6 @@ ghc_862_64_darwin = DownloadInfo
(Just [rel|ghc-8.6.2|]) (Just [rel|ghc-8.6.2|])
"8ec46a25872226dd7e5cf7271e3f3450c05f32144b96e6b9cb44cc4079db50dc" "8ec46a25872226dd7e5cf7271e3f3450c05f32144b96e6b9cb44cc4079db50dc"
ghc_862_64_musl :: DownloadInfo
ghc_862_64_musl = DownloadInfo
[uri|https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.6.2-musl/ghc-8.6.2-x86_64-unknown-linux-musl.tar.xz|]
(Just [rel|ghc-8.6.2|])
"5be9f98c25c49dbfb65223e2642335d4a45220f0c4044c8af70bbcaebe688467"
ghc_862_32_musl :: DownloadInfo
ghc_862_32_musl = DownloadInfo
[uri|https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.6.2-musl/ghc-8.6.2-i386-unknown-linux-musl.tar.xz|]
(Just [rel|ghc-8.6.2|])
"a1add75822258fbb6e57ad049919ef5f757bac10d3c7a6eaeee50d2521ffeb4e"
@@ -546,17 +484,6 @@ ghc_863_64_freebsd = DownloadInfo
(Just [rel|ghc-8.6.3|]) (Just [rel|ghc-8.6.3|])
"bc2419fa180f8a7808c49775987866435995df9bdd9ce08bcd38352d63ba6031" "bc2419fa180f8a7808c49775987866435995df9bdd9ce08bcd38352d63ba6031"
ghc_863_64_musl :: DownloadInfo
ghc_863_64_musl = DownloadInfo
[uri|https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.6.3-musl/ghc-8.6.3-x86_64-unknown-linux-musl.tar.xz|]
(Just [rel|ghc-8.6.3|])
"274f7ea959e6f1c830b33efd462ab9d0ff32d1cb5be051a2a318464d05d674dd"
ghc_863_32_musl :: DownloadInfo
ghc_863_32_musl = DownloadInfo
[uri|https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.6.3-musl/ghc-8.6.3-i386-unknown-linux-musl.tar.xz|]
(Just [rel|ghc-8.6.3|])
"dc0b53a7f0e52232930abcfad427ccd0917c90797203fbc7b5d72f5335d85a7d"
@@ -596,17 +523,6 @@ ghc_864_64_darwin = DownloadInfo
(Just [rel|ghc-8.6.4|]) (Just [rel|ghc-8.6.4|])
"cccb58f142fe41b601d73690809f6089f7715b6a50a09aa3d0104176ab4db09e" "cccb58f142fe41b601d73690809f6089f7715b6a50a09aa3d0104176ab4db09e"
ghc_864_64_musl :: DownloadInfo
ghc_864_64_musl = DownloadInfo
[uri|https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.6.4-musl/ghc-8.6.4-x86_64-unknown-linux-musl.tar.xz|]
(Just [rel|ghc-8.6.4|])
"ec73167bae1a173a9af07612df5fa1289e924f13ed9241339cb5617337cb2979"
ghc_864_32_musl :: DownloadInfo
ghc_864_32_musl = DownloadInfo
[uri|https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.6.4-musl/ghc-8.6.4-i386-unknown-linux-musl.tar.xz|]
(Just [rel|ghc-8.6.4|])
"21b39b89edadbb6ab5b98d46dfacc0fd0799f9b16465a05c64e48f41dcbb1f7a"
@@ -652,17 +568,17 @@ ghc_865_64_darwin = DownloadInfo
(Just [rel|ghc-8.6.5|]) (Just [rel|ghc-8.6.5|])
"dfc1bdb1d303a87a8552aa17f5b080e61351f2823c2b99071ec23d0837422169" "dfc1bdb1d303a87a8552aa17f5b080e61351f2823c2b99071ec23d0837422169"
ghc_865_64_musl :: DownloadInfo ghc_865_64_alpine :: DownloadInfo
ghc_865_64_musl = DownloadInfo ghc_865_64_alpine = DownloadInfo
[uri|https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.6.5-musl/ghc-8.6.5-x86_64-unknown-linux-musl.tar.xz|] [uri|https://files.hasufell.de/ghc/ghc-8.6.5-x86_64-alpine-linux.tar.xz|]
(Just [rel|ghc-8.6.5|]) (Just [rel|ghc-8.6.5|])
"ec6d0417822c3bfafc7aea0b0402294901231bc5d72dd17a2b849e3f44850695" "b9d3ed7f7aa24ef2d58bb579252289caa0b8877adee3685e3af2fb73d440afdc"
ghc_865_32_musl :: DownloadInfo ghc_865_32_alpine :: DownloadInfo
ghc_865_32_musl = DownloadInfo ghc_865_32_alpine = DownloadInfo
[uri|https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.6.5-musl/ghc-8.6.5-i386-unknown-linux-musl.tar.xz|] [uri|https://files.hasufell.de/ghc/ghc-8.6.5-i386-alpine-linux.tar.xz|]
(Just [rel|ghc-8.6.5|]) (Just [rel|ghc-8.6.5|])
"db13ff894faf431f9c64db21c090a1e4e42803794d56720a704c50166c7ca05d" "3737837550d9b177acfe150e3a3cd4545427ded020487c2ed5194d7b8f116349"
ghc_865_64_freebsd :: DownloadInfo ghc_865_64_freebsd :: DownloadInfo
ghc_865_64_freebsd = DownloadInfo ghc_865_64_freebsd = DownloadInfo
@@ -714,17 +630,6 @@ ghc_881_64_darwin = DownloadInfo
(Just [rel|ghc-8.8.1|]) (Just [rel|ghc-8.8.1|])
"38c8917b47c31bedf58c9305dfca3abe198d8d35570366f0773c4e2948bd8abe" "38c8917b47c31bedf58c9305dfca3abe198d8d35570366f0773c4e2948bd8abe"
ghc_881_64_musl :: DownloadInfo
ghc_881_64_musl = DownloadInfo
[uri|https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.8.1-musl/ghc-8.8.1-x86_64-unknown-linux-musl.tar.xz|]
(Just [rel|ghc-8.8.1|])
"029163c42a219983f4220d73c26b910c3ecf6eda45a3e5e27236e8a66b080890"
ghc_881_32_musl :: DownloadInfo
ghc_881_32_musl = DownloadInfo
[uri|https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.8.1-musl/ghc-8.8.1-i386-unknown-linux-musl.tar.xz|]
(Just [rel|ghc-8.8.1|])
"3f5462341a455a5677fba5cb24da8938878261069da5ee4234b1c6ac2d2ef77e"
@@ -770,17 +675,6 @@ ghc_882_64_darwin = DownloadInfo
(Just [rel|ghc-8.8.2|]) (Just [rel|ghc-8.8.2|])
"25c5c1a70036abf3f22b2b19c10d26adfdb08e8f8574f89d4b2042de5947f990" "25c5c1a70036abf3f22b2b19c10d26adfdb08e8f8574f89d4b2042de5947f990"
ghc_882_64_musl :: DownloadInfo
ghc_882_64_musl = DownloadInfo
[uri|https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.8.2-musl/ghc-8.8.2-x86_64-unknown-linux-musl.tar.xz|]
(Just [rel|ghc-8.8.2|])
"09d49c75b5626606409c982b23f70dec241a944928243f32d1b59b2005de6dea"
ghc_882_32_musl :: DownloadInfo
ghc_882_32_musl = DownloadInfo
[uri|https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.8.2-musl/ghc-8.8.2-i386-unknown-linux-musl.tar.xz|]
(Just [rel|ghc-8.8.2|])
"4ea4a81b6b5ba807c93b21b3cddf1f1b4b0fc1ce018cf6aa255a9ee40137b278"
@@ -826,18 +720,6 @@ ghc_883_64_darwin = DownloadInfo
(Just [rel|ghc-8.8.3|]) (Just [rel|ghc-8.8.3|])
"7016de90dd226b06fc79d0759c5d4c83c2ab01d8c678905442c28bd948dbb782" "7016de90dd226b06fc79d0759c5d4c83c2ab01d8c678905442c28bd948dbb782"
ghc_883_64_musl :: DownloadInfo
ghc_883_64_musl = DownloadInfo
[uri|https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.8.3-musl/ghc-8.8.3-x86_64-unknown-linux-musl.tar.xz|]
(Just [rel|ghc-8.8.3|])
"77a990d76dc10abe2ed19e5fcfef4095f0e9819d4ab84bec6d82f00dd85812a7"
ghc_883_32_musl :: DownloadInfo
ghc_883_32_musl = DownloadInfo
[uri|https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.8.3-musl/ghc-8.8.3-i386-unknown-linux-musl.tar.xz|]
(Just [rel|ghc-8.8.3|])
"7a5f41646d06777e75636291a1855d60a0984552bbdf33c3d107565d302f38a4"
ghc_883_64_freebsd :: DownloadInfo ghc_883_64_freebsd :: DownloadInfo
ghc_883_64_freebsd = DownloadInfo ghc_883_64_freebsd = DownloadInfo
[uri|https://files.hasufell.de/ghc/ghc-8.8.3-x86_64-portbld-freebsd.tar.xz|] [uri|https://files.hasufell.de/ghc/ghc-8.8.3-x86_64-portbld-freebsd.tar.xz|]
@@ -846,6 +728,62 @@ ghc_883_64_freebsd = DownloadInfo
-----------------
--[ GHC 8.8.4 ]--
-----------------
ghc_884_64_deb8 :: DownloadInfo
ghc_884_64_deb8 = DownloadInfo
[uri|https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-deb8-linux.tar.xz|]
(Just [rel|ghc-8.8.4|])
"51a36892f1264744195274187298d13ac62bce2da86d4ddf76d8054ab90f2feb"
ghc_884_64_deb9 :: DownloadInfo
ghc_884_64_deb9 = DownloadInfo
[uri|https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-deb9-linux.tar.xz|]
(Just [rel|ghc-8.8.4|])
"4862559d221153caf978f4bf2c15a82c114d1e1f43b298b2ecff2ac94b586d20"
ghc_884_32_deb9 :: DownloadInfo
ghc_884_32_deb9 = DownloadInfo
[uri|https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-i386-deb9-linux.tar.xz|]
(Just [rel|ghc-8.8.4|])
"43dd954910c9027694312cef0aabc7774d102d0422b7172802cfb72f7d5da3a0"
ghc_884_64_fedora :: DownloadInfo
ghc_884_64_fedora = DownloadInfo
[uri|https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-fedora27-linux.tar.xz|]
(Just [rel|ghc-8.8.4|])
"f32e37f8aa03e74bad533ae02f62dc27a4521e78199576af490888ba34b515db"
ghc_884_64_centos :: DownloadInfo
ghc_884_64_centos = DownloadInfo
[uri|https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-centos7-linux.tar.xz|]
(Just [rel|ghc-8.8.4|])
"a12aa4b1fd3c64240a8a6d15196d33e1c0e0d55b51ff78c387242126d0ef7910"
ghc_884_64_darwin :: DownloadInfo
ghc_884_64_darwin = DownloadInfo
[uri|https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-apple-darwin.tar.xz|]
(Just [rel|ghc-8.8.4|])
"e80a789e9d8cfb41dd87f3284b75432427c4461c1731d220d04ead8733ccdb5e"
ghc_884_64_freebsd :: DownloadInfo
ghc_884_64_freebsd = DownloadInfo
[uri|https://files.hasufell.de/ghc/ghc-8.8.4-x86_64-portbld-freebsd.tar.xz|]
(Just [rel|ghc-8.8.4|])
"8cebe5ccf454e82acd1ff52ca57590d1ab0f3f44a981b46257ec12158c8c447e"
ghc_884_64_alpine :: DownloadInfo
ghc_884_64_alpine = DownloadInfo
[uri|https://files.hasufell.de/ghc/ghc-8.8.4-x86_64-alpine-linux.tar.xz|]
(Just [rel|ghc-8.8.4|])
"90c6a1661de7f20c7d169cd6270125035b3332063e45103ce028df0beecf434e"
----------------- -----------------
--[ GHC 8.10.1 ]-- --[ GHC 8.10.1 ]--
----------------- -----------------
@@ -1039,32 +977,32 @@ cabal_3200_64_alpine = DownloadInfo
------------- -------------
ghcup_015_32_linux :: DownloadInfo ghcup_016_32_linux :: DownloadInfo
ghcup_015_32_linux = DownloadInfo ghcup_016_32_linux = DownloadInfo
[uri|https://downloads.haskell.org/~ghcup/0.1.5/i386-linux-ghcup-0.1.5|] [uri|https://downloads.haskell.org/~ghcup/0.1.6/i386-linux-ghcup-0.1.6|]
Nothing Nothing
"3707f60d703912709335dc0103fb1af5e5dfa83050825a8156b56bc81760b2a8" "0366ed6c00862c3c002cdefc3e37523ad80e655387956c7ab58b268aaa6fae5d"
ghcup_015_64_linux :: DownloadInfo ghcup_016_64_linux :: DownloadInfo
ghcup_015_64_linux = DownloadInfo ghcup_016_64_linux = DownloadInfo
[uri|https://downloads.haskell.org/~ghcup/0.1.5/x86_64-linux-ghcup-0.1.5|] [uri|https://downloads.haskell.org/~ghcup/0.1.6/x86_64-linux-ghcup-0.1.6|]
Nothing Nothing
"cfdb01dde77121859b5d90b6707238b54e23787fcbb3003e18ab52a5dbfee330" "bdbec0cdf4c8511c4082dd83993d15034c0fbcb5722ecf418c1cee40667da8af"
ghcup_015_64_freebsd :: DownloadInfo ghcup_016_64_freebsd :: DownloadInfo
ghcup_015_64_freebsd = DownloadInfo ghcup_016_64_freebsd = DownloadInfo
[uri|https://downloads.haskell.org/~ghcup/0.1.5/x86_64-portbld-freebsd-ghcup-0.1.5|] [uri|https://downloads.haskell.org/~ghcup/0.1.6/x86_64-portbld-freebsd-ghcup-0.1.6|]
Nothing Nothing
"6dd57cc5958ef3a6ba7de22808d9292d31dada8af95277578b69be35fc090194" "6bbfb1047691ff3ae9249e8805cf9f37bab30a008dae130cb2a4b3aa5253e6e5"
ghcup_015_64_darwin10_13 :: DownloadInfo ghcup_016_64_darwin10_13 :: DownloadInfo
ghcup_015_64_darwin10_13 = DownloadInfo ghcup_016_64_darwin10_13 = DownloadInfo
[uri|https://downloads.haskell.org/~ghcup/0.1.5/x86_64-apple-darwin-ghcup-0.1.5-p2|] [uri|https://downloads.haskell.org/~ghcup/0.1.6/x86_64-apple-darwin-ghcup-0.1.6|]
Nothing Nothing
"456770c3b1510d44a0e401e0677faa9f5670ef81a11646f47cbba1b95404e788" "1e025e66d7f7b75d94f17a7da6120efd7e2df918a8eac88c4711ed11d2aac4ec"
@@ -1105,7 +1043,6 @@ ghcupDownloads = M.fromList
) )
, (Darwin , M.fromList [(Nothing, ghc_7103_64_darwin)]) , (Darwin , M.fromList [(Nothing, ghc_7103_64_darwin)])
, (FreeBSD , M.fromList [(Nothing, ghc_7103_64_freebsd)]) , (FreeBSD , M.fromList [(Nothing, ghc_7103_64_freebsd)])
, (Linux Alpine, M.fromList [(Nothing, ghc_7103_64_musl)])
] ]
) )
, ( A_32 , ( A_32
@@ -1152,7 +1089,7 @@ ghcupDownloads = M.fromList
) )
, (Darwin , M.fromList [(Nothing, ghc_802_64_darwin)]) , (Darwin , M.fromList [(Nothing, ghc_802_64_darwin)])
, (FreeBSD , M.fromList [(Nothing, ghc_802_64_freebsd)]) , (FreeBSD , M.fromList [(Nothing, ghc_802_64_freebsd)])
, (Linux Alpine, M.fromList [(Nothing, ghc_802_64_musl)]) , (Linux Alpine , M.fromList [(Nothing, ghc_802_64_alpine)])
] ]
) )
, ( A_32 , ( A_32
@@ -1166,7 +1103,7 @@ ghcupDownloads = M.fromList
, (Just [vers|7|], ghc_802_32_deb7) , (Just [vers|7|], ghc_802_32_deb7)
] ]
) )
, (Linux Alpine, M.fromList [(Nothing, ghc_802_32_musl)]) , (Linux Alpine , M.fromList [(Nothing, ghc_802_32_alpine)])
] ]
) )
] ]
@@ -1219,6 +1156,7 @@ ghcupDownloads = M.fromList
, (Just [vers|7|], ghc_822_32_deb7) , (Just [vers|7|], ghc_822_32_deb7)
] ]
) )
, (Linux Alpine , M.fromList [(Nothing, ghc_822_32_alpine)])
] ]
) )
] ]
@@ -1246,7 +1184,6 @@ ghcupDownloads = M.fromList
, (Linux Debian, M.fromList [(Nothing, ghc_841_64_deb8)]) , (Linux Debian, M.fromList [(Nothing, ghc_841_64_deb8)])
, (Darwin , M.fromList [(Nothing, ghc_841_64_darwin)]) , (Darwin , M.fromList [(Nothing, ghc_841_64_darwin)])
, (FreeBSD , M.fromList [(Nothing, ghc_841_64_freebsd)]) , (FreeBSD , M.fromList [(Nothing, ghc_841_64_freebsd)])
, (Linux Alpine, M.fromList [(Nothing, ghc_841_64_musl)])
] ]
) )
, ( A_32 , ( A_32
@@ -1257,7 +1194,6 @@ ghcupDownloads = M.fromList
, (Linux Ubuntu, M.fromList [(Nothing, ghc_841_32_deb8)]) , (Linux Ubuntu, M.fromList [(Nothing, ghc_841_32_deb8)])
, (Linux Mint , M.fromList [(Nothing, ghc_841_32_deb8)]) , (Linux Mint , M.fromList [(Nothing, ghc_841_32_deb8)])
, (Linux Debian, M.fromList [(Nothing, ghc_841_32_deb8)]) , (Linux Debian, M.fromList [(Nothing, ghc_841_32_deb8)])
, (Linux Alpine, M.fromList [(Nothing, ghc_841_32_musl)])
] ]
) )
] ]
@@ -1296,7 +1232,6 @@ ghcupDownloads = M.fromList
) )
, (Darwin , M.fromList [(Nothing, ghc_842_64_darwin)]) , (Darwin , M.fromList [(Nothing, ghc_842_64_darwin)])
, (FreeBSD , M.fromList [(Nothing, ghc_842_64_freebsd)]) , (FreeBSD , M.fromList [(Nothing, ghc_842_64_freebsd)])
, (Linux Alpine, M.fromList [(Nothing, ghc_842_64_musl)])
] ]
) )
, ( A_32 , ( A_32
@@ -1307,7 +1242,6 @@ ghcupDownloads = M.fromList
, (Linux Ubuntu, M.fromList [(Nothing, ghc_842_32_deb8)]) , (Linux Ubuntu, M.fromList [(Nothing, ghc_842_32_deb8)])
, (Linux Mint , M.fromList [(Nothing, ghc_842_32_deb8)]) , (Linux Mint , M.fromList [(Nothing, ghc_842_32_deb8)])
, (Linux Debian, M.fromList [(Nothing, ghc_842_32_deb8)]) , (Linux Debian, M.fromList [(Nothing, ghc_842_32_deb8)])
, (Linux Alpine, M.fromList [(Nothing, ghc_842_32_musl)])
] ]
) )
] ]
@@ -1345,7 +1279,6 @@ ghcupDownloads = M.fromList
] ]
) )
, (Darwin , M.fromList [(Nothing, ghc_843_64_darwin)]) , (Darwin , M.fromList [(Nothing, ghc_843_64_darwin)])
, (Linux Alpine, M.fromList [(Nothing, ghc_843_64_musl)])
] ]
) )
, ( A_32 , ( A_32
@@ -1356,7 +1289,6 @@ ghcupDownloads = M.fromList
, (Linux Ubuntu, M.fromList [(Nothing, ghc_843_32_deb8)]) , (Linux Ubuntu, M.fromList [(Nothing, ghc_843_32_deb8)])
, (Linux Mint , M.fromList [(Nothing, ghc_843_32_deb8)]) , (Linux Mint , M.fromList [(Nothing, ghc_843_32_deb8)])
, (Linux Debian, M.fromList [(Nothing, ghc_843_32_deb8)]) , (Linux Debian, M.fromList [(Nothing, ghc_843_32_deb8)])
, (Linux Alpine, M.fromList [(Nothing, ghc_843_32_musl)])
] ]
) )
] ]
@@ -1400,7 +1332,6 @@ ghcupDownloads = M.fromList
) )
, (Darwin , M.fromList [(Nothing, ghc_844_64_darwin)]) , (Darwin , M.fromList [(Nothing, ghc_844_64_darwin)])
, (FreeBSD , M.fromList [(Nothing, ghc_844_64_freebsd)]) , (FreeBSD , M.fromList [(Nothing, ghc_844_64_freebsd)])
, (Linux Alpine, M.fromList [(Nothing, ghc_844_64_musl)])
] ]
) )
, ( A_32 , ( A_32
@@ -1411,7 +1342,7 @@ ghcupDownloads = M.fromList
, (Linux Ubuntu, M.fromList [(Nothing, ghc_844_32_deb8)]) , (Linux Ubuntu, M.fromList [(Nothing, ghc_844_32_deb8)])
, (Linux Mint , M.fromList [(Nothing, ghc_844_32_deb8)]) , (Linux Mint , M.fromList [(Nothing, ghc_844_32_deb8)])
, (Linux Debian, M.fromList [(Nothing, ghc_844_32_deb8)]) , (Linux Debian, M.fromList [(Nothing, ghc_844_32_deb8)])
, (Linux Alpine, M.fromList [(Nothing, ghc_844_32_musl)]) , (Linux Alpine, M.fromList [(Nothing, ghc_844_32_alpine)])
] ]
) )
] ]
@@ -1450,7 +1381,6 @@ ghcupDownloads = M.fromList
) )
, (Darwin , M.fromList [(Nothing, ghc_861_64_darwin)]) , (Darwin , M.fromList [(Nothing, ghc_861_64_darwin)])
, (FreeBSD , M.fromList [(Nothing, ghc_861_64_freebsd)]) , (FreeBSD , M.fromList [(Nothing, ghc_861_64_freebsd)])
, (Linux Alpine, M.fromList [(Nothing, ghc_861_64_musl)])
] ]
) )
, ( A_32 , ( A_32
@@ -1461,7 +1391,6 @@ ghcupDownloads = M.fromList
, (Linux Ubuntu, M.fromList [(Nothing, ghc_861_32_deb8)]) , (Linux Ubuntu, M.fromList [(Nothing, ghc_861_32_deb8)])
, (Linux Mint , M.fromList [(Nothing, ghc_861_32_deb8)]) , (Linux Mint , M.fromList [(Nothing, ghc_861_32_deb8)])
, (Linux Debian, M.fromList [(Nothing, ghc_861_32_deb8)]) , (Linux Debian, M.fromList [(Nothing, ghc_861_32_deb8)])
, (Linux Alpine, M.fromList [(Nothing, ghc_861_32_musl)])
] ]
) )
] ]
@@ -1494,7 +1423,6 @@ ghcupDownloads = M.fromList
, (Linux Mint , M.fromList [(Nothing, ghc_862_64_deb8)]) , (Linux Mint , M.fromList [(Nothing, ghc_862_64_deb8)])
, (Linux Debian, M.fromList [(Nothing, ghc_862_64_deb8)]) , (Linux Debian, M.fromList [(Nothing, ghc_862_64_deb8)])
, (Darwin , M.fromList [(Nothing, ghc_862_64_darwin)]) , (Darwin , M.fromList [(Nothing, ghc_862_64_darwin)])
, (Linux Alpine, M.fromList [(Nothing, ghc_862_64_musl)])
] ]
) )
, ( A_32 , ( A_32
@@ -1505,7 +1433,6 @@ ghcupDownloads = M.fromList
, (Linux Ubuntu, M.fromList [(Nothing, ghc_862_32_deb8)]) , (Linux Ubuntu, M.fromList [(Nothing, ghc_862_32_deb8)])
, (Linux Mint , M.fromList [(Nothing, ghc_862_32_deb8)]) , (Linux Mint , M.fromList [(Nothing, ghc_862_32_deb8)])
, (Linux Debian, M.fromList [(Nothing, ghc_862_32_deb8)]) , (Linux Debian, M.fromList [(Nothing, ghc_862_32_deb8)])
, (Linux Alpine, M.fromList [(Nothing, ghc_862_32_musl)])
] ]
) )
] ]
@@ -1549,7 +1476,6 @@ ghcupDownloads = M.fromList
) )
, (Darwin , M.fromList [(Nothing, ghc_863_64_darwin)]) , (Darwin , M.fromList [(Nothing, ghc_863_64_darwin)])
, (FreeBSD , M.fromList [(Nothing, ghc_863_64_freebsd)]) , (FreeBSD , M.fromList [(Nothing, ghc_863_64_freebsd)])
, (Linux Alpine, M.fromList [(Nothing, ghc_863_64_musl)])
] ]
) )
, ( A_32 , ( A_32
@@ -1560,7 +1486,6 @@ ghcupDownloads = M.fromList
, (Linux Ubuntu, M.fromList [(Nothing, ghc_863_32_deb8)]) , (Linux Ubuntu, M.fromList [(Nothing, ghc_863_32_deb8)])
, (Linux Mint , M.fromList [(Nothing, ghc_863_32_deb8)]) , (Linux Mint , M.fromList [(Nothing, ghc_863_32_deb8)])
, (Linux Debian, M.fromList [(Nothing, ghc_863_32_deb8)]) , (Linux Debian, M.fromList [(Nothing, ghc_863_32_deb8)])
, (Linux Alpine, M.fromList [(Nothing, ghc_863_32_musl)])
] ]
) )
] ]
@@ -1598,7 +1523,6 @@ ghcupDownloads = M.fromList
] ]
) )
, (Darwin , M.fromList [(Nothing, ghc_864_64_darwin)]) , (Darwin , M.fromList [(Nothing, ghc_864_64_darwin)])
, (Linux Alpine, M.fromList [(Nothing, ghc_864_64_musl)])
] ]
) )
, ( A_32 , ( A_32
@@ -1609,7 +1533,6 @@ ghcupDownloads = M.fromList
, (Linux Ubuntu, M.fromList [(Nothing, ghc_864_32_deb9)]) , (Linux Ubuntu, M.fromList [(Nothing, ghc_864_32_deb9)])
, (Linux Mint , M.fromList [(Nothing, ghc_864_32_deb9)]) , (Linux Mint , M.fromList [(Nothing, ghc_864_32_deb9)])
, (Linux Debian, M.fromList [(Nothing, ghc_864_32_deb9)]) , (Linux Debian, M.fromList [(Nothing, ghc_864_32_deb9)])
, (Linux Alpine, M.fromList [(Nothing, ghc_864_32_musl)])
] ]
) )
] ]
@@ -1652,8 +1575,8 @@ ghcupDownloads = M.fromList
] ]
) )
, (Darwin , M.fromList [(Nothing, ghc_865_64_darwin)]) , (Darwin , M.fromList [(Nothing, ghc_865_64_darwin)])
, (Linux Alpine, M.fromList [(Nothing, ghc_865_64_musl)]) , (Linux Alpine, M.fromList [(Nothing, ghc_865_64_alpine)])
, (FreeBSD, M.fromList [(Nothing, ghc_865_64_freebsd)]) , (FreeBSD , M.fromList [(Nothing, ghc_865_64_freebsd)])
] ]
) )
, ( A_32 , ( A_32
@@ -1664,7 +1587,7 @@ ghcupDownloads = M.fromList
, (Linux Ubuntu, M.fromList [(Nothing, ghc_865_32_deb9)]) , (Linux Ubuntu, M.fromList [(Nothing, ghc_865_32_deb9)])
, (Linux Mint , M.fromList [(Nothing, ghc_865_32_deb9)]) , (Linux Mint , M.fromList [(Nothing, ghc_865_32_deb9)])
, (Linux Debian, M.fromList [(Nothing, ghc_865_32_deb9)]) , (Linux Debian, M.fromList [(Nothing, ghc_865_32_deb9)])
, (Linux Alpine, M.fromList [(Nothing, ghc_865_32_musl)]) , (Linux Alpine, M.fromList [(Nothing, ghc_865_32_alpine)])
] ]
) )
] ]
@@ -1707,7 +1630,6 @@ ghcupDownloads = M.fromList
] ]
) )
, (Darwin , M.fromList [(Nothing, ghc_881_64_darwin)]) , (Darwin , M.fromList [(Nothing, ghc_881_64_darwin)])
, (Linux Alpine, M.fromList [(Nothing, ghc_881_64_musl)])
] ]
) )
, ( A_32 , ( A_32
@@ -1718,7 +1640,6 @@ ghcupDownloads = M.fromList
, (Linux Ubuntu, M.fromList [(Nothing, ghc_881_32_deb9)]) , (Linux Ubuntu, M.fromList [(Nothing, ghc_881_32_deb9)])
, (Linux Mint , M.fromList [(Nothing, ghc_881_32_deb9)]) , (Linux Mint , M.fromList [(Nothing, ghc_881_32_deb9)])
, (Linux Debian, M.fromList [(Nothing, ghc_881_32_deb9)]) , (Linux Debian, M.fromList [(Nothing, ghc_881_32_deb9)])
, (Linux Alpine, M.fromList [(Nothing, ghc_881_32_musl)])
] ]
) )
] ]
@@ -1761,7 +1682,6 @@ ghcupDownloads = M.fromList
] ]
) )
, (Darwin , M.fromList [(Nothing, ghc_882_64_darwin)]) , (Darwin , M.fromList [(Nothing, ghc_882_64_darwin)])
, (Linux Alpine, M.fromList [(Nothing, ghc_882_64_musl)])
] ]
) )
, ( A_32 , ( A_32
@@ -1772,7 +1692,6 @@ ghcupDownloads = M.fromList
, (Linux Ubuntu, M.fromList [(Nothing, ghc_882_32_deb9)]) , (Linux Ubuntu, M.fromList [(Nothing, ghc_882_32_deb9)])
, (Linux Mint , M.fromList [(Nothing, ghc_882_32_deb9)]) , (Linux Mint , M.fromList [(Nothing, ghc_882_32_deb9)])
, (Linux Debian, M.fromList [(Nothing, ghc_882_32_deb9)]) , (Linux Debian, M.fromList [(Nothing, ghc_882_32_deb9)])
, (Linux Alpine, M.fromList [(Nothing, ghc_882_32_musl)])
] ]
) )
] ]
@@ -1815,7 +1734,6 @@ ghcupDownloads = M.fromList
] ]
) )
, (Darwin , M.fromList [(Nothing, ghc_883_64_darwin)]) , (Darwin , M.fromList [(Nothing, ghc_883_64_darwin)])
, (Linux Alpine, M.fromList [(Nothing, ghc_883_64_musl)])
, (FreeBSD , M.fromList [(Nothing, ghc_883_64_freebsd)]) , (FreeBSD , M.fromList [(Nothing, ghc_883_64_freebsd)])
] ]
) )
@@ -1827,7 +1745,60 @@ ghcupDownloads = M.fromList
, (Linux Ubuntu, M.fromList [(Nothing, ghc_883_32_deb9)]) , (Linux Ubuntu, M.fromList [(Nothing, ghc_883_32_deb9)])
, (Linux Mint , M.fromList [(Nothing, ghc_883_32_deb9)]) , (Linux Mint , M.fromList [(Nothing, ghc_883_32_deb9)])
, (Linux Debian, M.fromList [(Nothing, ghc_883_32_deb9)]) , (Linux Debian, M.fromList [(Nothing, ghc_883_32_deb9)])
, (Linux Alpine, M.fromList [(Nothing, ghc_883_32_musl)]) ]
)
]
)
, ( [vver|8.8.4|]
, VersionInfo
[Base [pver|4.13.0.0|]]
(Just
[uri|https://downloads.haskell.org/~ghc/8.8.4/docs/html/users_guide/8.8.4-notes.html|]
)
(Just $ DownloadInfo
[uri|https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-src.tar.xz|]
(Just [rel|ghc-8.8.4|])
"f0505e38b2235ff9f1090b51f44d6c8efd371068e5a6bb42a2a6d8b67b5ffc2d"
)
$ M.fromList
[ ( A_64
, M.fromList
[ ( Linux UnknownLinux
, M.fromList [(Nothing, ghc_884_64_fedora)]
)
, (Linux Fedora, M.fromList [(Nothing, ghc_884_64_fedora)])
, (Linux CentOS, M.fromList [(Nothing, ghc_884_64_centos)])
, (Linux RedHat, M.fromList [(Nothing, ghc_884_64_centos)])
, ( Linux AmazonLinux
, M.fromList [(Nothing, ghc_884_64_centos)]
)
, ( Linux Ubuntu
, M.fromList
[ (Nothing , ghc_884_64_fedora)
, (Just [vers|16.04|], ghc_884_64_deb9)
, (Just [vers|18.04|], ghc_884_64_deb9)
]
)
, (Linux Mint, M.fromList [(Nothing, ghc_884_64_deb9)])
, ( Linux Debian
, M.fromList
[ (Nothing , ghc_884_64_deb9)
, (Just [vers|8|], ghc_884_64_deb8)
]
)
, (Darwin, M.fromList [(Nothing, ghc_884_64_darwin)])
, (Linux Alpine, M.fromList [(Nothing, ghc_884_64_alpine)])
, (FreeBSD , M.fromList [(Nothing, ghc_884_64_freebsd)])
]
)
, ( A_32
, M.fromList
[ ( Linux UnknownLinux
, M.fromList [(Nothing, ghc_884_32_deb9)]
)
, (Linux Ubuntu, M.fromList [(Nothing, ghc_884_32_deb9)])
, (Linux Mint , M.fromList [(Nothing, ghc_884_32_deb9)])
, (Linux Debian, M.fromList [(Nothing, ghc_884_32_deb9)])
] ]
) )
] ]
@@ -2005,7 +1976,7 @@ ghcupDownloads = M.fromList
) )
, ( GHCup , ( GHCup
, M.fromList , M.fromList
[ ( [vver|0.1.5|] [ ( [vver|0.1.6|]
, VersionInfo , VersionInfo
[Recommended, Latest] [Recommended, Latest]
(Just (Just
@@ -2016,16 +1987,16 @@ ghcupDownloads = M.fromList
[ ( A_64 [ ( A_64
, M.fromList , M.fromList
[ ( Linux UnknownLinux [ ( Linux UnknownLinux
, M.fromList [(Nothing, ghcup_015_64_linux)] , M.fromList [(Nothing, ghcup_016_64_linux)]
) )
, (Darwin , M.fromList [(Nothing, ghcup_015_64_darwin10_13)]) , (Darwin , M.fromList [(Nothing, ghcup_016_64_darwin10_13)])
, (FreeBSD, M.fromList [(Nothing, ghcup_015_64_freebsd)]) , (FreeBSD, M.fromList [(Nothing, ghcup_016_64_freebsd)])
] ]
) )
, ( A_32 , ( A_32
, M.fromList , M.fromList
[ ( Linux UnknownLinux [ ( Linux UnknownLinux
, M.fromList [(Nothing, ghcup_015_32_linux)] , M.fromList [(Nothing, ghcup_016_32_linux)]
) )
] ]
) )

View File

@@ -50,7 +50,7 @@ import Data.Versions
import Data.Word8 import Data.Word8
import GHC.IO.Exception import GHC.IO.Exception
import HPath import HPath
import HPath.IO as HIO import HPath.IO as HIO hiding ( hideError )
import Haskus.Utils.Variant.Excepts import Haskus.Utils.Variant.Excepts
import Optics import Optics
import Prelude hiding ( abs import Prelude hiding ( abs
@@ -270,7 +270,10 @@ getDownloadInfo :: Tool
getDownloadInfo t v (PlatformRequest a p mv) dls = maybe getDownloadInfo t v (PlatformRequest a p mv) dls = maybe
(Left NoDownload) (Left NoDownload)
Right Right
(with_distro <|> without_distro_ver <|> without_distro) (case p of
-- non-musl won't work on alpine
Linux Alpine -> with_distro <|> without_distro_ver
_ -> with_distro <|> without_distro_ver <|> without_distro)
where where
with_distro = distro_preview id id with_distro = distro_preview id id

View File

@@ -45,7 +45,7 @@ import Data.Versions
import Data.Word8 import Data.Word8
import GHC.IO.Exception import GHC.IO.Exception
import HPath import HPath
import HPath.IO import HPath.IO hiding ( hideError )
import Haskus.Utils.Variant.Excepts import Haskus.Utils.Variant.Excepts
import Optics import Optics
import Prelude hiding ( abs import Prelude hiding ( abs

View File

@@ -14,17 +14,20 @@ import Control.Exception ( evaluate )
import Control.Exception.Safe import Control.Exception.Safe
import Control.Monad import Control.Monad
import Control.Monad.Reader import Control.Monad.Reader
import Control.Monad.Trans.State.Strict
import Data.ByteString ( ByteString ) import Data.ByteString ( ByteString )
import Data.Foldable import Data.Foldable
import Data.Functor import Data.Functor
import Data.IORef import Data.IORef
import Data.Maybe import Data.Maybe
import Data.Sequence ( Seq, (|>) )
import Data.Text ( Text ) import Data.Text ( Text )
import Data.Void import Data.Void
import Data.Word8
import GHC.IO.Exception import GHC.IO.Exception
import HPath import HPath
import HPath.IO import HPath.IO hiding ( hideError )
import Optics import Optics hiding ((<|), (|>))
import System.Console.Pretty import System.Console.Pretty
import System.Console.Regions import System.Console.Regions
import System.IO.Error import System.IO.Error
@@ -40,6 +43,7 @@ import Text.Regex.Posix
import qualified Control.Exception as EX import qualified Control.Exception as EX
import qualified Data.Sequence as Sq
import qualified Data.Text as T import qualified Data.Text as T
import qualified Data.Text.Encoding as E import qualified Data.Text.Encoding as E
import qualified System.Posix.Process.ByteString import qualified System.Posix.Process.ByteString
@@ -53,6 +57,7 @@ import qualified "unix-bytestring" System.Posix.IO.ByteString
-- | Bool signals whether the regions should be cleaned. -- | Bool signals whether the regions should be cleaned.
data StopThread = StopThread Bool data StopThread = StopThread Bool
deriving Show deriving Show
@@ -113,115 +118,140 @@ execLogged :: (MonadReader Settings m, MonadIO m, MonadThrow m)
-> Maybe [(ByteString, ByteString)] -- ^ optional environment -> Maybe [(ByteString, ByteString)] -- ^ optional environment
-> m (Either ProcessError ()) -> m (Either ProcessError ())
execLogged exe spath args lfile chdir env = do execLogged exe spath args lfile chdir env = do
Settings{..} <- ask Settings {..} <- ask
ldir <- liftIO ghcupLogsDir ldir <- liftIO ghcupLogsDir
logfile <- (ldir </>) <$> parseRel (toFilePath lfile <> ".log") logfile <- (ldir </>) <$> parseRel (toFilePath lfile <> ".log")
liftIO $ bracket (createFile (toFilePath logfile) newFilePerms) closeFd (action verbose) liftIO $ bracket (createFile (toFilePath logfile) newFilePerms)
closeFd
(action verbose)
where where
action verbose fd = do action verbose fd = do
actionWithPipes $ \(stdoutRead, stdoutWrite) -> do actionWithPipes $ \(stdoutRead, stdoutWrite) -> do
-- start the thread that logs to stdout in a region -- start the thread that logs to stdout
done <- newEmptyMVar pState <- newEmptyMVar
tid <- done <- newEmptyMVar
forkIO void
$ forkOS
$ EX.handle (\(_ :: StopThread) -> pure ()) $ EX.handle (\(_ :: StopThread) -> pure ())
$ EX.handle (\(_ :: IOException) -> pure ()) $ EX.handle (\(_ :: IOException) -> pure ())
$ flip finally (putMVar done ()) $ flip finally (putMVar done ())
$ (if verbose then tee fd stdoutRead else printToRegion fd stdoutRead 6) $ (if verbose
then tee fd stdoutRead
else printToRegion fd stdoutRead 6 pState
)
-- fork our subprocess -- fork the subprocess
pid <- SPPB.forkProcess $ do pid <- SPPB.forkProcess $ do
void $ dupTo stdoutWrite stdOutput void $ dupTo stdoutWrite stdOutput
void $ dupTo stdoutWrite stdError void $ dupTo stdoutWrite stdError
closeFd stdoutWrite
closeFd stdoutRead closeFd stdoutRead
closeFd stdoutWrite
-- execute the action -- execute the action
maybe (pure ()) (changeWorkingDirectory . toFilePath) chdir maybe (pure ()) (changeWorkingDirectory . toFilePath) chdir
SPPB.executeFile exe spath args env void $ SPPB.executeFile exe spath args env
closeFd stdoutWrite closeFd stdoutWrite
-- wait for the subprocess to finish -- wait for the subprocess to finish
e <- SPPB.getProcessStatus True True pid >>= \case e <- toProcessError exe args <$!> SPPB.getProcessStatus True True pid
i@(Just (SPPB.Exited _)) -> pure $ toProcessError exe args i putMVar pState (either (const False) (const True) e)
i -> pure $ toProcessError exe args i
-- make sure the logging thread stops
case e of
Left _ -> EX.throwTo tid (StopThread False)
Right _ -> EX.throwTo tid (StopThread True)
takeMVar done takeMVar done
closeFd stdoutRead closeFd stdoutRead
pure e pure e
tee fileFd fdIn = do tee :: Fd -> Fd -> IO ()
flip finally (readTilEOF lineAction fdIn) -- make sure the last few lines don't get cut off tee fileFd fdIn = readTilEOF lineAction fdIn
$ do
hideError eofErrorType $ readTilEOF lineAction fdIn
forever (threadDelay 5000)
where where
lineAction :: ByteString -> IO ()
lineAction bs' = do lineAction bs' = do
void $ SPIB.fdWrite fileFd (bs' <> "\n") void $ SPIB.fdWrite fileFd (bs' <> "\n")
void $ SPIB.fdWrite stdOutput (bs' <> "\n") void $ SPIB.fdWrite stdOutput (bs' <> "\n")
-- Reads fdIn and logs the output in a continous scrolling area -- Reads fdIn and logs the output in a continous scrolling area
-- of 'size' terminal lines. Also writes to a log file. -- of 'size' terminal lines. Also writes to a log file.
printToRegion fileFd fdIn size = do printToRegion :: Fd -> Fd -> Int -> MVar Bool -> IO ()
ref <- newIORef ([] :: [ByteString]) printToRegion fileFd fdIn size pState = do
displayConsoleRegions $ do void $ displayConsoleRegions $ do
rs <- sequence . replicate size . openConsoleRegion $ Linear rs <-
flip finally (readTilEOF (lineAction ref rs) fdIn) -- make sure the last few lines don't get cut off liftIO
. fmap Sq.fromList
. sequence
. replicate size
. openConsoleRegion
$ Linear
flip runStateT mempty
$ handle $ handle
(\(StopThread b) -> do (\(ex :: SomeException) -> do
when b (forM_ rs closeConsoleRegion) ps <- liftIO $ takeMVar pState
EX.throw (StopThread b) when (ps == True) (forM_ rs (liftIO . closeConsoleRegion))
throw ex
) )
$ do $ readTilEOF (lineAction rs) fdIn
hideError eofErrorType $ readTilEOF (lineAction ref rs) fdIn
-- wait for explicit stop from the parent to signal what cleanup to run
forever (threadDelay 5000)
where where
-- action to perform line by line -- action to perform line by line
-- TODO: do this with vty for efficiency -- TODO: do this with vty for efficiency
lineAction ref rs bs' = do lineAction :: (MonadMask m, MonadIO m)
modifyIORef' ref (swapRegs bs') => Seq ConsoleRegion
regs <- readIORef ref -> ByteString
void $ SPIB.fdWrite fileFd (bs' <> "\n") -> StateT (Seq ByteString) m ()
forM (zip regs rs) $ \(bs, r) -> do lineAction rs = \bs' -> do
setConsoleRegion r $ do void $ liftIO $ SPIB.fdWrite fileFd (bs' <> "\n")
w <- consoleWidth modify (swapRegs bs')
return regs <- get
. T.pack liftIO $ forM_ (Sq.zip regs rs) $ \(bs, r) -> setConsoleRegion r $ do
. color Blue w <- consoleWidth
. T.unpack return
. decUTF8Safe . T.pack
. trim w . color Blue
. (\b -> "[ " <> toFilePath lfile <> " ] " <> b) . T.unpack
$ bs . decUTF8Safe
. trim w
. (\b -> "[ " <> toFilePath lfile <> " ] " <> b)
$ bs
swapRegs bs regs | length regs < size = regs ++ [bs] swapRegs :: a -> Seq a -> Seq a
| otherwise = tail regs ++ [bs] swapRegs bs = \regs -> if
| Sq.length regs < size -> regs |> bs
| otherwise -> Sq.drop 1 regs |> bs
-- trim output line to terminal width -- trim output line to terminal width
trim w bs | BS.length bs > w && w > 5 = BS.take (w - 4) bs <> "..." trim :: Int -> ByteString -> ByteString
| otherwise = bs trim w = \bs -> if
| BS.length bs > w && w > 5 -> BS.take (w - 4) bs <> "..."
| otherwise -> bs
-- read an entire line from the file descriptor (removes the newline char) -- read an entire line from the file descriptor (removes the newline char)
readLine fd' = do readLine :: MonadIO m => Fd -> ByteString -> m (ByteString, ByteString)
bs <- SPIB.fdRead fd' 1 readLine fd = go
if where
| bs == "\n" -> pure "" go inBs = do
| bs == "" -> pure "" bs <-
| otherwise -> fmap (bs <>) $ readLine fd' liftIO
$ handleIO (\e -> if isEOFError e then pure "" else ioError e)
$ SPIB.fdRead fd 512
let nbs = BS.append inBs bs
(line, rest) = BS.span (/= _lf) nbs
if
| BS.length rest /= 0 -> pure (line, BS.tail rest)
| BS.length line == 0 -> pure (mempty, mempty)
| otherwise -> (\(l, r) -> (line <> l, r)) <$!> go mempty
readTilEOF action' fd' = do readTilEOF :: MonadIO m => (ByteString -> m a) -> Fd -> m ()
bs <- readLine fd' readTilEOF ~action' fd' = go mempty
void $ action' bs where
readTilEOF action' fd' go bs' = do
(bs, rest) <- readLine fd' bs'
if
| BS.length bs == 0 -> liftIO
$ ioError (mkIOError eofErrorType "" Nothing Nothing)
| otherwise -> do
void $ action' bs
go rest
-- | Capture the stdout and stderr of the given action, which -- | Capture the stdout and stderr of the given action, which

View File

@@ -165,6 +165,11 @@ liftIOException errType ex =
. lift . lift
-- | Uses safe-exceptions.
hideError :: (MonadIO m, MonadCatch m) => IOErrorType -> m () -> m ()
hideError err = handleIO (\e -> if err == ioeGetErrorType e then pure () else liftIO . ioError $ e)
hideErrorDef :: [IOErrorType] -> a -> IO a -> IO a hideErrorDef :: [IOErrorType] -> a -> IO a -> IO a
hideErrorDef errs def = hideErrorDef errs def =
handleIO (\e -> if ioeGetErrorType e `elem` errs then pure def else ioError e) handleIO (\e -> if ioeGetErrorType e `elem` errs then pure def else ioError e)

View File

@@ -16,7 +16,7 @@ ghcupURL :: URI
ghcupURL = [uri|https://www.haskell.org/ghcup/data/ghcup-0.0.2.json|] ghcupURL = [uri|https://www.haskell.org/ghcup/data/ghcup-0.0.2.json|]
ghcUpVer :: PVP ghcUpVer :: PVP
ghcUpVer = [pver|0.1.5|] ghcUpVer = [pver|0.1.7|]
numericVer :: String numericVer :: String
numericVer = T.unpack . prettyPVP $ ghcUpVer numericVer = T.unpack . prettyPVP $ ghcUpVer