From daa513dfe1bf00f0fb861b29ce0a3dd90601ed2c Mon Sep 17 00:00:00 2001
From: Olivier Benz <olivier.benz@b-data.ch>
Date: Mon, 15 Jan 2024 19:25:42 +0100
Subject: [PATCH] Update HLS to v2.6.0.0

---
 .devcontainer/VERSION_MATRIX.md         | 16 ++++-----
 .devcontainer/ghc-9.2/devcontainer.json |  2 +-
 .devcontainer/ghc-9.4/devcontainer.json |  2 +-
 .devcontainer/ghc-9.6/devcontainer.json |  2 +-
 .devcontainer/ghc-9.8/devcontainer.json |  2 +-
 .gitlab-ci.yml                          |  4 +--
 packages/hls/2.6.0.0.Dockerfile         | 45 +++++++++++++++++++++++++
 7 files changed, 59 insertions(+), 14 deletions(-)
 create mode 100644 packages/hls/2.6.0.0.Dockerfile

diff --git a/.devcontainer/VERSION_MATRIX.md b/.devcontainer/VERSION_MATRIX.md
index e51343f..d4c84d5 100644
--- a/.devcontainer/VERSION_MATRIX.md
+++ b/.devcontainer/VERSION_MATRIX.md
@@ -2,14 +2,14 @@
 
 ## Current
 
-| GHC                         | Cabal[^1] | Stack[^1]   | HLS                                                            |
-|:----------------------------|:----------|:------------|:-------------------------------------------------------------- |
-| latest<br>9.8.1<br>9.8<br>9 | 3.10.2.1  | ≥ 2.13.1    | latest<br>2.5.0.0<br>2.4.0.0                                   |
-| 9.6.4<br>9.6                | 3.10.1.0  | ≥ 2.13.1    | n/a                                                            |
-| 9.6.3                       | 3.10.1.0  | ≥ 2.13.1    | 2.5.0.0<br>2.4.0.0<br>2.3.0.0<br>2.2.0.0                       |
-| 9.4.8<br>9.4                | 3.8.1.0   | ≥ 2.13.1    | 2.5.0.0<br>2.4.0.0                                             |
-| 9.4.7                       | 3.8.1.0   | ≥ 2.13.1    | 2.4.0.0<br>2.3.0.0<br>2.2.0.0<br>2.1.0.0<br>2.0.0.1            |
-| 9.2.8<br>9.2                | 3.6.2.0   | ≥ 2.13.1    | 2.5.0.0<br>2.4.0.0<br>2.3.0.0<br>2.2.0.0<br>2.1.0.0<br>2.0.0.1 |
+| GHC                         | Cabal[^1] | Stack[^1]   | HLS                                                                       |
+|:----------------------------|:----------|:------------|:------------------------------------------------------------------------- |
+| latest<br>9.8.1<br>9.8<br>9 | 3.10.2.1  | ≥ 2.13.1    | latest<br>2.6.0.0<br>2.5.0.0<br>2.4.0.0                                   |
+| 9.6.4<br>9.6                | 3.10.1.0  | ≥ 2.13.1    | 2.6.0.0                                                                   |
+| 9.6.3                       | 3.10.1.0  | ≥ 2.13.1    | 2.5.0.0<br>2.4.0.0<br>2.3.0.0<br>2.2.0.0                                  |
+| 9.4.8<br>9.4                | 3.8.1.0   | ≥ 2.13.1    | 2.6.0.0<br>2.5.0.0<br>2.4.0.0                                             |
+| 9.4.7                       | 3.8.1.0   | ≥ 2.13.1    | 2.4.0.0<br>2.3.0.0<br>2.2.0.0<br>2.1.0.0<br>2.0.0.1                       |
+| 9.2.8<br>9.2                | 3.6.2.0   | ≥ 2.13.1    | 2.6.0.0<br>2.5.0.0<br>2.4.0.0<br>2.3.0.0<br>2.2.0.0<br>2.1.0.0<br>2.0.0.1 |
 
 [^1]: built-in version; see [GHC musl > Version Matrix](../VERSION_MATRIX.md)
 
diff --git a/.devcontainer/ghc-9.2/devcontainer.json b/.devcontainer/ghc-9.2/devcontainer.json
index d0e0ed4..63e590e 100644
--- a/.devcontainer/ghc-9.2/devcontainer.json
+++ b/.devcontainer/ghc-9.2/devcontainer.json
@@ -5,7 +5,7 @@
     "context": "..",
     "args": {
       "GHC_VERSION": "9.2",
-      "HLS_VERSION": "2.5.0.0",
+      "HLS_VERSION": "2.6.0.0",
       "STACK_VERSION": "2.11.1",
       "USE_ZSH_FOR_ROOT": "unset-to-use-ash",
       "SET_LANG": "C.UTF-8",
diff --git a/.devcontainer/ghc-9.4/devcontainer.json b/.devcontainer/ghc-9.4/devcontainer.json
index 07e2521..7ac01e0 100644
--- a/.devcontainer/ghc-9.4/devcontainer.json
+++ b/.devcontainer/ghc-9.4/devcontainer.json
@@ -5,7 +5,7 @@
     "context": "..",
     "args": {
       "GHC_VERSION": "9.4",
-      "HLS_VERSION": "2.5.0.0",
+      "HLS_VERSION": "2.6.0.0",
       "USE_ZSH_FOR_ROOT": "unset-to-use-ash",
       "SET_LANG": "C.UTF-8",
       "SET_TZ": ""
diff --git a/.devcontainer/ghc-9.6/devcontainer.json b/.devcontainer/ghc-9.6/devcontainer.json
index b4f3ca9..fe17d0e 100644
--- a/.devcontainer/ghc-9.6/devcontainer.json
+++ b/.devcontainer/ghc-9.6/devcontainer.json
@@ -5,7 +5,7 @@
     "context": "..",
     "args": {
       "GHC_VERSION": "9.6",
-      // "HLS_VERSION": "2.5.0.0",
+      "HLS_VERSION": "2.6.0.0",
       "USE_ZSH_FOR_ROOT": "unset-to-use-ash",
       "SET_LANG": "C.UTF-8",
       "SET_TZ": ""
diff --git a/.devcontainer/ghc-9.8/devcontainer.json b/.devcontainer/ghc-9.8/devcontainer.json
index 1ed9873..5d8c84a 100644
--- a/.devcontainer/ghc-9.8/devcontainer.json
+++ b/.devcontainer/ghc-9.8/devcontainer.json
@@ -5,7 +5,7 @@
     "context": "..",
     "args": {
       "GHC_VERSION": "9.8",
-      "HLS_VERSION": "2.5.0.0",
+      "HLS_VERSION": "2.6.0.0",
       "USE_ZSH_FOR_ROOT": "unset-to-use-ash",
       "SET_LANG": "C.UTF-8",
       "SET_TZ": ""
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c98d017..19850d5 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -3,8 +3,8 @@
     GHC_VERSION: "9.8.1"
     CABAL_VERSION: "3.10.2.1"
     STACK_VERSION: "2.13.1"
-    HLS_VERSION: "2.5.0.0"
-    BUILD_GHC: "true"
+    HLS_VERSION: "2.6.0.0"
+    BUILD_GHC: "false"
     BUILD_HLS: "true"
     TAG_VERSION_MAJ_MIN: "true"
     TAG_VERSION_MAJ: "false"
diff --git a/packages/hls/2.6.0.0.Dockerfile b/packages/hls/2.6.0.0.Dockerfile
new file mode 100644
index 0000000..97ac6df
--- /dev/null
+++ b/packages/hls/2.6.0.0.Dockerfile
@@ -0,0 +1,45 @@
+ARG GHC_VERSION
+ARG HLS_VERSION=2.6.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.19 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