From d7b52e5dad606a05f56b8d4273b75c529e47b7c1 Mon Sep 17 00:00:00 2001 From: Helio Chissini de Castro Date: Sun, 15 Nov 2015 10:10:58 -0200 Subject: [PATCH] - Working under all arches now --- qtbase-opensource-src-5.4.0-rc-old_xcb.patch | 196 ------------------ ...pensource-src-5.4.0-rc-old_xkbcommon.patch | 77 ------- ...e-src-5.5.1-qdbusconnection_no_debug.patch | 14 -- 3 files changed, 287 deletions(-) delete mode 100644 qtbase-opensource-src-5.4.0-rc-old_xcb.patch delete mode 100644 qtbase-opensource-src-5.4.0-rc-old_xkbcommon.patch delete mode 100644 qtbase-opensource-src-5.5.1-qdbusconnection_no_debug.patch diff --git a/qtbase-opensource-src-5.4.0-rc-old_xcb.patch b/qtbase-opensource-src-5.4.0-rc-old_xcb.patch deleted file mode 100644 index 8a6437b..0000000 --- a/qtbase-opensource-src-5.4.0-rc-old_xcb.patch +++ /dev/null @@ -1,196 +0,0 @@ -diff --git a/configure b/configure -index 5ad29bb..7ff0df1 100644 ---- a/configure -+++ b/configure -@@ -5060,10 +5060,8 @@ if [ "$CFG_XCB" != "no" ]; then - QMAKE_LIBS_XCB="`$PKG_CONFIG --libs $XCB_PACKAGES 2>/dev/null`" - fi - -- # libxcb version 1.10 was the first version that enables xcb-xkb by default, -- # therefore the minimal xcb-xkb version we support is 1.10 - CFG_XKB=no -- if $PKG_CONFIG --exists "xcb-xkb >= 1.10" 2>/dev/null; then -+ if $PKG_CONFIG --exists "xcb-xkb" 2>/dev/null; then - QMAKE_CFLAGS_XKB="`$PKG_CONFIG --cflags xcb xcb-xkb 2>/dev/null`" - QMAKE_LIBS_XKB="`$PKG_CONFIG --libs xcb xcb-xkb 2>/dev/null`" - if compileTest qpa/xcb-xkb "xcb-xkb" $QMAKE_CFLAGS_XKB $QMAKE_LIBS_XKB; then -@@ -5172,16 +5170,16 @@ MIN_REQ_XKBCOMMON="0.4.1" - if [ "$CFG_XCB" != "no" ]; then - if [ "$CFG_XKBCOMMON" != "no" ] && [ "$CFG_XKBCOMMON" != "qt" ]; then - # Check if there is a suitable system-wide xkbcommon -- if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xkbcommon xkbcommon-x11 >= $MIN_REQ_XKBCOMMON" 2>/dev/null; then -- QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon xkbcommon-x11 2>/dev/null`" -- QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon xkbcommon-x11 2>/dev/null`" -+ if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xkbcommon >= $MIN_REQ_XKBCOMMON" 2>/dev/null; then -+ QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`" -+ QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`" - - QMakeVar set QMAKE_CFLAGS_XKBCOMMON "$QMAKE_CFLAGS_XKBCOMMON" - QMakeVar set QMAKE_LIBS_XKBCOMMON "$QMAKE_LIBS_XKBCOMMON" - CFG_XKBCOMMON=system - elif [ "$CFG_XKBCOMMON" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then -- echo " xkbcommon support cannot be enabled because either xkbcommon or " -- echo " xkbcommon-x11 >= $MIN_REQ_XKBCOMMON was not found via pkg-config!" -+ echo " xkbcommon support cannot be enabled because xkbcommon" -+ echo " >= $MIN_REQ_XKBCOMMON was not found via pkg-config!" - [ -z "$PKG_CONFIG" ] && echo " Use of pkg-config is not enabled, maybe you want to pass -force-pkg-config?" - echo " Turn on verbose messaging (-v) to $0 to see the final report." - echo " If you believe this message is in error you may use the continue" -diff --git a/src/plugins/platforms/xcb/qxcbconnection.cpp b/src/plugins/platforms/xcb/qxcbconnection.cpp -index 5510c3b..4762977 100644 ---- a/src/plugins/platforms/xcb/qxcbconnection.cpp -+++ b/src/plugins/platforms/xcb/qxcbconnection.cpp -@@ -1761,7 +1761,7 @@ void QXcbConnection::initializeXKB() - xcb_xkb_use_extension_cookie_t xkb_query_cookie; - xcb_xkb_use_extension_reply_t *xkb_query; - -- xkb_query_cookie = xcb_xkb_use_extension(c, XKB_X11_MIN_MAJOR_XKB_VERSION, XKB_X11_MIN_MINOR_XKB_VERSION); -+ xkb_query_cookie = xcb_xkb_use_extension(c, XCB_XKB_MAJOR_VERSION, XCB_XKB_MINOR_VERSION); - xkb_query = xcb_xkb_use_extension_reply(c, xkb_query_cookie, 0); - - if (!xkb_query) { -diff --git a/src/plugins/platforms/xcb/qxcbkeyboard.cpp b/src/plugins/platforms/xcb/qxcbkeyboard.cpp -index 5fb7457..487c3ba 100644 ---- a/src/plugins/platforms/xcb/qxcbkeyboard.cpp -+++ b/src/plugins/platforms/xcb/qxcbkeyboard.cpp -@@ -693,50 +693,65 @@ void QXcbKeyboard::updateKeymap() - // log only critical errors, we do our own error logging from printKeymapError() - xkb_context_set_log_level(xkb_context, (xkb_log_level)XKB_LOG_LEVEL_CRITICAL); - } -- // update xkb keymap object -- xkb_keymap_unref(xkb_keymap); -- xkb_keymap = 0; - -- struct xkb_state *new_state = 0; --#ifndef QT_NO_XKB -- if (connection()->hasXKB()) { -- xkb_keymap = xkb_x11_keymap_new_from_device(xkb_context, xcb_connection(), core_device_id, (xkb_keymap_compile_flags)0); -- if (xkb_keymap) { -- // Create a new keyboard state object for a keymap -- new_state = xkb_x11_state_new_from_device(xkb_keymap, xcb_connection(), core_device_id); -- } -- } --#endif -+ readXKBConfig(); -+ // Compile a keymap from RMLVO (rules, models, layouts, variants and options) names -+ if (xkb_keymap) -+ xkb_keymap_unref(xkb_keymap); -+ -+ xkb_keymap = xkb_keymap_new_from_names(xkb_context, &xkb_names, (xkb_keymap_compile_flags)0); - if (!xkb_keymap) { -- // Compile a keymap from RMLVO (rules, models, layouts, variants and options) names -- readXKBConfig(); -+ // last fallback is to used hard-coded keymap name, see DEFAULT_XKB_* in xkbcommon.pri -+ qWarning() << "Qt: Could not determine keyboard configuration data" -+ " from X server, will use hard-coded keymap configuration."; -+ clearXKBConfig(); - xkb_keymap = xkb_keymap_new_from_names(xkb_context, &xkb_names, (xkb_keymap_compile_flags)0); -- if (!xkb_keymap) { -- // last fallback is to used hard-coded keymap name, see DEFAULT_XKB_* in xkbcommon.pri -- qWarning() << "Qt: Could not determine keyboard configuration data" -- " from X server, will use hard-coded keymap configuration."; -- clearXKBConfig(); -- xkb_keymap = xkb_keymap_new_from_names(xkb_context, &xkb_names, (xkb_keymap_compile_flags)0); -- } -- if (xkb_keymap) { -- new_state = xkb_state_new(xkb_keymap); -- } else { -- printKeymapError("Qt: Failed to compile a keymap!"); -- m_config = false; -- return; -- } -- - } -+ if (!xkb_keymap) { -+ printKeymapError("Qt: Failed to compile a keymap!"); -+ m_config = false; -+ return; -+ } -+ -+ struct xkb_state *new_state = xkb_state_new(xkb_keymap); - if (!new_state) { - qWarning("Qt: Failed to create xkb state!"); - m_config = false; - return; - } -- // update xkb state object -- xkb_state_unref(xkb_state); -- xkb_state = new_state; -- if (!connection()->hasXKB()) -- updateXKBMods(); -+ -+ if (xkb_state) { -+ xkb_state_unref(xkb_state); -+ xkb_state = new_state; -+ } else { -+ xkb_state = new_state; -+#ifndef QT_NO_XKB -+ if (connection()->hasXKB()) { -+ // get initial state from the X server (and keep it up-to-date at all times) -+ xcb_xkb_get_state_cookie_t state; -+ xcb_xkb_get_state_reply_t *init_state; -+ -+ xcb_connection_t *c = xcb_connection(); -+ state = xcb_xkb_get_state(c, XCB_XKB_ID_USE_CORE_KBD); -+ init_state = xcb_xkb_get_state_reply(c, state, 0); -+ if (!init_state) { -+ qWarning("Qt: couldn't retrieve an initial keyboard state"); -+ return; -+ } -+ /* The xkb keyboard state is comprised of the state of all keyboard modifiers, -+ the keyboard group, and the state of the pointer buttons */ -+ xkb_state_update_mask(xkb_state, -+ init_state->baseMods, -+ init_state->latchedMods, -+ init_state->lockedMods, -+ init_state->baseGroup, -+ init_state->latchedGroup, -+ init_state->lockedGroup); -+ free(init_state); -+ } else -+#endif -+ updateXKBMods(); -+ } - - checkForLatinLayout(); - } -@@ -1097,11 +1112,23 @@ QXcbKeyboard::QXcbKeyboard(QXcbConnection *connection) - if (connection->hasXKB()) { - updateVModMapping(); - updateVModToRModMapping(); -- core_device_id = xkb_x11_get_core_keyboard_device_id(xcb_connection()); -- if (core_device_id == -1) { -+ -+ // get the core keyboard id -+ xcb_xkb_get_device_info_cookie_t device_id_cookie; -+ xcb_xkb_get_device_info_reply_t *device_id; -+ -+ device_id_cookie = xcb_xkb_get_device_info(xcb_connection(), -+ XCB_XKB_ID_USE_CORE_KBD, -+ 0, 0, 0, 0, 0, 0); -+ -+ device_id = xcb_xkb_get_device_info_reply(xcb_connection(), device_id_cookie, 0); -+ if (!device_id) { - qWarning("Qt: couldn't get core keyboard device info"); - return; - } -+ -+ core_device_id = device_id->deviceID; -+ free(device_id); - } else { - #endif - m_key_symbols = xcb_key_symbols_alloc(xcb_connection()); -diff --git a/src/plugins/platforms/xcb/qxcbkeyboard.h b/src/plugins/platforms/xcb/qxcbkeyboard.h -index 9f1cf16..3beee7b 100644 ---- a/src/plugins/platforms/xcb/qxcbkeyboard.h -+++ b/src/plugins/platforms/xcb/qxcbkeyboard.h -@@ -39,9 +39,6 @@ - #include - - #include --#ifndef QT_NO_XKB --#include --#endif - - #include - diff --git a/qtbase-opensource-src-5.4.0-rc-old_xkbcommon.patch b/qtbase-opensource-src-5.4.0-rc-old_xkbcommon.patch deleted file mode 100644 index ea7c60a..0000000 --- a/qtbase-opensource-src-5.4.0-rc-old_xkbcommon.patch +++ /dev/null @@ -1,77 +0,0 @@ -diff -ur qtbase-opensource-src-5.4.0-rc-old_xcb/configure qtbase-opensource-src-5.4.0-rc-old_xkbcommon/configure ---- qtbase-opensource-src-5.4.0-rc-old_xcb/configure 2014-11-29 03:07:40.000000000 +0100 -+++ qtbase-opensource-src-5.4.0-rc-old_xkbcommon/configure 2014-11-29 03:32:16.000000000 +0100 -@@ -5144,7 +5144,7 @@ - fi - - # Detect libxkbcommon --MIN_REQ_XKBCOMMON="0.4.1" -+MIN_REQ_XKBCOMMON="0.3.0" - # currently only xcb platform plugin supports building xkbcommon - if [ "$CFG_XCB" != "no" ]; then - if [ "$CFG_XKBCOMMON" != "no" ] && [ "$CFG_XKBCOMMON" != "qt" ]; then -diff -ur qtbase-opensource-src-5.4.0-rc-old_xcb/src/plugins/platforms/xcb/qxcbkeyboard.cpp qtbase-opensource-src-5.4.0-rc-old_xkbcommon/src/plugins/platforms/xcb/qxcbkeyboard.cpp ---- qtbase-opensource-src-5.4.0-rc-old_xcb/src/plugins/platforms/xcb/qxcbkeyboard.cpp 2014-11-29 03:29:53.000000000 +0100 -+++ qtbase-opensource-src-5.4.0-rc-old_xkbcommon/src/plugins/platforms/xcb/qxcbkeyboard.cpp 2014-11-29 03:35:36.000000000 +0100 -@@ -971,7 +971,7 @@ - } - - QList result; -- int baseQtKey = keysymToQtKey(sym, modifiers, lookupString(kb_state, keycode)); -+ int baseQtKey = keysymToQtKey(sym, modifiers, keysymToUnicode(sym)); - result += (baseQtKey + modifiers); // The base key is _always_ valid, of course - - xkb_mod_index_t shiftMod = xkb_keymap_mod_get_index(xkb_keymap, "Shift"); -@@ -1008,7 +1008,7 @@ - continue; - - Qt::KeyboardModifiers mods = modifiers & ~neededMods; -- qtKey = keysymToQtKey(sym, mods, lookupString(kb_state, keycode)); -+ qtKey = keysymToQtKey(sym, mods, keysymToUnicode(sym)); - if (!qtKey || qtKey == baseQtKey) - continue; - -@@ -1462,7 +1462,7 @@ - return; - } - -- QString string = lookupString(xkb_state, code); -+ QString string = keysymToUnicode(sym); - int count = string.size(); - string.truncate(count); - -@@ -1535,12 +1535,18 @@ - } - } - --QString QXcbKeyboard::lookupString(struct xkb_state *state, xcb_keycode_t code) const -+QString QXcbKeyboard::keysymToUnicode(xcb_keysym_t sym) const - { - QByteArray chars; -- chars.resize(1 + xkb_state_key_get_utf8(state, code, 0, 0)); -- // equivalent of XLookupString -- xkb_state_key_get_utf8(state, code, chars.data(), chars.size()); -+ int bytes; -+ chars.resize(7); -+ -+ bytes = xkb_keysym_to_utf8(sym, chars.data(), chars.size()); -+ -+ if (bytes == -1) -+ qWarning("QXcbKeyboard::handleKeyEvent - buffer too small"); -+ chars.resize(bytes-1); -+ - return QString::fromUtf8(chars); - } - -diff -ur qtbase-opensource-src-5.4.0-rc-old_xcb/src/plugins/platforms/xcb/qxcbkeyboard.h qtbase-opensource-src-5.4.0-rc-old_xkbcommon/src/plugins/platforms/xcb/qxcbkeyboard.h ---- qtbase-opensource-src-5.4.0-rc-old_xcb/src/plugins/platforms/xcb/qxcbkeyboard.h 2014-11-29 03:07:40.000000000 +0100 -+++ qtbase-opensource-src-5.4.0-rc-old_xkbcommon/src/plugins/platforms/xcb/qxcbkeyboard.h 2014-11-29 03:32:16.000000000 +0100 -@@ -75,7 +75,7 @@ - void handleKeyEvent(xcb_window_t sourceWindow, QEvent::Type type, xcb_keycode_t code, quint16 state, xcb_timestamp_t time); - - void resolveMaskConflicts(); -- QString lookupString(struct xkb_state *state, xcb_keycode_t code) const; -+ QString keysymToUnicode(xcb_keysym_t sym) const; - int keysymToQtKey(xcb_keysym_t keysym) const; - int keysymToQtKey(xcb_keysym_t keysym, Qt::KeyboardModifiers &modifiers, QString text) const; - void printKeymapError(const char *error) const; diff --git a/qtbase-opensource-src-5.5.1-qdbusconnection_no_debug.patch b/qtbase-opensource-src-5.5.1-qdbusconnection_no_debug.patch deleted file mode 100644 index 62ac784..0000000 --- a/qtbase-opensource-src-5.5.1-qdbusconnection_no_debug.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -up qtbase-opensource-src-5.4.1/src/dbus/qdbusconnection.cpp.qdbusconnection_no_debug qtbase-opensource-src-5.4.1/src/dbus/qdbusconnection.cpp ---- qtbase-opensource-src-5.4.1/src/dbus/qdbusconnection.cpp.qdbusconnection_no_debug 2015-02-16 22:56:38.000000000 -0600 -+++ qtbase-opensource-src-5.4.1/src/dbus/qdbusconnection.cpp 2015-04-25 10:48:52.099668703 -0500 -@@ -1056,8 +1056,10 @@ public: - // make sure this connection is running on the main thread - QCoreApplication *instance = QCoreApplication::instance(); - if (!instance) { -+#ifndef QT_NO_DEBUG - qWarning("QDBusConnection: %s D-Bus connection created before QCoreApplication. Application may misbehave.", - type == SessionBus ? "session" : type == SystemBus ? "system" : "generic"); -+#endif - } else if (QDBusConnectionPrivate::d(*this)) { - QDBusConnectionPrivate::d(*this)->moveToThread(instance->thread()); - }