From b34cc766c1303cb4b56b23bee636001fe0e7bccb Mon Sep 17 00:00:00 2001
From: StevenK <>
Date: Jun 11 2025 14:49:26 +0000
Subject: Update python-pycairo to version 1.28.0 / rev 16 via SR 1284631
https://build.opensuse.org/request/show/1284631
by user StevenK + anag_factory
- Update to 1.28.0:
* Changes:
+ Remove hypothesis test dependency
+ Release the input buffer passed to ImageSurface.create_for_data() when
calling Surface.finish() already, not just when the underlying surface
is destroyed
+ Return a PathDataType (int subtype) instead of int with Path.__iter__()
+ Emit a DeprecationWarning in case ImageSurface.get_data() is called on
an already finished surface.
+ Emit a DeprecationWarning for the undocumented num_glyphs parameter in
Context.glyph_extents(), Context.glyph_path(), Context.show_glyphs(),
ScaledFont.glyph_extents()
* Fixes:
+ Remove the executable bit from cairo/__init__.py
+ Remove usage of removed typing.ByteString to fix compatibility with
Python 3.14.0a1
+ Drop suppor
---
diff --git a/.files b/.files
index 1766beb..f2b16c7 100644
Binary files a/.files and b/.files differ
diff --git a/.rev b/.rev
index daf1fe5..d2cf0b1 100644
--- a/.rev
+++ b/.rev
@@ -169,4 +169,31 @@
1190484
+
+ dd9cf63056e1cfdbeaaa6f60a228c244
+ 1.28.0
+
+ anag_factory
+ - Update to 1.28.0:
+ * Changes:
+ + Remove hypothesis test dependency
+ + Release the input buffer passed to ImageSurface.create_for_data() when
+ calling Surface.finish() already, not just when the underlying surface
+ is destroyed
+ + Return a PathDataType (int subtype) instead of int with Path.__iter__()
+ + Emit a DeprecationWarning in case ImageSurface.get_data() is called on
+ an already finished surface.
+ + Emit a DeprecationWarning for the undocumented num_glyphs parameter in
+ Context.glyph_extents(), Context.glyph_path(), Context.show_glyphs(),
+ ScaledFont.glyph_extents()
+ * Fixes:
+ + Remove the executable bit from cairo/__init__.py
+ + Remove usage of removed typing.ByteString to fix compatibility with
+ Python 3.14.0a1
+ + Drop support for Python 3.8
+ + Port PEP517/wheel build from setuptools to meson-python.
+ + meson: install the package metadata to .dist-info/METADATA instead
+ of .egg-info
+ 1284631
+
diff --git a/pycairo-1.26.1.tar.gz b/pycairo-1.26.1.tar.gz
deleted file mode 120000
index c611713..0000000
--- a/pycairo-1.26.1.tar.gz
+++ /dev/null
@@ -1 +0,0 @@
-/ipfs/bafybeia3jshtdlz6v62b4zgynp2lbrqgmczlyobvnff26dbviofrdnulgq
\ No newline at end of file
diff --git a/pycairo-1.28.0.tar.gz b/pycairo-1.28.0.tar.gz
new file mode 120000
index 0000000..6fce8c7
--- /dev/null
+++ b/pycairo-1.28.0.tar.gz
@@ -0,0 +1 @@
+/ipfs/bafybeias57nqjgm3emcaa3sftg4cxbtgajcmoabq5iltl3w3qwwhj5leua
\ No newline at end of file
diff --git a/python-pycairo.changes b/python-pycairo.changes
index fb7216e..310f8ed 100644
--- a/python-pycairo.changes
+++ b/python-pycairo.changes
@@ -1,4 +1,28 @@
-------------------------------------------------------------------
+Wed Jun 11 05:52:55 UTC 2025 - Steve Kowalik
+
+- Update to 1.28.0:
+ * Changes:
+ + Remove hypothesis test dependency
+ + Release the input buffer passed to ImageSurface.create_for_data() when
+ calling Surface.finish() already, not just when the underlying surface
+ is destroyed
+ + Return a PathDataType (int subtype) instead of int with Path.__iter__()
+ + Emit a DeprecationWarning in case ImageSurface.get_data() is called on
+ an already finished surface.
+ + Emit a DeprecationWarning for the undocumented num_glyphs parameter in
+ Context.glyph_extents(), Context.glyph_path(), Context.show_glyphs(),
+ ScaledFont.glyph_extents()
+ * Fixes:
+ + Remove the executable bit from cairo/__init__.py
+ + Remove usage of removed typing.ByteString to fix compatibility with
+ Python 3.14.0a1
+ + Drop support for Python 3.8
+ + Port PEP517/wheel build from setuptools to meson-python.
+ + meson: install the package metadata to .dist-info/METADATA instead
+ of .egg-info
+
+-------------------------------------------------------------------
Mon Jul 29 14:49:40 UTC 2024 - John Paul Adrian Glaubitz
- Update to 1.26.1
diff --git a/python-pycairo.spec b/python-pycairo.spec
index cbb235f..978bb4f 100644
--- a/python-pycairo.spec
+++ b/python-pycairo.spec
@@ -1,7 +1,7 @@
#
# spec file for package python-pycairo
#
-# Copyright (c) 2024 SUSE LLC
+# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,16 +19,16 @@
%{?sle15_python_module_pythons}
%define oldpython python
Name: python-pycairo
-Version: 1.26.1
+Version: 1.28.0
Release: 0
Summary: Python Bindings for Cairo
License: LGPL-2.1-or-later OR MPL-1.1
URL: https://github.com/pygobject/pycairo
Source: %{url}/releases/download/v%{version}/pycairo-%{version}.tar.gz
-
-BuildRequires: %{python_module devel}
+BuildRequires: %{python_module devel >= 3.9}
+BuildRequires: %{python_module meson-python}
+BuildRequires: %{python_module pip}
BuildRequires: %{python_module pytest}
-BuildRequires: %{python_module setuptools}
BuildRequires: cairo-devel >= 1.15.10
BuildRequires: fdupes
BuildRequires: python-rpm-macros
@@ -74,28 +74,32 @@ packages that depend on Pycairo.
%autosetup -n pycairo-%{version} -p1
%build
-%python_build
+%{python_expand \
+dir="build.$python"
+mkdir $dir
+cat << EOF > $dir/native-file.ini
+[binaries]
+python = '$python'
+EOF
+meson setup . $dir -Dbuildtype=release -Db_ndebug=if-release -Db_vscrt=md -Dtests=false -Dwheel=false --prefix=/usr --native-file=$dir/native-file.ini
+ninja -C $dir
+}
%install
-%python_install
-# Incorrectly installed by a python38-setuptools vendored distutils
-# which does not play well with the distro patched python38.
-# Later flavors installed the correct files into lib64 as well
-if [ "%{_libdir}" != "%{_prefix}/lib" -a -d %{buildroot}%{_prefix}/lib/pkgconfig ]; then
- rm -r %{buildroot}%{_prefix}/lib/pkgconfig
-fi
+%python_expand meson install -C build.$python --destdir %{buildroot}
%python_expand %fdupes %{buildroot}%{$python_sitearch}
%check
-# this is not the deprecated setuptools test call but a custom setup compiling stuff and running pytest
-%python_exec setup.py test
+mv cairo cairo-do-not-import-from
+%pytest_arch
+mv cairo-do-not-import-from cairo
%files %{python_files}
%doc NEWS docs
%license COPYING COPYING-LGPL-2.1 COPYING-MPL-1.1
%{python_sitearch}/cairo/
%exclude %{python_sitearch}/cairo/include
-%{python_sitearch}/pycairo-*.egg-info
+%{python_sitearch}/pycairo-%{version}.dist-info
%files %{python_files devel}
%license COPYING COPYING-LGPL-2.1 COPYING-MPL-1.1