Bug 657498 - qt-creator/QmlDesigner requires qt private headers
qt-creator/QmlDesigner requires qt private headers
Status: CLOSED ERRATA
Product: Fedora
Classification: Fedora
Component: qt (Show other bugs)
14
Unspecified Unspecified
low Severity medium
: ---
: ---
Assigned To: Ngo Than
Fedora Extras Quality Assurance
:
Depends On:
Blocks: 657752
  Show dependency treegraph
 
Reported: 2010-11-26 04:38 EST by Stefan Becker
Modified: 2011-04-18 00:07 EDT (History)
11 users (show)

See Also:
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 00:07:23 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Stefan Becker 2010-11-26 04:38:27 EST
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 04:57:48 EST
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 09:56:57 EST
for qt-4.7.1,
https://admin.fedoraproject.org/updates/qt-4.7.1-3.fc14
Comment 3 han.holl 2010-11-26 15:43:40 EST
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 18:45:59 EST
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 06:10:16 EST
More like qt-devel-private, to make it clear that those are not public APIs.
Comment 6 Rex Dieter 2010-11-27 12:23:58 EST
adjusting summary
Comment 7 Stefan Becker 2010-11-29 05:16:45 EST
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 05:31:43 EST
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 15:56:48 EDT
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 00:52:56 EDT
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 00:07:17 EDT
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.

Note You need to log in before you can comment on or make changes to this bug.