Source: pycairo
Version: 1.26.1-2
Tags: patch
User: debian-cr...@lists.debian.org
Usertags: cross-satisfiability ftcbfs

pycairo cannot be cross built for multiple reason. The immediate failure
is installing the sphinx dependencies. Fortunately, the documentation
already is separated into an Arch:all -doc package, so all we have to do
is move the relevant dependencies to B-D-I to make them irrelevant for
cross building. That happens to include the sphinxdoc debhelper addon,
so I suggest enabling addons via Build-Depends. Then, the host
architecture Python interpreter cannot be installed. Typically, what is
needed for cross building is libpython3-all-dev plus
python3-all-dev:native. Once these changes are applied, it actually
starts building, but the emitted extension uses a build architecture
filename. This is due to using defaulting to the build architecture
sysconfig. If it were being built using pybuild, debhelper would handle
this, but for meson there usually is no need to set this. Hence, we get
to do this manually. I'm attaching a patch handling all of the
aforementioned issues for your convenience.

Helmut
diff --minimal -Nru pycairo-1.26.1/debian/changelog 
pycairo-1.26.1/debian/changelog
--- pycairo-1.26.1/debian/changelog     2024-09-05 17:33:13.000000000 +0200
+++ pycairo-1.26.1/debian/changelog     2024-11-10 17:53:42.000000000 +0100
@@ -1,3 +1,14 @@
+pycairo (1.26.1-2.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix FTCBFS: (Closes: #-1)
+    + Declaratively use debhelper addons.
+    + Demote sphinx dependencies to B-D-I.
+    + Multiarchify python3 build dependency.
+    + Export _PYTHON_SYSCONFIGDATA_NAME through meson.
+
+ -- Helmut Grohne <hel...@subdivi.de>  Sun, 10 Nov 2024 17:53:42 +0100
+
 pycairo (1.26.1-2) unstable; urgency=medium
 
   * Build with cairo 1.18.2 (LP: #2078971)
diff --minimal -Nru pycairo-1.26.1/debian/control pycairo-1.26.1/debian/control
--- pycairo-1.26.1/debian/control       2024-09-05 17:33:13.000000000 +0200
+++ pycairo-1.26.1/debian/control       2024-11-10 17:53:42.000000000 +0100
@@ -5,14 +5,15 @@
 Uploaders: Torsten Marek <shlo...@debian.org>
 Build-Depends: debhelper-compat (= 13),
                dh-exec,
-               dh-python,
+               dh-sequence-python3,
                libcairo2-dev (>= 1.18.2),
+               libpython3-all-dev,
                meson,
-               python3-all-dev,
+               python3-all-dev:native,
                python3-pytest <!nocheck>,
-               python3-sphinx,
-               python3-sphinx-rtd-theme,
-               sphinx-common
+Build-Depends-Indep: dh-sequence-sphinxdoc,
+                     python3-sphinx,
+                     python3-sphinx-rtd-theme,
 Standards-Version: 4.6.2
 Homepage: https://cairographics.org/pycairo/
 Vcs-Git: https://salsa.debian.org/python-team/packages/pycairo.git
diff --minimal -Nru pycairo-1.26.1/debian/rules pycairo-1.26.1/debian/rules
--- pycairo-1.26.1/debian/rules 2024-09-05 17:33:13.000000000 +0200
+++ pycairo-1.26.1/debian/rules 2024-11-10 17:53:42.000000000 +0100
@@ -2,8 +2,14 @@
 
 export DEB_BUILD_MAINT_OPTIONS = hardening=+all
 
+include /usr/share/dpkg/architecture.mk
+
+ifneq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
+export 
_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata__$(DEB_HOST_ARCH_OS)_$(DEB_HOST_MULTIARCH)
+endif
+
 %:
-       dh $@ --with python3,sphinxdoc --buildsystem=meson
+       dh $@ --buildsystem=meson
 
 # Build for all supported python3 versions.
 # for details, see https://bugs.debian.org/1055488

Reply via email to