From 9060d55b9310b5fd3ad17b90cf74d8868d8fe936 Mon Sep 17 00:00:00 2001
From: Ben Gamari <ben@smart-cactus.org>
Date: Tue, 23 Jan 2024 11:44:52 -0500
Subject: [PATCH] Add os-string as a boot package

Introduces `os-string` submodule. This will be necessary for
`filepath-1.5`.
---
 .gitmodules                     | 3 +++
 hadrian/src/Packages.hs         | 7 ++++---
 hadrian/src/Settings/Default.hs | 1 +
 libraries/os-string             | 1 +
 4 files changed, 9 insertions(+), 3 deletions(-)
 create mode 160000 libraries/os-string

diff --git a/.gitmodules b/.gitmodules
index a11c5e0d8da..505167bbb23 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -117,3 +117,6 @@
 [submodule "utils/hpc"]
 	path = utils/hpc
 	url = https://gitlab.haskell.org/hpc/hpc-bin.git
+[submodule "libraries/os-string"]
+	path = libraries/os-string
+	url = https://gitlab.haskell.org/ghc/packages/os-string
diff --git a/hadrian/src/Packages.hs b/hadrian/src/Packages.hs
index 37b793626c3..108f1222ca6 100644
--- a/hadrian/src/Packages.hs
+++ b/hadrian/src/Packages.hs
@@ -8,7 +8,7 @@ module Packages (
     ghcCompact, ghcConfig, ghcExperimental, ghcHeap, ghcInternal, ghci, ghciWrapper, ghcPkg, ghcPrim,
     ghcToolchain, ghcToolchainBin, haddock, haskeline,
     hsc2hs, hp2ps, hpc, hpcBin, integerGmp, integerSimple, iserv, iservProxy,
-    libffi, mtl, parsec, pretty, primitive, process, remoteIserv, rts,
+    libffi, mtl, osString, parsec, pretty, primitive, process, remoteIserv, rts,
     runGhc, semaphoreCompat, stm, templateHaskell, terminfo, text, time, timeout, touchy,
     transformers, unlit, unix, win32, xhtml,
     lintersCommon, lintNotes, lintCodes, lintCommitMsg, lintSubmoduleRefs, lintWhitespace,
@@ -40,7 +40,7 @@ ghcPackages =
     , exceptions, filepath, genapply, genprimopcode, ghc, ghcBignum, ghcBoot, ghcBootTh, ghcPlatform
     , ghcCompact, ghcConfig, ghcExperimental, ghcHeap, ghcInternal, ghci, ghciWrapper, ghcPkg, ghcPrim
     , ghcToolchain, ghcToolchainBin, haddock, haskeline, hsc2hs
-    , hp2ps, hpc, hpcBin, integerGmp, integerSimple, iserv, libffi, mtl
+    , hp2ps, hpc, hpcBin, integerGmp, integerSimple, iserv, libffi, mtl, osString
     , parsec, pretty, process, rts, runGhc, stm, semaphoreCompat, templateHaskell
     , terminfo, text, time, touchy, transformers, unlit, unix, win32, xhtml
     , timeout
@@ -58,7 +58,7 @@ array, base, binary, bytestring, cabalSyntax, cabal, checkPpr, checkExact, count
   ghcCompact, ghcConfig, ghcExperimental, ghcHeap, ghci, ghcInternal, ghciWrapper, ghcPkg, ghcPrim,
   ghcToolchain, ghcToolchainBin, haddock, haskeline, hsc2hs,
   hp2ps, hpc, hpcBin, integerGmp, integerSimple, iserv, iservProxy, remoteIserv, libffi, mtl,
-  parsec, pretty, primitive, process, rts, runGhc, semaphoreCompat, stm, templateHaskell,
+  osString, parsec, pretty, primitive, process, rts, runGhc, semaphoreCompat, stm, templateHaskell,
   terminfo, text, time, touchy, transformers, unlit, unix, win32, xhtml,
   timeout,
   lintersCommon, lintNotes, lintCodes, lintCommitMsg, lintSubmoduleRefs, lintWhitespace
@@ -112,6 +112,7 @@ iserv               = util "iserv"
 iservProxy          = util "iserv-proxy"
 libffi              = top  "libffi"
 mtl                 = lib  "mtl"
+osString            = lib  "os-string"
 parsec              = lib  "parsec"
 pretty              = lib  "pretty"
 primitive           = lib  "primitive"
diff --git a/hadrian/src/Settings/Default.hs b/hadrian/src/Settings/Default.hs
index c2d73198449..f21521deb1c 100644
--- a/hadrian/src/Settings/Default.hs
+++ b/hadrian/src/Settings/Default.hs
@@ -104,6 +104,7 @@ stage0Packages = do
              , hpc
              , hpcBin
              , mtl
+             , osString
              , parsec
              , semaphoreCompat
              , time
diff --git a/libraries/os-string b/libraries/os-string
new file mode 160000
index 00000000000..4046442785e
--- /dev/null
+++ b/libraries/os-string
@@ -0,0 +1 @@
+Subproject commit 4046442785ebbd66cc7f37a5abf3c36d29c74102
-- 
GitLab