Hello community, here is the log from the commit of package ghc-haskell-gi-base for openSUSE:Factory checked in at 2017-05-06 18:28:40 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ghc-haskell-gi-base (Old) and /work/SRC/openSUSE:Factory/.ghc-haskell-gi-base.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-haskell-gi-base" Sat May 6 18:28:40 2017 rev:3 rq:491472 version:0.20.2 Changes: -------- --- /work/SRC/openSUSE:Factory/ghc-haskell-gi-base/ghc-haskell-gi-base.changes 2017-04-14 13:39:24.821038273 +0200 +++ /work/SRC/openSUSE:Factory/.ghc-haskell-gi-base.new/ghc-haskell-gi-base.changes 2017-05-06 18:28:41.935291757 +0200 @@ -1,0 +2,5 @@ +Wed Apr 19 13:32:36 UTC 2017 - psim...@suse.com + +- Update to version 0.20.2 with cabal2obs. + +------------------------------------------------------------------- Old: ---- haskell-gi-base-0.20.1.tar.gz New: ---- haskell-gi-base-0.20.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ghc-haskell-gi-base.spec ++++++ --- /var/tmp/diff_new_pack.BTL6Uj/_old 2017-05-06 18:28:42.619195255 +0200 +++ /var/tmp/diff_new_pack.BTL6Uj/_new 2017-05-06 18:28:42.623194690 +0200 @@ -18,7 +18,7 @@ %global pkg_name haskell-gi-base Name: ghc-%{pkg_name} -Version: 0.20.1 +Version: 0.20.2 Release: 0 Summary: Foundation for libraries generated by haskell-gi License: LGPL-2.1+ ++++++ haskell-gi-base-0.20.1.tar.gz -> haskell-gi-base-0.20.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/haskell-gi-base-0.20.1/ChangeLog.md new/haskell-gi-base-0.20.2/ChangeLog.md --- old/haskell-gi-base-0.20.1/ChangeLog.md 2017-03-28 07:57:57.000000000 +0200 +++ new/haskell-gi-base-0.20.2/ChangeLog.md 2017-04-14 10:30:46.000000000 +0200 @@ -1,3 +1,7 @@ +### 0.20.2 + ++ Fix fromGVariant for empty arrays, see [#91](https://github.com/haskell-gi/haskell-gi/issues/91) for details. + ### 0.20.1 + Add Data.GI.Base.CallStack, abstracting (and backporting to the diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/haskell-gi-base-0.20.1/Data/GI/Base/BasicConversions.hsc new/haskell-gi-base-0.20.2/Data/GI/Base/BasicConversions.hsc --- old/haskell-gi-base-0.20.1/Data/GI/Base/BasicConversions.hsc 2017-03-28 07:57:57.000000000 +0200 +++ new/haskell-gi-base-0.20.2/Data/GI/Base/BasicConversions.hsc 2017-04-14 10:30:46.000000000 +0200 @@ -1,4 +1,4 @@ -{-# LANGUAGE ScopedTypeVariables #-} +{-# LANGUAGE ScopedTypeVariables, ConstraintKinds, FlexibleContexts #-} {-# OPTIONS_GHC -fno-warn-name-shadowing #-} module Data.GI.Base.BasicConversions ( gflagsToWord @@ -75,6 +75,7 @@ import qualified Data.ByteString.Internal as BI import Data.Maybe (fromMaybe) import Data.Text (Text) +import qualified Data.Text as T import qualified Data.Text.Foreign as TF import Foreign.Ptr (Ptr, plusPtr, nullPtr, nullFunPtr, castPtr) @@ -87,9 +88,11 @@ import Data.Bits (Bits, (.|.), (.&.), shift) import Data.GI.Base.BasicTypes +import Data.GI.Base.CallStack (HasCallStack) import Data.GI.Base.GHashTable (GEqualFunc, GHashFunc) import Data.GI.Base.ManagedPtr (copyBoxedPtr) -import Data.GI.Base.Utils (allocBytes, callocBytes, memcpy, freeMem) +import Data.GI.Base.Utils (allocBytes, callocBytes, memcpy, freeMem, + checkUnexpectedReturnNULL) #include <glib-object.h> @@ -370,7 +373,7 @@ poke ptr cstring fill (ptr `plusPtr` sizeOf cstring) xs -unpackZeroTerminatedUTF8CArray :: Ptr CString -> IO [Text] +unpackZeroTerminatedUTF8CArray :: HasCallStack => Ptr CString -> IO [Text] unpackZeroTerminatedUTF8CArray listPtr = go listPtr where go :: Ptr CString -> IO [Text] go ptr = do @@ -380,7 +383,8 @@ else (:) <$> cstringToText cstring <*> go (ptr `plusPtr` sizeOf cstring) -unpackUTF8CArrayWithLength :: Integral a => a -> Ptr CString -> IO [Text] +unpackUTF8CArrayWithLength :: (HasCallStack, Integral a) => + a -> Ptr CString -> IO [Text] unpackUTF8CArrayWithLength n ptr = go (fromIntegral n) ptr where go :: Int -> Ptr CString -> IO [Text] go 0 _ = return [] @@ -414,7 +418,7 @@ poke ptr cstring fill (ptr `plusPtr` sizeOf cstring) xs -unpackZeroTerminatedFileNameArray :: Ptr CString -> IO [String] +unpackZeroTerminatedFileNameArray :: HasCallStack => Ptr CString -> IO [String] unpackZeroTerminatedFileNameArray listPtr = go listPtr where go :: Ptr CString -> IO [String] go ptr = do @@ -424,7 +428,7 @@ else (:) <$> cstringToString cstring <*> go (ptr `plusPtr` sizeOf cstring) -unpackFileNameArrayWithLength :: Integral a => +unpackFileNameArrayWithLength :: (HasCallStack, Integral a) => a -> Ptr CString -> IO [String] unpackFileNameArrayWithLength n ptr = go (fromIntegral n) ptr where go :: Int -> Ptr CString -> IO [String] @@ -442,8 +446,10 @@ stringToCString :: String -> IO CString stringToCString str = withCString str g_strdup -cstringToString :: CString -> IO String -cstringToString = peekCString +cstringToString :: HasCallStack => CString -> IO String +cstringToString cstr = do + checkUnexpectedReturnNULL (T.pack "cstringToString") cstr + peekCString cstr foreign import ccall "g_strndup" g_strndup :: CString -> #{type gsize} -> IO CString @@ -463,8 +469,9 @@ foreign import ccall "strlen" c_strlen :: CString -> IO (CSize) -cstringToText :: CString -> IO Text +cstringToText :: HasCallStack => CString -> IO Text cstringToText cstr = do + checkUnexpectedReturnNULL (T.pack "cstringToText") cstr len <- c_strlen cstr let cstrlen = (cstr, fromIntegral len) TF.peekCStringLen cstrlen @@ -472,8 +479,10 @@ byteStringToCString :: ByteString -> IO CString byteStringToCString bs = B.useAsCString bs g_strdup -cstringToByteString :: CString -> IO ByteString -cstringToByteString = B.packCString +cstringToByteString :: HasCallStack => CString -> IO ByteString +cstringToByteString cstr = do + checkUnexpectedReturnNULL (T.pack "cstringToByteString") cstr + B.packCString cstr packPtrArray :: [Ptr a] -> IO (Ptr (Ptr a)) packPtrArray items = do diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/haskell-gi-base-0.20.1/Data/GI/Base/GVariant.hsc new/haskell-gi-base-0.20.2/Data/GI/Base/GVariant.hsc --- old/haskell-gi-base-0.20.1/Data/GI/Base/GVariant.hsc 2017-03-28 07:57:57.000000000 +0200 +++ new/haskell-gi-base-0.20.2/Data/GI/Base/GVariant.hsc 2017-04-14 10:30:46.000000000 +0200 @@ -636,8 +636,13 @@ gvariant_get_children :: (Ptr GVariant) -> IO [GVariant] gvariant_get_children vptr = do n_children <- g_variant_n_children vptr - mapM ((g_variant_get_child_value vptr) >=> wrapGVariantPtr) - [0..(n_children-1)] + -- n_children is an unsigned type (Word64 in 64 bit + -- architectures), so if it is 0 and we substract one we would + -- wrap around to 2^64-1. + if n_children /= 0 + then mapM ((g_variant_get_child_value vptr) >=> wrapGVariantPtr) + [0..(n_children-1)] + else return [] instance IsGVariant a => IsGVariant (Maybe a) where toGVariant = gvariantFromMaybe diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/haskell-gi-base-0.20.1/Data/GI/Base/Utils.hsc new/haskell-gi-base-0.20.2/Data/GI/Base/Utils.hsc --- old/haskell-gi-base-0.20.1/Data/GI/Base/Utils.hsc 2017-03-28 07:57:57.000000000 +0200 +++ new/haskell-gi-base-0.20.2/Data/GI/Base/Utils.hsc 2017-04-14 10:30:46.000000000 +0200 @@ -193,7 +193,7 @@ -- | An annotated version of `fromJust`, which raises a -- `UnexpectedNullPointerReturn` in case it encounters a `Nothing`. -checkUnexpectedNothing :: T.Text -> IO (Maybe a) -> IO a +checkUnexpectedNothing :: HasCallStack => T.Text -> IO (Maybe a) -> IO a checkUnexpectedNothing fnName action = do result <- action case result of diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/haskell-gi-base-0.20.1/haskell-gi-base.cabal new/haskell-gi-base-0.20.2/haskell-gi-base.cabal --- old/haskell-gi-base-0.20.1/haskell-gi-base.cabal 2017-03-28 07:57:57.000000000 +0200 +++ new/haskell-gi-base-0.20.2/haskell-gi-base.cabal 2017-04-14 10:30:46.000000000 +0200 @@ -1,5 +1,5 @@ name: haskell-gi-base -version: 0.20.1 +version: 0.20.2 synopsis: Foundation for libraries generated by haskell-gi description: Foundation for libraries generated by haskell-gi homepage: https://github.com/haskell-gi/haskell-gi-base