From bd7a3b13107bd7c40aebb0ecc5acf429bd0ec25f Mon Sep 17 00:00:00 2001
From: Olivier Benz <olivier.benz@b-data.ch>
Date: Wed, 30 Aug 2023 19:35:27 +0200
Subject: [PATCH] Update HLS to v2.2.0.0

---
 .gitlab-ci.yml                  |  6 ++---
 packages/hls/2.2.0.0.Dockerfile | 45 +++++++++++++++++++++++++++++++++
 2 files changed, 48 insertions(+), 3 deletions(-)
 create mode 100644 packages/hls/2.2.0.0.Dockerfile

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 9056284..db18d40 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -3,7 +3,7 @@
     GHC_VERSION_BUILD: "9.6.2"
     CABAL_VERSION_BUILD: "3.10.1.0"
     STACK_VERSION: "2.11.1"
-    HLS_VERSION: "2.1.0.0"
+    HLS_VERSION: "2.2.0.0"
     BUILD_GHC: "true"
     BUILD_HLS: "true"
 
@@ -27,10 +27,10 @@
     --password-stdin $CI_REGISTRY
   - >
     export VERSION_MAJ_MIN_PAT=$GHC_VERSION_BUILD
-    
+
     export VERSION_MAJ_MIN=`echo $VERSION_MAJ_MIN_PAT |
     sed -n "s|\([[:digit:]]\+\.[[:digit:]]\+\).*|\1|p"`
-    
+
     export VERSION_MAJ=`echo $VERSION_MAJ_MIN_PAT |
     sed -n "s|\([[:digit:]]\+\).*|\1|p"`
 
diff --git a/packages/hls/2.2.0.0.Dockerfile b/packages/hls/2.2.0.0.Dockerfile
new file mode 100644
index 0000000..2fb3406
--- /dev/null
+++ b/packages/hls/2.2.0.0.Dockerfile
@@ -0,0 +1,45 @@
+ARG GHC_VERSION
+ARG HLS_VERSION=2.2.0.0
+
+FROM glcr.b-data.ch/ghc/ghc-musl:${GHC_VERSION} as builder
+
+ARG HLS_VERSION
+
+RUN apk add --no-cache patchelf findutils \
+  && cd /tmp \
+  && curl -sSL "https://github.com/haskell/haskell-language-server/archive/refs/tags/$HLS_VERSION.tar.gz" \
+    -o "haskell-language-server-$HLS_VERSION.tar.gz" \
+  && tar -xzf "haskell-language-server-$HLS_VERSION.tar.gz" \
+  && cd "haskell-language-server-$HLS_VERSION" \
+  && . .github/scripts/env.sh \
+  && . .github/scripts/common.sh \
+  && sed -i.bak -e '/DELETE MARKER FOR CI/,/END DELETE/d' cabal.project \
+  && GHCS="$GHC_VERSION" \
+  && export GHCS \
+  && ARTIFACT="$(uname -m)-linux-alpine" \
+  && export ARTIFACT \
+  && cabal update \
+  && emake hls-ghc \
+  && emake bindist \
+  && strip "out/bindist/$ARTIFACT/haskell-language-server-$HLS_VERSION/lib/$GHC_VERSION"/*.so \
+  && emake bindist-tar
+
+FROM alpine:3.18 as hls
+
+ARG HLS_VERSION
+
+COPY --from=builder /tmp/haskell-language-server-"$HLS_VERSION"/out/haskell-language-server-*-linux-alpine.tar.xz /tmp/
+
+RUN apk add --no-cache build-base \
+  && cd /tmp \
+  && tar -xJf haskell-language-server-"$HLS_VERSION"-*-linux-alpine.tar.xz \
+  && cd haskell-language-server-"$HLS_VERSION" \
+  && make install
+
+FROM scratch
+
+ARG HLS_VERSION
+
+ENV HLS_VERSION=${HLS_VERSION}
+
+COPY --from=hls /usr/local /usr/local
-- 
GitLab