Bug 657498 - qt-creator/QmlDesigner requires qt private headers
Summary: qt-creator/QmlDesigner requires qt private headers
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: qt
Version: 14
Hardware: Unspecified
OS: Unspecified
low
medium
Target Milestone: ---
Assignee: Than Ngo
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 657752
TreeView+ depends on / blocked
 
Reported: 2010-11-26 09:38 UTC by Stefan Becker
Modified: 2011-04-18 04:07 UTC (History)
11 users (show)

Fixed In Version: phonon-4.5.0-2.fc15
Doc Type: Bug Fix
Doc Text:
Clone Of:
: 657752 (view as bug list)
Environment:
Last Closed: 2011-04-18 04:07:23 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

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.


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