From 3a0bd261d9cfd395ed23ff43515523e6c6658c33 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 14 Dec 2017 12:46:57 -0400 Subject: fold Build/SysConfig.hs into BuildInfo via include This avoids warnings from stack about the module not being listed in the cabal file. So, the generated file is also renamed to Build/SysConfig. Note that the setup program seems to be cached despite these changes; I had to cabal clean to get cabal to update it so that Build/SysConfig was written. This commit was sponsored by Jochen Bartl on Patreon. --- .gitignore | 2 +- Annex/Ssh.hs | 4 ++-- Annex/Url.hs | 4 ++-- Assistant.hs | 4 ++-- Assistant/Threads/UpgradeWatcher.hs | 4 ++-- Assistant/Threads/Upgrader.hs | 6 +++--- Assistant/Upgrade.hs | 4 ++-- Backend/Hash.hs | 12 ++++++------ Build/BundledPrograms.hs | 22 +++++++++++----------- Build/Configure.hs | 2 +- Build/TestConfig.hs | 5 ++--- BuildInfo.hs | 4 +++- Command/Assistant.hs | 4 ++-- Command/Version.hs | 6 +++--- Git/BuildVersion.hs | 4 ++-- Makefile | 2 +- Test.hs | 4 ++-- Utility/CopyFile.hs | 10 +++++----- Utility/Gpg.hs | 4 ++-- Utility/Lsof.hs | 6 +++--- Utility/Url.hs | 6 +++--- 21 files changed, 60 insertions(+), 59 deletions(-) diff --git a/.gitignore b/.gitignore index 7827344d6..f841f39e6 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,7 @@ Setup *.o tmp test -Build/SysConfig.hs +Build/SysConfig Build/InstallDesktopFile Build/EvilSplicer Build/Standalone diff --git a/Annex/Ssh.hs b/Annex/Ssh.hs index e3d2c3d8b..5154a50a4 100644 --- a/Annex/Ssh.hs +++ b/Annex/Ssh.hs @@ -25,7 +25,7 @@ module Annex.Ssh ( import Annex.Common import Annex.LockFile -import qualified Build.SysConfig as SysConfig +import qualified BuildInfo import qualified Annex import qualified Git import qualified Git.Url @@ -138,7 +138,7 @@ sshConnectionCachingParams socketfile = - a different filesystem. -} sshCacheDir :: Annex (Maybe FilePath) sshCacheDir - | SysConfig.sshconnectioncaching = + | BuildInfo.sshconnectioncaching = ifM (fromMaybe True . annexSshCaching <$> Annex.getGitConfig) ( ifM crippledFileSystem ( maybe (return Nothing) usetmpdir =<< gettmpdir diff --git a/Annex/Url.hs b/Annex/Url.hs index f12408a08..f777a0ed0 100644 --- a/Annex/Url.hs +++ b/Annex/Url.hs @@ -16,10 +16,10 @@ module Annex.Url ( import Annex.Common import qualified Annex import Utility.Url as U -import qualified Build.SysConfig as SysConfig +import qualified BuildInfo defaultUserAgent :: U.UserAgent -defaultUserAgent = "git-annex/" ++ SysConfig.packageversion +defaultUserAgent = "git-annex/" ++ BuildInfo.packageversion getUserAgent :: Annex (Maybe U.UserAgent) getUserAgent = Annex.getState $ diff --git a/Assistant.hs b/Assistant.hs index 81aa036f6..dc358c2bd 100644 --- a/Assistant.hs +++ b/Assistant.hs @@ -48,7 +48,7 @@ import Assistant.Types.UrlRenderer import qualified Utility.Daemon import Utility.ThreadScheduler import Utility.HumanTime -import qualified Build.SysConfig as SysConfig +import qualified BuildInfo import Annex.Perms import Utility.LogFile #ifdef mingw32_HOST_OS @@ -135,7 +135,7 @@ startDaemon assistant foreground startdelay cannotrun listenhost startbrowser = #else go _webappwaiter = do #endif - notice ["starting", desc, "version", SysConfig.packageversion] + notice ["starting", desc, "version", BuildInfo.packageversion] urlrenderer <- liftIO newUrlRenderer #ifdef WITH_WEBAPP let webappthread = [ assist $ webAppThread d urlrenderer False cannotrun Nothing listenhost webappwaiter ] diff --git a/Assistant/Threads/UpgradeWatcher.hs b/Assistant/Threads/UpgradeWatcher.hs index 952db1f13..a50c84596 100644 --- a/Assistant/Threads/UpgradeWatcher.hs +++ b/Assistant/Threads/UpgradeWatcher.hs @@ -21,7 +21,7 @@ import Assistant.Alert import Assistant.DaemonStatus #ifdef WITH_WEBAPP import Assistant.WebApp.Types -import qualified Build.SysConfig +import qualified BuildInfo #endif import Control.Concurrent.MVar @@ -103,7 +103,7 @@ showSuccessfulUpgrade urlrenderer = do (T.pack "Enable Automatic Upgrades") urlrenderer ConfigEnableAutomaticUpgradeR ) - void $ addAlert $ upgradeFinishedAlert button Build.SysConfig.packageversion + void $ addAlert $ upgradeFinishedAlert button BuildInfo.packageversion #else noop #endif diff --git a/Assistant/Threads/Upgrader.hs b/Assistant/Threads/Upgrader.hs index 2bfbe5be1..75c4353b9 100644 --- a/Assistant/Threads/Upgrader.hs +++ b/Assistant/Threads/Upgrader.hs @@ -19,7 +19,7 @@ import Assistant.DaemonStatus import Assistant.Alert import Utility.NotificationBroadcaster import qualified Annex -import qualified Build.SysConfig +import qualified BuildInfo import qualified Utility.DottedVersion as DottedVersion import Types.Distribution #ifdef WITH_WEBAPP @@ -31,7 +31,7 @@ import qualified Data.Text as T upgraderThread :: UrlRenderer -> NamedThread upgraderThread urlrenderer = namedThread "Upgrader" $ - when (isJust Build.SysConfig.upgradelocation) $ do + when (isJust BuildInfo.upgradelocation) $ do {- Check for upgrade on startup, unless it was just - upgraded. -} unlessM (liftIO checkSuccessfulUpgrade) $ @@ -63,7 +63,7 @@ checkUpgrade urlrenderer = do where go Nothing = debug [ "Failed to check if upgrade is available." ] go (Just d) = do - let installed = DottedVersion.normalize Build.SysConfig.packageversion + let installed = DottedVersion.normalize BuildInfo.packageversion let avail = DottedVersion.normalize $ distributionVersion d let old = DottedVersion.normalize <$> distributionUrgentUpgrade d if Just installed <= old diff --git a/Assistant/Upgrade.hs b/Assistant/Upgrade.hs index cd1be4d4e..3b7b48833 100644 --- a/Assistant/Upgrade.hs +++ b/Assistant/Upgrade.hs @@ -36,7 +36,7 @@ import Utility.UserInfo import Utility.Gpg import Utility.FileMode import qualified Utility.Lsof as Lsof -import qualified Build.SysConfig +import qualified BuildInfo import qualified Utility.Url as Url import qualified Annex.Url as Url import Utility.Tuple @@ -329,7 +329,7 @@ downloadDistributionInfo = do ) distributionInfoUrl :: String -distributionInfoUrl = fromJust Build.SysConfig.upgradelocation ++ ".info" +distributionInfoUrl = fromJust BuildInfo.upgradelocation ++ ".info" distributionInfoSigUrl :: String distributionInfoSigUrl = distributionInfoUrl ++ ".sig" diff --git a/Backend/Hash.hs b/Backend/Hash.hs index a0a16b74d..da0f7df9b 100644 --- a/Backend/Hash.hs +++ b/Backend/Hash.hs @@ -18,7 +18,7 @@ import Types.KeySource import Utility.Hash import Utility.ExternalSHA -import qualified Build.SysConfig as SysConfig +import qualified BuildInfo import qualified Data.ByteString.Lazy as L import Data.Char @@ -187,11 +187,11 @@ hashFile hash file filesize = go hash shaHasher :: HashSize -> Integer -> Either (L.ByteString -> String) (String, L.ByteString -> String) shaHasher (HashSize hashsize) filesize - | hashsize == 1 = use SysConfig.sha1 sha1 - | hashsize == 256 = use SysConfig.sha256 sha2_256 - | hashsize == 224 = use SysConfig.sha224 sha2_224 - | hashsize == 384 = use SysConfig.sha384 sha2_384 - | hashsize == 512 = use SysConfig.sha512 sha2_512 + | hashsize == 1 = use BuildInfo.sha1 sha1 + | hashsize == 256 = use BuildInfo.sha256 sha2_256 + | hashsize == 224 = use BuildInfo.sha224 sha2_224 + | hashsize == 384 = use BuildInfo.sha384 sha2_384 + | hashsize == 512 = use BuildInfo.sha512 sha2_512 | otherwise = error $ "unsupported SHA size " ++ show hashsize where use Nothing hasher = Left $ usehasher hasher diff --git a/Build/BundledPrograms.hs b/Build/BundledPrograms.hs index 9e590bcf1..a6afdb763 100644 --- a/Build/BundledPrograms.hs +++ b/Build/BundledPrograms.hs @@ -11,7 +11,7 @@ module Build.BundledPrograms where import Data.Maybe -import Build.SysConfig as SysConfig +import BuildInfo {- Programs that git-annex uses, to include in the bundle. - @@ -28,7 +28,7 @@ extraBundledPrograms = catMaybes -- integrate with the system gpg-agent, etc. -- On Windows, gpg is bundled with git for windows. #ifndef mingw32_HOST_OS - [ SysConfig.gpg + [ BuildInfo.gpg #else [ #endif @@ -75,19 +75,19 @@ preferredBundledPrograms = catMaybes -- wget on OSX has been problematic, looking for certs in the wrong -- places. Don't ship it, use curl or the OSX's own wget if it has -- one. - , ifset SysConfig.wget "wget" + , ifset BuildInfo.wget "wget" #endif #endif - , SysConfig.lsof - , SysConfig.gcrypt + , BuildInfo.lsof + , BuildInfo.gcrypt #ifndef mingw32_HOST_OS -- All these utilities are included in git for Windows - , ifset SysConfig.curl "curl" - , SysConfig.sha1 - , SysConfig.sha256 - , SysConfig.sha512 - , SysConfig.sha224 - , SysConfig.sha384 + , ifset BuildInfo.curl "curl" + , BuildInfo.sha1 + , BuildInfo.sha256 + , BuildInfo.sha512 + , BuildInfo.sha224 + , BuildInfo.sha384 , Just "cp" #endif #ifdef linux_HOST_OS diff --git a/Build/Configure.hs b/Build/Configure.hs index f51ceef79..b40ca9250 100644 --- a/Build/Configure.hs +++ b/Build/Configure.hs @@ -1,4 +1,4 @@ -{- Checks system configuration and generates SysConfig.hs. -} +{- Checks system configuration and generates SysConfig. -} {-# OPTIONS_GHC -fno-warn-tabs #-} diff --git a/Build/TestConfig.hs b/Build/TestConfig.hs index f6ad2df6f..2f7213f46 100644 --- a/Build/TestConfig.hs +++ b/Build/TestConfig.hs @@ -1,4 +1,4 @@ -{- Tests the system and generates Build.SysConfig.hs. -} +{- Tests the system and generates SysConfig. -} {-# OPTIONS_GHC -fno-warn-tabs #-} @@ -42,12 +42,11 @@ instance Show Config where valuetype (MaybeBoolConfig _) = "Maybe Bool" writeSysConfig :: [Config] -> IO () -writeSysConfig config = writeFile "Build/SysConfig.hs" body +writeSysConfig config = writeFile "Build/SysConfig" body where body = unlines $ header ++ map show config ++ footer header = [ "{- Automatically generated. -}" - , "module Build.SysConfig where" , "" ] footer = [] diff --git a/BuildInfo.hs b/BuildInfo.hs index 79253ee4f..e00f27a96 100644 --- a/BuildInfo.hs +++ b/BuildInfo.hs @@ -1,4 +1,4 @@ -{- git-annex build info reporting +{- git-annex build info - - Copyright 2013-2017 Joey Hess - @@ -13,6 +13,8 @@ import Data.List import Data.Ord import qualified Data.CaseInsensitive as CI +#include "Build/SysConfig" + buildFlags :: [String] buildFlags = filter (not . null) [ "" diff --git a/Command/Assistant.hs b/Command/Assistant.hs index af63778e6..70088674d 100644 --- a/Command/Assistant.hs +++ b/Command/Assistant.hs @@ -12,7 +12,7 @@ import qualified Command.Watch import Annex.Init import Annex.Path import Config.Files -import qualified Build.SysConfig +import qualified BuildInfo import Utility.HumanTime import Assistant.Install @@ -78,7 +78,7 @@ autoStart o = do f <- autoStartFile giveup $ "Nothing listed in " ++ f program <- programPath - haveionice <- pure Build.SysConfig.ionice <&&> inPath "ionice" + haveionice <- pure BuildInfo.ionice <&&> inPath "ionice" pids <- forM dirs $ \d -> do putStrLn $ "git-annex autostart in " ++ d mpid <- catchMaybeIO $ go haveionice program d diff --git a/Command/Version.hs b/Command/Version.hs index 7af928750..5f9fcce67 100644 --- a/Command/Version.hs +++ b/Command/Version.hs @@ -8,7 +8,7 @@ module Command.Version where import Command -import qualified Build.SysConfig as SysConfig +import qualified BuildInfo import Annex.Version import BuildInfo import Types.Key @@ -61,7 +61,7 @@ showVersion = do showPackageVersion :: IO () showPackageVersion = do - vinfo "git-annex version" SysConfig.packageversion + vinfo "git-annex version" BuildInfo.packageversion vinfo "build flags" $ unwords buildFlags vinfo "dependency versions" $ unwords dependencyVersions vinfo "key/value backends" $ unwords $ @@ -70,7 +70,7 @@ showPackageVersion = do showRawVersion :: IO () showRawVersion = do - putStr SysConfig.packageversion + putStr BuildInfo.packageversion hFlush stdout -- no newline, so flush vinfo :: String -> String -> IO () diff --git a/Git/BuildVersion.hs b/Git/BuildVersion.hs index 50e4a3ae7..7d1c53aa0 100644 --- a/Git/BuildVersion.hs +++ b/Git/BuildVersion.hs @@ -8,14 +8,14 @@ module Git.BuildVersion where import Git.Version -import qualified Build.SysConfig +import qualified BuildInfo {- Using the version it was configured for avoids running git to check its - version, at the cost that upgrading git won't be noticed. - This is only acceptable because it's rare that git's version influences - code's behavior. -} buildVersion :: GitVersion -buildVersion = normalize Build.SysConfig.gitversion +buildVersion = normalize BuildInfo.gitversion older :: String -> Bool older n = buildVersion < normalize n diff --git a/Makefile b/Makefile index cf3edc9a0..51f86c3e2 100644 --- a/Makefile +++ b/Makefile @@ -113,7 +113,7 @@ docs: mans clean: if [ "$(BUILDER)" != ./Setup ] && [ "$(BUILDER)" != cabal ]; then $(BUILDER) clean; fi rm -rf tmp dist git-annex $(mans) configure *.tix .hpc \ - doc/.ikiwiki html dist tags Build/SysConfig.hs \ + doc/.ikiwiki html dist tags Build/SysConfig \ Setup Build/InstallDesktopFile Build/EvilSplicer \ Build/Standalone Build/OSXMkLibs Build/LinuxMkLibs \ Build/DistributionUpdate Build/BuildVersion Build/MakeMans \ diff --git a/Test.hs b/Test.hs index 766a6ca96..60876124f 100644 --- a/Test.hs +++ b/Test.hs @@ -88,7 +88,7 @@ import qualified Annex.Action import qualified Logs.View import qualified Utility.Path import qualified Utility.FileMode -import qualified Build.SysConfig +import qualified BuildInfo import qualified Utility.Format import qualified Utility.Verifiable import qualified Utility.Process @@ -1622,7 +1622,7 @@ test_rsync_remote = intmpclonerepo $ do annexed_present annexedfile test_bup_remote :: Assertion -test_bup_remote = intmpclonerepo $ when Build.SysConfig.bup $ do +test_bup_remote = intmpclonerepo $ when BuildInfo.bup $ do dir <- absPath "dir" -- bup special remote needs an absolute path createDirectory dir git_annex "initremote" (words $ "foo type=bup encryption=none buprepo="++dir) @? "initremote failed" diff --git a/Utility/CopyFile.hs b/Utility/CopyFile.hs index 01c600504..4ad85b7db 100644 --- a/Utility/CopyFile.hs +++ b/Utility/CopyFile.hs @@ -14,7 +14,7 @@ module Utility.CopyFile ( ) where import Common -import qualified Build.SysConfig as SysConfig +import qualified BuildInfo data CopyMetaData -- Copy timestamps when possible, but no other metadata, and @@ -34,11 +34,11 @@ copyFileExternal meta src dest = do where #ifndef __ANDROID__ params = map snd $ filter fst - [ (SysConfig.cp_reflink_auto, Param "--reflink=auto") - , (allmeta && SysConfig.cp_a, Param "-a") - , (allmeta && SysConfig.cp_p && not SysConfig.cp_a + [ (BuildInfo.cp_reflink_auto, Param "--reflink=auto") + , (allmeta && BuildInfo.cp_a, Param "-a") + , (allmeta && BuildInfo.cp_p && not BuildInfo.cp_a , Param "-p") - , (not allmeta && SysConfig.cp_preserve_timestamps + , (not allmeta && BuildInfo.cp_preserve_timestamps , Param "--preserve=timestamps") ] #else diff --git a/Utility/Gpg.hs b/Utility/Gpg.hs index 2ffb0add6..4af0067bb 100644 --- a/Utility/Gpg.hs +++ b/Utility/Gpg.hs @@ -10,7 +10,7 @@ module Utility.Gpg where import Common -import qualified Build.SysConfig as SysConfig +import qualified BuildInfo #ifndef mingw32_HOST_OS import System.Posix.Types import qualified System.Posix.IO @@ -35,7 +35,7 @@ newtype GpgCmd = GpgCmd { unGpgCmd :: String } - command was found at configure time, use it, or otherwise, "gpg". -} mkGpgCmd :: Maybe FilePath -> GpgCmd mkGpgCmd (Just c) = GpgCmd c -mkGpgCmd Nothing = GpgCmd (fromMaybe "gpg" SysConfig.gpg) +mkGpgCmd Nothing = GpgCmd (fromMaybe "gpg" BuildInfo.gpg) boolGpgCmd :: GpgCmd -> [CommandParam] -> IO Bool boolGpgCmd (GpgCmd cmd) = boolSystem cmd diff --git a/Utility/Lsof.hs b/Utility/Lsof.hs index e3ed709ec..ab80258b7 100644 --- a/Utility/Lsof.hs +++ b/Utility/Lsof.hs @@ -10,7 +10,7 @@ module Utility.Lsof where import Common -import Build.SysConfig as SysConfig +import BuildInfo import Utility.Env import System.Posix.Types @@ -23,12 +23,12 @@ type CmdLine = String data ProcessInfo = ProcessInfo ProcessID CmdLine deriving (Show) -{- lsof is not in PATH on all systems, so SysConfig may have the absolute +{- lsof is not in PATH on all systems, so BuildInfo may have the absolute - path where the program was found. Make sure at runtime that lsof is - available, and if it's not in PATH, adjust PATH to contain it. -} setup :: IO () setup = do - let cmd = fromMaybe "lsof" SysConfig.lsof + let cmd = fromMaybe "lsof" BuildInfo.lsof when (isAbsolute cmd) $ do path <- getSearchPath let path' = takeDirectory cmd : path diff --git a/Utility/Url.hs b/Utility/Url.hs index 3ebbf4160..14a755f26 100644 --- a/Utility/Url.hs +++ b/Utility/Url.hs @@ -33,7 +33,7 @@ module Utility.Url ( import Common import Utility.Tmp -import qualified Build.SysConfig +import qualified BuildInfo import Network.URI import Network.HTTP.Types @@ -163,7 +163,7 @@ getUrlInfo url uo = case parseURIRelaxed url of sz <- getFileSize' f stat found (Just sz) Nothing Nothing -> dne - | Build.SysConfig.curl -> existscurl u + | BuildInfo.curl -> existscurl u | otherwise -> dne Nothing -> dne where @@ -281,7 +281,7 @@ download' quiet url file uo = do -} #ifndef __ANDROID__ wgetparams = concat - [ if Build.SysConfig.wgetunclutter && not quiet + [ if BuildInfo.wgetunclutter && not quiet then [Param "-nv", Param "--show-progress"] else [] , [ Param "--clobber", Param "-c", Param "-O"] -- cgit v1.2.3