summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Build/BundledPrograms.hs2
-rw-r--r--Build/Configure.hs4
-rw-r--r--Test.hs2
-rw-r--r--Utility/Gpg.hs12
-rw-r--r--debian/changelog1
-rw-r--r--doc/bugs/git_annex_fork_bombs_on_gpg_file.mdwn2
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
diff --git a/Test.hs b/Test.hs
index 1274f974b..f063b9180 100644
--- a/Test.hs
+++ b/Test.hs
@@ -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]]