Qt5 i386 build problem on Launchpad

Asked by Warren

I'm the author of LinSSID, and I'm trying to build the next version, 2.3, on Launchpad. The amd64 build goes perfectly. The i386 version fails. The cause of the failure, according to the build log, is the build script looking to execute qmake from /usr/lib/x86_64-linux-gnu/qt5/bin/ instead of from /usr/lib/i386-linux-gnu/qt5/bin/ .

Here's where it gets strange. First, the *exact* build structure worked perfectly a month ago when I built version 2.2. The build files for qmake (.pro, .pri) were not touched. Only a bit of c++ source was changed. Stranger still, when I run the build for i386 on a local pbuilder environment it works perfectly. It only fails buillding i386 on Launchpad.

From the build log, it seems the build script executes the first qmake call, on the top level .pro file, using the i386 path. That file sends the script to a sub-directory with another .pro file which is, again, called with qmake from the i386 path. When that file sends the script to a third-level subdirectory with a .pro file, it tries to execute qmake from the x86_64 path instead of the i386 path – and there it dies.

Why the build script is looking in the x86_64 path at that point is the mystery. It's like something somewhere changed the PATH environment variable in the chroot environment. I've looked all through the code and I can't find anything that would do that. And, again, it's the same build code that ran just fine a month ago.

I tried another version, including qtchooser in the build dependencies but it had no effect.

The build log is here: https://launchpad.net/~wseverin/+archive/ppa/+build/6160008/+files/buildlog_ubuntu-trusty-i386.linssid_2.3-2_FAILEDTOBUILD.txt.gz

I've already shot a whole day on this and I'm no closer to a solution. Any help will be greatly appreciated.

Thanks,
-Warren

Question information

Language:
English Edit question
Status:
Solved
For:
Ubuntu Edit question
Assignee:
No assignee Edit question
Solved by:
Manfred Hampl
Solved:
Last query:
Last reply:
Revision history for this message
Best Manfred Hampl (m-hampl) said :
#1

Maybe deleting the Makefile in the subdirectory .../qwt-lib/src helps, as it then probably gets re-created with the correct path to qmake.

It seems that there is already a new version of the original source on http://sourceforge.net/projects/linssid/files/LinSSID_2.3/linssid_2.3.orig.tar.gz/download without the (wrong) Makefile

Revision history for this message
Warren (wseverin) said :
#2

Version 2.3-1 had two makefiles in it that I'd forgotten to remove. I removed the makefiles and resubmitted as version 2.3-2, also adding qtchooser as a build depend. Version 2.3-2 would not build, either. Both attempts failed in the identical place.

Revision history for this message
Warren (wseverin) said :
#3

I inspected the changes file for version 2.3-2 (created by debuild -S) and could find no place where the two makefiles that were in the .orig.tar.gz were to be removed. Huh. So I created another version 2.4-1 so I could upload a fresh .orig.tar.gz minus those problem makefiles. Uploaded to Launchpad and it built beautifully. Just guessing here, but it looks like the debuild process works for source changes within files but does not account for complete removal of files from the original.

Revision history for this message
Warren (wseverin) said :
#4

Thanks Manfred Hampl, that solved my question.

Revision history for this message
Manfred Hampl (m-hampl) said :
#5

In the log of the failed build I see the lines

/usr/bin/make -C . -k distclean
make[1]: Entering directory `/build/buildd/linssid-2.3'
make[1]: *** No rule to make target `distclean'.

So maybe there was once a Makefile in the to directory to care for deletion of the Makefile files in the subdirectories, that somehow disappeared?

In any case, happy to see that you found a workaround.