fix liuxstandalone build

This commit is contained in:
Joey Hess 2025-01-29 18:12:00 -04:00
parent 55cf9ce28f
commit aaf4dd3b9c
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
3 changed files with 15 additions and 13 deletions

View file

@ -26,11 +26,12 @@ import Utility.Path.AbsRel
import Utility.FileMode import Utility.FileMode
import Utility.CopyFile import Utility.CopyFile
import Utility.FileSystemEncoding import Utility.FileSystemEncoding
import Utility.SystemDirectory
mklibs :: FilePath -> a -> IO Bool mklibs :: FilePath -> a -> IO Bool
mklibs top _installedbins = do mklibs top _installedbins = do
fs <- dirContentsRecursive top fs <- dirContentsRecursive (toRawFilePath top)
exes <- filterM checkExe fs exes <- filterM checkExe (map fromRawFilePath fs)
libs <- runLdd exes libs <- runLdd exes
glibclibs <- glibcLibs glibclibs <- glibcLibs

View file

@ -25,6 +25,7 @@ import Utility.Path.AbsRel
import Utility.Directory import Utility.Directory
import Utility.Env import Utility.Env
import Utility.FileSystemEncoding import Utility.FileSystemEncoding
import Utility.SystemDirectory
import Build.BundledPrograms import Build.BundledPrograms
#ifdef darwin_HOST_OS #ifdef darwin_HOST_OS
import System.IO import System.IO
@ -71,14 +72,15 @@ installGitLibs topdir = do
-- install git-core programs; these are run by the git command -- install git-core programs; these are run by the git command
createDirectoryIfMissing True gitcoredestdir createDirectoryIfMissing True gitcoredestdir
execpath <- getgitpath "exec-path" execpath <- getgitpath "exec-path"
cfs <- dirContents execpath cfs <- dirContents (toRawFilePath execpath)
forM_ cfs $ \f -> do forM_ cfs $ \f -> do
let f' = fromRawFilePath f
destf <- ((gitcoredestdir </>) . fromRawFilePath) destf <- ((gitcoredestdir </>) . fromRawFilePath)
<$> relPathDirToFile <$> relPathDirToFile
(toRawFilePath execpath) (toRawFilePath execpath)
(toRawFilePath f) f
createDirectoryIfMissing True (takeDirectory destf) createDirectoryIfMissing True (takeDirectory destf)
issymlink <- isSymbolicLink <$> getSymbolicLinkStatus f issymlink <- isSymbolicLink <$> getSymbolicLinkStatus f'
if issymlink if issymlink
then do then do
-- many git-core files may symlink to eg -- many git-core files may symlink to eg
@ -91,20 +93,20 @@ installGitLibs topdir = do
-- Other git-core files symlink to a file -- Other git-core files symlink to a file
-- beside them in the directory. Those -- beside them in the directory. Those
-- links can be copied as-is. -- links can be copied as-is.
linktarget <- readSymbolicLink f linktarget <- readSymbolicLink f'
if takeFileName linktarget == linktarget if takeFileName linktarget == linktarget
then cp f destf then cp f' destf
else do else do
let linktarget' = progDir topdir </> takeFileName linktarget let linktarget' = progDir topdir </> takeFileName linktarget
unlessM (doesFileExist linktarget') $ do unlessM (doesFileExist linktarget') $ do
createDirectoryIfMissing True (takeDirectory linktarget') createDirectoryIfMissing True (takeDirectory linktarget')
L.readFile f >>= L.writeFile linktarget' L.readFile f' >>= L.writeFile linktarget'
removeWhenExistsWith removeLink destf removeWhenExistsWith removeLink destf
rellinktarget <- relPathDirToFile rellinktarget <- relPathDirToFile
(toRawFilePath (takeDirectory destf)) (toRawFilePath (takeDirectory destf))
(toRawFilePath linktarget') (toRawFilePath linktarget')
createSymbolicLink (fromRawFilePath rellinktarget) destf createSymbolicLink (fromRawFilePath rellinktarget) destf
else cp f destf else cp f' destf
-- install git's template files -- install git's template files
-- git does not have an option to get the path of these, -- git does not have an option to get the path of these,
@ -112,14 +114,14 @@ installGitLibs topdir = do
-- next to the --man-path, in eg /usr/share/git-core -- next to the --man-path, in eg /usr/share/git-core
manpath <- getgitpath "man-path" manpath <- getgitpath "man-path"
let templatepath = manpath </> ".." </> "git-core" </> "templates" let templatepath = manpath </> ".." </> "git-core" </> "templates"
tfs <- dirContents templatepath tfs <- dirContents (toRawFilePath templatepath)
forM_ tfs $ \f -> do forM_ tfs $ \f -> do
destf <- ((templatedestdir </>) . fromRawFilePath) destf <- ((templatedestdir </>) . fromRawFilePath)
<$> relPathDirToFile <$> relPathDirToFile
(toRawFilePath templatepath) (toRawFilePath templatepath)
(toRawFilePath f) f
createDirectoryIfMissing True (takeDirectory destf) createDirectoryIfMissing True (takeDirectory destf)
cp f destf cp (fromRawFilePath f) destf
where where
gitcoredestdir = topdir </> "git-core" gitcoredestdir = topdir </> "git-core"
templatedestdir = topdir </> "templates" templatedestdir = topdir </> "templates"

View file

@ -93,7 +93,6 @@ openTempFile p s = do
-- file content in that case, unlike the Strings used by the Prelude. -- file content in that case, unlike the Strings used by the Prelude.
import Utility.OsPath import Utility.OsPath
import System.IO (withFile, openFile, openTempFile, IO) import System.IO (withFile, openFile, openTempFile, IO)
import qualified System.IO
import Data.ByteString.Lazy (readFile, writeFile, appendFile) import Data.ByteString.Lazy (readFile, writeFile, appendFile)
import qualified Data.ByteString as B import qualified Data.ByteString as B