Commit 7a6150c9 authored by Xuetian Weng's avatar Xuetian Weng

add back qt 5.5 for now, rebuild for openssl

parent 5bfa4bcd
From 5944a751857de997ee674a90c2e35ff3adaa655b Mon Sep 17 00:00:00 2001
From: Alexander Volkov <a.volkov@rusbitech.ru>
Date: Mon, 8 Jun 2015 14:35:22 +0300
Subject: [PATCH] Fix QWidget::setWindowRole()
Introduce QXcbWindowFunctions::setWmWindowRole() and call it either from
the implementation of QWidget::setWindowRole() or after the creation of
the corresponding QWidgetWindow.
Change-Id: I143450f4673dd707bb491c1d0f0e8b61d564283d
Task-number: QTBUG-45484
---
.../xcbfunctions/qxcbwindowfunctions.h | 10 ++++++++++
src/plugins/platforms/xcb/qxcbnativeinterface.cpp | 3 +++
src/plugins/platforms/xcb/qxcbwindow.cpp | 21 +++++++++++++++++++++
src/plugins/platforms/xcb/qxcbwindow.h | 2 ++
src/widgets/kernel/qwidget.cpp | 12 +++++++-----
5 files changed, 43 insertions(+), 5 deletions(-)
diff --git a/src/platformheaders/xcbfunctions/qxcbwindowfunctions.h b/src/platformheaders/xcbfunctions/qxcbwindowfunctions.h
index ae05cf5..a7fe8d9 100644
--- a/src/platformheaders/xcbfunctions/qxcbwindowfunctions.h
+++ b/src/platformheaders/xcbfunctions/qxcbwindowfunctions.h
@@ -73,6 +73,16 @@ public:
func(window, type);
}
+ typedef void (*SetWmWindowRole)(QWindow *window, const QByteArray &role);
+ static const QByteArray setWmWindowRoleIdentifier() { return QByteArrayLiteral("XcbSetWmWindowRole"); }
+
+ static void setWmWindowRole(QWindow *window, const QByteArray &role)
+ {
+ SetWmWindowRole func = reinterpret_cast<SetWmWindowRole>(QGuiApplication::platformFunction(setWmWindowRoleIdentifier()));
+ if (func)
+ func(window, role);
+ }
+
typedef uint (*VisualId)(QWindow *window);
static const QByteArray visualIdIdentifier() { return QByteArrayLiteral("XcbVisualId"); }
diff --git a/src/plugins/platforms/xcb/qxcbnativeinterface.cpp b/src/plugins/platforms/xcb/qxcbnativeinterface.cpp
index 8bf9003..3cfdbde 100644
--- a/src/plugins/platforms/xcb/qxcbnativeinterface.cpp
+++ b/src/plugins/platforms/xcb/qxcbnativeinterface.cpp
@@ -392,6 +392,9 @@ QFunctionPointer QXcbNativeInterface::platformFunction(const QByteArray &functio
if (function == QXcbWindowFunctions::setWmWindowTypeIdentifier()) {
return QFunctionPointer(QXcbWindow::setWmWindowTypeStatic);
}
+ if (function == QXcbWindowFunctions::setWmWindowRoleIdentifier()) {
+ return QFunctionPointer(QXcbWindow::setWmWindowRoleStatic);
+ }
if (function == QXcbWindowFunctions::visualIdIdentifier()) {
return QFunctionPointer(QXcbWindowFunctions::VisualId(QXcbWindow::visualIdStatic));
}
diff --git a/src/plugins/platforms/xcb/qxcbwindow.cpp b/src/plugins/platforms/xcb/qxcbwindow.cpp
index 6e021ce..edf68d4 100644
--- a/src/plugins/platforms/xcb/qxcbwindow.cpp
+++ b/src/plugins/platforms/xcb/qxcbwindow.cpp
@@ -322,6 +322,7 @@ static inline XTextProperty* qstringToXTP(Display *dpy, const QString& s)
#endif // XCB_USE_XLIB
static const char *wm_window_type_property_id = "_q_xcb_wm_window_type";
+static const char *wm_window_role_property_id = "_q_xcb_wm_window_role";
QXcbWindow::QXcbWindow(QWindow *window)
: QPlatformWindow(window)
@@ -660,6 +661,11 @@ void QXcbWindow::create()
setOpacity(opacity);
if (window()->isTopLevel())
setWindowIcon(window()->icon());
+
+ if (window()->dynamicPropertyNames().contains(wm_window_type_property_id)) {
+ QByteArray wmWindowRole = window()->property(wm_window_type_property_id).toByteArray();
+ setWmWindowRole(wmWindowRole);
+ }
}
QXcbWindow::~QXcbWindow()
@@ -1674,6 +1680,14 @@ void QXcbWindow::setWmWindowTypeStatic(QWindow *window, QXcbWindowFunctions::WmW
static_cast<QXcbWindow *>(window->handle())->setWmWindowType(windowTypes, window->flags());
}
+void QXcbWindow::setWmWindowRoleStatic(QWindow *window, const QByteArray &role)
+{
+ if (window->handle())
+ static_cast<QXcbWindow *>(window->handle())->setWmWindowRole(role);
+ else
+ window->setProperty(wm_window_role_property_id, role);
+}
+
uint QXcbWindow::visualIdStatic(QWindow *window)
{
if (window && window->handle())
@@ -1839,6 +1853,13 @@ void QXcbWindow::setWmWindowType(QXcbWindowFunctions::WmWindowTypes types, Qt::W
xcb_flush(xcb_connection());
}
+void QXcbWindow::setWmWindowRole(const QByteArray &role)
+{
+ Q_XCB_CALL(xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, m_window,
+ atom(QXcbAtom::WM_WINDOW_ROLE), XCB_ATOM_STRING, 8,
+ role.size(), role.constData()));
+}
+
class ExposeCompressor
{
public:
diff --git a/src/plugins/platforms/xcb/qxcbwindow.h b/src/plugins/platforms/xcb/qxcbwindow.h
index a379a6f..15d5c1b 100644
--- a/src/plugins/platforms/xcb/qxcbwindow.h
+++ b/src/plugins/platforms/xcb/qxcbwindow.h
@@ -140,10 +140,12 @@ public:
void updateNetWmUserTime(xcb_timestamp_t timestamp);
static void setWmWindowTypeStatic(QWindow *window, QXcbWindowFunctions::WmWindowTypes windowTypes);
+ static void setWmWindowRoleStatic(QWindow *window, const QByteArray &role);
static uint visualIdStatic(QWindow *window);
QXcbWindowFunctions::WmWindowTypes wmWindowTypes() const;
void setWmWindowType(QXcbWindowFunctions::WmWindowTypes types, Qt::WindowFlags flags);
+ void setWmWindowRole(const QByteArray &role);
uint visualId() const;
diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp
index bd77e7f..4b64490 100644
--- a/src/widgets/kernel/qwidget.cpp
+++ b/src/widgets/kernel/qwidget.cpp
@@ -100,6 +100,7 @@
#include "qwindowcontainer_p.h"
+#include "QtPlatformHeaders/qxcbwindowfunctions.h"
// widget/widget data creation count
//#define QWIDGET_EXTRA_DEBUG
@@ -1451,6 +1452,9 @@ void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool destroyO
data.window_flags = win->flags();
+ if (!topData()->role.isNull())
+ QXcbWindowFunctions::setWmWindowRole(win, topData()->role.toLatin1());
+
QBackingStore *store = q->backingStore();
if (!store) {
@@ -6254,13 +6258,11 @@ QString QWidget::windowRole() const
*/
void QWidget::setWindowRole(const QString &role)
{
-#if defined(Q_DEAD_CODE_FROM_QT4_X11)
Q_D(QWidget);
+ d->createTLExtra();
d->topData()->role = role;
- d->setWindowRole();
-#else
- Q_UNUSED(role)
-#endif
+ if (windowHandle())
+ QXcbWindowFunctions::setWmWindowRole(windowHandle(), role.toLatin1());
}
/*!
--
2.3.5
From 5e5031527a3b443c93bf9e762c2f47e6786d7a31 Mon Sep 17 00:00:00 2001
From: Alexander Volkov <a.volkov@rusbitech.ru>
Date: Thu, 7 May 2015 17:36:57 +0300
Subject: [PATCH] Restore documented behavior for the WA_X11NetWmWindowType*
attributes
Use QXcbWindowFunctions::setWmWindowType() to add the corresponding
types to the window's _NET_WM_WINDOW_TYPE X11 window property.
Change-Id: Ia2413ad7a69ab8d49b448de11dd07c77101a564c
Task-number: QTBUG-39887
---
src/widgets/kernel/qwidget.cpp | 44 ++++++++++++++++++++++++++++++++++++++----
src/widgets/kernel/qwidget_p.h | 3 ++-
2 files changed, 42 insertions(+), 5 deletions(-)
diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp
index 2c9cc5c..0f05280 100644
--- a/src/widgets/kernel/qwidget.cpp
+++ b/src/widgets/kernel/qwidget.cpp
@@ -1414,6 +1414,7 @@ void QWidgetPrivate::create_sys(WId wind
win->setProperty("_q_showWithoutActivating", QVariant(true));
if (q->testAttribute(Qt::WA_MacAlwaysShowToolWindow))
win->setProperty("_q_macAlwaysShowToolWindow", QVariant::fromValue(QVariant(true)));
+ setNetWmWindowTypes();
win->setFlags(data.window_flags);
fixPosIncludesFrame();
if (q->testAttribute(Qt::WA_Moved)
@@ -11149,7 +11150,6 @@ void QWidget::setAttribute(Qt::WidgetAtt
break;
}
-#ifdef Q_DEAD_CODE_FROM_QT4_X11
case Qt::WA_X11NetWmWindowTypeDesktop:
case Qt::WA_X11NetWmWindowTypeDock:
case Qt::WA_X11NetWmWindowTypeToolBar:
@@ -11163,10 +11163,8 @@ void QWidget::setAttribute(Qt::WidgetAtt
case Qt::WA_X11NetWmWindowTypeNotification:
case Qt::WA_X11NetWmWindowTypeCombo:
case Qt::WA_X11NetWmWindowTypeDND:
- if (testAttribute(Qt::WA_WState_Created))
- d->setNetWmWindowTypes();
+ d->setNetWmWindowTypes();
break;
-#endif
case Qt::WA_StaticContents:
if (QWidgetBackingStore *bs = d->maybeBackingStore()) {
@@ -12823,6 +12821,44 @@ void QWidgetPrivate::setWidgetParentHelp
widget->setParent(static_cast<QWidget*>(newParent));
}
+void QWidgetPrivate::setNetWmWindowTypes()
+{
+ Q_Q(QWidget);
+
+ if (!q->windowHandle())
+ return;
+
+ int wmWindowType = 0;
+ if (q->testAttribute(Qt::WA_X11NetWmWindowTypeDesktop))
+ wmWindowType |= QXcbWindowFunctions::Desktop;
+ if (q->testAttribute(Qt::WA_X11NetWmWindowTypeDock))
+ wmWindowType |= QXcbWindowFunctions::Dock;
+ if (q->testAttribute(Qt::WA_X11NetWmWindowTypeToolBar))
+ wmWindowType |= QXcbWindowFunctions::Toolbar;
+ if (q->testAttribute(Qt::WA_X11NetWmWindowTypeMenu))
+ wmWindowType |= QXcbWindowFunctions::Menu;
+ if (q->testAttribute(Qt::WA_X11NetWmWindowTypeUtility))
+ wmWindowType |= QXcbWindowFunctions::Utility;
+ if (q->testAttribute(Qt::WA_X11NetWmWindowTypeSplash))
+ wmWindowType |= QXcbWindowFunctions::Splash;
+ if (q->testAttribute(Qt::WA_X11NetWmWindowTypeDialog))
+ wmWindowType |= QXcbWindowFunctions::Dialog;
+ if (q->testAttribute(Qt::WA_X11NetWmWindowTypeDropDownMenu))
+ wmWindowType |= QXcbWindowFunctions::DropDownMenu;
+ if (q->testAttribute(Qt::WA_X11NetWmWindowTypePopupMenu))
+ wmWindowType |= QXcbWindowFunctions::PopupMenu;
+ if (q->testAttribute(Qt::WA_X11NetWmWindowTypeToolTip))
+ wmWindowType |= QXcbWindowFunctions::Tooltip;
+ if (q->testAttribute(Qt::WA_X11NetWmWindowTypeNotification))
+ wmWindowType |= QXcbWindowFunctions::Notification;
+ if (q->testAttribute(Qt::WA_X11NetWmWindowTypeCombo))
+ wmWindowType |= QXcbWindowFunctions::Combo;
+ if (q->testAttribute(Qt::WA_X11NetWmWindowTypeDND))
+ wmWindowType |= QXcbWindowFunctions::Dnd;
+
+ QXcbWindowFunctions::setWmWindowType(q->windowHandle(), static_cast<QXcbWindowFunctions::WmWindowType>(wmWindowType));
+}
+
/*! \fn Qt::HANDLE QWidget::macCGHandle() const
\internal
diff --git a/src/widgets/kernel/qwidget_p.h b/src/widgets/kernel/qwidget_p.h
index fe65cb1..dc1c580 100644
--- a/src/widgets/kernel/qwidget_p.h
+++ b/src/widgets/kernel/qwidget_p.h
@@ -752,7 +752,6 @@ public:
void setWindowRole();
void sendStartupMessage(const char *message) const;
- void setNetWmWindowTypes();
void x11UpdateIsOpaque();
bool isBackgroundInherited() const;
void updateX11AcceptFocus();
@@ -849,6 +848,8 @@ public:
static bool qt_widget_rgn(QWidget *, short, RgnHandle, bool);
void registerTouchWindow(bool enable = true);
#endif
+ void setNetWmWindowTypes();
+
bool stealKeyboardGrab(bool grab);
bool stealMouseGrab(bool grab);
};
--
2.3.5
#
# QT Packages for Chakra, part of chakra-project.org
#
# maintainer: Fabian Kosmale <inkane@chakra-project.org>
# heavily sto^H^H^H inspired by Andrea Scarpino' PKGBUILD from Arch
pkgbase=qt5
pkgname=('qt5-base'
'qt5-3d'
'qt5-canvas3d'
'qt5-connectivity'
'qt5-declarative'
'qt5-doc'
'qt5-enginio'
'qt5-graphicaleffects'
'qt5-imageformats'
'qt5-location'
'qt5-multimedia'
'qt5-quick1'
'qt5-quickcontrols'
'qt5-script'
'qt5-sensors'
'qt5-serialport'
'qt5-svg'
'qt5-tools'
'qt5-translations'
'qt5-wayland'
'qt5-webchannel'
'qt5-webengine'
'qt5-webkit'
'qt5-websockets'
'qt5-x11extras'
'qt5-xmlpatterns')
pkgver=5.5.1
pkgrel=5
arch=('x86_64')
url='http://qt-project.org/'
license=('GPL3' 'LGPL' 'FDL' 'custom')
makedepends=('libxcb' 'xcb-proto' 'xcb-util' 'xcb-util-image' 'xcb-util-wm' 'xcb-util-keysyms' 'xcb-util-renderutil'
'mesa' 'at-spi2-core' 'alsa-lib'
'libjpeg-turbo' 'cups' 'libpulse' 'hicolor-icon-theme' 'desktop-file-utils'
'postgresql-libs' 'libmariadbclient' 'sqlite3' 'unixodbc' 'libmng'
'python2' 'ruby' 'gperf' 'libxslt' 'libxcomposite' 'fontconfig' 'bluez'
'openal' 'libxkbcommon-x11' 'mtdev' 'harfbuzz' 'libwebp' 'leveldb'
'libxcursor' 'libsm' 'libxrandr' 'libxv' 'libxi'
'xdg-utils' 'desktop-file-utils' 'libxinerama' 'libxfixes'
'geoclue' 'pciutils' 'nss'
'gstreamer' 'gst-plugins-base' 'gst-plugins-good'
'gst-plugins-bad' 'gst-plugins-ugly' 'harfbuzz' 'pkg-config'
'libinput' 'yasm' 'git')
_pkgfqn="qt-everywhere-opensource-src-${pkgver}"
source=("http://download.qt-project.org/official_releases/qt/${pkgver%.*}/${pkgver}/single/${_pkgfqn}.tar.xz"
# qt 5.6
'vlc-qt5.patch::https://563458.bugs.gentoo.org/attachment.cgi?id=415738' # fixed in qt 5.6
'0001-Fix-QWidget-setWindowRole.patch'
'0005-Restore-documented-behavior-for-the-WA_X11NetWmWindo.patch'
'libqt5-do-not-use-shm-if-display-name-doesnt-look-local.patch'
'xcb-dont-crash-in-mapToNativemapFromNative-if-the-screen-is-null.patch'
'xcb-fix-yet-another-crash-when-screens-are-disconnected.patch'
'xcb-glXGetCurrentDisplay-return-null-1.patch::https://github.com/qtproject/qtbase/commit/c8af3160d2514fb973a0d00d5bac324d4f7159f7.patch'
'xcb-glXGetCurrentDisplay-return-null-2.patch::https://github.com/qtproject/qtbase/commit/e8ad49d6cba6521f20b1b08bf65d92fc81c158e4.patch'
# not yet upstream
'libqt5-Fix-Gujarati-font.patch'
'assistant-qt5.desktop' 'designer-qt5.desktop' 'linguist-qt5.desktop' 'qtconfig-qt5.desktop'
'qmlviewer.desktop'
'qdbusviewer-qt5.desktop')
sha1sums=('5933651d46691ff6e919a49f5a380b9a217d30fb'
'c7403ec1c2a1189a661e087b2117d25759b9cc58'
'f0f7287a1967cd9d0208517f4682c040e5ad25f5'
'4dabcdf77de5325eba5890f356157c006b095cc9'
'eb1fa717a650e95276bcd9f29b97fdb576c90337'
'06e29fffec05e9eae0553a69cc0b8804c8fc537c'
'27af3d679b8bd9fbb98d994b01f270dfa8c475ff'
'd67baddee28774ef4f2f1e2d14ef7a8c892139e4'
'd87664b0d898c86c404e0c6e31ba31a82adb2f16'
'd5dc1de05f00fa9eabce400ef11e7932ed8af550'
'0862a4a39b74d0e447181d7eca31580c9d580bc8'
'b63cab2c86505b594e32b32ae43524090fcb7d29'
'303e0deab3ef3f1ca84856aa2e35b096bcb6b849'
'2e0b6245c40c91fbb0a965724450b6d6883f2927'
'b0e6c61b8364eb3f7af4dae41fa7738c3181dd96'
'1295012599b5335f24b6945bc7ee312093339ec4')
_prlfix() {
# Fix wrong path in prl files
find "${pkgdir}/usr/lib" -type f -name '*.prl' \
-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' {} \;
}
prepare() {
cd ${_pkgfqn}
pushd .
cd qtbase
patch -Np1 -i ../../vlc-qt5.patch # fixed in qt 5.6
patch -Np1 -i ../../0001-Fix-QWidget-setWindowRole.patch
patch -Np1 -i ../../0005-Restore-documented-behavior-for-the-WA_X11NetWmWindo.patch
patch -Np1 -i ../../libqt5-Fix-Gujarati-font.patch
patch -Np1 -i ../../libqt5-do-not-use-shm-if-display-name-doesnt-look-local.patch
patch -Np1 -i ../../xcb-dont-crash-in-mapToNativemapFromNative-if-the-screen-is-null.patch
patch -Np1 -i ../../xcb-fix-yet-another-crash-when-screens-are-disconnected.patch
patch -Np1 -i ../../xcb-glXGetCurrentDisplay-return-null-1.patch
patch -Np1 -i ../../xcb-glXGetCurrentDisplay-return-null-2.patch
popd
sed -i "s|-O2|${CXXFLAGS}|" qtbase/mkspecs/common/{g++,gcc}-base.conf
sed -i "/^QMAKE_LFLAGS_RPATH/s| -Wl,-rpath,||g" qtbase/mkspecs/common/gcc-base-unix.conf
sed -i "/^QMAKE_LFLAGS\s/s|+=|+= ${LDFLAGS}|g" qtbase/mkspecs/common/gcc-base.conf
# Use python2 for Python 2.x
find . -name '*.py' -exec sed -i \
's|#![ ]*/usr/bin/python$|&2|;s|#![ ]*/usr/bin/env python$|&2|' {} +
# in qtwebengine there are still a lot of relative calls which need a workaround
mkdir -p "${srcdir}"/python2-path
ln -sf /usr/bin/python2 "${srcdir}"/python2-path/python
# Try to enable proprietary_codecs and use some system yasm
sed -e 's/contains(WEBENGINE_CONFIG, proprietary_codecs): //' \
-e '/use_system_ffmpeg=0"/a GYP_ARGS += "-Duse_system_yasm=1"' \
-i qtwebengine/src/core/gyp_run.pro
}
build() {
cd $srcdir/$_pkgfqn
# reenable patch later
# patch -p1 -i "$srcdir/defaultbookmarks_new.diff"
export QTDIR="${srcdir}"/${_pkgfqn}
export LD_LIBRARY_PATH="${QTDIR}"/qtbase/lib:"${QTDIR}"/qttools/lib:"${LD_LIBRARY_PATH}"
export QT_PLUGIN_PATH="${QTDIR}"/qtbase/plugins
# python2 workaround
export PATH="${srcdir}/python2-path:$PATH"
export _xkbconfigroot=$(pkg-config --variable=xkb_base xkeyboard-config)
PYTHON=/usr/bin/python2 ./configure -confirm-license -opensource \
-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/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 examples \
-no-rpath \
-optimized-qmake \
-dbus-linked \
-system-harfbuzz \
-journald \
-libinput \
-reduce-relocations \
-no-gtkstyle \
-opengl desktop \
-feature-menu \
-feature-textdate \
-xkb-config-root $_xkbconfigroot \
-system-xkbcommon \
-no-libproxy \
-gstreamer 1.0 \
-feature-ftp \
-xcursor
make
# Fix docs build when qt is not installed
sed -i "s|/usr/lib/qt5/bin/qdoc|${QTDIR}/qtbase/bin/qdoc|g" \
"${QTDIR}"/qtbase/qmake/Makefile.qmake-docs
find "${QTDIR}" -name Makefile \
-exec sed -i "s|/usr/lib/qt5/bin/qdoc|${QTDIR}/qtbase/bin/qdoc|g" {} +
sed -i "s|/usr/lib/qt5/bin/qhelpgenerator|${QTDIR}/qttools/bin/qhelpgenerator|g" \
"${QTDIR}"/qtbase/qmake/Makefile.qmake-docs
find "${QTDIR}" -name Makefile \
-exec sed -i "s|/usr/lib/qt5/bin/qhelpgenerator|${QTDIR}/qttools/bin/qhelpgenerator|g" {} +
sed -i "s|/usr/lib/qt5/bin/qhelpgenerator|${QTDIR}/qttools/bin/qhelpgenerator|g" \
qtwebkit/Source/Makefile.api
find "${QTDIR}" -name Makefile \
-exec sed -i "s|/usr/lib/qt5/bin/qmlplugindump|${QTDIR}/qtdeclarative/bin/qmlplugindump|g" {} +
make docs
}
package_qt5-3d() {
pkgdesc='Provides functionality for near-realtime simulation systems with support for 2D and 3D rendering in both Qt C++ and Qt Quick applications'
depends=('qt5-base' 'qt5-declarative')
provides=("qt5-qt3d=${pkgver}")
options=("debug")
cd ${_pkgfqn}/qt3d
make INSTALL_ROOT="${pkgdir}" install
_prlfix
}
package_qt5-base() {
pkgdesc='A cross-platform application and UI framework'
depends=('libtiff' 'libpng' 'libmng' 'sqlite3' 'ca-certificates' 'glib2' 'dbus'
'fontconfig' 'libgl' 'libsm' 'libxrandr' 'libxv' 'libxi' 'alsa-lib' 'ruby'
'xdg-utils' 'hicolor-icon-theme' 'desktop-file-utils' 'libxinerama' 'libxcursor'
'pulseaudio' 'gstreamer' 'gst-plugins-base' 'gst-plugins-ugly' 'gst-plugins-good'
'xcb-util-image' 'xcb-util-keysyms'
'xcb-util-renderutil' 'xcb-util-wm' 'libxkbcommon-x11' 'libinput')
optdepends=('postgresql-libs: PostgreSQL driver'
'libmariadbclient: MariaDB driver'
'unixodbc: ODBC driver'
'mtdev: evdev plugin'
'libxfixes: Xfixes support')
conflicts=('qt5' 'qt5-private-headers')
replaces=('qt5-private-headers')
options=("staticlibs" "debug")
cd ${_pkgfqn}/qtbase
make INSTALL_ROOT="${pkgdir}" install
install -D -m644 LGPL_EXCEPTION.txt \
"${pkgdir}"/usr/share/licenses/${pkgname}/LGPL_EXCEPTION.txt
_prlfix
# Fix wrong qmake path in pri file
sed -i "s|${srcdir}/${_pkgfqn}/qtbase|/usr|" \
"${pkgdir}"/usr/lib/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri
# create some symlinks in /usr/bin, postfixed with -qt5
mkdir -p ${pkgdir}/usr/bin
for i in $(ls ${pkgdir}/usr/lib/qt5/bin); do
ln -s /usr/lib/qt5/bin/${i} ${pkgdir}/usr/bin/${i}-qt5
done
}
package_qt5-canvas3d() {
pkgdesc='Provides a way to make OpenGL-like 3D drawing calls from Qt Quick JavaScript'
depends=('qt5-declarative' 'qt5-base')
options=("debug")
cd ${_pkgfqn}/qtcanvas3d
make INSTALL_ROOT="${pkgdir}" install
_prlfix
}
package_qt5-connectivity() {
pkgdesc='Provides access to Bluetooth hardware'
depends=('qt5-declarative' 'bluez')
options=("debug")
cd ${_pkgfqn}/qtconnectivity
make INSTALL_ROOT="${pkgdir}" install
_prlfix
install -D -m644 LGPL_EXCEPTION.txt \
"${pkgdir}"/usr/share/licenses/${pkgname}/LGPL_EXCEPTION.txt
}
package_qt5-declarative() {
pkgdesc='Classes for QML and JavaScript languages'
depends=('qt5-xmlpatterns' 'libxkbcommon-x11')
options=("debug")
conflicts=('qt5')
cd ${_pkgfqn}/qtdeclarative
make INSTALL_ROOT="${pkgdir}" install
_prlfix
# create some symlinks in /usr/bin, postfixed with -qt5
install -d "${pkgdir}"/usr/bin
for i in $(ls ${pkgdir}/usr/lib/qt5/bin); do
ln -s /usr/lib/qt5/bin/${i} ${pkgdir}/usr/bin/${i}-qt5
done
}
package_qt5-doc() {
pkgdesc='A cross-platform application and UI framework (Documentation)'
depends=('qt5-base')
arch=('any')
options=('docs' '!emptydirs')
cd ${_pkgfqn}
make INSTALL_ROOT="${pkgdir}" install_docs
install -D -m644 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() {
pkgdesc='Support for XPath, XQuery, XSLT and XML schema validation'
depends=('qt5-base')
conflicts=('qt5')
options=("debug")
cd ${_pkgfqn}/qtxmlpatterns
make INSTALL_ROOT="${pkgdir}" install
_prlfix
# create some symlinks in /usr/bin, postfixed with -qt5
install -d "${pkgdir}"/usr/bin
for i in $(ls ${pkgdir}/usr/lib/qt5/bin); do
ln -s /usr/lib/qt5/bin/${i} ${pkgdir}/usr/bin/${i}-qt5
done
install -D -m644 LGPL_EXCEPTION.txt \
"${pkgdir}"/usr/share/licenses/${pkgname}/LGPL_EXCEPTION.txt
}
package_qt5-translations() {
pkgdesc='A cross-platform application and UI framework (Translations)'
depends=('qt5-base')
conflicts=('qt5')
options=("debug")
cd ${_pkgfqn}/qttranslations
make INSTALL_ROOT="${pkgdir}" install
install -D -m644 LGPL_EXCEPTION.txt \
"${pkgdir}"/usr/share/licenses/${pkgname}/LGPL_EXCEPTION.txt
}
package_qt5-multimedia() {
pkgdesc='A cross-platform application and UI framework (QtMultimedia)'
depends=('qt5-declarative' 'libpulse' 'gstreamer' 'openal')
conflicts=('qt5')
options=("debug")
cd ${_pkgfqn}/qtmultimedia
make INSTALL_ROOT="${pkgdir}" install