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

Bug#876131: qtbase-opensource-src FTCBFS: uses the build architecture toolchain



Hi Lisandro,

On Thu, Jan 16, 2020 at 04:07:24PM -0300, Lisandro Damián Nicanor Pérez Meyer wrote:
> > 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.

I can explain this. Please compare the relevant mkspecs:

https://sources.debian.org/src/qtbase-opensource-src/5.12.5+dfsg-5/mkspecs/linux-g++/qmake.conf/
https://sources.debian.org/src/qtbase-opensource-src/5.12.5+dfsg-5/mkspecs/linux-aarch64-gnu-g++/qmake.conf/

You'll quickly observe that they look much the same with one key
difference. The arm64 one has all the tools prefixed with the GNU
triplet. And that's precisely the property we need here. In principle,
could mechanically generate a similar mkspec for any other architecture.
It is much like a CMake toolchain file or a meson toolchain file. We
need it to tell QT which architecture to build for.

Possibly we could patch a new linux-debian-g++ mkspec that sets up the
variables based on the dpkg-architecture environment variables. If we go
that route, make sure not to install that into a binary package. Prior
art: linux-oe-g++
(https://github.com/meta-qt5/meta-qt5/wiki/Building-with-OE).

> Should we really close the bug here? I would keep it open until we make it work.

I tend to use Debian bugs as patch tracking ids for getting changes into
packages. We could file FTCBFS bugs for any package that doesn't cross
build, but I wouldn't find that useful. If you think there is something
actionable left, I don't mind leaving it open. Otherwise I prefer
closing it.

> 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

Yes, though in my book the comment just explains the code. I'd rather
write down the intention:

# Refuse building with a qmake whose version differs from the package.

Helmut


Reply to: