From cbb7f306b8f8f2672ea34b040a0010739f722310 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sun, 31 Dec 2017 14:09:41 -0400 Subject: Revert "git-annex.cabal: Add back custom-setup stanza, so cabal new-build works." This reverts commit c7c745d28868c8cd646d3e31dd8ba6a0b763f611. No, still doesn't work when built with cabal. It did with stack; stack must somehow make the unix package implicitly available. With cabal, System.Posix.Process and System.Posix.Env are both missing. --- Annex/Environment.hs | 1 - Assistant/Upgrade.hs | 1 - CHANGELOG | 1 - Git/CurrentRepo.hs | 1 - Git/Index.hs | 1 - Test.hs | 11 +++--- Utility/Env.hs | 24 +++++++++++++ Utility/Env/Set.hs | 40 ---------------------- Utility/Gpg.hs | 1 - Utility/Lsof.hs | 2 +- .../Add_custom-setup_stanza_to_.cabal_file.mdwn | 3 -- git-annex.cabal | 6 ---- 12 files changed, 30 insertions(+), 62 deletions(-) delete mode 100644 Utility/Env/Set.hs diff --git a/Annex/Environment.hs b/Annex/Environment.hs index 0ddf9d2b7..4f0fda986 100644 --- a/Annex/Environment.hs +++ b/Annex/Environment.hs @@ -14,7 +14,6 @@ import Utility.UserInfo import qualified Git.Config import Config import Utility.Env -import Utility.Env.Set {- Checks that the system's environment allows git to function. - Git requires a GECOS username, or suitable git configuration, or diff --git a/Assistant/Upgrade.hs b/Assistant/Upgrade.hs index c9084be53..3b7b48833 100644 --- a/Assistant/Upgrade.hs +++ b/Assistant/Upgrade.hs @@ -15,7 +15,6 @@ import qualified Annex import Assistant.Alert import Assistant.DaemonStatus import Utility.Env -import Utility.Env.Set import Types.Distribution import Types.Transfer import Logs.Web diff --git a/CHANGELOG b/CHANGELOG index 0093087df..510336c65 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -5,7 +5,6 @@ git-annex (6.20171215) UNRELEASED; urgency=medium downloaded. * Fix bug introduced in version 6.20171018 that caused some commands to print out "ok" twice after processing a file. - * git-annex.cabal: Add back custom-setup stanza, so cabal new-build works. -- Joey Hess Wed, 20 Dec 2017 12:11:46 -0400 diff --git a/Git/CurrentRepo.hs b/Git/CurrentRepo.hs index df074cf8b..69a679ee3 100644 --- a/Git/CurrentRepo.hs +++ b/Git/CurrentRepo.hs @@ -12,7 +12,6 @@ import Git.Types import Git.Construct import qualified Git.Config import Utility.Env -import Utility.Env.Set {- Gets the current git repository. - diff --git a/Git/Index.hs b/Git/Index.hs index 0898569b4..85ea480b5 100644 --- a/Git/Index.hs +++ b/Git/Index.hs @@ -10,7 +10,6 @@ module Git.Index where import Common import Git import Utility.Env -import Utility.Env.Set indexEnv :: String indexEnv = "GIT_INDEX_FILE" diff --git a/Test.hs b/Test.hs index ae52782e8..63ac73a87 100644 --- a/Test.hs +++ b/Test.hs @@ -83,7 +83,6 @@ import qualified Utility.Process import qualified Utility.Misc import qualified Utility.InodeCache import qualified Utility.Env -import qualified Utility.Env.Set import qualified Utility.Matcher import qualified Utility.Exception import qualified Utility.Hash @@ -131,7 +130,7 @@ runner = Just go subenv = "GIT_ANNEX_TEST_SUBPROCESS" runsubprocesstests opts Nothing = do pp <- Annex.Path.programPath - Utility.Env.Set.setEnv subenv "1" True + Utility.Env.setEnv subenv "1" True ps <- getArgs (Nothing, Nothing, Nothing, pid) <-createProcess (proc pp ps) exitcode <- waitForProcess pid @@ -1920,9 +1919,9 @@ ensuretmpdir = do isolateGitConfig :: IO a -> IO a isolateGitConfig a = Utility.Tmp.withTmpDir "testhome" $ \tmphome -> do tmphomeabs <- absPath tmphome - Utility.Env.Set.setEnv "HOME" tmphomeabs True - Utility.Env.Set.setEnv "XDG_CONFIG_HOME" tmphomeabs True - Utility.Env.Set.setEnv "GIT_CONFIG_NOSYSTEM" "1" True + Utility.Env.setEnv "HOME" tmphomeabs True + Utility.Env.setEnv "XDG_CONFIG_HOME" tmphomeabs True + Utility.Env.setEnv "GIT_CONFIG_NOSYSTEM" "1" True a cleanup :: FilePath -> IO () @@ -2108,7 +2107,7 @@ setTestMode testmode = do currdir <- getCurrentDirectory p <- Utility.Env.getEnvDefault "PATH" "" - mapM_ (\(var, val) -> Utility.Env.Set.setEnv var val True) + mapM_ (\(var, val) -> Utility.Env.setEnv var val True) -- Ensure that the just-built git annex is used. [ ("PATH", currdir ++ [searchPathSeparator] ++ p) , ("TOPDIR", currdir) diff --git a/Utility/Env.hs b/Utility/Env.hs index dfebd9868..c56f4ec23 100644 --- a/Utility/Env.hs +++ b/Utility/Env.hs @@ -16,6 +16,7 @@ import Control.Applicative import Data.Maybe import Prelude import qualified System.Environment as E +import qualified System.SetEnv #else import qualified System.Posix.Env as PE #endif @@ -41,6 +42,29 @@ getEnvironment = PE.getEnvironment getEnvironment = E.getEnvironment #endif +{- Sets an environment variable. To overwrite an existing variable, + - overwrite must be True. + - + - On Windows, setting a variable to "" unsets it. -} +setEnv :: String -> String -> Bool -> IO () +#ifndef mingw32_HOST_OS +setEnv var val overwrite = PE.setEnv var val overwrite +#else +setEnv var val True = System.SetEnv.setEnv var val +setEnv var val False = do + r <- getEnv var + case r of + Nothing -> setEnv var val True + Just _ -> return () +#endif + +unsetEnv :: String -> IO () +#ifndef mingw32_HOST_OS +unsetEnv = PE.unsetEnv +#else +unsetEnv = System.SetEnv.unsetEnv +#endif + {- Adds the environment variable to the input environment. If already - present in the list, removes the old value. - diff --git a/Utility/Env/Set.hs b/Utility/Env/Set.hs deleted file mode 100644 index fd8d5140d..000000000 --- a/Utility/Env/Set.hs +++ /dev/null @@ -1,40 +0,0 @@ -{- portable environment variables - - - - Copyright 2013 Joey Hess - - - - License: BSD-2-clause - -} - -{-# LANGUAGE CPP #-} - -module Utility.Env.Set where - -#ifdef mingw32_HOST_OS -import qualified System.Environment as E -import qualified System.SetEnv -#else -import qualified System.Posix.Env as PE -#endif - -{- Sets an environment variable. To overwrite an existing variable, - - overwrite must be True. - - - - On Windows, setting a variable to "" unsets it. -} -setEnv :: String -> String -> Bool -> IO () -#ifndef mingw32_HOST_OS -setEnv var val overwrite = PE.setEnv var val overwrite -#else -setEnv var val True = System.SetEnv.setEnv var val -setEnv var val False = do - r <- getEnv var - case r of - Nothing -> setEnv var val True - Just _ -> return () -#endif - -unsetEnv :: String -> IO () -#ifndef mingw32_HOST_OS -unsetEnv = PE.unsetEnv -#else -unsetEnv = System.SetEnv.unsetEnv -#endif diff --git a/Utility/Gpg.hs b/Utility/Gpg.hs index fff40454d..4af0067bb 100644 --- a/Utility/Gpg.hs +++ b/Utility/Gpg.hs @@ -15,7 +15,6 @@ import qualified BuildInfo import System.Posix.Types import qualified System.Posix.IO import Utility.Env -import Utility.Env.Set #endif import Utility.Tmp import Utility.Format (decode_c) diff --git a/Utility/Lsof.hs b/Utility/Lsof.hs index 7cab8d98a..ab80258b7 100644 --- a/Utility/Lsof.hs +++ b/Utility/Lsof.hs @@ -11,7 +11,7 @@ module Utility.Lsof where import Common import BuildInfo -import Utility.Env.Set +import Utility.Env import System.Posix.Types diff --git a/doc/bugs/Add_custom-setup_stanza_to_.cabal_file.mdwn b/doc/bugs/Add_custom-setup_stanza_to_.cabal_file.mdwn index fcf9b6b3a..51d4f189d 100644 --- a/doc/bugs/Add_custom-setup_stanza_to_.cabal_file.mdwn +++ b/doc/bugs/Add_custom-setup_stanza_to_.cabal_file.mdwn @@ -44,6 +44,3 @@ Use -v to see a list of the files searched for. Yeah, it's amazing! I've been using the version from the Debian repos and then wanted to try building the new version for youtube-dl support. - -> Revisited it and seem to have managed to add custom-setup back. [[done]] -> --[[Joey]] diff --git a/git-annex.cabal b/git-annex.cabal index 95d39f592..6b2fec439 100644 --- a/git-annex.cabal +++ b/git-annex.cabal @@ -302,11 +302,6 @@ source-repository head type: git location: git://git-annex.branchable.com/ -custom-setup - Setup-Depends: base (>= 4.5), hslogger, split, unix-compat, process, - filepath, exceptions, bytestring, directory, IfElse, data-default, - utf8-string, Cabal - Executable git-annex Main-Is: git-annex.hs Build-Depends: @@ -996,7 +991,6 @@ Executable git-annex Utility.Dot Utility.DottedVersion Utility.Env - Utility.Env.Set Utility.Exception Utility.ExternalSHA Utility.FileMode -- cgit v1.2.3