Bug#876131: qtbase-opensource-src FTCBFS: uses the build architecture toolchain
Hi Helmut!
On 20/01/16 07:41, Helmut Grohne wrote:
> Hi,
>
> On Mon, Sep 18, 2017 at 05:04:40PM -0300, Lisandro Damián Nicanor Pérez Meyer wrote:
> > The only way I could accept that if we could build-depend on a
> > specific version (the same version we are trying to compile).
> >
> > Helmut told me that's not possible, and I know from experience that
> > having a window opened to build qt with an oder qmake it's calling for
> > big troubles.
>
> We arrived at a compromise: Turn the check into a build-time check.
> Rather than having dpkg-checkbuilddeps verify the property, we can have
> debian/rules check the version.
Totally agreed.
> I also updated the patch to the current version.
>
> Limitations:
> * Only works for arm64 and armel since no other architectures have
> matching mkspecs
I'm wondering why we don't use linux-g++ too, as it has been happening on all other archs.
> * Fails when it encounters mysql_config. I didn't figure out yet how to
> make it use pkg-config mysqlclient instead, but that's what needs to
> happen.
>
> Helmut
ACK, topic to investigate then.
I've added the following into experimental as part of a not yet released change (but I have to do it soon rather than later):
> diff --minimal -Nru qtbase-opensource-src-5.12.5+dfsg/debian/changelog qtbase-opensource-src-5.12.5+dfsg/debian/changelog
> --- qtbase-opensource-src-5.12.5+dfsg/debian/changelog 2019-12-31 12:19:15.000000000 +0100
> +++ qtbase-opensource-src-5.12.5+dfsg/debian/changelog 2020-01-16 16:27:50.000000000 +0100
> @@ -1,3 +1,13 @@
> +qtbase-opensource-src (5.12.5+dfsg-5.1) UNRELEASED; urgency=medium
> +
> + * Non-maintainer upload.
Should we really close the bug here? I would keep it open until we make it work.
> + * Improve cross building: (Closes: #876131)
> + + Pass --external-hostbindir to use the native qmake.
> + + Pass a cross platform_arg.
> + + Verify that the qmake self-dependency exactly matches the version.
> +
> + -- Helmut Grohne <helmut@subdivi.de> Thu, 16 Jan 2020 16:27:50 +0100
> +
> qtbase-opensource-src (5.12.5+dfsg-5) unstable; urgency=medium
[snip]
Here:
> -ifeq ($(DEB_HOST_ARCH_OS),linux)
> - platform_arg = linux-g++
> -else ifeq ($(DEB_HOST_ARCH_OS),hurd)
> - platform_arg = hurd-g++
> -else ifeq ($(DEB_HOST_ARCH_OS),kfreebsd)
> - platform_arg = gnukfreebsd-g++
> -else
> - $(error Unknown qmake mkspec for $(DEB_HOST_ARCH_OS))
> +mkspec_osmap_kfreebsd = gnukfreebsd
> +platform_os = $(or $(mkspec_osmap_$(DEB_HOST_ARCH_OS)),$(DEB_HOST_ARCH_OS))
> +platform_arg = $(platform_os)-g++
> +
> +ifneq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
> +platform_arg = $(platform_os)-$(DEB_HOST_GNU_CPU)-$(DEB_HOST_ARCH_LIBC)$(filter-out base,$(DEB_HOST_ARCH_ABI))-g++
> +endif
> +ifneq (,$(filter cross,$(DEB_BUILD_PROFILES)))
> +extra_configure_opts += -external-hostbindir /usr/lib/qt5/bin
> endif
We have always used linux-g++ on linux, so maybe we can keep that?
> ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
> @@ -72,6 +73,9 @@
> dh $@ --with pkgkde_symbolshelper
>
> override_dh_auto_configure:
Would the following comment be ok?
# Check we are cross building with the exact same Qt version.
> +ifneq (,$(filter cross,$(DEB_BUILD_PROFILES)))
> + test "`dpkg-query -f '$${Version}' -W qt5-qmake-bin`" = "$(DEB_VERSION)"
> +endif
Cheers, Lisandro.
Reply to: