summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2017-04-10 12:14:24 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2017-04-10 12:14:24 -0400
commitdd6a20ac7111f0e7c6c0222511d25fdce108bb6b (patch)
tree8ddf4b2d1393d194c7c27a04aa06d51ae886f246
parent129e40d3d2202710f3b55d426901d50063e4aff0 (diff)
avoiding depending on latest version of process except on Windows
-rw-r--r--Annex/Multicast.hs11
-rw-r--r--git-annex.cabal4
2 files changed, 13 insertions, 2 deletions
diff --git a/Annex/Multicast.hs b/Annex/Multicast.hs
index 16aa1bd33..67d8ad7ad 100644
--- a/Annex/Multicast.hs
+++ b/Annex/Multicast.hs
@@ -5,6 +5,8 @@
- Licensed under the GNU GPL version 3 or higher.
-}
+{-# LANGUAGE CPP #-}
+
module Annex.Multicast where
import Config.Files
@@ -14,6 +16,9 @@ import Utility.PartialPrelude
import System.Process
import System.IO
import GHC.IO.Handle.FD
+#if ! MIN_VERSION_process(1,4,2)
+import System.Posix.IO (handleToFd)
+#endif
multicastReceiveEnv :: String
multicastReceiveEnv = "GIT_ANNEX_MULTICAST_RECEIVE"
@@ -21,8 +26,14 @@ multicastReceiveEnv = "GIT_ANNEX_MULTICAST_RECEIVE"
multicastCallbackEnv :: IO (FilePath, [(String, String)], Handle)
multicastCallbackEnv = do
gitannex <- readProgramFile
+#if MIN_VERSION_process(1,4,2)
+ -- This will even work on Windows
(rfd, wfd) <- createPipeFd
rh <- fdToHandle rfd
+#else
+ (rh, wh) <- createPipe
+ wfd <- handleToFd wh
+#endif
environ <- addEntry multicastReceiveEnv (show wfd) <$> getEnvironment
return (gitannex, environ, rh)
diff --git a/git-annex.cabal b/git-annex.cabal
index 81ac944fb..d5db26290 100644
--- a/git-annex.cabal
+++ b/git-annex.cabal
@@ -319,7 +319,7 @@ Executable git-annex
stm (>= 2.3),
mtl (>= 2),
uuid (>= 1.2.6),
- process (>= 1.4.2.0),
+ process,
data-default,
case-insensitive,
random,
@@ -384,7 +384,7 @@ Executable git-annex
if (os(windows))
Build-Depends: Win32, Win32-extras, unix-compat (>= 0.4.1.3), setenv,
- process (>= 1.3.0.0)
+ process (>= 1.4.2.0)
else
Build-Depends: unix
if impl(ghc <= 7.6.3)