diff options
-rw-r--r-- | Build/BundledPrograms.hs | 2 | ||||
-rw-r--r-- | Build/Configure.hs | 4 | ||||
-rw-r--r-- | Test.hs | 2 | ||||
-rw-r--r-- | Utility/Gpg.hs | 12 | ||||
-rw-r--r-- | debian/changelog | 1 | ||||
-rw-r--r-- | doc/bugs/git_annex_fork_bombs_on_gpg_file.mdwn | 2 |
6 files changed, 17 insertions, 6 deletions
diff --git a/Build/BundledPrograms.hs b/Build/BundledPrograms.hs index 570af4adf..ae4beedf7 100644 --- a/Build/BundledPrograms.hs +++ b/Build/BundledPrograms.hs @@ -30,7 +30,7 @@ bundledPrograms = catMaybes #ifndef mingw32_HOST_OS , Just "sh" #endif - , ifset SysConfig.gpg "gpg" + , SysConfig.gpg , ifset SysConfig.curl "curl" , ifset SysConfig.wget "wget" , ifset SysConfig.bup "bup" diff --git a/Build/Configure.hs b/Build/Configure.hs index 65ba375bf..399af9da8 100644 --- a/Build/Configure.hs +++ b/Build/Configure.hs @@ -31,7 +31,9 @@ tests = , TestCase "curl" $ testCmd "curl" "curl --version >/dev/null" , TestCase "wget" $ testCmd "wget" "wget --version >/dev/null" , TestCase "bup" $ testCmd "bup" "bup --version >/dev/null" - , TestCase "gpg" $ testCmd "gpg" "gpg --version >/dev/null" + , TestCase "gpg" $ maybeSelectCmd "gpg" + [ ("gpg", "--version >/dev/null") + , ("gpg2", "--version >/dev/null") ] , TestCase "lsof" $ findCmdPath "lsof" "lsof" , TestCase "ssh connection caching" getSshConnectionCaching ] ++ shaTestCases @@ -732,7 +732,7 @@ test_bup_remote env = "git-annex bup remote" ~: intmpclonerepo env $ when Build. -- gpg is not a build dependency, so only test when it's available test_crypto :: TestEnv -> Test -test_crypto env = "git-annex crypto" ~: intmpclonerepo env $ when Build.SysConfig.gpg $ do +test_crypto env = "git-annex crypto" ~: intmpclonerepo env $ whenM (Utility.Path.inPath Utility.Gpg.gpgcmd) $ do #ifndef __WINDOWS__ Utility.Gpg.testTestHarness @? "test harness self-test failed" Utility.Gpg.testHarness $ do diff --git a/Utility/Gpg.hs b/Utility/Gpg.hs index aa4a7af73..33a26e272 100644 --- a/Utility/Gpg.hs +++ b/Utility/Gpg.hs @@ -17,10 +17,16 @@ import System.Path import Common import Utility.Env +import qualified Build.SysConfig as SysConfig newtype KeyIds = KeyIds [String] deriving (Ord, Eq) +{- If a specific gpg command was found at configure time, use it. + - Otherwise, try to run gpg. -} +gpgcmd :: FilePath +gpgcmd = fromMaybe "gpg" SysConfig.gpg + stdParams :: [CommandParam] -> IO [String] stdParams params = do #ifndef __WINDOWS__ @@ -44,7 +50,7 @@ stdParams params = do readStrict :: [CommandParam] -> IO String readStrict params = do params' <- stdParams params - withHandle StdoutHandle createProcessSuccess (proc "gpg" params') $ \h -> do + withHandle StdoutHandle createProcessSuccess (proc gpgcmd params') $ \h -> do hSetBinaryMode h True hGetContentsStrict h @@ -53,7 +59,7 @@ readStrict params = do pipeStrict :: [CommandParam] -> String -> IO String pipeStrict params input = do params' <- stdParams params - withBothHandles createProcessSuccess (proc "gpg" params') $ \(to, from) -> do + withBothHandles createProcessSuccess (proc gpgcmd params') $ \(to, from) -> do hSetBinaryMode to True hSetBinaryMode from True hPutStr to input @@ -84,7 +90,7 @@ feedRead params passphrase feeder reader = do params' <- stdParams $ [Param "--batch"] ++ passphrasefd ++ params closeFd frompipe `after` - withBothHandles createProcessSuccess (proc "gpg" params') go + withBothHandles createProcessSuccess (proc gpgcmd params') go where go (to, from) = do void $ forkIO $ do diff --git a/debian/changelog b/debian/changelog index 43bb13c14..b3bea55ab 100644 --- a/debian/changelog +++ b/debian/changelog @@ -6,6 +6,7 @@ git-annex (4.20130517) UNRELEASED; urgency=low catching exceptions. * Fix a zombie that could result when running a process like gpg to read and write to it. + * Allow building with gpg2. -- Joey Hess <joeyh@debian.org> Fri, 17 May 2013 11:17:03 -0400 diff --git a/doc/bugs/git_annex_fork_bombs_on_gpg_file.mdwn b/doc/bugs/git_annex_fork_bombs_on_gpg_file.mdwn index 958727bb9..9bfe3ee3b 100644 --- a/doc/bugs/git_annex_fork_bombs_on_gpg_file.mdwn +++ b/doc/bugs/git_annex_fork_bombs_on_gpg_file.mdwn @@ -21,3 +21,5 @@ add tinco.gpg .. (gpg) (gpg) (gpg) (gpg) (gpg) (gpg) (gpg) (gpg) (gpg) (gpg) (gpg) (gpg) (gpg) (gpg) (gpg) (gpg) (gpg) (gpg) (gpg) (gpg) (gpg) (gpg) (gpg) (gpg) (gpg) (gpg) (gpg) (gpg) (gpg) (gpg) ..etc recv (resource unavailable or something) .. + +> [[done]]; fixed 3 bugs! --[[Joey]] |