Source: fabulous
Version: 0.4.0+dfsg1-1
Tags: patch
User: debian-cr...@lists.debian.org
Usertags: cross-satisfiability ftcbfs

fabulous cannot be cross built from source as is. The initial problem is
failure to satisfy cross Build-Depends. The immediate offender (sphinx)
is well known and we know that it cannot be marked Multi-Arch: foreign,
because it is sometimes used in architecture-dependent ways. As a
result, client packages must make the decision of which architecture
they need it for. So we annotate sphinx dependencies :native. While that
gets it a bit further, now we see an architecture conflict on python3.
Same problem, same solution: We annotate the interpreter with :native.
This finally lets us build except that xtermspeedup.so is built with the
wrong compiler. dpkg's buildtools.mk can fix that. And finally,
something inside dh-python explodes when the hosts' sysconfig data is
missing due to missing libpython3-all-dev. So here we go with a patch
that fixes everything.

A couple of final remarks. I opted dropping python3-minimal, because it
is implied in python3-all. I also think that you don't actually need
python3-all and that python3 should be sufficient. Even though fabulous
builds a shared object, this object is not dependent on the Python
version, so we only need it once for all versions. Moving fro
python3-all to python3 should remove the need to rebuild fabulous for
Python transitions. I leave this up to you.

Helmut
diff --minimal -Nru fabulous-0.4.0+dfsg1/debian/changelog 
fabulous-0.4.0+dfsg1/debian/changelog
--- fabulous-0.4.0+dfsg1/debian/changelog       2021-09-02 08:09:04.000000000 
+0200
+++ fabulous-0.4.0+dfsg1/debian/changelog       2023-03-27 11:47:44.000000000 
+0200
@@ -1,3 +1,15 @@
+fabulous (0.4.0+dfsg1-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix FTCBFS: (Closes: #-1)
+    + Drop B-D: python3-minimal implied in python3-all.
+    + Annotate B-D that cannot be marked M-A:foreign but are used natively
+      with :native.
+    + Add missing libpython3-all-dev for sysconfig data.
+    + Let dpkg's buildtools.mk initialize CC.
+
+ -- Helmut Grohne <hel...@subdivi.de>  Mon, 27 Mar 2023 11:47:44 +0200
+
 fabulous (0.4.0+dfsg1-1) unstable; urgency=medium
 
   * New upstream release
diff --minimal -Nru fabulous-0.4.0+dfsg1/debian/control 
fabulous-0.4.0+dfsg1/debian/control
--- fabulous-0.4.0+dfsg1/debian/control 2021-09-02 08:09:02.000000000 +0200
+++ fabulous-0.4.0+dfsg1/debian/control 2023-03-27 11:47:44.000000000 +0200
@@ -5,13 +5,13 @@
 Uploaders: Jonathan Carter <j...@debian.org>
 Build-Depends: debhelper-compat (= 13),
                dh-python,
-               python3-all,
+               libpython3-all-dev,
+               python3-all:native,
                python3-doc,
-               python3-minimal,
-               python3-pil,
+               python3-pil:native,
                python3-setuptools,
-               python3-sphinx,
-               python3-sphinxcontrib.programoutput
+               python3-sphinx:native,
+               python3-sphinxcontrib.programoutput:native,
 Standards-Version: 4.6.1
 Rules-Requires-Root: no
 Homepage: https://jart.github.io/fabulous/
diff --minimal -Nru fabulous-0.4.0+dfsg1/debian/rules 
fabulous-0.4.0+dfsg1/debian/rules
--- fabulous-0.4.0+dfsg1/debian/rules   2020-10-22 12:17:59.000000000 +0200
+++ fabulous-0.4.0+dfsg1/debian/rules   2023-03-27 11:47:44.000000000 +0200
@@ -2,6 +2,7 @@
 
 export DEB_BUILD_MAINT_OPTIONS=hardening=+all
 
+include /usr/share/dpkg/buildtools.mk
 CFLAGS := $(shell dpkg-buildflags --get CFLAGS)
 CPPFLAGS := $(shell dpkg-buildflags --get CPPFLAGS)
 LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS)

Reply via email to