From d4417fba9c5db5fbbbcaac4315c52c0a6c1af652 Mon Sep 17 00:00:00 2001
From: "Paolo G. Giarrusso"
Date: Sat, 6 Aug 2016 13:48:28 +0200
Subject: [PATCH] Only use gtar on OpenBSD for xz archives (#2283)
Since OpenBSD's tar does not support xz, use only `gtar` there. Stick to
`tar` elsewhere.
The UX is not perfect but it's already useful.
---
src/Stack/Setup.hs | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/Stack/Setup.hs b/src/Stack/Setup.hs
index d70b7d58be..76555d2188 100644
--- a/src/Stack/Setup.hs
+++ b/src/Stack/Setup.hs
@@ -819,10 +819,16 @@ installGHCPosix version _ archiveFile archiveType destDir = do
TarBz2 -> return "bzip2"
TarGz -> return "gzip"
SevenZ -> error "Don't know how to deal with .7z files on non-Windows"
+ -- Slight hack: OpenBSD's tar doesn't support xz.
+ -- https://github.com/commercialhaskell/stack/issues/2283#issuecomment-237980986
+ let tarDep =
+ case (platform, archiveType) of
+ (Platform _ Cabal.OpenBSD, TarXz) -> checkDependency "gtar"
+ _ -> checkDependency "tar"
(zipTool, makeTool, tarTool) <- checkDependencies $ (,,)
<$> checkDependency zipTool'
<*> (checkDependency "gmake" <|> checkDependency "make")
- <*> checkDependency "tar"
+ <*> tarDep
$logDebug $ "ziptool: " <> T.pack zipTool
$logDebug $ "make: " <> T.pack makeTool