Hello community,

here is the log from the commit of package python-gobject for openSUSE:Factory 
checked in at 2018-03-24 16:09:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-gobject (Old)
 and      /work/SRC/openSUSE:Factory/.python-gobject.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-gobject"

Sat Mar 24 16:09:52 2018 rev:71 rq:590344 version:3.28.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-gobject/python-gobject.changes    
2018-03-14 19:28:08.984403758 +0100
+++ /work/SRC/openSUSE:Factory/.python-gobject.new/python-gobject.changes       
2018-03-24 16:09:56.955243884 +0100
@@ -1,0 +2,7 @@
+Sat Mar 17 22:45:50 UTC 2018 - [email protected]
+
+- Update to version 3.28.1:
+  + Fix a GValue leak (regression) (glgo#GNOME/pygobject#176).
+  + Various fixes for Python 3.7 (glgo#GNOME/pygobject#170).
+
+-------------------------------------------------------------------

Old:
----
  pygobject-3.28.0.tar.xz

New:
----
  pygobject-3.28.1.tar.xz

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

Other differences:
------------------
++++++ python-gobject.spec ++++++
--- /var/tmp/diff_new_pack.VNRqUc/_old  2018-03-24 16:09:57.539222833 +0100
+++ /var/tmp/diff_new_pack.VNRqUc/_new  2018-03-24 16:09:57.543222688 +0100
@@ -22,7 +22,7 @@
 %global __requires_exclude_from 
^%{python2_sitearch}/gi/__init__.py|%{python3_sitearch}/gi/__init__.py$
 %define _name   pygobject
 Name:           python-gobject
-Version:        3.28.0
+Version:        3.28.1
 Release:        0
 Summary:        Python bindings for GObject
 License:        LGPL-2.1-or-later

++++++ pygobject-3.28.0.tar.xz -> pygobject-3.28.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygobject-3.28.0/ChangeLog 
new/pygobject-3.28.1/ChangeLog
--- old/pygobject-3.28.0/ChangeLog      2018-03-12 13:16:18.000000000 +0100
+++ new/pygobject-3.28.1/ChangeLog      2018-03-17 19:07:10.000000000 +0100
@@ -1,3 +1,156 @@
+commit ca6918747214484a429c039caed02dd858c307fe
+Author: Christoph Reiter <[email protected]>
+Date:   Sat Mar 17 18:46:05 2018 +0100
+
+    release
+
+ NEWS | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+commit ab470a4f02b294ec8f1f11ea30c9ed4625490a52
+Author: Christoph Reiter <[email protected]>
+Date:   Fri Mar 16 23:48:20 2018 +0100
+
+    tests: fix glib tests with newest glib
+
+    g_filename_from_utf8() was recently fixed to return filenames
+    instead of bytes.
+    See https://bugzilla.gnome.org/show_bug.cgi?id=756128
+
+ tests/test_glib.py | 21 ++++++++++++++++++++-
+ 1 file changed, 20 insertions(+), 1 deletion(-)
+
+commit 76d4503ff856d7cc6e15d45bb82d79c17bda69f7
+Author: Christoph Reiter <[email protected]>
+Date:   Fri Mar 16 15:17:37 2018 +0100
+
+    setup.py: don't install tests
+
+    Now that the tests directory has a __init__.py and is a Python package
+    find_packages() returns it and setup() will install it.
+
+    Instead of using find_packages() hardcode the list of included
+    packages.
+
+ setup.py | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+commit f6c17c998e12a38bbc1c14e43fa969f01fbac46b
+Author: Christoph Reiter <[email protected]>
+Date:   Wed Mar 14 12:31:28 2018 +0100
+
+    pyg_flags_get_value_names: fix a leak
+
+    PyList_Append() is transfer-none for the value
+
+ gi/pygflags.c | 12 +++++++++---
+ 1 file changed, 9 insertions(+), 3 deletions(-)
+
+commit 9b4a056bbd7003bdb12f3eaf30524caa8747adb1
+Author: Mathieu Duponchelle <[email protected]>
+Date:   Tue Mar 13 19:41:20 2018 +0100
+
+    all around: Fix some assumptions about the size of long
+
+    This was creating various issues on 64-bit Windows, where sizeof(long)
+    is usually 4.
+
+ gi/pygi-basictype.c |  6 +++---
+ gi/pygi-closure.c   | 10 +++++-----
+ gi/pygi-value.c     |  2 +-
+ 3 files changed, 9 insertions(+), 9 deletions(-)
+
+commit b8bffa925566e561bb6270db5aecbe2b7b70d178
+Author: Mathieu Duponchelle <[email protected]>
+Date:   Tue Mar 13 19:12:23 2018 +0100
+
+    GValue override: chain up __del__
+
+    This was added in d08e244d , which was recently reverted, that
+    specific bit was however unrelated and still relevant.
+
+    Fix #176
+
+ gi/overrides/GObject.py | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit 48171470feccca4c5595a5f28adf6630fca66515
+Author: Christoph Reiter <[email protected]>
+Date:   Thu Mar 1 16:07:10 2018 +0100
+
+    gitlab-ci: add Python 3.7.0b2 job
+
+ .gitlab-ci.yml           | 5 +++++
+ .gitlab-ci/Dockerfile    | 1 +
+ .gitlab-ci/run-docker.sh | 2 ++
+ 3 files changed, 8 insertions(+)
+
+commit a0b633185d1dbb2cfef46f85b6b593c0c296e6f7
+Author: Christoph Reiter <[email protected]>
+Date:   Sat Mar 10 20:03:33 2018 +0100
+
+    marshal-cleanup: save and restore exception around cleanup
+
+    With Python 3.7 some Python API in the cleanup path clears exceptions
+    which makes us return NULL in the end without an error set.
+
+    Make if safe to call the cleanup functions with an error set by
+    saving and restoring exceptions.
+
+ gi/pygi-marshal-cleanup.c | 24 ++++++++++++++++++++++++
+ 1 file changed, 24 insertions(+)
+
+commit 8eee391694e657a79281707e476b1950a87f4d29
+Author: Christoph Reiter <[email protected]>
+Date:   Sun Mar 11 13:13:30 2018 +0100
+
+    _struct_dealloc: handle being called with an error set
+
+    With Python 3.7 it gets called with an error set and tp_dealloc
+    implementations need to handle that.
+    Fix by saving and restoring the error.
+
+ gi/pygi-struct.c | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+commit 7a1b725805b97a037f38c844d107644c780d87b6
+Author: Christoph Reiter <[email protected]>
+Date:   Sat Mar 10 18:54:28 2018 +0100
+
+    IntrospectionModule: __path__ should be List[str] and not str
+
+    This fixes a crash when calling help() on the module which got
+    stricter with
+    Python 3.7.
+
+    It's a bit questionable why the type has __path__ in the first
+    place as
+    that's only meant for packages. But let's leave that for now.
+
+ gi/module.py     | 5 +++--
+ tests/test_gi.py | 6 ++++--
+ 2 files changed, 7 insertions(+), 4 deletions(-)
+
+commit 2386fb7070dcde591313abb10f3e65d7cef7364f
+Author: Christoph Reiter <[email protected]>
+Date:   Sat Mar 10 18:04:14 2018 +0100
+
+    tests_gi: Use capture_output() context manager instead of manually
+    mocking stdout
+
+ tests/helper.py  |  2 +-
+ tests/test_gi.py | 14 +++-----------
+ 2 files changed, 4 insertions(+), 12 deletions(-)
+
+commit e0b92c65f4af126f1ba9c924e8e71b958a280a6e
+Author: Christoph Reiter <[email protected]>
+Date:   Mon Mar 12 13:18:34 2018 +0100
+
+    version bump
+
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
 commit dde2f66f9d95f4da81230b11317207a1ac08d84e
 Author: Christoph Reiter <[email protected]>
 Date:   Mon Mar 12 08:36:14 2018 +0100
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygobject-3.28.0/NEWS new/pygobject-3.28.1/NEWS
--- old/pygobject-3.28.0/NEWS   2018-03-12 11:01:19.000000000 +0100
+++ new/pygobject-3.28.1/NEWS   2018-03-17 18:45:27.000000000 +0100
@@ -1,3 +1,15 @@
+3.28.1 - 2018-03-17
+-------------------
+
+* Fix a GValue leak (regression). :issue:`176`
+  (:user:`Mathieu Duponchelle<mathieudu>`)
+* setup.py: don't install the tests package
+* Various fixes for 64bit Windows. :mr:`34`
+  (:user:`Mathieu Duponchelle<mathieudu>`)
+* Fix tests with glib 2.56.0
+* Various fixes for Python 3.7. :issue:`170` :mr:`28`
+
+
 3.28.0 - 2018-03-12
 -------------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygobject-3.28.0/PKG-INFO 
new/pygobject-3.28.1/PKG-INFO
--- old/pygobject-3.28.0/PKG-INFO       2018-03-12 13:16:08.000000000 +0100
+++ new/pygobject-3.28.1/PKG-INFO       2018-03-17 19:07:01.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 1.0
 Name: PyGObject
-Version: 3.28.0
+Version: 3.28.1
 Summary: Python bindings for GObject Introspection
 Home-page: https://pygobject.readthedocs.io
 Author: James Henstridge
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygobject-3.28.0/configure 
new/pygobject-3.28.1/configure
--- old/pygobject-3.28.0/configure      2018-03-12 13:16:01.000000000 +0100
+++ new/pygobject-3.28.1/configure      2018-03-17 19:06:51.000000000 +0100
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for pygobject 3.28.0.
+# Generated by GNU Autoconf 2.69 for pygobject 3.28.1.
 #
 # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=pygobject>.
 #
@@ -591,8 +591,8 @@
 # Identity of this package.
 PACKAGE_NAME='pygobject'
 PACKAGE_TARNAME='pygobject'
-PACKAGE_VERSION='3.28.0'
-PACKAGE_STRING='pygobject 3.28.0'
+PACKAGE_VERSION='3.28.1'
+PACKAGE_STRING='pygobject 3.28.1'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=pygobject'
 PACKAGE_URL='https://wiki.gnome.org/Projects/PyGObject/'
 
@@ -1418,7 +1418,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures pygobject 3.28.0 to adapt to many kinds of systems.
+\`configure' configures pygobject 3.28.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1489,7 +1489,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of pygobject 3.28.0:";;
+     short | recursive ) echo "Configuration of pygobject 3.28.1:";;
    esac
   cat <<\_ACEOF
 
@@ -1634,7 +1634,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-pygobject configure 3.28.0
+pygobject configure 3.28.1
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1912,7 +1912,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by pygobject $as_me 3.28.0, which was
+It was created by pygobject $as_me 3.28.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2290,9 +2290,9 @@
 PYGOBJECT_MINOR_VERSION=28
 
 
-$as_echo "#define PYGOBJECT_MICRO_VERSION 0" >>confdefs.h
+$as_echo "#define PYGOBJECT_MICRO_VERSION 1" >>confdefs.h
 
-PYGOBJECT_MICRO_VERSION=0
+PYGOBJECT_MICRO_VERSION=1
 
 
 ac_config_headers="$ac_config_headers config.h"
@@ -2812,7 +2812,7 @@
 
 # Define the identity of the package.
  PACKAGE='pygobject'
- VERSION='3.28.0'
+ VERSION='3.28.1'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -13894,7 +13894,7 @@
 #include <stdlib.h>
 
 int
-main ()
+main (void)
 {
   unsigned int major, minor, micro;
 
@@ -14838,6 +14838,27 @@
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+      #ifndef __cplusplus
+       #error "no C++"
+       #endif
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ax_compiler_cxx=yes;
+else
+  ax_compiler_cxx=no;
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
     # Always pass -Werror=unknown-warning-option to get Clang to fail on bad
     # flags, otherwise they are always appended to the warn_cflags variable, 
and
     # Clang warns on them for every compilation unit.
@@ -15008,7 +15029,7 @@
 
 
 
-for flag in              -Wall             -Wextra             -Wundef         
    -Wnested-externs             -Wwrite-strings             -Wpointer-arith    
         -Wmissing-declarations             -Wmissing-prototypes             
-Wstrict-prototypes             -Wredundant-decls             
-Wno-unused-parameter             -Wno-missing-field-initializers             
-Wdeclaration-after-statement             -Wformat=2             
-Wold-style-definition             -Wcast-align             -Wformat-nonliteral 
            -Wformat-security             -Wsign-compare             
-Wstrict-aliasing             -Wshadow             -Winline             
-Wpacked             -Wmissing-format-attribute             -Wmissing-noreturn  
           -Winit-self             -Wredundant-decls             
-Wmissing-include-dirs             -Wunused-but-set-variable             
-Warray-bounds             -Wimplicit-function-declaration             
-Wreturn-type             -Wswitch-enum             -Wswitch-default            
                                                    ; do
+for flag in              -Wall             -Wextra             -Wundef         
    -Wwrite-strings             -Wpointer-arith             
-Wmissing-declarations             -Wredundant-decls             
-Wno-unused-parameter             -Wno-missing-field-initializers             
-Wformat=2             -Wcast-align             -Wformat-nonliteral             
-Wformat-security             -Wsign-compare             -Wstrict-aliasing      
       -Wshadow             -Winline             -Wpacked             
-Wmissing-format-attribute             -Wmissing-noreturn             
-Winit-self             -Wredundant-decls             -Wmissing-include-dirs    
         -Wunused-but-set-variable             -Warray-bounds             
-Wreturn-type             -Wswitch-enum             -Wswitch-default            
 -Wduplicated-cond             -Wduplicated-branches             -Wlogical-op   
          -Wrestrict             -Wnull-dereference             
-Wdouble-promotion                                                              
  ; do
   as_CACHEVAR=`$as_echo "ax_cv_check_cflags_$ax_compiler_flags_test_$flag" | 
$as_tr_sh`
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts 
$flag" >&5
 $as_echo_n "checking whether C compiler accepts $flag... " >&6; }
@@ -15079,6 +15100,84 @@
 
 done
 
+        if test "$ax_compiler_cxx" = "no" ; then
+            # C-only flags. Warn in C++
+
+
+
+
+for flag in              -Wnested-externs             -Wmissing-prototypes     
        -Wstrict-prototypes             -Wdeclaration-after-statement           
  -Wimplicit-function-declaration             -Wold-style-definition            
 -Wjump-misses-init             ; do
+  as_CACHEVAR=`$as_echo "ax_cv_check_cflags_$ax_compiler_flags_test_$flag" | 
$as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts 
$flag" >&5
+$as_echo_n "checking whether C compiler accepts $flag... " >&6; }
+if eval \${$as_CACHEVAR+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+  ax_check_save_flags=$CFLAGS
+  CFLAGS="$CFLAGS $ax_compiler_flags_test $flag"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$as_CACHEVAR=yes"
+else
+  eval "$as_CACHEVAR=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  CFLAGS=$ax_check_save_flags
+fi
+eval ac_res=\$$as_CACHEVAR
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then :
+
+if ${WARN_CFLAGS+:} false; then :
+
+  case " $WARN_CFLAGS " in #(
+  *" $flag "*) :
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS already contains 
\$flag"; } >&5
+  (: WARN_CFLAGS already contains $flag) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } ;; #(
+  *) :
+
+     as_fn_append WARN_CFLAGS " $flag"
+     { { $as_echo "$as_me:${as_lineno-$LINENO}: : 
WARN_CFLAGS=\"\$WARN_CFLAGS\""; } >&5
+  (: WARN_CFLAGS="$WARN_CFLAGS") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+     ;;
+esac
+
+else
+
+  WARN_CFLAGS=$flag
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS=\"\$WARN_CFLAGS\""; 
} >&5
+  (: WARN_CFLAGS="$WARN_CFLAGS") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+
+fi
+
+else
+  :
+fi
+
+done
+
+        fi
 
 fi
     if test "$ax_enable_compile_warnings" = "error"; then :
@@ -15359,7 +15458,461 @@
 fi
 
 
-    # macOS linker does not have --as-needed
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker 
accepts -Wl,--as-needed" >&5
+$as_echo_n "checking whether the linker accepts -Wl,--as-needed... " >&6; }
+if ${ax_cv_check_ldflags___Wl___as_needed+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+  ax_check_save_flags=$LDFLAGS
+  LDFLAGS="$LDFLAGS  -Wl,--as-needed"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ax_cv_check_ldflags___Wl___as_needed=yes
+else
+  ax_cv_check_ldflags___Wl___as_needed=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+  LDFLAGS=$ax_check_save_flags
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 
$ax_cv_check_ldflags___Wl___as_needed" >&5
+$as_echo "$ax_cv_check_ldflags___Wl___as_needed" >&6; }
+if test "x$ax_cv_check_ldflags___Wl___as_needed" = xyes; then :
+
+
+
+
+
+for flag in -Wl,--as-needed; do
+  as_CACHEVAR=`$as_echo "ax_cv_check_ldflags_$ax_compiler_flags_test_$flag" | 
$as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts 
$flag" >&5
+$as_echo_n "checking whether the linker accepts $flag... " >&6; }
+if eval \${$as_CACHEVAR+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+  ax_check_save_flags=$LDFLAGS
+  LDFLAGS="$LDFLAGS $ax_compiler_flags_test $flag"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  eval "$as_CACHEVAR=yes"
+else
+  eval "$as_CACHEVAR=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+  LDFLAGS=$ax_check_save_flags
+fi
+eval ac_res=\$$as_CACHEVAR
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then :
+
+if ${AM_LDFLAGS+:} false; then :
+
+  case " $AM_LDFLAGS " in #(
+  *" $flag "*) :
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: : AM_LDFLAGS already contains 
\$flag"; } >&5
+  (: AM_LDFLAGS already contains $flag) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } ;; #(
+  *) :
+
+     as_fn_append AM_LDFLAGS " $flag"
+     { { $as_echo "$as_me:${as_lineno-$LINENO}: : 
AM_LDFLAGS=\"\$AM_LDFLAGS\""; } >&5
+  (: AM_LDFLAGS="$AM_LDFLAGS") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+     ;;
+esac
+
+else
+
+  AM_LDFLAGS=$flag
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: : AM_LDFLAGS=\"\$AM_LDFLAGS\""; } 
>&5
+  (: AM_LDFLAGS="$AM_LDFLAGS") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+
+fi
+
+else
+  :
+fi
+
+done
+
+
+else
+  :
+fi
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker 
accepts -Wl,-z,relro" >&5
+$as_echo_n "checking whether the linker accepts -Wl,-z,relro... " >&6; }
+if ${ax_cv_check_ldflags___Wl__z_relro+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+  ax_check_save_flags=$LDFLAGS
+  LDFLAGS="$LDFLAGS  -Wl,-z,relro"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ax_cv_check_ldflags___Wl__z_relro=yes
+else
+  ax_cv_check_ldflags___Wl__z_relro=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+  LDFLAGS=$ax_check_save_flags
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 
$ax_cv_check_ldflags___Wl__z_relro" >&5
+$as_echo "$ax_cv_check_ldflags___Wl__z_relro" >&6; }
+if test "x$ax_cv_check_ldflags___Wl__z_relro" = xyes; then :
+
+
+
+
+
+for flag in -Wl,-z,relro; do
+  as_CACHEVAR=`$as_echo "ax_cv_check_ldflags_$ax_compiler_flags_test_$flag" | 
$as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts 
$flag" >&5
+$as_echo_n "checking whether the linker accepts $flag... " >&6; }
+if eval \${$as_CACHEVAR+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+  ax_check_save_flags=$LDFLAGS
+  LDFLAGS="$LDFLAGS $ax_compiler_flags_test $flag"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  eval "$as_CACHEVAR=yes"
+else
+  eval "$as_CACHEVAR=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+  LDFLAGS=$ax_check_save_flags
+fi
+eval ac_res=\$$as_CACHEVAR
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then :
+
+if ${AM_LDFLAGS+:} false; then :
+
+  case " $AM_LDFLAGS " in #(
+  *" $flag "*) :
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: : AM_LDFLAGS already contains 
\$flag"; } >&5
+  (: AM_LDFLAGS already contains $flag) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } ;; #(
+  *) :
+
+     as_fn_append AM_LDFLAGS " $flag"
+     { { $as_echo "$as_me:${as_lineno-$LINENO}: : 
AM_LDFLAGS=\"\$AM_LDFLAGS\""; } >&5
+  (: AM_LDFLAGS="$AM_LDFLAGS") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+     ;;
+esac
+
+else
+
+  AM_LDFLAGS=$flag
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: : AM_LDFLAGS=\"\$AM_LDFLAGS\""; } 
>&5
+  (: AM_LDFLAGS="$AM_LDFLAGS") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+
+fi
+
+else
+  :
+fi
+
+done
+
+
+else
+  :
+fi
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker 
accepts -Wl,-z,now" >&5
+$as_echo_n "checking whether the linker accepts -Wl,-z,now... " >&6; }
+if ${ax_cv_check_ldflags___Wl__z_now+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+  ax_check_save_flags=$LDFLAGS
+  LDFLAGS="$LDFLAGS  -Wl,-z,now"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ax_cv_check_ldflags___Wl__z_now=yes
+else
+  ax_cv_check_ldflags___Wl__z_now=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+  LDFLAGS=$ax_check_save_flags
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 
$ax_cv_check_ldflags___Wl__z_now" >&5
+$as_echo "$ax_cv_check_ldflags___Wl__z_now" >&6; }
+if test "x$ax_cv_check_ldflags___Wl__z_now" = xyes; then :
+
+
+
+
+
+for flag in -Wl,-z,now; do
+  as_CACHEVAR=`$as_echo "ax_cv_check_ldflags_$ax_compiler_flags_test_$flag" | 
$as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts 
$flag" >&5
+$as_echo_n "checking whether the linker accepts $flag... " >&6; }
+if eval \${$as_CACHEVAR+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+  ax_check_save_flags=$LDFLAGS
+  LDFLAGS="$LDFLAGS $ax_compiler_flags_test $flag"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  eval "$as_CACHEVAR=yes"
+else
+  eval "$as_CACHEVAR=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+  LDFLAGS=$ax_check_save_flags
+fi
+eval ac_res=\$$as_CACHEVAR
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then :
+
+if ${AM_LDFLAGS+:} false; then :
+
+  case " $AM_LDFLAGS " in #(
+  *" $flag "*) :
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: : AM_LDFLAGS already contains 
\$flag"; } >&5
+  (: AM_LDFLAGS already contains $flag) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } ;; #(
+  *) :
+
+     as_fn_append AM_LDFLAGS " $flag"
+     { { $as_echo "$as_me:${as_lineno-$LINENO}: : 
AM_LDFLAGS=\"\$AM_LDFLAGS\""; } >&5
+  (: AM_LDFLAGS="$AM_LDFLAGS") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+     ;;
+esac
+
+else
+
+  AM_LDFLAGS=$flag
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: : AM_LDFLAGS=\"\$AM_LDFLAGS\""; } 
>&5
+  (: AM_LDFLAGS="$AM_LDFLAGS") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+
+fi
+
+else
+  :
+fi
+
+done
+
+
+else
+  :
+fi
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker 
accepts -Wl,-z,noexecstack" >&5
+$as_echo_n "checking whether the linker accepts -Wl,-z,noexecstack... " >&6; }
+if ${ax_cv_check_ldflags___Wl__z_noexecstack+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+  ax_check_save_flags=$LDFLAGS
+  LDFLAGS="$LDFLAGS  -Wl,-z,noexecstack"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ax_cv_check_ldflags___Wl__z_noexecstack=yes
+else
+  ax_cv_check_ldflags___Wl__z_noexecstack=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+  LDFLAGS=$ax_check_save_flags
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 
$ax_cv_check_ldflags___Wl__z_noexecstack" >&5
+$as_echo "$ax_cv_check_ldflags___Wl__z_noexecstack" >&6; }
+if test "x$ax_cv_check_ldflags___Wl__z_noexecstack" = xyes; then :
+
+
+
+
+
+for flag in -Wl,-z,noexecstack; do
+  as_CACHEVAR=`$as_echo "ax_cv_check_ldflags_$ax_compiler_flags_test_$flag" | 
$as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts 
$flag" >&5
+$as_echo_n "checking whether the linker accepts $flag... " >&6; }
+if eval \${$as_CACHEVAR+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+  ax_check_save_flags=$LDFLAGS
+  LDFLAGS="$LDFLAGS $ax_compiler_flags_test $flag"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  eval "$as_CACHEVAR=yes"
+else
+  eval "$as_CACHEVAR=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+  LDFLAGS=$ax_check_save_flags
+fi
+eval ac_res=\$$as_CACHEVAR
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then :
+
+if ${AM_LDFLAGS+:} false; then :
+
+  case " $AM_LDFLAGS " in #(
+  *" $flag "*) :
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: : AM_LDFLAGS already contains 
\$flag"; } >&5
+  (: AM_LDFLAGS already contains $flag) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } ;; #(
+  *) :
+
+     as_fn_append AM_LDFLAGS " $flag"
+     { { $as_echo "$as_me:${as_lineno-$LINENO}: : 
AM_LDFLAGS=\"\$AM_LDFLAGS\""; } >&5
+  (: AM_LDFLAGS="$AM_LDFLAGS") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+     ;;
+esac
+
+else
+
+  AM_LDFLAGS=$flag
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: : AM_LDFLAGS=\"\$AM_LDFLAGS\""; } 
>&5
+  (: AM_LDFLAGS="$AM_LDFLAGS") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+
+fi
+
+else
+  :
+fi
+
+done
+
+
+else
+  :
+fi
+
+    # textonly, retpolineplt not yet
+
+    # macOS and cygwin linker do not have --as-needed
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker 
accepts -Wl,--no-as-needed" >&5
 $as_echo_n "checking whether the linker accepts -Wl,--no-as-needed... " >&6; }
 if ${ax_cv_check_ldflags___Wl___no_as_needed+:} false; then :
@@ -16931,7 +17484,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by pygobject $as_me 3.28.0, which was
+This file was extended by pygobject $as_me 3.28.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -16998,7 +17551,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-pygobject config.status 3.28.0
+pygobject config.status 3.28.1
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygobject-3.28.0/configure.ac 
new/pygobject-3.28.1/configure.ac
--- old/pygobject-3.28.0/configure.ac   2018-03-12 12:40:20.000000000 +0100
+++ new/pygobject-3.28.1/configure.ac   2018-03-17 18:32:08.000000000 +0100
@@ -18,7 +18,7 @@
 dnl the pygobject version number
 m4_define(pygobject_major_version, 3)
 m4_define(pygobject_minor_version, 28)
-m4_define(pygobject_micro_version, 0)
+m4_define(pygobject_micro_version, 1)
 m4_define(pygobject_version, 
pygobject_major_version.pygobject_minor_version.pygobject_micro_version)
 
 dnl versions of packages we require ...
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygobject-3.28.0/gi/module.py 
new/pygobject-3.28.1/gi/module.py
--- old/pygobject-3.28.0/gi/module.py   2018-03-12 11:01:19.000000000 +0100
+++ new/pygobject-3.28.1/gi/module.py   2018-03-12 13:24:13.000000000 +0100
@@ -122,10 +122,11 @@
         self._version = version
         self.__name__ = 'gi.repository.' + namespace
 
-        self.__path__ = repository.get_typelib_path(self._namespace)
+        path = repository.get_typelib_path(self._namespace)
+        self.__path__ = [path]
         if _have_py3:
             # get_typelib_path() delivers bytes, not a string
-            self.__path__ = self.__path__.decode('UTF-8')
+            self.__path__ = [path.decode('UTF-8')]
 
         if self._version is None:
             self._version = repository.get_version(self._namespace)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygobject-3.28.0/gi/overrides/GObject.py 
new/pygobject-3.28.1/gi/overrides/GObject.py
--- old/pygobject-3.28.0/gi/overrides/GObject.py        2018-02-16 
20:20:23.000000000 +0100
+++ new/pygobject-3.28.1/gi/overrides/GObject.py        2018-03-14 
09:19:46.000000000 +0100
@@ -221,6 +221,9 @@
         if self._free_on_dealloc and self.g_type != TYPE_INVALID:
             self.unset()
 
+        # We must call base class __del__() after unset.
+        super(Value, self).__del__()
+
     def set_boxed(self, boxed):
         # Workaround the introspection marshalers inability to know
         # these methods should be marshaling boxed types. This is because
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygobject-3.28.0/gi/pygflags.c 
new/pygobject-3.28.1/gi/pygflags.c
--- old/pygobject-3.28.0/gi/pygflags.c  2018-01-10 17:28:50.000000000 +0100
+++ new/pygobject-3.28.1/gi/pygflags.c  2018-03-14 12:28:25.000000000 +0100
@@ -431,9 +431,15 @@
   g_assert(G_IS_FLAGS_CLASS(flags_class));
 
   retval = PyList_New(0);
-  for (i = 0; i < flags_class->n_values; i++)
-      if ((PYGLIB_PyLong_AsUnsignedLong(self) & flags_class->values[i].value) 
== flags_class->values[i].value)
-         PyList_Append(retval, 
PYGLIB_PyUnicode_FromString(flags_class->values[i].value_name));
+  for (i = 0; i < flags_class->n_values; i++) {
+      PyObject *value_name;
+
+      if ((PYGLIB_PyLong_AsUnsignedLong (self) & flags_class->values[i].value) 
== flags_class->values[i].value) {
+        value_name = PYGLIB_PyUnicode_FromString 
(flags_class->values[i].value_name);
+        PyList_Append (retval, value_name);
+        Py_DECREF (value_name);
+      }
+  }
 
   g_type_class_unref(flags_class);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygobject-3.28.0/gi/pygi-basictype.c 
new/pygobject-3.28.1/gi/pygi-basictype.c
--- old/pygobject-3.28.0/gi/pygi-basictype.c    2018-03-10 19:51:12.000000000 
+0100
+++ new/pygobject-3.28.1/gi/pygi-basictype.c    2018-03-14 09:19:46.000000000 
+0100
@@ -198,7 +198,7 @@
 _pygi_marshal_from_py_gtype (PyObject          *py_arg,
                              GIArgument        *arg)
 {
-    long type_ = pyg_type_from_object (py_arg);
+    GType type_ = pyg_type_from_object (py_arg);
 
     if (type_ == 0) {
         PyErr_Format (PyExc_TypeError, "Must be gobject.GType, not %s",
@@ -206,7 +206,7 @@
         return FALSE;
     }
 
-    arg->v_long = type_;
+    arg->v_size = type_;
     return TRUE;
 }
 
@@ -808,7 +808,7 @@
             return PyFloat_FromDouble (arg->v_double);
 
         case GI_TYPE_TAG_GTYPE:
-            return pyg_type_wrapper_new ( (GType) arg->v_long);
+            return pyg_type_wrapper_new ( (GType) arg->v_size);
 
         case GI_TYPE_TAG_UNICHAR:
             return _pygi_marshal_to_py_unichar (arg);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygobject-3.28.0/gi/pygi-closure.c 
new/pygobject-3.28.1/gi/pygi-closure.c
--- old/pygobject-3.28.0/gi/pygi-closure.c      2018-03-11 13:07:37.000000000 
+0100
+++ new/pygobject-3.28.1/gi/pygi-closure.c      2018-03-14 09:19:46.000000000 
+0100
@@ -84,7 +84,7 @@
            *((gdouble *) retval) = arg->v_double;
            break;
         case GI_TYPE_TAG_GTYPE:
-           *((ffi_arg *) retval) = arg->v_ulong;
+           *((ffi_arg *) retval) = arg->v_size;
            break;
         case GI_TYPE_TAG_UNICHAR:
             *((ffi_arg *) retval) = arg->v_uint32;
@@ -149,7 +149,7 @@
            *((gint64 *) out_arg) = arg->v_int64;
            break;
         case GI_TYPE_TAG_UINT64:
-           *((glong *) out_arg) = arg->v_uint64;
+           *((guint64 *) out_arg) = arg->v_uint64;
            break;
         case GI_TYPE_TAG_FLOAT:
            *((gfloat *) out_arg) = arg->v_float;
@@ -158,7 +158,7 @@
            *((gdouble *) out_arg) = arg->v_double;
            break;
         case GI_TYPE_TAG_GTYPE:
-           *((gulong *) out_arg) = arg->v_ulong;
+           *((GType *) out_arg) = arg->v_size;
            break;
         case GI_TYPE_TAG_UNICHAR:
             *((guint32 *) out_arg) = arg->v_uint32;
@@ -245,10 +245,10 @@
                 state[i].arg_value.v_uint32 = * (guint32 *) arg_pointer;
                 break;
             case GI_TYPE_TAG_INT64:
-                state[i].arg_value.v_int64 = * (glong *) arg_pointer;
+                state[i].arg_value.v_int64 = * (gint64 *) arg_pointer;
                 break;
             case GI_TYPE_TAG_UINT64:
-                state[i].arg_value.v_uint64 = * (glong *) arg_pointer;
+                state[i].arg_value.v_uint64 = * (guint64 *) arg_pointer;
                 break;
             case GI_TYPE_TAG_FLOAT:
                 state[i].arg_value.v_float = * (gfloat *) arg_pointer;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygobject-3.28.0/gi/pygi-marshal-cleanup.c 
new/pygobject-3.28.1/gi/pygi-marshal-cleanup.c
--- old/pygobject-3.28.0/gi/pygi-marshal-cleanup.c      2018-03-12 
11:01:19.000000000 +0100
+++ new/pygobject-3.28.1/gi/pygi-marshal-cleanup.c      2018-03-12 
13:24:13.000000000 +0100
@@ -93,6 +93,11 @@
                                                    PyGICallableCache *cache)
 {
     gssize i;
+    PyObject *error_type, *error_value, *error_traceback;
+    gboolean have_error = !!PyErr_Occurred ();
+
+    if (have_error)
+        PyErr_Fetch (&error_type, &error_value, &error_traceback);
 
     for (i = 0; (gsize)i < _pygi_callable_cache_args_len (cache); i++) {
         PyGIArgCache *arg_cache = _pygi_callable_cache_get_arg (cache, i);
@@ -112,6 +117,9 @@
             state->args[i].arg_cleanup_data = NULL;
         }
     }
+
+    if (have_error)
+        PyErr_Restore (error_type, error_value, error_traceback);
 }
 
 void
@@ -120,6 +128,11 @@
 {
     GSList *cache_item;
     guint i = 0;
+    PyObject *error_type, *error_value, *error_traceback;
+    gboolean have_error = !!PyErr_Occurred ();
+
+    if (have_error)
+        PyErr_Fetch (&error_type, &error_value, &error_traceback);
 
     /* clean up the return if available */
     if (cache->return_cache != NULL) {
@@ -156,6 +169,9 @@
         i++;
         cache_item = cache_item->next;
     }
+
+    if (have_error)
+        PyErr_Restore (error_type, error_value, error_traceback);
 }
 
 void
@@ -164,6 +180,11 @@
                                                   gssize failed_arg_index)
 {
     gssize i;
+    PyObject *error_type, *error_value, *error_traceback;
+    gboolean have_error = !!PyErr_Occurred ();
+
+    if (have_error)
+        PyErr_Fetch (&error_type, &error_value, &error_traceback);
 
     state->failed = TRUE;
 
@@ -195,6 +216,9 @@
         }
         state->args[i].arg_cleanup_data = NULL;
     }
+
+    if (have_error)
+        PyErr_Restore (error_type, error_value, error_traceback);
 }
 
 void
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygobject-3.28.0/gi/pygi-struct.c 
new/pygobject-3.28.1/gi/pygi-struct.c
--- old/pygobject-3.28.0/gi/pygi-struct.c       2018-03-12 11:01:19.000000000 
+0100
+++ new/pygobject-3.28.1/gi/pygi-struct.c       2018-03-12 13:24:13.000000000 
+0100
@@ -61,7 +61,14 @@
 static void
 _struct_dealloc (PyGIStruct *self)
 {
-    GIBaseInfo *info = _struct_get_info ( (PyObject *) self );
+    GIBaseInfo *info;
+    PyObject *error_type, *error_value, *error_traceback;
+    gboolean have_error = !!PyErr_Occurred ();
+
+    if (have_error)
+        PyErr_Fetch (&error_type, &error_value, &error_traceback);
+
+    info = _struct_get_info ( (PyObject *) self );
 
     if (info != NULL && g_struct_info_is_foreign ( (GIStructInfo *) info)) {
         pygi_struct_foreign_release (info, pyg_pointer_get_ptr (self));
@@ -73,6 +80,9 @@
         g_base_info_unref (info);
     }
 
+    if (have_error)
+        PyErr_Restore (error_type, error_value, error_traceback);
+
     Py_TYPE (self)->tp_free ((PyObject *)self);
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygobject-3.28.0/gi/pygi-value.c 
new/pygobject-3.28.1/gi/pygi-value.c
--- old/pygobject-3.28.0/gi/pygi-value.c        2018-01-10 17:28:50.000000000 
+0100
+++ new/pygobject-3.28.1/gi/pygi-value.c        2018-03-14 09:19:46.000000000 
+0100
@@ -86,7 +86,7 @@
             arg.v_double = g_value_get_double (value);
             break;
         case GI_TYPE_TAG_GTYPE:
-            arg.v_long = g_value_get_gtype (value);
+            arg.v_size = g_value_get_gtype (value);
             break;
         case GI_TYPE_TAG_UTF8:
         case GI_TYPE_TAG_FILENAME:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygobject-3.28.0/m4/ax_compiler_flags_cflags.m4 
new/pygobject-3.28.1/m4/ax_compiler_flags_cflags.m4
--- old/pygobject-3.28.0/m4/ax_compiler_flags_cflags.m4 2018-03-12 
13:15:47.000000000 +0100
+++ new/pygobject-3.28.1/m4/ax_compiler_flags_cflags.m4 2018-03-17 
19:06:37.000000000 +0100
@@ -19,13 +19,14 @@
 # LICENSE
 #
 #   Copyright (c) 2014, 2015 Philip Withnall <[email protected]>
+#   Copyright (c) 2017, 2018 Reini Urban <[email protected]>
 #
 #   Copying and distribution of this file, with or without modification, are
 #   permitted in any medium without royalty provided the copyright notice
 #   and this notice are preserved.  This file is offered as-is, without any
 #   warranty.
 
-#serial 14
+#serial 16
 
 AC_DEFUN([AX_COMPILER_FLAGS_CFLAGS],[
     AC_REQUIRE([AC_PROG_SED])
@@ -39,6 +40,13 @@
 
     AC_LANG_PUSH([C])
 
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
+      [#ifndef __cplusplus
+       #error "no C++"
+       #endif]])],
+      [ax_compiler_cxx=yes;],
+      [ax_compiler_cxx=no;])
+
     # Always pass -Werror=unknown-warning-option to get Clang to fail on bad
     # flags, otherwise they are always appended to the warn_cflags variable, 
and
     # Clang warns on them for every compilation unit.
@@ -69,18 +77,13 @@
             -Wall dnl
             -Wextra dnl
             -Wundef dnl
-            -Wnested-externs dnl
             -Wwrite-strings dnl
             -Wpointer-arith dnl
             -Wmissing-declarations dnl
-            -Wmissing-prototypes dnl
-            -Wstrict-prototypes dnl
             -Wredundant-decls dnl
             -Wno-unused-parameter dnl
             -Wno-missing-field-initializers dnl
-            -Wdeclaration-after-statement dnl
             -Wformat=2 dnl
-            -Wold-style-definition dnl
             -Wcast-align dnl
             -Wformat-nonliteral dnl
             -Wformat-security dnl
@@ -96,15 +99,32 @@
             -Wmissing-include-dirs dnl
             -Wunused-but-set-variable dnl
             -Warray-bounds dnl
-            -Wimplicit-function-declaration dnl
             -Wreturn-type dnl
             -Wswitch-enum dnl
             -Wswitch-default dnl
+            -Wduplicated-cond dnl
+            -Wduplicated-branches dnl
+            -Wlogical-op dnl
+            -Wrestrict dnl
+            -Wnull-dereference dnl
+            -Wdouble-promotion dnl
             $4 dnl
             $5 dnl
             $6 dnl
             $7 dnl
         ],ax_warn_cflags_variable,[$ax_compiler_flags_test])
+        if test "$ax_compiler_cxx" = "no" ; then
+            # C-only flags. Warn in C++
+            AX_APPEND_COMPILE_FLAGS([ dnl
+            -Wnested-externs dnl
+            -Wmissing-prototypes dnl
+            -Wstrict-prototypes dnl
+            -Wdeclaration-after-statement dnl
+            -Wimplicit-function-declaration dnl
+            -Wold-style-definition dnl
+            -Wjump-misses-init dnl
+            ],ax_warn_cflags_variable,[$ax_compiler_flags_test])
+        fi
     ])
     AS_IF([test "$ax_enable_compile_warnings" = "error"],[
         # "error" flags; -Werror has to be appended unconditionally because
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygobject-3.28.0/m4/ax_compiler_flags_ldflags.m4 
new/pygobject-3.28.1/m4/ax_compiler_flags_ldflags.m4
--- old/pygobject-3.28.0/m4/ax_compiler_flags_ldflags.m4        2018-03-12 
13:15:47.000000000 +0100
+++ new/pygobject-3.28.1/m4/ax_compiler_flags_ldflags.m4        2018-03-17 
19:06:37.000000000 +0100
@@ -19,13 +19,14 @@
 # LICENSE
 #
 #   Copyright (c) 2014, 2015 Philip Withnall <[email protected]>
+#   Copyright (c) 2017, 2018 Reini Urban <[email protected]>
 #
 #   Copying and distribution of this file, with or without modification, are
 #   permitted in any medium without royalty provided the copyright notice
 #   and this notice are preserved.  This file is offered as-is, without any
 #   warranty.
 
-#serial 8
+#serial 9
 
 AC_DEFUN([AX_COMPILER_FLAGS_LDFLAGS],[
     AX_REQUIRE_DEFINED([AX_APPEND_LINK_FLAGS])
@@ -48,7 +49,25 @@
         ax_compiler_flags_test=""
     ])
 
-    # macOS linker does not have --as-needed
+    AX_CHECK_LINK_FLAG([-Wl,--as-needed], [
+        AX_APPEND_LINK_FLAGS([-Wl,--as-needed],
+          [AM_LDFLAGS],[$ax_compiler_flags_test])
+    ])
+    AX_CHECK_LINK_FLAG([-Wl,-z,relro], [
+        AX_APPEND_LINK_FLAGS([-Wl,-z,relro],
+          [AM_LDFLAGS],[$ax_compiler_flags_test])
+    ])
+    AX_CHECK_LINK_FLAG([-Wl,-z,now], [
+        AX_APPEND_LINK_FLAGS([-Wl,-z,now],
+          [AM_LDFLAGS],[$ax_compiler_flags_test])
+    ])
+    AX_CHECK_LINK_FLAG([-Wl,-z,noexecstack], [
+        AX_APPEND_LINK_FLAGS([-Wl,-z,noexecstack],
+          [AM_LDFLAGS],[$ax_compiler_flags_test])
+    ])
+    # textonly, retpolineplt not yet
+
+    # macOS and cygwin linker do not have --as-needed
     AX_CHECK_LINK_FLAG([-Wl,--no-as-needed], [
         ax_compiler_flags_as_needed_option="-Wl,--no-as-needed"
     ], [
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygobject-3.28.0/m4/glib-2.0.m4 
new/pygobject-3.28.1/m4/glib-2.0.m4
--- old/pygobject-3.28.0/m4/glib-2.0.m4 2018-03-12 13:15:47.000000000 +0100
+++ new/pygobject-3.28.1/m4/glib-2.0.m4 2018-03-17 19:06:37.000000000 +0100
@@ -1,6 +1,9 @@
 # Configure paths for GLIB
 # Owen Taylor     1997-2001
 
+# Increment this whenever this file is changed.
+#serial 1
+
 dnl AM_PATH_GLIB_2_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND 
[, MODULES]]]])
 dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if gmodule, gobject,
 dnl gthread, or gio is specified in MODULES, pass to pkg-config
@@ -90,7 +93,7 @@
 #include <stdlib.h>
 
 int 
-main ()
+main (void)
 {
   unsigned int major, minor, micro;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygobject-3.28.0/setup.py 
new/pygobject-3.28.1/setup.py
--- old/pygobject-3.28.0/setup.py       2018-02-14 01:34:50.000000000 +0100
+++ new/pygobject-3.28.1/setup.py       2018-03-17 18:32:08.000000000 +0100
@@ -27,7 +27,7 @@
 from email import parser
 
 import pkg_resources
-from setuptools import setup, find_packages
+from setuptools import setup
 from distutils.core import Extension, Distribution, Command
 from distutils.errors import DistutilsSetupError
 from distutils.ccompiler import new_compiler
@@ -795,7 +795,12 @@
         long_description=long_description,
         platforms=pkginfo.get_all("Platform"),
         classifiers=pkginfo.get_all("Classifier"),
-        packages=find_packages(script_dir),
+        packages=[
+            "pygtkcompat",
+            "gi",
+            "gi.repository",
+            "gi.overrides",
+        ],
         ext_modules=[
             gi_ext,
             gi_cairo_ext,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygobject-3.28.0/tests/helper.py 
new/pygobject-3.28.1/tests/helper.py
--- old/pygobject-3.28.0/tests/helper.py        2018-03-12 11:01:19.000000000 
+0100
+++ new/pygobject-3.28.1/tests/helper.py        2018-03-12 13:24:13.000000000 
+0100
@@ -115,7 +115,7 @@
 @contextlib.contextmanager
 def capture_output():
     """
-    with capture_output as (stdout, stderr):
+    with capture_output() as (stdout, stderr):
         some_action()
     print(stdout.getvalue(), stderr.getvalue())
     """
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygobject-3.28.0/tests/test_gi.py 
new/pygobject-3.28.1/tests/test_gi.py
--- old/pygobject-3.28.0/tests/test_gi.py       2018-03-12 11:01:19.000000000 
+0100
+++ new/pygobject-3.28.1/tests/test_gi.py       2018-03-17 18:32:08.000000000 
+0100
@@ -13,7 +13,6 @@
 import gc
 import weakref
 import warnings
-from io import StringIO, BytesIO
 
 import gi
 import gi.overrides
@@ -24,7 +23,7 @@
 from gi.repository import GIMarshallingTests
 
 from .compathelper import PY2, PY3
-from .helper import capture_exceptions
+from .helper import capture_exceptions, capture_output
 
 
 CONSTANT_UTF8 = "const ♥ utf8"
@@ -2974,8 +2973,10 @@
 
 class TestModule(unittest.TestCase):
     def test_path(self):
-        
self.assertTrue(GIMarshallingTests.__path__.endswith('GIMarshallingTests-1.0.typelib'),
-                        GIMarshallingTests.__path__)
+        path = GIMarshallingTests.__path__
+        assert isinstance(path, list)
+        assert len(path) == 1
+        assert path[0].endswith('GIMarshallingTests-1.0.typelib')
 
     def test_str(self):
         self.assertTrue("'GIMarshallingTests' from '" in 
str(GIMarshallingTests),
@@ -2996,16 +2997,9 @@
             self.assertTrue(hasattr(item, '__class__'))
 
     def test_help(self):
-        orig_stdout = sys.stdout
-        try:
-            if sys.version_info < (3, 0):
-                sys.stdout = BytesIO()
-            else:
-                sys.stdout = StringIO()
+        with capture_output() as (stdout, stderr):
             help(GIMarshallingTests)
-            output = sys.stdout.getvalue()
-        finally:
-            sys.stdout = orig_stdout
+        output = stdout.getvalue()
 
         self.assertTrue('SimpleStruct' in output, output)
         self.assertTrue('Interface2' in output, output)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygobject-3.28.0/tests/test_glib.py 
new/pygobject-3.28.1/tests/test_glib.py
--- old/pygobject-3.28.0/tests/test_glib.py     2018-02-16 09:17:26.000000000 
+0100
+++ new/pygobject-3.28.1/tests/test_glib.py     2018-03-16 23:59:12.000000000 
+0100
@@ -14,6 +14,8 @@
 from gi.repository import GLib
 from gi import PyGIDeprecationWarning
 
+from .compathelper import PY3
+
 
 class TestGLib(unittest.TestCase):
 
@@ -76,13 +78,30 @@
         self.assertEqual(GLib.filename_display_name('foo'), 'foo')
         self.assertEqual(GLib.filename_display_basename('bar/foo'), 'foo')
 
+        def glibfsencode(f):
+            # the annotations of filename_from_utf8() was changed in
+            # https://bugzilla.gnome.org/show_bug.cgi?id=756128
+            if isinstance(f, bytes):
+                return f
+            if os.name == "nt":
+                if PY3:
+                    return f.encode("utf-8", "surrogatepass")
+                else:
+                    return f.encode("utf-8")
+            else:
+                assert PY3
+                return os.fsencode(f)
+
         # this is locale dependent, so we cannot completely verify the result
         res = GLib.filename_from_utf8(u'aäb')
+        res = glibfsencode(res)
         self.assertTrue(isinstance(res, bytes))
         self.assertGreaterEqual(len(res), 3)
 
         # with explicit length argument
-        self.assertEqual(GLib.filename_from_utf8(u'aäb', 1), b'a')
+        res = GLib.filename_from_utf8(u'aäb', 1)
+        res = glibfsencode(res)
+        self.assertEqual(res, b'a')
 
     def test_uri_extract(self):
         res = GLib.uri_list_extract_uris('''# some comment


Reply via email to