From 4c22f6f41fd2fca188044d13f0457d769a416db7 Mon Sep 17 00:00:00 2001 From: George Wilson Date: Sun, 17 Feb 2019 03:32:28 +1000 Subject: [PATCH 1/6] Add FreeBSD download URLs --- .download-urls | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.download-urls b/.download-urls index 5656bbb..e7ea6e4 100644 --- a/.download-urls +++ b/.download-urls @@ -18,6 +18,7 @@ ghc 8.0.2 i386 debian=7 https://downloads.haskell.or ghc 8.0.2 x86_64 debian=8,debian,ubuntu,unknown https://downloads.haskell.org/~ghc/8.0.2/ghc-8.0.2-x86_64-deb8-linux.tar.xz ghc 8.0.2 i386 debian=8,debian,ubuntu,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 https://downloads.haskell.org/~ghc/8.0.2/ghc-8.0.2-x86_64-portbld-freebsd.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 @@ -25,6 +26,7 @@ ghc 8.2.2 x86_64 debian=8,debian,ubuntu https://downloads.haskell.or ghc 8.2.2 i386 debian=8,debian,ubuntu,unknown https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-i386-deb8-linux.tar.xz ghc 8.2.2 x86_64 unknown https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-x86_64-unknown-linux.tar.xz ghc 8.2.2 x86_64 darwin https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-x86_64-apple-darwin.tar.xz +ghc 8.2.2 x86_64 freebsd https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-x86_64-portbld11-freebsd.tar.xz ghc 8.4.3 i386 debian=8,debian,ubuntu,unknown https://downloads.haskell.org/~ghc/8.4.3/ghc-8.4.3-i386-deb8-linux.tar.xz ghc 8.4.3 x86_64 debian=8 https://downloads.haskell.org/~ghc/8.4.3/ghc-8.4.3-x86_64-deb8-linux.tar.xz @@ -38,12 +40,14 @@ ghc 8.4.4 x86_64 debian=9,debian,ubuntu https://downloads.haskell.or ghc 8.4.4 x86_64 centos=7,centos,amazonlinux https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-centos70-linux.tar.xz 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 https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-portbld-freebsd11.tar.xz ghc 8.6.1 i386 debian=8,debian,ubuntu,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 ghc 8.6.1 x86_64 debian=9,debian,ubuntu https://downloads.haskell.org/~ghc/8.6.1/ghc-8.6.1-x86_64-deb9-linux.tar.xz 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.2 i386 debian=8,debian,ubuntu,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 https://downloads.haskell.org/~ghc/8.6.2/ghc-8.6.2-x86_64-deb8-linux.tar.xz @@ -56,6 +60,8 @@ ghc 8.6.3 x86_64 debian=9,debian,ubuntu https://downloads.haskell.or ghc 8.6.3 x86_64 fedora=27,fedora,unknown https://downloads.haskell.org/~ghc/8.6.3/ghc-8.6.3-x86_64-fedora27-linux.tar.xz 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 https://downloads.haskell.org/~ghc/8.6.3/ghc-8.6.3-x86_64-portbld-freebsd.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 From 398d8d7ae0595a7910dde9f85eefa5fc6c254ad9 Mon Sep 17 00:00:00 2001 From: George Wilson Date: Sun, 17 Feb 2019 09:11:16 +1000 Subject: [PATCH 2/6] Define emake to enable installing on FreeBSD --- ghcup | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/ghcup b/ghcup index 3bd30ad..769cd2d 100755 --- a/ghcup +++ b/ghcup @@ -453,6 +453,24 @@ edo() "$@" || exit 2 } +# @FUNCTION: emake +# @USAGE: [arguments] +# @DESCRIPTION: +# Wrapper around 'make', may call 'gmake' if it exists. +emake() { # avoid re-checking for gmake + if [ -n "${MAKE}" ] ; then + edo ${MAKE} "$@" + else + if command_exists gmake ; then + MAKE=gmake + edo ${MAKE} "$@" + else + MAKE=make + edo ${MAKE} "$@" + fi + fi +} + # @FUNCTION: debug_message # @USAGE: # @DESCRIPTION: @@ -1189,7 +1207,7 @@ install_ghc() { debug_message "Installing GHC into ${inst_location}" edo ./configure --prefix="${inst_location}" - edo make install + emake install # clean up edo cd .. @@ -1545,8 +1563,8 @@ compile_ghc() { edo ./boot edo ./configure --prefix="${inst_location}" --with-ghc="${bootstrap_ghc}" - edo make -j${JOBS} - edo make install + emake -j${JOBS} + emake install # clean up edo cd .. From 45d939219c6015013271c20bd6d3c3678f7da98e Mon Sep 17 00:00:00 2001 From: George Wilson Date: Mon, 18 Feb 2019 10:13:00 +1000 Subject: [PATCH 3/6] Make shellcheck happy --- ghcup | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ghcup b/ghcup index 769cd2d..9652d6a 100755 --- a/ghcup +++ b/ghcup @@ -459,14 +459,16 @@ edo() # Wrapper around 'make', may call 'gmake' if it exists. emake() { # avoid re-checking for gmake if [ -n "${MAKE}" ] ; then - edo ${MAKE} "$@" + edo "${MAKE}" "$@" else if command_exists gmake ; then + # shellcheck disable=SC2209 MAKE=gmake - edo ${MAKE} "$@" + edo "${MAKE}" "$@" else + # shellcheck disable=SC2209 MAKE=make - edo ${MAKE} "$@" + edo "${MAKE}" "$@" fi fi } From bb80559fb30e81891b673c985a55f35768676441 Mon Sep 17 00:00:00 2001 From: George Wilson Date: Mon, 18 Feb 2019 13:59:17 +1000 Subject: [PATCH 4/6] Specify versions for FreeBSD --- .download-urls | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.download-urls b/.download-urls index e7ea6e4..87dd93d 100644 --- a/.download-urls +++ b/.download-urls @@ -18,7 +18,7 @@ ghc 8.0.2 i386 debian=7 https://downloads.haskell.or ghc 8.0.2 x86_64 debian=8,debian,ubuntu,unknown https://downloads.haskell.org/~ghc/8.0.2/ghc-8.0.2-x86_64-deb8-linux.tar.xz ghc 8.0.2 i386 debian=8,debian,ubuntu,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 https://downloads.haskell.org/~ghc/8.0.2/ghc-8.0.2-x86_64-portbld-freebsd.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.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 @@ -26,7 +26,8 @@ ghc 8.2.2 x86_64 debian=8,debian,ubuntu https://downloads.haskell.or ghc 8.2.2 i386 debian=8,debian,ubuntu,unknown https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-i386-deb8-linux.tar.xz ghc 8.2.2 x86_64 unknown https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-x86_64-unknown-linux.tar.xz ghc 8.2.2 x86_64 darwin https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-x86_64-apple-darwin.tar.xz -ghc 8.2.2 x86_64 freebsd https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-x86_64-portbld11-freebsd.tar.xz +ghc 8.2.2 x86_64 freebsd=10 https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-x86_64-portbld10_3-freebsd.tar.xz +ghc 8.2.2 x86_64 freebsd=11 https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-x86_64-portbld11-freebsd.tar.xz ghc 8.4.3 i386 debian=8,debian,ubuntu,unknown https://downloads.haskell.org/~ghc/8.4.3/ghc-8.4.3-i386-deb8-linux.tar.xz ghc 8.4.3 x86_64 debian=8 https://downloads.haskell.org/~ghc/8.4.3/ghc-8.4.3-x86_64-deb8-linux.tar.xz @@ -40,7 +41,7 @@ ghc 8.4.4 x86_64 debian=9,debian,ubuntu https://downloads.haskell.or ghc 8.4.4 x86_64 centos=7,centos,amazonlinux https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-centos70-linux.tar.xz 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 https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-portbld-freebsd11.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.6.1 i386 debian=8,debian,ubuntu,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 @@ -60,7 +61,7 @@ ghc 8.6.3 x86_64 debian=9,debian,ubuntu https://downloads.haskell.or ghc 8.6.3 x86_64 fedora=27,fedora,unknown https://downloads.haskell.org/~ghc/8.6.3/ghc-8.6.3-x86_64-fedora27-linux.tar.xz 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 https://downloads.haskell.org/~ghc/8.6.3/ghc-8.6.3-x86_64-portbld-freebsd.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 @@ -72,7 +73,7 @@ cabal-install 2.4.0.0 x86_64 darwin https://downloads.haskell.or cabal-install 2.4.0.0 x86_64 unknown https://downloads.haskell.org/~cabal/cabal-install-2.4.0.0/cabal-install-2.4.0.0-x86_64-unknown-linux.tar.gz cabal-install 2.4.1.0 powerpc aix=7 https://downloads.haskell.org/cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-powerpc-ibm-aix7.1.0.0.tar.xz -cabal-install 2.4.1.0 x86_64 freebsd https://downloads.haskell.org/cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-x86_64-portbld-freebsd.tar.xz +cabal-install 2.4.1.0 x86_64 freebsd=11 https://downloads.haskell.org/cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-x86_64-portbld-freebsd.tar.xz cabal-install 2.4.1.0 x86_64 darwin https://downloads.haskell.org/cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-x86_64-apple-darwin-sierra.tar.xz cabal-install 2.4.1.0 x86_64 alpine https://downloads.haskell.org/cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-x86_64-alpine-linux-musl.tar.xz cabal-install 2.4.1.0 i386 unknown https://downloads.haskell.org/cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-i386-unknown-linux.tar.xz From 35bd1c04dbafc7eef2b901a372ef396a622741d5 Mon Sep 17 00:00:00 2001 From: George Wilson Date: Mon, 18 Feb 2019 15:48:16 +1000 Subject: [PATCH 5/6] Only read the FreeBSD major version --- ghcup | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ghcup b/ghcup index 9652d6a..ef7e3e6 100755 --- a/ghcup +++ b/ghcup @@ -649,9 +649,9 @@ get_distro_ver() { printf "%s" "$(uname -v)" ;; FreeBSD) - # we only care about the numeric version part left of - # the '-' in "11.2-RELEASE". - printf "%s" "$(uname -r | cut -d - -f 1)" + # we only care about the major numeric version part left of + # the '.' in "11.2-RELEASE". + printf "%s" "$(uname -r | cut -d . -f 1)" ;; *) # Fall back to uname, e.g. "Linux ", also works for BSD, etc. From ae263ac2827cf327c45461b16de2daa5d6993b43 Mon Sep 17 00:00:00 2001 From: George Wilson Date: Wed, 20 Feb 2019 13:18:22 +1000 Subject: [PATCH 6/6] Unquote invocations in emake --- ghcup | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/ghcup b/ghcup index ef7e3e6..2bd45dd 100755 --- a/ghcup +++ b/ghcup @@ -459,16 +459,17 @@ edo() # Wrapper around 'make', may call 'gmake' if it exists. emake() { # avoid re-checking for gmake if [ -n "${MAKE}" ] ; then - edo "${MAKE}" "$@" + # shellcheck disable=SC2086 + edo ${MAKE} "$@" else if command_exists gmake ; then - # shellcheck disable=SC2209 - MAKE=gmake - edo "${MAKE}" "$@" + MAKE="gmake" + # shellcheck disable=SC2086 + edo ${MAKE} "$@" else - # shellcheck disable=SC2209 - MAKE=make - edo "${MAKE}" "$@" + MAKE="make" + # shellcheck disable=SC2086 + edo ${MAKE} "$@" fi fi }