Source: apache2 Version: 2.4.37-1 Tags: patch User: helm...@debian.org Usertags: rebootstrap
apache2 fails to cross build from source. Let me explain the individual subproblems. * The build dependency on the host architecture perl conflicts with the essential build architecture perl. It turns out, apache2 wants to run perl during build, so it actually needs the build architecture perl. Annotating the dependency with :any fixes that. * ./configure fails finding .pc files, because it uses the build architecture pkg-config. It should be using AC_PATH_TOOL (or better PKG_PROG_PKG_CONFIG) rather than AC_PATH_PROG. * Fixing configure.ac does not influence the build as ./configure is not built from source. dh-autoreconf fixes that. * Finally, the build fails running ./server/gen_test_char. It should be built with the build architecture compiler, but the build system is incapable of doing so. The mailing list suggests just compiling and running that file ahead of the actual build. After applying the attached patch, apache2 cross builds successfully. Please consider using it. Helmut
diff --minimal -Nru apache2-2.4.37/debian/changelog apache2-2.4.37/debian/changelog --- apache2-2.4.37/debian/changelog 2018-11-03 14:26:31.000000000 +0100 +++ apache2-2.4.37/debian/changelog 2018-11-06 20:19:31.000000000 +0100 @@ -1,3 +1,13 @@ +apache2 (2.4.37-1.1) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * Fix FTCBFS: (Closes: #-1) + + Annotate perl build dependency with :any. + + cross.patch: Use AC_PATH_TOOL to find pkg-config. + + Generate server/test_char.h ahead of the build + + -- Helmut Grohne <hel...@subdivi.de> Tue, 06 Nov 2018 20:19:31 +0100 + apache2 (2.4.37-1) unstable; urgency=medium * New upstream version diff --minimal -Nru apache2-2.4.37/debian/control apache2-2.4.37/debian/control --- apache2-2.4.37/debian/control 2018-11-03 12:34:33.000000000 +0100 +++ apache2-2.4.37/debian/control 2018-11-06 20:19:31.000000000 +0100 @@ -6,6 +6,7 @@ Arno Töll <a...@debian.org>, Ondřej Surý <ond...@debian.org> Build-Depends: debhelper (>= 9.20160709~), + dh-autoreconf, dpkg-dev (>= 1.16.1~), gawk | awk, libapr1-dev (>= 1.6.0), @@ -17,7 +18,7 @@ libssl-dev (>= 1.1.1), libxml2-dev, lsb-release, - perl, + perl:any, zlib1g-dev, libcurl4-openssl-dev | libcurl4-dev, libjansson-dev diff --minimal -Nru apache2-2.4.37/debian/patches/cross.patch apache2-2.4.37/debian/patches/cross.patch --- apache2-2.4.37/debian/patches/cross.patch 1970-01-01 01:00:00.000000000 +0100 +++ apache2-2.4.37/debian/patches/cross.patch 2018-11-06 20:19:31.000000000 +0100 @@ -0,0 +1,11 @@ +--- apache2-2.4.37.orig/configure.in ++++ apache2-2.4.37/configure.in +@@ -370,7 +370,7 @@ + dnl ## Check for programs + + AC_PATH_PROG(RM, rm) +-AC_PATH_PROG(PKGCONFIG, pkg-config) ++AC_PATH_TOOL(PKGCONFIG, pkg-config) + AC_PATH_PROG(RSYNC, rsync) + AC_PROG_AWK + AC_PROG_LN_S diff --minimal -Nru apache2-2.4.37/debian/patches/series apache2-2.4.37/debian/patches/series --- apache2-2.4.37/debian/patches/series 2018-11-03 14:26:31.000000000 +0100 +++ apache2-2.4.37/debian/patches/series 2018-11-06 20:19:31.000000000 +0100 @@ -8,3 +8,4 @@ # This patch is applied manually #suexec-custom.patch setenvifexpr.diff +cross.patch diff --minimal -Nru apache2-2.4.37/debian/rules apache2-2.4.37/debian/rules --- apache2-2.4.37/debian/rules 2018-11-03 12:34:33.000000000 +0100 +++ apache2-2.4.37/debian/rules 2018-11-06 20:19:31.000000000 +0100 @@ -9,6 +9,8 @@ export DEB_BUILD_MAINT_OPTIONS=hardening=+bindnow include /usr/share/dpkg/buildflags.mk include /usr/share/dpkg/architecture.mk +-include /usr/share/dpkg/buildtools.mk +CC_FOR_BUILD ?= cc LSB_RELEASE := $(shell lsb_release -i -s) SERVER_VERSION := $(shell dpkg-parsechangelog | perl -ne 'print $$1 if m/Version:\s*([\d\.]+)/') @@ -100,7 +102,7 @@ touch $@ clean build build-arch build-indep binary binary-arch binary-indep: %: - dh $@ --parallel --with systemd + dh $@ --parallel --with systemd --with=autoreconf override_dh_auto_configure: configure-stamp configure-stamp: prebuild-checks-stamp support/suexec-custom.c @@ -118,6 +120,11 @@ --enable-mods-static="unixd logio watchdog version" \ CFLAGS="$(AP2_CFLAGS)" CPPFLAGS="$(AP2_CPPFLAGS)" LDFLAGS="$(AP2_LDFLAGS)" \ LTFLAGS="$(AP2_LTFLAGS)" SHELL=/bin/bash +ifneq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH)) + touch server/gen_test_char.lo + $(CC_FOR_BUILD) -DCROSS_COMPILE server/gen_test_char.c -o server/gen_test_char + ./server/gen_test_char > server/test_char.h +endif touch $@ debian/config-dir/apache2.conf: debian/config-dir/apache2.conf.in