Hello community,

here is the log from the commit of package ghc-gio for openSUSE:Factory checked 
in at 2016-11-15 17:58:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-gio (Old)
 and      /work/SRC/openSUSE:Factory/.ghc-gio.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ghc-gio"

Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-gio/ghc-gio.changes  2016-07-21 
08:02:50.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-gio.new/ghc-gio.changes     2016-11-15 
17:58:44.000000000 +0100
@@ -1,0 +2,15 @@
+Sun Oct 30 16:26:48 UTC 2016 - [email protected]
+
+- Update to version 0.13.3.1 with cabal2obs.
+
+-------------------------------------------------------------------
+Thu Sep 15 07:09:27 UTC 2016 - [email protected]
+
+- Update to version 0.13.3.0 revision 0 with cabal2obs.
+
+-------------------------------------------------------------------
+Sat Jul 23 11:43:58 UTC 2016 - [email protected]
+
+- License field update
+
+-------------------------------------------------------------------

Old:
----
  gio-0.13.1.1.tar.gz

New:
----
  gio-0.13.3.1.tar.gz

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

Other differences:
------------------
++++++ ghc-gio.spec ++++++
--- /var/tmp/diff_new_pack.YD9aNB/_old  2016-11-15 17:58:45.000000000 +0100
+++ /var/tmp/diff_new_pack.YD9aNB/_new  2016-11-15 17:58:45.000000000 +0100
@@ -18,23 +18,21 @@
 
 %global pkg_name gio
 Name:           ghc-%{pkg_name}
-Version:        0.13.1.1
+Version:        0.13.3.1
 Release:        0
 Summary:        Binding to GIO
-License:        LGPL-2.1+
-Group:          System/Libraries
+License:        LGPL-2.1+ and LGPL-3.0+
+Group:          Development/Languages/Other
 Url:            https://hackage.haskell.org/package/%{pkg_name}
 Source0:        
https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz
 BuildRequires:  ghc-Cabal-devel
-# Begin cabal-rpm deps:
 BuildRequires:  ghc-array-devel
 BuildRequires:  ghc-bytestring-devel
 BuildRequires:  ghc-containers-devel
 BuildRequires:  ghc-glib-devel
+BuildRequires:  ghc-gtk2hs-buildtools-devel
 BuildRequires:  ghc-mtl-devel
 BuildRequires:  ghc-rpm-macros
-BuildRequires:  gtk2hs-buildtools
-# End cabal-rpm deps
 BuildRequires:  pkgconfig
 BuildRequires:  pkgconfig(gio-2.0)
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
@@ -51,12 +49,10 @@
 Group:          Development/Libraries/Other
 Requires:       %{name} = %{version}-%{release}
 Requires:       ghc-compiler = %{ghc_version}
-# Begin cabal-rpm deps:
 Requires:       pkgconfig
 Requires:       pkgconfig(gio-2.0)
 Requires(post): ghc-compiler = %{ghc_version}
 Requires(postun): ghc-compiler = %{ghc_version}
-# End cabal-rpm deps
 
 %description devel
 This package provides the Haskell %{pkg_name} library development files.
@@ -64,15 +60,12 @@
 %prep
 %setup -q -n %{pkg_name}-%{version}
 
-
 %build
 %ghc_lib_build
 
-
 %install
 %ghc_lib_install
 
-
 %post devel
 %ghc_pkg_recache
 

++++++ gio-0.13.1.1.tar.gz -> gio-0.13.3.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gio-0.13.1.1/Gtk2HsSetup.hs 
new/gio-0.13.3.1/Gtk2HsSetup.hs
--- old/gio-0.13.1.1/Gtk2HsSetup.hs     2015-12-13 07:47:08.000000000 +0100
+++ new/gio-0.13.3.1/Gtk2HsSetup.hs     1970-01-01 01:00:00.000000000 +0100
@@ -1,500 +0,0 @@
-{-# LANGUAGE CPP, ViewPatterns #-}
-
-#ifndef CABAL_VERSION_CHECK
-#error This module has to be compiled via the Setup.hs program which generates 
the gtk2hs-macros.h file
-#endif
-
--- | Build a Gtk2hs package.
---
-module Gtk2HsSetup (
-  gtk2hsUserHooks,
-  getPkgConfigPackages,
-  checkGtk2hsBuildtools,
-  typeGenProgram,
-  signalGenProgram,
-  c2hsLocal
-  ) where
-
-import Distribution.Simple
-import Distribution.Simple.PreProcess
-import Distribution.InstalledPackageInfo ( importDirs,
-                                           showInstalledPackageInfo,
-                                           libraryDirs,
-                                           extraLibraries,
-                                           extraGHCiLibraries )
-import Distribution.Simple.PackageIndex ( lookupInstalledPackageId )
-import Distribution.PackageDescription as PD ( PackageDescription(..),
-                                               updatePackageDescription,
-                                               BuildInfo(..),
-                                               emptyBuildInfo, allBuildInfo,
-                                               Library(..),
-                                               libModules, hasLibs)
-import Distribution.Simple.LocalBuildInfo (LocalBuildInfo(withPackageDB, 
buildDir, localPkgDescr, installedPkgs, withPrograms),
-                                           InstallDirs(..),
-                                           componentPackageDeps,
-                                           absoluteInstallDirs)
-import Distribution.Simple.Compiler  ( Compiler(..) )
-import Distribution.Simple.Program (
-  Program(..), ConfiguredProgram(..),
-  rawSystemProgramConf, rawSystemProgramStdoutConf, programName, programPath,
-  c2hsProgram, pkgConfigProgram, gccProgram, requireProgram, ghcPkgProgram,
-  simpleProgram, lookupProgram, rawSystemProgramStdout, ProgArg)
-import Distribution.ModuleName ( ModuleName, components, toFilePath )
-import Distribution.Simple.Utils
-import Distribution.Simple.Setup (CopyFlags(..), InstallFlags(..), 
CopyDest(..),
-                                  defaultCopyFlags, 
ConfigFlags(configVerbosity),
-                                  fromFlag, toFlag, RegisterFlags(..), 
flagToMaybe,
-                                  fromFlagOrDefault, defaultRegisterFlags)
-import Distribution.Simple.BuildPaths ( autogenModulesDir )
-import Distribution.Simple.Install ( install )
-import Distribution.Simple.Register ( generateRegistrationInfo, 
registerPackage )
-import Distribution.Text ( simpleParse, display )
-import System.FilePath
-import System.Exit (exitFailure)
-import System.Directory ( doesFileExist, getDirectoryContents, 
doesDirectoryExist )
-import Distribution.Version (Version(..))
-import Distribution.Verbosity
-import Control.Monad (when, unless, filterM, liftM, forM, forM_)
-import Data.Maybe ( isJust, isNothing, fromMaybe, maybeToList, catMaybes )
-import Data.List (isPrefixOf, isSuffixOf, nub, minimumBy, stripPrefix, tails )
-import Data.Ord as Ord (comparing)
-import Data.Char (isAlpha, isNumber)
-import qualified Data.Map as M
-import qualified Data.Set as S
-import qualified Distribution.Simple.LocalBuildInfo as LBI
-import Distribution.Simple.Compiler (compilerVersion)
-
-import Control.Applicative ((<$>))
-
-#if CABAL_VERSION_CHECK(1,17,0)
-import Distribution.Simple.Program.Find ( defaultProgramSearchPath )
-onDefaultSearchPath f a b = f a b defaultProgramSearchPath
-libraryConfig lbi = case [clbi | (LBI.CLibName, clbi, _) <- 
LBI.componentsConfigs lbi] of
-  [clbi] -> Just clbi
-  _ -> Nothing
-#else
-onDefaultSearchPath = id
-libraryConfig = LBI.libraryConfig
-#endif
-
--- the name of the c2hs pre-compiled header file
-precompFile = "precompchs.bin"
-
-gtk2hsUserHooks = simpleUserHooks {
-    hookedPrograms = [typeGenProgram, signalGenProgram, c2hsLocal],
-    hookedPreProcessors = [("chs", ourC2hs)],
-    confHook = \pd cf ->
-      (fmap adjustLocalBuildInfo (confHook simpleUserHooks pd cf)),
-    postConf = \args cf pd lbi -> do
-      genSynthezisedFiles (fromFlag (configVerbosity cf)) pd lbi
-      postConf simpleUserHooks args cf pd lbi,
-    buildHook = \pd lbi uh bf -> fixDeps pd >>= \pd ->
-                                 buildHook simpleUserHooks pd lbi uh bf,
-    copyHook = \pd lbi uh flags -> copyHook simpleUserHooks pd lbi uh flags >>
-      installCHI pd lbi (fromFlag (copyVerbosity flags)) (fromFlag (copyDest 
flags)),
-    instHook = \pd lbi uh flags ->
-#if defined(mingw32_HOST_OS) || defined(__MINGW32__)
-      installHook pd lbi uh flags >>
-      installCHI pd lbi (fromFlag (installVerbosity flags)) NoCopyDest,
-    regHook = registerHook
-#else
-      instHook simpleUserHooks pd lbi uh flags >>
-      installCHI pd lbi (fromFlag (installVerbosity flags)) NoCopyDest
-#endif
-  }
-
-------------------------------------------------------------------------------
--- Lots of stuff for windows ghci support
-------------------------------------------------------------------------------
-
-getDlls :: [FilePath] -> IO [FilePath]
-getDlls dirs = filter ((== ".dll") . takeExtension) . concat <$>
-    mapM getDirectoryContents dirs
-
-fixLibs :: [FilePath] -> [String] -> [String]
-fixLibs dlls = concatMap $ \ lib ->
-    case filter (isLib lib) dlls of
-                dlls@(_:_) -> [dropExtension (pickDll dlls)]
-                _          -> if lib == "z" then [] else [lib]
-  where
-    -- If there are several .dll files matching the one we're after then we
-    -- just have to guess. For example for recent Windows cairo builds we get
-    -- libcairo-2.dll libcairo-gobject-2.dll libcairo-script-interpreter-2.dll
-    -- Our heuristic is to pick the one with the shortest name.
-    -- Yes this is a hack but the proper solution is hard: we would need to
-    -- parse the .a file and see which .dll file(s) it needed to link to.
-    pickDll = minimumBy (Ord.comparing length)
-    isLib lib dll =
-        case stripPrefix ("lib"++lib) dll of
-            Just ('.':_)                -> True
-            Just ('-':n:_) | isNumber n -> True
-            _                           -> False
-
--- The following code is a big copy-and-paste job from the sources of
--- Cabal 1.8 just to be able to fix a field in the package file. Yuck.
-
-installHook :: PackageDescription -> LocalBuildInfo
-                   -> UserHooks -> InstallFlags -> IO ()
-installHook pkg_descr localbuildinfo _ flags = do
-  let copyFlags = defaultCopyFlags {
-                      copyDistPref   = installDistPref flags,
-                      copyDest       = toFlag NoCopyDest,
-                      copyVerbosity  = installVerbosity flags
-                  }
-  install pkg_descr localbuildinfo copyFlags
-  let registerFlags = defaultRegisterFlags {
-                          regDistPref  = installDistPref flags,
-                          regInPlace   = installInPlace flags,
-                          regPackageDB = installPackageDB flags,
-                          regVerbosity = installVerbosity flags
-                      }
-  when (hasLibs pkg_descr) $ register pkg_descr localbuildinfo registerFlags
-
-registerHook :: PackageDescription -> LocalBuildInfo
-        -> UserHooks -> RegisterFlags -> IO ()
-registerHook pkg_descr localbuildinfo _ flags =
-    if hasLibs pkg_descr
-    then register pkg_descr localbuildinfo flags
-    else setupMessage verbosity
-           "Package contains no library to register:" (packageId pkg_descr)
-  where verbosity = fromFlag (regVerbosity flags)
-
-register :: PackageDescription -> LocalBuildInfo
-         -> RegisterFlags -- ^Install in the user's database?; verbose
-         -> IO ()
-register pkg@PackageDescription { library       = Just lib  } lbi regFlags
-  = do
-    let clbi = LBI.getComponentLocalBuildInfo lbi LBI.CLibName
-
-    installedPkgInfoRaw <- generateRegistrationInfo
-#if CABAL_VERSION_CHECK(1,22,0)
-                           verbosity pkg lib lbi clbi inplace False distPref 
packageDb
-#else
-                           verbosity pkg lib lbi clbi inplace distPref
-#endif
-
-    dllsInScope <- getSearchPath >>= (filterM doesDirectoryExist) >>= getDlls
-    let libs = fixLibs dllsInScope (extraLibraries installedPkgInfoRaw)
-        installedPkgInfo = installedPkgInfoRaw {
-                                extraGHCiLibraries = libs }
-
-     -- Three different modes:
-    case () of
-     _ | modeGenerateRegFile   -> writeRegistrationFile installedPkgInfo
-       | modeGenerateRegScript -> die "Generate Reg Script not supported"
-       | otherwise             -> registerPackage verbosity
-                                    installedPkgInfo pkg lbi inplace
-#if CABAL_VERSION_CHECK(1,10,0)
-                                    packageDbs
-#else
-                                    packageDb
-#endif
-
-  where
-    modeGenerateRegFile = isJust (flagToMaybe (regGenPkgConf regFlags))
-    regFile             = fromMaybe (display (packageId pkg) <.> "conf")
-                                    (fromFlag (regGenPkgConf regFlags))
-    modeGenerateRegScript = fromFlag (regGenScript regFlags)
-    inplace   = fromFlag (regInPlace regFlags)
-    packageDbs = nub $ withPackageDB lbi
-                    ++ maybeToList (flagToMaybe  (regPackageDB regFlags))
-    packageDb = registrationPackageDB packageDbs
-    distPref  = fromFlag (regDistPref regFlags)
-    verbosity = fromFlag (regVerbosity regFlags)
-
-    writeRegistrationFile installedPkgInfo = do
-      notice verbosity ("Creating package registration file: " ++ regFile)
-      writeUTF8File regFile (showInstalledPackageInfo installedPkgInfo)
-
-register _ _ regFlags = notice verbosity "No package to register"
-  where
-    verbosity = fromFlag (regVerbosity regFlags)
-
-
-------------------------------------------------------------------------------
--- This is a hack for Cabal-1.8, It is not needed in Cabal-1.9.1 or later
-------------------------------------------------------------------------------
-
-adjustLocalBuildInfo :: LocalBuildInfo -> LocalBuildInfo
-adjustLocalBuildInfo lbi =
-  let extra = (Just libBi, [])
-      libBi = emptyBuildInfo { includeDirs = [ autogenModulesDir lbi
-                                             , buildDir lbi ] }
-   in lbi { localPkgDescr = updatePackageDescription extra (localPkgDescr lbi) 
}
-
-------------------------------------------------------------------------------
--- Processing .chs files with our local c2hs.
-------------------------------------------------------------------------------
-
-ourC2hs :: BuildInfo -> LocalBuildInfo -> PreProcessor
-ourC2hs bi lbi = PreProcessor {
-  platformIndependent = False,
-  runPreProcessor = runC2HS bi lbi
-}
-
-runC2HS :: BuildInfo -> LocalBuildInfo ->
-           (FilePath, FilePath) -> (FilePath, FilePath) -> Verbosity -> IO ()
-runC2HS bi lbi (inDir, inFile)  (outDir, outFile) verbosity = do
-  -- have the header file name if we don't have the precompiled header yet
-  header <- case lookup "x-c2hs-header" (customFieldsBI bi) of
-    Just h -> return h
-    Nothing -> die ("Need x-c2hs-Header definition in the .cabal Library 
section "++
-                    "that sets the C header file to process .chs.pp files.")
-
-  -- c2hs will output files in out dir, removing any leading path of the input 
file.
-  -- Thus, append the dir of the input file to the output dir.
-  let (outFileDir, newOutFile) = splitFileName outFile
-  let newOutDir = outDir </> outFileDir
-  -- additional .chi files might be needed that other packages have installed;
-  -- we assume that these are installed in the same place as .hi files
-  let chiDirs = [ dir |
-                  ipi <- maybe [] (map fst . componentPackageDeps) 
(libraryConfig lbi),
-                  dir <- maybe [] importDirs (lookupInstalledPackageId 
(installedPkgs lbi) ipi) ]
-  (gccProg, _) <- requireProgram verbosity gccProgram (withPrograms lbi)
-  rawSystemProgramConf verbosity c2hsLocal (withPrograms lbi) $
-       map ("--include=" ++) (outDir:chiDirs)
-    ++ [ "--cpp=" ++ programPath gccProg, "--cppopts=-E" ]
-    ++ ["--cppopts=" ++ opt | opt <- getCppOptions bi lbi]
-    ++ ["--output-dir=" ++ newOutDir,
-        "--output=" ++ newOutFile,
-        "--precomp=" ++ buildDir lbi </> precompFile,
-        header, inDir </> inFile]
-
-getCppOptions :: BuildInfo -> LocalBuildInfo -> [String]
-getCppOptions bi lbi
-    = nub $
-      ["-I" ++ dir | dir <- PD.includeDirs bi]
-   ++ [opt | opt@('-':c:_) <- PD.cppOptions bi ++ PD.ccOptions bi, c `elem` 
"DIU"]
-   ++ ["-D__GLASGOW_HASKELL__="++show (ghcDefine . ghcVersion . compilerId $ 
LBI.compiler lbi)]
- where
-  ghcDefine (v1:v2:_) = v1 * 100 + v2
-  ghcDefine _ = __GLASGOW_HASKELL__
-
-  ghcVersion :: CompilerId -> [Int]
--- This version is nicer, but we need to know the Cabal version that includes 
the new CompilerId
--- #if CABAL_VERSION_CHECK(1,19,2)
---   ghcVersion (CompilerId GHC v _) = versionBranch v
---   ghcVersion (CompilerId _ _ (Just c)) = ghcVersion c
--- #else
---   ghcVersion (CompilerId GHC v) = versionBranch v
--- #endif
---   ghcVersion _ = []
--- This version should work fine for now
-  ghcVersion = concat . take 1 . map (read . (++"]") . takeWhile (/=']')) . 
catMaybes
-               . map (stripPrefix "CompilerId GHC (Version {versionBranch = ") 
. tails . show
-
-installCHI :: PackageDescription -- ^information from the .cabal file
-        -> LocalBuildInfo -- ^information from the configure step
-        -> Verbosity -> CopyDest -- ^flags sent to copy or install
-        -> IO ()
-installCHI [email protected] { library = Just lib } lbi verbosity 
copydest = do
-  let InstallDirs { libdir = libPref } = absoluteInstallDirs pkg lbi copydest
-  -- cannot use the recommended 'findModuleFiles' since it fails if there 
exists
-  -- a modules that does not have a .chi file
-  mFiles <- mapM (findFileWithExtension' ["chi"] [buildDir lbi] . toFilePath)
-                   (PD.libModules lib)
-
-  let files = [ f | Just f <- mFiles ]
-  installOrdinaryFiles verbosity libPref files
-
-
-installCHI _ _ _ _ = return ()
-
-------------------------------------------------------------------------------
--- Generating the type hierarchy and signal callback .hs files.
-------------------------------------------------------------------------------
-
-typeGenProgram :: Program
-typeGenProgram = simpleProgram "gtk2hsTypeGen"
-
-signalGenProgram :: Program
-signalGenProgram = simpleProgram "gtk2hsHookGenerator"
-
-c2hsLocal :: Program
-c2hsLocal = (simpleProgram "gtk2hsC2hs") {
-    programFindVersion = findProgramVersion "--version" $ \str ->
-      -- Invoking "gtk2hsC2hs --version" gives a string like:
-      -- C->Haskell Compiler, version 0.13.4 (gtk2hs branch) "Bin IO", 13 Nov 
2004
-      case words str of
-        (_:_:_:ver:_) -> ver
-        _             -> ""
-  }
-
-
-genSynthezisedFiles :: Verbosity -> PackageDescription -> LocalBuildInfo -> IO 
()
-genSynthezisedFiles verb pd lbi = do
-  cPkgs <- getPkgConfigPackages verb lbi pd
-
-  let xList = maybe [] (customFieldsBI . libBuildInfo) (library pd)
-              ++customFieldsPD pd
-      typeOpts :: String -> [ProgArg]
-      typeOpts tag = concat [ map (\val -> '-':'-':drop (length tag) field ++ 
'=':val) (words content)
-                            | (field,content) <- xList,
-                              tag `isPrefixOf` field,
-                              field /= (tag++"file")]
-              ++ [ "--tag=" ++ tag
-                 | PackageIdentifier name (Version (major:minor:_) _) <- cPkgs
-                 , let name' = filter isAlpha (display name)
-                 , tag <- name'
-                        :[ name' ++ "-" ++ show maj ++ "." ++ show d2
-                          | (maj, d2) <- [(maj,   d2) | maj <- [0..(major-1)], 
d2 <- [0,2..20]]
-                                      ++ [(major, d2) | d2 <- [0,2..minor]] ]
-                 ]
-
-      signalsOpts :: [ProgArg]
-      signalsOpts = concat [ map (\val -> '-':'-':drop 10 field++'=':val) 
(words content)
-                        | (field,content) <- xList,
-                          "x-signals-" `isPrefixOf` field,
-                          field /= "x-signals-file"]
-
-      genFile :: Program -> [ProgArg] -> FilePath -> IO ()
-      genFile prog args outFile = do
-         res <- rawSystemProgramStdoutConf verb prog (withPrograms lbi) args
-         rewriteFile outFile res
-
-  forM_ (filter (\(tag,_) -> "x-types-" `isPrefixOf` tag && "file" 
`isSuffixOf` tag) xList) $
-    \(fileTag, f) -> do
-      let tag = reverse (drop 4 (reverse fileTag))
-      info verb ("Ensuring that class hierarchy in "++f++" is up-to-date.")
-      genFile typeGenProgram (typeOpts tag) f
-
-  case lookup "x-signals-file" xList of
-    Nothing -> return ()
-    Just f -> do
-      info verb ("Ensuring that callback hooks in "++f++" are up-to-date.")
-      genFile signalGenProgram signalsOpts f
-
-  writeFile "gtk2hs_macros.h" $ generateMacros cPkgs
-
--- Based on Cabal/Distribution/Simple/Build/Macros.hs
-generateMacros :: [PackageId] -> String
-generateMacros cPkgs = concat $
-  "/* DO NOT EDIT: This file is automatically generated by Gtk2HsSetup.hs 
*/\n\n" :
-  [ concat
-    ["/* package ",display pkgid," */\n"
-    ,"#define VERSION_",pkgname," ",show (display version),"\n"
-    ,"#define MIN_VERSION_",pkgname,"(major1,major2,minor) (\\\n"
-    ,"  (major1) <  ",major1," || \\\n"
-    ,"  (major1) == ",major1," && (major2) <  ",major2," || \\\n"
-    ,"  (major1) == ",major1," && (major2) == ",major2," && (minor) <= 
",minor,")"
-    ,"\n\n"
-    ]
-  | pkgid@(PackageIdentifier name version) <- cPkgs
-  , let (major1:major2:minor:_) = map show (versionBranch version ++ repeat 0)
-        pkgname = map fixchar (display name)
-  ]
-  where fixchar '-' = '_'
-        fixchar '.' = '_'
-        fixchar c   = c
-
---FIXME: Cabal should tell us the selected pkg-config package versions in the
---       LocalBuildInfo or equivalent.
---       In the mean time, ask pkg-config again.
-
-getPkgConfigPackages :: Verbosity -> LocalBuildInfo -> PackageDescription -> 
IO [PackageId]
-getPkgConfigPackages verbosity lbi pkg =
-  sequence
-    [ do version <- pkgconfig ["--modversion", display pkgname]
-         case simpleParse version of
-           Nothing -> die "parsing output of pkg-config --modversion failed"
-           Just v  -> return (PackageIdentifier pkgname v)
-    | Dependency pkgname _ <- concatMap pkgconfigDepends (allBuildInfo pkg) ]
-  where
-    pkgconfig = rawSystemProgramStdoutConf verbosity
-                  pkgConfigProgram (withPrograms lbi)
-
-------------------------------------------------------------------------------
--- Dependency calculation amongst .chs files.
-------------------------------------------------------------------------------
-
--- Given all files of the package, find those that end in .chs and extract the
--- .chs files they depend upon. Then return the PackageDescription with these
--- files rearranged so that they are built in a sequence that files that are
--- needed by other files are built first.
-fixDeps :: PackageDescription -> IO PackageDescription
-fixDeps [email protected] {
-          PD.library = Just [email protected] {
-            PD.exposedModules = expMods,
-            PD.libBuildInfo = [email protected] {
-              PD.hsSourceDirs = srcDirs,
-              PD.otherModules = othMods
-            }}} = do
-  let findModule m = findFileWithExtension [".chs.pp",".chs"] srcDirs
-                       (joinPath (components m))
-  mExpFiles <- mapM findModule expMods
-  mOthFiles <- mapM findModule othMods
-
-  -- tag all exposed files with True so we throw an error if we need to build
-  -- an exposed module before an internal modules (we cannot express this)
-  let modDeps = zipWith (ModDep True []) expMods mExpFiles++
-                zipWith (ModDep False []) othMods mOthFiles
-  modDeps <- mapM extractDeps modDeps
-  let (othMods, expMods) = span (not . mdExposed) $ reverse $ sortTopological 
modDeps
-  return pd { PD.library = Just lib {
-    PD.exposedModules = map mdOriginal (reverse expMods),
-    PD.libBuildInfo = bi { PD.otherModules = map mdOriginal (reverse othMods) }
-  }}
-
-data ModDep = ModDep {
-  mdExposed :: Bool,
-  mdRequires :: [ModuleName],
-  mdOriginal :: ModuleName,
-  mdLocation :: Maybe FilePath
-}
-
-instance Show ModDep where
-  show x = show (mdLocation x)
-
-instance Eq ModDep where
-  ModDep { mdOriginal = m1 } == ModDep { mdOriginal = m2 } = m1==m2
-instance Ord ModDep where
-  compare ModDep { mdOriginal = m1 } ModDep { mdOriginal = m2 } = compare m1 m2
-
--- Extract the dependencies of this file. This is intentionally rather naive 
as it
--- ignores CPP conditionals. We just require everything which means that the
--- existance of a .chs module may not depend on some CPP condition.
-extractDeps :: ModDep -> IO ModDep
-extractDeps md@ModDep { mdLocation = Nothing } = return md
-extractDeps md@ModDep { mdLocation = Just f } = withUTF8FileContents f $ \con 
-> do
-  let findImports acc (('{':'#':xs):xxs) = case (dropWhile (' ' ==) xs) of
-        ('i':'m':'p':'o':'r':'t':' ':ys) ->
-          case simpleParse (takeWhile ('#' /=) ys) of
-            Just m -> findImports (m:acc) xxs
-            Nothing -> die ("cannot parse chs import in "++f++":\n"++
-                            "offending line is {#"++xs)
-         -- no more imports after the first non-import hook
-        _ -> return acc
-      findImports acc (_:xxs) = findImports acc xxs
-      findImports acc [] = return acc
-  mods <- findImports [] (lines con)
-  return md { mdRequires = mods }
-
--- Find a total order of the set of modules that are partially sorted by their
--- dependencies on each other. The function returns the sorted list of modules
--- together with a list of modules that are required but not supplied by this
--- in the input set of modules.
-sortTopological :: [ModDep] -> [ModDep]
-sortTopological ms = reverse $ fst $ foldl visit ([], S.empty) (map mdOriginal 
ms)
-  where
-  set = M.fromList (map (\m -> (mdOriginal m, m)) ms)
-  visit (out,visited) m
-    | m `S.member` visited = (out,visited)
-    | otherwise = case m `M.lookup` set of
-        Nothing -> (out, m `S.insert` visited)
-        Just md -> (md:out', visited')
-          where
-            (out',visited') = foldl visit (out, m `S.insert` visited) 
(mdRequires md)
-
--- Check user whether install gtk2hs-buildtools correctly.
-checkGtk2hsBuildtools :: [Program] -> IO ()
-checkGtk2hsBuildtools programs = do
-  programInfos <- mapM (\ prog -> do
-                         location <- onDefaultSearchPath programFindLocation 
prog normal
-                         return (programName prog, location)
-                      ) programs
-  let printError name = do
-        putStrLn $ "Cannot find " ++ name ++ "\n"
-                 ++ "Please install `gtk2hs-buildtools` first and check that 
the install directory is in your PATH (e.g. HOME/.cabal/bin)."
-        exitFailure
-  forM_ programInfos $ \ (name, location) ->
-    when (isNothing location) (printError name)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gio-0.13.1.1/Setup.hs new/gio-0.13.3.1/Setup.hs
--- old/gio-0.13.1.1/Setup.hs   2015-12-13 07:47:08.000000000 +0100
+++ new/gio-0.13.3.1/Setup.hs   2016-10-30 00:22:43.000000000 +0200
@@ -1,10 +1,8 @@
--- Standard setup file for a Gtk2Hs module.
+-- Adjustments specific to this package,
+-- all Gtk2Hs-specific boilerplate is kept in
+-- gtk2hs-buildtools:Gtk2HsSetup
 --
--- See also:
---  * SetupMain.hs    : the real Setup script for this package
---  * Gtk2HsSetup.hs  : Gtk2Hs-specific boilerplate
---  * SetupWrapper.hs : wrapper for compat with various ghc/cabal versions
+import Gtk2HsSetup ( gtk2hsUserHooks )
+import Distribution.Simple ( defaultMainWithHooks )
 
-import SetupWrapper ( setupWrapper )
-
-main = setupWrapper "SetupMain.hs"
+main = defaultMainWithHooks gtk2hsUserHooks
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gio-0.13.1.1/SetupMain.hs 
new/gio-0.13.3.1/SetupMain.hs
--- old/gio-0.13.1.1/SetupMain.hs       2015-12-13 07:47:08.000000000 +0100
+++ new/gio-0.13.3.1/SetupMain.hs       1970-01-01 01:00:00.000000000 +0100
@@ -1,13 +0,0 @@
--- The real Setup file for a Gtk2Hs package (invoked via the SetupWrapper).
--- It contains only adjustments specific to this package,
--- all Gtk2Hs-specific boilerplate is kept in Gtk2HsSetup.hs
--- which should be kept identical across all packages.
---
-import Gtk2HsSetup ( gtk2hsUserHooks, checkGtk2hsBuildtools,
-                     typeGenProgram, signalGenProgram, c2hsLocal)
-import Distribution.Simple ( defaultMainWithHooks )
-
-main = do
-  checkGtk2hsBuildtools [typeGenProgram, signalGenProgram, c2hsLocal]
-  defaultMainWithHooks gtk2hsUserHooks
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gio-0.13.1.1/SetupWrapper.hs 
new/gio-0.13.3.1/SetupWrapper.hs
--- old/gio-0.13.1.1/SetupWrapper.hs    2015-12-13 07:47:08.000000000 +0100
+++ new/gio-0.13.3.1/SetupWrapper.hs    1970-01-01 01:00:00.000000000 +0100
@@ -1,164 +0,0 @@
--- A wrapper script for Cabal Setup.hs scripts. Allows compiling the real Setup
--- conditionally depending on the Cabal version.
-
-module SetupWrapper (setupWrapper) where
-
-import Distribution.Package
-import Distribution.Compiler
-import Distribution.Simple.Utils
-import Distribution.Simple.Program
-import Distribution.Simple.Compiler
-import Distribution.Simple.BuildPaths (exeExtension)
-import Distribution.Simple.Configure (configCompilerEx)
-import Distribution.Simple.GHC (getInstalledPackages)
-import qualified Distribution.Simple.PackageIndex as PackageIndex
-import Distribution.Version
-import Distribution.Verbosity
-import Distribution.Text
-
-import System.Environment
-import System.Process
-import System.Exit (ExitCode(..), exitWith)
-import System.FilePath
-import System.Directory (doesFileExist, getModificationTime)
-import qualified Control.Exception as Exception
-import System.IO.Error (isDoesNotExistError)
-
-import Data.List
-import Data.Char
-import Control.Monad
-
-
--- moreRecentFile is implemented in Distribution.Simple.Utils, but only in
--- Cabal >= 1.18. For backwards-compatibility, we implement a copy with a new
--- name here. Some desirable alternate strategies don't work:
--- * We can't use CPP to check which version of Cabal we're up against because
---   this is the file that's generating the macros for doing that.
--- * We can't use the name moreRecentFiles and use
---   import D.S.U hiding (moreRecentFiles)
---   because on old GHC's (and according to the Report) hiding a name that
---   doesn't exist is an error.
-moreRecentFile' :: FilePath -> FilePath -> IO Bool
-moreRecentFile' a b = do
-  exists <- doesFileExist b
-  if not exists
-    then return True
-    else do tb <- getModificationTime b
-            ta <- getModificationTime a
-            return (ta > tb)
-
-setupWrapper :: FilePath -> IO ()
-setupWrapper setupHsFile = do
-  args <- getArgs
-  createDirectoryIfMissingVerbose verbosity True setupDir
-  compileSetupExecutable
-  invokeSetupScript args
-
-  where
-    setupDir         = "dist/setup-wrapper"
-    setupVersionFile = setupDir </> "setup" <.> "version"
-    setupProgFile    = setupDir </> "setup" <.> exeExtension
-    setupMacroFile   = setupDir </> "wrapper-macros.h"
-
-    useCabalVersion  = Version [1,8] []
-    usePackageDB     = [GlobalPackageDB, UserPackageDB]
-    verbosity        = normal
-
-    cabalLibVersionToUse comp conf = do
-      savedVersion <- savedCabalVersion
-      case savedVersion of
-        Just version
-          -> return version
-        _ -> do version <- installedCabalVersion comp conf
-                writeFile setupVersionFile (show version ++ "\n")
-                return version
-
-    savedCabalVersion = do
-      versionString <- readFile setupVersionFile
-                         `Exception.catch` \e -> if isDoesNotExistError e
-                                                   then return ""
-                                                   else Exception.throwIO e
-      case reads versionString of
-        [(version,s)] | all isSpace s -> return (Just version)
-        _                             -> return Nothing
-
-    installedCabalVersion comp conf = do
-      index <- getInstalledPackages verbosity usePackageDB conf
-
-      let cabalDep = Dependency (PackageName "Cabal")
-                                (orLaterVersion useCabalVersion)
-      case PackageIndex.lookupDependency index cabalDep of
-        []   -> die $ "The package requires Cabal library version "
-                   ++ display useCabalVersion
-                   ++ " but no suitable version is installed."
-        pkgs -> return $ bestVersion (map fst pkgs)
-      where
-        bestVersion          = maximumBy (comparing preference)
-        preference version   = (sameVersion, sameMajorVersion
-                               ,stableVersion, latestVersion)
-          where
-            sameVersion      = version == cabalVersion
-            sameMajorVersion = majorVersion version == majorVersion 
cabalVersion
-            majorVersion     = take 2 . versionBranch
-            stableVersion    = case versionBranch version of
-                                 (_:x:_) -> even x
-                                 _       -> False
-            latestVersion    = version
-
-    -- | If the Setup.hs is out of date wrt the executable then recompile it.
-    -- Currently this is GHC only. It should really be generalised.
-    --
-    compileSetupExecutable = do
-      setupHsNewer      <- setupHsFile      `moreRecentFile'` setupProgFile
-      cabalVersionNewer <- setupVersionFile `moreRecentFile'` setupProgFile
-      let outOfDate = setupHsNewer || cabalVersionNewer
-      when outOfDate $ do
-        debug verbosity "Setup script is out of date, compiling..."
-
-        (comp, _, conf) <- configCompilerEx (Just GHC) Nothing Nothing
-                             defaultProgramConfiguration verbosity
-        cabalLibVersion <- cabalLibVersionToUse comp conf
-        let cabalPkgid = PackageIdentifier (PackageName "Cabal") 
cabalLibVersion
-        debug verbosity $ "Using Cabal library version " ++ display 
cabalLibVersion
-
-        writeFile setupMacroFile (generateVersionMacro cabalLibVersion)
-
-        rawSystemProgramConf verbosity ghcProgram conf $
-            ["--make", setupHsFile, "-o", setupProgFile]
-         ++ ghcPackageDbOptions usePackageDB
-         ++ ["-package", display cabalPkgid
-            ,"-cpp", "-optP-include", "-optP" ++ setupMacroFile
-            ,"-odir", setupDir, "-hidir", setupDir]
-      where
-
-        ghcPackageDbOptions dbstack = case dbstack of
-          (GlobalPackageDB:UserPackageDB:dbs) -> concatMap specific dbs
-          (GlobalPackageDB:dbs)               -> "-no-user-package-conf"
-                                               : concatMap specific dbs
-          _                                   -> ierror
-          where
-            specific (SpecificPackageDB db) = [ "-package-conf", db ]
-            specific _ = ierror
-            ierror     = error "internal error: unexpected package db stack"
-
-        generateVersionMacro :: Version -> String
-        generateVersionMacro version =
-          concat
-            ["/* DO NOT EDIT: This file is automatically generated by Cabal 
*/\n\n"
-            ,"#define CABAL_VERSION_CHECK(major1,major2,minor) (\\\n"
-            ,"  (major1) <  ",major1," || \\\n"
-            ,"  (major1) == ",major1," && (major2) <  ",major2," || \\\n"
-            ,"  (major1) == ",major1," && (major2) == ",major2," && (minor) <= 
",minor,")"
-            ,"\n\n"
-            ]
-          where
-            (major1:major2:minor:_) = map show (versionBranch version ++ 
repeat 0)
-
-    invokeSetupScript :: [String] -> IO ()
-    invokeSetupScript args = do
-      info verbosity $ unwords (setupProgFile : args)
-      process <- runProcess (currentDir </> setupProgFile) args
-                   Nothing Nothing
-                   Nothing Nothing Nothing
-      exitCode <- waitForProcess process
-      unless (exitCode == ExitSuccess) $ exitWith exitCode
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gio-0.13.1.1/System/GIO/File/IOError.chs 
new/gio-0.13.3.1/System/GIO/File/IOError.chs
--- old/gio-0.13.1.1/System/GIO/File/IOError.chs        2015-12-13 
07:47:08.000000000 +0100
+++ new/gio-0.13.3.1/System/GIO/File/IOError.chs        2016-10-30 
00:22:43.000000000 +0200
@@ -1,4 +1,3 @@
-{-# LANGUAGE CPP #-}
 --  GIMP Toolkit (GTK) Binding for Haskell: binding to gio -*-haskell-*-
 --
 --  Author : Andy Stewart
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gio-0.13.1.1/gio.cabal new/gio-0.13.3.1/gio.cabal
--- old/gio-0.13.1.1/gio.cabal  2015-12-13 07:47:08.000000000 +0100
+++ new/gio-0.13.3.1/gio.cabal  2016-10-30 00:22:43.000000000 +0200
@@ -1,25 +1,24 @@
 Name:           gio
-Version:        0.13.1.1
+Version:        0.13.3.1
 License:        LGPL-2.1
 License-file:   COPYING
 Copyright:      (c) 2001-2010 The Gtk2Hs Team
 Author:         Peter Gavin, Andy Stewart
 Maintainer:     [email protected]
 Build-Type:     Custom
-Cabal-Version:  >= 1.18
+Cabal-Version:  >= 1.24
 Stability:      stable
 homepage:       http://projects.haskell.org/gtk2hs/
 bug-reports:    https://github.com/gtk2hs/gtk2hs/issues
 Synopsis:       Binding to GIO
-Description:    GIO is striving to provide a modern, easy-to-use VFS API that 
sits at the right level in the library stack. 
-                The goal is to overcome the shortcomings of GnomeVFS and 
provide an API that is 
-                so good that developers prefer it over raw POSIX calls. 
-                Among other things that means using GObject. 
+Description:    GIO is striving to provide a modern, easy-to-use VFS API that 
sits at the right level in the library stack.
+                The goal is to overcome the shortcomings of GnomeVFS and 
provide an API that is
+                so good that developers prefer it over raw POSIX calls.
+                Among other things that means using GObject.
                 It also means not cloning the POSIX API, but providing 
higher-level, document-centric interfaces.
 Category:       System
 Tested-With:    GHC == 7.0.4, GHC == 7.2.2, GHC == 7.4.1
-Extra-Source-Files: SetupWrapper.hs SetupMain.hs Gtk2HsSetup.hs
-                    marshal.list
+Extra-Source-Files: marshal.list
                                        hierarchy.list
 
 x-Types-File:      System/GIO/Types.chs
@@ -39,20 +38,23 @@
   location:     https://github.com/gtk2hs/gtk2hs
   subdir:       gio
 
+custom-setup
+  setup-depends: base >= 4.6,
+                 Cabal >= 1.24 && < 1.25,
+                 gtk2hs-buildtools >= 0.13.2.0 && < 0.14
+
 Library
         build-depends:  base >= 4 && < 5, array, containers, mtl, bytestring,
                         glib >= 0.13.0.0 && < 0.14
-        build-tools:    gtk2hsC2hs >= 0.13.13,
-                        gtk2hsHookGenerator, gtk2hsTypeGen
 
         exposed-modules:
           System.GIO
           System.GIO.Enums
-          System.GIO.Types               
-          
+          System.GIO.Types
+
           System.GIO.Async.AsyncResult
           System.GIO.Async.Cancellable
-          
+
           System.GIO.File.AppInfo
           System.GIO.File.ContentType
           System.GIO.File.FileAttribute
@@ -62,13 +64,13 @@
           System.GIO.File.FileMonitor
           System.GIO.File.IOError
           System.GIO.File.MountOperation
-          
+
           System.GIO.Icons.Emblem
           System.GIO.Icons.EmblemedIcon
           System.GIO.Icons.FileIcon
           System.GIO.Icons.Icon
           System.GIO.Icons.ThemedIcon
-          
+
           System.GIO.Volumes.Drive
           System.GIO.Volumes.Mount
           System.GIO.Volumes.Volume
@@ -79,7 +81,10 @@
         default-language:   Haskell98
         default-extensions: ForeignFunctionInterface
                
-        cpp-options:    -U__BLOCKS__ -Ubool -D__attribute__(A)=
+        cpp-options:    -U__BLOCKS__ -Ubool
+        if os(darwin)
+          cpp-options: -D__attribute__(A)= -D_Nullable= -D_Nonnull=
+
         x-Signals-File:  System/GIO/Signals.chs
         x-Signals-Modname: System.GIO.Signals
         x-Signals-Types: marshal.list


Reply via email to