From 08adf3792521e7c0459655ac69fe0e01ef2cd892 Mon Sep 17 00:00:00 2001 From: Ben Gamari Date: Sun, 20 Sep 2020 17:15:19 -0400 Subject: [PATCH 1/2] Wibbles --- components/HaskellTools.dhall | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/HaskellTools.dhall b/components/HaskellTools.dhall index 3bbc3ec..978cc75 100644 --- a/components/HaskellTools.dhall +++ b/components/HaskellTools.dhall @@ -18,12 +18,12 @@ let $CABAL \ --store-dir=${outDir}/store \ v2-install \ - hscolour happy alex \ --constraint='happy ^>= 1.20' \ --with-compiler=$GHC \ --enable-static \ --install-method=copy \ - --installdir=${binDir} + --installdir=${binDir} \ + hscolour happy alex '' ] # CF.env (toMap -- GitLab From 769e7fbb291427fb70c19fad4f98bb976cdc4c91 Mon Sep 17 00:00:00 2001 From: Ben Gamari Date: Sun, 20 Sep 2020 17:50:39 -0400 Subject: [PATCH 2/2] debian: Install stack To allow testing of hadrian build. --- images/debian.dhall | 43 +++++++++++++++++++++++++++++++++---------- 1 file changed, 33 insertions(+), 10 deletions(-) diff --git a/images/debian.dhall b/images/debian.dhall index e147cfb..7fdfb8f 100644 --- a/images/debian.dhall +++ b/images/debian.dhall @@ -80,10 +80,15 @@ let # CF.run "install build dependencies" [ "apt-get update" , "apt-get install --no-install-recommends -qy ${Prelude.Text.concatSep " " pkgs}" - , "apt-get clean" - , "rm -rf /var/lib/apt/lists/*" ] +let + cleanApt: CF.Type = + CF.run "clean apt cache" + [ "apt-get clean" + , "rm -rf /var/lib/apt/lists/*" + ] + -- Create a normal user let createUserStep: CF.Type = @@ -94,6 +99,13 @@ let # [CF.Statement.User "ghc"] # CF.workdir "/home/ghc/" +-- Install stack for testing hadrian +let + installStack: CF.Type = + CF.run "install stack" + [ "curl -sSL https://get.haskellstack.org/ | sh" + ] + let DebianImage = let @@ -106,6 +118,8 @@ let , llvm : Optional Llvm.BindistSpec , cabalSource : Cabal.Type , extraPackages: List Text + -- N.B. Optional as Stack's installer does not support all platforms + , withStack : Bool } let @@ -128,6 +142,8 @@ let # CF.env (toMap { LANG = "C.UTF-8" }) # [ CF.Statement.Shell ["/bin/bash", "-o", "pipefail", "-c"] ] # installPackages (buildDepends # opts.extraPackages) + # (if opts.withStack then installStack else [] : CF.Type) + # cleanApt -- install LLVM for bootstrap GHC # Llvm.maybeInstallTo bootLlvmDir opts.bootstrapLlvm @@ -157,11 +173,14 @@ let in Image::{ name = opts.name, runnerTags = opts.runnerTags, image = image } in { Type = type + , default = + { withStack = True + } , toDocker = toDocker } let images: List Image.Type = -[ DebianImage.toDocker +[ DebianImage.toDocker DebianImage:: { name = "aarch64-linux-deb10" , fromImage = "arm64v8/debian:buster" , runnerTags = [ "aarch64-linux" ] @@ -170,9 +189,10 @@ let images: List Image.Type = , llvm = Some { version = "10.0.1" , triple = "aarch64-linux-gnu" } , cabalSource = Cabal.Type.FromBindist "http://home.smart-cactus.org/~ben/ghc/cabal-install-3.2.0.0-aarch64-debian9-linux.tar.xz" , extraPackages = [ "libnuma-dev" ] : List Text + , withStack = False } -, DebianImage.toDocker +, DebianImage.toDocker DebianImage:: { name = "armv7-linux-deb10" , fromImage = "arm32v7/debian:buster" , runnerTags = [ "armv7-linux" ] @@ -181,9 +201,10 @@ let images: List Image.Type = , llvm = Some { version = "10.0.1" , triple = "armv7a-linux-gnueabihf" } , cabalSource = Cabal.Type.FromBindist "http://home.smart-cactus.org/~ben/ghc/cabal-install-3.2.0.0-armv7l-debian10-linux.tar.xz" , extraPackages = [ "libnuma-dev" ] # debianBuildDepends + , withStack = False } -, DebianImage.toDocker +, DebianImage.toDocker DebianImage:: { name = "i386-linux-deb9" , fromImage = "i386/debian:stretch" , runnerTags = [ "x86_64-linux" ] @@ -192,10 +213,11 @@ let images: List Image.Type = , llvm = None Llvm.BindistSpec , cabalSource = Cabal.Type.FromBindist "https://downloads.haskell.org/~cabal/cabal-install-3.2.0.0/cabal-install-3.2.0.0-i386-unknown-linux.tar.xz" , extraPackages = debianBuildDepends # [ "cabal-install" ] : List Text + , withStack = False } -- N.B. Need bindist for deb10 i386 ---, DebianImage.toDocker +--, DebianImage.toDocker DebianImage:: -- { name = "i386-linux-deb10" -- , fromImage = "i386/debian:buster" -- , runnerTags = [ "x86_64-linux" ] @@ -207,9 +229,10 @@ let images: List Image.Type = -- debianBuildDepends -- # [ "libnuma-dev" ] -- # [ "cabal-install" ] +-- , withStack = False -- } -, DebianImage.toDocker +, DebianImage.toDocker DebianImage:: { name = "x86_64-linux-deb10" , fromImage = "amd64/debian:buster" , runnerTags = [ "x86_64-linux" ] @@ -224,7 +247,7 @@ let images: List Image.Type = # [ "libnuma-dev" ] } -, DebianImage.toDocker +, DebianImage.toDocker DebianImage:: { name = "x86_64-linux-deb9" , fromImage = "amd64/debian:stretch" , runnerTags = [ "x86_64-linux" ] @@ -235,7 +258,7 @@ let images: List Image.Type = , extraPackages = debianBuildDepends : List Text } -, DebianImage.toDocker +, DebianImage.toDocker DebianImage:: { name = "x86_64-linux-deb8" , fromImage = "amd64/debian:jessie" , runnerTags = [ "x86_64-linux" ] @@ -246,7 +269,7 @@ let images: List Image.Type = , extraPackages = debianBuildDepends : List Text } -, DebianImage.toDocker +, DebianImage.toDocker DebianImage:: { name = "x86_64-linux-ubuntu20_04" , fromImage = "amd64/ubuntu:20.04" , runnerTags = [ "x86_64-linux" ] -- GitLab