qt5.7.0 first attempt

moved from monolitic pkg to single submodules
missing: qt5-gamepad and qt5-wayland
This commit is contained in:
AlmAck 2016-06-20 22:05:28 +01:00
parent 4097261940
commit 7772ce2ecc
46 changed files with 2089 additions and 64 deletions

37
qt5-3d/PKGBUILD Normal file
View File

@ -0,0 +1,37 @@
source ../qt5.conf
pkgname=qt5-3d
pkgver=${QSubVersion}
pkgrel=2
arch=('x86_64')
url='http://qt-project.org/'
license=('GPL3' 'LGPL' 'FDL' 'custom')
pkgdesc='C++ and QML APIs for easy inclusion of 3D graphics'
depends=('qt5-declarative') #assimp
makedepends=()
groups=('qt5')
options=('debug')
source=( $(getSrc ${pkgname}) )
md5sums=( $(getSum ${pkgname}) )
prepare() {
mkdir -p build
}
build() {
cd build
qmake-qt5 ../$(getPkgName ${pkgname})
make
}
package() {
cd build
make INSTALL_ROOT="$pkgdir" install
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
qtprlfix
install -d "$pkgdir"/usr/share/licenses
ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/${pkgname}
}

118
qt5-base/PKGBUILD Normal file
View File

@ -0,0 +1,118 @@
source ../qt5.conf
pkgname=qt5-base
pkgver=${QSubVersion}
pkgrel=2
arch=('x86_64')
url='http://qt-project.org/'
license=('GPL3' 'LGPL' 'FDL' 'custom')
pkgdesc='A cross-platform application and UI framework'
depends=('libjpeg-turbo' 'xcb-util-keysyms' 'libgl' 'fontconfig'
'xcb-util-wm' 'libxrender' 'libxi' 'sqlite3' 'xcb-util-image' 'icu'
'libinput' 'libsm' 'libxkbcommon-x11' 'libproxy' 'dbus')
makedepends=('mtdev' 'libmariadbclient' 'sqlite3' 'unixodbc' 'postgresql-libs' 'alsa-lib' 'gst-plugins-base-libs'
'libpulse' 'cups' 'freetds')
optdepends=('qt5-svg: to use SVG icon themes'
'postgresql-libs: PostgreSQL driver'
'libmariadbclient: MariaDB driver'
'unixodbc: ODBC driver'
'freetds: MS SQL driver'
'mtdev: evdev plugin')
groups=('qt5')
options=('debug')
source=( $(getSrc ${pkgname})
qtbug-53071.patch::"https://github.com/qtproject/qtbase/commit/e9041c7fc.patch"
qtbug-53071b.patch::"https://github.com/qtproject/qtbase/commit/cd25866f.patch")
md5sums=( $(getSum ${pkgname})
'462f079cd46f869def6858903a718bf5'
'da4fd787ea877516397a027412e975e1')
prepare() {
cd $(getPkgName ${pkgname})
# Build qmake using Chakra {C,LD}FLAGS
# This also sets default {C,CXX,LD}FLAGS for projects built using qmake
sed -i -e "s|^\(QMAKE_CFLAGS_RELEASE.*\)|\1 ${CFLAGS}|" \
mkspecs/common/gcc-base.conf
sed -i -e "s|^\(QMAKE_LFLAGS_RELEASE.*\)|\1 ${LDFLAGS}|" \
mkspecs/common/g++-unix.conf
# Use python2 for Python 2.x
find . -name '*.py' -exec sed -i \
's|#![ ]*/usr/bin/python$|&2|;s|#![ ]*/usr/bin/env python$|&2|' {} +
# Fix libsystemd-journal detection
sed -e 's|libsystemd-journal|libsystemd|' -i config.tests/unix/journald/journald.pro -i src/corelib/global/global.pri
# Fix parsing of tzfile(5) POSIX rule zone names with bracket quotes
patch -p1 -i ../qtbug-53071.patch
patch -p1 -i ../qtbug-53071b.patch
}
build() {
cd $(getPkgName ${pkgname})
# export QTDIR="${srcdir}"/$(getPkgName ${pkgname})
# export LD_LIBRARY_PATH="${QTDIR}"/lib:"${LD_LIBRARY_PATH}"
# export QT_PLUGIN_PATH="${QTDIR}"/qtbase/plugins
export _xkbconfigroot=$(pkg-config --variable=xkb_base xkeyboard-config)
PYTHON=/usr/bin/python2 ./configure -confirm-license -opensource -v \
-prefix /usr \
-bindir /usr/lib/qt5/bin \
-docdir /usr/share/doc/qt5 \
-force-debug-info \
-headerdir /usr/include/qt5 \
-archdatadir /usr/lib/qt5 \
-datadir /usr/share/qt5 \
-sysconfdir /etc/xdg \
-examplesdir /usr/share/doc/qt5/examples \
-plugindir /usr/lib/qt5/plugins \
-importdir /usr/lib/qt5/imports \
-qmldir /usr/lib/qt5/qml \
-testsdir /usr/share/qt5/tests \
-translationdir /usr/share/qt5/translations \
-plugin-sql-{psql,mysql,sqlite,odbc} \
-system-sqlite \
-openssl-linked \
-nomake tests \
-nomake examples \
-no-rpath \
-optimized-qmake \
-dbus-linked \
-system-harfbuzz \
-journald \
-libinput \
-reduce-relocations \
-opengl desktop \
-feature-menu \
-feature-textdate \
-feature-ftp \
-xkb-config-root $_xkbconfigroot \
-system-xkbcommon
make
}
package() {
cd $(getPkgName ${pkgname})
make INSTALL_ROOT="${pkgdir}" install
install -D -m644 LGPL_EXCEPTION.txt \
"${pkgdir}"/usr/share/licenses/${pkgname}/LGPL_EXCEPTION.txt
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
qtprlfix
# Fix wrong qmake path in pri file
sed -i "s|${srcdir}/$(getPkgName ${pkgname})|/usr|" \
"${pkgdir}"/usr/lib/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri
# Useful symlinks
install -d "${pkgdir}"/usr/bin
for b in "${pkgdir}"/usr/lib/qt5/bin/*; do
ln -s /usr/lib/qt5/bin/$(basename $b) "${pkgdir}"/usr/bin/$(basename $b)-qt5
done
}

148
qt5-base/qt5.sums Normal file
View File

@ -0,0 +1,148 @@
c599b0ab447c9a23cf94353c549787ac qt3d-opensource-src-5.7.0-rc.7z
b501a4e5c0684f5b1234f2d1a0d71f0f qt3d-opensource-src-5.7.0-rc.tar.gz
26887297fef9c58c3fb5ffa6a48e4e7b qt3d-opensource-src-5.7.0-rc.tar.xz
d1b8711e2b9fb6f815be61e86d9b0382 qt3d-opensource-src-5.7.0-rc.zip
2b051e196183a2f202b4ac3946a217ca qtactiveqt-opensource-src-5.7.0-rc.7z
760bee3a508c7dadd5df9cacc19ab31d qtactiveqt-opensource-src-5.7.0-rc.tar.gz
4f82181b1fc2e312a4fdd0f151671802 qtactiveqt-opensource-src-5.7.0-rc.tar.xz
1cf00e80957f04080319f0d03dccb224 qtactiveqt-opensource-src-5.7.0-rc.zip
4275a170e94d45b3950617dd8c6fd70d qtandroidextras-opensource-src-5.7.0-rc.7z
29ac629faeccdd2dcd3942de3e210d50 qtandroidextras-opensource-src-5.7.0-rc.tar.gz
6878c2ced9375193a31d556d7b6a657c qtandroidextras-opensource-src-5.7.0-rc.tar.xz
48828bfed13d6e1a43a63ce703e61984 qtandroidextras-opensource-src-5.7.0-rc.zip
9d7f203f62a63579d8eb4264eef59f3f qtbase-opensource-src-5.7.0-rc.7z
d5c9adc869daf6e0f307347542af067a qtbase-opensource-src-5.7.0-rc.tar.gz
e662dde5b593dd40f84a9dcad66fc9c2 qtbase-opensource-src-5.7.0-rc.tar.xz
3de407c33f44784c13aafd158edd6bae qtbase-opensource-src-5.7.0-rc.zip
5ed38d841e3c9d5a4a61d6cdf4eed38e qtcanvas3d-opensource-src-5.7.0-rc.7z
97e0dc5dae8aa948be8cb4802c7fd2ec qtcanvas3d-opensource-src-5.7.0-rc.tar.gz
98069234748dcb50e761d2ffd0957c09 qtcanvas3d-opensource-src-5.7.0-rc.tar.xz
5fa100931b4b5e1b3836ae47715fda30 qtcanvas3d-opensource-src-5.7.0-rc.zip
91bedbaff6a6ccea0db9d193179c48f7 qtcharts-opensource-src-5.7.0-rc.7z
6d62045dd0122e8d15f48589addcd46c qtcharts-opensource-src-5.7.0-rc.tar.gz
257fba5cc29e17923d82037cc46741ef qtcharts-opensource-src-5.7.0-rc.tar.xz
512b3b86577b5a8d6b488e9f90d806d7 qtcharts-opensource-src-5.7.0-rc.zip
dc0c5d8bb18d650046fe7841b26925a6 qtconnectivity-opensource-src-5.7.0-rc.7z
6bfa21670018e4a81a2f36672224c836 qtconnectivity-opensource-src-5.7.0-rc.tar.gz
ded526c87028234eb9c41b7d0e2588fb qtconnectivity-opensource-src-5.7.0-rc.tar.xz
4f03e26355c4e19a8cc1ace25c843873 qtconnectivity-opensource-src-5.7.0-rc.zip
49d2f352e0aa07151b8e472ee53e89ac qtdatavis3d-opensource-src-5.7.0-rc.7z
4a43e03c46ad03f63900cecb07400fad qtdatavis3d-opensource-src-5.7.0-rc.tar.gz
edcf8a84e98a1e877917ee31fd90f1d6 qtdatavis3d-opensource-src-5.7.0-rc.tar.xz
e41006d318bb62a02d9cf888a6821e36 qtdatavis3d-opensource-src-5.7.0-rc.zip
ad87ef7e4ff525a0b31daa277e8312f1 qtdeclarative-opensource-src-5.7.0-rc.7z
921f836760d03e9811258bf60e4471cf qtdeclarative-opensource-src-5.7.0-rc.tar.gz
d2dc821e89904f2513ab3155d2681a11 qtdeclarative-opensource-src-5.7.0-rc.tar.xz
8fc0d6cff195a170f097f5f3f2f063fe qtdeclarative-opensource-src-5.7.0-rc.zip
8897c5e7b5bcc1f5ffeaa0fc8334db89 qtdeclarative-render2d-opensource-src-5.7.0-rc.7z
9bf59ab673c2019b67bb66e782db76f5 qtdeclarative-render2d-opensource-src-5.7.0-rc.tar.gz
4d04255d557f2de3c7d99e019973e3a0 qtdeclarative-render2d-opensource-src-5.7.0-rc.tar.xz
17b10042ff5697de054b1dcc14a22ce5 qtdeclarative-render2d-opensource-src-5.7.0-rc.zip
a5ffdb3c2afb45ceabfb325d13b66c30 qtdoc-opensource-src-5.7.0-rc.7z
f249db6025c7746f633a3f5282589e82 qtdoc-opensource-src-5.7.0-rc.tar.gz
bc82f74018c5794369c1dbf456822335 qtdoc-opensource-src-5.7.0-rc.tar.xz
927c38517e2dccb7caa8307ac2967415 qtdoc-opensource-src-5.7.0-rc.zip
5119db86421ded77f4a466b5ec2bbc94 qtgamepad-opensource-src-5.7.0-rc.7z
f4d71ca8e3ecb05f0ea1c9e3357a5529 qtgamepad-opensource-src-5.7.0-rc.tar.gz
fa10255c24324b957865bf9026ae8ebe qtgamepad-opensource-src-5.7.0-rc.tar.xz
9c49b5093e7cc40453428ed46c473f4f qtgamepad-opensource-src-5.7.0-rc.zip
3b4fa80ba527f2a3a2d30b60ce84ae7a qtgraphicaleffects-opensource-src-5.7.0-rc.7z
0161412c772a8d1118356d786ad590c9 qtgraphicaleffects-opensource-src-5.7.0-rc.tar.gz
4fb9fad87ffc430179aa09589256d1e1 qtgraphicaleffects-opensource-src-5.7.0-rc.tar.xz
bc613a136f48d72f3091119e9f79a3e6 qtgraphicaleffects-opensource-src-5.7.0-rc.zip
14f0ccf4ae53fd6c9ef511248051b8da qtimageformats-opensource-src-5.7.0-rc.7z
dd58fa0594d09b49d157b1f6edcf12ea qtimageformats-opensource-src-5.7.0-rc.tar.gz
6623692c03787cebd9d44fc4a5c22dbe qtimageformats-opensource-src-5.7.0-rc.tar.xz
b96f50a241694a912b369fa07b9b19f3 qtimageformats-opensource-src-5.7.0-rc.zip
6cbb438889d6bcf7051251c94d9efab8 qtlocation-opensource-src-5.7.0-rc.7z
114e6db1918e7a1a49836ed71cf8bfc5 qtlocation-opensource-src-5.7.0-rc.tar.gz
df7ae975f03b6483306126e1efc15469 qtlocation-opensource-src-5.7.0-rc.tar.xz
2139d55e7c0d71a243fabe99e043041d qtlocation-opensource-src-5.7.0-rc.zip
bbe7a106da5e58902ce81a2ea649e949 qtmacextras-opensource-src-5.7.0-rc.7z
dd632e78adc59e60db6581b6a2cb9013 qtmacextras-opensource-src-5.7.0-rc.tar.gz
d51bdd2f3888769518e0b3cc67c75429 qtmacextras-opensource-src-5.7.0-rc.tar.xz
6927797514e2deae47eceb7e2466a1c0 qtmacextras-opensource-src-5.7.0-rc.zip
6c2449b6fe5d65c797faeafea9ec1ea6 qtmultimedia-opensource-src-5.7.0-rc.7z
6935f89436b89ee6f2598f7dad99248d qtmultimedia-opensource-src-5.7.0-rc.tar.gz
fb348e3e7c1ea3c1a9679cc352c14eb5 qtmultimedia-opensource-src-5.7.0-rc.tar.xz
c8f77791ba5c11d9c188c0c2165a6e06 qtmultimedia-opensource-src-5.7.0-rc.zip
0148faf26e91e6e7d6a7080ce5b2c425 qtpurchasing-opensource-src-5.7.0-rc.7z
f4cb1bf23b9a97ed80fe50e687c2db34 qtpurchasing-opensource-src-5.7.0-rc.tar.gz
87ce76ff3bf3bc7d9d6b2e33cb594338 qtpurchasing-opensource-src-5.7.0-rc.tar.xz
a9ea35a2af21c167d55801ceffce9c62 qtpurchasing-opensource-src-5.7.0-rc.zip
0ce61582031d4482e253caba3a588947 qtquickcontrols2-opensource-src-5.7.0-rc.7z
ceda1c9629a7ba3d5d0ac72d98cb275e qtquickcontrols2-opensource-src-5.7.0-rc.tar.gz
4c3eaed32bb5397faf6603672a17c0fd qtquickcontrols2-opensource-src-5.7.0-rc.tar.xz
e9479f4e3040490d6845f8b75bd2b967 qtquickcontrols2-opensource-src-5.7.0-rc.zip
0739dea9f051c7d1321d56a2bef11808 qtquickcontrols-opensource-src-5.7.0-rc.7z
c5ae4c1191dafc8492b0267d3774a761 qtquickcontrols-opensource-src-5.7.0-rc.tar.gz
50a8ef2173fd1729f90e3ec623dfb2ea qtquickcontrols-opensource-src-5.7.0-rc.tar.xz
ebba288dce4670ebbe84e7622263b68f qtquickcontrols-opensource-src-5.7.0-rc.zip
67135415b94bb3f4b640b619037cfbe7 qtscript-opensource-src-5.7.0-rc.7z
1a9cbbcc8e64def809abb8343ff630df qtscript-opensource-src-5.7.0-rc.tar.gz
9b7174dc37202807b5e5c7f18eeb1687 qtscript-opensource-src-5.7.0-rc.tar.xz
46aa0058b176f3be25f1afcb01fb8e04 qtscript-opensource-src-5.7.0-rc.zip
917d057e2c6c7ab5311affd1f959454e qtscxml-opensource-src-5.7.0-rc.7z
f0bc5c89eddb8ef33d121fab0d533548 qtscxml-opensource-src-5.7.0-rc.tar.gz
e243fca3a5212b39526d13d4ab5f7f6d qtscxml-opensource-src-5.7.0-rc.tar.xz
6f31827c6a104f964f78c4b5652fa2e7 qtscxml-opensource-src-5.7.0-rc.zip
ee27f6dfe44e33e014bc6d2c0cd5191b qtsensors-opensource-src-5.7.0-rc.7z
0028ac33348eb8aed413210c26b30aca qtsensors-opensource-src-5.7.0-rc.tar.gz
530f5d3122cd1e4b70f4ec0242f05d44 qtsensors-opensource-src-5.7.0-rc.tar.xz
f7fe94c78e4aaa72b6986fe2cb3f62d8 qtsensors-opensource-src-5.7.0-rc.zip
883353ea82435b63c754681e329d1cbf qtserialbus-opensource-src-5.7.0-rc.7z
4fe37ab7bc975c3bcf80a1cdf976af28 qtserialbus-opensource-src-5.7.0-rc.tar.gz
ab7c2f82a0010368ffd61a497da18042 qtserialbus-opensource-src-5.7.0-rc.tar.xz
1d22095a17abcb1033e9d5fb876c75cb qtserialbus-opensource-src-5.7.0-rc.zip
0b1ab97f4364ecb92f41a2b508b79f8a qtserialport-opensource-src-5.7.0-rc.7z
606277e08ea0c6f52bc1e55da373aa66 qtserialport-opensource-src-5.7.0-rc.tar.gz
53b585616bc422e5a4cab9e998b3ae42 qtserialport-opensource-src-5.7.0-rc.tar.xz
d9b156cd325afdb616e5fd8aaf520e35 qtserialport-opensource-src-5.7.0-rc.zip
0ad1077faed6a5813d7a24604564e50e qtsvg-opensource-src-5.7.0-rc.7z
ba423c574e9cb8814f027d87ede3cdeb qtsvg-opensource-src-5.7.0-rc.tar.gz
02f483b3248684b09a6f7fecbbda360c qtsvg-opensource-src-5.7.0-rc.tar.xz
d6f0d0069f44d1953986c4942208d4f7 qtsvg-opensource-src-5.7.0-rc.zip
87b1350d3fbcb310a4fee2002a53817b qttools-opensource-src-5.7.0-rc.7z
ba9a834303f1df2581b4458f45ea6cc3 qttools-opensource-src-5.7.0-rc.tar.gz
b19a6b49b7b03168e7768628516db563 qttools-opensource-src-5.7.0-rc.tar.xz
e8162eb1b1dde539fd07a5bf8e18248a qttools-opensource-src-5.7.0-rc.zip
6357f6c054b82cbb759df6fb60ff1977 qttranslations-opensource-src-5.7.0-rc.7z
1cc4f62dd9e1b9c74999e0cbbde4c459 qttranslations-opensource-src-5.7.0-rc.tar.gz
4aa63823b51ec23bf6d14e9c2c16cbff qttranslations-opensource-src-5.7.0-rc.tar.xz
fe54eaa5359bce0d2c0ff2619d2e91c2 qttranslations-opensource-src-5.7.0-rc.zip
3670c11b86c7f8902f7fa5b419091ab3 qtvirtualkeyboard-opensource-src-5.7.0-rc.7z
cb0915c05265b79e3647970aec9d4b99 qtvirtualkeyboard-opensource-src-5.7.0-rc.tar.gz
77d0efcf16eb1a905c18f101cf324755 qtvirtualkeyboard-opensource-src-5.7.0-rc.tar.xz
9f0d8dc276d6519b7cb40f5ad7d63fef qtvirtualkeyboard-opensource-src-5.7.0-rc.zip
834ad80eee3e38bdf8241270dc42963d qtwayland-opensource-src-5.7.0-rc.7z
9d33e6419c5480c65b2551d3b1a76207 qtwayland-opensource-src-5.7.0-rc.tar.gz
5f389cc11043a53d971d05bc8f5591bb qtwayland-opensource-src-5.7.0-rc.tar.xz
23c0acecab9e61ec707029cd820098ff qtwayland-opensource-src-5.7.0-rc.zip
de0f9040b68b56b4d5b5d4d3e931312d qtwebchannel-opensource-src-5.7.0-rc.7z
9b013c26aef02437f8f401437899a5b5 qtwebchannel-opensource-src-5.7.0-rc.tar.gz
1413f60df06f5e739957873df4cba0c3 qtwebchannel-opensource-src-5.7.0-rc.tar.xz
daf42b336123697bc1391c6da371dd73 qtwebchannel-opensource-src-5.7.0-rc.zip
d2bfab4c9a490b0eb59890059e94ba44 qtwebengine-opensource-src-5.7.0-rc.7z
b584f135ba969d5a33c8e0f7b7a5946f qtwebengine-opensource-src-5.7.0-rc.tar.gz
cb0e6ee6fc580e651f536b5250777d0a qtwebengine-opensource-src-5.7.0-rc.tar.xz
7706019512e734a6cf1cea90aa1b1af7 qtwebengine-opensource-src-5.7.0-rc.zip
cba1620a366daa3b7d0bcf8a006b8b03 qtwebsockets-opensource-src-5.7.0-rc.7z
e44d8aa8b6cb2b233661dd026fe5d1c7 qtwebsockets-opensource-src-5.7.0-rc.tar.gz
6be5632a807eee215561adef93a79076 qtwebsockets-opensource-src-5.7.0-rc.tar.xz
8eaf2545117b9c89707a54e0e74f5c9f qtwebsockets-opensource-src-5.7.0-rc.zip
6a63bb4e0b752b2b91e829093a45ba71 qtwebview-opensource-src-5.7.0-rc.7z
15aaf8b1c085005d10db2cfc5a4c0b0f qtwebview-opensource-src-5.7.0-rc.tar.gz
a0a22011d6710f343412d51a1c51b6aa qtwebview-opensource-src-5.7.0-rc.tar.xz
99e29e721dfcb5b783de7a21328d4948 qtwebview-opensource-src-5.7.0-rc.zip
b399b0daaab91362c5d7f555e97083b9 qtwinextras-opensource-src-5.7.0-rc.7z
039e15e72f894dbf57dad2b8a7f8ae8b qtwinextras-opensource-src-5.7.0-rc.tar.gz
6b008204892ca8901286f7cc36848d04 qtwinextras-opensource-src-5.7.0-rc.tar.xz
ab3f349e2a7774d57b4413c09dc953fa qtwinextras-opensource-src-5.7.0-rc.zip
526296cba26871c7f44132d310f0f427 qtx11extras-opensource-src-5.7.0-rc.7z
1fdb92567108ebf29a2033e500b0d89c qtx11extras-opensource-src-5.7.0-rc.tar.gz
7f87245a4a8fec5e86155111a5126e6f qtx11extras-opensource-src-5.7.0-rc.tar.xz
da4fa50e0d4472dbdaee0f161b10567c qtx11extras-opensource-src-5.7.0-rc.zip
e673bd1bc3b884112dcbc6ff14bc4145 qtxmlpatterns-opensource-src-5.7.0-rc.7z
c9abfd7a03fb62e6fde979e9db835345 qtxmlpatterns-opensource-src-5.7.0-rc.tar.gz
1821212e7e15ec0e1fc08a4f8b216f42 qtxmlpatterns-opensource-src-5.7.0-rc.tar.xz
a209bbcc2d5f676c2d82175c361f79f0 qtxmlpatterns-opensource-src-5.7.0-rc.zip

6
qt5-base/rebuild.list Normal file
View File

@ -0,0 +1,6 @@
fcitx-qt5
plasma-integration
gcin
calibre
akonadi
skrooge

37
qt5-canvas3d/PKGBUILD Normal file
View File

@ -0,0 +1,37 @@
source ../qt5.conf
pkgname=qt5-canvas3d
pkgver=${QSubVersion}
pkgrel=2
arch=('x86_64')
url='http://qt-project.org/'
license=('GPL3' 'LGPL' 'FDL' 'custom')
pkgdesc='A JavaScript 3D rendering API for Qt Quick'
depends=('qt5-declarative')
makedepends=()
groups=('qt5')
options=('debug')
source=( $(getSrc ${pkgname}) )
md5sums=( $(getSum ${pkgname}) )
prepare() {
mkdir -p build
}
build() {
cd build
qmake-qt5 ../$(getPkgName ${pkgname})
make
}
package() {
cd build
make INSTALL_ROOT="$pkgdir" install
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
qtprlfix
install -d "$pkgdir"/usr/share/licenses
ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/${pkgname}
}

38
qt5-charts/PKGBUILD Normal file
View File

@ -0,0 +1,38 @@
source ../qt5.conf
pkgname=qt5-charts
pkgver=${QSubVersion}
pkgrel=2
arch=('x86_64')
url='http://qt-project.org/'
license=('GPL3' 'LGPL' 'FDL' 'custom')
pkgdesc='Provides a set of easy to use chart components'
depends=('qt5-base')
makedepends=('qt5-declarative')
optdepends=('qt5-declarative: QML bindings')
groups=('qt5')
options=('debug')
source=( $(getSrc ${pkgname}) )
md5sums=( $(getSum ${pkgname}) )
prepare() {
mkdir -p build
}
build() {
cd build
qmake-qt5 ../$(getPkgName ${pkgname})
make
}
package() {
cd build
make INSTALL_ROOT="$pkgdir" install
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
qtprlfix
install -d "$pkgdir"/usr/share/licenses
ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/${pkgname}
}

38
qt5-connectivity/PKGBUILD Normal file
View File

@ -0,0 +1,38 @@
source ../qt5.conf
pkgname=qt5-connectivity
pkgver=${QSubVersion}
pkgrel=2
arch=('x86_64')
url='http://qt-project.org/'
license=('GPL3' 'LGPL' 'FDL' 'custom')
pkgdesc='Provides access to Bluetooth hardware'
depends=('qt5-base' 'bluez-libs')
makedepends=('qt5-declarative')
optdepends=('qt5-declarative: QML bindings')
groups=('qt5')
options=('debug')
source=( $(getSrc ${pkgname}) )
md5sums=( $(getSum ${pkgname}) )
prepare() {
mkdir -p build
}
build() {
cd build
qmake-qt5 ../$(getPkgName ${pkgname})
make
}
package() {
cd build
make INSTALL_ROOT="$pkgdir" install
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
qtprlfix
install -d "$pkgdir"/usr/share/licenses
ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/${pkgname}
}

38
qt5-datavis3d/PKGBUILD Normal file
View File

@ -0,0 +1,38 @@
source ../qt5.conf
pkgname=qt5-datavis3d
pkgver=${QSubVersion}
pkgrel=2
arch=('x86_64')
url='http://qt-project.org/'
license=('GPL3' 'LGPL' 'FDL' 'custom')
pkgdesc='Qt Data Visualization module'
depends=('qt5-base')
makedepends=('qt5-declarative')
optdepends=('qt5-declarative: QML bindings')
groups=('qt5')
options=('debug')
source=( $(getSrc ${pkgname}) )
md5sums=( $(getSum ${pkgname}) )
prepare() {
mkdir -p build
}
build() {
cd build
qmake-qt5 ../$(getPkgName ${pkgname})
make
}
package() {
cd build
make INSTALL_ROOT="$pkgdir" install
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
qtprlfix
install -d "$pkgdir"/usr/share/licenses
ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/${pkgname}
}

View File

@ -0,0 +1,37 @@
source ../qt5.conf
pkgname=qt5-declarative-render2d
pkgver=${QSubVersion}
pkgrel=2
arch=('x86_64')
url='http://qt-project.org/'
license=('GPL3' 'LGPL' 'FDL' 'custom')
pkgdesc='Raster backend for QtQuick scene graph'
depends=('qt5-declarative')
makedepends=()
groups=('qt5')
options=('debug')
source=( $(getSrc ${pkgname}) )
md5sums=( $(getSum ${pkgname}) )
prepare() {
mkdir -p build
}
build() {
cd build
qmake-qt5 ../$(getPkgName ${pkgname})
make
}
package() {
cd build
make INSTALL_ROOT="$pkgdir" install
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
qtprlfix
install -d "$pkgdir"/usr/share/licenses
ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/${pkgname}
}

47
qt5-declarative/PKGBUILD Normal file
View File

@ -0,0 +1,47 @@
source ../qt5.conf
pkgname=qt5-declarative
pkgver=${QSubVersion}
pkgrel=2
arch=('x86_64')
url='http://qt-project.org/'
license=('GPL3' 'LGPL' 'FDL' 'custom')
pkgdesc='Classes for QML and JavaScript languages'
depends=('qt5-xmlpatterns')
makedepends=('python2' 'cmake')
groups=('qt5')
options=('debug')
source=( $(getSrc ${pkgname}) )
md5sums=( $(getSum ${pkgname}) )
prepare() {
mkdir -p build
# Use python2 for Python 2.x
find -name '*.pro' -o -name '*.pri' | xargs sed -i -e 's|python -c|python2 -c|g' -e 's|python \$|python2 \$|g'
}
build() {
cd build
export PYTHON=python2
qmake-qt5 ../$(getPkgName ${pkgname})
make
}
package() {
cd build
make INSTALL_ROOT="$pkgdir" install
# Useful symlinks
install -d "$pkgdir"/usr/bin
for b in "$pkgdir"/usr/lib/qt5/bin/*; do
ln -s /usr/lib/qt/bin/$(basename $b) "$pkgdir"/usr/bin/$(basename $b)-qt5
done
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
qtprlfix
install -d "$pkgdir"/usr/share/licenses
ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/${pkgname}
}

67
qt5-doc/PKGBUILD Normal file
View File

@ -0,0 +1,67 @@
source ../qt5.conf
pkgname=qt5-doc
pkgver=${QSubVersion}
pkgrel=2
arch=('any')
url='http://qt-project.org/'
license=('GPL3' 'LGPL' 'FDL' 'custom')
pkgdesc='A cross-platform application and UI framework (Documentation)'
depends=('qt5-base')
makedepends=('qt5-tools' 'python2' 'pciutils' 'libxtst' 'libxcursor' 'libxrandr' 'libxss')
groups=('qt5')
source=("${QSingleServer}/qt-everywhere-opensource-src-${QVersion}.tar.xz")
md5sums=( $(getSum "qt-everywhere") )
prepare() {
cd $(getPkgName "qt-everywhere")
# Use python2 for Python 2.x
find . -name '*.py' -exec sed -i \
's|#![ ]*/usr/bin/python$|&2|;s|#![ ]*/usr/bin/env python$|&2|' {} +
find -name '*.pro' -o -name '*.pri' -o -name '*.prf' | xargs sed -i -e 's|python -c|python2 -c|g' -e 's|python \$|python2 \$|g'
ln -s /usr/lib/qt5/bin qttools/
ln -s /usr/lib/qt5/bin/{rcc,uic,moc} qtbase/bin/
# workaround c++11 detection with GCC6
sed -e '/requires(c++11)/d' -i qtserialbus/qtserialbus.pro
# Hack to force using python2
cd "$srcdir"
mkdir -p bin
ln -s /usr/bin/python2 bin/python
}
build() {
cd $(getPkgName "qt-everywhere")
export PATH="$srcdir/bin:$PATH"
PYTHON=/usr/bin/python2 ./configure -confirm-license -opensource \
-prefix /usr \
-bindir /usr/lib/qt5/bin \
-docdir /usr/share/doc/qt5 \
-headerdir /usr/include/qt5 \
-archdatadir /usr/lib/qt5 \
-datadir /usr/share/qt5 \
-sysconfdir /etc/xdg \
-examplesdir /usr/share/doc/qt5/examples \
-plugindir /usr/lib/qt5/plugins \
-importdir /usr/lib/qt5/imports \
-qmldir /usr/lib/qt5/qml \
-testsdir /usr/share/qt5/tests \
-translationdir /usr/share/qt5/translations
make docs
}
package() {
cd $(getPkgName "qt-everywhere")
make INSTALL_ROOT="$pkgdir" install_docs
install -d "$pkgdir"/usr/share/licenses
ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/${pkgname}
# Fix conflicts with qt5-examples
rm -r "$pkgdir"/usr/share/doc/qt5/examples
}

37
qt5-examples/PKGBUILD Normal file
View File

@ -0,0 +1,37 @@
source ../qt5.conf
pkgname=qt5-examples
pkgver=${QSubVersion}
pkgrel=2
arch=('any')
url='http://qt-project.org/'
license=('GPL3' 'LGPL' 'FDL' 'custom')
pkgdesc='Examples and demos from qt5 documentation'
depends=('qt5-doc')
makedepends=()
groups=('qt5')
source=("${QSingleServer}/qt-everywhere-opensource-src-${QVersion}.tar.xz")
md5sums=( $(getSum "qt-everywhere") )
package() {
_base="$pkgdir"/usr/share/doc/qt5/examples
# The various example dirs have conflicting .pro files, but
# QtCreator requires them to be in the same top-level directory.
# Matching the Qt5 installer, only the qtbase project is kept.
mkdir -p $_base
cp $(getPkgName "qt-everywhere")/qtbase/examples/examples.pro $_base
_fdirs=$(find "$(getPkgName "qt-everywhere")" -maxdepth 2 -type d -name examples)
for _dir in $_fdirs; do
_mod=$(basename ${_dir%/examples})
if [ -e "$_dir/README" ]; then
cp $_dir/README $_dir/README.$_mod
fi
# Don't overwrite existing examples.pro file
mkdir $_base/$_mod
cp -rn $_dir/* $_base/$_mod
done
}

38
qt5-gamepad/PKGBUILD Normal file
View File

@ -0,0 +1,38 @@
source ../qt5.conf
pkgname=qt5-gamepad
pkgver=${QSubVersion}
pkgrel=1
arch=('x86_64')
url='http://qt-project.org/'
license=('GPL3' 'LGPL' 'FDL' 'custom')
pkgdesc='Adds support for getting events from gamepad devices'
depends=('qt5-base' 'sdl2' 'libevdev')
makedepends=('qt5-declarative')
optdepends=('qt5-declarative: QML bindings')
groups=('qt5')
options=('debug')
source=( $(getSrc ${pkgname}) )
md5sums=( $(getSum ${pkgname}) )
prepare() {
mkdir -p build
}
build() {
cd build
qmake-qt5 ../$(getPkgName ${pkgname})
make
}
package() {
cd build
make INSTALL_ROOT="$pkgdir" install
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
qtprlfix
install -d "$pkgdir"/usr/share/licenses
ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/${pkgname}
}

View File

@ -0,0 +1,34 @@
source ../qt5.conf
pkgname=qt5-graphicaleffects
pkgver=${QSubVersion}
pkgrel=2
arch=('x86_64')
url='http://qt-project.org/'
license=('GPL3' 'LGPL' 'FDL' 'custom')
pkgdesc='Graphical effects for use with Qt Quick 2'
depends=('qt5-declarative')
makedepends=()
groups=('qt5')
options=('debug')
source=( $(getSrc ${pkgname}) )
md5sums=( $(getSum ${pkgname}) )
prepare() {
mkdir -p build
}
build() {
cd build
qmake-qt5 ../$(getPkgName ${pkgname})
make
}
package() {
cd build
make INSTALL_ROOT="$pkgdir" install
install -d "$pkgdir"/usr/share/licenses
ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/${pkgname}
}

34
qt5-imageformats/PKGBUILD Normal file
View File

@ -0,0 +1,34 @@
source ../qt5.conf
pkgname=qt5-imageformats
pkgver=${QSubVersion}
pkgrel=2
arch=('x86_64')
url='http://qt-project.org/'
license=('GPL3' 'LGPL' 'FDL' 'custom')
pkgdesc='Plugins for additional image formats: TIFF, MNG, TGA, WBMP'
depends=('qt5-base' 'jasper' 'libmng' 'libwebp')
makedepends=()
groups=('qt5')
options=('debug')
source=( $(getSrc ${pkgname}) )
md5sums=( $(getSum ${pkgname}) )
prepare() {
mkdir -p build
}
build() {
cd build
qmake-qt5 ../$(getPkgName ${pkgname})
make
}
package() {
cd build
make INSTALL_ROOT="$pkgdir" install
install -d "$pkgdir"/usr/share/licenses
ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/${pkgname}
}

37
qt5-location/PKGBUILD Normal file
View File

@ -0,0 +1,37 @@
source ../qt5.conf
pkgname=qt5-location
pkgver=${QSubVersion}
pkgrel=2
arch=('x86_64')
url='http://qt-project.org/'
license=('GPL3' 'LGPL' 'FDL' 'custom')
pkgdesc='Provides access to position, satellite and area monitoring classes'
depends=('qt5-declarative')
makedepends=()
groups=('qt5')
options=('debug')
source=( $(getSrc ${pkgname}) )
md5sums=( $(getSum ${pkgname}) )
prepare() {
mkdir -p build
}
build() {
cd build
qmake-qt5 ../$(getPkgName ${pkgname})
make
}
package() {
cd build
make INSTALL_ROOT="$pkgdir" install
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
qtprlfix
install -d "$pkgdir"/usr/share/licenses
ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/${pkgname}
}

38
qt5-multimedia/PKGBUILD Normal file
View File

@ -0,0 +1,38 @@
source ../qt5.conf
pkgname=qt5-multimedia
pkgver=${QSubVersion}
pkgrel=2
arch=('x86_64')
url='http://qt-project.org/'
license=('GPL3' 'LGPL' 'FDL' 'custom')
pkgdesc='Classes for audio, video, radio and camera functionality'
depends=('qt5-base' 'gst-plugins-base-libs' 'libpulse' 'openal')
makedepends=('qt5-declarative' 'gst-plugins-bad')
optdepends=('qt5-declarative: QML bindings' 'gst-plugins-bad: camera support')
groups=('qt5')
options=('debug')
source=( $(getSrc ${pkgname}) )
md5sums=( $(getSum ${pkgname}) )
prepare() {
mkdir -p build
}
build() {
cd build
qmake-qt5 ../$(getPkgName ${pkgname})
make
}
package() {
cd build
make INSTALL_ROOT="$pkgdir" install
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
qtprlfix
install -d "$pkgdir"/usr/share/licenses
ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/${pkgname}
}

View File

@ -0,0 +1,37 @@
source ../qt5.conf
pkgname=qt5-quickcontrols
pkgver=${QSubVersion}
pkgrel=2
arch=('x86_64')
url='http://qt-project.org/'
license=('GPL3' 'LGPL' 'FDL' 'custom')
pkgdesc='Reusable Qt Quick based UI controls to create classic desktop-style user interfaces'
depends=('qt5-declarative')
makedepends=()
groups=('qt5')
options=('debug')
source=( $(getSrc ${pkgname}) )
md5sums=( $(getSum ${pkgname}) )
prepare() {
mkdir -p build
}
build() {
cd build
qmake-qt5 ../$(getPkgName ${pkgname})
make
}
package() {
cd build
make INSTALL_ROOT="$pkgdir" install
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
qtprlfix
install -d "$pkgdir"/usr/share/licenses
ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/${pkgname}
}

View File

@ -0,0 +1,36 @@
source ../qt5.conf
pkgname=qt5-quickcontrols2
pkgver=${QSubVersion}
pkgrel=2
arch=('x86_64')
url='http://qt-project.org/'
license=('GPL3' 'LGPL' 'FDL' 'custom')
pkgdesc='Next generation user interface controls based on Qt Quick'
depends=('qt5-declarative')
makedepends=()
groups=('qt5')
options=('debug')
source=( $(getSrc ${pkgname}) )
md5sums=( $(getSum ${pkgname}) )
prepare() {
mkdir -p build
}
build() {
cd build
qmake-qt5 ../$(getPkgName ${pkgname})
make
}
package() {
cd build
make INSTALL_ROOT="$pkgdir" install
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
qtprlfix
install -d "$pkgdir"/usr/share/licenses
ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/${pkgname}
}

37
qt5-script/PKGBUILD Normal file
View File

@ -0,0 +1,37 @@
source ../qt5.conf
pkgname=qt5-script
pkgver=${QSubVersion}
pkgrel=2
arch=('x86_64')
url='http://qt-project.org/'
license=('GPL3' 'LGPL' 'FDL' 'custom')
pkgdesc='Classes for making Qt applications scriptable. Provided for Qt 4.x compatibility'
depends=('qt5-base')
makedepends=()
groups=('qt5')
options=('debug')
source=( $(getSrc ${pkgname}) )
md5sums=( $(getSum ${pkgname}) )
prepare() {
mkdir -p build
}
build() {
cd build
qmake-qt5 ../$(getPkgName ${pkgname})
make
}
package() {
cd build
make INSTALL_ROOT="$pkgdir" install
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
qtprlfix
install -d "$pkgdir"/usr/share/licenses
ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/${pkgname}
}

38
qt5-scxml/PKGBUILD Normal file
View File

@ -0,0 +1,38 @@
source ../qt5.conf
pkgname=qt5-scxml
pkgver=${QSubVersion}
pkgrel=2
arch=('x86_64')
url='http://qt-project.org/'
license=('GPL3' 'LGPL' 'FDL' 'custom')
pkgdesc='Static and runtime integration of SCXML models into Qt code'
depends=('qt5-declarative')
makedepends=()
groups=('qt5')
options=('debug')
source=( $(getSrc ${pkgname}) )
md5sums=( $(getSum ${pkgname}) )
prepare() {
mkdir -p build
}
build() {
cd build
qmake-qt5 ../$(getPkgName ${pkgname})
make
}
package() {
cd build
make INSTALL_ROOT="$pkgdir" install
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
qtprlfix
install -d "$pkgdir"/usr/share/licenses
ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/${pkgname}
}

38
qt5-sensors/PKGBUILD Normal file
View File

@ -0,0 +1,38 @@
source ../qt5.conf
pkgname=qt5-sensors
pkgver=${QSubVersion}
pkgrel=2
arch=('x86_64')
url='http://qt-project.org/'
license=('GPL3' 'LGPL' 'FDL' 'custom')
pkgdesc='Provides access to sensor hardware and motion gesture recognition'
depends=('qt5-base')
makedepends=('qt5-declarative')
optdepends=('qt5-declarative: QML bindings')
groups=('qt5')
options=('debug')
source=( $(getSrc ${pkgname}) )
md5sums=( $(getSum ${pkgname}) )
prepare() {
mkdir -p build
}
build() {
cd build
qmake-qt5 ../$(getPkgName ${pkgname})
make
}
package() {
cd build
make INSTALL_ROOT="$pkgdir" install
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
qtprlfix
install -d "$pkgdir"/usr/share/licenses
ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/${pkgname}
}

37
qt5-serialbus/PKGBUILD Normal file
View File

@ -0,0 +1,37 @@
source ../qt5.conf
pkgname=qt5-serialbus
pkgver=${QSubVersion}
pkgrel=2
arch=('x86_64')
url='http://qt-project.org/'
license=('GPL3' 'LGPL' 'FDL' 'custom')
pkgdesc='Qt module for general purpose serial bus access'
depends=('qt5-serialport')
makedepends=()
groups=('qt5')
options=('debug')
source=( $(getSrc ${pkgname}) )
md5sums=( $(getSum ${pkgname}) )
prepare() {
mkdir -p build
}
build() {
cd build
qmake-qt5 ../$(getPkgName ${pkgname})
make
}
package() {
cd build
make INSTALL_ROOT="$pkgdir" install
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
qtprlfix
install -d "$pkgdir"/usr/share/licenses
ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/${pkgname}
}

38
qt5-serialport/PKGBUILD Normal file
View File

@ -0,0 +1,38 @@
source ../qt5.conf
pkgname=qt5-serialport
pkgver=${QSubVersion}
pkgrel=2
arch=('x86_64')
url='http://qt-project.org/'
license=('GPL3' 'LGPL' 'FDL' 'custom')
pkgdesc='Provides access to hardware and virtual serial ports'
depends=('qt5-base')
makedepends=()
groups=('qt5')
options=('debug')
source=( $(getSrc ${pkgname}) )
md5sums=( $(getSum ${pkgname}) )
prepare() {
mkdir -p build
}
build() {
cd build
qmake-qt5 ../$(getPkgName ${pkgname})
make
}
package() {
cd build
make INSTALL_ROOT="$pkgdir" install
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
qtprlfix
install -d "$pkgdir"/usr/share/licenses
ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/${pkgname}
}

36
qt5-svg/PKGBUILD Normal file
View File

@ -0,0 +1,36 @@
source ../qt5.conf
pkgname=qt5-svg
pkgver=${QSubVersion}
pkgrel=2
arch=('x86_64')
url='http://qt-project.org/'
license=('GPL3' 'LGPL' 'FDL' 'custom')
pkgdesc='Classes for displaying the contents of SVG files'
depends=('qt5-base')
makedepends=()
groups=('qt5')
options=('debug')
source=( $(getSrc ${pkgname}) )
md5sums=( $(getSum ${pkgname}) )
prepare() {
mkdir -p build
}
build() {
cd build
qmake-qt5 ../$(getPkgName ${pkgname})
make
}
package() {
cd build
make INSTALL_ROOT="$pkgdir" install
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
qtprlfix
install -d "$pkgdir"/usr/share/licenses
ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/${pkgname}
}

71
qt5-tools/PKGBUILD Normal file
View File

@ -0,0 +1,71 @@
source ../qt5.conf
pkgname=qt5-tools
pkgver=${QSubVersion}
pkgrel=2
arch=('x86_64')
url='http://qt-project.org/'
license=('GPL3' 'LGPL' 'FDL' 'custom')
pkgdesc='A cross-platform application and UI framework (Development Tools, QtHelp)'
depends=('qt5-base')
makedepends=('qt5-declarative' 'qt5-webkit')
optdepends=('qt5-doc: documentation' 'qt5-webkit: for Qt Assistant')
groups=('qt5')
options=('debug')
source=( $(getSrc ${pkgname})
{assistant,designer,linguist,qdbusviewer}-qt5.desktop)
md5sums=( $(getSum ${pkgname})
'892d3632bdcd9a22f191aa8f28a3c0e1'
'208921efc9e4c11fae762e9580ca23aa'
'59cbeef3e6090dcb7d2a7d32cd62ea08'
'7b93fdff30e7e0389b648ad68dd61355')
prepare() {
mkdir -p build
}
build() {
cd build
qmake-qt5 ../$(getPkgName ${pkgname})
make
}
package() {
cd build
make INSTALL_ROOT="${pkgdir}" install
cd ../$(getPkgName ${pkgname})
# install missing icons and desktop files
for icon in src/linguist/linguist/images/icons/linguist-*-32.png ; do
size=$(echo $(basename ${icon}) | cut -d- -f2)
install -p -D -m644 ${icon} \
"${pkgdir}/usr/share/icons/hicolor/${size}x${size}/apps/linguist-qt5.png"
done
install -D -m644 src/assistant/assistant/images/assistant.png \
"${pkgdir}/usr/share/icons/hicolor/32x32/apps/assistant-qt5.png"
install -D -m644 src/assistant/assistant/images/assistant-128.png \
"${pkgdir}/usr/share/icons/hicolor/128x128/apps/assistant-qt5.png"
install -D -m644 src/designer/src/designer/images/designer.png \
"${pkgdir}/usr/share/icons/hicolor/128x128/apps/QtProject-designer-qt5.png"
install -D -m644 src/qdbus/qdbusviewer/images/qdbusviewer.png \
"${pkgdir}/usr/share/icons/hicolor/32x32/apps/qdbusviewer-qt5.png"
install -D -m644 src/qdbus/qdbusviewer/images/qdbusviewer-128.png \
"${pkgdir}/usr/share/icons/hicolor/128x128/apps/qdbusviewer-qt5.png"
install -d "${pkgdir}/usr/share/applications"
install -m644 "${srcdir}"/{linguist-qt5,designer-qt5,assistant-qt5,qdbusviewer-qt5}.desktop \
"${pkgdir}/usr/share/applications/"
# Useful symlinks
install -d "${pkgdir}"/usr/bin
for b in "${pkgdir}"/usr/lib/qt5/bin/*; do
ln -s /usr/lib/qt5/bin/$(basename $b) "${pkgdir}"/usr/bin/$(basename $b)-qt5
done
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
qtprlfix
install -d "$pkgdir"/usr/share/licenses
ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/${pkgname}
}

View File

@ -0,0 +1,9 @@
[Desktop Entry]
Name=Qt Assistant
Comment=Shows Qt documentation and examples
Exec=/usr/bin/assistant-qt5
Icon=assistant
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;Documentation;

View File

@ -0,0 +1,11 @@
[Desktop Entry]
Name=Qt Designer
GenericName=Interface Designer
Comment=Design GUIs for Qt applications
Exec=/usr/bin/designer-qt5
Icon=designer
MimeType=application/x-designer;
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;

View File

@ -0,0 +1,10 @@
[Desktop Entry]
Name=Qt Linguist
Comment=Add translations to Qt applications
Exec=/usr/bin/linguist-qt5
Icon=linguist
MimeType=text/vnd.trolltech.linguist;application/x-linguist;
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;

View File

@ -0,0 +1,9 @@
[Desktop Entry]
Name=Qt QDbusViewer
GenericName=D-Bus Debugger
Comment=Debug D-Bus applications
Exec=/usr/lib/qt5/bin/qdbusviewer
Icon=qdbusviewer
Terminal=false
Type=Application
Categories=Qt;Development;Debugger;

33
qt5-translations/PKGBUILD Normal file
View File

@ -0,0 +1,33 @@
source ../qt5.conf
pkgname=qt5-translations
pkgver=${QSubVersion}
pkgrel=2
arch=('x86_64')
url='http://qt-project.org/'
license=('GPL3' 'LGPL' 'FDL' 'custom')
pkgdesc='A cross-platform application and UI framework (Translations)'
depends=('qt5-base')
makedepends=('qt5-tools')
groups=('qt5')
source=( $(getSrc ${pkgname}) )
md5sums=( $(getSum ${pkgname}) )
prepare() {
mkdir -p build
}
build() {
cd build
qmake-qt5 ../$(getPkgName ${pkgname})
make
}
package() {
cd build
make INSTALL_ROOT="$pkgdir" install
install -d "$pkgdir"/usr/share/licenses
ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/${pkgname}
}

View File

@ -0,0 +1,36 @@
source ../qt5.conf
pkgname=qt5-virtualkeyboard
pkgver=${QSubVersion}
pkgrel=2
arch=('x86_64')
url='http://qt-project.org/'
license=('GPL3' 'LGPL' 'FDL' 'custom')
pkgdesc='Virtual keyboard framework'
depends=('qt5-declarative' 'qt5-svg')
makedepends=()
groups=('qt5')
source=( $(getSrc ${pkgname}) )
md5sums=( $(getSum ${pkgname}) )
prepare() {
mkdir -p build
}
build() {
cd build
qmake-qt5 ../$(getPkgName ${pkgname})
make
}
package() {
cd build
make INSTALL_ROOT="$pkgdir" install
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
qtprlfix
install -d "$pkgdir"/usr/share/licenses
ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/${pkgname}
}

44
qt5-wayland/PKGBUILD Normal file
View File

@ -0,0 +1,44 @@
source ../qt5.conf
pkgname=qt5-wayland
pkgver=${QSubVersion}
pkgrel=1
arch=('x86_64')
url='http://qt-project.org/'
license=('GPL3' 'LGPL' 'FDL' 'custom')
pkgdesc='Provides APIs for Wayland'
depends=('qt5-declarative' 'libxcomposite')
makedepends=()
groups=('qt5')
source=( $(getSrc ${pkgname}) )
md5sums=( $(getSum ${pkgname}) )
prepare() {
mkdir -p build
}
build() {
#cd build
# build bug: https://bugreports.qt.io/browse/QTBUG-54148
#- out-of-tree build fails
#qmake-qt5 ../$(getPkgName ${pkgname})
#qmake-qt5 ../$(getPkgName ${pkgname})/src/plugins
cd $(getPkgName ${pkgname})
qmake-qt5 .
make
}
package() {
#cd build
cd $(getPkgName ${pkgname})
make INSTALL_ROOT="$pkgdir" install
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
qtprlfix
install -d "$pkgdir"/usr/share/licenses
ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/${pkgname}
}

37
qt5-webchannel/PKGBUILD Normal file
View File

@ -0,0 +1,37 @@
source ../qt5.conf
pkgname=qt5-webchannel
pkgver=${QSubVersion}
pkgrel=2
arch=('x86_64')
url='http://qt-project.org/'
license=('GPL3' 'LGPL' 'FDL' 'custom')
pkgdesc='Provides access to QObject or QML objects from HTML clients for seamless integration of Qt applications with HTML/JavaScript clients'
depends=('qt5-declarative')
makedepends=()
groups=('qt5')
source=( $(getSrc ${pkgname}) )
md5sums=( $(getSum ${pkgname}) )
prepare() {
mkdir -p build
}
build() {
cd build
qmake-qt5 ../$(getPkgName ${pkgname})
make
}
package() {
cd build
make INSTALL_ROOT="$pkgdir" install
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
qtprlfix
install -d "$pkgdir"/usr/share/licenses
ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/${pkgname}
}

View File

@ -1,40 +1,47 @@
# Contributions from Arch: source ../qt5.conf
# Contributor: Felix Yan <felixonmars@archlinux.org>
# Contributor: Andrea Scarpino <andrea@archlinux.org>
pkgname=qt5-webengine pkgname=qt5-webengine
_qtver=5.6.1 pkgver=${QSubVersion}
pkgver=${_qtver/-/} pkgrel=2
pkgrel=1
arch=('x86_64') arch=('x86_64')
url='http://qt-project.org/' url='http://qt-project.org/'
license=('GPL3' 'LGPL' 'FDL' 'custom') license=('GPL3' 'LGPL' 'FDL' 'custom')
pkgdesc='Provides support for web applications using the Chromium browser project' pkgdesc='Provides support for web applications using the Chromium browser project'
depends=('qt5-webchannel' 'qt5-location' 'libxcomposite' 'libxrandr' 'libxtst' 'libxcursor' 'libpulse' 'pciutils' 'libxss' depends=('qt5-webchannel' 'qt5-location' 'libxcomposite' 'libxrandr' 'libxtst' 'libxcursor' 'libpulse' 'pciutils' 'libxss' 'libvpx' 'opus'
'libvpx' 'opus' 'libevent' 'libsrtp' 'jsoncpp' 'libwebp' 'snappy' 'nss' 'libxml2' 'libxslt' 'icu' 'ffmpeg' 'zlib') 'libevent' 'libsrtp' 'jsoncpp' 'libwebp' 'snappy' 'nss' 'libxml2' 'libxslt' 'protobuf' 'libproxy') # minizip
makedepends=('python2' 'git' 'gperf' 'ninja' 're2c') makedepends=('python2' 'git' 'gperf')
_pkgfqn="${pkgname/5-/}-opensource-src-${_qtver}" groups=('qt5')
source=("http://download.qt.io/official_releases/qt/${pkgver%.*}/${_qtver}/submodules/${_pkgfqn}.tar.xz") options=('debug')
md5sums=('35f168743638b07157e20af0586f39a2') source=( $(getSrc ${pkgname})
qt5-webengine-nss.patch
qt5-webengine-fno-delete-null-pointer-checks.patch qt5-webengine-fno-delete-null-pointer-checks-2.patch)
md5sums=( $(getSum ${pkgname})
'2a1610b34204102938a24154a52e5571'
'5671a16fef65152928789bffd1f7cf24'
'8145ce05fb86e762f012ca1b56f718fe')
prepare() { prepare() {
mkdir -p build mkdir -p build
# patch here # Hack to force using python2
mkdir -p bin
ln -s /usr/bin/python2 bin/python
# Fix opening some websites with recent NSS https://github.com/QupZilla/qupzilla/issues/1870 (KaOSx patch)
cd $(getPkgName ${pkgname})
patch -p1 -i ../qt5-webengine-nss.patch
# Workaround for v8 segfaults with GCC 6
patch -p1 -i "$srcdir"/qt5-webengine-fno-delete-null-pointer-checks.patch
cd src/3rdparty
patch -p1 -i "$srcdir"/qt5-webengine-fno-delete-null-pointer-checks-2.patch
} }
build() { build() {
cd build cd build
#export PATH="$srcdir/bin:$PATH" export PATH="$srcdir/bin:$PATH"
qmake-qt5 WEBENGINE_CONFIG+=use_proprietary_codecs \ qmake-qt5 WEBENGINE_CONFIG+=use_proprietary_codecs ../$(getPkgName ${pkgname})
WEBENGINE_CONFIG+=use_system_ffmpeg \
WEBENGINE_CONFIG+=use_system_icu \
WEBENGINE_CONFIG+=use_system_srtp \
WEBENGINE_CONFIG+=use_system_zlib \
../${_pkgfqn}
make make
} }
@ -43,8 +50,7 @@ package() {
make INSTALL_ROOT="$pkgdir" install make INSTALL_ROOT="$pkgdir" install
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir # Drop QMAKE_PRL_BUILD_DIR because reference the build dir
find "$pkgdir/usr/lib" -type f -name '*.prl' \ qtprlfix
-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;
install -d "$pkgdir"/usr/share/licenses install -d "$pkgdir"/usr/share/licenses
ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/${pkgname} ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/${pkgname}

View File

@ -0,0 +1,50 @@
From ba36da6c1f59da7687f6924cc558105dcd1c44dc Mon Sep 17 00:00:00 2001
From: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Date: Fri, 10 Jun 2016 13:26:22 +0200
Subject: [PATCH] Use -fno-delete-null-pointer-checks with gcc 6
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
V8 is not safe for removing null pointer checks. Until it is, we need
to disable optimizations in GCC that assume it is not doing something
wrong.
This patch only enables it for v8, and requires it to be activated
by qtwebengine.
Change-Id: I9da15ecf85719f211ba921a620e9d195eff26178
Task-number: QTBUG-53956
Reviewed-by: Michael Brüning <michael.bruning@qt.io>
---
chromium/v8/build/toolchain.gypi | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/chromium/v8/build/toolchain.gypi b/chromium/v8/build/toolchain.gypi
index 8a26cc2..2dd4a50 100644
--- a/chromium/v8/build/toolchain.gypi
+++ b/chromium/v8/build/toolchain.gypi
@@ -72,6 +72,10 @@
# Some versions of GCC 4.5 seem to need -fno-strict-aliasing.
'v8_no_strict_aliasing%': 0,
+ # V8 needs support for illegal null this pointers, and must disable
+ # optimizations in GCC 6 that relies on correct behavior.
+ 'v8_no_delete_null_pointer_checks%': 0,
+
# Chrome needs this definition unconditionally. For standalone V8 builds,
# it's handled in build/standalone.gypi.
'want_separate_host_toolset%': 1,
@@ -1066,6 +1070,9 @@
[ 'v8_no_strict_aliasing==1', {
'cflags': [ '-fno-strict-aliasing' ],
}],
+ [ 'v8_no_delete_null_pointer_checks==1', {
+ 'cflags_cc': [ '-fno-delete-null-pointer-checks' ],
+ }],
], # conditions
}],
['OS=="solaris"', {
--
2.8.3

View File

@ -0,0 +1,27 @@
From 5133f095bea2d147e86b99eacaa48363d08db35b Mon Sep 17 00:00:00 2001
From: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Date: Fri, 10 Jun 2016 14:46:24 +0200
Subject: [PATCH] Enable -fno_delete_null_pointer_checks on V8 for G++ 6
Detect g++ 6 and disable null pointer check optimizations on v8.
Change-Id: I5064823af3784786d455ce86592b5e65c1020f21
Task-number: QTBUG-53956
---
diff --git a/src/core/config/linux.pri b/src/core/config/linux.pri
index 8854a4b..b579e2a 100644
--- a/src/core/config/linux.pri
+++ b/src/core/config/linux.pri
@@ -29,6 +29,8 @@ use?(nss) {
use_openssl_certs=1
}
+gcc:!clang: greaterThan(QT_GCC_MAJOR_VERSION, 5): GYP_CONFIG += v8_no_delete_null_pointer_checks=1
+
contains(QT_CONFIG, system-zlib): use?(system_minizip): GYP_CONFIG += use_system_zlib=1
contains(QT_CONFIG, system-png): GYP_CONFIG += use_system_libpng=1
contains(QT_CONFIG, system-jpeg): GYP_CONFIG += use_system_libjpeg=1
--
2.8.3

View File

@ -29,22 +29,3 @@ qtwebengine-opensource-src-5.6.0-beta-chimera-nss-init/src/3rdparty/chromium/net
SSLContext* context = SSLContext::GetInstance(); SSLContext* context = SSLContext::GetInstance();
crypto::OpenSSLErrStackTracer err_tracer(FROM_HERE); crypto::OpenSSLErrStackTracer err_tracer(FROM_HERE);
diff -ur qtwebengine-opensource-src-5.6.0-beta/src/core/config/linux.pri qtwebengine-opensource-src-5.6.0-beta-linux-pri/src/core/config/linux.pri
--- qtwebengine-opensource-src-5.6.0-beta/src/core/config/linux.pri 2015-12-14 16:27:24.000000000 +0100
+++ qtwebengine-opensource-src-5.6.0-beta-linux-pri/src/core/config/linux.pri 2016-01-14 17:31:05.765975551 +0100
@@ -18,7 +18,13 @@
use_kerberos=0 \
use_pango=0
-!use?(nss) {
+use?(nss) {
+# do a "chimera build" (BoringSSL code, NSS certs): This is the default in
+# Chromium 47+, and it is the only variant that works with NSS 3.21.
+ GYP_CONFIG += use_nss_certs=1 \
+ use_openssl=1 \
+ use_openssl_certs=0
+} else {
GYP_CONFIG += use_nss_certs=0 \
use_openssl=1 \
use_openssl_certs=1

39
qt5-websockets/PKGBUILD Normal file
View File

@ -0,0 +1,39 @@
source ../qt5.conf
pkgname=qt5-websockets
pkgver=${QSubVersion}
pkgrel=2
arch=('x86_64')
url='http://qt-project.org/'
license=('GPL3' 'LGPL' 'FDL' 'custom')
pkgdesc='Provides WebSocket communication compliant with RFC 6455'
depends=('qt5-base')
makedepends=('qt5-declarative')
optdepends=('qt5-declarative: QML bindings')
groups=('qt5')
options=('debug')
source=( $(getSrc ${pkgname}) )
md5sums=( $(getSum ${pkgname}) )
prepare() {
mkdir -p build
}
build() {
cd build
qmake-qt5 ../$(getPkgName ${pkgname})
make
}
package() {
cd build
make INSTALL_ROOT="$pkgdir" install
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
qtprlfix
install -d "$pkgdir"/usr/share/licenses
ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/${pkgname}
}

37
qt5-x11extras/PKGBUILD Normal file
View File

@ -0,0 +1,37 @@
source ../qt5.conf
pkgname=qt5-x11extras
pkgver=${QSubVersion}
pkgrel=2
arch=('x86_64')
url='http://qt-project.org/'
license=('GPL3' 'LGPL' 'FDL' 'custom')
pkgdesc='Provides platform-specific APIs for X11'
depends=('qt5-base')
makedepends=()
groups=('qt5')
options=('debug')
source=( $(getSrc ${pkgname}) )
md5sums=( $(getSum ${pkgname}) )
prepare() {
mkdir -p build
}
build() {
cd build
qmake-qt5 ../$(getPkgName ${pkgname})
make
}
package() {
cd build
make INSTALL_ROOT="$pkgdir" install
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
qtprlfix
install -d "$pkgdir"/usr/share/licenses
ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/${pkgname}
}

37
qt5-xmlpatterns/PKGBUILD Normal file
View File

@ -0,0 +1,37 @@
source ../qt5.conf
pkgname=qt5-xmlpatterns
pkgver=${QSubVersion}
pkgrel=2
arch=('x86_64')
url='http://qt-project.org/'
license=('GPL3' 'LGPL' 'FDL' 'custom')
pkgdesc='Support for XPath, XQuery, XSLT and XML schema validation'
depends=('qt5-base')
makedepends=()
groups=('qt5')
options=('debug')
source=( $(getSrc ${pkgname}) )
md5sums=( $(getSum ${pkgname}) )
prepare() {
mkdir -p build
}
build() {
cd build
qmake-qt5 ../$(getPkgName ${pkgname})
make
}
package() {
cd build
make INSTALL_ROOT="$pkgdir" install
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
qtprlfix
install -d "$pkgdir"/usr/share/licenses
ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/${pkgname}
}

35
qt5.conf Normal file
View File

@ -0,0 +1,35 @@
# the install prefix
QInstallPrefix="/usr"
# Qt5 version
QVersion=5.7.0
QSubVersion=${QVersion/-/}
QMainVersion=${QSubVersion%.*}
# download location
# http://download.qt.io/development_releases/qt/5.7/5.7.0-rc/submodules/
#QServer="http://download.qt.io/development_releases/qt/${QMainVersion}/${QVersion}/submodules/"
QServer="http://download.qt.io/official_releases/qt/${QMainVersion}/${QVersion}/submodules/"
QSingleServer="http://download.qt.io/official_releases/qt/${QMainVersion}/${QVersion}/single/"
#wget -nc -O qt5.sums http://ftp.fau.de/qtproject/development_releases/qt/${QMainVersion}/${QVersion}/submodules/md5sums.txt
function getPkgName() {
echo "${1/5-/}-opensource-src-${QVersion}";
}
function getSrc() {
echo "${QServer}$(getPkgName ${1}).tar.xz";
}
function getSum() {
awk "\$2 ~ /^$(getPkgName ${1}).tar.xz/ {print \$1}" ../qt5.sums;
}
function qtprlfix() {
# Fix wrong path in prl files
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
find "${pkgdir}/usr/lib" -type f -name '*.prl' \
-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' {} \;
}

45
qt5.order Normal file
View File

@ -0,0 +1,45 @@
#
# Chakra GNU/Linux Buildscript Config file
#
# QT5
#
# These are the "package lists"
#
# The buildscript will build from the top to
# the bottom. Be aware that you must insert the
# packages in the right order to solve
# the dependencies correctly
#
qt5-base
qt5-svg
qt5-xmlpatterns
qt5-declarative
qt5-declarative-render2d
qt5-canvas3d
qt5-connectivity
qt5-serialport
qt5-serialbus
qt5-script
qt5-location
qt5-quickcontrols
qt5-quickcontrols2
qt5-graphicaleffects
qt5-translations
qt5-imageformats
qt5-datavis3d
#qt5-gamepad
qt5-x11extras
qt5-sensors
qt5-multimedia
qt5-websockets
qt5-charts
qt5-tools
qt5-doc
qt5-examples
qt5-virtualkeyboard
qt5-scxml
#qt5-wayland
qt5-webchannel
qt5-3d
qt5-webengine

152
qt5.sums Normal file
View File

@ -0,0 +1,152 @@
a116b1acc1a0b211f44b56ac08742259 qt3d-opensource-src-5.7.0.7z
97470b0a46f3add527c6266b1f690d99 qt3d-opensource-src-5.7.0.tar.gz
3219ec1a97c155915b1f0f036f13854e qt3d-opensource-src-5.7.0.tar.xz
80253ce9e7826035650ab52da82ccf2f qt3d-opensource-src-5.7.0.zip
5588d5f413c5e95aebe97ff03f43e619 qtactiveqt-opensource-src-5.7.0.7z
5db2cc98a75fb2445b9fb8c0fbbf0eee qtactiveqt-opensource-src-5.7.0.tar.gz
e48d79becdad54a2ac67c36d98654f5b qtactiveqt-opensource-src-5.7.0.tar.xz
263a7dd5a9afdba49c660b756b122442 qtactiveqt-opensource-src-5.7.0.zip
02cfd5b07a1632faeba3c2ceca550e5c qtandroidextras-opensource-src-5.7.0.7z
e41a0b1fa9a86b958103bb199b3f8441 qtandroidextras-opensource-src-5.7.0.tar.gz
8a1a08b646199c0bdd8ab0de5fd1a889 qtandroidextras-opensource-src-5.7.0.tar.xz
100fb038289368f0a219fa77ad1a0e54 qtandroidextras-opensource-src-5.7.0.zip
cae5b93999f51208ecf45dddf8de8cf4 qtbase-opensource-src-5.7.0.7z
2c5df1cc11eef418cb62f01a232b03af qtbase-opensource-src-5.7.0.tar.gz
184f9460b40752d71b15b827260580c2 qtbase-opensource-src-5.7.0.tar.xz
d50bf8c89e3f63561cf97109c5dd2dd2 qtbase-opensource-src-5.7.0.zip
c5c1923443d1e392b15066a1f853c212 qtcanvas3d-opensource-src-5.7.0.7z
d8072e347fa3ddf470f2f5da57b60715 qtcanvas3d-opensource-src-5.7.0.tar.gz
1974a0025f96a2cc08948fbdb422805f qtcanvas3d-opensource-src-5.7.0.tar.xz
a6a5bb6ba56148f6913121bb5eba0f3c qtcanvas3d-opensource-src-5.7.0.zip
ed845a3a0c240e7259f22a532fb0cd74 qtcharts-opensource-src-5.7.0.7z
f5187edf1231d4d6c3de2ccd56d8ab02 qtcharts-opensource-src-5.7.0.tar.gz
9b4f6931c946b8dc1fad97bf8c30f485 qtcharts-opensource-src-5.7.0.tar.xz
5a0992ac8f92eb5e56ee35803aa4835c qtcharts-opensource-src-5.7.0.zip
e0ab8a8dcb9cf32bb9e8ddfcf3630ba7 qtconnectivity-opensource-src-5.7.0.7z
1020096131cab59dca6b41b975ba39e4 qtconnectivity-opensource-src-5.7.0.tar.gz
56229b15e677ee98d56446519723fb3b qtconnectivity-opensource-src-5.7.0.tar.xz
0938d15cff754c2639437612ca0d6138 qtconnectivity-opensource-src-5.7.0.zip
0422c73caebec1348b2bbfba85c840ed qtdatavis3d-opensource-src-5.7.0.7z
7036c41d1e650b7f97dd29035f0aaca7 qtdatavis3d-opensource-src-5.7.0.tar.gz
8e0ef21bd26e8466737559d89706f1ae qtdatavis3d-opensource-src-5.7.0.tar.xz
c1e7e285c21bdc5250d16975710bf790 qtdatavis3d-opensource-src-5.7.0.zip
fa6d16952eca6389168f7bff94b52a99 qtdeclarative-opensource-src-5.7.0.7z
5f9ee9c8ff2a84158786b3cf164717b7 qtdeclarative-opensource-src-5.7.0.tar.gz
0d9e461aa54dba4793253fa2eb501f9b qtdeclarative-opensource-src-5.7.0.tar.xz
421d7fb267192c4e7c8329979733b72d qtdeclarative-opensource-src-5.7.0.zip
52e0b0d9e99fb3d868c9fa09d47e55d7 qtdeclarative-render2d-opensource-src-5.7.0.7z
c7fc3bbfde0779d95c49bd3a00b596fd qtdeclarative-render2d-opensource-src-5.7.0.tar.gz
41bfcb5ab6d7a820687c4208beeb7057 qtdeclarative-render2d-opensource-src-5.7.0.tar.xz
e65e609432036b4c48f66196010e63df qtdeclarative-render2d-opensource-src-5.7.0.zip
345d4d43571eae736c2a28f62e7702ec qtdoc-opensource-src-5.7.0.7z
fda0f8322dc1a00a1303e70cff485bb2 qtdoc-opensource-src-5.7.0.tar.gz
422ac686dcdd50a34b948b4903e3de0c qtdoc-opensource-src-5.7.0.tar.xz
175eb3d525d12243e6fb1a9aa409c416 qtdoc-opensource-src-5.7.0.zip
275f128d09c702bc6f7e07e4d9e72e15 qtgamepad-opensource-src-5.7.0.7z
a620602dc2a0b49ff6a230ebeab096ed qtgamepad-opensource-src-5.7.0.tar.gz
8531048533415712ec8c52d50239f8b3 qtgamepad-opensource-src-5.7.0.tar.xz
08a573f9c33edaf25d8144fe7b596c4f qtgamepad-opensource-src-5.7.0.zip
ed3006825e77f441bc9c4a2d15a0aec7 qtgraphicaleffects-opensource-src-5.7.0.7z
8921fcdb76fb74a3220bfe1ed95000b9 qtgraphicaleffects-opensource-src-5.7.0.tar.gz
f26b0de5cdbb76ae49faca226628fe65 qtgraphicaleffects-opensource-src-5.7.0.tar.xz
99d9f92fd50dd1bf1bcc2049ef0b84b1 qtgraphicaleffects-opensource-src-5.7.0.zip
f1a700b3674a606e341460d86c79568e qtimageformats-opensource-src-5.7.0.7z
aea026bca82f0966b1ab97ab5a2fddc2 qtimageformats-opensource-src-5.7.0.tar.gz
50e4086be4f1f8a0897f1ed8e1a00f09 qtimageformats-opensource-src-5.7.0.tar.xz
b2693a0ff6ff7f662e5c58fdd42d1fba qtimageformats-opensource-src-5.7.0.zip
7fe9a5452e0ad9e6ef50b6739d9822de qtlocation-opensource-src-5.7.0.7z
a99e19b5941bef2dbffd4be2202026ad qtlocation-opensource-src-5.7.0.tar.gz
645477ff5426f5213f3581625ea53aaa qtlocation-opensource-src-5.7.0.tar.xz
dab1a3b8625f803bed374d1d4bd71017 qtlocation-opensource-src-5.7.0.zip
9660a476ebc3af131f5374d401bfe11c qtmacextras-opensource-src-5.7.0.7z
503879930b21375ec48f671d3d8501f9 qtmacextras-opensource-src-5.7.0.tar.gz
325d7fa12e05a8e4d9224aa7af9fb908 qtmacextras-opensource-src-5.7.0.tar.xz
5f2f64b7bfd7d9709929d08ff24b6939 qtmacextras-opensource-src-5.7.0.zip
9d0c54b3f7e00de5dded02d84b469d98 qtmultimedia-opensource-src-5.7.0.7z
76d6b2ce72058d3a08e0411d517ab46d qtmultimedia-opensource-src-5.7.0.tar.gz
44c1b9a1dfb0e8b13f2d9571829500ee qtmultimedia-opensource-src-5.7.0.tar.xz
b3336af48701b1dab511d3120ee3ad9d qtmultimedia-opensource-src-5.7.0.zip
ada4f507f695a557ba45bacf8052c18f qtpurchasing-opensource-src-5.7.0.7z
52ddc0a21c7a68b7cd9448a616c29287 qtpurchasing-opensource-src-5.7.0.tar.gz
a723bd61612b0b06955fbbce976476e7 qtpurchasing-opensource-src-5.7.0.tar.xz
a3ac8d9cccae3b7084608b581c048232 qtpurchasing-opensource-src-5.7.0.zip
c4395daf5d8c8e9057ace4d7dfe1d705 qtquickcontrols2-opensource-src-5.7.0.7z
a935c788f5b7f9c5baaadaac5c76cb55 qtquickcontrols2-opensource-src-5.7.0.tar.gz
63c979d1d79ab4457f99d5762fc7e20f qtquickcontrols2-opensource-src-5.7.0.tar.xz
1f31d77443d552770bc51c95bd063cd0 qtquickcontrols2-opensource-src-5.7.0.zip
5d1050f3fd4968462dd282c6ab518915 qtquickcontrols-opensource-src-5.7.0.7z
8159e2ab3c3cda95d1ff19275cf537d0 qtquickcontrols-opensource-src-5.7.0.tar.gz
8aa89cc159448645bc8ddae889231ba0 qtquickcontrols-opensource-src-5.7.0.tar.xz
d8ca44bd89aa3289f5a7078857505102 qtquickcontrols-opensource-src-5.7.0.zip
c419519fe7a5395919d2e8da28645541 qtscript-opensource-src-5.7.0.7z
aa52bf4b7fe0afa122935b9696b0c401 qtscript-opensource-src-5.7.0.tar.gz
75108b6bab35c0eb7fb6152fbf971ab8 qtscript-opensource-src-5.7.0.tar.xz
0b4b9cc518b0481a678b7c517ed973a4 qtscript-opensource-src-5.7.0.zip
43bad9ed83ca441d28540bf51aca234d qtscxml-opensource-src-5.7.0.7z
f9905084d6f580f2a53410e75cc99ba5 qtscxml-opensource-src-5.7.0.tar.gz
94ef6ad85733a1f9a8d92372ad652da3 qtscxml-opensource-src-5.7.0.tar.xz
7e70567ec05c638f06df3d0bf187e068 qtscxml-opensource-src-5.7.0.zip
830a7853654100e673cd67a1c604ff87 qtsensors-opensource-src-5.7.0.7z
80ca96cfc33aeb971d5136ac7a5bd5a0 qtsensors-opensource-src-5.7.0.tar.gz
ccd4b5869b83d7a2c8f6dd1d61e9741a qtsensors-opensource-src-5.7.0.tar.xz
6cbffa6258734f08d09a85c2579eda02 qtsensors-opensource-src-5.7.0.zip
5d65a8832f8c37578e9b2963b7d7bfb7 qtserialbus-opensource-src-5.7.0.7z
51a0cea09e97a30e1600a741dd1dcae3 qtserialbus-opensource-src-5.7.0.tar.gz
f93cc8b36964c6aa965c27c3acd12f82 qtserialbus-opensource-src-5.7.0.tar.xz
3a11800e5fa3504876e41aa7fe4d85b4 qtserialbus-opensource-src-5.7.0.zip
957e7a3543faf15140ef9281603fb8e0 qtserialport-opensource-src-5.7.0.7z
a5d44ad871df903a49f76b9ec6ba157e qtserialport-opensource-src-5.7.0.tar.gz
b3058aac0e652e03144fb2a3ca9ad740 qtserialport-opensource-src-5.7.0.tar.xz
45a9cdff0b7ae7a2f7747825e7ca670b qtserialport-opensource-src-5.7.0.zip
54b080435d32b5aa0cc9560d1cf23c6b qtsvg-opensource-src-5.7.0.7z
9fe2a85a9b125224c54091f16356b0eb qtsvg-opensource-src-5.7.0.tar.gz
c7a769168467f4ea21a5872260c3b46e qtsvg-opensource-src-5.7.0.tar.xz
3251a055cee9a76d8674ac70fb194e80 qtsvg-opensource-src-5.7.0.zip
9c8f6bf95cfdf24fe8ee61004e1004a7 qttools-opensource-src-5.7.0.7z
7f44cfc0cd9113568d8cd98c6089e707 qttools-opensource-src-5.7.0.tar.gz
29eb3fd31582b5801e264c62d1158553 qttools-opensource-src-5.7.0.tar.xz
ceb972aca9eb95069d5f17f6398320d5 qttools-opensource-src-5.7.0.zip
4d22560cca14a31728a5e2fb2be6ac3d qttranslations-opensource-src-5.7.0.7z
e1e9cf38ab117789ed475014a8885802 qttranslations-opensource-src-5.7.0.tar.gz
bb8f47ff5455b1e584588fa1a4141719 qttranslations-opensource-src-5.7.0.tar.xz
140e27f1ef1d35125580bd6067ac6696 qttranslations-opensource-src-5.7.0.zip
6654a8e2318c4bc0a46e913f7979fa28 qtvirtualkeyboard-opensource-src-5.7.0.7z
31b88700ed9ba837a1924b9642826b3a qtvirtualkeyboard-opensource-src-5.7.0.tar.gz
fa473ab9175483dd82aa4d27b9682715 qtvirtualkeyboard-opensource-src-5.7.0.tar.xz
32fa2775abb55cba9c7ba8a26d9ea8c8 qtvirtualkeyboard-opensource-src-5.7.0.zip
0927e751bfc02f64d7e0d6a3bc6a3459 qtwayland-opensource-src-5.7.0.7z
86c100066af6c3c57032e23502a79242 qtwayland-opensource-src-5.7.0.tar.gz
2d2543a2564ee1b5db9f25dca9cc2e3b qtwayland-opensource-src-5.7.0.tar.xz
d6ef0bd45e204209b392ecfc6aac5f88 qtwayland-opensource-src-5.7.0.zip
d4af45954ff62e9c463b654adbfceefe qtwebchannel-opensource-src-5.7.0.7z
11f8e3618d46e3adb8194b963a4f4084 qtwebchannel-opensource-src-5.7.0.tar.gz
dd7699ddeb203d77237ab58a06f9fbfa qtwebchannel-opensource-src-5.7.0.tar.xz
e590ff478ede58f1031d200cb497a8e7 qtwebchannel-opensource-src-5.7.0.zip
7b95f19ecf4708aab88d9efdbc2106a5 qtwebengine-opensource-src-5.7.0.7z
d4a9ea598ce3a34dce4bf2b406e4d2d0 qtwebengine-opensource-src-5.7.0.tar.gz
937f64886fbcb038d6fa4b44ae80cbeb qtwebengine-opensource-src-5.7.0.tar.xz
a7be2da3bc2d7114def4a64a329ea8ad qtwebengine-opensource-src-5.7.0.zip
95898c8cb97cc48c6cddc7a55c62674c qtwebsockets-opensource-src-5.7.0.7z
c274f7d2d341755e49baf5974f133318 qtwebsockets-opensource-src-5.7.0.tar.gz
54fc9157eeebd2af87f1da494d8fec1e qtwebsockets-opensource-src-5.7.0.tar.xz
9696ff1af40e918f635444d4dcb8db68 qtwebsockets-opensource-src-5.7.0.zip
9a79487acd27efa1ce414ae299397758 qtwebview-opensource-src-5.7.0.7z
75fe05cebb6b40857709a0e8790e728f qtwebview-opensource-src-5.7.0.tar.gz
0a842dc491b42e2e0511587b95acaa58 qtwebview-opensource-src-5.7.0.tar.xz
38d7bf11e9045cbaf5abe1c3f4e5eb72 qtwebview-opensource-src-5.7.0.zip
4c1ce1ef68b34443cac820ac20e60914 qtwinextras-opensource-src-5.7.0.7z
cb75b91d8ca937c909383005ebda3b7c qtwinextras-opensource-src-5.7.0.tar.gz
45eced234b7861ff9c52696dd1b5659a qtwinextras-opensource-src-5.7.0.tar.xz
b244469219f55179119b8d528fc7e5ac qtwinextras-opensource-src-5.7.0.zip
02bec3564f3d47031ffa3712aa32e80e qtx11extras-opensource-src-5.7.0.7z
8855d5ff9de9b822732df94522c67e89 qtx11extras-opensource-src-5.7.0.tar.gz
8733599cf5a91c62b185f689b2d402ee qtx11extras-opensource-src-5.7.0.tar.xz
0f404081a55194acb23235ff444d36db qtx11extras-opensource-src-5.7.0.zip
999e4582e75437b30d9c0288e700644e qtxmlpatterns-opensource-src-5.7.0.7z
310114d81cff0fb2b8eb15914f50a35f qtxmlpatterns-opensource-src-5.7.0.tar.gz
97e447995e9741325ca8da6cff8f882a qtxmlpatterns-opensource-src-5.7.0.tar.xz
3e36f0806fea5c9f64be02b14b7f19b4 qtxmlpatterns-opensource-src-5.7.0.zip
a0c4f5fd6f53c229808486c270ff6865 qt-everywhere-opensource-src-5.7.0.7z
9a46cce61fc64c20c3ac0a0e0fa41b42 qt-everywhere-opensource-src-5.7.0.tar.gz
63ec6b584757eef8cd713e4958297251 qt-everywhere-opensource-src-5.7.0.tar.xz
c5d4bb1d015c2cfd37d183e5d201051f qt-everywhere-opensource-src-5.7.0.zip

View File

@ -9,10 +9,12 @@ pkgbase=qt5
pkgname=('qt5-base' pkgname=('qt5-base'
'qt5-3d' 'qt5-3d'
'qt5-canvas3d' 'qt5-canvas3d'
'qt5-charts'
'qt5-connectivity' 'qt5-connectivity'
'qt5-datavis3d'
'qt5-declarative' 'qt5-declarative'
'qt5-declarative-render2d'
'qt5-doc' 'qt5-doc'
'qt5-enginio'
'qt5-graphicaleffects' 'qt5-graphicaleffects'
'qt5-imageformats' 'qt5-imageformats'
'qt5-location' 'qt5-location'
@ -32,9 +34,9 @@ pkgname=('qt5-base'
'qt5-webview' 'qt5-webview'
'qt5-x11extras' 'qt5-x11extras'
'qt5-xmlpatterns') 'qt5-xmlpatterns')
pkgver=5.6.1 pkgver=5.7.0
subver=5.6.1 subver=5.7.0
_pkgver=5.6 _pkgver=5.7
pkgrel=1 pkgrel=1
arch=('x86_64') arch=('x86_64')
url='http://qt-project.org/' url='http://qt-project.org/'
@ -66,7 +68,7 @@ source=("http://download.qt-project.org/official_releases/qt/${_pkgver}/${pkgver
'assistant-qt5.desktop' 'designer-qt5.desktop' 'linguist-qt5.desktop' 'qtconfig-qt5.desktop' 'assistant-qt5.desktop' 'designer-qt5.desktop' 'linguist-qt5.desktop' 'qtconfig-qt5.desktop'
'qmlviewer.desktop' 'qmlviewer.desktop'
'qdbusviewer-qt5.desktop') 'qdbusviewer-qt5.desktop')
sha1sums=('c7db3269350a081ca4c07deba3cccbc380a62894' sha1sums=('bfc3d07ffba27d96cf070f74148f34a668646a19'
'f69e25beeba8682ef8ca9e8cf978061d75173914' 'f69e25beeba8682ef8ca9e8cf978061d75173914'
'4dabcdf77de5325eba5890f356157c006b095cc9' '4dabcdf77de5325eba5890f356157c006b095cc9'
'dbc8a9b6d75553b19b4fa00f785876bea0177794' 'dbc8a9b6d75553b19b4fa00f785876bea0177794'
@ -161,7 +163,6 @@ build() {
-journald \ -journald \
-libinput \ -libinput \
-reduce-relocations \ -reduce-relocations \
-no-gtkstyle \
-opengl desktop \ -opengl desktop \
-feature-menu \ -feature-menu \
-feature-textdate \ -feature-textdate \
@ -217,7 +218,7 @@ package_qt5-base() {
'mtdev: evdev plugin' 'mtdev: evdev plugin'
'libxfixes: Xfixes support') 'libxfixes: Xfixes support')
conflicts=('qt5' 'qt5-private-headers') conflicts=('qt5' 'qt5-private-headers')
replaces=('qt5-private-headers') replaces=('qt5-private-headers' 'qt5-enginio')
options=("staticlibs" "debug") options=("staticlibs" "debug")
cd ${_pkgfqn}/qtbase cd ${_pkgfqn}/qtbase
@ -250,6 +251,18 @@ package_qt5-canvas3d() {
_prlfix _prlfix
} }
package_qt5-charts() {
pkgdesc='Provides a set of easy to use chart components'
depends=('qt5-base')
optdepends=('qt5-declarative: QML bindings')
options=("debug")
cd ${_pkgfqn}/qtcharts
make INSTALL_ROOT="${pkgdir}" install
_prlfix
}
package_qt5-connectivity() { package_qt5-connectivity() {
pkgdesc='Provides access to Bluetooth hardware' pkgdesc='Provides access to Bluetooth hardware'
depends=('qt5-declarative' 'bluez') depends=('qt5-declarative' 'bluez')
@ -264,6 +277,18 @@ package_qt5-connectivity() {
"${pkgdir}"/usr/share/licenses/${pkgname}/LGPL_EXCEPTION.txt "${pkgdir}"/usr/share/licenses/${pkgname}/LGPL_EXCEPTION.txt
} }
package_qt5-datavis3d() {
pkgdesc='Qt Data Visualization module'
depends=('qt5-base')
options=("debug")
conflicts=('qt5')
cd ${_pkgfqn}/qtdatavis3d
make INSTALL_ROOT="${pkgdir}" install
_prlfix
}
package_qt5-declarative() { package_qt5-declarative() {
pkgdesc='Classes for QML and JavaScript languages' pkgdesc='Classes for QML and JavaScript languages'
depends=('qt5-xmlpatterns' 'libxkbcommon-x11') depends=('qt5-xmlpatterns' 'libxkbcommon-x11')
@ -282,6 +307,19 @@ package_qt5-declarative() {
done done
} }
package_qt5-declarative-render2d() {
pkgdesc='Raster backend for QtQuick scene graph'
depends=('qt5-declarative')
options=("debug")
conflicts=('qt5')
cd ${_pkgfqn}/qtdeclarative-render2d
make INSTALL_ROOT="${pkgdir}" install
_prlfix
}
package_qt5-doc() { package_qt5-doc() {
pkgdesc='A cross-platform application and UI framework (Documentation)' pkgdesc='A cross-platform application and UI framework (Documentation)'
depends=('qt5-base') depends=('qt5-base')
@ -295,20 +333,6 @@ package_qt5-doc() {
"${pkgdir}"/usr/share/licenses/${pkgname}/LGPL_EXCEPTION.txt "${pkgdir}"/usr/share/licenses/${pkgname}/LGPL_EXCEPTION.txt
} }
package_qt5-enginio() {
pkgdesc='A Backend-as-a-Service solution to ease the backend development for connected and data-driven application'
depends=('qt5-declarative')
options=("debug")
cd ${_pkgfqn}/qtenginio
make INSTALL_ROOT="${pkgdir}" install
_prlfix
install -D -m644 LGPL_EXCEPTION.txt \
"${pkgdir}"/usr/share/licenses/${pkgname}/LGPL_EXCEPTION.txt
}
package_qt5-xmlpatterns() { package_qt5-xmlpatterns() {
pkgdesc='Support for XPath, XQuery, XSLT and XML schema validation' pkgdesc='Support for XPath, XQuery, XSLT and XML schema validation'
depends=('qt5-base') depends=('qt5-base')

206
qt5/qdbus_locking.patch Normal file
View File

@ -0,0 +1,206 @@
From a1ba281a26d065d2e901b3a947a8517ec5790504 Mon Sep 17 00:00:00 2001
From: Thiago Macieira <thiago.macieira@intel.com>
Date: Tue, 19 Jan 2016 22:29:33 -0800
Subject: [PATCH] Call out to QtDBus message spies in the main thread
Whenever there are spies installed, we call out to the main thread to
call to the kded/kiod message spies. This allows the spy code to do just
about anything, where previously it was restricted in what it could do
to avoid deadlocking or triggering assertions if it recursed back into
QDBusConnection code in the manager thread. After the spies are done,
the message is re-inserted into the QDBusConnection processing pipeline.
This commit moves the spy handling to after the check for disabled
dispatching, as doing otherwise would mean the message could get
postponed again for no good reason. It's also possible that the main
thread isn't done installing the hooks, so waiting until the dispatching
is enabled is a good idea.
For simplicity, this commit also restricts spying to method calls
only. Signals are no longer spyable.
Change-Id: I3d11545be52c43119f0fffff142b0e9d447415c2
Reviewed-by: David Faure <david.faure@kdab.com>
---
src/dbus/qdbusconnection_p.h | 3 ++-
src/dbus/qdbusintegrator.cpp | 48 +++++++++++++++++++++++++++++++++-----------
src/dbus/qdbusintegrator_p.h | 19 ++++++++++++++++++
3 files changed, 57 insertions(+), 13 deletions(-)
diff --git a/src/dbus/qdbusconnection_p.h b/src/dbus/qdbusconnection_p.h
index f030a3f..c77daf7 100644
--- a/src/dbus/qdbusconnection_p.h
+++ b/src/dbus/qdbusconnection_p.h
@@ -1,7 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
-** Copyright (C) 2015 Intel Corporation.
+** Copyright (C) 2016 Intel Corporation.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the QtDBus module of the Qt Toolkit.
@@ -281,6 +281,7 @@ private slots:
signals:
void dispatchStatusChanged();
+ void spyHooksFinished(const QDBusMessage &msg);
void messageNeedsSending(QDBusPendingCallPrivate *pcall, void *msg, int timeout = -1);
void signalNeedsConnecting(const QString &key, const QDBusConnectionPrivate::SignalHook &hook);
bool signalNeedsDisconnecting(const QString &key, const QDBusConnectionPrivate::SignalHook &hook);
diff --git a/src/dbus/qdbusintegrator.cpp b/src/dbus/qdbusintegrator.cpp
index f6221d5..f0b8f1b 100644
--- a/src/dbus/qdbusintegrator.cpp
+++ b/src/dbus/qdbusintegrator.cpp
@@ -1,7 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
-** Copyright (C) 2015 Intel Corporation.
+** Copyright (C) 2016 Intel Corporation.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the QtDBus module of the Qt Toolkit.
@@ -120,8 +120,7 @@ void qdbusDefaultThreadDebug(int action, int condition, QDBusConnectionPrivate *
qdbusThreadDebugFunc qdbusThreadDebug = 0;
#endif
-typedef void (*QDBusSpyHook)(const QDBusMessage&);
-typedef QVarLengthArray<QDBusSpyHook, 4> QDBusSpyHookList;
+typedef QVarLengthArray<QDBusSpyCallEvent::Hook, 4> QDBusSpyHookList;
Q_GLOBAL_STATIC(QDBusSpyHookList, qDBusSpyHookList)
extern "C" {
@@ -461,12 +460,29 @@ static QStringList matchArgsForService(const QString &service, QDBusServiceWatch
}
-extern Q_DBUS_EXPORT void qDBusAddSpyHook(QDBusSpyHook);
-void qDBusAddSpyHook(QDBusSpyHook hook)
+extern Q_DBUS_EXPORT void qDBusAddSpyHook(QDBusSpyCallEvent::Hook);
+void qDBusAddSpyHook(QDBusSpyCallEvent::Hook hook)
{
qDBusSpyHookList()->append(hook);
}
+QDBusSpyCallEvent::~QDBusSpyCallEvent()
+{
+ // Reinsert the message into the processing queue for the connection.
+ // This is done in the destructor so the message is reinserted even if
+ // QCoreApplication is destroyed.
+ QDBusConnectionPrivate *d = static_cast<QDBusConnectionPrivate *>(const_cast<QObject *>(sender()));
+ qDBusDebug() << d << "message spies done for" << msg;
+ emit d->spyHooksFinished(msg);
+}
+
+void QDBusSpyCallEvent::placeMetaCall(QObject *)
+{
+ // call the spy hook list
+ for (int i = 0; i < hookCount; ++i)
+ hooks[i](msg);
+}
+
extern "C" {
static DBusHandlerResult
qDBusSignalFilter(DBusConnection *connection, DBusMessage *message, void *data)
@@ -488,16 +504,11 @@ qDBusSignalFilter(DBusConnection *connection, DBusMessage *message, void *data)
bool QDBusConnectionPrivate::handleMessage(const QDBusMessage &amsg)
{
- const QDBusSpyHookList *list = qDBusSpyHookList();
- for (int i = 0; list && i < list->size(); ++i) {
- qDBusDebug() << "calling the message spy hook";
- (*(*list)[i])(amsg);
- }
-
if (!ref.load())
return false;
if (!dispatchEnabled && !QDBusMessagePrivate::isLocal(amsg)) {
// queue messages only, we'll handle them later
+ qDBusDebug() << this << "delivery is suspended";
pendingMessages << amsg;
return amsg.type() == QDBusMessage::MethodCallMessage;
}
@@ -509,6 +520,15 @@ bool QDBusConnectionPrivate::handleMessage(const QDBusMessage &amsg)
// let them see the signal too
return false;
case QDBusMessage::MethodCallMessage:
+ // run it through the spy filters (if any) before the regular processing
+ if (Q_UNLIKELY(qDBusSpyHookList.exists()) && qApp) {
+ const QDBusSpyHookList &list = *qDBusSpyHookList;
+ qDBusDebug() << this << "invoking message spies";
+ QCoreApplication::postEvent(qApp, new QDBusSpyCallEvent(this, QDBusConnection(this),
+ amsg, list.constData(), list.size()));
+ return true;
+ }
+
handleObjectCall(amsg);
return true;
case QDBusMessage::ReplyMessage:
@@ -981,6 +1001,8 @@ QDBusConnectionPrivate::QDBusConnectionPrivate(QObject *p)
QDBusMetaTypeId::init();
connect(this, &QDBusConnectionPrivate::dispatchStatusChanged,
this, &QDBusConnectionPrivate::doDispatch, Qt::QueuedConnection);
+ connect(this, &QDBusConnectionPrivate::spyHooksFinished,
+ this, &QDBusConnectionPrivate::handleObjectCall, Qt::QueuedConnection);
connect(this, &QDBusConnectionPrivate::messageNeedsSending,
this, &QDBusConnectionPrivate::sendInternal);
connect(this, &QDBusConnectionPrivate::signalNeedsConnecting,
@@ -1092,8 +1114,10 @@ void QDBusConnectionPrivate::doDispatch()
// dispatch previously queued messages
PendingMessageList::Iterator it = pendingMessages.begin();
PendingMessageList::Iterator end = pendingMessages.end();
- for ( ; it != end; ++it)
+ for ( ; it != end; ++it) {
+ qDBusDebug() << this << "dequeueing message" << *it;
handleMessage(qMove(*it));
+ }
pendingMessages.clear();
}
}
diff --git a/src/dbus/qdbusintegrator_p.h b/src/dbus/qdbusintegrator_p.h
index 62106e4..2bbebdf 100644
--- a/src/dbus/qdbusintegrator_p.h
+++ b/src/dbus/qdbusintegrator_p.h
@@ -1,6 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
+** Copyright (C) 2016 Intel Corporation.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the QtDBus module of the Qt Toolkit.
@@ -65,6 +66,7 @@
QT_BEGIN_NAMESPACE
class QDBusConnectionPrivate;
+class QDBusMessage;
// Really private structs used by qdbusintegrator.cpp
// Things that aren't used by any other file
@@ -133,6 +135,23 @@ private:
bool handled;
};
+class QDBusSpyCallEvent : public QMetaCallEvent
+{
+public:
+ typedef void (*Hook)(const QDBusMessage&);
+ QDBusSpyCallEvent(QDBusConnectionPrivate *cp, const QDBusConnection &c, const QDBusMessage &msg,
+ const Hook *hooks, int count)
+ : QMetaCallEvent(0, 0, Q_NULLPTR, cp, 0), conn(c), msg(msg), hooks(hooks), hookCount(count)
+ {}
+ ~QDBusSpyCallEvent();
+ void placeMetaCall(QObject *) Q_DECL_OVERRIDE;
+
+ QDBusConnection conn; // keeps the refcount in QDBusConnectionPrivate up
+ QDBusMessage msg;
+ const Hook *hooks;
+ int hookCount;
+};
+
QT_END_NAMESPACE
Q_DECLARE_METATYPE(QDBusSlotCache)
--
2.6.2.2.g1b5ffa3