Bug 657498

Summary: qt-creator/QmlDesigner requires qt private headers
Product: [Fedora] Fedora Reporter: Stefan Becker <chemobejk>
Component: qtAssignee: Than Ngo <than>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: 14CC: axel.thimm, han.holl, itamar, jreznik, kevin, ltinkl, rdieter, rnovacek, smparrish, than, thomasj
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: phonon-4.5.0-2.fc15 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 657752 (view as bug list) Environment:
Last Closed: 2011-04-18 04:07:23 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 657752    

Description Stefan Becker 2010-11-26 09:38:27 UTC
Description of problem:

qt-creator is build without the QmlDesigner plugin. I guess this requires a SPEC update (from the build log):

Project WARNING: QmlDesigner plugin has been disabled.
Project WARNING: The plugin depends on private headers from QtDeclarative module.
Project WARNING: To enable it, pass 'QT_PRIVATE_HEADERS=$QTDIR/include' to qmake, where $QTDIR is the source directory of qt.

Version-Release number of selected component (if applicable):
qt-creator-2.1.0-2.beta2.fc14

Comment 1 Stefan Becker 2010-11-26 09:57:48 UTC
Minimum requirement would be a rebuild against qt-4.7.1.

It also checks for this file:

  $${QT_PRIVATE_HEADERS}/QtDeclarative/private/qdeclarativecontext_p.h

I haven't found this one yet in the qt-4.7.1 rpms, maybe they also need an update?

Comment 2 Rex Dieter 2010-11-26 14:56:57 UTC
for qt-4.7.1,
https://admin.fedoraproject.org/updates/qt-4.7.1-3.fc14

Comment 3 han.holl 2010-11-26 20:43:40 UTC
I installed the above mentioned upgrade, but the Design button in qt-creator
is still greyed out.
Double clicking on a .qml file does nothing.

I take it that these symptoms are a consequence of the bug of the original poster.

Neither did I find a qt-creator upgrade in upgrades testing

Comment 4 Stefan Becker 2010-11-26 23:45:59 UTC
qt-creator needs to be recompiled against qt-4.7.1. But that alone is not enough, it needs private Qt header files. The qmake configuration checks for (typed from my head, please check the .pro file in qt-creator):

      $QT_DIR/include/QmlDeclarative/qmldeclarativecontext_p.h

Those would need to be added to qt-devel in order to be able to compile the QmlDesigner plugin in qt-creator. It might make sense to put them into a separate RPM just for qt-creator build requirements, maybe qt-qmldeclarative-devel?

Comment 5 Kevin Kofler 2010-11-27 11:10:16 UTC
More like qt-devel-private, to make it clear that those are not public APIs.

Comment 6 Rex Dieter 2010-11-27 17:23:58 UTC
adjusting summary

Comment 7 Stefan Becker 2010-11-29 10:16:45 UTC
After updating to qt-4.7.1-3 I extracted the private headers from the SRPM and re-tried the qt-creator build. Unfortunately the Qt private headers use

        #include "../../../src/...."

i.e. they include also private source code headers.

Here is the complete list of directories/headers I had to extract from the Qt 4.7.1 source code to get qt-creator/QmlDesigner compiled

   include/QtCore/private
   include/QtDeclarative/private
   include/QtGui/private
   include/QtScript/private
   src/corelib/animation/qabstractanimation_p.h
   src/corelib/animation/qvariantanimation_p.h
   src/corelib/kernel/qobject_p.h
   src/declarative/*/*_p.h
   src/gui/*/*_p.h
   src/script/bridge/qscriptdeclarativeclass_p.h

(this list might be to exhaustive)

I guess qt-devel-private would need to include

   $QTDIR/include/*/private
   $QTDIR/src/*/*/*_p.h

IMHO in the current state it doesn't make sense to have qt-creator as separate RPM build, but should be integrated into the qt RPM build instead.

Comment 8 Stefan Becker 2010-11-30 10:31:43 UTC
I raised the problem on the qt-creator mailing list. Here is their answer:

<http://lists.trolltech.com/pipermail/qt-creator/2010-November/008157.html>

"Meanwhile you have to compile creator against a self-compiled Qt (which 
must also be the the exact same Qt version it will run with), and 
specify the location of the private headers in the Qt source tree e.g. 
via `qmake -r "QT_PRIVATE_HEADERS=$QTDIR/include"

So the suggestion would be to build qt-creator with qt and generate it as a subpackage, at least for qt 4.7.x.

Comment 10 Fedora Update System 2011-04-08 19:56:48 UTC
phonon-4.5.0-2.fc15,qt-4.7.2-8.fc15 has been submitted as an update for Fedora 15.
https://admin.fedoraproject.org/updates/phonon-4.5.0-2.fc15,qt-4.7.2-8.fc15

Comment 11 Fedora Update System 2011-04-13 04:52:56 UTC
Package phonon-4.5.0-2.fc15, qt-4.7.2-8.fc15, phonon-backend-gstreamer-4.5.0-1.fc15:
* should fix your issue,
* was pushed to the Fedora 15 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing phonon-4.5.0-2.fc15 qt-4.7.2-8.fc15 phonon-backend-gstreamer-4.5.0-1.fc15'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/phonon-backend-gstreamer-4.5.0-1.fc15,phonon-4.5.0-2.fc15,qt-4.7.2-8.fc15
then log in and leave karma (feedback).

Comment 12 Fedora Update System 2011-04-18 04:07:17 UTC
phonon-4.5.0-2.fc15, qt-4.7.2-8.fc15, phonon-backend-gstreamer-4.5.0-1.fc15 has been pushed to the Fedora 15 stable repository.  If problems still persist, please make note of it in this bug report.