[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: