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