[arch-commits] Commit in kdelibs/trunk (4 files)

Andrea Scarpino andrea at archlinux.org
Fri Jul 18 18:34:16 UTC 2014


    Date: Friday, July 18, 2014 @ 20:34:16
  Author: andrea
Revision: 217476

Support PyQt newer build system

Added:
  kdelibs/trunk/pyqt.patch
Modified:
  kdelibs/trunk/PKGBUILD
Deleted:
  kdelibs/trunk/CVE-2014-3494.patch
  kdelibs/trunk/fix-cifs-mount.patch

----------------------+
 CVE-2014-3494.patch  |   55 ----------------
 PKGBUILD             |   10 +--
 fix-cifs-mount.patch |   49 --------------
 pyqt.patch           |  161 +++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 166 insertions(+), 109 deletions(-)

Deleted: CVE-2014-3494.patch
===================================================================
--- CVE-2014-3494.patch	2014-07-18 17:07:22 UTC (rev 217475)
+++ CVE-2014-3494.patch	2014-07-18 18:34:16 UTC (rev 217476)
@@ -1,55 +0,0 @@
-From: David Faure <faure at kde.org>
-Date: Wed, 18 Jun 2014 18:29:04 +0000
-Subject: Don't require a job to handle messageboxes.
-X-Git-Url: http://quickgit.kde.org/?p=kdelibs.git&a=commitdiff&h=bbae87dc1be3ae063796a582774bd5642cacdd5d
----
-Don't require a job to handle messageboxes.
-
-The POP3 ioslave doesn't have a job when it gets here.
----
-
-
---- a/kio/kio/usernotificationhandler.cpp
-+++ b/kio/kio/usernotificationhandler.cpp
-@@ -19,7 +19,7 @@
- #include "usernotificationhandler_p.h"
- 
- #include "slave.h"
--#include "job_p.h"
-+#include "jobuidelegate.h"
- 
- #include <kdebug.h>
- 
-@@ -76,19 +76,18 @@
- 
-         if (m_cachedResults.contains(key)) {
-             result = *(m_cachedResults[key]);
--        } else if (r->slave->job()) {
--            SimpleJobPrivate* jobPrivate = SimpleJobPrivate::get(r->slave->job());
--            if (jobPrivate) {
--                result = jobPrivate->requestMessageBox(r->type,
--                                                      r->data.value(MSG_TEXT).toString(),
--                                                      r->data.value(MSG_CAPTION).toString(),
--                                                      r->data.value(MSG_YES_BUTTON_TEXT).toString(),
--                                                      r->data.value(MSG_NO_BUTTON_TEXT).toString(),
--                                                      r->data.value(MSG_YES_BUTTON_ICON).toString(),
--                                                      r->data.value(MSG_NO_BUTTON_ICON).toString(),
--                                                      r->data.value(MSG_DONT_ASK_AGAIN).toString(),
--                                                      r->data.value(MSG_META_DATA).toMap());
--            }
-+        } else {
-+            JobUiDelegate ui;
-+            const JobUiDelegate::MessageBoxType type = static_cast<JobUiDelegate::MessageBoxType>(r->type);
-+            result = ui.requestMessageBox(type,
-+                                          r->data.value(MSG_TEXT).toString(),
-+                                          r->data.value(MSG_CAPTION).toString(),
-+                                          r->data.value(MSG_YES_BUTTON_TEXT).toString(),
-+                                          r->data.value(MSG_NO_BUTTON_TEXT).toString(),
-+                                          r->data.value(MSG_YES_BUTTON_ICON).toString(),
-+                                          r->data.value(MSG_NO_BUTTON_ICON).toString(),
-+                                          r->data.value(MSG_DONT_ASK_AGAIN).toString(),
-+                                          r->data.value(MSG_META_DATA).toMap());
-             m_cachedResults.insert(key, new int(result));
-         }
-     } else {
-

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2014-07-18 17:07:22 UTC (rev 217475)
+++ PKGBUILD	2014-07-18 18:34:16 UTC (rev 217476)
@@ -17,12 +17,12 @@
 install=${pkgname}.install
 source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz"
         'kde-applications-menu.patch' 'archlinux-menu.patch' 'qt4.patch'
-        'CVE-2014-3494.patch')
+        'pyqt.patch')
 sha1sums=('9c0e963fa2db119ac37e15f31c05d18d3043a58e'
           '86ee8c8660f19de8141ac99cd6943964d97a1ed7'
           '63a850ab4196b9d06934f2b4a13acd9f7739bc67'
           'ed1f57ee661e5c7440efcaba7e51d2554709701c'
-          'c8b4010c68cee6352a68d97da3d5316f52207e83')
+          'd32534d7d6dc287c80951d24caf0259ab18c9abc')
 
 prepare() {
        mkdir build
@@ -33,9 +33,9 @@
        patch -p1 -i "${srcdir}"/archlinux-menu.patch
        # qmake refers to Qt5
        patch -p1 -i "${srcdir}"/qt4.patch
-       # fix build with giflib 5.1.0
-       sed -i "/DGifCloseFile/s:file:&, NULL:g" khtml/imload/decoders/gifloader.cpp
-       patch -p1 -i "${srcdir}"/CVE-2014-3494.patch
+
+       # support newer PyQt build system
+       patch -p1 -i "${srcdir}"/pyqt.patch
 }
 
 build() {

Deleted: fix-cifs-mount.patch
===================================================================
--- fix-cifs-mount.patch	2014-07-18 17:07:22 UTC (rev 217475)
+++ fix-cifs-mount.patch	2014-07-18 18:34:16 UTC (rev 217476)
@@ -1,49 +0,0 @@
-commit 9a8426ae2ed35ac900b89a623618fc158d24ee6a
-Author: Tomáš Trnka <tomastrnka at gmx.com>
-Date:   Sun May 25 16:12:36 2014 +0200
-
-    Revert "Avoid unnecessary automounting in KDiskFreeSpaceInfo::freeSpaceInfo"
-    
-    This reverts commit 6246e99b43f3d1a9e15d563fbb5e173ed50ba5e5.
-    
-    It breaks KIO on CIFS mounts as the check for automounts copied over
-    from frameworks/kfileitem.cpp isDirectoryMounted() apparently matches
-    CIFS as well (and for some weird reason KIO checks for available space
-    before trying to copy files).
-    
-    We'll probably have to return to v1 of the abovementioned commit, i.e.
-    checking for "autofs" explicitly. However, more testing is apparently
-    necessary to avoid further nasty surprises.
-    
-    REVIEW: 117044
-    BUG: 334776
-    FIXED-IN: 4.13.2
-
-diff --git a/kio/kfile/kdiskfreespaceinfo.cpp b/kio/kfile/kdiskfreespaceinfo.cpp
-index 5c1fa72..f11eb09 100644
---- a/kio/kfile/kdiskfreespaceinfo.cpp
-+++ b/kio/kfile/kdiskfreespaceinfo.cpp
-@@ -33,7 +33,6 @@
- #include <QtCore/QDir>
- #include <windows.h>
- #else
--#include <QtCore/QFileInfo>
- #include <sys/statvfs.h>
- #endif
- 
-@@ -131,15 +130,6 @@ KDiskFreeSpaceInfo KDiskFreeSpaceInfo::freeSpaceInfo( const QString& path )
- #else
-     struct statvfs statvfs_buf;
- 
--    // Ignore autofs mountpoints as statvfs would trigger (expensive) automounting
--    // This also matches "special" filesystems like /proc where free space has no meaning
--    if (mp) {
--        QFileInfo fi(info.d->mountPoint);
--        if (fi.isDir() && fi.size() == 0) {
--            return info;
--        }
--    }
--
-     // Prefer mountPoint if available, so that it even works with non-existing files.
-     const QString pathArg = info.d->mountPoint.isEmpty() ? path : info.d->mountPoint;
-     if (!statvfs(QFile::encodeName(pathArg).constData(), &statvfs_buf)) {

Added: pyqt.patch
===================================================================
--- pyqt.patch	                        (rev 0)
+++ pyqt.patch	2014-07-18 18:34:16 UTC (rev 217476)
@@ -0,0 +1,161 @@
+From: Raphael Kubo da Costa <rakuco at FreeBSD.org>
+Date: Wed, 16 Jul 2014 19:29:40 +0000
+Subject: Make FindPyQt4 work with PyQt's new build system.
+X-Git-Tag: v4.13.90
+X-Git-Url: http://quickgit.kde.org/?p=kdelibs.git&a=commitdiff&h=a7e47438d4e3469dc9df70d613826cb360fc8d19
+---
+Make FindPyQt4 work with PyQt's new build system.
+
+Since PyQt 4.10, PyQt.pyqtconfig is deprecated and not available unless
+PyQt is built using the old configure script.
+
+There is no direct replacement for it, as PyQt's new build system does
+not provide as much information as before by design. Luckily, most of
+the variables we are interested in can be obtained from PyQt's QtCore
+module itself even if its old build system is used.
+
+The only exception is pyqt_sip_dir, which cannot be determined at all if
+pyqtconfig is not available. In this case, the most we can do is guess
+the default path like QScintilla2 does, and fail if it does not exist.
+The user then needs to specify it manually via CMake with something like
+-DPYQT4_SIP_DIR=/usr/share/sip/PyQt4. To this effect, all variables set
+by FindPyQt4.cmake have been made cache variables, which means their
+values can be overriden by the user, thus ignoring the contents read via
+FindPyQt.py.
+
+BUG:      337462
+FIXED-IN: 4.14.0
+REVIEW:   119302
+---
+
+
+--- a/cmake/modules/FindPyQt4.cmake
++++ b/cmake/modules/FindPyQt4.cmake
+@@ -9,16 +9,20 @@
+ # Find the installed version of PyQt4. FindPyQt4 should only be called after
+ # Python has been found.
+ #
+-# This file defines the following variables:
++# This file defines the following variables, which can also be overriden by
++# users:
+ #
+ # PYQT4_VERSION - The version of PyQt4 found expressed as a 6 digit hex number
+ #     suitable for comparison as a string
+ #
+ # PYQT4_VERSION_STR - The version of PyQt4 as a human readable string.
+ #
+-# PYQT4_VERSION_TAG - The PyQt version tag using by PyQt's sip files.
++# PYQT4_VERSION_TAG - The Qt4 version tag used by PyQt's sip files.
+ #
+-# PYQT4_SIP_DIR - The directory holding the PyQt4 .sip files.
++# PYQT4_SIP_DIR - The directory holding the PyQt4 .sip files. This can be unset
++# if PyQt4 was built using its new build system and pyqtconfig.py is not
++# present on the system, as in this case its value cannot be determined
++# automatically.
+ #
+ # PYQT4_SIP_FLAGS - The SIP flags used to build PyQt.
+ 
+@@ -31,13 +35,27 @@
+ 
+   EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} ${_find_pyqt_py} OUTPUT_VARIABLE pyqt_config)
+   IF(pyqt_config)
+-    STRING(REGEX REPLACE "^pyqt_version:([^\n]+).*$" "\\1" PYQT4_VERSION ${pyqt_config})
+-    STRING(REGEX REPLACE ".*\npyqt_version_str:([^\n]+).*$" "\\1" PYQT4_VERSION_STR ${pyqt_config})
+-    STRING(REGEX REPLACE ".*\npyqt_version_tag:([^\n]+).*$" "\\1" PYQT4_VERSION_TAG ${pyqt_config})
+-    STRING(REGEX REPLACE ".*\npyqt_sip_dir:([^\n]+).*$" "\\1" PYQT4_SIP_DIR ${pyqt_config})
+-    STRING(REGEX REPLACE ".*\npyqt_sip_flags:([^\n]+).*$" "\\1" PYQT4_SIP_FLAGS ${pyqt_config})
++    STRING(REGEX MATCH "^pyqt_version:([^\n]+).*$" _dummy ${pyqt_config})
++    SET(PYQT4_VERSION "${CMAKE_MATCH_1}" CACHE STRING "PyQt4's version as a 6-digit hexadecimal number")
+ 
+-    SET(PYQT4_FOUND TRUE)
++    STRING(REGEX MATCH ".*\npyqt_version_str:([^\n]+).*$" _dummy ${pyqt_config})
++    SET(PYQT4_VERSION_STR "${CMAKE_MATCH_1}" CACHE STRING "PyQt4's version as a human-readable string")
++
++    STRING(REGEX MATCH ".*\npyqt_version_tag:([^\n]+).*$" _dummy ${pyqt_config})
++    SET(PYQT4_VERSION_TAG "${CMAKE_MATCH_1}" CACHE STRING "The Qt4 version tag used by PyQt4's .sip files")
++
++    STRING(REGEX MATCH ".*\npyqt_sip_dir:([^\n]+).*$" _dummy ${pyqt_config})
++    SET(PYQT4_SIP_DIR "${CMAKE_MATCH_1}" CACHE FILEPATH "The base directory where PyQt4's .sip files are installed")
++
++    STRING(REGEX MATCH ".*\npyqt_sip_flags:([^\n]+).*$" _dummy ${pyqt_config})
++    SET(PYQT4_SIP_FLAGS "${CMAKE_MATCH_1}" CACHE STRING "The SIP flags used to build PyQt4")
++
++    IF(NOT IS_DIRECTORY "${PYQT4_SIP_DIR}")
++      MESSAGE(WARNING "The base directory where PyQt4's SIP files are installed could not be determined. This usually means PyQt4 was built with its new build system and pyqtconfig.py is not present.\n"
++                      "Please set the PYQT4_SIP_DIR variable manually.")
++    ELSE(NOT IS_DIRECTORY "${PYQT4_SIP_DIR}")
++      SET(PYQT4_FOUND TRUE)
++    ENDIF(NOT IS_DIRECTORY "${PYQT4_SIP_DIR}")
+   ENDIF(pyqt_config)
+ 
+   IF(PYQT4_FOUND)
+
+--- kdelibs-4.13.3/cmake/modules/FindPyQt.py~	2014-07-11 06:42:13.000000000 +0000
++++ kdelibs-4.13.3/cmake/modules/FindPyQt.py	2014-07-18 13:04:32.070296111 +0000
+@@ -1,24 +1,49 @@
+ # Copyright (c) 2007, Simon Edwards <simon at simonzone.com>
++# Copyright (c) 2014, Raphael Kubo da Costa <rakuco at FreeBSD.org>
+ # Redistribution and use is allowed according to the terms of the BSD license.
+ # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+ 
+-import PyQt4.pyqtconfig
++import PyQt4.QtCore
++import os
++import sys
+ 
+-pyqtcfg = PyQt4.pyqtconfig.Configuration()
+-print("pyqt_version:%06.0x" % pyqtcfg.pyqt_version)
+-print("pyqt_version_str:%s" % pyqtcfg.pyqt_version_str)
+-
+-pyqt_version_tag = ""
+-in_t = False
+-for item in pyqtcfg.pyqt_sip_flags.split(' '):
+-    if item=="-t":
+-        in_t = True
+-    elif in_t:
+-        if item.startswith("Qt_4"):
+-            pyqt_version_tag = item
++def get_default_sip_dir():
++    # This is based on QScintilla's configure.py, and only works for the
++    # default case where installation paths have not been changed in PyQt's
++    # configuration process.
++    if sys.platform == 'win32':
++        pyqt_sip_dir = os.path.join(sys.platform, 'sip', 'PyQt4')
+     else:
+-        in_t = False
+-print("pyqt_version_tag:%s" % pyqt_version_tag)
++        pyqt_sip_dir = os.path.join(sys.platform, 'share', 'sip', 'PyQt4')
++    return pyqt_sip_dir
++
++def get_qt4_tag(sip_flags):
++    in_t = False
++    for item in sip_flags.split(' '):
++        if item == '-t':
++            in_t = True
++        elif in_t:
++            if item.startswith('Qt_4'):
++                return item
++        else:
++            in_t = False
++    raise ValueError('Cannot find Qt\'s tag in PyQt4\'s SIP flags.')
++
++if __name__ == '__main__':
++    try:
++        import PyQt4.pyqtconfig
++        pyqtcfg = PyQt4.pyqtconfig.Configuration()
++        sip_dir = pyqtcfg.pyqt_sip_dir
++        sip_flags = pyqtcfg.pyqt_sip_flags
++    except ImportError:
++        # PyQt4 >= 4.10.0 was built with configure-ng.py instead of
++        # configure.py, so pyqtconfig.py is not installed.
++        sip_dir = get_default_sip_dir()
++        sip_flags = PyQt4.QtCore.PYQT_CONFIGURATION['sip_flags']
++
++    print('pyqt_version:%06.x' % PyQt4.QtCore.PYQT_VERSION)
++    print('pyqt_version_str:%s' % PyQt4.QtCore.PYQT_VERSION_STR)
++    print('pyqt_version_tag:%s' % get_qt4_tag(sip_flags))
++    print('pyqt_sip_dir:%s' % sip_dir)
++    print('pyqt_sip_flags:%s' % sip_flags)
+ 
+-print("pyqt_sip_dir:%s" % pyqtcfg.pyqt_sip_dir)
+-print("pyqt_sip_flags:%s" % pyqtcfg.pyqt_sip_flags)




More information about the arch-commits mailing list