diff --git a/cairocffi-1.2.0.tar.gz b/cairocffi-1.2.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..e0b9364478b2cbbfed9dbfe1e0f83813e48d1b39 Binary files /dev/null and b/cairocffi-1.2.0.tar.gz differ diff --git a/python-cairocffi-disable-flake8-isort-for-pytest.patch b/python-cairocffi-disable-flake8-isort-for-pytest.patch new file mode 100644 index 0000000000000000000000000000000000000000..f90909e0ddfdb9adcfca64a1850a614150fd0bf0 --- /dev/null +++ b/python-cairocffi-disable-flake8-isort-for-pytest.patch @@ -0,0 +1,30 @@ +diff --git a/setup.cfg b/setup.cfg +index 34678e4..c7c74f5 100644 +--- a/setup.cfg ++++ b/setup.cfg +@@ -43,8 +43,6 @@ install_requires = + cffi >= 1.1.0 + tests_require = + pytest-cov +- pytest-flake8 +- pytest-isort + pytest-runner + numpy + python_requires = >= 3.6 +@@ -62,8 +60,6 @@ doc = + test = + pytest-runner + pytest-cov +- pytest-flake8 +- pytest-isort + xcb = + xcffib >= 0.3.2 + +@@ -75,7 +71,6 @@ build-dir = docs/_build + test = pytest + + [tool:pytest] +-addopts = --flake8 --isort + norecursedirs = build dist .cache .eggs .git + + [flake8] diff --git a/python-cairocffi-fix-pdf-datestring.patch b/python-cairocffi-fix-pdf-datestring.patch new file mode 100644 index 0000000000000000000000000000000000000000..383661b338bc85d862c7c54a07cd1f734752f7dc --- /dev/null +++ b/python-cairocffi-fix-pdf-datestring.patch @@ -0,0 +1,29 @@ +commit 2af6017be9d15b5f6b5a4a394b51a22f8d2c3c54 +Author: Felix Schwarz +Date: Fri Jan 1 23:34:44 2021 +0100 + + test_metadata: add workaround for changed PDF date string in cairo 1.17.4 + +diff --git a/cairocffi/test_cairo.py b/cairocffi/test_cairo.py +index 89e6bc4..a7c0abc 100644 +--- a/cairocffi/test_cairo.py ++++ b/cairocffi/test_cairo.py +@@ -255,7 +255,17 @@ def test_metadata(): + assert b'/Creator (creator)' in pdf_bytes + assert b'/Author (author)' in pdf_bytes + assert b'/Keywords (keywords)' in pdf_bytes +- assert b"/CreationDate (20130721234600+01'00)" in pdf_bytes ++ # According to PDF 32000-1:2008, section 7.9.4 ("Dates") PDF date strings ++ # do not end with a apostrophe even though that format was described in ++ # the "PDF reference, Sixth Edition". ++ # See also: https://stackoverflow.com/q/41661477/138526 ++ # cairo 1.17.4 contains a commit which adds the apostrophe unconditionally: ++ # https://gitlab.freedesktop.org/cairo/cairo/-/issues/392#note_742384 ++ if cairo_version() == 11704: ++ expected_date_string = b"/CreationDate (20130721234600+01'00')" ++ else: ++ expected_date_string = b"/CreationDate (20130721234600+01'00)" ++ assert expected_date_string in pdf_bytes + assert b'/ModDate (20130721234600Z)' in pdf_bytes + + diff --git a/python-cairocffi.spec b/python-cairocffi.spec new file mode 100644 index 0000000000000000000000000000000000000000..c08339379b9e552a03720d6aaa2e392215edd8ee --- /dev/null +++ b/python-cairocffi.spec @@ -0,0 +1,74 @@ +%global srcname cairocffi + +Name: python-cairocffi +Version: 1.2.0 +Release: 1 +Summary: cffi-based cairo bindings for Python +License: BSD +URL: https://pypi.python.org/pypi/cairocffi/ +Source0: https://files.pythonhosted.org/packages/source/c/cairocffi/cairocffi-1.2.0.tar.gz +Patch0: python-cairocffi-disable-flake8-isort-for-pytest.patch +# https://github.com/Kozea/cairocffi/pull/178 +Patch1: python-cairocffi-fix-pdf-datestring.patch +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-cffi >= 1.1.0 +BuildRequires: python3-pytest +BuildRequires: python3-pytest-cov +BuildRequires: python3-pytest-runner +BuildRequires: python3-xcffib >= 0.3.2 +BuildRequires: cairo-devel +# required to run the test suite +BuildRequires: python3-numpy +BuildRequires: gdk-pixbuf2 +BuildRequires: gdk-pixbuf2-modules +BuildRequires: xorg-x11-server-Xvfb + +%global _description\ +cairocffi is a CFFI-based drop-in replacement for Pycairo, a set of\ +Python bindings and object-oriented API for cairo. Cairo is a 2D\ +vector graphics library with support for multiple backends including\ +image buffers, PNG, PostScript, PDF, and SVG file output. + +%description %_description + +%package -n python3-cairocffi +Summary: cffi-based cairo bindings for Python +Requires: python3-cffi +Requires: cairo +# required by cairocffi.pixbuf +Requires: python3-xcffib >= 0.3.2 +# Provide the cairocffi[xcb] extras, because there is no reasonable split +# Be aware that %%version is not converted to the Pythonistic version here! +Provides: python%{python3_pkgversion}dist(cairocffi[xcb]) = %{version} +Provides: python%{python3_version}dist(cairocffi[xcb]) = %{version} +%{?python_provide:%python_provide python3-cairocffi} + +%description -n python3-cairocffi %_description + +%prep +%autosetup -n cairocffi-%{version} -p1 +rm -rf %{srcname}.egg-info + +%build +%py3_build + +%install +%py3_install + +%check +# test_xcb.py needs a display +xvfb-run %{__python3} setup.py test + + +%files -n python3-cairocffi +%license LICENSE +%doc README.rst +%{python3_sitelib}/%{srcname}/ +%{python3_sitelib}/%{srcname}-%{version}-py%{python3_version}.egg-info/ + +%changelog +* Fri Feb 19 2021 Ge Wang - 1.2.0-1 +- Init package diff --git a/python-cairocffi.yaml b/python-cairocffi.yaml new file mode 100644 index 0000000000000000000000000000000000000000..1793fbe292c07267d6b58d8a71eed85e5ea479cb --- /dev/null +++ b/python-cairocffi.yaml @@ -0,0 +1,4 @@ +version_control: pypi +src_repo: cairocffi +tag_prefix: "cairocffi" +separator: "."