Bug 299577 - qmake check fails in custom build environment
Summary: qmake check fails in custom build environment
Status: RESOLVED FIXED
Alias: None
Product: kdesrc-build
Classification: Developer tools
Component: general (show other bugs)
Version: unspecified
Platform: unspecified Linux
: NOR normal
Target Milestone: ---
Assignee: Michael Pyne
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-05-07 18:24 UTC by Gregor Tätzner
Modified: 2012-05-22 23:11 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In: 1.15.1


Attachments
output of kdesrc-build --debug --pretend --no-async qt (9.97 KB, text/plain)
2012-05-08 17:46 UTC, Gregor Tätzner
Details
kdesrc-build debug (6.04 KB, text/x-log)
2012-05-09 17:30 UTC, Gregor Tätzner
Details
kdesrc-build regular crash (1.02 KB, text/x-log)
2012-05-09 17:31 UTC, Gregor Tätzner
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Gregor Tätzner 2012-05-07 18:24:43 UTC
Hi, I'm trying out the new kdesrc-build 1.15 release on fedora in my kde build environment but the tool just complains about missing qmake. Of course it's installed. If I skip the check with KDESRC_BUILD_IGNORE_MISSING_PROGRAMS=1 the build job completes fine. version 1.14.1 is working without problems on the same setup.

Reproducible: Always

Steps to Reproduce:
1. run kdesrc-build in kde build env



.build-config:

# KDE4 Build Environment configuration script
#
# To configure your build environment set LIB_SUFFIX, BASEDIR, BUILDNAME and
# QTDIR as appropriate
#
# The default values provided are for a master/trunk/unstable build in your own
# user directory using your system Qt
 
# Uncomment if building on a 64 bit system
export LIB_SUFFIX=64
 
# Set where your base KDE development folder is located, usually ~/kde
export BASEDIR=~/projects/kdesrc
 
# Give the build a name, e.g. master, 4.6, debug, etc
export BUILDNAME=master
 
# Set up which Qt to use
# Use the system Qt, adjust path as required
export QTDIR=/usr
# Uncomment to use your own build of qt-kde
#export QTDIR=$BASEDIR/inst/master/qt-kde
#export PATH=$QTDIR/bin:$PATH
#export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
#export PKG_CONFIG_PATH=$QTDIR/lib/pkgconfig:$PKG_CONFIG_PATH
 
# Set up the KDE paths
export KDE_SRC=$BASEDIR/src
export KDE_BUILD=$BASEDIR/build
export KDEDIR=$BASEDIR/inst
export KDEDIRS=$KDEDIR
export KDEHOME=$BASEDIR/home/.$BUILDNAME
export KDETMP=/tmp/$BUILDNAME-$USER
export KDEVARTMP=/var/tmp/$BUILDNAME-$USER
mkdir -p $KDETMP
mkdir -p $KDEVARTMP
 
# Add the KDE plugins to the Qt plugins path
export QT_PLUGIN_PATH=$KDEDIR/lib/kde4/plugins
 
# Do we really need these?
export KDE4_DBUS_INTERFACES_DIR=$KDEDIR/share/dbus-1/interfaces
export PYTHON_SITE_PACKAGES_DIR=$KDEDIR/lib/python2.6/site-packages/PyKDE4
 
# Export the standard paths to include KDE
export PATH=$KDEDIR/bin:$PATH
export LD_LIBRARY_PATH=$KDEDIR/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=$KDEDIR/lib/pkgconfig:$PKG_CONFIG_PATH
 
# Export the CMake paths so it searches for KDE in the right places
export CMAKE_PREFIX_PATH=$KDEDIR:$CMAKE_PREFIX_PATH
export CMAKE_LIBRARY_PATH=$KDEDIR/lib:$CMAKE_LIBRARY_PATH
export CMAKE_INCLUDE_PATH=$KDEDIR/include:$CMAKE_INCLUDE_PATH
 
# Unset XDG to avoid seeing KDE files from /usr
# If unset then you must install shared-mime-info
unset XDG_DATA_DIRS
unset XDG_CONFIG_DIRS
 
# Uncomment if you are using Icecream for distributed compiling
#export PATH=/opt/icecream/bin:$PATH
 
# Report what the environment is set to
echo
echo "*** Configured KDE Build Environment " $BUILDNAME " ***"
echo
echo "QTDIR=" $QTDIR
echo "KDEDIR=" $KDEDIR
echo "PATH=" $PATH
echo
Comment 1 Michael Pyne 2012-05-08 01:54:04 UTC
Thanks for reporting the bug.

qmake is required even for KDE+cmake (or at least AFAIK, my understanding is qmake is used to query the Qt install parameters).

The routine that looks for qmake emulates the functionality of which(1): that is, it searches $PATH, treating is as a ':'-separated array of paths. It seems that for whatever reason it's not finding a qmake in that process.

Please run "which qmake" from your KDE build environment to query where qmake is supposed to be found.

Also please run "kdesrc-build --debug --pretend --no-async qt" so we can look at what kdesrc-build thinks PATH is supposed to be when starting the build. (You'll see uninitialized variable warnings, those are fixed in git master).

And obviously please save the output for both and post to this bug.
Comment 2 Gregor Tätzner 2012-05-08 17:45:56 UTC
thanks for your quick response!

kde build env:
which qmake-qt4
/usr/bin/qmake-qt4 *

*yes, it's qmake-qt4 on fedora (so you can install qmake for qt3 in parallel)
Comment 3 Gregor Tätzner 2012-05-08 17:46:44 UTC
Created attachment 70960 [details]
output of kdesrc-build --debug --pretend --no-async qt
Comment 4 Michael Pyne 2012-05-08 23:40:32 UTC
> *yes, it's qmake-qt4 on fedora (so you can install qmake for qt3 in parallel)

facepalm.jpg

Well, that explains what the failure is at least. kdesrc-build doesn't search for qmake-qt4, it only searches for qmake. The KDE build system has the Fedora-adapted check and so it works anyways when you force it to proceed.

I'll see about what the easiest way is to fix...
Comment 5 Michael Pyne 2012-05-09 00:11:25 UTC
Git commit 9b3a8547116047198d7a751bb630ab5741096aaf by Michael Pyne.
Committed on 09/05/2012 at 02:02.
Pushed by mpyne into branch 'master'.

Fix check for qmake.

qmake isn't always named 'qmake'. kdesrc-build searches for qmake before
it runs to avoid having to take a long time to fail to build dozens of
modules, but should search for the same names looked for by the FindQt4
cmake check.

In addition to correcting the check, I've also fixed the usage of
'qmake' in the QMakeBuildSystem. Thanks for the prompt bug report! (And
please re-open if this fails for you, it's a bit more difficult for me
to thoroughly test)
FIXED-IN:1.15.1

M  +23   -2    kdesrc-build

http://commits.kde.org/kdesrc-build/9b3a8547116047198d7a751bb630ab5741096aaf
Comment 6 Gregor Tätzner 2012-05-09 17:29:45 UTC
I think your last commit caused a new issue. Now if I make a regular kdesrc run it just crashes.

I'm on kdesrc master now, sample config

When you are online? Maybe we can do a debug session in IRC together?
Comment 7 Gregor Tätzner 2012-05-09 17:30:34 UTC
Created attachment 70980 [details]
kdesrc-build debug
Comment 8 Gregor Tätzner 2012-05-09 17:31:14 UTC
Created attachment 70981 [details]
kdesrc-build regular crash
Comment 9 Michael Pyne 2012-05-09 21:56:15 UTC
Online now, mpyne in #kde-devel, freenode IRC. Typically I am online 2200 UTC - 0200 UTC.
Comment 10 Michael Pyne 2012-05-09 22:00:08 UTC
Git commit a783cc12b23eca5cc4a8f51a1d01fed614e69d81 by Michael Pyne.
Committed on 09/05/2012 at 23:58.
Pushed by mpyne into branch 'master'.

absPathToExecutable is not in ksb::Util, fix call.

I had thought I had already moved absPathToExecutable into ksb::Util,
but as it turns out I had not done so quite yet.

This caused my bugfix for bug 299577 to instead cause a crash, sorry
about that. :(

M  +1    -1    kdesrc-build

http://commits.kde.org/kdesrc-build/a783cc12b23eca5cc4a8f51a1d01fed614e69d81
Comment 11 Gregor Tätzner 2012-05-10 09:13:55 UTC
On Wednesday 09 May 2012 22:00:08 you wrote:
> --- Comment #10 from Michael Pyne <mpyne@kde.org> ---
> Git commit a783cc12b23eca5cc4a8f51a1d01fed614e69d81 by Michael Pyne.
> Committed on 09/05/2012 at 23:58.
> Pushed by mpyne into branch 'master'.
> 
> absPathToExecutable is not in ksb::Util, fix call.
> 
> I had thought I had already moved absPathToExecutable into ksb::Util,
> but as it turns out I had not done so quite yet.
> 
> This caused my bugfix for bug 299577 to instead cause a crash, sorry
> about that. :(
> 
> M  +1    -1    kdesrc-build
> 
> http://commits.kde.org/kdesrc-build/a783cc12b23eca5cc4a8f51a1d01fed614e69d81

yay, you got it :) When 1.15.1 is released I will update my fedora package. 
Thanks!
Comment 12 Michael Pyne 2012-05-22 01:38:48 UTC
Hmm, sorry Gregor, I just noticed I hadn't actually tagged 1.15.1 yet!

There's some intermediate changes on git-master now so I've made a "branch-1.15" and tagged a 1.15.1 from that. git-shortlog is:

Michael Pyne (6):
      Fix uninit warning in --debug.
      Fix check for qmake.
      absPathToExecutable is not in ksb::Util, fix call.
      Fix remove-after-install.
      Run test suite from temporary test directory.
      Bump version to 1.15.1

The cryptographically-signed xz-tarball should hopefully land overnight. The release page will be at http://kdesrc-build.kde.org/releases/kdesrc-build-1.15.1.php where you can download the tarball from.
Comment 13 Gregor Tätzner 2012-05-22 16:47:40 UTC
On Tuesday 22 May 2012 01:38:48 you wrote:
> https://bugs.kde.org/show_bug.cgi?id=299577
> 
> --- Comment #12 from Michael Pyne <mpyne@kde.org> ---
> The cryptographically-signed xz-tarball should hopefully land overnight. The
> release page will be at
> http://kdesrc-build.kde.org/releases/kdesrc-build-1.15.1.php where you can
> download the tarball from.

Great! Though the download link at http://kdesrc-
build.kde.org/releases/kdesrc-build-1.15.1.php is broken. The source archive 
is already uploaded.

The file suffix of the link is wrong, too 
"Download it: kdesrc-build-1.15.1.tar.bz2 - Details (incl. PGP signature)"
Comment 14 Michael Pyne 2012-05-22 23:11:23 UTC
Thanks, both issues should be fixed now (or at least when SVN pushes out to the HTTP root)