Merge lp:~sergiusens/phablet-extras/qtmultimedia-opensource-src-touch-5.2 into lp:~phablet-team/phablet-extras/qtmultimedia-touch

Proposed by Sergio Schvezov
Status: Needs review
Proposed branch: lp:~sergiusens/phablet-extras/qtmultimedia-opensource-src-touch-5.2
Merge into: lp:~phablet-team/phablet-extras/qtmultimedia-touch
Diff against target: 1645 lines (+1343/-63)
10 files modified
debian/changelog (+14/-0)
debian/control (+23/-21)
debian/libqt5multimedia5-touch.postrm (+1/-1)
debian/libqt5multimedia5-touch.preinst (+1/-1)
debian/libqt5multimedia5-touch.symbols (+70/-35)
debian/libqt5multimediaquick-p5-touch.postrm (+1/-1)
debian/libqt5multimediaquick-p5-touch.preinst (+1/-1)
debian/qtmultimedia5-touch-dev.install (+8/-3)
debian/rules (+1/-0)
debian/syncqt.pl (+1223/-0)
To merge this branch: bzr merge lp:~sergiusens/phablet-extras/qtmultimedia-opensource-src-touch-5.2
Reviewer Review Type Date Requested Status
Timo Jyrinki Approve
Ricardo Salveti Pending
Review via email: mp+208474@code.launchpad.net

Commit message

* Updating for 5.2 migration:
  - Depending on qt >= 5.2.1 for the ABI change
  - Updating symbols (qreal in armhf)
  - Adjusting diverts for 5.2.
  - Fixing pri files to adapt to new paths
* Fixing qtdeclarative control file
* Updating standards to 3.9.5
* Adding syncqt.pl from qtbase-opensource-src to sync headers and using in
  during configure.

Description of the change

Don't push or merge until Qt 5.2 is ready

To post a comment you must log in.
Revision history for this message
Timo Jyrinki (timo-jyrinki) wrote :

Functional testing shows this works great:
- Audio and video playback possible on device
- Installation on top of earlier Qt 5.2 upgraded device works
- Dist-upgrade from 5.0.2 continues to work, while now the qtmultimedia-touch packages don't need removal

Awesome!

review: Approve
Revision history for this message
Timo Jyrinki (timo-jyrinki) wrote :

Unmerged revisions

93. By Sergio Schvezov

* Updating for 5.2 migration:
  - Depending on qt >= 5.2.1 for the ABI change
  - Updating symbols (qreal in armhf)
  - Adjusting diverts for 5.2.
  - Fixing pri files to adapt to new paths
* Fixing qtdeclarative control file
* Updating standards to 3.9.5
* Adding syncqt.pl from qtbase-opensource-src to sync headers and using in
  during configure.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'debian/changelog'
--- debian/changelog 2014-02-06 21:08:43 +0000
+++ debian/changelog 2014-02-26 20:49:23 +0000
@@ -1,3 +1,17 @@
1qtmultimedia-opensource-src-touch (5.1.1+git20131205+8230c02-0ubuntu4) UNRELEASED; urgency=medium
2
3 * Updating for 5.2 migration:
4 - Depending on qt >= 5.2.1 for the ABI change
5 - Updating symbols (qreal in armhf)
6 - Adjusting diverts for 5.2.
7 - Fixing pri files to adapt to new paths
8 * Fixing qtdeclarative control file
9 * Updating standards to 3.9.5
10 * Adding syncqt.pl from qtbase-opensource-src to sync headers and using in
11 during configure.
12
13 -- Sergio Schvezov <sergio.schvezov@canonical.com> Wed, 26 Feb 2014 17:42:55 -0300
14
1qtmultimedia-opensource-src-touch (5.1.1+git20131205+8230c02-0ubuntu3) trusty; urgency=medium15qtmultimedia-opensource-src-touch (5.1.1+git20131205+8230c02-0ubuntu3) trusty; urgency=medium
216
3 * Fixing symbols table for libqgsttools-p1-touch.17 * Fixing symbols table for libqgsttools-p1-touch.
418
=== modified file 'debian/control'
--- debian/control 2013-10-02 23:44:09 +0000
+++ debian/control 2014-02-26 20:49:23 +0000
@@ -10,10 +10,10 @@
10 Lisandro Damián Nicanor Pérez Meyer <lisandro@debian.org>,10 Lisandro Damián Nicanor Pérez Meyer <lisandro@debian.org>,
11 Timo Jyrinki <timo@debian.org>11 Timo Jyrinki <timo@debian.org>
12Build-Depends: debhelper (>= 9.0.0),12Build-Depends: debhelper (>= 9.0.0),
13 qtbase5-dev (>= 5.0.2+dfsg1-6~),13 qtbase5-dev (>= 5.2.1+dfsg~),
14 libqt5opengl5-dev (>= 5.0.2~),14 libqt5opengl5-dev (>= 5.2.1+dfsg~),
15 qtbase5-private-dev (>= 5.0.2~),15 qtbase5-private-dev (>= 5.2.1+dfsg~),
16 qtdeclarative5-private-dev (>= 5.0.2~),16 qtdeclarative5-private-dev (>= 5.2.1~),
17 libasound2-dev [linux-any],17 libasound2-dev [linux-any],
18 libpulse-dev,18 libpulse-dev,
19 libgstreamer-plugins-base1.0-dev,19 libgstreamer-plugins-base1.0-dev,
@@ -22,8 +22,8 @@
22 zlib1g-dev,22 zlib1g-dev,
23 pkg-kde-tools,23 pkg-kde-tools,
24Build-Depends-Indep: libqt5sql5-sqlite,24Build-Depends-Indep: libqt5sql5-sqlite,
25 qttools5-dev-tools (>= 5.0.2~)25 qttools5-dev-tools (>= 5.2.1~)
26Standards-Version: 3.9.426Standards-Version: 3.9.5
27Homepage: https://qt-project.org/27Homepage: https://qt-project.org/
28Vcs-Git: git://github.com/jhodapp/qtmultimedia.git28Vcs-Git: git://github.com/jhodapp/qtmultimedia.git
29Vcs-Browser: https://github.com/jhodapp/qtmultimedia29Vcs-Browser: https://github.com/jhodapp/qtmultimedia
@@ -148,21 +148,6 @@
148 This package contains the development files needed to build Qt applications148 This package contains the development files needed to build Qt applications
149 using Qt Multimedia libraries.149 using Qt Multimedia libraries.
150150
151Package: qtmultimedia5-touch-private-dev
152Architecture: any
153Section: libdevel
154Pre-Depends: dpkg (>= 1.15.6~)
155Depends: qtmultimedia5-touch-dev (= ${binary:Version}), ${misc:Depends}
156Conflicts: qtmultimedia5-private-dev
157Description: APIs for multimedia functionality - private development files
158 Qt is a cross-platform C++ application framework. Qt's primary feature
159 is its rich set of widgets that provide standard GUI functionality.
160 .
161 This package contains the private header development files for building some
162 Qt 5 applications like Qt Creator QML Designer plugin.
163 .
164 Use at your own risk.
165
166Package: qtmultimedia5-touch-dbg151Package: qtmultimedia5-touch-dbg
167Architecture: any152Architecture: any
168Multi-Arch: same153Multi-Arch: same
@@ -177,3 +162,20 @@
177 .162 .
178 This package contains the debugging symbols for the Qt 5 Multimedia163 This package contains the debugging symbols for the Qt 5 Multimedia
179 libraries.164 libraries.
165
166Package: qtmultimedia5-touch-private-dev
167Architecture: any
168Section: libdevel
169Pre-Depends: dpkg (>= 1.15.6~)
170Depends: qtmultimedia5-touch-dev (= ${binary:Version}), ${misc:Depends}
171Conflicts: qtmultimedia5-private-dev
172Description: APIs for multimedia functionality - private development files
173 Qt is a cross-platform C++ application framework. Qt's primary feature
174 is its rich set of widgets that provide standard GUI functionality.
175 .
176 This package contains the private header development files for building some
177 Qt 5 applications like Qt Creator QML Designer plugin.
178 .
179 Use at your own risk.
180
181
180182
=== modified file 'debian/libqt5multimedia5-touch.postrm'
--- debian/libqt5multimedia5-touch.postrm 2013-09-20 20:15:35 +0000
+++ debian/libqt5multimedia5-touch.postrm 2014-02-26 20:49:23 +0000
@@ -2,7 +2,7 @@
2divert_dir="/var/lib/$pkg-diverted"2divert_dir="/var/lib/$pkg-diverted"
33
4if [ remove = "$1" -o abort-install = "$1" -o disappear = "$1" -o purge = "$1" ]; then4if [ remove = "$1" -o abort-install = "$1" -o disappear = "$1" -o purge = "$1" ]; then
5 for version in 5.0.2 5.0 5; do5 for version in 5.2.1 5.2 5; do
6 dpkg-divert --package "$pkg" --remove --rename \6 dpkg-divert --package "$pkg" --remove --rename \
7 --divert \7 --divert \
8 "$divert_dir"/libQt5Multimedia.so.$version.diverted-$pkg \8 "$divert_dir"/libQt5Multimedia.so.$version.diverted-$pkg \
99
=== modified file 'debian/libqt5multimedia5-touch.preinst'
--- debian/libqt5multimedia5-touch.preinst 2013-09-20 20:15:35 +0000
+++ debian/libqt5multimedia5-touch.preinst 2014-02-26 20:49:23 +0000
@@ -6,7 +6,7 @@
6 mkdir -p "$divert_dir"6 mkdir -p "$divert_dir"
7 fi7 fi
88
9 for version in 5.0.2 5.0 5; do9 for version in 5.2.1 5.2 5; do
10 dpkg-divert --package "$pkg" --add --rename \10 dpkg-divert --package "$pkg" --add --rename \
11 --divert \11 --divert \
12 "$divert_dir"/libQt5Multimedia.so.$version.diverted-$pkg \12 "$divert_dir"/libQt5Multimedia.so.$version.diverted-$pkg \
1313
=== modified file 'debian/libqt5multimedia5-touch.symbols'
--- debian/libqt5multimedia5-touch.symbols 2013-09-20 08:12:11 +0000
+++ debian/libqt5multimedia5-touch.symbols 2014-02-26 20:49:23 +0000
@@ -30,7 +30,8 @@
30 _ZN11QAudioInput6notifyEv@Base 5.0.230 _ZN11QAudioInput6notifyEv@Base 5.0.2
31 _ZN11QAudioInput6resumeEv@Base 5.0.231 _ZN11QAudioInput6resumeEv@Base 5.0.2
32 _ZN11QAudioInput7suspendEv@Base 5.0.232 _ZN11QAudioInput7suspendEv@Base 5.0.2
33 (subst)_ZN11QAudioInput9setVolumeE{qreal}@Base 5.0.233 _ZN11QAudioInput9setVolumeEd@Base 5.1.1+git20131205+8230c02-0ubuntu7
34#MISSING: 5.1.1+git20131205+8230c02-0ubuntu7# (subst)_ZN11QAudioInput9setVolumeE{qreal}@Base 5.0.2
34 _ZN11QAudioInputC1ERK12QAudioFormatP7QObject@Base 5.0.235 _ZN11QAudioInputC1ERK12QAudioFormatP7QObject@Base 5.0.2
35 _ZN11QAudioInputC1ERK16QAudioDeviceInfoRK12QAudioFormatP7QObject@Base 5.0.236 _ZN11QAudioInputC1ERK16QAudioDeviceInfoRK12QAudioFormatP7QObject@Base 5.0.2
36 _ZN11QAudioInputC2ERK12QAudioFormatP7QObject@Base 5.0.237 _ZN11QAudioInputC2ERK12QAudioFormatP7QObject@Base 5.0.2
@@ -155,7 +156,8 @@
155 _ZN12QAudioOutput6notifyEv@Base 5.0.2156 _ZN12QAudioOutput6notifyEv@Base 5.0.2
156 _ZN12QAudioOutput6resumeEv@Base 5.0.2157 _ZN12QAudioOutput6resumeEv@Base 5.0.2
157 _ZN12QAudioOutput7suspendEv@Base 5.0.2158 _ZN12QAudioOutput7suspendEv@Base 5.0.2
158 (subst)_ZN12QAudioOutput9setVolumeE{qreal}@Base 5.0.2159 _ZN12QAudioOutput9setVolumeEd@Base 5.1.1+git20131205+8230c02-0ubuntu7
160#MISSING: 5.1.1+git20131205+8230c02-0ubuntu7# (subst)_ZN12QAudioOutput9setVolumeE{qreal}@Base 5.0.2
159 _ZN12QAudioOutputC1ERK12QAudioFormatP7QObject@Base 5.0.2161 _ZN12QAudioOutputC1ERK12QAudioFormatP7QObject@Base 5.0.2
160 _ZN12QAudioOutputC1ERK16QAudioDeviceInfoRK12QAudioFormatP7QObject@Base 5.0.2162 _ZN12QAudioOutputC1ERK16QAudioDeviceInfoRK12QAudioFormatP7QObject@Base 5.0.2
161 _ZN12QAudioOutputC2ERK12QAudioFormatP7QObject@Base 5.0.2163 _ZN12QAudioOutputC2ERK12QAudioFormatP7QObject@Base 5.0.2
@@ -169,12 +171,17 @@
169 _ZN12QCameraFocus16staticMetaObjectE@Base 5.0.2171 _ZN12QCameraFocus16staticMetaObjectE@Base 5.0.2
170 _ZN12QCameraFocus17focusZonesChangedEv@Base 5.0.2172 _ZN12QCameraFocus17focusZonesChangedEv@Base 5.0.2
171 _ZN12QCameraFocus17setFocusPointModeENS_14FocusPointModeE@Base 5.0.2173 _ZN12QCameraFocus17setFocusPointModeENS_14FocusPointModeE@Base 5.0.2
172 (subst)_ZN12QCameraFocus18digitalZoomChangedE{qreal}@Base 5.0.2174 _ZN12QCameraFocus18digitalZoomChangedEd@Base 5.1.1+git20131205+8230c02-0ubuntu7
173 (subst)_ZN12QCameraFocus18opticalZoomChangedE{qreal}@Base 5.0.2175#MISSING: 5.1.1+git20131205+8230c02-0ubuntu7# (subst)_ZN12QCameraFocus18digitalZoomChangedE{qreal}@Base 5.0.2
176 _ZN12QCameraFocus18opticalZoomChangedEd@Base 5.1.1+git20131205+8230c02-0ubuntu7
177#MISSING: 5.1.1+git20131205+8230c02-0ubuntu7# (subst)_ZN12QCameraFocus18opticalZoomChangedE{qreal}@Base 5.0.2
174 _ZN12QCameraFocus19setCustomFocusPointERK7QPointF@Base 5.0.2178 _ZN12QCameraFocus19setCustomFocusPointERK7QPointF@Base 5.0.2
175 (subst)_ZN12QCameraFocus25maximumDigitalZoomChangedE{qreal}@Base 5.0.2179 _ZN12QCameraFocus25maximumDigitalZoomChangedEd@Base 5.1.1+git20131205+8230c02-0ubuntu7
176 (subst)_ZN12QCameraFocus25maximumOpticalZoomChangedE{qreal}@Base 5.0.2180#MISSING: 5.1.1+git20131205+8230c02-0ubuntu7# (subst)_ZN12QCameraFocus25maximumDigitalZoomChangedE{qreal}@Base 5.0.2
177 (subst)_ZN12QCameraFocus6zoomToE{qreal}{qreal}@Base 5.0.2181 _ZN12QCameraFocus25maximumOpticalZoomChangedEd@Base 5.1.1+git20131205+8230c02-0ubuntu7
182#MISSING: 5.1.1+git20131205+8230c02-0ubuntu7# (subst)_ZN12QCameraFocus25maximumOpticalZoomChangedE{qreal}@Base 5.0.2
183 _ZN12QCameraFocus6zoomToEdd@Base 5.1.1+git20131205+8230c02-0ubuntu7
184#MISSING: 5.1.1+git20131205+8230c02-0ubuntu7# (subst)_ZN12QCameraFocus6zoomToE{qreal}{qreal}@Base 5.0.2
178 _ZN12QCameraFocusC1EP7QCamera@Base 5.0.2185 _ZN12QCameraFocusC1EP7QCamera@Base 5.0.2
179 _ZN12QCameraFocusC2EP7QCamera@Base 5.0.2186 _ZN12QCameraFocusC2EP7QCamera@Base 5.0.2
180 _ZN12QCameraFocusD0Ev@Base 5.0.2187 _ZN12QCameraFocusD0Ev@Base 5.0.2
@@ -217,13 +224,15 @@
217 _ZN12QMediaPlayer15durationChangedEx@Base 5.0.2224 _ZN12QMediaPlayer15durationChangedEx@Base 5.0.2
218 _ZN12QMediaPlayer15positionChangedEx@Base 5.0.2225 _ZN12QMediaPlayer15positionChangedEx@Base 5.0.2
219 _ZN12QMediaPlayer15seekableChangedEb@Base 5.0.2226 _ZN12QMediaPlayer15seekableChangedEb@Base 5.0.2
220 (subst)_ZN12QMediaPlayer15setPlaybackRateE{qreal}@Base 5.0.2227 _ZN12QMediaPlayer15setPlaybackRateEd@Base 5.1.1+git20131205+8230c02-0ubuntu7
228#MISSING: 5.1.1+git20131205+8230c02-0ubuntu7# (subst)_ZN12QMediaPlayer15setPlaybackRateE{qreal}@Base 5.0.2
221 _ZN12QMediaPlayer16staticMetaObjectE@Base 5.0.2229 _ZN12QMediaPlayer16staticMetaObjectE@Base 5.0.2
222 _ZN12QMediaPlayer18mediaStatusChangedENS_11MediaStatusE@Base 5.0.2230 _ZN12QMediaPlayer18mediaStatusChangedENS_11MediaStatusE@Base 5.0.2
223 _ZN12QMediaPlayer18supportedMimeTypesE6QFlagsINS_4FlagEE@Base 5.0.2231 _ZN12QMediaPlayer18supportedMimeTypesE6QFlagsINS_4FlagEE@Base 5.0.2
224 _ZN12QMediaPlayer19bufferStatusChangedEi@Base 5.0.2232 _ZN12QMediaPlayer19bufferStatusChangedEi@Base 5.0.2
225 _ZN12QMediaPlayer19currentMediaChangedERK13QMediaContent@Base 5.0.2233 _ZN12QMediaPlayer19currentMediaChangedERK13QMediaContent@Base 5.0.2
226 (subst)_ZN12QMediaPlayer19playbackRateChangedE{qreal}@Base 5.0.2234 _ZN12QMediaPlayer19playbackRateChangedEd@Base 5.1.1+git20131205+8230c02-0ubuntu7
235#MISSING: 5.1.1+git20131205+8230c02-0ubuntu7# (subst)_ZN12QMediaPlayer19playbackRateChangedE{qreal}@Base 5.0.2
227 _ZN12QMediaPlayer21audioAvailableChangedEb@Base 5.0.2236 _ZN12QMediaPlayer21audioAvailableChangedEb@Base 5.0.2
228 _ZN12QMediaPlayer21videoAvailableChangedEb@Base 5.0.2237 _ZN12QMediaPlayer21videoAvailableChangedEb@Base 5.0.2
229 _ZN12QMediaPlayer24setNetworkConfigurationsERK5QListI21QNetworkConfigurationE@Base 5.0.2238 _ZN12QMediaPlayer24setNetworkConfigurationsERK5QListI21QNetworkConfigurationE@Base 5.0.2
@@ -278,7 +287,8 @@
278 _ZN12QSoundEffect4stopEv@Base 5.0.2287 _ZN12QSoundEffect4stopEv@Base 5.0.2
279 _ZN12QSoundEffect8setMutedEb@Base 5.0.2288 _ZN12QSoundEffect8setMutedEb@Base 5.0.2
280 _ZN12QSoundEffect9setSourceERK4QUrl@Base 5.0.2289 _ZN12QSoundEffect9setSourceERK4QUrl@Base 5.0.2
281 (subst)_ZN12QSoundEffect9setVolumeE{qreal}@Base 5.0.2290 _ZN12QSoundEffect9setVolumeEd@Base 5.1.1+git20131205+8230c02-0ubuntu7
291#MISSING: 5.1.1+git20131205+8230c02-0ubuntu7# (subst)_ZN12QSoundEffect9setVolumeE{qreal}@Base 5.0.2
282 _ZN12QSoundEffectC1EP7QObject@Base 5.0.2292 _ZN12QSoundEffectC1EP7QObject@Base 5.0.2
283 _ZN12QSoundEffectC2EP7QObject@Base 5.0.2293 _ZN12QSoundEffectC2EP7QObject@Base 5.0.2
284 _ZN12QSoundEffectD0Ev@Base 5.0.2294 _ZN12QSoundEffectD0Ev@Base 5.0.2
@@ -502,7 +512,8 @@
502 _ZN14QMediaRecorder12mutedChangedEb@Base 5.0.2512 _ZN14QMediaRecorder12mutedChangedEb@Base 5.0.2
503 _ZN14QMediaRecorder12stateChangedENS_5StateE@Base 5.0.2513 _ZN14QMediaRecorder12stateChangedENS_5StateE@Base 5.0.2
504 _ZN14QMediaRecorder13statusChangedENS_6StatusE@Base 5.0.2514 _ZN14QMediaRecorder13statusChangedENS_6StatusE@Base 5.0.2
505 (subst)_ZN14QMediaRecorder13volumeChangedE{qreal}@Base 5.0.2515 _ZN14QMediaRecorder13volumeChangedEd@Base 5.1.1+git20131205+8230c02-0ubuntu7
516#MISSING: 5.1.1+git20131205+8230c02-0ubuntu7# (subst)_ZN14QMediaRecorder13volumeChangedE{qreal}@Base 5.0.2
506 _ZN14QMediaRecorder14setMediaObjectEP12QMediaObject@Base 5.0.2517 _ZN14QMediaRecorder14setMediaObjectEP12QMediaObject@Base 5.0.2
507 _ZN14QMediaRecorder15durationChangedEx@Base 5.0.2518 _ZN14QMediaRecorder15durationChangedEx@Base 5.0.2
508 _ZN14QMediaRecorder15metaDataChangedERK7QStringRK8QVariant@Base 5.0.2519 _ZN14QMediaRecorder15metaDataChangedERK7QStringRK8QVariant@Base 5.0.2
@@ -523,7 +534,8 @@
523 _ZN14QMediaRecorder5pauseEv@Base 5.0.2534 _ZN14QMediaRecorder5pauseEv@Base 5.0.2
524 _ZN14QMediaRecorder6recordEv@Base 5.0.2535 _ZN14QMediaRecorder6recordEv@Base 5.0.2
525 _ZN14QMediaRecorder8setMutedEb@Base 5.0.2536 _ZN14QMediaRecorder8setMutedEb@Base 5.0.2
526 (subst)_ZN14QMediaRecorder9setVolumeE{qreal}@Base 5.0.2537 _ZN14QMediaRecorder9setVolumeEd@Base 5.1.1+git20131205+8230c02-0ubuntu7
538#MISSING: 5.1.1+git20131205+8230c02-0ubuntu7# (subst)_ZN14QMediaRecorder9setVolumeE{qreal}@Base 5.0.2
527 _ZN14QMediaRecorderC1EP12QMediaObjectP7QObject@Base 5.0.2539 _ZN14QMediaRecorderC1EP12QMediaObjectP7QObject@Base 5.0.2
528 _ZN14QMediaRecorderC1ER21QMediaRecorderPrivateP12QMediaObjectP7QObject@Base 5.0.2540 _ZN14QMediaRecorderC1ER21QMediaRecorderPrivateP12QMediaObjectP7QObject@Base 5.0.2
529 _ZN14QMediaRecorderC2EP12QMediaObjectP7QObject@Base 5.0.2541 _ZN14QMediaRecorderC2EP12QMediaObjectP7QObject@Base 5.0.2
@@ -556,23 +568,29 @@
556 _ZN15QCameraExposure11qt_metacallEN11QMetaObject4CallEiPPv@Base 5.0.2568 _ZN15QCameraExposure11qt_metacallEN11QMetaObject4CallEiPPv@Base 5.0.2
557 _ZN15QCameraExposure11qt_metacastEPKc@Base 5.0.2569 _ZN15QCameraExposure11qt_metacastEPKc@Base 5.0.2
558 _ZN15QCameraExposure12setFlashModeE6QFlagsINS_9FlashModeEE@Base 5.0.2570 _ZN15QCameraExposure12setFlashModeE6QFlagsINS_9FlashModeEE@Base 5.0.2
559 (subst)_ZN15QCameraExposure15apertureChangedE{qreal}@Base 5.0.2571 _ZN15QCameraExposure15apertureChangedEd@Base 5.1.1+git20131205+8230c02-0ubuntu7
572#MISSING: 5.1.1+git20131205+8230c02-0ubuntu7# (subst)_ZN15QCameraExposure15apertureChangedE{qreal}@Base 5.0.2
560 _ZN15QCameraExposure15setAutoApertureEv@Base 5.0.2573 _ZN15QCameraExposure15setAutoApertureEv@Base 5.0.2
561 _ZN15QCameraExposure15setExposureModeENS_12ExposureModeE@Base 5.0.2574 _ZN15QCameraExposure15setExposureModeENS_12ExposureModeE@Base 5.0.2
562 _ZN15QCameraExposure15setMeteringModeENS_12MeteringModeE@Base 5.0.2575 _ZN15QCameraExposure15setMeteringModeENS_12MeteringModeE@Base 5.0.2
563 _ZN15QCameraExposure16staticMetaObjectE@Base 5.0.2576 _ZN15QCameraExposure16staticMetaObjectE@Base 5.0.2
564 (subst)_ZN15QCameraExposure17setManualApertureE{qreal}@Base 5.0.2577 _ZN15QCameraExposure17setManualApertureEd@Base 5.1.1+git20131205+8230c02-0ubuntu7
578#MISSING: 5.1.1+git20131205+8230c02-0ubuntu7# (subst)_ZN15QCameraExposure17setManualApertureE{qreal}@Base 5.0.2
565 _ZN15QCameraExposure19setAutoShutterSpeedEv@Base 5.0.2579 _ZN15QCameraExposure19setAutoShutterSpeedEv@Base 5.0.2
566 (subst)_ZN15QCameraExposure19shutterSpeedChangedE{qreal}@Base 5.0.2580 _ZN15QCameraExposure19shutterSpeedChangedEd@Base 5.1.1+git20131205+8230c02-0ubuntu7
581#MISSING: 5.1.1+git20131205+8230c02-0ubuntu7# (subst)_ZN15QCameraExposure19shutterSpeedChangedE{qreal}@Base 5.0.2
567 _ZN15QCameraExposure20apertureRangeChangedEv@Base 5.0.2582 _ZN15QCameraExposure20apertureRangeChangedEv@Base 5.0.2
568 _ZN15QCameraExposure20setSpotMeteringPointERK7QPointF@Base 5.0.2583 _ZN15QCameraExposure20setSpotMeteringPointERK7QPointF@Base 5.0.2
569 _ZN15QCameraExposure21isoSensitivityChangedEi@Base 5.0.2584 _ZN15QCameraExposure21isoSensitivityChangedEi@Base 5.0.2
570 _ZN15QCameraExposure21setAutoIsoSensitivityEv@Base 5.0.2585 _ZN15QCameraExposure21setAutoIsoSensitivityEv@Base 5.0.2
571 (subst)_ZN15QCameraExposure21setManualShutterSpeedE{qreal}@Base 5.0.2586 _ZN15QCameraExposure21setManualShutterSpeedEd@Base 5.1.1+git20131205+8230c02-0ubuntu7
572 (subst)_ZN15QCameraExposure23setExposureCompensationE{qreal}@Base 5.0.2587#MISSING: 5.1.1+git20131205+8230c02-0ubuntu7# (subst)_ZN15QCameraExposure21setManualShutterSpeedE{qreal}@Base 5.0.2
588 _ZN15QCameraExposure23setExposureCompensationEd@Base 5.1.1+git20131205+8230c02-0ubuntu7
589#MISSING: 5.1.1+git20131205+8230c02-0ubuntu7# (subst)_ZN15QCameraExposure23setExposureCompensationE{qreal}@Base 5.0.2
573 _ZN15QCameraExposure23setManualIsoSensitivityEi@Base 5.0.2590 _ZN15QCameraExposure23setManualIsoSensitivityEi@Base 5.0.2
574 _ZN15QCameraExposure24shutterSpeedRangeChangedEv@Base 5.0.2591 _ZN15QCameraExposure24shutterSpeedRangeChangedEv@Base 5.0.2
575 (subst)_ZN15QCameraExposure27exposureCompensationChangedE{qreal}@Base 5.0.2592 _ZN15QCameraExposure27exposureCompensationChangedEd@Base 5.1.1+git20131205+8230c02-0ubuntu7
593#MISSING: 5.1.1+git20131205+8230c02-0ubuntu7# (subst)_ZN15QCameraExposure27exposureCompensationChangedE{qreal}@Base 5.0.2
576 _ZN15QCameraExposureC1EP7QCamera@Base 5.0.2594 _ZN15QCameraExposureC1EP7QCamera@Base 5.0.2
577 _ZN15QCameraExposureC2EP7QCamera@Base 5.0.2595 _ZN15QCameraExposureC2EP7QCamera@Base 5.0.2
578 _ZN15QCameraExposureD0Ev@Base 5.0.2596 _ZN15QCameraExposureD0Ev@Base 5.0.2
@@ -656,12 +674,18 @@
656 _ZN18QCameraZoomControl11qt_metacallEN11QMetaObject4CallEiPPv@Base 5.0.2674 _ZN18QCameraZoomControl11qt_metacallEN11QMetaObject4CallEiPPv@Base 5.0.2
657 _ZN18QCameraZoomControl11qt_metacastEPKc@Base 5.0.2675 _ZN18QCameraZoomControl11qt_metacastEPKc@Base 5.0.2
658 _ZN18QCameraZoomControl16staticMetaObjectE@Base 5.0.2676 _ZN18QCameraZoomControl16staticMetaObjectE@Base 5.0.2
659 (subst)_ZN18QCameraZoomControl25currentDigitalZoomChangedE{qreal}@Base 5.0.2677 _ZN18QCameraZoomControl25currentDigitalZoomChangedEd@Base 5.1.1+git20131205+8230c02-0ubuntu7
660 (subst)_ZN18QCameraZoomControl25currentOpticalZoomChangedE{qreal}@Base 5.0.2678#MISSING: 5.1.1+git20131205+8230c02-0ubuntu7# (subst)_ZN18QCameraZoomControl25currentDigitalZoomChangedE{qreal}@Base 5.0.2
661 (subst)_ZN18QCameraZoomControl25maximumDigitalZoomChangedE{qreal}@Base 5.0.2679 _ZN18QCameraZoomControl25currentOpticalZoomChangedEd@Base 5.1.1+git20131205+8230c02-0ubuntu7
662 (subst)_ZN18QCameraZoomControl25maximumOpticalZoomChangedE{qreal}@Base 5.0.2680#MISSING: 5.1.1+git20131205+8230c02-0ubuntu7# (subst)_ZN18QCameraZoomControl25currentOpticalZoomChangedE{qreal}@Base 5.0.2
663 (subst)_ZN18QCameraZoomControl27requestedDigitalZoomChangedE{qreal}@Base 5.0.2681 _ZN18QCameraZoomControl25maximumDigitalZoomChangedEd@Base 5.1.1+git20131205+8230c02-0ubuntu7
664 (subst)_ZN18QCameraZoomControl27requestedOpticalZoomChangedE{qreal}@Base 5.0.2682#MISSING: 5.1.1+git20131205+8230c02-0ubuntu7# (subst)_ZN18QCameraZoomControl25maximumDigitalZoomChangedE{qreal}@Base 5.0.2
683 _ZN18QCameraZoomControl25maximumOpticalZoomChangedEd@Base 5.1.1+git20131205+8230c02-0ubuntu7
684#MISSING: 5.1.1+git20131205+8230c02-0ubuntu7# (subst)_ZN18QCameraZoomControl25maximumOpticalZoomChangedE{qreal}@Base 5.0.2
685 _ZN18QCameraZoomControl27requestedDigitalZoomChangedEd@Base 5.1.1+git20131205+8230c02-0ubuntu7
686#MISSING: 5.1.1+git20131205+8230c02-0ubuntu7# (subst)_ZN18QCameraZoomControl27requestedDigitalZoomChangedE{qreal}@Base 5.0.2
687 _ZN18QCameraZoomControl27requestedOpticalZoomChangedEd@Base 5.1.1+git20131205+8230c02-0ubuntu7
688#MISSING: 5.1.1+git20131205+8230c02-0ubuntu7# (subst)_ZN18QCameraZoomControl27requestedOpticalZoomChangedE{qreal}@Base 5.0.2
665 _ZN18QCameraZoomControlC1EP7QObject@Base 5.0.2689 _ZN18QCameraZoomControlC1EP7QObject@Base 5.0.2
666 _ZN18QCameraZoomControlC2EP7QObject@Base 5.0.2690 _ZN18QCameraZoomControlC2EP7QObject@Base 5.0.2
667 _ZN18QCameraZoomControlD0Ev@Base 5.0.2691 _ZN18QCameraZoomControlD0Ev@Base 5.0.2
@@ -780,7 +804,8 @@
780 _ZN19QMediaPlayerControl16staticMetaObjectE@Base 5.0.2804 _ZN19QMediaPlayerControl16staticMetaObjectE@Base 5.0.2
781 _ZN19QMediaPlayerControl18mediaStatusChangedEN12QMediaPlayer11MediaStatusE@Base 5.0.2805 _ZN19QMediaPlayerControl18mediaStatusChangedEN12QMediaPlayer11MediaStatusE@Base 5.0.2
782 _ZN19QMediaPlayerControl19bufferStatusChangedEi@Base 5.0.2806 _ZN19QMediaPlayerControl19bufferStatusChangedEi@Base 5.0.2
783 (subst)_ZN19QMediaPlayerControl19playbackRateChangedE{qreal}@Base 5.0.2807 _ZN19QMediaPlayerControl19playbackRateChangedEd@Base 5.1.1+git20131205+8230c02-0ubuntu7
808#MISSING: 5.1.1+git20131205+8230c02-0ubuntu7# (subst)_ZN19QMediaPlayerControl19playbackRateChangedE{qreal}@Base 5.0.2
784 _ZN19QMediaPlayerControl21audioAvailableChangedEb@Base 5.0.2809 _ZN19QMediaPlayerControl21audioAvailableChangedEb@Base 5.0.2
785 _ZN19QMediaPlayerControl21videoAvailableChangedEb@Base 5.0.2810 _ZN19QMediaPlayerControl21videoAvailableChangedEb@Base 5.0.2
786 _ZN19QMediaPlayerControl30availablePlaybackRangesChangedERK15QMediaTimeRange@Base 5.0.2811 _ZN19QMediaPlayerControl30availablePlaybackRangesChangedERK15QMediaTimeRange@Base 5.0.2
@@ -806,7 +831,8 @@
806 _ZN19QPlaylistFileParserD2Ev@Base 5.0.2831 _ZN19QPlaylistFileParserD2Ev@Base 5.0.2
807 _ZN19QVideoSurfaceFormat11setPropertyEPKcRK8QVariant@Base 5.0.2832 _ZN19QVideoSurfaceFormat11setPropertyEPKcRK8QVariant@Base 5.0.2
808 _ZN19QVideoSurfaceFormat11setViewportERK5QRect@Base 5.0.2833 _ZN19QVideoSurfaceFormat11setViewportERK5QRect@Base 5.0.2
809 (subst)_ZN19QVideoSurfaceFormat12setFrameRateE{qreal}@Base 5.0.2834 _ZN19QVideoSurfaceFormat12setFrameRateEd@Base 5.1.1+git20131205+8230c02-0ubuntu7
835#MISSING: 5.1.1+git20131205+8230c02-0ubuntu7# (subst)_ZN19QVideoSurfaceFormat12setFrameRateE{qreal}@Base 5.0.2
810 _ZN19QVideoSurfaceFormat12setFrameSizeERK5QSize@Base 5.0.2836 _ZN19QVideoSurfaceFormat12setFrameSizeERK5QSize@Base 5.0.2
811 _ZN19QVideoSurfaceFormat12setFrameSizeEii@Base 5.0.2837 _ZN19QVideoSurfaceFormat12setFrameSizeEii@Base 5.0.2
812 _ZN19QVideoSurfaceFormat18setYCbCrColorSpaceENS_15YCbCrColorSpaceE@Base 5.0.2838 _ZN19QVideoSurfaceFormat18setYCbCrColorSpaceENS_15YCbCrColorSpaceE@Base 5.0.2
@@ -870,7 +896,8 @@
870 _ZN20QAudioDecoderControlD0Ev@Base 5.0.2896 _ZN20QAudioDecoderControlD0Ev@Base 5.0.2
871 _ZN20QAudioDecoderControlD1Ev@Base 5.0.2897 _ZN20QAudioDecoderControlD1Ev@Base 5.0.2
872 _ZN20QAudioDecoderControlD2Ev@Base 5.0.2898 _ZN20QAudioDecoderControlD2Ev@Base 5.0.2
873 (subst)_ZN20QAudioHelperInternal16qMultiplySamplesE{qreal}RK12QAudioFormatPKvPvi@Base 5.0.2899 _ZN20QAudioHelperInternal16qMultiplySamplesEdRK12QAudioFormatPKvPvi@Base 5.1.1+git20131205+8230c02-0ubuntu7
900#MISSING: 5.1.1+git20131205+8230c02-0ubuntu7# (subst)_ZN20QAudioHelperInternal16qMultiplySamplesE{qreal}RK12QAudioFormatPKvPvi@Base 5.0.2
874 _ZN20QImageEncoderControl11qt_metacallEN11QMetaObject4CallEiPPv@Base 5.0.2901 _ZN20QImageEncoderControl11qt_metacallEN11QMetaObject4CallEiPPv@Base 5.0.2
875 _ZN20QImageEncoderControl11qt_metacastEPKc@Base 5.0.2902 _ZN20QImageEncoderControl11qt_metacastEPKc@Base 5.0.2
876 _ZN20QImageEncoderControl16staticMetaObjectE@Base 5.0.2903 _ZN20QImageEncoderControl16staticMetaObjectE@Base 5.0.2
@@ -958,7 +985,8 @@
958 _ZN21QMediaRecorderControl12mutedChangedEb@Base 5.0.2985 _ZN21QMediaRecorderControl12mutedChangedEb@Base 5.0.2
959 _ZN21QMediaRecorderControl12stateChangedEN14QMediaRecorder5StateE@Base 5.0.2986 _ZN21QMediaRecorderControl12stateChangedEN14QMediaRecorder5StateE@Base 5.0.2
960 _ZN21QMediaRecorderControl13statusChangedEN14QMediaRecorder6StatusE@Base 5.0.2987 _ZN21QMediaRecorderControl13statusChangedEN14QMediaRecorder6StatusE@Base 5.0.2
961 (subst)_ZN21QMediaRecorderControl13volumeChangedE{qreal}@Base 5.0.2988 _ZN21QMediaRecorderControl13volumeChangedEd@Base 5.1.1+git20131205+8230c02-0ubuntu7
989#MISSING: 5.1.1+git20131205+8230c02-0ubuntu7# (subst)_ZN21QMediaRecorderControl13volumeChangedE{qreal}@Base 5.0.2
962 _ZN21QMediaRecorderControl15durationChangedEx@Base 5.0.2990 _ZN21QMediaRecorderControl15durationChangedEx@Base 5.0.2
963 _ZN21QMediaRecorderControl16staticMetaObjectE@Base 5.0.2991 _ZN21QMediaRecorderControl16staticMetaObjectE@Base 5.0.2
964 _ZN21QMediaRecorderControl21actualLocationChangedERK4QUrl@Base 5.0.2992 _ZN21QMediaRecorderControl21actualLocationChangedERK4QUrl@Base 5.0.2
@@ -979,7 +1007,8 @@
979 _ZN21QMediaServiceProviderD2Ev@Base 5.0.21007 _ZN21QMediaServiceProviderD2Ev@Base 5.0.2
980 _ZN21QVideoEncoderSettings10setBitRateEi@Base 5.0.21008 _ZN21QVideoEncoderSettings10setBitRateEi@Base 5.0.2
981 _ZN21QVideoEncoderSettings10setQualityEN11QMultimedia15EncodingQualityE@Base 5.0.21009 _ZN21QVideoEncoderSettings10setQualityEN11QMultimedia15EncodingQualityE@Base 5.0.2
982 (subst)_ZN21QVideoEncoderSettings12setFrameRateE{qreal}@Base 5.0.21010 _ZN21QVideoEncoderSettings12setFrameRateEd@Base 5.1.1+git20131205+8230c02-0ubuntu7
1011#MISSING: 5.1.1+git20131205+8230c02-0ubuntu7# (subst)_ZN21QVideoEncoderSettings12setFrameRateE{qreal}@Base 5.0.2
983 _ZN21QVideoEncoderSettings13setResolutionERK5QSize@Base 5.0.21012 _ZN21QVideoEncoderSettings13setResolutionERK5QSize@Base 5.0.2
984 _ZN21QVideoEncoderSettings13setResolutionEii@Base 5.0.21013 _ZN21QVideoEncoderSettings13setResolutionEii@Base 5.0.2
985 _ZN21QVideoEncoderSettings15setEncodingModeEN11QMultimedia12EncodingModeE@Base 5.0.21014 _ZN21QVideoEncoderSettings15setEncodingModeEN11QMultimedia12EncodingModeE@Base 5.0.2
@@ -1022,13 +1051,18 @@
1022 _ZN22QCameraFeedbackControlD2Ev@Base 5.0.21051 _ZN22QCameraFeedbackControlD2Ev@Base 5.0.2
1023 _ZN22QCameraImageProcessing11qt_metacallEN11QMetaObject4CallEiPPv@Base 5.0.21052 _ZN22QCameraImageProcessing11qt_metacallEN11QMetaObject4CallEiPPv@Base 5.0.2
1024 _ZN22QCameraImageProcessing11qt_metacastEPKc@Base 5.0.21053 _ZN22QCameraImageProcessing11qt_metacastEPKc@Base 5.0.2
1025 (subst)_ZN22QCameraImageProcessing11setContrastE{qreal}@Base 5.0.21054 _ZN22QCameraImageProcessing11setContrastEd@Base 5.1.1+git20131205+8230c02-0ubuntu7
1026 (subst)_ZN22QCameraImageProcessing13setSaturationE{qreal}@Base 5.0.21055#MISSING: 5.1.1+git20131205+8230c02-0ubuntu7# (subst)_ZN22QCameraImageProcessing11setContrastE{qreal}@Base 5.0.2
1056 _ZN22QCameraImageProcessing13setSaturationEd@Base 5.1.1+git20131205+8230c02-0ubuntu7
1057#MISSING: 5.1.1+git20131205+8230c02-0ubuntu7# (subst)_ZN22QCameraImageProcessing13setSaturationE{qreal}@Base 5.0.2
1027 _ZN22QCameraImageProcessing16staticMetaObjectE@Base 5.0.21058 _ZN22QCameraImageProcessing16staticMetaObjectE@Base 5.0.2
1028 (subst)_ZN22QCameraImageProcessing17setDenoisingLevelE{qreal}@Base 5.0.21059 _ZN22QCameraImageProcessing17setDenoisingLevelEd@Base 5.1.1+git20131205+8230c02-0ubuntu7
1029 (subst)_ZN22QCameraImageProcessing18setSharpeningLevelE{qreal}@Base 5.0.21060#MISSING: 5.1.1+git20131205+8230c02-0ubuntu7# (subst)_ZN22QCameraImageProcessing17setDenoisingLevelE{qreal}@Base 5.0.2
1061 _ZN22QCameraImageProcessing18setSharpeningLevelEd@Base 5.1.1+git20131205+8230c02-0ubuntu7
1062#MISSING: 5.1.1+git20131205+8230c02-0ubuntu7# (subst)_ZN22QCameraImageProcessing18setSharpeningLevelE{qreal}@Base 5.0.2
1030 _ZN22QCameraImageProcessing19setWhiteBalanceModeENS_16WhiteBalanceModeE@Base 5.0.21063 _ZN22QCameraImageProcessing19setWhiteBalanceModeENS_16WhiteBalanceModeE@Base 5.0.2
1031 (subst)_ZN22QCameraImageProcessing21setManualWhiteBalanceE{qreal}@Base 5.0.21064 _ZN22QCameraImageProcessing21setManualWhiteBalanceEd@Base 5.1.1+git20131205+8230c02-0ubuntu7
1065#MISSING: 5.1.1+git20131205+8230c02-0ubuntu7# (subst)_ZN22QCameraImageProcessing21setManualWhiteBalanceE{qreal}@Base 5.0.2
1032 _ZN22QCameraImageProcessingC1EP7QCamera@Base 5.0.21066 _ZN22QCameraImageProcessingC1EP7QCamera@Base 5.0.2
1033 _ZN22QCameraImageProcessingC2EP7QCamera@Base 5.0.21067 _ZN22QCameraImageProcessingC2EP7QCamera@Base 5.0.2
1034 _ZN22QCameraImageProcessingD0Ev@Base 5.0.21068 _ZN22QCameraImageProcessingD0Ev@Base 5.0.2
@@ -1264,7 +1298,8 @@
1264 _ZN28QMediaGaplessPlaybackControl16nextMediaChangedERK13QMediaContent@Base 5.0.21298 _ZN28QMediaGaplessPlaybackControl16nextMediaChangedERK13QMediaContent@Base 5.0.2
1265 _ZN28QMediaGaplessPlaybackControl16staticMetaObjectE@Base 5.0.21299 _ZN28QMediaGaplessPlaybackControl16staticMetaObjectE@Base 5.0.2
1266 _ZN28QMediaGaplessPlaybackControl19advancedToNextMediaEv@Base 5.0.21300 _ZN28QMediaGaplessPlaybackControl19advancedToNextMediaEv@Base 5.0.2
1267 (subst)_ZN28QMediaGaplessPlaybackControl20crossfadeTimeChangedE{qreal}@Base 5.0.21301 _ZN28QMediaGaplessPlaybackControl20crossfadeTimeChangedEd@Base 5.1.1+git20131205+8230c02-0ubuntu7
1302#MISSING: 5.1.1+git20131205+8230c02-0ubuntu7# (subst)_ZN28QMediaGaplessPlaybackControl20crossfadeTimeChangedE{qreal}@Base 5.0.2
1268 _ZN28QMediaGaplessPlaybackControlC1EP7QObject@Base 5.0.21303 _ZN28QMediaGaplessPlaybackControlC1EP7QObject@Base 5.0.2
1269 _ZN28QMediaGaplessPlaybackControlC2EP7QObject@Base 5.0.21304 _ZN28QMediaGaplessPlaybackControlC2EP7QObject@Base 5.0.2
1270 _ZN28QMediaGaplessPlaybackControlD0Ev@Base 5.0.21305 _ZN28QMediaGaplessPlaybackControlD0Ev@Base 5.0.2
12711306
=== modified file 'debian/libqt5multimediaquick-p5-touch.postrm'
--- debian/libqt5multimediaquick-p5-touch.postrm 2013-09-20 20:15:35 +0000
+++ debian/libqt5multimediaquick-p5-touch.postrm 2014-02-26 20:49:23 +0000
@@ -2,7 +2,7 @@
2divert_dir="/var/lib/$pkg-diverted"2divert_dir="/var/lib/$pkg-diverted"
33
4if [ remove = "$1" -o abort-install = "$1" -o disappear = "$1" -o purge = "$1" ]; then4if [ remove = "$1" -o abort-install = "$1" -o disappear = "$1" -o purge = "$1" ]; then
5 for version in 5.0.2 5.0 5; do5 for version in 5.2.1 5.2 5; do
6 dpkg-divert --package "$pkg" --remove --rename \6 dpkg-divert --package "$pkg" --remove --rename \
7 --divert \7 --divert \
8 "$divert_dir"/libQt5MultimediaQuick_p.so.$version.diverted-$pkg \8 "$divert_dir"/libQt5MultimediaQuick_p.so.$version.diverted-$pkg \
99
=== modified file 'debian/libqt5multimediaquick-p5-touch.preinst'
--- debian/libqt5multimediaquick-p5-touch.preinst 2013-09-20 20:15:35 +0000
+++ debian/libqt5multimediaquick-p5-touch.preinst 2014-02-26 20:49:23 +0000
@@ -6,7 +6,7 @@
6 mkdir -p "$divert_dir"6 mkdir -p "$divert_dir"
7 fi7 fi
88
9 for version in 5.0.2 5.0 5; do9 for version in 5.2.1 5.2 5; do
10 dpkg-divert --package "$pkg" --add --rename \10 dpkg-divert --package "$pkg" --add --rename \
11 --divert \11 --divert \
12 "$divert_dir"/libQt5MultimediaQuick_p.so.$version.diverted-$pkg \12 "$divert_dir"/libQt5MultimediaQuick_p.so.$version.diverted-$pkg \
1313
=== modified file 'debian/qtmultimedia5-touch-dev.install'
--- debian/qtmultimedia5-touch-dev.install 2013-09-19 11:12:34 +0000
+++ debian/qtmultimedia5-touch-dev.install 2014-02-26 20:49:23 +0000
@@ -193,6 +193,11 @@
193usr/lib/*/pkgconfig/Qt5Multimedia.pc193usr/lib/*/pkgconfig/Qt5Multimedia.pc
194usr/lib/*/pkgconfig/Qt5MultimediaQuick_p.pc194usr/lib/*/pkgconfig/Qt5MultimediaQuick_p.pc
195usr/lib/*/pkgconfig/Qt5MultimediaWidgets.pc195usr/lib/*/pkgconfig/Qt5MultimediaWidgets.pc
196usr/share/qt5/mkspecs/modules/qt_lib_multimedia.pri196usr/lib/*/qt5/mkspecs/modules/qt_lib_multimedia.pri
197usr/share/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri197usr/lib/*/qt5/mkspecs/modules/qt_lib_multimedia_private.pri
198usr/share/qt5/mkspecs/modules/qt_lib_qtmultimediaquicktools.pri198usr/lib/*/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri
199usr/lib/*/qt5/mkspecs/modules/qt_lib_multimediawidgets_private.pri
200usr/lib/*/qt5/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri
201usr/include/qt5/QtMultimedia/QtMultimediaDepends
202usr/include/qt5/QtMultimediaWidgets/QtMultimediaWidgetsDepends
203usr/include/qt5/QtMultimediaQuick_p/QtMultimediaQuick_pDepends
199204
=== modified file 'debian/rules'
--- debian/rules 2013-11-25 14:42:05 +0000
+++ debian/rules 2014-02-26 20:49:23 +0000
@@ -56,6 +56,7 @@
56 debian/libqt5multimedia5-touch-plugins.preinst56 debian/libqt5multimedia5-touch-plugins.preinst
57 sed "s/__ARCH__/$(DEB_HOST_MULTIARCH)/g" -i \57 sed "s/__ARCH__/$(DEB_HOST_MULTIARCH)/g" -i \
58 debian/libqt5multimedia5-touch-plugins.postrm58 debian/libqt5multimedia5-touch-plugins.postrm
59 ./debian/syncqt.pl -version 5.1.1
59 qmake CONFIG+=mir60 qmake CONFIG+=mir
6061
61override_dh_auto_install-arch:62override_dh_auto_install-arch:
6263
=== added file 'debian/syncqt.pl'
--- debian/syncqt.pl 1970-01-01 00:00:00 +0000
+++ debian/syncqt.pl 2014-02-26 20:49:23 +0000
@@ -0,0 +1,1223 @@
1#!/usr/bin/env perl
2#############################################################################
3##
4## Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
5## Contact: http://www.qt-project.org/legal
6##
7## This file is part of the build configuration tools of the Qt Toolkit.
8##
9## $QT_BEGIN_LICENSE:LGPL$
10## Commercial License Usage
11## Licensees holding valid commercial Qt licenses may use this file in
12## accordance with the commercial license agreement provided with the
13## Software or, alternatively, in accordance with the terms contained in
14## a written agreement between you and Digia. For licensing terms and
15## conditions see http://qt.digia.com/licensing. For further information
16## use the contact form at http://qt.digia.com/contact-us.
17##
18## GNU Lesser General Public License Usage
19## Alternatively, this file may be used under the terms of the GNU Lesser
20## General Public License version 2.1 as published by the Free Software
21## Foundation and appearing in the file LICENSE.LGPL included in the
22## packaging of this file. Please review the following information to
23## ensure the GNU Lesser General Public License version 2.1 requirements
24## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
25##
26## In addition, as a special exception, Digia gives you certain additional
27## rights. These rights are described in the Digia Qt LGPL Exception
28## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
29##
30## GNU General Public License Usage
31## Alternatively, this file may be used under the terms of the GNU
32## General Public License version 3.0 as published by the Free Software
33## Foundation and appearing in the file LICENSE.GPL included in the
34## packaging of this file. Please review the following information to
35## ensure the GNU General Public License version 3.0 requirements will be
36## met: http://www.gnu.org/copyleft/gpl.html.
37##
38##
39## $QT_END_LICENSE$
40##
41#############################################################################
42
43#
44# Synchronizes Qt header files - internal development tool.
45#
46
47# use packages -------------------------------------------------------
48use File::Basename;
49use File::Path;
50use File::Spec;
51use Cwd;
52use Cwd 'abs_path';
53use Config;
54use strict;
55use warnings;
56use English qw(-no_match_vars );
57
58my $normalizePath_fixDrive = ($^O eq "msys" ? 1 : 0);
59
60######################################################################
61# Syntax: normalizePath(\$path)
62# Params: Reference to a path that's going to be normalized.
63#
64# Purpose: Converts the path into a form that can be used as include
65# path from C++ sources and qmake's .pro files.
66# Only relevant on Windows.
67# Returns: -none-
68######################################################################
69sub normalizePath {
70 my $s = shift;
71 $$s =~ s=\\=/=g;
72 if ($normalizePath_fixDrive && ($$s =~ m,^/([a-zA-Z])/(.*), || $$s =~ m,^([a-zA-Z]):/(.*),)) {
73 $$s = lc($1) . ":/$2";
74 }
75}
76
77# set output basedir to be where ever syncqt is run from
78our $out_basedir = getcwd();
79normalizePath(\$out_basedir);
80our $basedir;
81our $quoted_basedir;
82
83# Make sure we use Windows line endings for chomp and friends on Windows.
84$INPUT_RECORD_SEPARATOR = "\r\n" if ($^O eq "msys");
85
86# will be defined based on the modules sync.profile
87our (%modules, %moduleheaders, @allmoduleheadersprivate, %classnames, %explicitheaders, %deprecatedheaders);
88our @qpa_headers = ();
89
90# global variables (modified by options)
91my $isunix = 0;
92my $module = 0;
93my $showonly = 0;
94my $verbose_level = 1;
95my $remove_stale = 1;
96my $force_win = 0;
97my $force_relative = 0;
98my $check_includes = 0;
99my $copy_headers = 0;
100my $create_private_headers = 1;
101my $minimal = 0;
102my $module_version = 0;
103my @modules_to_sync ;
104$force_relative = 1 if ( -d "/System/Library/Frameworks" );
105
106
107# functions ----------------------------------------------------------
108
109######################################################################
110# Syntax: showUsage()
111# Params: -none-
112#
113# Purpose: Show the usage of the script.
114# Returns: -none-
115######################################################################
116sub showUsage
117{
118 print "$0 usage:\n";
119 print " <module directory> Specifies which module to sync header files for (required for shadow builds!)\n\n";
120
121 print " -copy Copy headers instead of include-fwd(default: " . ($copy_headers ? "yes" : "no") . ")\n";
122 print " -remove-stale Removes stale headers (default: " . ($remove_stale ? "yes" : "no") . ")\n";
123 print " -relative Force relative symlinks (default: " . ($force_relative ? "yes" : "no") . ")\n";
124 print " -windows Force platform to Windows (default: " . ($force_win ? "yes" : "no") . ")\n";
125 print " -showonly Show action but not perform (default: " . ($showonly ? "yes" : "no") . ")\n";
126 print " -minimal Do not create CamelCase headers (default: " . ($minimal ? "yes" : "no") . ")\n";
127 print " -outdir <PATH> Specify output directory for sync (default: $out_basedir)\n";
128 print " -version <VERSION> Specify the module's version (default: detect from qglobal.h)\n";
129 print " -quiet Only report problems, not activity (same as -verbose 0)\n";
130 print " -v, -verbose <level> Sets the verbosity level (max. 4) (default: $verbose_level)\n";
131 print " The short form increases the level by +1\n";
132 print " -separate-module <NAME>:<PROFILEDIR>:<HEADERDIR>\n";
133 print " Create headers for <NAME> with original headers in\n";
134 print " <HEADERDIR> relative to <PROFILEDIR> \n";
135 print " -private Force copy private headers (default: " . ($create_private_headers ? "yes" : "no") . ")\n";
136 print " -help This help\n";
137 exit 0;
138}
139
140######################################################################
141# Syntax: checkUnix()
142# Params: -none-
143#
144# Purpose: Check if script runs on a Unix system or not. Cygwin
145# systems are _not_ detected as Unix systems.
146# Returns: 1 if a unix system, else 0.
147######################################################################
148sub checkUnix {
149 my ($r) = 0;
150 if ( $force_win != 0) {
151 return 0;
152 } elsif ( -f "/bin/uname" ) {
153 $r = 1;
154 (-f "\\bin\\uname") && ($r = 0);
155 } elsif ( -f "/usr/bin/uname" ) {
156 $r = 1;
157 (-f "\\usr\\bin\\uname") && ($r = 0);
158 }
159 if($r) {
160 $_ = $Config{'osname'};
161 $r = 0 if( /(ms)|(cyg)win/i );
162 }
163 return $r;
164}
165
166sub checkRelative {
167 my ($dir) = @_;
168 return 0 if($dir =~ /^\//);
169 return 0 if(!checkUnix() && $dir =~ /[a-zA-Z]:[\/\\]/);
170 return 1;
171}
172
173######################################################################
174# Syntax: shouldMasterInclude(iheader)
175# Params: iheader, string, filename to verify inclusion
176#
177# Purpose: Determines if header should be in the master include file.
178# Returns: 0 if file contains "#pragma qt_no_master_include" or not
179# able to open, else 1.
180######################################################################
181sub shouldMasterInclude {
182 my ($iheader) = @_;
183 return 0 if (basename($iheader) =~ /_/);
184 return 0 if (basename($iheader) =~ /qconfig/);
185 if (open(F, "<$iheader")) {
186 while (<F>) {
187 chomp;
188 return 0 if (/^\#pragma qt_no_master_include$/);
189 }
190 close(F);
191 } else {
192 return 0;
193 }
194 return 1;
195}
196
197######################################################################
198# Syntax: classNames(iheader)
199# Params: iheader, string, filename to parse for classname "symlinks"
200#
201# Purpose: Scans through iheader to find all classnames that should be
202# synced into library's include structure.
203# Returns: List of all class names in a file.
204######################################################################
205sub classNames {
206 my @ret;
207 my ($iheader) = @_;
208
209 my $classname = $classnames{basename($iheader)};
210 push @ret, $classname if ($classname);
211
212 my $parsable = "";
213 if(open(F, "<$iheader")) {
214 while(<F>) {
215 my $line = $_;
216 chomp $line;
217 chop $line if ($line =~ /\r$/);
218 if($line =~ /^\#/) {
219 return @ret if($line =~ m/^#pragma qt_sync_stop_processing/);
220 push(@ret, $1) if($line =~ m/^#pragma qt_class\(([^)]*)\)[\r\n]*$/);
221 $line = 0;
222 }
223 if($line) {
224 $line =~ s,//.*$,,; #remove c++ comments
225 $line .= ";" if($line =~ m/^Q_[A-Z_]*\(.*\)[\r\n]*$/); #qt macro
226 $line .= ";" if($line =~ m/^QT_(BEGIN|END)_HEADER[\r\n]*$/); #qt macro
227 $line .= ";" if($line =~ m/^QT_(BEGIN|END)_NAMESPACE(_[A-Z]+)*[\r\n]*$/); #qt macro
228 $line .= ";" if($line =~ m/^QT_MODULE\(.*\)[\r\n]*$/); # QT_MODULE macro
229 $parsable .= " " . $line;
230 }
231 }
232 close(F);
233 }
234
235 my $last_definition = 0;
236 my @namespaces;
237 for(my $i = 0; $i < length($parsable); $i++) {
238 my $definition = 0;
239 my $character = substr($parsable, $i, 1);
240 if($character eq "/" && substr($parsable, $i+1, 1) eq "*") { #I parse like this for greedy reasons
241 for($i+=2; $i < length($parsable); $i++) {
242 my $end = substr($parsable, $i, 2);
243 if($end eq "*/") {
244 $last_definition = $i+2;
245 $i++;
246 last;
247 }
248 }
249 } elsif($character eq "{") {
250 my $brace_depth = 1;
251 my $block_start = $i + 1;
252 BLOCK: for($i+=1; $i < length($parsable); $i++) {
253 my $ignore = substr($parsable, $i, 1);
254 if($ignore eq "{") {
255 $brace_depth++;
256 } elsif($ignore eq "}") {
257 $brace_depth--;
258 unless($brace_depth) {
259 for(my $i2 = $i+1; $i2 < length($parsable); $i2++) {
260 my $end = substr($parsable, $i2, 1);
261 if($end eq ";" || $end ne " ") {
262 $definition = substr($parsable, $last_definition, $block_start - $last_definition) . "}";
263 $i = $i2 if($end eq ";");
264 $last_definition = $i + 1;
265 last BLOCK;
266 }
267 }
268 }
269 }
270 }
271 } elsif($character eq ";") {
272 $definition = substr($parsable, $last_definition, $i - $last_definition + 1);
273 $last_definition = $i + 1;
274 } elsif($character eq "}") {
275 # a naked } must be a namespace ending
276 # if it's not a namespace, it's eaten by the loop above
277 pop @namespaces;
278 $last_definition = $i + 1;
279 }
280
281 if (substr($parsable, $last_definition, $i - $last_definition + 1) =~ m/ namespace ([^ ]*) /
282 && substr($parsable, $i+1, 1) eq "{") {
283 push @namespaces, $1;
284
285 # Eat the opening { so that the condensing loop above doesn't see it
286 $i++;
287 $last_definition = $i + 1;
288 }
289
290 if($definition) {
291 $definition =~ s=[\n\r]==g;
292 my @symbols;
293 my $post_kw = qr/Q_DECL_FINAL|final|sealed/; # add here macros and keywords that go after the class-name of a class definition
294 if($definition =~ m/^ *typedef *.*\(\*([^\)]*)\)\(.*\);$/) {
295 push @symbols, $1;
296 } elsif($definition =~ m/^ *typedef +(.*) +([^ ]*);$/) {
297 push @symbols, $2;
298 } elsif($definition =~ m/^ *(template *<.*> *)?(class|struct) +([^ ]* +)?((?!$post_kw)[^<\s]+) ?(<[^>]*> ?)?\s*(?:$post_kw)?\s*((,|:)\s*(public|protected|private) *.*)? *\{\}$/o) {
299 push @symbols, $4;
300 } elsif($definition =~ m/^ *Q_DECLARE_.*ITERATOR\((.*)\);$/) {
301 push @symbols, "Q" . $1 . "Iterator";
302 push @symbols, "QMutable" . $1 . "Iterator";
303 }
304
305 our $publicclassregexp;
306 foreach my $symbol (@symbols) {
307 $symbol = (join("::", @namespaces) . "::" . $symbol) if (scalar @namespaces);
308
309 if ($symbol =~ /^Q[^:]*$/) { # no-namespace, starting with Q
310 push @ret, $symbol;
311 } elsif (defined($publicclassregexp)) {
312 push @ret, $symbol if ($symbol =~ $publicclassregexp);
313 }
314 }
315 }
316 }
317 return @ret;
318}
319
320sub make_path {
321 my ($dir, $lib, $be_verbose) = @_;
322 unless(-e $dir) {
323 mkpath $dir;
324 $dir = "<outbase>" . substr($dir, length($out_basedir)) if ($be_verbose < 3);
325 print "$lib: mkpath $dir\n" if ($be_verbose > 1);
326 }
327}
328
329######################################################################
330# Syntax: syncHeader(header, iheader, copy, timestamp)
331# Params: header, string, filename to create "symlink" for
332# iheader, string, destination name of symlink
333# copy, forces header to be a copy of iheader
334# timestamp, the requested modification time if copying
335#
336# Purpose: Syncronizes header to iheader
337# Returns: 1 if successful, else 0.
338######################################################################
339sub syncHeader {
340 my ($lib, $header, $iheader, $copy, $ts) = @_;
341 normalizePath(\$iheader);
342 normalizePath(\$header);
343 return copyFile($lib, $iheader, $header) if($copy);
344
345 unless(-e $header) {
346 my $header_dir = dirname($header);
347 make_path($header_dir, $lib, $verbose_level);
348
349 #write it
350 my $iheader_out = fixPaths($iheader, $header_dir);
351 open(HEADER, ">$header") || die "Could not open $header for writing: $!\n";
352 print HEADER "#include \"$iheader_out\"\n";
353 close HEADER;
354 if(defined($ts)) {
355 utime(time, $ts, $header) or die "$iheader, $header";
356 }
357 return 1;
358 }
359 return 0;
360}
361
362######################################################################
363# Syntax: fixPaths(file, dir)
364# Params: file, string, filepath to be made relative to dir
365# dir, string, dirpath for point of origin
366#
367# Purpose: file is made relative (if possible) of dir.
368# Returns: String with the above applied conversion.
369######################################################################
370
371sub cleanupPath {
372 my ($file) = @_;
373 normalizePath(\$file);
374 while ($file =~ s,/[^/]+/\.\./,/,) {}
375 return $file;
376}
377
378sub fixPaths {
379 my ($file, $dir) = @_;
380
381 my $out = File::Spec->abs2rel(cleanupPath($file), cleanupPath($dir));
382 $out =~ s,\\,/,g;
383 return $out;
384}
385
386######################################################################
387# Syntax: fileContents(filename)
388# Params: filename, string, filename of file to return contents
389#
390# Purpose: Get the contents of a file.
391# Returns: String with contents of the file, or empty string if file
392# doens't exist.
393# Warning: Dies if it does exist but script cannot get read access.
394######################################################################
395sub fileContents {
396 my ($filename) = @_;
397 my $filecontents = "";
398 if (-e $filename) {
399 open(I, "< $filename") || die "Could not open $filename for reading, read block?";
400 local $/;
401 binmode I;
402 $filecontents = <I>;
403 close I;
404 }
405 return $filecontents;
406}
407
408######################################################################
409# Syntax: writeFile(filename, contents)
410# Params: filename, string, filename of file to write
411# contents, string, new contents for the file
412#
413# Purpose: Write file with given contents. If new contents match old
414# ones, do no change the file's timestamp.
415# Returns: 1 if the file's contents changed.
416######################################################################
417sub writeFile {
418 my ($filename, $contents, $lib, $what) = @_;
419 my $oldcontents = fileContents($filename);
420 $oldcontents =~ s/\r//g; # remove \r's , so comparison is ok on all platforms
421 if ($oldcontents ne $contents) {
422 open(O, "> " . $filename) || die "Could not open $filename for writing: $!\n";
423 print O $contents;
424 close O;
425 if ($lib && $verbose_level) {
426 my $action = ($oldcontents eq "") ? "created" : "updated";
427 print "$lib: $action $what\n";
428 }
429 return 1;
430 }
431 return 0;
432}
433
434######################################################################
435# Syntax: fileCompare(file1, file2)
436# Params: file1, string, filename of first file
437# file2, string, filename of second file
438#
439# Purpose: Determines if files are equal, and which one is newer.
440# Returns: 0 if files are equal no matter the timestamp, -1 if file1
441# is newer, 1 if file2 is newer.
442######################################################################
443sub fileCompare {
444 my ($file1, $file2) = @_;
445 my $file1contents = fileContents($file1);
446 my $file2contents = fileContents($file2);
447 if (! -e $file1) { return 1; }
448 if (! -e $file2) { return -1; }
449 return $file1contents ne $file2contents ? (stat($file2))[9] <=> (stat($file1))[9] : 0;
450}
451
452######################################################################
453# Syntax: copyFile(file, ifile)
454# Params: file, string, filename to create duplicate for
455# ifile, string, destination name of duplicate
456#
457# Purpose: Keeps files in sync so changes in the newer file will be
458# written to the other.
459# Returns: 1 if files were synced, else 0.
460# Warning: Dies if script cannot get write access.
461######################################################################
462sub copyFile
463{
464 my ($lib, $file,$ifile, $copy,$knowdiff,$filecontents,$ifilecontents) = @_;
465 # Bi-directional synchronization
466 open( I, "< " . $file ) || die "Could not open $file for reading";
467 local $/;
468 binmode I;
469 $filecontents = <I>;
470 close I;
471 if ( open(I, "< " . $ifile) ) {
472 local $/;
473 binmode I;
474 $ifilecontents = <I>;
475 close I;
476 $copy = fileCompare($file, $ifile);
477 $knowdiff = 0,
478 } else {
479 $copy = -1;
480 $knowdiff = 1;
481 }
482
483 if ( $knowdiff || ($filecontents ne $ifilecontents) ) {
484 if ( $copy > 0 ) {
485 my $file_dir = dirname($file);
486 make_path($file_dir, $lib, $verbose_level);
487 open(O, "> " . $file) || die "Could not open $file for writing (no write permission?)";
488 local $/;
489 binmode O;
490 print O $ifilecontents;
491 close O;
492 utime time, (stat($ifile))[9], $file;
493 return 1;
494 } elsif ( $copy < 0 ) {
495 my $ifile_dir = dirname($ifile);
496 make_path($ifile_dir, $lib, $verbose_level);
497 open(O, "> " . $ifile) || die "Could not open $ifile for writing (no write permission?)";
498 local $/;
499 binmode O;
500 print O $filecontents;
501 close O;
502 utime time, (stat($file))[9], $ifile;
503 return 1;
504 }
505 }
506 return 0;
507}
508
509######################################################################
510# Syntax: findFiles(dir, match, descend)
511# Params: dir, string, directory to search for name
512# match, string, regular expression to match in dir
513# descend, integer, 0 = non-recursive search
514# 1 = recurse search into subdirectories
515#
516# Purpose: Finds files matching a regular expression.
517# Returns: List of matching files.
518#
519# Examples:
520# findFiles("/usr","\.cpp$",1) - finds .cpp files in /usr and below
521# findFiles("/tmp","^#",0) - finds #* files in /tmp
522######################################################################
523sub findFiles {
524 my ($dir,$match,$descend) = @_;
525 my ($file,$p,@files);
526 local(*D);
527 normalizePath(\$dir);
528 ($dir eq "") && ($dir = ".");
529 if ( opendir(D,$dir) ) {
530 if ( $dir eq "." ) {
531 $dir = "";
532 } else {
533 ($dir =~ /\/$/) || ($dir .= "/");
534 }
535 foreach $file ( sort readdir(D) ) {
536 next if ( $file =~ /^\.\.?$/ );
537 $p = $file;
538 ($file =~ /$match/) && (push @files, $p);
539 if ( $descend && -d $p && ! -l $p ) {
540 push @files, &findFiles($p,$match,$descend);
541 }
542 }
543 closedir(D);
544 }
545 return @files;
546}
547
548sub listSubdirs {
549 my @subdirs = @_;
550 foreach my $subdir (@subdirs) {
551 opendir DIR, $subdir or die "Huh, directory ".$subdir." cannot be opened.";
552 foreach my $t (sort readdir(DIR)) {
553 push @subdirs, "$subdir/$t" if(-d "$subdir/$t" && !($t eq ".") &&
554 !($t eq "..") && !($t eq ".obj") &&
555 !($t eq ".moc") && !($t eq ".rcc") &&
556 !($t eq ".uic") && !($t eq "build") &&
557 !($t eq "doc"));
558 }
559 closedir DIR;
560 }
561 return @subdirs;
562}
563
564######################################################################
565# Syntax: loadSyncProfile()
566#
567# Purpose: Locates the sync.profile.
568# Returns: Hashmap of module name -> directory.
569######################################################################
570sub loadSyncProfile {
571 my ($srcbase, $outbase) = @_;
572 if ($verbose_level) {
573 print("<srcbase> = $$srcbase \n");
574 print("<outbase> = $$outbase \n");
575 }
576
577 my $syncprofile = "$$srcbase/sync.profile";
578 my $result;
579 unless ($result = do "$syncprofile") {
580 die "syncqt couldn't parse $syncprofile: $@" if $@;
581 die "syncqt couldn't execute $syncprofile: $!" unless defined $result;
582 }
583 return $result;
584}
585
586sub basePrettify {
587 my ($arg) = @_;
588 $$arg =~ s,^\Q$basedir\E,<srcbase>,;
589 $$arg =~ s,^\Q$out_basedir\E,<outbase>,;
590}
591
592sub cleanPath {
593 my ($arg) = @_;
594 while ($arg =~ s,[^/]+/\.\.(/|$),,) {}
595 return $arg;
596}
597
598sub locateSyncProfile
599{
600 my ($directory) = @_;
601 $directory = abs_path($directory);
602 while (1) {
603 my $file = $directory."/sync.profile";
604 return $file if (-e $file);
605 my $odir = $directory;
606 $directory = dirname($directory);
607 return undef if ($directory eq $odir);
608 }
609}
610
611sub isQpaHeader
612{
613 my ($header) = @_;
614 foreach my $qpa_header (@qpa_headers) {
615 return 1 if ($header =~ $qpa_header);
616 }
617 return 0;
618}
619
620# check if this is an in-source build, and if so use that as the basedir too
621$basedir = locateSyncProfile($out_basedir);
622if ($basedir) {
623 $basedir = dirname($basedir) ;
624 normalizePath(\$basedir);
625 $quoted_basedir = "\Q$basedir";
626}
627
628# --------------------------------------------------------------------
629# "main" function
630# --------------------------------------------------------------------
631
632while ( @ARGV ) {
633 my $var = 0;
634 my $val = 0;
635
636 #parse
637 my $arg = shift @ARGV;
638 if ($arg eq "-h" || $arg eq "-help" || $arg eq "-?" || $arg eq "?") {
639 $var = "show_help";
640 $val = "yes";
641 } elsif($arg eq "-copy") {
642 $var = "copy";
643 $val = "yes";
644 } elsif($arg eq "-o" || $arg eq "-outdir") {
645 $var = "output";
646 $val = shift @ARGV;
647 } elsif($arg eq "-showonly" || $arg eq "-remove-stale" || $arg eq "-windows" ||
648 $arg eq "-relative" || $arg eq "-check-includes") {
649 $var = substr($arg, 1);
650 $val = "yes";
651 } elsif($arg =~ /^-no-(.*)$/) {
652 $var = $1;
653 $val = "no";
654 #these are for commandline compat
655 } elsif($arg eq "-inc") {
656 $var = "output";
657 $val = shift @ARGV;
658 } elsif($arg eq "-module") {
659 $var = "module";
660 $val = shift @ARGV;
661 } elsif($arg eq "-separate-module") {
662 $var = "separate-module";
663 $val = shift @ARGV;
664 } elsif($arg eq "-show") {
665 $var = "showonly";
666 $val = "yes";
667 } elsif($arg eq "-quiet") {
668 $var = "verbose";
669 $val = "0";
670 } elsif($arg eq "-v") {
671 $var = "verbose";
672 $val = "yes";
673 } elsif($arg eq "-verbose") {
674 $var = "verbose";
675 $val = shift @ARGV;
676 } elsif($arg eq "-minimal") {
677 $var = "minimal";
678 $val = "yes";
679 } elsif($arg eq "-private") {
680 $var = "create_private_headers";
681 $val = "yes";
682 } elsif($arg eq "-version") {
683 $var = "version";
684 $val = shift @ARGV;
685 } elsif($arg =~/^-/) {
686 print "Unknown option: $arg\n\n" if(!$var);
687 showUsage();
688 } else {
689 $basedir = locateSyncProfile($arg);
690 die "Could not find a sync.profile for '$arg'\n" if (!$basedir);
691 $basedir = dirname($basedir);
692 normalizePath(\$basedir);
693 $quoted_basedir = "\Q$basedir";
694 $var = "ignore";
695 }
696
697 #do something
698 if(!$var || $var eq "show_help") {
699 print "Unknown option: $arg\n\n" if(!$var);
700 showUsage();
701 } elsif ($var eq "copy") {
702 if($val eq "yes") {
703 $copy_headers++;
704 } elsif($showonly) {
705 $copy_headers--;
706 }
707 } elsif ($var eq "showonly") {
708 if($val eq "yes") {
709 $showonly++;
710 } elsif($showonly) {
711 $showonly--;
712 }
713 } elsif ($var eq "verbose") {
714 if($val eq "yes") {
715 $verbose_level++;
716 } elsif($val eq "no" && $verbose_level) {
717 $verbose_level--;
718 } else {
719 $verbose_level = int($val);
720 }
721 } elsif ($var eq "check-includes") {
722 if($val eq "yes") {
723 $check_includes++;
724 } elsif($check_includes) {
725 $check_includes--;
726 }
727 } elsif ($var eq "remove-stale") {
728 if($val eq "yes") {
729 $remove_stale++;
730 } elsif($remove_stale) {
731 $remove_stale--;
732 }
733 } elsif ($var eq "windows") {
734 if($val eq "yes") {
735 $force_win++;
736 } elsif($force_win) {
737 $force_win--;
738 }
739 } elsif ($var eq "relative") {
740 if($val eq "yes") {
741 $force_relative++;
742 } elsif($force_relative) {
743 $force_relative--;
744 }
745 } elsif ($var eq "minimal") {
746 if($val eq "yes") {
747 $minimal++;
748 } elsif($minimal) {
749 $minimal--;
750 }
751 } elsif ($var eq "module") {
752 push @modules_to_sync, $val;
753 } elsif ($var eq "separate-module") {
754 my ($module, $prodir, $headerdir) = split(/:/, $val);
755 $modules{$module} = $prodir;
756 push @modules_to_sync, $module;
757 $moduleheaders{$module} = $headerdir;
758 } elsif ($var eq "version") {
759 if($val) {
760 $module_version = $val;
761 } else {
762 die "The -version option requires an argument";
763 }
764 } elsif ($var eq "output") {
765 my $outdir = $val;
766 if(checkRelative($outdir)) {
767 $out_basedir = getcwd();
768 chomp $out_basedir;
769 $out_basedir .= "/" . $outdir;
770 } else {
771 $out_basedir = $outdir;
772 }
773 normalizePath(\$out_basedir);
774 }
775}
776
777# if we have no $basedir we cannot be sure which sources you want, so die
778die "Could not find any sync.profile for your module!\nPass <module directory> to syncqt to sync your header files.\nsyncqt failed" if (!$basedir);
779
780my $class_lib_map_contents = "";
781our @ignore_headers = ();
782our @ignore_for_master_contents = ();
783our @ignore_for_include_check = ();
784our @ignore_for_qt_begin_namespace_check = ();
785our @ignore_for_qt_module_check = ();
786our %inject_headers = ();
787
788# load the module's sync.profile here, before we can
789loadSyncProfile(\$basedir, \$out_basedir);
790
791@modules_to_sync = keys(%modules) if($#modules_to_sync == -1);
792
793my %allmoduleheadersprivate = map { $_ => 1 } @allmoduleheadersprivate;
794
795$isunix = checkUnix; #cache checkUnix
796
797if (!$module_version) {
798 my $filco = fileContents($basedir."/src/corelib/global/qglobal.h");
799 if ($filco !~ m,.*^#[ \t]*define[ \t]+QT_VERSION_STR[ \t]+"([^"]+)".*,sm) {
800 die "Cannot determine Qt/Module version. Use -version.\n";
801 }
802 $module_version = $1;
803}
804foreach my $lib (@modules_to_sync) {
805 die "No such module: $lib" unless(defined $modules{$lib});
806
807 #iteration info
808 my $module = $modules{$lib};
809 my $is_qt = !($module =~ s/^!//);
810 my @dirs = split(/;/, $module);
811 my $dir = $dirs[0];
812
813 my $pathtoheaders = "";
814 $pathtoheaders = $moduleheaders{$lib} if ($moduleheaders{$lib});
815
816 my $allheadersprivate = 0;
817 $allheadersprivate = 1 if $allmoduleheadersprivate{$lib};
818
819 #information used after the syncing
820 my $pri_install_classes = "";
821 my $pri_install_files = "";
822 my $pri_install_pfiles = "";
823 my $pri_install_qpafiles = "";
824
825 my $libcapitals = uc($lib);
826 my $master_contents =
827 "#ifndef QT_".$libcapitals."_MODULE_H\n" .
828 "#define QT_".$libcapitals."_MODULE_H\n" .
829 "#include <$lib/${lib}Depends>\n";
830
831 #remove the old files
832 if($remove_stale) {
833 my %injections = ();
834 for my $p (keys %inject_headers) {
835 next unless ($p =~ /^\Q$dir\E(\/|$)/);
836 my $sp = $p;
837 $sp =~ s,^\Q$basedir\E/,$out_basedir/,;
838 for my $n (@{$inject_headers{$p}}) {
839 $injections{$sp."/".$n} = 1;
840 }
841 }
842 my @subdirs = ("$out_basedir/include/$lib");
843 foreach my $subdir (@subdirs) {
844 if (opendir DIR, $subdir) {
845 foreach my $t (sort { $b cmp $a } readdir(DIR)) {
846 my $file = "$subdir/$t";
847 if(-d $file) {
848 push @subdirs, $file unless($t eq "." || $t eq "..");
849 } else {
850 my @files = ($file);
851 #push @files, "$out_basedir/include/Qt/$t" if(-e "$out_basedir/include/Qt/$t");
852 foreach my $file (@files) {
853 my $remove_file = 0;
854 if(open(F, "<$file")) {
855 while(my $line = <F>) {
856 chomp $line;
857 if($line =~ /^\#include \"([^\"]*)\"$/) {
858 my $include = $1;
859 $include = $subdir . "/" . $include unless(substr($include, 0, 1) eq "/");
860 $remove_file = 1 unless(-e $include or defined $injections{cleanPath($include)});
861 } else {
862 $remove_file = 0;
863 last;
864 }
865 }
866 close(F);
867 unlink $file if($remove_file);
868 }
869 }
870 }
871 }
872 closedir DIR;
873 }
874
875 }
876 }
877
878 #create the new ones
879 foreach my $current_dir (@dirs) {
880 my $thisprivate = 0;
881 ($current_dir =~ s/^\^//) and $thisprivate = 1;
882 my @headers_paths = split(/;/, $pathtoheaders);
883 if (@headers_paths) {
884 @headers_paths = map { "$current_dir/$_" } @headers_paths;
885 } else {
886 push @headers_paths, $current_dir;
887 }
888
889 foreach my $headers_dir (@headers_paths) {
890 #calc subdirs
891 my @subdirs = listSubdirs($headers_dir);
892
893 #calc files and "copy" them
894 foreach my $subdir (@subdirs) {
895 my @headers = findFiles($subdir, "^[-a-z0-9_]*\\.h\$" , 0);
896 my $header_dirname = "";
897 foreach my $header (@headers) {
898 $header = 0 if($header =~ /^ui_.*.h/);
899 foreach (@ignore_headers) {
900 $header = 0 if($header eq $_);
901 }
902 if($header) {
903 my $header_copies = 0;
904 #figure out if it is a public header
905 my $public_header = $header;
906 my $qpa_header = 0;
907 if(isQpaHeader($public_header)) {
908 $public_header = 0;
909 $qpa_header = 1;
910 } elsif($allheadersprivate || $thisprivate || $public_header =~ /_p.h$/ || $public_header =~ /_pch.h$/) {
911 $public_header = 0;
912 } else {
913 foreach (@ignore_for_master_contents) {
914 $public_header = 0 if($header eq $_);
915 }
916 }
917
918 my $iheader = $subdir . "/" . $header;
919 my @classes = $public_header && (!$minimal && $is_qt) ? classNames($iheader) : ();
920 if($showonly) {
921 print "$header [$lib]\n";
922 foreach(@classes) {
923 print "SYMBOL: $_\n";
924 }
925 } else {
926 my $ts = (stat($iheader))[9];
927 #find out all the places it goes..
928 my @headers;
929 if ($public_header) {
930 @headers = ( "$out_basedir/include/$lib/$header" );
931 foreach my $full_class (@classes) {
932 my $header_base = basename($header);
933 # Strip namespaces:
934 my $class = $full_class;
935 $class =~ s/^.*:://;
936 # if ($class =~ m/::/) {
937 # class =~ s,::,/,g;
938 # }
939
940 if (defined $explicitheaders{$lib}{$class}) {
941 $header_copies++ if(syncHeader($lib, "$out_basedir/include/$lib/$class", "$out_basedir/include/$lib/$explicitheaders{$lib}{$class}", 0, $ts));
942 } else {
943 $class_lib_map_contents .= "QT_CLASS_LIB($full_class, $lib, $header_base)\n";
944 $header_copies++ if(syncHeader($lib, "$out_basedir/include/$lib/$class", "$out_basedir/include/$lib/$header", 0, $ts));
945 }
946 }
947
948 if ($explicitheaders{$lib}{basename($header)}) {
949 $header_copies++ if(syncHeader($lib, "$out_basedir/include/$lib/$explicitheaders{$lib}{basename($header)}", "$out_basedir/include/$lib/$header", 0, $ts));
950 }
951
952 } elsif ($create_private_headers && !$qpa_header) {
953 @headers = ( "$out_basedir/include/$lib/$module_version/$lib/private/$header" );
954 } elsif ($create_private_headers) {
955 @headers = ( "$out_basedir/include/$lib/$module_version/$lib/qpa/$header" );
956 }
957
958 foreach(@headers) { #sync them
959 $header_copies++ if (syncHeader($lib, $_, $iheader, $copy_headers, $ts));
960 }
961
962 if($public_header) {
963 #put it into the master file
964 $master_contents .= "#include \"$public_header\"\n" if (shouldMasterInclude($iheader));
965
966 #deal with the install directives
967 if($public_header) {
968 my $pri_install_iheader = fixPaths($iheader, $dir);
969 foreach my $class (@classes) {
970 # Strip namespaces:
971 $class =~ s/^.*:://;
972 # if ($class =~ m/::/) {
973 # $class =~ s,::,/,g;
974 # }
975 my $class_header = fixPaths("$out_basedir/include/$lib/$class",
976 $dir) . " ";
977 $pri_install_classes .= $class_header
978 unless($pri_install_classes =~ $class_header);
979 }
980 if ($explicitheaders{$lib}{basename($iheader)}) {
981 my $compat_header = fixPaths("$out_basedir/include/$lib/$explicitheaders{$lib}{basename($iheader)}",
982 $dir) . " ";
983 $pri_install_files .= $compat_header unless($pri_install_files =~ $compat_header);
984 }
985 $pri_install_files.= "$pri_install_iheader ";;
986 }
987 }
988 elsif ($qpa_header) {
989 my $pri_install_iheader = fixPaths($iheader, $dir);
990 $pri_install_qpafiles.= "$pri_install_iheader ";;
991 }
992 else {
993 my $pri_install_iheader = fixPaths($iheader, $dir);
994 $pri_install_pfiles.= "$pri_install_iheader ";;
995 }
996 }
997
998 if ($verbose_level && $header_copies) {
999 my $new_header_dirname = dirname($iheader);
1000 basePrettify(\$new_header_dirname) if ($new_header_dirname && $verbose_level < 2);
1001 my $header_base = basename($iheader);
1002 if ($verbose_level < 3) {
1003 my $line_prefix = ",";
1004 if ($new_header_dirname ne $header_dirname) {
1005 $line_prefix = "$lib: created fwd-include header(s) for $new_header_dirname/ {";
1006 $line_prefix = " }\n".$line_prefix if ($header_dirname);
1007 $header_dirname = $new_header_dirname;
1008 } else {
1009 $line_prefix = ",";
1010 }
1011 print "$line_prefix $header_base ($header_copies)";
1012 } else { # $verbose_level >= 3
1013 basePrettify(\$iheader) if ($verbose_level == 3);
1014 print "$lib: created $header_copies fwd-include headers for $iheader\n";
1015 }
1016 }
1017 }
1018 }
1019 print " }\n" if ($header_dirname && $verbose_level > 0 && $verbose_level < 3);
1020 }
1021 }
1022 }
1023
1024 # close the master include:
1025 $master_contents .=
1026 "#include \"".lc($lib)."version.h\"\n" .
1027 "#endif\n";
1028
1029 unless ($showonly || $minimal || !$is_qt) {
1030 # create deprecated headers
1031 my $first = 1;
1032 while (my ($header, $include) = each %{$deprecatedheaders{$lib}}) {
1033 my $public_header = 0;
1034 $public_header = 1 unless ($allheadersprivate || ($header =~ /_p\.h$/));
1035 next unless ($public_header || $create_private_headers);
1036
1037 my $header_path = "$out_basedir/include/$lib/";
1038 unless ($public_header) {
1039 $header_path .= "$module_version/$lib/private/";
1040 }
1041 $header_path .= "$header";
1042
1043 unless (-e $header_path) {
1044 my $guard = "DEPRECATED_HEADER_" . $lib . "_" . $header;
1045 $guard =~ s/([^a-zA-Z0-9_])/_/g;
1046
1047 my $header_dir = dirname($header_path);
1048 make_path($header_dir, $lib, $verbose_level);
1049
1050 my $hdrcont =
1051 "#ifndef $guard\n" .
1052 "#define $guard\n";
1053 my $warning = "Header <$lib/";
1054 $warning .= "private/" unless ($public_header);
1055 $warning .= "$header> is deprecated. Please include <$include> instead.";
1056 $hdrcont .=
1057 "#if defined(__GNUC__)\n" .
1058 "# warning $warning\n" .
1059 "#elif defined(_MSC_VER)\n" .
1060 "# pragma message (\"$warning\")\n" .
1061 "#endif\n" .
1062 "#include <$include>\n";
1063 if ($public_header) {
1064 $hdrcont .=
1065 "#if 0\n" .
1066 "#pragma qt_no_master_include\n" .
1067 "#endif\n";
1068 }
1069 $hdrcont .=
1070 "#endif\n";
1071 if (writeFile($header_path, $hdrcont)) {
1072 if ($verbose_level < 3) {
1073 my $line_prefix = ",";
1074 $line_prefix = "$lib: created deprecated header(s) {" if ($first);
1075 print "$line_prefix $header";
1076 } else {
1077 print "$lib: created deprecated header $header => $include\n";
1078 }
1079 $first = 0;
1080 }
1081 }
1082
1083 my $addendum = fixPaths($header_path, $dir) . " ";
1084 if ($public_header) {
1085 $pri_install_files .= $addendum;
1086 } else {
1087 $pri_install_pfiles .= $addendum;
1088 }
1089 }
1090 if ($verbose_level < 3) {
1091 print " }\n" unless ($first);
1092 }
1093
1094 # module version header
1095 my $vheader = "$out_basedir/include/$lib/".lc($lib)."version.h";
1096 my $VHeader = "$out_basedir/include/$lib/${lib}Version";
1097 syncHeader($lib, $VHeader, $vheader, 0);
1098 $pri_install_files .= fixPaths($vheader, $dir) . " ";
1099 $pri_install_classes .= fixPaths($VHeader, $dir) . " ";
1100 my @versions = split(/\./, $module_version);
1101 my $modulehexstring = sprintf("0x%02X%02X%02X", $versions[0], $versions[1], $versions[2]);
1102 my $vhdrcont =
1103 "/* This file was generated by syncqt. */\n".
1104 "#ifndef QT_".uc($lib)."_VERSION_H\n".
1105 "#define QT_".uc($lib)."_VERSION_H\n".
1106 "\n".
1107 "#define ".uc($lib)."_VERSION_STR \"".$module_version."\"\n".
1108 "\n".
1109 "#define ".uc($lib)."_VERSION ".$modulehexstring."\n".
1110 "\n".
1111 "#endif // QT_".uc($lib)."_VERSION_H\n";
1112 writeFile($vheader, $vhdrcont, $lib, "version header");
1113
1114 my $master_include = "$out_basedir/include/$lib/$lib";
1115 $pri_install_files .= fixPaths($master_include, $dir) . " ";
1116 writeFile($master_include, $master_contents, $lib, "master header");
1117 }
1118
1119 unless ($showonly || $minimal) {
1120 #handle the headers.pri for each module
1121 my $headers_pri_contents = "";
1122 $headers_pri_contents .= "SYNCQT.HEADER_FILES = $pri_install_files\n";
1123 $headers_pri_contents .= "SYNCQT.HEADER_CLASSES = $pri_install_classes\n";
1124 $headers_pri_contents .= "SYNCQT.PRIVATE_HEADER_FILES = $pri_install_pfiles\n";
1125 $headers_pri_contents .= "SYNCQT.QPA_HEADER_FILES = $pri_install_qpafiles\n";
1126 my $headers_pri_file = "$out_basedir/include/$lib/headers.pri";
1127 writeFile($headers_pri_file, $headers_pri_contents, $lib, "headers.pri file");
1128 }
1129}
1130
1131if($check_includes) {
1132 foreach my $lib (@modules_to_sync) {
1133 next if ($modules{$lib} =~ /^!/);
1134 #calc subdirs
1135 my @subdirs = listSubdirs(map { s/^\^//; $_ } split(/;/, $modules{$lib}));
1136
1137 foreach my $subdir (@subdirs) {
1138 my @headers = findFiles($subdir, "^[-a-z0-9_]*\\.h\$" , 0);
1139 foreach my $header (@headers) {
1140 my $header_skip_qt_begin_namespace_test = 0;
1141 $header = 0 if($header =~ /^ui_.*.h/);
1142 $header = 0 if ($header eq lc($lib)."version.h");
1143 foreach (@ignore_headers) {
1144 $header = 0 if($header eq $_);
1145 }
1146 if($header) {
1147 my $public_header = $header;
1148 if($public_header =~ /_p.h$/ || $public_header =~ /_pch.h$/) {
1149 $public_header = 0;
1150 } elsif (isQpaHeader($public_header)) {
1151 $public_header = 0;
1152 } else {
1153 foreach (@ignore_for_master_contents) {
1154 $public_header = 0 if($header eq $_);
1155 }
1156 if($public_header) {
1157 foreach (@ignore_for_include_check) {
1158 $public_header = 0 if($header eq $_);
1159 }
1160 foreach(@ignore_for_qt_begin_namespace_check) {
1161 $header_skip_qt_begin_namespace_test = 1 if ($header eq $_);
1162 }
1163 }
1164 }
1165
1166 my $iheader = $subdir . "/" . $header;
1167 if($public_header) {
1168 if(open(F, "<$iheader")) {
1169 my $qt_begin_namespace_found = 0;
1170 my $qt_end_namespace_found = 0;
1171 my $qt_namespace_suffix = "";
1172 my $line;
1173 my $stop_processing = 0;
1174 while($line = <F>) {
1175 chomp $line;
1176 my $output_line = 1;
1177 if($line =~ /^ *\# *pragma (qt_no_included_check|qt_sync_stop_processing)/) {
1178 $stop_processing = 1;
1179 last;
1180 } elsif($line =~ /^ *\# *include/) {
1181 my $include = $line;
1182 if($line =~ /<.*>/) {
1183 $include =~ s,.*<(.*)>.*,$1,;
1184 } elsif($line =~ /".*"/) {
1185 $include =~ s,.*"(.*)".*,$1,;
1186 } else {
1187 $include = 0;
1188 }
1189 if($include) {
1190 for my $trylib (keys(%modules)) {
1191 if(-e "$out_basedir/include/$trylib/$include") {
1192 print "$lib: WARNING: $iheader includes $include when it should include $trylib/$include\n";
1193 }
1194 }
1195 }
1196 } elsif ($header_skip_qt_begin_namespace_test == 0 and $line =~ /^QT_BEGIN_NAMESPACE(_[A-Z_]+)?\s*$/) {
1197 $qt_namespace_suffix = defined($1) ? $1 : "";
1198 $qt_begin_namespace_found = 1;
1199 } elsif ($header_skip_qt_begin_namespace_test == 0 and $line =~ /^QT_END_NAMESPACE$qt_namespace_suffix\s*$/) {
1200 $qt_end_namespace_found = 1;
1201 }
1202 }
1203
1204 if ($header_skip_qt_begin_namespace_test == 0 and $stop_processing == 0) {
1205 if ($qt_begin_namespace_found == 0) {
1206 print "$lib: WARNING: $iheader does not include QT_BEGIN_NAMESPACE\n";
1207 }
1208
1209 if ($qt_begin_namespace_found && $qt_end_namespace_found == 0) {
1210 print "$lib: WARNING: $iheader has QT_BEGIN_NAMESPACE$qt_namespace_suffix but no QT_END_NAMESPACE$qt_namespace_suffix\n";
1211 }
1212 }
1213
1214 close(F);
1215 }
1216 }
1217 }
1218 }
1219 }
1220 }
1221}
1222
1223exit 0;

Subscribers

People subscribed via source and target branches