Merge branch 'master' into ospath
This commit is contained in:
		
				commit
				
					
						97c83152d6
					
				
			
		
					 4 changed files with 23 additions and 19 deletions
				
			
		| 
						 | 
				
			
			@ -26,11 +26,12 @@ import Utility.Path.AbsRel
 | 
			
		|||
import Utility.FileMode
 | 
			
		||||
import Utility.CopyFile
 | 
			
		||||
import Utility.FileSystemEncoding
 | 
			
		||||
import Utility.SystemDirectory
 | 
			
		||||
 | 
			
		||||
mklibs :: FilePath -> a -> IO Bool
 | 
			
		||||
mklibs top _installedbins = do
 | 
			
		||||
	fs <- dirContentsRecursive top
 | 
			
		||||
	exes <- filterM checkExe fs
 | 
			
		||||
	fs <- dirContentsRecursive (toRawFilePath top)
 | 
			
		||||
	exes <- filterM checkExe (map fromRawFilePath fs)
 | 
			
		||||
	libs <- runLdd exes
 | 
			
		||||
	
 | 
			
		||||
	glibclibs <- glibcLibs
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -25,6 +25,7 @@ import Utility.Path.AbsRel
 | 
			
		|||
import Utility.Directory
 | 
			
		||||
import Utility.Env
 | 
			
		||||
import Utility.FileSystemEncoding
 | 
			
		||||
import Utility.SystemDirectory
 | 
			
		||||
import Build.BundledPrograms
 | 
			
		||||
#ifdef darwin_HOST_OS
 | 
			
		||||
import System.IO
 | 
			
		||||
| 
						 | 
				
			
			@ -71,14 +72,15 @@ installGitLibs topdir = do
 | 
			
		|||
	-- install git-core programs; these are run by the git command
 | 
			
		||||
	createDirectoryIfMissing True gitcoredestdir
 | 
			
		||||
	execpath <- getgitpath "exec-path"
 | 
			
		||||
	cfs <- dirContents execpath
 | 
			
		||||
	cfs <- dirContents (toRawFilePath execpath)
 | 
			
		||||
	forM_ cfs $ \f -> do
 | 
			
		||||
		let f' = fromRawFilePath f
 | 
			
		||||
		destf <- ((gitcoredestdir </>) . fromRawFilePath)
 | 
			
		||||
			<$> relPathDirToFile
 | 
			
		||||
				(toRawFilePath execpath)
 | 
			
		||||
				(toRawFilePath f)
 | 
			
		||||
				f
 | 
			
		||||
		createDirectoryIfMissing True (takeDirectory destf)
 | 
			
		||||
		issymlink <- isSymbolicLink <$> getSymbolicLinkStatus f
 | 
			
		||||
		issymlink <- isSymbolicLink <$> getSymbolicLinkStatus f'
 | 
			
		||||
		if issymlink
 | 
			
		||||
			then do
 | 
			
		||||
				-- many git-core files may symlink to eg
 | 
			
		||||
| 
						 | 
				
			
			@ -91,20 +93,20 @@ installGitLibs topdir = do
 | 
			
		|||
				-- Other git-core files symlink to a file
 | 
			
		||||
				-- beside them in the directory. Those
 | 
			
		||||
				-- links can be copied as-is.
 | 
			
		||||
				linktarget <- readSymbolicLink f
 | 
			
		||||
				linktarget <- readSymbolicLink f'
 | 
			
		||||
				if takeFileName linktarget == linktarget
 | 
			
		||||
					then cp f destf
 | 
			
		||||
					then cp f' destf
 | 
			
		||||
					else do
 | 
			
		||||
						let linktarget' = progDir topdir </> takeFileName linktarget
 | 
			
		||||
						unlessM (doesFileExist linktarget') $ do
 | 
			
		||||
							createDirectoryIfMissing True (takeDirectory linktarget')
 | 
			
		||||
							L.readFile f >>= L.writeFile linktarget'
 | 
			
		||||
							L.readFile f' >>= L.writeFile linktarget'
 | 
			
		||||
						removeWhenExistsWith removeLink destf
 | 
			
		||||
						rellinktarget <- relPathDirToFile
 | 
			
		||||
							(toRawFilePath (takeDirectory destf))
 | 
			
		||||
							(toRawFilePath linktarget')
 | 
			
		||||
						createSymbolicLink (fromRawFilePath rellinktarget) destf
 | 
			
		||||
			else cp f destf
 | 
			
		||||
			else cp f' destf
 | 
			
		||||
	
 | 
			
		||||
	-- install git's template files
 | 
			
		||||
	-- 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
 | 
			
		||||
	manpath <- getgitpath "man-path"
 | 
			
		||||
	let templatepath = manpath </> ".." </> "git-core" </> "templates"
 | 
			
		||||
	tfs <- dirContents templatepath
 | 
			
		||||
	tfs <- dirContents (toRawFilePath templatepath)
 | 
			
		||||
	forM_ tfs $ \f -> do
 | 
			
		||||
		destf <- ((templatedestdir </>) . fromRawFilePath)
 | 
			
		||||
			<$> relPathDirToFile
 | 
			
		||||
				(toRawFilePath templatepath)
 | 
			
		||||
				(toRawFilePath f)
 | 
			
		||||
				f
 | 
			
		||||
		createDirectoryIfMissing True (takeDirectory destf)
 | 
			
		||||
		cp f destf
 | 
			
		||||
		cp (fromRawFilePath f) destf
 | 
			
		||||
  where
 | 
			
		||||
	gitcoredestdir = topdir </> "git-core"
 | 
			
		||||
	templatedestdir = topdir </> "templates"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,7 +5,6 @@
 | 
			
		|||
 - Licensed under the GNU AGPL version 3 or higher.
 | 
			
		||||
 -}
 | 
			
		||||
 | 
			
		||||
{-# LANGUAGE CPP #-}
 | 
			
		||||
{-# LANGUAGE OverloadedStrings #-}
 | 
			
		||||
 | 
			
		||||
module Git.HashObject where
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -333,12 +333,14 @@ Executable git-annex
 | 
			
		|||
      P2P.Http.State
 | 
			
		||||
 | 
			
		||||
  if flag(OsPath)
 | 
			
		||||
    Build-Depends:
 | 
			
		||||
      os-string (>= 2.0.0),
 | 
			
		||||
      directory (>= 1.3.8.3),
 | 
			
		||||
      filepath (>= 1.5.2.0),
 | 
			
		||||
      file-io (>= 0.1.3)
 | 
			
		||||
    CPP-Options: -DWITH_OSPATH
 | 
			
		||||
    -- Currently this build flag does not pass the test suite on Windows
 | 
			
		||||
    if (! os(windows))
 | 
			
		||||
      Build-Depends:
 | 
			
		||||
        os-string (>= 2.0.0),
 | 
			
		||||
        directory (>= 1.3.8.3),
 | 
			
		||||
        filepath (>= 1.5.2.0),
 | 
			
		||||
        file-io (>= 0.1.3)
 | 
			
		||||
      CPP-Options: -DWITH_OSPATH
 | 
			
		||||
 | 
			
		||||
  if (os(windows))
 | 
			
		||||
    Build-Depends:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue