--- leksah-server-0.8.0.8-orig/leksah-server.cabal	2010-09-12 00:52:22.000000000 +1000
+++ leksah-server-0.8.0.8/leksah-server.cabal	2011-01-16 22:12:46.314264482 +1100
@@ -27,15 +27,15 @@
     Description: Use libcurl instead of running wget
 
 library
-    build-depends: Cabal >=1.6.0.1 && <1.9, base >= 4.0.0.0 && <4.3, binary >=0.5.0.0 && <0.6,
+    build-depends: Cabal >=1.6.0.1 && <1.11, base >= 4.0.0.0 && <4.4, binary >=0.5.0.0 && <0.6,
                binary-shared >=0.8 && <0.9, bytestring >=0.9.0.1 && <0.10,
-               containers >=0.2.0.0 && <0.4,
-               directory >=1.0.0.2 && <1.1, filepath >=1.1.0.1 && <1.2, ghc >=6.10.1 && <6.13,
-               ltk >=0.8.0.8 && <0.9, mtl >=1.1.0.2 && <1.2, parsec >=2.1.0.1 && <2.2,
-               pretty >=1.0.1.0 && <1.1, process-leksah >=1.0.1.3 && <1.1, time >=1.1 && <1.2, deepseq >=1.1 && <1.2,
-               hslogger >= 1.0.7 && <1.1, network >=2.2 && <3.0
+               containers >=0.2.0.0 && <0.5,
+               directory >=1.0.0.2 && <1.2, filepath >=1.1.0.1 && <1.3, ghc >=6.10.1 && <7.1,
+               ltk >=0.8.0.8 && <0.9, mtl >=1.1.0.2 && <2.1, parsec >=2.1.0.1 && <2.2,
+               pretty >=1.0.1.0 && <1.1, process-leksah >=1.0.1.3 && <1.1, time >=1.1 && <1.3, deepseq >=1.1 && <1.2,
+               hslogger >= 1.0.7 && <1.2, network >=2.2 && <3.0
     if (impl(ghc >= 6.12))
-       build-depends: haddock >= 2.7.2 && <2.8
+       build-depends: haddock >= 2.7.2 && <2.10
     else
        build-depends: haddock-leksah == 2.5.0
     if os(windows)
@@ -69,14 +69,14 @@
     ghc-prof-options: -auto-all -prof
 
 executable leksah-server
-    build-depends: Cabal >=1.6.0.1 && <1.9, base >= 4.0.0.0 && <4.3, binary >=0.5.0.0 && <0.6,
+    build-depends: Cabal >=1.6.0.1 && <1.11, base >= 4.0.0.0 && <4.4, binary >=0.5.0.0 && <0.6,
                binary-shared >=0.8 && <0.9, bytestring >=0.9.0.1 && <0.10,
-               containers >=0.2.0.0 && <0.4,
-               directory >=1.0.0.2 && <1.1, filepath >=1.1.0.1 && <1.2, ghc >=6.10.1 && <6.13,
-               ltk >=0.8.0.8 && <0.9, mtl >=1.1.0.2 && <1.2, parsec >=2.1.0.1 && <2.2,
+               containers >=0.2.0.0 && <0.5,
+               directory >=1.0.0.2 && <1.2, filepath >=1.1.0.1 && <1.3, ghc >=6.10.1 && <7.1,
+               ltk >=0.8.0.8 && <0.9, mtl >=1.1.0.2 && <2.1, parsec >=2.1.0.1 && <2.2,
                pretty >=1.0.1.0 && <1.1, process-leksah >=1.0.1.3 && <1.1, deepseq >= 1.1 && <1.2, network >= 2.2 && <3.0
     if (impl(ghc >= 6.12))
-       build-depends: haddock >= 2.7.2 && <2.8
+       build-depends: haddock >= 2.7.2 && <2.10
     else
        build-depends: haddock-leksah == 2.5.0
 
--- leksah-server-0.8.0.8-orig/src/IDE/Metainfo/PackageCollector.hs	2010-09-12 00:52:22.000000000 +1000
+++ leksah-server-0.8.0.8/src/IDE/Metainfo/PackageCollector.hs	2010-12-30 14:08:17.292689793 +1100
@@ -49,7 +49,11 @@
 import Control.Monad (when)
 import System.IO (withBinaryFile, IOMode(..), hPutStr)
 #else
+#ifdef MIN_VERSION_process_leksah
 import IDE.System.Process (system)
+#else
+import System.Process (system)
+#endif
 #endif
 import Prelude hiding(catch)
 
--- leksah-server-0.8.0.8-orig/src/IDE/Metainfo/SourceCollectorH.hs	2010-09-12 00:52:22.000000000 +1000
+++ leksah-server-0.8.0.8/src/IDE/Metainfo/SourceCollectorH.hs	2010-12-30 14:08:17.293657380 +1100
@@ -147,7 +147,11 @@
             return (Nothing, PackageCollectStats packageName Nothing False False
                                             (Just ("Ghc failed to process: " ++ show e)))
         inner ghcFlags = inGhcIO ghcFlags [Opt_Haddock] $ \ _flags -> do
+#if MIN_VERSION_haddock(2,8,0)
+            (interfaces,_) <- processModules verbose (exportedMods ++ hiddenMods) [] []
+#else
             (interfaces,_) <- createInterfaces verbose (exportedMods ++ hiddenMods) [] []
+#endif
             liftIO $ print (length interfaces)
             let mods = map (interfaceToModuleDescr dirPath (getThisPackage packageConfig)) interfaces
             sp <- liftIO $ canonicalizePath dirPath
--- leksah-server-0.8.0.8-orig/src/IDE/Metainfo/WorkspaceCollector.hs	2010-09-12 00:52:22.000000000 +1000
+++ leksah-server-0.8.0.8/src/IDE/Metainfo/WorkspaceCollector.hs	2010-12-30 14:08:17.294633528 +1100
@@ -58,7 +58,7 @@
 import MyMissing(forceHead)
 import LoadIface(findAndReadIface)
 import Distribution.Text(display)
-import TcRnMonad hiding (liftIO,MonadIO,LIE)
+import TcRnMonad (initTcRnIf, IfGblEnv(..))
 import qualified Maybes as M
 import IDE.Metainfo.InterfaceCollector
 import Data.Maybe
@@ -141,7 +141,7 @@
 
 collectModule' :: FilePath -> FilePath -> Bool -> PackageIdentifier -> [String] -> ModuleName -> IO()
 collectModule' sourcePath destPath writeAscii packId opts moduleName' = gcatch (
-    inGhcIO opts [Opt_Haddock,Opt_Cpp] $ \ _dynFlags -> do
+    inGhcIO (opts++["-cpp"]) [Opt_Haddock] $ \ _dynFlags -> do
         session         <-  getSession
         (dynFlags3,fp') <-  preprocess session (sourcePath,Nothing)
         mbInterfaceDescr <- mayGetInterfaceDescription packId moduleName'
--- leksah-server-0.8.0.8-orig/src/IDE/Utils/FileUtils.hs	2010-09-12 00:52:22.000000000 +1000
+++ leksah-server-0.8.0.8/src/IDE/Utils/FileUtils.hs	2010-12-30 14:08:17.294633528 +1100
@@ -74,8 +74,13 @@
 import qualified Data.Set as  Set (empty, fromList)
 import Control.Monad.Trans (MonadIO(..))
 import Distribution.Package (PackageIdentifier)
+#ifdef MIN_VERSION_process_leksah
 import IDE.System.Process
     (waitForProcess, runCommand)
+#else
+import System.Process
+    (waitForProcess, runCommand)
+#endif
 import Data.Char (ord)
 import Distribution.Text (simpleParse)
 
--- leksah-server-0.8.0.8-orig/src/IDE/Utils/GHCUtils.hs	2010-09-12 00:52:22.000000000 +1000
+++ leksah-server-0.8.0.8/src/IDE/Utils/GHCUtils.hs	2010-12-30 14:08:17.295646377 +1100
@@ -138,7 +138,11 @@
 
       let loc  = mkSrcLoc (mkFastString src_filename) 1 0
 
+#if MIN_VERSION_ghc(7,0,1)
+      case unP P.parseModule (mkPState dflags buf' loc) of {
+#else
       case unP P.parseModule (mkPState buf' loc dflags) of {
+#endif
 
 	PFailed span' err -> return (Left (mkPlainErrMsg span' err));
 
@@ -158,7 +162,7 @@
       }}
 
 myParseHeader :: FilePath -> String -> [String] -> IO (Either String (HsModule RdrName))
-myParseHeader fp _str opts = inGhcIO opts [Opt_Cpp] $ \ _dynFlags -> do
+myParseHeader fp _str opts = inGhcIO (opts++["-cpp"]) [] $ \ _dynFlags -> do
     session   <- getSession
     (dynFlags',fp')    <-  preprocess session (fp,Nothing)
     liftIO $ do
@@ -189,7 +193,11 @@
 
       let loc  = mkSrcLoc (mkFastString src_filename) 1 0
 
+#if MIN_VERSION_ghc(7,0,1)
+      case unP P.parseHeader (mkPState dflags buf' loc) of {
+#else
       case unP P.parseHeader (mkPState buf' loc dflags) of {
+#endif
 
 	PFailed span' err -> return (Left (mkPlainErrMsg span' err));
 
--- leksah-server-0.8.0.8-orig/src/IDE/Utils/Tool.hs	2010-09-12 00:52:22.000000000 +1000
+++ leksah-server-0.8.0.8/src/IDE/Utils/Tool.hs	2010-12-30 14:08:17.296645464 +1100
@@ -41,9 +41,15 @@
 import Control.Monad (unless, when)
 import Data.List (stripPrefix)
 import Data.Maybe (isJust, catMaybes)
+#ifdef MIN_VERSION_process_leksah
 import IDE.System.Process
        (proc, waitForProcess, ProcessHandle, createProcess, CreateProcess(..))
 import IDE.System.Process.Internals (StdStream(..))
+#else
+import System.Process
+       (proc, waitForProcess, ProcessHandle, createProcess, CreateProcess(..))
+import System.Process.Internals (StdStream(..))
+#endif
 import Control.DeepSeq
 import System.Log.Logger (debugM, criticalM)
 import System.Exit (ExitCode(..))
