[Pkg-clamav-devel] Bug#1089046: clamav FTCBFS: unsatisfiable test dependencies

Helmut Grohne helmut at subdivi.de
Wed Dec 4 10:45:10 GMT 2024


Source: clamav
Version: 1.4.1+dfsg-1
Tags: patch
User: debian-cross at lists.debian.org
Usertags: bdsat
X-Debbugs-Cc: kanashiro at debian.org

Hi,

I noticed that clamav fails to cross build from source since about two
years due to more Build-Depends. Unfortunately, building
clamav-testfiles depends on enabling unit tests. Thus I propose to
disable testing in arch-only builds with DEB_BUILD_OPTIONS=nocheck but
leave testing enabled in all other build configurations (in particular
in all buildd builds). The changed configuration is precisely the one
relevant to cross building. I verified that this change does not incur
changes to output artifacts by comparing modified builds with original
builds using diffoscope. I'm attaching the resulting patch for your
convenience. Note that it does not yet make clamav cross buildable. All
it does is get us significantly closer to actually satisfying
Build-Depends. What needs to happen next likely is annotating a couple
of Build-Depends with :native and then figure out how to avoid running
cmake/CheckSignedRightShift.cmake. That said, please close this bug when
addressing the test dependencies.

Helmut
-------------- next part --------------
diff --minimal -Nru clamav-1.4.1+dfsg/debian/changelog clamav-1.4.1+dfsg/debian/changelog
--- clamav-1.4.1+dfsg/debian/changelog	2024-10-03 10:51:50.000000000 +0200
+++ clamav-1.4.1+dfsg/debian/changelog	2024-12-04 08:26:22.000000000 +0100
@@ -1,3 +1,13 @@
+clamav (1.4.1+dfsg-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Improve cross building: (Closes: #-1)
+    + Skip tests in arch-only build with DEB_BUILD_OPTIONS=nocheck.
+    + Skip doxygen in arch-only build.
+    + Demote/annotate conditional dependencies.
+
+ -- Helmut Grohne <helmut at subdivi.de>  Wed, 04 Dec 2024 08:26:22 +0100
+
 clamav (1.4.1+dfsg-1) unstable; urgency=medium
 
   * Import 1.4.1 (Closes: #1080962)
diff --minimal -Nru clamav-1.4.1+dfsg/debian/control clamav-1.4.1+dfsg/debian/control
--- clamav-1.4.1+dfsg/debian/control	2024-10-03 10:41:37.000000000 +0200
+++ clamav-1.4.1+dfsg/debian/control	2024-12-04 08:26:22.000000000 +0100
@@ -10,12 +10,11 @@
 Build-Depends: dpkg-dev (>= 1.22.5), automake,
                bindgen,
                cargo,
-               check,
+               check <!nocheck>,
                cmake,
                debhelper-compat (= 12),
                dh-apparmor,
                dh-strip-nondeterminism,
-               doxygen,
                libbz2-dev,
                libcurl4-openssl-dev,
                libjson-c-dev,
@@ -30,11 +29,15 @@
                perl:native,
                pkg-config,
                po-debconf,
-               python3-pytest,
-               rust-gdb,
+               python3-pytest <!nocheck>,
+               rust-gdb <!nocheck>,
                rustfmt,
                systemd,
                zlib1g-dev
+Build-Depends-Indep: check,
+                     doxygen,
+                     python3-pytest,
+                     rust-gdb,
 Standards-Version: 4.7.0
 Rules-Requires-Root: no
 Vcs-Git: https://salsa.debian.org/clamav-team/clamav.git
diff --minimal -Nru clamav-1.4.1+dfsg/debian/rules clamav-1.4.1+dfsg/debian/rules
--- clamav-1.4.1+dfsg/debian/rules	2024-10-03 10:41:55.000000000 +0200
+++ clamav-1.4.1+dfsg/debian/rules	2024-12-04 08:26:22.000000000 +0100
@@ -33,7 +33,24 @@
 #else
    SYSTEM_LLVM := -DBYTECODE_RUNTIME=interpreter
 #endif
-#
+
+DO_PACKAGES := $(shell dh_listpackages)
+ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
+	ENABLE_TESTS = ON
+else
+ifeq (,$(filter clamav-testfiles,$(DO_PACKAGES)))
+	ENABLE_TESTS = OFF
+else
+	ENABLE_TESTS = ON
+endif
+endif
+
+ifeq (,$(filter clamav-docs,$(DO_PACKAGES)))
+	ENABLE_DOXYGEN = OFF
+else
+	ENABLE_DOXYGEN = ON
+endif
+
 # Enable debug code, if nostrip was given.
 ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
 	INSTALL_PROGRAM += -s
@@ -47,7 +64,8 @@
 #	* set various paths
 CONFIG := -DENABLE_EXTERNAL_MSPACK=ON -DENABLE_UNRAR=OFF -DENABLE_EXTERNAL_TOMFASTMATH=ON \
 	-DAPP_CONFIG_DIRECTORY=/etc/clamav -DDATABASE_DIRECTORY=/var/lib/clamav \
-	-DENABLE_DOXYGEN=ON -DSYSTEMD_UNIT_DIR=/lib/systemd/system -DDO_NOT_SET_RPATH=ON \
+	-DENABLE_DOXYGEN=$(ENABLE_DOXYGEN) -DSYSTEMD_UNIT_DIR=/lib/systemd/system -DDO_NOT_SET_RPATH=ON \
+	-DENABLE_TESTS=$(ENABLE_TESTS) \
 	$(SYSTEM_LLVM) \
 	$(DEBUG_OPTS)
 


More information about the Pkg-clamav-devel mailing list