Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at 21.05 120 lines 4.9 kB view raw
1--- darcs-2.14.2/Setup.hs 2019-01-27 03:14:51.000000000 +1300 2+++ darcs.net/Setup.hs 2019-10-18 02:41:57.000000000 +1300 3@@ -11,7 +11,9 @@ 4 , TestSuite(testBuildInfo) 5 , updatePackageDescription 6 , cppOptions, ccOptions 7- , library, libBuildInfo, otherModules ) 8+ , library, libBuildInfo, otherModules 9+ , ComponentName(CExeName) 10+ ) 11 import Distribution.Package 12 ( packageVersion ) 13 import Distribution.Version( Version ) 14@@ -21,24 +23,27 @@ 15 import Distribution.Simple.Setup 16 (buildVerbosity, copyDest, copyVerbosity, fromFlag, 17 haddockVerbosity, installVerbosity, sDistVerbosity, replVerbosity ) 18-import Distribution.Simple.BuildPaths ( autogenModulesDir ) 19+import Distribution.Simple.BuildPaths ( autogenPackageModulesDir ) 20 import Distribution.System 21 ( OS(Windows), buildOS ) 22 import Distribution.Simple.Utils 23 (copyFiles, createDirectoryIfMissingVerbose, rawSystemStdout, 24- rewriteFile ) 25+ rewriteFileEx) 26+import Distribution.Types.UnqualComponentName 27 import Distribution.Verbosity 28- ( Verbosity ) 29+ ( Verbosity, silent ) 30 import Distribution.Text 31 ( display ) 32-import Control.Monad ( unless, void ) 33 34+import Control.Monad ( unless, when, void ) 35 import System.Directory 36 ( doesDirectoryExist, doesFileExist ) 37 import System.IO 38 ( openFile, IOMode(..) ) 39 import System.Process (runProcess) 40 import Data.List( isInfixOf, lines ) 41+import qualified Data.Map as M 42+import Data.Maybe ( isJust ) 43 import System.FilePath ( (</>) ) 44 import Foreign.Marshal.Utils ( with ) 45 import Foreign.Storable ( peek ) 46@@ -75,8 +80,8 @@ 47 verb = fromFlag $ sDistVerbosity flags 48 x <- versionPatches verb pkgVer 49 y <- context verb 50- rewriteFile "release/distributed-version" $ show x 51- rewriteFile "release/distributed-context" $ show y 52+ rewriteFileEx silent "release/distributed-version" $ show x 53+ rewriteFileEx silent "release/distributed-context" $ show y 54 putStrLn "about to hand over" 55 let pkg' = pkg { library = sanity (library pkg) } 56 sanity (Just lib) = Just $ lib { libBuildInfo = sanity' $ libBuildInfo lib } 57@@ -105,8 +110,7 @@ 58 littleEndian <- testEndianness 59 let args = ("-DPACKAGE_VERSION=" ++ show' version) : 60 [arg | (arg, True) <- -- include fst iff snd. 61- [-- We have MAPI iff building on/for Windows. 62- ("-DHAVE_MAPI", buildOS == Windows), 63+ [ 64 ("-DLITTLEENDIAN", littleEndian), 65 ("-DBIGENDIAN", not littleEndian)]] 66 bi = emptyBuildInfo { cppOptions = args, ccOptions = args } 67@@ -133,20 +137,26 @@ 68 -- man page 69 -- --------------------------------------------------------------------- 70 71+hasDarcsExe :: LocalBuildInfo -> Bool 72+hasDarcsExe = isJust . M.lookup darcsExe . componentNameMap where 73+ darcsExe = CExeName (mkUnqualComponentName "darcs") 74+ 75 buildManpage :: LocalBuildInfo -> IO () 76-buildManpage lbi = do 77- let darcs = buildDir lbi </> "darcs/darcs" 78- manpage = buildDir lbi </> "darcs/darcs.1" 79- manpageHandle <- openFile manpage WriteMode 80- void $ runProcess darcs ["help","manpage"] 81- Nothing Nothing Nothing (Just manpageHandle) Nothing 82+buildManpage lbi = 83+ when (hasDarcsExe lbi) $ do 84+ let darcs = buildDir lbi </> "darcs/darcs" 85+ manpage = buildDir lbi </> "darcs/darcs.1" 86+ manpageHandle <- openFile manpage WriteMode 87+ void $ runProcess darcs ["help","manpage"] 88+ Nothing Nothing Nothing (Just manpageHandle) Nothing 89 90-installManpage :: PackageDescription -> LocalBuildInfo 91- -> Verbosity -> CopyDest -> IO () 92+installManpage :: PackageDescription -> LocalBuildInfo -> Verbosity -> CopyDest -> IO () 93 installManpage pkg lbi verbosity copy = 94- copyFiles verbosity 95- (mandir (absoluteInstallDirs pkg lbi copy) </> "man1") 96- [(buildDir lbi </> "darcs", "darcs.1")] 97+ when (hasDarcsExe lbi) $ 98+ copyFiles 99+ verbosity 100+ (mandir (absoluteInstallDirs pkg lbi copy) </> "man1") 101+ [(buildDir lbi </> "darcs", "darcs.1")] 102 103 -- --------------------------------------------------------------------- 104 -- version module 105@@ -187,12 +197,13 @@ 106 generateVersionModule :: Verbosity -> LocalBuildInfo 107 -> String -> String -> IO () 108 generateVersionModule verbosity lbi version state = do 109- let dir = autogenModulesDir lbi 110+ let dir = autogenPackageModulesDir lbi 111 createDirectoryIfMissingVerbose verbosity True dir 112 ctx <- context verbosity 113 hash <- weakhash verbosity 114- rewriteFile (dir </> "Version.hs") $ unlines 115+ rewriteFileEx silent (dir </> "Version.hs") $ unlines 116 ["module Version where" 117+ ,"import Darcs.Prelude" 118 ,"version, weakhash, context :: String" 119 ,"version = \"" ++ version ++ " (" ++ state ++ ")\"" 120 ,"weakhash = " ++ case hash of