Bug#1108103: lammps: improve build-depends for cross building

Helmut Grohne helmut at subdivi.de
Fri Jun 20 08:24:12 BST 2025


Source: lammps
Version: 20250204+dfsg.1-2
Tags: patch
User: debian-cross at lists.debian.org
Usertags: cross-satisfiability

lammps cannot be cross built for several reasons relating to its
Build-Depends. I looked into it and propose a patch solving some of
them:

 * gfortran requests a host architecture compiler executable. If it were
   installable, it could not be run. For cross building, we need to add
   a -for-host suffix, but it comes with a catch. The compiler must now
   be prefixed with the host architecture even for native builds. To
   that end, dpkg's buildtools.mk may export suitable variables.

 * sphinx notoriously poses issues to cross satisfiability. Fortunately,
   most of the pieces already reside in B-D-I, so I propose to move the
   remainders there as well.

 * python3-all-dev needs to be split into two dependencies for cross
   building.

 * libvtk9-dev transitively depends on a host Python interpreter. I
   don't have a solution for this and it is a larger problem to be
   solved elsewhere.

Please consider applying the attached patch that solves the first three
issues in the forky cycle and close this bug when doing so.

Helmut
-------------- next part --------------
diff --minimal -Nru lammps-20250204+dfsg.1/debian/changelog lammps-20250204+dfsg.1/debian/changelog
--- lammps-20250204+dfsg.1/debian/changelog	2025-03-03 06:03:37.000000000 +0100
+++ lammps-20250204+dfsg.1/debian/changelog	2025-06-20 08:08:10.000000000 +0200
@@ -1,3 +1,14 @@
+lammps (20250204+dfsg.1-2.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Improve cross build satisfiability. (Closes: #-1)
+    + Annotate gfortran dependency with -for-host and let dpkg's
+      buildtools.mk supply the prefixed fortran compiler.
+    + Move all sphinx dependencies to B-D-I.
+    + Multiarchify python B-D.
+
+ -- Helmut Grohne <helmut at subdivi.de>  Fri, 20 Jun 2025 08:08:10 +0200
+
 lammps (20250204+dfsg.1-2) unstable; urgency=medium
 
   * [a7ad696] Move ipython dep to common section
diff --minimal -Nru lammps-20250204+dfsg.1/debian/control lammps-20250204+dfsg.1/debian/control
--- lammps-20250204+dfsg.1/debian/control	2025-03-03 06:03:21.000000000 +0100
+++ lammps-20250204+dfsg.1/debian/control	2025-06-20 08:08:10.000000000 +0200
@@ -9,7 +9,7 @@
                dh-python,
                pybuild-plugin-pyproject,
                python3-setuptools,
-               gfortran | fortran-compiler,
+               gfortran-for-host | fortran-compiler,
                libavcodec-dev,
                libeigen3-dev,
                libfftw3-dev,
@@ -24,11 +24,12 @@
                mpi-default-bin,
                mpi-default-dev,
                ocl-icd-opencl-dev | opencl-dev,
-               python3-all-dev,
+               python3-all-dev:native,
+               libpython3-all-dev,
                python3-ipython,
-               python3-sphinx,
                voro++-dev
-Build-Depends-Indep: libjs-sphinxdoc,
+Build-Depends-Indep: dh-sequence-sphinxdoc,
+                     libjs-sphinxdoc,
                      libjs-jquery,
                      libjs-mathjax,
                      libjs-underscore,
@@ -40,6 +41,7 @@
                      sphinx-rtd-theme-common,
                      latexmk,
                      htmldoc,
+                     python3-sphinx,
                      python3-sphinx-tabs,
                      python3-sphinxcontrib.jquery,
                      python3-sphinxcontrib.spelling,
diff --minimal -Nru lammps-20250204+dfsg.1/debian/rules lammps-20250204+dfsg.1/debian/rules
--- lammps-20250204+dfsg.1/debian/rules	2025-03-02 22:48:50.000000000 +0100
+++ lammps-20250204+dfsg.1/debian/rules	2025-06-20 08:08:10.000000000 +0200
@@ -1,7 +1,9 @@
 #!/usr/bin/make -f
 BUILDDIR = $(CURDIR)/debian/build
 
-DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
+include /usr/share/dpkg/architecture.mk
+DPKG_EXPORT_BUILDTOOLS := 1
+include /usr/share/dpkg/buildtools.mk
 PY3VER_DEFAULT := $(shell py3versions -dv)
 
 export PRTE_MCA_rmaps_default_mapping_policy=:oversubscribe
@@ -11,7 +13,7 @@
 disable_auto_test_archs_simpl = mips64el
 
 %:
-	dh $@ --with python3,sphinxdoc --sourcedirectory=cmake --builddirectory=$(BUILDDIR)
+	dh $@ --with python3 --sourcedirectory=cmake --builddirectory=$(BUILDDIR)
 
 override_dh_auto_configure:
 	dh_auto_configure -- \


More information about the debian-science-maintainers mailing list