From 00fd6f53b927d9b4be8f18e08e333ac4940f49eb Mon Sep 17 00:00:00 2001 From: Julian Ospald Date: Tue, 11 Jun 2019 11:21:52 +0800 Subject: [PATCH] Add GHC alpine supprt wrt #82 * the bindists are not official * we have to allow curl to follow redirects, because github hosts on AWS * bindists are built without haddock support, so those symlinks must be conditional for now, see https://github.com/redneb/ghc-alt-libc/issues/5 --- .download-urls | 19 +++++++++++++++++++ .requirements/ghc/alpine | 1 + ghcup | 14 ++++++++++---- 3 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 .requirements/ghc/alpine diff --git a/.download-urls b/.download-urls index 6ac814a..0a79c60 100644 --- a/.download-urls +++ b/.download-urls @@ -19,6 +19,10 @@ ghc 8.0.2 x86_64 debian=8,debian,ubuntu,mint,unknown https://downloads.haskel ghc 8.0.2 i386 debian=8,debian,ubuntu,mint,unknown https://downloads.haskell.org/~ghc/8.0.2/ghc-8.0.2-i386-deb8-linux.tar.xz ghc 8.0.2 x86_64 darwin https://downloads.haskell.org/~ghc/8.0.2/ghc-8.0.2-x86_64-apple-darwin.tar.xz ghc 8.0.2 x86_64 freebsd=9,freebsd=10,freebsd=11 https://downloads.haskell.org/~ghc/8.0.2/ghc-8.0.2-x86_64-portbld-freebsd.tar.xz +ghc 8.0.2 x86_64 alpine 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 +ghc 8.0.2 i386 alpine https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.0.2-musl/ghc-8.0.2-i386-unknown-linux-musl.tar.xz + + ghc 8.2.2 x86_64 debian=7 https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-x86_64-deb7-linux.tar.xz ghc 8.2.2 i386 debian=7 https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-i386-deb7-linux.tar.xz @@ -34,6 +38,8 @@ ghc 8.4.3 x86_64 debian=8 https://downloads.haskel ghc 8.4.3 x86_64 debian=9,debian,ubuntu,mint https://downloads.haskell.org/~ghc/8.4.3/ghc-8.4.3-x86_64-deb9-linux.tar.xz ghc 8.4.3 x86_64 fedora=27,fedora,unknown https://downloads.haskell.org/~ghc/8.4.3/ghc-8.4.3-x86_64-fedora27-linux.tar.xz ghc 8.4.3 x86_64 darwin https://downloads.haskell.org/~ghc/8.4.3/ghc-8.4.3-x86_64-apple-darwin.tar.xz +ghc 8.4.3 i386 alpine https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.4.3-musl/ghc-8.4.3-i386-unknown-linux-musl.tar.xz +ghc 8.4.3 x86_64 alpine 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 ghc 8.4.4 i386 debian=8,debian,ubuntu,mint,unknown https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-i386-deb8-linux.tar.xz ghc 8.4.4 x86_64 debian=8 https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-deb8-linux.tar.xz @@ -42,6 +48,8 @@ ghc 8.4.4 x86_64 centos=7,centos,amazonlinux https://downloads.haskel ghc 8.4.4 x86_64 fedora=27,fedora,unknown https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-fedora27-linux.tar.xz ghc 8.4.4 x86_64 darwin https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-apple-darwin.tar.xz ghc 8.4.4 x86_64 freebsd=11 https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-portbld-freebsd11.tar.xz +ghc 8.4.4 i386 alpine https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.4.4-musl/ghc-8.4.4-i386-unknown-linux-musl.tar.xz +ghc 8.4.4 x86_64 alpine 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 ghc 8.6.1 i386 debian=8,debian,ubuntu,mint,unknown https://downloads.haskell.org/~ghc/8.6.1/ghc-8.6.1-i386-deb8-linux.tar.xz ghc 8.6.1 x86_64 debian=8 https://downloads.haskell.org/~ghc/8.6.1/ghc-8.6.1-x86_64-deb8-linux.tar.xz @@ -49,11 +57,16 @@ ghc 8.6.1 x86_64 debian=9,debian,ubuntu,mint https://downloads.haskel ghc 8.6.1 x86_64 fedora=27,fedora,unknown https://downloads.haskell.org/~ghc/8.6.1/ghc-8.6.1-x86_64-fedora27-linux.tar.xz ghc 8.6.1 x86_64 darwin https://downloads.haskell.org/~ghc/8.6.1/ghc-8.6.1-x86_64-apple-darwin.tar.xz ghc 8.6.1 x86_64 freebsd https://downloads.haskell.org/~ghc/8.6.1/ghc-8.6.1-x86_64-portbld-freebsd.tar.xz +ghc 8.6.1 i386 alpine https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.6.1-musl/ghc-8.6.1-i386-unknown-linux-musl.tar.xz +ghc 8.6.1 x86_64 alpine 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 ghc 8.6.2 i386 debian=8,debian,ubuntu,mint,unknown https://downloads.haskell.org/~ghc/8.6.2/ghc-8.6.2-i386-deb8-linux.tar.xz ghc 8.6.2 x86_64 debian=8,debian,ubuntu,mint https://downloads.haskell.org/~ghc/8.6.2/ghc-8.6.2-x86_64-deb8-linux.tar.xz ghc 8.6.2 x86_64 fedora=27,fedora,unknown https://downloads.haskell.org/~ghc/8.6.2/ghc-8.6.2-x86_64-fedora27-linux.tar.xz ghc 8.6.2 x86_64 darwin https://downloads.haskell.org/~ghc/8.6.2/ghc-8.6.2-x86_64-apple-darwin.tar.xz +ghc 8.6.2 i386 alpine https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.6.2-musl/ghc-8.6.2-i386-unknown-linux-musl.tar.xz +ghc 8.6.2 x86_64 alpine 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 + ghc 8.6.3 i386 debian=8,debian,ubuntu,mint,unknown https://downloads.haskell.org/~ghc/8.6.3/ghc-8.6.3-i386-deb8-linux.tar.xz ghc 8.6.3 x86_64 debian=8 https://downloads.haskell.org/~ghc/8.6.3/ghc-8.6.3-x86_64-deb8-linux.tar.xz @@ -62,12 +75,16 @@ ghc 8.6.3 x86_64 fedora=27,fedora,unknown https://downloads.haskel ghc 8.6.3 x86_64 centos=7,centos,amazonlinux https://downloads.haskell.org/~ghc/8.6.3/ghc-8.6.3-x86_64-centos7-linux.tar.xz ghc 8.6.3 x86_64 darwin https://downloads.haskell.org/~ghc/8.6.3/ghc-8.6.3-x86_64-apple-darwin.tar.xz ghc 8.6.3 x86_64 freebsd=11 https://downloads.haskell.org/~ghc/8.6.3/ghc-8.6.3-x86_64-portbld-freebsd.tar.xz +ghc 8.6.3 i386 alpine https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.6.3-musl/ghc-8.6.3-i386-unknown-linux-musl.tar.xz +ghc 8.6.3 x86_64 alpine 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 ghc 8.6.4 i386 debian=9,debian,ubuntu,mint,unknown https://downloads.haskell.org/~ghc/8.6.4/ghc-8.6.4-i386-deb9-linux.tar.xz ghc 8.6.4 x86_64 debian=8 https://downloads.haskell.org/~ghc/8.6.4/ghc-8.6.4-x86_64-deb8-linux.tar.xz ghc 8.6.4 x86_64 debian=9,debian,ubuntu,mint https://downloads.haskell.org/~ghc/8.6.4/ghc-8.6.4-x86_64-deb9-linux.tar.xz ghc 8.6.4 x86_64 fedora=27,fedora,unknown https://downloads.haskell.org/~ghc/8.6.4/ghc-8.6.4-x86_64-fedora27-linux.tar.xz ghc 8.6.4 x86_64 darwin https://downloads.haskell.org/~ghc/8.6.4/ghc-8.6.4-x86_64-apple-darwin.tar.xz +ghc 8.6.4 i386 alpine https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.6.4-musl/ghc-8.6.4-i386-unknown-linux-musl.tar.xz +ghc 8.6.4 x86_64 alpine 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 ghc 8.6.5 i386 debian=9,debian,ubuntu,mint,unknown https://downloads.haskell.org/~ghc/8.6.5/ghc-8.6.5-i386-deb9-linux.tar.xz ghc 8.6.5 x86_64 debian=8 https://downloads.haskell.org/~ghc/8.6.5/ghc-8.6.5-x86_64-deb8-linux.tar.xz @@ -75,6 +92,8 @@ ghc 8.6.5 x86_64 debian=9,debian,ubuntu,mint https://downloads.haskel ghc 8.6.5 x86_64 fedora=27,fedora,unknown https://downloads.haskell.org/~ghc/8.6.5/ghc-8.6.5-x86_64-fedora27-linux.tar.xz ghc 8.6.5 x86_64 centos=7,centos,amazonlinux https://downloads.haskell.org/~ghc/8.6.5/ghc-x86_64-centos7-linux.tar.xz ghc 8.6.5 x86_64 darwin https://downloads.haskell.org/~ghc/8.6.5/ghc-8.6.5-x86_64-apple-darwin.tar.xz +ghc 8.6.5 i386 alpine https://github.com/redneb/ghc-alt-libc/releases/download/ghc-8.6.5-musl/ghc-8.6.5-i386-unknown-linux-musl.tar.xz +ghc 8.6.5 x86_64 alpine 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 cabal-install 2.2.0.0 i386 unknown https://downloads.haskell.org/~cabal/cabal-install-2.2.0.0/cabal-install-2.2.0.0-i386-unknown-linux.tar.gz diff --git a/.requirements/ghc/alpine b/.requirements/ghc/alpine new file mode 100644 index 0000000..e9cad8f --- /dev/null +++ b/.requirements/ghc/alpine @@ -0,0 +1 @@ +curl gcc g++ gmp-dev ncurses-dev libffi-dev make python3 xz tar perl diff --git a/ghcup b/ghcup index 3f9a334..2fd2c0a 100755 --- a/ghcup +++ b/ghcup @@ -98,12 +98,12 @@ DOWNLOADER="curl" # @VARIABLE: DOWNLOADER_OPTS # @DESCRIPTION: # Options passed to the download program. -DOWNLOADER_OPTS="--fail -O" +DOWNLOADER_OPTS="-L --fail -O" # @VARIABLE: DOWNLOADER_STDOUT_OPTS # @DESCRIPTION: # Options passed to the download program when printing the content to stdout. -DOWNLOADER_STDOUT_OPTS="--fail" +DOWNLOADER_STDOUT_OPTS="-L --fail" # @VARIABLE: GHC_DOWNLOAD_BASEURL # @DESCRIPTION: @@ -1443,8 +1443,11 @@ set_ghc() { done # shellcheck disable=SC2046 edo ln $(optionv "-v") -sf runghc "${BIN_LOCATION}"/runhaskell - # shellcheck disable=SC2046 - edo ln $(optionv "-v") -sf haddock-ghc "${BIN_LOCATION}"/haddock + # not all bindists install haddock... + if [ -e "${inst_location}/bin/haddock" ] ; then + # shellcheck disable=SC2046 + edo ln $(optionv "-v") -sf haddock-ghc "${BIN_LOCATION}"/haddock + fi status_message "Done, make sure \"${BIN_LOCATION}\" is in your PATH!" @@ -1877,6 +1880,9 @@ system_reqs_url() { [ -z "$1" ] && die "Internal error: no argument given to system_reqs_url" case "$1" in + "alpine") + printf "%s/.requirements/ghc/alpine" "${BASE_DOWNLOAD_URL}" + ;; "debian"|"ubuntu") printf "%s/.requirements/ghc/ubuntu" "${BASE_DOWNLOAD_URL}" ;;