diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..af6aa36 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/pygobject-3.40.1.tar.xz diff --git a/.pygobject3.metadata b/.pygobject3.metadata new file mode 100644 index 0000000..934a598 --- /dev/null +++ b/.pygobject3.metadata @@ -0,0 +1 @@ +2c12bc5732a38b055bcc2bcdeefdc8663380f3c9 SOURCES/pygobject-3.40.1.tar.xz diff --git a/SOURCES/0001-IntrospectionModule-handle-two-threads-loading-type-.patch b/SOURCES/0001-IntrospectionModule-handle-two-threads-loading-type-.patch new file mode 100644 index 0000000..a38c813 --- /dev/null +++ b/SOURCES/0001-IntrospectionModule-handle-two-threads-loading-type-.patch @@ -0,0 +1,290 @@ +From 1212d1cd3d4b47294770408a7abd18bc4c578a64 Mon Sep 17 00:00:00 2001 +From: Ray Strode +Date: Wed, 10 Jun 2020 18:04:07 -0400 +Subject: [PATCH] IntrospectionModule: handle two threads loading type at same + time + +If two threads are trying to load a type at exactly the same time, +it's possible for two wrappers to get generated for the type. +One thread will end up with the wrapper that's not blessed as the +"real" one and future calls will fail. The blessed wrapper will +be incomplete, and so future calls from it will fail as well. + +This commit adds a lock to ensure the two threads don't stomp +on each others toes. +--- + gi/module.py | 110 +++++++++++++++++++++++++++------------------------ + 1 file changed, 58 insertions(+), 52 deletions(-) + +diff --git a/gi/module.py b/gi/module.py +index f9e26bc2..93b8e6a3 100644 +--- a/gi/module.py ++++ b/gi/module.py +@@ -1,53 +1,54 @@ + # -*- Mode: Python; py-indent-offset: 4 -*- + # vim: tabstop=4 shiftwidth=4 expandtab + # + # Copyright (C) 2007-2009 Johan Dahlin + # + # module.py: dynamic module for introspected libraries. + # + # This library is free software; you can redistribute it and/or + # modify it under the terms of the GNU Lesser General Public + # License as published by the Free Software Foundation; either + # version 2.1 of the License, or (at your option) any later version. + # + # This library is distributed in the hope that it will be useful, + # but WITHOUT ANY WARRANTY; without even the implied warranty of + # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + # Lesser General Public License for more details. + # + # You should have received a copy of the GNU Lesser General Public + # License along with this library; if not, write to the Free Software + # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 + # USA + + import importlib ++from threading import Lock + + import gi + + from ._gi import \ + Repository, \ + FunctionInfo, \ + RegisteredTypeInfo, \ + EnumInfo, \ + ObjectInfo, \ + InterfaceInfo, \ + ConstantInfo, \ + StructInfo, \ + UnionInfo, \ + CallbackInfo, \ + Struct, \ + Boxed, \ + CCallback, \ + enum_add, \ + enum_register_new_gtype_and_add, \ + flags_add, \ + flags_register_new_gtype_and_add, \ + GInterface + from .types import \ + GObjectMeta, \ + StructMeta + + from ._constants import \ + TYPE_NONE, \ + TYPE_BOXED, \ + TYPE_POINTER, \ +@@ -90,152 +91,157 @@ def get_interfaces_for_object(object_info): + namespace = interface_info.get_namespace() + name = interface_info.get_name() + + module = importlib.import_module('gi.repository.' + namespace) + interfaces.append(getattr(module, name)) + return interfaces + + + class IntrospectionModule(object): + """An object which wraps an introspection typelib. + + This wrapping creates a python module like representation of the typelib + using gi repository as a foundation. Accessing attributes of the module + will dynamically pull them in and create wrappers for the members. + These members are then cached on this introspection module. + """ + def __init__(self, namespace, version=None): + """Might raise gi._gi.RepositoryError""" + + repository.require(namespace, version) + self._namespace = namespace + self._version = version + self.__name__ = 'gi.repository.' + namespace + + path = repository.get_typelib_path(self._namespace) + self.__path__ = [path] + + if self._version is None: + self._version = repository.get_version(self._namespace) + ++ self._lock = Lock() ++ + def __getattr__(self, name): + info = repository.find_by_name(self._namespace, name) + if not info: + raise AttributeError("%r object has no attribute %r" % ( + self.__name__, name)) + + if isinstance(info, EnumInfo): + g_type = info.get_g_type() +- wrapper = g_type.pytype + +- if wrapper is None: +- if info.is_flags(): +- if g_type.is_a(TYPE_FLAGS): +- wrapper = flags_add(g_type) +- else: +- assert g_type == TYPE_NONE +- wrapper = flags_register_new_gtype_and_add(info) +- else: +- if g_type.is_a(TYPE_ENUM): +- wrapper = enum_add(g_type) ++ with self._lock: ++ wrapper = g_type.pytype ++ ++ if wrapper is None: ++ if info.is_flags(): ++ if g_type.is_a(TYPE_FLAGS): ++ wrapper = flags_add(g_type) ++ else: ++ assert g_type == TYPE_NONE ++ wrapper = flags_register_new_gtype_and_add(info) + else: +- assert g_type == TYPE_NONE +- wrapper = enum_register_new_gtype_and_add(info) +- +- wrapper.__info__ = info +- wrapper.__module__ = 'gi.repository.' + info.get_namespace() +- +- # Don't use upper() here to avoid locale specific +- # identifier conversion (e. g. in Turkish 'i'.upper() == 'i') +- # see https://bugzilla.gnome.org/show_bug.cgi?id=649165 +- ascii_upper_trans = ''.maketrans( +- 'abcdefgjhijklmnopqrstuvwxyz', +- 'ABCDEFGJHIJKLMNOPQRSTUVWXYZ') +- for value_info in info.get_values(): +- value_name = value_info.get_name_unescaped().translate(ascii_upper_trans) +- setattr(wrapper, value_name, wrapper(value_info.get_value())) +- for method_info in info.get_methods(): +- setattr(wrapper, method_info.__name__, method_info) +- +- if g_type != TYPE_NONE: +- g_type.pytype = wrapper ++ if g_type.is_a(TYPE_ENUM): ++ wrapper = enum_add(g_type) ++ else: ++ assert g_type == TYPE_NONE ++ wrapper = enum_register_new_gtype_and_add(info) ++ ++ wrapper.__info__ = info ++ wrapper.__module__ = 'gi.repository.' + info.get_namespace() ++ ++ # Don't use upper() here to avoid locale specific ++ # identifier conversion (e. g. in Turkish 'i'.upper() == 'i') ++ # see https://bugzilla.gnome.org/show_bug.cgi?id=649165 ++ ascii_upper_trans = ''.maketrans( ++ 'abcdefgjhijklmnopqrstuvwxyz', ++ 'ABCDEFGJHIJKLMNOPQRSTUVWXYZ') ++ for value_info in info.get_values(): ++ value_name = value_info.get_name_unescaped().translate(ascii_upper_trans) ++ setattr(wrapper, value_name, wrapper(value_info.get_value())) ++ for method_info in info.get_methods(): ++ setattr(wrapper, method_info.__name__, method_info) ++ ++ if g_type != TYPE_NONE: ++ g_type.pytype = wrapper + + elif isinstance(info, RegisteredTypeInfo): + g_type = info.get_g_type() + + # Create a wrapper. + if isinstance(info, ObjectInfo): + parent = get_parent_for_object(info) + interfaces = tuple(interface for interface in get_interfaces_for_object(info) + if not issubclass(parent, interface)) + bases = (parent,) + interfaces + metaclass = GObjectMeta + elif isinstance(info, CallbackInfo): + bases = (CCallback,) + metaclass = GObjectMeta + elif isinstance(info, InterfaceInfo): + bases = (GInterface,) + metaclass = GObjectMeta + elif isinstance(info, (StructInfo, UnionInfo)): + if g_type.is_a(TYPE_BOXED): + bases = (Boxed,) + elif (g_type.is_a(TYPE_POINTER) or + g_type == TYPE_NONE or + g_type.fundamental == g_type): + bases = (Struct,) + else: + raise TypeError("unable to create a wrapper for %s.%s" % (info.get_namespace(), info.get_name())) + metaclass = StructMeta + else: + raise NotImplementedError(info) + +- # Check if there is already a Python wrapper that is not a parent class +- # of the wrapper being created. If it is a parent, it is ok to clobber +- # g_type.pytype with a new child class wrapper of the existing parent. +- # Note that the return here never occurs under normal circumstances due +- # to caching on the __dict__ itself. +- if g_type != TYPE_NONE: +- type_ = g_type.pytype +- if type_ is not None and type_ not in bases: +- self.__dict__[name] = type_ +- return type_ +- +- dict_ = { +- '__info__': info, +- '__module__': 'gi.repository.' + self._namespace, +- '__gtype__': g_type +- } +- wrapper = metaclass(name, bases, dict_) +- +- # Register the new Python wrapper. +- if g_type != TYPE_NONE: +- g_type.pytype = wrapper ++ with self._lock: ++ # Check if there is already a Python wrapper that is not a parent class ++ # of the wrapper being created. If it is a parent, it is ok to clobber ++ # g_type.pytype with a new child class wrapper of the existing parent. ++ # Note that the return here never occurs under normal circumstances due ++ # to caching on the __dict__ itself. ++ if g_type != TYPE_NONE: ++ type_ = g_type.pytype ++ if type_ is not None and type_ not in bases: ++ self.__dict__[name] = type_ ++ return type_ ++ ++ dict_ = { ++ '__info__': info, ++ '__module__': 'gi.repository.' + self._namespace, ++ '__gtype__': g_type ++ } ++ wrapper = metaclass(name, bases, dict_) ++ ++ # Register the new Python wrapper. ++ if g_type != TYPE_NONE: ++ g_type.pytype = wrapper + + elif isinstance(info, FunctionInfo): + wrapper = info + elif isinstance(info, ConstantInfo): + wrapper = info.get_value() + else: + raise NotImplementedError(info) + + # Cache the newly created wrapper which will then be + # available directly on this introspection module instead of being + # lazily constructed through the __getattr__ we are currently in. + self.__dict__[name] = wrapper + return wrapper + + def __repr__(self): + path = repository.get_typelib_path(self._namespace) + return "" % (self._namespace, path) + + def __dir__(self): + # Python's default dir() is just dir(self.__class__) + self.__dict__.keys() + result = set(dir(self.__class__)) + result.update(self.__dict__.keys()) + + # update *set* because some repository attributes have already been + # wrapped by __getattr__() and included in self.__dict__; but skip + # Callback types, as these are not real objects which we can actually + # get + namespace_infos = repository.get_infos(self._namespace) + result.update(info.get_name() for info in namespace_infos if + not isinstance(info, CallbackInfo)) +-- +2.31.1 + diff --git a/SPECS/pygobject3.spec b/SPECS/pygobject3.spec new file mode 100644 index 0000000..8b6888a --- /dev/null +++ b/SPECS/pygobject3.spec @@ -0,0 +1,599 @@ +%define glib2_version 2.56.0 +%define gobject_introspection_version 1.56.0 +%define pycairo_version 1.16.0 +%define python2_version 2.7 +%define python3_version 3.4 + +Name: pygobject3 +Version: 3.40.1 +Release: 5%{?dist} +Summary: Python bindings for GObject Introspection + +License: LGPLv2+ and MIT +URL: https://wiki.gnome.org/Projects/PyGObject +Source0: https://download.gnome.org/sources/pygobject/3.40/pygobject-%{version}.tar.xz + +BuildRequires: cairo-gobject-devel +BuildRequires: glib2-devel >= %{glib2_version} +BuildRequires: gobject-introspection-devel >= %{gobject_introspection_version} +BuildRequires: meson +BuildRequires: python3-devel >= %{python3_version} +BuildRequires: python3-cairo-devel >= %{pycairo_version} +BuildRequires: python3-setuptools + +Patch10001: 0001-IntrospectionModule-handle-two-threads-loading-type-.patch + +%description +The %{name} package provides a convenient wrapper for the GObject library +for use in Python programs. + +%package -n python3-gobject +Summary: Python 3 bindings for GObject Introspection +Requires: python3-gobject-base%{?_isa} = %{version}-%{release} +# The cairo override module depends on this +Requires: python3-cairo%{?_isa} >= %{pycairo_version} + +%description -n python3-gobject +The python3-gobject package provides a convenient wrapper for the GObject +library and and other libraries that are compatible with GObject Introspection, +for use in Python 3 programs. + +%package -n python3-gobject-base +Summary: Python 3 bindings for GObject Introspection base package +Requires: gobject-introspection%{?_isa} >= %{gobject_introspection_version} + +%description -n python3-gobject-base +This package provides the non-cairo specific bits of the GObject Introspection +library. + +%package -n python3-gobject-devel +Summary: Development files for embedding PyGObject introspection support +Requires: python3-gobject%{?_isa} = %{version}-%{release} +Requires: gobject-introspection-devel%{?_isa} +# Renamed in F31 +Obsoletes: pygobject3-devel < 3.34.0-2 +Provides: pygobject3-devel = %{version}-%{release} + +%description -n python3-gobject-devel +This package contains files required to embed PyGObject + +%prep +%autosetup -n pygobject-%{version} -p1 + +%build +%meson -Dpython=%{__python3} +%meson_build + +%install +%meson_install + +%files -n python3-gobject +%{python3_sitearch}/gi/_gi_cairo*.so + +%files -n python3-gobject-base +%license COPYING +%doc NEWS +%exclude %{python3_sitearch}/gi/_gi_cairo*.so +%{python3_sitearch}/gi/ +%{python3_sitearch}/PyGObject-*.egg-info +%{python3_sitelib}/gi/ +%{python3_sitelib}/pygtkcompat/ + +%files -n python3-gobject-devel +%dir %{_includedir}/pygobject-3.0/ +%{_includedir}/pygobject-3.0/pygobject.h +%{_libdir}/pkgconfig/pygobject-3.0.pc + +%changelog +* Thu Aug 19 2021 DJ Delorie - 3.40.1-5 +- Rebuilt for libffi 3.4.2 SONAME transition. + Related: rhbz#1891914 + +* Tue Aug 10 2021 Mohan Boddu - 3.40.1-4 +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Wed May 05 2021 Ray Strode - 3.40.1-3 +- Add concurrency fix + Related: #1957130 + +* Fri Apr 16 2021 Mohan Boddu - 3.40.1-2 +- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 + +* Tue Mar 30 2021 Kalev Lember - 3.40.1-1 +- Update to 3.40.1 + +* Mon Mar 22 2021 Kalev Lember - 3.40.0-1 +- Update to 3.40.0 + +* Wed Jan 27 2021 Fedora Release Engineering - 3.38.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Oct 05 2020 Kalev Lember - 3.38.0-2 +- Explicity BuildRequire python3-setuptools + +* Sat Sep 12 2020 Kalev Lember - 3.38.0-1 +- Update to 3.38.0 + +* Sat Aug 01 2020 Fedora Release Engineering - 3.36.1-4 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jul 28 2020 Fedora Release Engineering - 3.36.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Fri May 22 2020 Miro Hrončok - 3.36.1-2 +- Rebuilt for Python 3.9 + +* Thu May 07 2020 Kalev Lember - 3.36.1-1 +- Update to 3.36.1 + +* Sun Mar 08 2020 Kalev Lember - 3.36.0-2 +- Drop pkgconfig provides filtering as we no longer ship the Python 2 package + +* Sun Mar 08 2020 Kalev Lember - 3.36.0-1 +- Update to 3.36.0 + +* Thu Jan 30 2020 Fedora Release Engineering - 3.34.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Jan 16 2020 Miro Hrončok - 3.34.0-4 +- Subpackages python2-gobject, python2-gobject-base, python2-gobject-devel have been removed + See https://fedoraproject.org/wiki/Changes/RetirePython2 + +* Wed Sep 25 2019 Kalev Lember - 3.34.0-3 +- Don't add pkgconfig provides to python2-gobject-devel + +* Sat Sep 21 2019 Kalev Lember - 3.34.0-2 +- Drop Python 3 conditionals +- Split pygobject3-devel into python2-gobject-devel and python3-gobject-devel + (#1749589) + +* Mon Sep 09 2019 Kalev Lember - 3.34.0-1 +- Update to 3.34.0 + +* Mon Aug 19 2019 Kalev Lember - 3.33.1-1 +- Update to 3.33.1 + +* Thu Aug 15 2019 Miro Hrončok - 3.32.2-3 +- Rebuilt for Python 3.8 + +* Fri Jul 26 2019 Fedora Release Engineering - 3.32.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Mon Jun 24 2019 Kalev Lember - 3.32.2-1 +- Update to 3.32.2 + +* Tue Jun 18 2019 Zbigniew Jędrzejewski-Szmek - 3.32.1-2 +- Fix build under python3.8 (#1717655) + +* Mon May 06 2019 Kalev Lember - 3.32.1-1 +- Update to 3.32.1 + +* Mon Mar 11 2019 Kalev Lember - 3.32.0-1 +- Update to 3.32.0 + +* Thu Mar 07 2019 Kalev Lember - 3.31.4-1 +- Update to 3.31.4 + +* Mon Feb 04 2019 Kalev Lember - 3.31.3-1 +- Update to 3.31.3 + +* Sat Feb 02 2019 Fedora Release Engineering - 3.31.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Wed Jan 23 2019 Kalev Lember - 3.31.2-1 +- Update to 3.31.2 + +* Sat Dec 01 2018 Kalev Lember - 3.30.4-1 +- Update to 3.30.4 + +* Tue Nov 27 2018 Kalev Lember - 3.30.3-1 +- Update to 3.30.3 + +* Mon Nov 12 2018 Kalev Lember - 3.30.2-1 +- Update to 3.30.2 + +* Fri Sep 14 2018 Kalev Lember - 3.30.1-1 +- Update to 3.30.1 + +* Fri Sep 14 2018 Dan Horák - 3.30.0-2 +- Include temporary big endian fix (#1623547) + +* Thu Sep 06 2018 Kalev Lember - 3.30.0-1 +- Update to 3.30.0 + +* Mon Aug 13 2018 Kalev Lember - 3.29.2-1 +- Update to 3.29.2 + +* Fri Jul 13 2018 Fedora Release Engineering - 3.28.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Fri Jun 15 2018 Miro Hrončok - 3.28.3-2 +- Rebuilt for Python 3.7 + +* Fri Jun 01 2018 Kalev Lember - 3.28.3-1 +- Update to 3.28.3 + +* Wed Mar 28 2018 Kalev Lember - 3.28.2-1 +- Update to 3.28.2 + +* Mon Mar 19 2018 Kalev Lember - 3.28.1-1 +- Update to 3.28.1 + +* Mon Mar 12 2018 Kalev Lember - 3.28.0-1 +- Update to 3.28.0 + +* Sat Mar 03 2018 Kalev Lember - 3.27.5-1 +- Update to 3.27.5 + +* Wed Feb 21 2018 Iryna Shcherbina - 3.27.1-3 +- Update Python 2 dependency declarations to new packaging standards + (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) + +* Fri Feb 09 2018 Fedora Release Engineering - 3.27.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Wed Dec 20 2017 Kalev Lember - 3.27.1-1 +- Update to 3.27.1 + +* Wed Nov 01 2017 Kalev Lember - 3.26.1-1 +- Update to 3.26.1 + +* Wed Sep 27 2017 Troy Dawson - 3.26.0-2 +- Cleanup spec file conditionals + +* Thu Sep 14 2017 Kalev Lember - 3.26.0-1 +- Update to 3.26.0 + +* Thu Sep 14 2017 Kalev Lember - 3.24.1-5 +- Rename python-gobject-base to python2-gobject-base as well + +* Sat Aug 19 2017 Zbigniew Jędrzejewski-Szmek - 3.24.1-4 +- Python 2 binary package renamed to python2-pygobject3 + See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3 + +* Thu Aug 03 2017 Fedora Release Engineering - 3.24.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 3.24.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Tue Apr 11 2017 Kalev Lember - 3.24.1-1 +- Update to 3.24.1 + +* Tue Mar 21 2017 Kalev Lember - 3.24.0-1 +- Update to 3.24.0 + +* Sat Feb 11 2017 Fedora Release Engineering - 3.22.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Mon Dec 12 2016 Charalampos Stratakis - 3.22.0-2 +- Rebuild for Python 3.6 + +* Mon Sep 19 2016 Kalev Lember - 3.22.0-1 +- Update to 3.22.0 + +* Sun Sep 11 2016 Kalev Lember - 3.21.92-1 +- Update to 3.21.92 + +* Fri Aug 26 2016 Kalev Lember - 3.21.91-1 +- Update to 3.21.91 + +* Tue Aug 23 2016 Kalev Lember - 3.21.1-0.1.git395779e +- Update to 3.21.1 git snapshot + +* Tue Jul 19 2016 Fedora Release Engineering - 3.21.0-2 +- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages + +* Tue May 03 2016 Kalev Lember - 3.21.0-1 +- Update to 3.21.0 + +* Tue Mar 22 2016 Kalev Lember - 3.20.0-1 +- Update to 3.20.0 + +* Wed Mar 16 2016 Kalev Lember - 3.19.92-1 +- Update to 3.19.92 + +* Wed Mar 02 2016 Richard Hughes - 3.19.91-1 +- Update to 3.19.91 + +* Mon Feb 29 2016 Richard Hughes - 3.19.90-1 +- Update to 3.19.90 + +* Thu Feb 04 2016 Fedora Release Engineering - 3.19.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Tue Nov 03 2015 Robert Kuska - 3.19.2-2 +- Rebuilt for Python3.5 rebuild + +* Sun Nov 01 2015 Kalev Lember - 3.19.2-1 +- Update to 3.19.2 + +* Sat Oct 24 2015 Kalev Lember - 3.18.2-1 +- Update to 3.18.2 + +* Sat Oct 24 2015 Kalev Lember - 3.18.1-1 +- Update to 3.18.1 +- Update project URL and Source download location + +* Mon Oct 19 2015 Kalev Lember - 3.18.0-2 +- Backport a fix for Gdk.rectangle_intersect/rectangle_union compatibility + (#1269901) + +* Tue Sep 22 2015 Kalev Lember - 3.18.0-1 +- Update to 3.18.0 + +* Sat Aug 22 2015 Kalev Lember - 3.17.90-2 +- Rename Python 2 subpackage to python-gobject for consistency with the + python3-gobject package + +* Thu Aug 20 2015 Kalev Lember - 3.17.90-1 +- Update to 3.17.90 +- Use make_install macro +- Use license macro for COPYING + +* Tue Jun 30 2015 Kalev Lember - 3.17.1-3 +- Split non-cairo parts python3-gobject into a subpackage + +* Thu Jun 18 2015 Fedora Release Engineering - 3.17.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Mon Jun 15 2015 Kalev Lember - 3.17.1-1 +- Update to 3.17.1 + +* Wed Jun 03 2015 Kalev Lember - 3.16.1-2 +- Backport a patch for GdkRectangle changes in gtk+ 3.17.2 + +* Tue Apr 14 2015 Kalev Lember - 3.16.1-1 +- Update to 3.16.1 + +* Tue Mar 24 2015 Kalev Lember - 3.16.0-1 +- Update to 3.16.0 + +* Thu Mar 05 2015 Kalev Lember - 3.15.91-1 +- Update to 3.15.91 + +* Sat Feb 21 2015 Kalev Lember - 3.15.0-1 +- Update to 3.15.0 + +* Mon Sep 22 2014 Kalev Lember - 3.14.0-1 +- Update to 3.14.0 + +* Tue Sep 16 2014 Kalev Lember - 3.13.92-1 +- Update to 3.13.92 + +* Tue Sep 02 2014 Kalev Lember - 3.13.91-1 +- Update to 3.13.91 + +* Thu Aug 21 2014 Kalev Lember - 3.13.90-2 +- Backport a fix for virt-manager crash (#1130758) + +* Tue Aug 19 2014 Kalev Lember - 3.13.90-1 +- Update to 3.13.90 + +* Sun Aug 17 2014 Fedora Release Engineering - 3.13.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Fri Aug 15 2014 Kalev Lember - 3.13.4-1 +- Update to 3.13.4 + +* Tue Jun 24 2014 Richard Hughes - 3.13.3-1 +- Update to 3.13.3 + +* Sat Jun 07 2014 Fedora Release Engineering - 3.13.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Mon May 26 2014 Kalev Lember - 3.13.2-1 +- Update to 3.13.2 +- Drop old testsuite patches + +* Mon May 12 2014 Bohuslav Kabrda - 3.13.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Changes/Python_3.4 + +* Tue Apr 29 2014 Richard Hughes - 3.13.1-1 +- Update to 3.13.1 + +* Tue Apr 15 2014 Kalev Lember - 3.12.1-1 +- Update to 3.12.1 + +* Sat Apr 05 2014 Kalev Lember - 3.12.0-2 +- Update dep versions +- Tighten deps with %%_isa + +* Mon Mar 24 2014 Richard Hughes - 3.12.0-1 +- Update to 3.12.0 + +* Tue Mar 18 2014 Richard Hughes - 3.11.92-1 +- Update to 3.11.92 + +* Tue Mar 04 2014 Richard Hughes - 3.11.91-1 +- Update to 3.11.91 + +* Tue Feb 18 2014 Richard Hughes - 3.11.90-1 +- Update to 3.11.90 + +* Wed Feb 05 2014 Richard Hughes - 3.11.5-1 +- Update to 3.11.5 + +* Tue Jan 14 2014 Richard Hughes - 3.11.4-1 +- Update to 3.11.4 + +* Tue Dec 17 2013 Richard Hughes - 3.11.3-1 +- Update to 3.11.3 + +* Mon Nov 18 2013 Richard Hughes - 3.11.2-1 +- Update to 3.11.2 + +* Tue Oct 29 2013 Richard Hughes - 3.11.1-1 +- Update to 3.11.1 + +* Wed Sep 25 2013 Kalev Lember - 3.10.0-1 +- Update to 3.10.0 + +* Wed Sep 18 2013 Kalev Lember - 3.9.92-1 +- Update to 3.9.92 + +* Tue Sep 03 2013 Kalev Lember - 3.9.91-1 +- Update to 3.9.91 + +* Thu Aug 22 2013 Kalev Lember - 3.9.90-1 +- Update to 3.9.90 + +* Fri Aug 9 2013 Daniel Drake - 3.9.5-1 +- Update to 3.9.5 + +* Sun Aug 04 2013 Fedora Release Engineering - 3.9.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Sun Jun 02 2013 Kalev Lember - 3.9.2-1 +- Update to 3.9.2 + +* Sun Jun 02 2013 Kalev Lember - 3.9.1-2 +- Disable pyflakes tests to avoid failures with too new pyflakes 0.7.2 + +* Fri May 10 2013 Richard Hughes - 3.9.1-1 +- Update to 3.9.1 + +* Thu Apr 25 2013 Peter Robinson 3.8.1-2 +- Add upstream patch to fix Sugar (RHBZ 947538) + +* Mon Apr 15 2013 Kalev Lember - 3.8.1-1 +- Update to 3.8.1 + +* Tue Apr 2 2013 David Malcolm - 3.8.0-2 +- add workarounds for ppc64 (rhbz#924425) + +* Tue Mar 26 2013 Kalev Lember - 3.8.0-1 +- Update to 3.8.0 + +* Wed Mar 20 2013 Kalev Lember - 3.7.92-1 +- Update to 3.7.92 + +* Thu Mar 7 2013 Matthias Clasen - 3.7.91-1 +- Update to 3.7.91 + +* Thu Feb 21 2013 Kalev Lember - 3.7.90-1 +- Update to 3.7.90 + +* Wed Feb 06 2013 Kalev Lember - 3.7.5.1-1 +- Update to 3.7.5.1 +- Re-enable tests + +* Wed Jan 16 2013 Matthias Clasen - 3.7.4-1 +- Update to 3.7.4 + +* Fri Dec 28 2012 Dan Horák - 3.7.3-2 +- Fix GBytes test (gnome#690837) + +* Thu Dec 20 2012 Kalev Lember - 3.7.3-1 +- Update to 3.7.3 +- Drop upstreamed patches; rebase the ignore-more-pep8-errors patch + +* Thu Dec 13 2012 Ray Strode 3.7.1-3 +- Split non-cairo parts into a subpackage + +* Mon Nov 12 2012 Kalev Lember - 3.7.1-2 +- Remove lib64 rpaths (#817701) +- Move code examples to the -devel subpackage and fix the multilib + conflict (#831434) + +* Fri Nov 09 2012 Kalev Lember - 3.7.1-1 +- Update to 3.7.1 + +* Tue Nov 6 2012 Daniel Drake - 3.4.1.1-2 +- Upstream fix for property lookup; needed for basic Sugar operation. + +* Wed Oct 17 2012 Kalev Lember - 3.4.1.1-1 +- Update to 3.4.1.1 + +* Thu Sep 13 2012 Daniel Drake - 3.3.91-1 +- Latest version; upstreamed patches dropped + +* Wed Aug 15 2012 David Malcolm - 3.3.4-9 +- avoid dragging pyflakes and python-pep8 into RHEL (patch 7) + +* Fri Aug 10 2012 David Malcolm - 3.3.4-8 +- add endianness patch (rhbz#841596; attachment 603634) + +* Fri Aug 10 2012 David Malcolm - 3.3.4-7 +- update endianness patch for rhbz#841596 (to attachment 603367) + +* Thu Aug 9 2012 David Malcolm - 3.3.4-6 +- fix issues on big-endian 64-bit machines (rhbz#841596, rhbz#842880) + +* Thu Aug 9 2012 David Malcolm - 3.3.4-5 +- use xvfb-run in selftests; update known failures + +* Wed Aug 8 2012 David Malcolm - 3.3.4-4 +- add a %%check check; add V=1 to all make invocations + +* Sat Aug 04 2012 David Malcolm - 3.3.4-3 +- rebuild for https://fedoraproject.org/wiki/Features/Python_3.3 + +* Fri Aug 3 2012 David Malcolm - 3.3.4-2 +- remove rhel logic from with_python3 conditional + +* Tue Jul 17 2012 Richard Hughes - 3.3.4-1 +- Update to 3.3.4 + +* Tue Jun 26 2012 David Malcolm - 3.3.3.1-2 +- fix a segfault when dealing with mismatched .so/typelib files + +* Mon Jun 25 2012 Peter Robinson - 3.3.3.1-1 +- Update to 3.3.3.1 + +* Tue Jun 19 2012 Kalev Lember - 3.3.2-1 +- Update to 3.3.2 + +* Sat May 05 2012 Kalev Lember - 3.3.1-1 +- Update to 3.3.1 +- Dropped the now unneeded -lm patch + +* Tue Mar 27 2012 Kalev Lember - 3.2.0-1 +- Update to 3.2.0 + +* Thu Mar 22 2012 Matthias Clasen - 3.1.93-1 +- Update to 3.1.93 + +* Wed Mar 21 2012 Kalev Lember - 3.1.92-1 +- Update to 3.1.92 + +* Sun Feb 26 2012 Matthias Clasen - 3.1.1-1 +- Update to 3.1.1 + +* Tue Feb 7 2012 Matthias Clasen - 3.1.0-1 +- Update to 3.1.0 + +* Sat Jan 14 2012 Fedora Release Engineering - 3.0.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Tue Dec 20 2011 Ignacio Casal Quinteiro - 3.0.3-1 +- udpate to 3.0.3 + +* Sat Oct 22 2011 Ignacio Casal Quinteiro - 3.0.2-1 +- udpate to 3.0.2 + +* Fri Sep 30 2011 Ignacio Casal Quinteiro - 3.0.1-1 +- udpate to 3.0.1 + +* Tue Sep 20 2011 Matthias Clasen - 3.0.0-1 +- Update to 3.0.0 + +* Thu Sep 15 2011 John (J5) Palmieri - 2.90.4-1 +- update to 2.90.4 +- get rid of packaging cruft that is taken care of by upstream now + +* Wed Aug 31 2011 Ignacio Casal Quinteiro - 2.90.3-1 +- udpate to 2.90.3 + +* Mon Aug 22 2011 John (J5) Palmieri - 2.90.2-3 +- remove some old requires + +* Fri Aug 19 2011 John (J5) Palmieri - 2.90.2-2 +- fix up issues uncovered during package review +- disable docs because they still reference the static bindings + and upstream is working on new documentation + +* Thu Aug 18 2011 John (J5) Palmieri - 2.90.2-1 +- Initial package