Hello community,

here is the log from the commit of package ghc-cabal-helper for 
openSUSE:Factory checked in at 2016-01-21 23:43:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-cabal-helper (Old)
 and      /work/SRC/openSUSE:Factory/.ghc-cabal-helper.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ghc-cabal-helper"

Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-cabal-helper/ghc-cabal-helper.changes        
2015-12-29 12:58:51.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-cabal-helper.new/ghc-cabal-helper.changes   
2016-01-22 01:08:43.000000000 +0100
@@ -1,0 +2,5 @@
+Mon Jan 11 07:39:48 UTC 2016 - [email protected]
+
+- update to 0.6.3.0 
+
+-------------------------------------------------------------------

Old:
----
  cabal-helper-0.6.2.0.tar.gz

New:
----
  cabal-helper-0.6.3.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ghc-cabal-helper.spec ++++++
--- /var/tmp/diff_new_pack.PHISNk/_old  2016-01-22 01:08:45.000000000 +0100
+++ /var/tmp/diff_new_pack.PHISNk/_new  2016-01-22 01:08:45.000000000 +0100
@@ -19,7 +19,7 @@
 %global pkg_name cabal-helper
 %bcond_with tests
 Name:           ghc-cabal-helper
-Version:        0.6.2.0
+Version:        0.6.3.0
 Release:        0
 Summary:        Simple interface to some of Cabal's configuration state used 
by ghc-mod
 License:        AGPL-3.0+

++++++ cabal-helper-0.6.2.0.tar.gz -> cabal-helper-0.6.3.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cabal-helper-0.6.2.0/Distribution/Helper.hs 
new/cabal-helper-0.6.3.0/Distribution/Helper.hs
--- old/cabal-helper-0.6.2.0/Distribution/Helper.hs     2015-09-24 
04:11:17.000000000 +0200
+++ new/cabal-helper-0.6.3.0/Distribution/Helper.hs     2016-01-10 
22:00:45.000000000 +0100
@@ -48,6 +48,7 @@
   , configFlags
   , nonDefaultConfigFlags
   , packageId
+  , compilerVersion
 
   -- * Result types
   , ChModuleName(..)
@@ -63,8 +64,10 @@
 
   -- * Managing @dist/@
   , prepare
+  , prepare'
   , reconfigure
   , writeAutogenFiles
+  , writeAutogenFiles'
 
   -- * $libexec related error handling
   , LibexecNotFoundError(..)
@@ -79,6 +82,7 @@
 import Control.Exception as E
 import Data.Char
 import Data.List
+import Data.Maybe
 import Data.Version
 import Data.Typeable
 import Distribution.Simple.BuildPaths (exeExtension)
@@ -154,7 +158,8 @@
       slbiPkgLicenses         :: [(String, [(String, Version)])],
       slbiFlags               :: [(String, Bool)],
       slbiConfigFlags         :: [(String, Bool)],
-      slbiNonDefaultConfigFlags :: [(String, Bool)]
+      slbiNonDefaultConfigFlags :: [(String, Bool)],
+      slbiCompilerVersion     :: (String, Version)
     } deriving (Eq, Ord, Read, Show)
 
 -- | Caches helper executable result so it doesn't have to be run more than 
once
@@ -164,6 +169,9 @@
                                          (ReaderT QueryEnv m) a }
     deriving (Functor, Applicative, Monad, MonadIO)
 
+instance MonadTrans Query where
+    lift = Query . lift . lift
+
 type MonadQuery m = ( MonadIO m
                     , MonadState (Maybe SomeLocalBuildInfo) m
                     , MonadReader QueryEnv m)
@@ -230,6 +238,9 @@
 -- i.e. don't rely on these being the flags set by the user directly.
 nonDefaultConfigFlags :: MonadIO m => Query m [(String, Bool)]
 
+-- | The version of GHC the project is configured to use
+compilerVersion :: MonadIO m => Query m (String, Version)
+
 -- | Package identifier, i.e. package name and version
 packageId :: MonadIO m => Query m (String, Version)
 
@@ -246,6 +257,7 @@
 flags               = Query $ slbiFlags               `liftM` getSlbi
 configFlags         = Query $ slbiConfigFlags         `liftM` getSlbi
 nonDefaultConfigFlags = Query $ slbiNonDefaultConfigFlags `liftM` getSlbi
+compilerVersion     = Query $ slbiCompilerVersion     `liftM` getSlbi
 packageId           = Query $ getPackageId
 
 -- | Run @cabal configure@
@@ -266,50 +278,57 @@
     _ <- liftIO $ readProc (cabalProgram progs) ("configure":progOpts) ""
     return ()
 
-
-
-invokeHelper :: MonadQuery m => [String] -> m [Maybe ChResponse]
-invokeHelper args = ask >>= \QueryEnv {..} -> do
-  let progs = qePrograms
-      projdir = qeProjectDir
-      distdir = qeDistDir
-
-      progArgs = [ "--with-ghc="     ++ ghcProgram progs
-                 , "--with-ghc-pkg=" ++ ghcPkgProgram progs
-                 , "--with-cabal="   ++ cabalProgram progs
+readHelper :: (MonadIO m, MonadQuery m) => [String] -> m [Maybe ChResponse]
+readHelper args = ask >>= \qe -> liftIO $ do
+  out <- either error id <$> invokeHelper qe args
+  let res = read out
+  liftIO $ evaluate res `E.catch` \se@(SomeException _) -> do
+      md <- lookupEnv' "CABAL_HELPER_DEBUG"
+      let msg = "readHelper: exception: '" ++ show se ++ "'"
+      error $ msg ++ case md of
+        Nothing -> ", for more information set the environment variable 
CABAL_HELPER_DEBUG"
+        Just _ -> ", output: '"++ out ++"'"
+
+invokeHelper :: QueryEnv -> [String] -> IO (Either String String)
+invokeHelper QueryEnv {..} args = do
+  let progArgs = [ "--with-ghc="     ++ ghcProgram qePrograms
+                 , "--with-ghc-pkg=" ++ ghcPkgProgram qePrograms
+                 , "--with-cabal="   ++ cabalProgram qePrograms
+                 ]
+  exe  <- findLibexecExe "cabal-helper-wrapper"
+  let args' = progArgs ++ qeProjectDir:qeDistDir:args
+  out <- qeReadProcess exe args' ""
+  (Right <$> evaluate out) `E.catch` \(SomeException _) ->
+      return $ Left $ concat
+                 ["invokeHelper", ": ", exe, " "
+                 , intercalate " " (map show args')
+                 , " failed"
                  ]
 
-  liftIO $ do
-    exe  <- findLibexecExe "cabal-helper-wrapper"
-    let args' = progArgs ++ projdir:distdir:args
-    out <- qeReadProcess exe args' ""
-    evaluate (read out) `E.catch` \(SomeException _) ->
-      error $ concat ["invokeHelper", ": ", exe, " "
-                     , intercalate " " (map show args')
-                     , " (read failed)"
-                     ]
 
 getPackageId :: MonadQuery m => m (String, Version)
 getPackageId = ask >>= \QueryEnv {..} -> do
-  [ Just (ChResponseVersion pkgName pkgVer) ] <- invokeHelper [ "package-id" ]
+  [ Just (ChResponseVersion pkgName pkgVer) ] <- readHelper [ "package-id" ]
   return (pkgName, pkgVer)
 
 
 getSomeConfigState :: MonadQuery m => m SomeLocalBuildInfo
 getSomeConfigState = ask >>= \QueryEnv {..} -> do
-  res <- invokeHelper [ "package-db-stack"
-                      , "entrypoints"
-                      , "source-dirs"
-                      , "ghc-options"
-                      , "ghc-src-options"
-                      , "ghc-pkg-options"
-                      , "ghc-merged-pkg-options"
-                      , "ghc-lang-options"
-                      , "licenses"
-                      , "flags"
-                      , "config-flags"
-                      , "non-default-config-flags"
-                      ]
+  res <- readHelper
+         [ "package-db-stack"
+         , "entrypoints"
+         , "source-dirs"
+         , "ghc-options"
+         , "ghc-src-options"
+         , "ghc-pkg-options"
+         , "ghc-merged-pkg-options"
+         , "ghc-lang-options"
+         , "licenses"
+         , "flags"
+         , "config-flags"
+         , "non-default-config-flags"
+         , "compiler-version"
+         ]
   let [ Just (ChResponsePkgDbs pkgDbs),
         Just (ChResponseEntrypoints eps),
         Just (ChResponseCompList srcDirs),
@@ -321,28 +340,31 @@
         Just (ChResponseLicenses pkgLics),
         Just (ChResponseFlags fls),
         Just (ChResponseFlags cfls),
-        Just (ChResponseFlags ndcfls)
+        Just (ChResponseFlags ndcfls),
+        Just (ChResponseVersion comp compVer)
         ] = res
 
   return $ SomeLocalBuildInfo
-    pkgDbs eps srcDirs ghcOpts ghcSrcOpts ghcPkgOpts ghcMergedPkgOpts 
ghcLangOpts pkgLics fls cfls ndcfls
+    pkgDbs eps srcDirs ghcOpts ghcSrcOpts ghcPkgOpts ghcMergedPkgOpts 
ghcLangOpts pkgLics fls cfls ndcfls (comp, compVer)
 
--- | Make sure the appropriate helper executable for the given project is
--- installed and ready to run queries.
 prepare :: MonadIO m
         => (FilePath -> [String] -> String -> IO String)
         -> FilePath
-        -- ^ Path to project directory, i.e. the one containing the
-        -- @project.cabal@ file
         -> FilePath
-        -- ^ Path to the @dist/@ directory
         -> m ()
 prepare readProc projdir distdir = liftIO $ do
   exe  <- findLibexecExe "cabal-helper-wrapper"
   void $ readProc exe [projdir, distdir] ""
 
--- | Create @cabal_macros.h@ and @Paths_\<pkg\>@ possibly other generated files
--- in the usual place.
+{-# DEPRECATED prepare
+  "Will be replaced by prepare' in the next major release" #-}
+
+-- | Make sure the appropriate helper executable for the given project is
+-- installed and ready to run queries.
+prepare' :: MonadIO m => QueryEnv -> m ()
+prepare' qe =
+  liftIO $ void $ invokeHelper qe []
+
 writeAutogenFiles :: MonadIO m
                   => (FilePath -> [String] -> String -> IO String)
                   -> FilePath
@@ -355,6 +377,15 @@
   exe  <- findLibexecExe "cabal-helper-wrapper"
   void $ readProc exe [projdir, distdir, "write-autogen-files"] ""
 
+{-# DEPRECATED writeAutogenFiles
+  "Will be replaced by writeAutogenFiles' in the next major release" #-}
+
+-- | Create @cabal_macros.h@ and @Paths_\<pkg\>@ possibly other generated files
+-- in the usual place.
+writeAutogenFiles' :: MonadIO m => QueryEnv -> m ()
+writeAutogenFiles' qe  =
+  liftIO $ void $ invokeHelper qe ["write-autogen-files"]
+
 -- | Get the path to the sandbox package-db in a project
 getSandboxPkgDb :: (FilePath -> [String] -> String -> IO String)
              -> FilePath
@@ -442,3 +473,6 @@
 #else
     getProgName
 #endif
+
+lookupEnv' :: String -> IO (Maybe String)
+lookupEnv' k = lookup k <$> getEnvironment
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cabal-helper-0.6.2.0/cabal-helper.cabal 
new/cabal-helper-0.6.3.0/cabal-helper.cabal
--- old/cabal-helper-0.6.2.0/cabal-helper.cabal 2015-11-19 13:22:02.000000000 
+0100
+++ new/cabal-helper-0.6.3.0/cabal-helper.cabal 2016-01-10 22:00:59.000000000 
+0100
@@ -1,5 +1,5 @@
 name:                cabal-helper
-version:             0.6.2.0
+version:             0.6.3.0
 synopsis:            Simple interface to some of Cabal's configuration state 
used by ghc-mod
 description:
     @cabal-helper@ provides a library which wraps the internal use of
@@ -68,6 +68,7 @@
                        CabalHelper.Data
                        CabalHelper.Compile
                        CabalHelper.Log
+                       CabalHelper.Sandbox
   GHC-Options:         -Wall
   X-Install-Target:    $libexecdir
   Build-Depends:       base >= 4.5 && < 5
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cabal-helper-0.6.2.0/tests/Spec.hs 
new/cabal-helper-0.6.3.0/tests/Spec.hs
--- old/cabal-helper-0.6.2.0/tests/Spec.hs      2015-11-03 14:27:21.000000000 
+0100
+++ new/cabal-helper-0.6.3.0/tests/Spec.hs      2016-01-10 22:00:45.000000000 
+0100
@@ -8,6 +8,7 @@
 import Data.Functor
 import Control.Exception as E
 import Control.Arrow
+import Prelude
 
 import CabalHelper.Common
 import CabalHelper.Compile
@@ -18,7 +19,7 @@
   flip (setEnv "HOME") True =<< fromMaybe "/tmp" <$> lookupEnv "TMPDIR"
   _ <- rawSystem "cabal" ["update"]
 
-  writeAutogenFiles readProcess "." "./dist"
+  writeAutogenFiles' $ defaultQueryEnv "." "./dist"
 
   let vers :: [(Version, [Version])]
       vers = map (parseVer *** map parseVer) [


Reply via email to