[Debian-med-packaging] Bug#989942: libdeflate FTCBFS: multiple reasons
Helmut Grohne
helmut at subdivi.de
Wed Jun 16 12:22:07 BST 2021
Source: libdeflate
Version: 1.7-1
Tags: patch
User: debian-cross at lists.debian.org
Usertags: ftcbfs
libdeflate fails to cross build from source for two reasons. First of
all, it does not pass any cross tools to make and thus builds for the
build architecture failing to find -lz, which is only installed for the
host architecture. The easiest way to fix this is using dh_auto_build.
A bigger issue is the use of profile guided optimization. This really is
unsupportable in cross builds as the premise is that we cannot run the
code. I propose automatically disabling pgo when performing a cross
build. The results will not be the same as native builds, but at least,
you get a working package.
Please consider applying the attached patch.
Helmut
-------------- next part --------------
diff --minimal -Nru libdeflate-1.7/debian/changelog libdeflate-1.7/debian/changelog
--- libdeflate-1.7/debian/changelog 2021-01-03 14:36:39.000000000 +0100
+++ libdeflate-1.7/debian/changelog 2021-06-16 12:51:19.000000000 +0200
@@ -1,3 +1,12 @@
+libdeflate (1.7-1.1) UNRELEASED; urgency=medium
+
+ * Non-maintainer upload.
+ * Fix FTCBFS: (Closes: #-1)
+ + Let dh_auto_build pass cross tools to make.
+ + Automatically skip pgo when DEB_BUILD_PROFILES contains cross.
+
+ -- Helmut Grohne <helmut at subdivi.de> Wed, 16 Jun 2021 12:51:19 +0200
+
libdeflate (1.7-1) unstable; urgency=medium
* New upstream version
diff --minimal -Nru libdeflate-1.7/debian/rules libdeflate-1.7/debian/rules
--- libdeflate-1.7/debian/rules 2021-01-03 14:32:37.000000000 +0100
+++ libdeflate-1.7/debian/rules 2021-06-16 12:51:19.000000000 +0200
@@ -7,30 +7,34 @@
%:
dh $@
+ifeq (,$(filter cross,$(DEB_BUILD_PROFILES)))
+PROFILING_FLAG = -fprofile-use
+else
+PROFILING_FLAG =
+endif
override_dh_auto_build:
- make CFLAGS="$(shell dpkg-buildflags --get CFLAGS) -fprofile-generate" \
+ifeq (,$(filter cross,$(DEB_BUILD_PROFILES)))
+ dh_auto_build -- CFLAGS="$(shell dpkg-buildflags --get CFLAGS) -fprofile-generate" \
LDFLAGS="$(shell dpkg-buildflags --get LDFLAGS) -fprofile-generate"\
CPPFLAGS="$(shell dpkg-buildflags --get CPPFLAGS)"\
- V=1 PREFIX=/usr DESTDIR=$(CURDIR)/debian/tmp -j$(shell nproc)\
- "INSTALL=install --strip-program=true"\
+ V=1 PREFIX=/usr DESTDIR=$(CURDIR)/debian/tmp \
all test_programs
for level in $(shell seq 1 12); do \
./benchmark -$${level} ./lib/deflate_compress.c > /dev/null; \
done
- make CFLAGS="$(shell dpkg-buildflags --get CFLAGS) -fprofile-use" \
- LDFLAGS="$(shell dpkg-buildflags --get LDFLAGS) -fprofile-use"\
+endif
+ dh_auto_build -- CFLAGS="$(shell dpkg-buildflags --get CFLAGS) $(PROFILING_FLAG)" \
+ LDFLAGS="$(shell dpkg-buildflags --get LDFLAGS) $(PROFILING_FLAG)"\
CPPFLAGS="$(shell dpkg-buildflags --get CPPFLAGS)"\
- V=1 PREFIX=/usr DESTDIR=$(CURDIR)/debian/tmp -j$(shell nproc)\
- "INSTALL=install --strip-program=true"\
+ V=1 PREFIX=/usr DESTDIR=$(CURDIR)/debian/tmp \
all test_programs
override_dh_auto_install:
- make CFLAGS="$(shell dpkg-buildflags --get CFLAGS) -fprofile-use" \
- LDFLAGS="$(shell dpkg-buildflags --get LDFLAGS) -fprofile-use"\
+ dh_auto_build -- CFLAGS="$(shell dpkg-buildflags --get CFLAGS) $(PROFILING_FLAG)" \
+ LDFLAGS="$(shell dpkg-buildflags --get LDFLAGS) $(PROFILING_FLAG)"\
CPPFLAGS="$(shell dpkg-buildflags --get CPPFLAGS)"\
- V=1 PREFIX=/usr DESTDIR=$(CURDIR)/debian/tmp -j$(shell nproc)\
- "INSTALL=install --strip-program=true"\
+ V=1 PREFIX=/usr DESTDIR=$(CURDIR)/debian/tmp \
install
override_dh_auto_test:
More information about the Debian-med-packaging
mailing list