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 - [email protected]
+
+- 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