Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
core
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
85
Issues
85
List
Boards
Labels
Service Desk
Milestones
Iterations
Merge Requests
32
Merge Requests
32
Requirements
Requirements
List
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Code Review
Insights
Issue
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Chakra
Packages
core
Commits
7a6150c9
Commit
7a6150c9
authored
Mar 07, 2016
by
Xuetian Weng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add back qt 5.5 for now, rebuild for openssl
parent
5bfa4bcd
Changes
16
Show whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
1187 additions
and
0 deletions
+1187
-0
qt5.5/0001-Fix-QWidget-setWindowRole.patch
qt5.5/0001-Fix-QWidget-setWindowRole.patch
+165
-0
qt5.5/0005-Restore-documented-behavior-for-the-WA_X11NetWmWindo.patch
...estore-documented-behavior-for-the-WA_X11NetWmWindo.patch
+116
-0
qt5.5/PKGBUILD
qt5.5/PKGBUILD
+611
-0
qt5.5/assistant-qt5.desktop
qt5.5/assistant-qt5.desktop
+9
-0
qt5.5/browser.desktop
qt5.5/browser.desktop
+10
-0
qt5.5/defaultbookmarks_new.diff
qt5.5/defaultbookmarks_new.diff
+47
-0
qt5.5/designer-qt5.desktop
qt5.5/designer-qt5.desktop
+11
-0
qt5.5/libqt5-Fix-Gujarati-font.patch
qt5.5/libqt5-Fix-Gujarati-font.patch
+14
-0
qt5.5/libqt5-do-not-use-shm-if-display-name-doesnt-look-local.patch
...t5-do-not-use-shm-if-display-name-doesnt-look-local.patch
+39
-0
qt5.5/linguist-qt5.desktop
qt5.5/linguist-qt5.desktop
+10
-0
qt5.5/qdbusviewer-qt5.desktop
qt5.5/qdbusviewer-qt5.desktop
+9
-0
qt5.5/qmlviewer.desktop
qt5.5/qmlviewer.desktop
+10
-0
qt5.5/qt.install
qt5.5/qt.install
+33
-0
qt5.5/qtconfig-qt5.desktop
qt5.5/qtconfig-qt5.desktop
+10
-0
qt5.5/xcb-dont-crash-in-mapToNativemapFromNative-if-the-screen-is-null.patch
...h-in-mapToNativemapFromNative-if-the-screen-is-null.patch
+57
-0
qt5.5/xcb-fix-yet-another-crash-when-screens-are-disconnected.patch
...fix-yet-another-crash-when-screens-are-disconnected.patch
+36
-0
No files found.
qt5.5/0001-Fix-QWidget-setWindowRole.patch
0 → 100644
View file @
7a6150c9
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
qt5.5/0005-Restore-documented-behavior-for-the-WA_X11NetWmWindo.patch
0 → 100644
View file @
7a6150c9
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
qt5.5/PKGBUILD
0 → 100644
View file @
7a6150c9
#
# 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
_prlfix
}
package_qt5-graphicaleffects
()
{
pkgdesc
=
'Graphical effects for use with Qt Quick 2'
depends
=(
'qt5-declarative'
)
conflicts
=(
'qt5'
)
options
=(
"debug"
)
cd
${
_pkgfqn
}
/qtgraphicaleffects
make
INSTALL_ROOT
=
"
${
pkgdir
}
"
install
install
-D
-m644
LGPL_EXCEPTION.txt
\
"