[135592] trunk/dports/kde

nicos at macports.org nicos at macports.org
Mon Apr 27 09:55:08 PDT 2015


Revision: 135592
          https://trac.macports.org/changeset/135592
Author:   nicos at macports.org
Date:     2015-04-27 09:55:07 -0700 (Mon, 27 Apr 2015)
Log Message:
-----------
py-pykde4: new port (ticket #47125)

Added Paths:
-----------
    trunk/dports/kde/py-pykde4/
    trunk/dports/kde/py-pykde4/Portfile
    trunk/dports/kde/py-pykde4/files/
    trunk/dports/kde/py-pykde4/files/add_qt_kde_definitions.diff
    trunk/dports/kde/py-pykde4/files/fix_kpythonpluginfactory_build.diff
    trunk/dports/kde/py-pykde4/files/kubuntu_include_dirs.diff
    trunk/dports/kde/py-pykde4/files/kubuntu_kpythonpluginfactory_3.2support.diff
    trunk/dports/kde/py-pykde4/files/make_pykde4_respect_sip_flags.diff
    trunk/dports/kde/py-pykde4/files/optional_install_sip_files.diff
    trunk/dports/kde/py-pykde4/files/pykde4-macports-adaptations-noDLFCN.diff
    trunk/dports/kde/py-pykde4/files/pykde4-macports-adaptations-toolongfilename.diff
    trunk/dports/kde/py-pykde4/files/pykde4-macports-adaptations.diff
    trunk/dports/kde/py-pykde4/files/pykde4-macports-adaptations2.diff
    trunk/dports/kde/py-pykde4/files/pythonpluginfactory_python3.diff
    trunk/dports/kde/py-pykde4/files/pythonpluginfactory_use_versioned_python_lib.diff

Added: trunk/dports/kde/py-pykde4/Portfile
===================================================================
--- trunk/dports/kde/py-pykde4/Portfile	                        (rev 0)
+++ trunk/dports/kde/py-pykde4/Portfile	2015-04-27 16:55:07 UTC (rev 135592)
@@ -0,0 +1,158 @@
+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
+# $Id$
+
+PortSystem          1.0
+PortGroup           kde4   1.1
+
+name                py-pykde4
+version             4.14.3
+categories          kde kde4 devel
+license             LGPL-2+
+maintainers         gmail.com:rjvbertin openmaintainer
+description         Python bindings for the KDE Development Platform
+long_description    This package contains PyKDE, the Python bindings for the KDE \
+                    libraries, that allow you to write KDE programs using Python instead of \
+                    C++. It contains at least the following modules under the \
+                    PyKDE namespace: \
+                    \
+                     * dnssd \
+                     * kdecore \
+                     * kdeui \
+                     * khtml \
+                     * kio \
+                     * knewstuff \
+                     * kparts \
+                     * kterminal \
+                     * ktexteditor \
+                     * kutils \
+                     * plasma \
+                     * solid \
+                    \
+                    And a few KDE related technologies like: \
+                    \
+                     * akonadi \
+                     * phonon \
+                     * soprano
+platforms           darwin
+homepage            http://www.riverbankcomputing.co.uk/software/pykde/intro
+master_sites        kde:stable/${version}/src/
+use_xz              yes
+distname            pykde4-${version}
+checksums           rmd160  3ea2492cd31704e559456cb78dd85660fae7e74c \
+                    sha256  7fb9d7b5ed03d531243ebd67939baf30933452dafbdfca866e6653e9a77d80fc
+
+set python.versions         {{27 2.7} {34 3.4}}
+set python.default_version  27
+
+foreach py ${python.versions} {
+    set py_ver [lindex ${py} 0]
+    subport py${py_ver}-pykde4 {
+        depends_build       port:pkgconfig
+        depends_lib-append  port:kdelibs4 \
+                            port:soprano \
+                            port:boost \
+                            port:py${py_ver}-pyqt4 \
+                            port:dbus-python${py_ver}
+        depends_run-append  port:python${py_ver} port:py${py_ver}-pyqt4
+
+        set py_bra              [lindex ${py} 1]
+        set pylibdir            ${frameworks_dir}/Python.framework/Versions/${py_bra}/lib/python${py_bra}
+        configure.args-append   -DPYKDEUIC4_ALTINSTALL=TRUE \
+                                -DDEFAULT_PYTHON_VERSION=false -DPYTHON_EXECUTABLE=${prefix}/bin/python${py_bra} \
+                                -DPYTHON_INCLUDE_PATH=${frameworks_dir}/Python.framework/Versions/${py_bra}/Headers \
+                                -DPYTHON_INCLUDE_DIR2=${frameworks_dir}/Python.framework/Versions/${py_bra}/Headers \
+                                -DPYTHON_LIBRARY=${frameworks_dir}/Python.framework/Versions/${py_bra}/Python \
+                                -DPYTHON_SITE_PACKAGES_INSTALL_DIR=${pylibdir}/site-packages
+        post-configure {
+            reinplace -W ${build.dir} "s|${prefix}/lib/python${py_bra}/|${pylibdir}/|g" cmake_install.cmake pykdeconfig.py tools/pykdeuic4/cmake_install.cmake
+        }
+        post-destroot {
+            foreach module [glob ${destroot}${pylibdir}/site-packages/PyKDE4/*.dylib] {
+                set fname [file rootname ${module}]
+                file rename ${module} "${fname}.so"
+            }
+            xinstall -m 0755 ${build.dir}/pykdeconfig.py ${destroot}${pylibdir}/site-packages/PyKDE4
+            # who will ever need ${prefix}/share/sip/PyKDE4/pykde_config.sip?
+            file delete -force ${destroot}${prefix}/share/sip
+            file delete ${destroot}${prefix}/share/apps/pykde4/examples/kpartsExamples/konsolepart.py
+            file rename ${destroot}${prefix}/share/apps/pykde4 ${destroot}${prefix}/share/apps/${subport}
+            reinplace -W ${destroot}${prefix}/share/apps/${subport}/examples \
+                "s|#\!/usr/bin/env python|#\!${prefix}/bin/python${py_bra}|g" __init__.py default.py \
+                    kdecoreExamples/__init__.py kdecoreExamples/kaboutdata.py kdecoreExamples/kstandarddirs.py \
+                    kdeuiExamples/__init__.py kdeuiExamples/kaboutapplicationdialog.py kdeuiExamples/kaboutkdedialog.py \
+                    kdeuiExamples/kapplication.py kdeuiExamples/kcolorbutton.py kdeuiExamples/kcolorcells.py \
+                    kdeuiExamples/kcolorcombo.py kdeuiExamples/kcolordialog.py kdeuiExamples/kcolorpatch.py \
+                    kdeuiExamples/kcombobox.py kdeuiExamples/kdatepicker.py kdeuiExamples/kdatewidget.py \
+                    kdeuiExamples/kfontdialog.py kdeuiExamples/klistwidget.py kdeuiExamples/kmainwindow.py \
+                    khtmlExamples/__init__.py kioExamples/__init__.py kpartsExamples/__init__.py kpartsExamples/katepart.py \
+                    kutilsExamples/__init__.py polkitqtExamples/PkExampleUi.py \
+                    polkitqtExamples/pkexample.py polkitqtExamples/pkexamplehelper.py solidExamples/__init__.py \
+                    solidExamples/solid_audiointerface.py solidExamples/solid_device.py solidExamples/solid_networkinterface.py \
+                    solidExamples/solid_processor.py solidExamples/solid_storageaccess.py solidExamples/solid_storagedrive.py \
+                    solidExamples/solid_storagevolume.py solid_demo.py
+            reinplace -W ${destroot}${prefix}/share/apps/${subport}/examples \
+                "s|#\!python|#\!${prefix}/bin/python${py_bra}|g" __init__.py default.py \
+                    kdecoreExamples/__init__.py kdecoreExamples/kaboutdata.py kdecoreExamples/kstandarddirs.py \
+                    kdeuiExamples/__init__.py kdeuiExamples/kaboutapplicationdialog.py kdeuiExamples/kaboutkdedialog.py \
+                    kdeuiExamples/kapplication.py kdeuiExamples/kcolorbutton.py kdeuiExamples/kcolorcells.py \
+                    kdeuiExamples/kcolorcombo.py kdeuiExamples/kcolordialog.py kdeuiExamples/kcolorpatch.py \
+                    kdeuiExamples/kcombobox.py kdeuiExamples/kdatepicker.py kdeuiExamples/kdatewidget.py \
+                    kdeuiExamples/kfontdialog.py kdeuiExamples/klistwidget.py kdeuiExamples/kmainwindow.py \
+                    khtmlExamples/__init__.py kioExamples/__init__.py kpartsExamples/__init__.py kpartsExamples/katepart.py \
+                    kutilsExamples/__init__.py polkitqtExamples/PkExampleUi.py \
+                    polkitqtExamples/pkexample.py polkitqtExamples/pkexamplehelper.py solidExamples/__init__.py \
+                    solidExamples/solid_audiointerface.py solidExamples/solid_device.py solidExamples/solid_networkinterface.py \
+                    solidExamples/solid_processor.py solidExamples/solid_storageaccess.py solidExamples/solid_storagedrive.py \
+                    solidExamples/solid_storagevolume.py solid_demo.py
+        }
+    }
+}
+
+subport ${name}-docs {
+    long_description            Python bindings for the KDE Development Platform: the documentation
+    # extract only the docs directory:
+    extract.post_args-append    ${distname}/docs
+    configure.args-append       -DHTML_INSTALL_DIR:PATH=${prefix}/share/doc/HTML
+    configure.post_args         ${configure.post_args}/docs
+    supported_archs             noarch
+}
+
+if {${subport} eq ${name}} {
+    depends_build-append    port:py${python.default_version}-pykde4
+    fetch {}
+    checksum {}
+    extract {}
+    patch {}
+    use_configure   no
+    build {}
+    destroot {
+        xinstall -d -m 755 ${destroot}${prefix}/share/doc/kde-installed-packages
+        system "touch ${destroot}${prefix}/share/doc/kde-installed-packages/${name}=py${python.default_version}-pykde4"
+    }
+}
+
+if {${subport} ne "${name}-docs"} {
+    # patches come directly from Kubuntu, after doing a hardcoded -p1
+    #                    python3.3.diff
+    patchfiles-append   add_qt_kde_definitions.diff \
+                        fix_kpythonpluginfactory_build.diff \
+                        make_pykde4_respect_sip_flags.diff \
+                        pythonpluginfactory_use_versioned_python_lib.diff \
+                        optional_install_sip_files.diff \
+                        pythonpluginfactory_python3.diff \
+                        kubuntu_include_dirs.diff \
+                        kubuntu_kpythonpluginfactory_3.2support.diff \
+                        pykde4-macports-adaptations.diff \
+                        pykde4-macports-adaptations2.diff \
+                        pykde4-macports-adaptations-noDLFCN.diff \
+                        pykde4-macports-adaptations-toolongfilename.diff
+}
+
+if {[variant_isset docs]} {
+    depends_run-append  port:${name}-docs
+}
+
+compiler.blacklist  llvm-gcc-4.2 macports-llvm-gcc-4.2
+
+livecheck.url       http://kde.mirrors.hoobly.com/stable/
+livecheck.regex     (\\d+(\\.\\d+)+)


Property changes on: trunk/dports/kde/py-pykde4/Portfile
___________________________________________________________________
Added: svn:keywords
   + Id
Added: svn:eol-style
   + native

Added: trunk/dports/kde/py-pykde4/files/add_qt_kde_definitions.diff
===================================================================
--- trunk/dports/kde/py-pykde4/files/add_qt_kde_definitions.diff	                        (rev 0)
+++ trunk/dports/kde/py-pykde4/files/add_qt_kde_definitions.diff	2015-04-27 16:55:07 UTC (rev 135592)
@@ -0,0 +1,20 @@
+From: Sune Vuorela <sune at debian.org>
+From: Modestas Vainius <modax at debian.org>
+Subject: define Qt/KDE definitions when building standalone
+Forwarded: no
+Last-Update: 2011-06-30
+Origin: vendor
+
+Index: pykde4-4.13.97/CMakeLists.txt
+===================================================================
+--- CMakeLists.txt.orig
++++ CMakeLists.txt
+@@ -33,6 +33,8 @@ set_package_properties(PythonInterp PROP
+ 
+ include_directories(${KDE4_INCLUDES})
+ 
++add_definitions(${QT_DEFINITIONS} ${KDE4_DEFINITIONS} -DQT3_SUPPORT)
++
+ find_package(SIP)
+ set_package_properties(SIP PROPERTIES DESCRIPTION "The SIP binding generator"
+                        URL "http://riverbankcomputing.com" TYPE REQUIRED

Added: trunk/dports/kde/py-pykde4/files/fix_kpythonpluginfactory_build.diff
===================================================================
--- trunk/dports/kde/py-pykde4/files/fix_kpythonpluginfactory_build.diff	                        (rev 0)
+++ trunk/dports/kde/py-pykde4/files/fix_kpythonpluginfactory_build.diff	2015-04-27 16:55:07 UTC (rev 135592)
@@ -0,0 +1,26 @@
+From: Modestas Vainius <modax at debian.org>
+Subject: Include Python.h first as Qt includes steal "slots" keyword
+Forwarded: no
+Origin: vendor
+Last-Update: 2008-12-05
+
+Index: pykde4-4.9.80/kpythonpluginfactory/kpythonpluginfactory.cpp
+===================================================================
+--- kpythonpluginfactory/kpythonpluginfactory.cpp.orig	2012-11-14 16:14:05.000000000 +0000
++++ kpythonpluginfactory/kpythonpluginfactory.cpp	2012-11-19 17:23:32.497203781 +0000
+@@ -18,6 +18,7 @@
+    Boston, MA 02111-1307, USA.
+ */
+ 
++#include <Python.h>
+ #include <QtCore/QCoreApplication>
+ #include <QFileInfo>
+ #include <QDir>
+@@ -25,7 +26,6 @@
+ #include <klibloader.h>
+ #include <kstandarddirs.h>
+ #include <kcmodule.h>
+-#include <Python.h>
+ #include <kcomponentdata.h>
+ #include <kdebug.h>
+ 

Added: trunk/dports/kde/py-pykde4/files/kubuntu_include_dirs.diff
===================================================================
--- trunk/dports/kde/py-pykde4/files/kubuntu_include_dirs.diff	                        (rev 0)
+++ trunk/dports/kde/py-pykde4/files/kubuntu_include_dirs.diff	2015-04-27 16:55:07 UTC (rev 135592)
@@ -0,0 +1,35 @@
+Description: use multiarch include dirs
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: <vendor|upstream|other>, <url of original patch>
+Bug: <url in upstream bugtracker>
+Bug-Debian: http://bugs.debian.org/<bugnumber>
+Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
+Forwarded: <no|not-needed|url proving that it has been forwarded>
+Reviewed-By: <name and email of someone who approved the patch>
+Last-Update: <YYYY-MM-DD>
+
+Index: pykde4-4.13.97/CMakeLists.txt
+===================================================================
+--- CMakeLists.txt.orig
++++ CMakeLists.txt
+@@ -8,6 +8,7 @@ find_package(KDE4 4.9.4 REQUIRED)
+ # Match what's used in the main macros
+ cmake_policy(SET CMP0002 OLD)
+ find_package(PythonLibrary)
++find_package(PythonLibs)
+ 
+ include(KDE4Defaults)
+ include(MacroLibrary)
+@@ -80,6 +81,7 @@ set_package_properties(PolkitQt PROPERTI
+                        "Required to build Python Polkit bindings")
+ 
+ include_directories(
++    ${PYTHON_INCLUDE_DIRS}
+     ${PYTHON_INCLUDE_PATH}
+     ${SIP_INCLUDE_DIR}
+     ${QT_INCLUDE_DIR}

Added: trunk/dports/kde/py-pykde4/files/kubuntu_kpythonpluginfactory_3.2support.diff
===================================================================
--- trunk/dports/kde/py-pykde4/files/kubuntu_kpythonpluginfactory_3.2support.diff	                        (rev 0)
+++ trunk/dports/kde/py-pykde4/files/kubuntu_kpythonpluginfactory_3.2support.diff	2015-04-27 16:55:07 UTC (rev 135592)
@@ -0,0 +1,42 @@
+Index: b/kpythonpluginfactory/kpythonpluginfactory.cpp
+===================================================================
+--- kpythonpluginfactory/kpythonpluginfactory.cpp.orig
++++ kpythonpluginfactory/kpythonpluginfactory.cpp
+@@ -33,6 +33,12 @@
+ #define PY3
+ #endif
+ 
++#if PY_MAJOR_VERSION >= 3
++#if PY_MINOR_VERSION >= 2
++#define PY3.2
++#endif
++#endif
++
+ /*
+ This implements a plugin factory for running Python plugins. It also
+ supports io-slaves with a kdemain() entry point.
+@@ -106,8 +112,13 @@ void KPythonPluginFactory::initialize()
+         kDebug() << "Initializing Python interpreter.";
+         pythonLib = LoadPythonLibrary();
+ 
++#ifdef PY3.2
++        Py_Initialize ();
++        PyEval_InitThreads ();
++#else
+         PyEval_InitThreads ();
+         Py_Initialize ();
++#endif
+         if (!Py_IsInitialized ())
+         {
+             //pythonInit = 0;
+@@ -117,8 +128,10 @@ void KPythonPluginFactory::initialize()
+         kDebug() << "Succesfully initialized Python interpreter.";
+ 
+         threadState = PyThreadState_GET();
++#ifndef PY3.2
+         // free the lock
+         PyEval_ReleaseLock();
++#endif
+     }
+ }
+ 

Added: trunk/dports/kde/py-pykde4/files/make_pykde4_respect_sip_flags.diff
===================================================================
--- trunk/dports/kde/py-pykde4/files/make_pykde4_respect_sip_flags.diff	                        (rev 0)
+++ trunk/dports/kde/py-pykde4/files/make_pykde4_respect_sip_flags.diff	2015-04-27 16:55:07 UTC (rev 135592)
@@ -0,0 +1,32 @@
+From: Michael Casadevall <mcasadevall at debian.org>
+Subject: Respect Qt SIP flags
+Forwarded: no
+Origin:
+Last-Update: 2009-04-15
+
+Corrects FTBFS on armel by making sure pykde4 properly parses the python-qt4
+flags passed from PythonQt4's cmake file.
+
+Index: pykde4-4.13.97/CMakeLists.txt
+===================================================================
+--- CMakeLists.txt.orig
++++ CMakeLists.txt
+@@ -101,6 +101,9 @@ include_directories(
+     ${KDEPIMLIBS_INCLUDE_DIRS}
+ )
+ 
++# Pull in ARM configuration options if needed
++STRING(REGEX MATCH "PyQt_qreal_double" SIP_ARM_HACK ${PYQT4_SIP_FLAGS} "")
++
+ set(SIP_INCLUDES ${CMAKE_BINARY_DIR} ${PYQT4_SIP_DIR} sip)
+ set(SIP_CONCAT_PARTS 8)
+ if (WIN32)
+@@ -108,7 +111,7 @@ if (WIN32)
+ else ()
+     set(SIP_TAGS ALL WS_X11 ${PYQT4_VERSION_TAG})
+ endif ()
+-set(SIP_DISABLE_FEATURES VendorID PyQt_NoPrintRangeBug)
++set(SIP_DISABLE_FEATURES VendorID PyQt_NoPrintRangeBug ${SIP_ARM_HACK})
+ 
+ set(SIP_FILES_INSTALL_DIR ${SHARE_INSTALL_PREFIX}/sip)
+ 

Added: trunk/dports/kde/py-pykde4/files/optional_install_sip_files.diff
===================================================================
--- trunk/dports/kde/py-pykde4/files/optional_install_sip_files.diff	                        (rev 0)
+++ trunk/dports/kde/py-pykde4/files/optional_install_sip_files.diff	2015-04-27 16:55:07 UTC (rev 135592)
@@ -0,0 +1,40 @@
+From: Sune Vuorela <sune at debian.org>
+Subject: Install sip files only when building for default python version
+Forwarded: not-needed
+Origin: vendor
+Last-Update: 2011-07-01
+
+Make it possible to only install the sip files under some conditions
+
+Index: pykde4-4.14.1/CMakeLists.txt
+===================================================================
+--- CMakeLists.txt.orig
++++ CMakeLists.txt
+@@ -252,16 +252,21 @@ python_install(__init__.py ${PYTHON_SITE
+ # Install the .sip files for anyone that wants to build bindings on top of PyKDE4.
+ # (Don't forget the / at the end of sip/.)
+ install(FILES ${CMAKE_BINARY_DIR}/pykde_config.sip DESTINATION ${SIP_FILES_INSTALL_DIR}/PyKDE4/)
+-install(DIRECTORY sip/ DESTINATION ${SIP_FILES_INSTALL_DIR}/PyKDE4
+-    PATTERN "*~" EXCLUDE    # This sucks, why can't I just whitelist what I _do_ want?
+-    PATTERN ".svn" EXCLUDE
+-    PATTERN "*.in" EXCLUDE)
++if(DEFAULT_PYTHON_VERSION)
++  install(DIRECTORY sip/ DESTINATION ${SIP_FILES_INSTALL_DIR}/PyKDE4
++        PATTERN "*~" EXCLUDE    # This sucks, why can't I just whitelist what I _do_ want?
++        PATTERN ".svn" EXCLUDE
++        PATTERN "*.in" EXCLUDE)
++   message("Installing sip files in this build pass")
++else(DEFAULT_PYTHON_VERSION)
++   message("Not installing sip files in this build pass")
++endif(DEFAULT_PYTHON_VERSION)
+ 
+ add_subdirectory(tools)
+ #add_subdirectory(docs)
+ add_subdirectory(examples)
+-if (PYTHON_VERSION_MAJOR LESS 3)
++if (PYTHON_VERSION_MAJOR LESS 3 AND DEFAULT_PYTHON_VERSION)
+     add_subdirectory(kpythonpluginfactory)
+-endif ()
++endif (PYTHON_VERSION_MAJOR LESS 3 AND DEFAULT_PYTHON_VERSION)
+ 
+ feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)

Added: trunk/dports/kde/py-pykde4/files/pykde4-macports-adaptations-noDLFCN.diff
===================================================================
--- trunk/dports/kde/py-pykde4/files/pykde4-macports-adaptations-noDLFCN.diff	                        (rev 0)
+++ trunk/dports/kde/py-pykde4/files/pykde4-macports-adaptations-noDLFCN.diff	2015-04-27 16:55:07 UTC (rev 135592)
@@ -0,0 +1,17 @@
+--- __init__.py.orig	2014-08-14 22:17:11.000000000 +0200
++++ __init__.py	2015-03-10 21:54:25.000000000 +0100
+@@ -1,4 +1,9 @@
+-import sys,DLFCN
+-# This is needed to ensure that dynamic_cast and RTTI works inside kdelibs.
+-sys.setdlopenflags(DLFCN.RTLD_NOW|DLFCN.RTLD_GLOBAL)
+-     
+\ No newline at end of file
++import sys
++try:
++	import DLFCN
++	# This is needed to ensure that dynamic_cast and RTTI works inside kdelibs.
++	sys.setdlopenflags(DLFCN.RTLD_NOW|DLFCN.RTLD_GLOBAL)
++except:
++	from _ctypes import RTLD_GLOBAL
++	sys.setdlopenflags(RTLD_GLOBAL)
++     

Added: trunk/dports/kde/py-pykde4/files/pykde4-macports-adaptations-toolongfilename.diff
===================================================================
--- trunk/dports/kde/py-pykde4/files/pykde4-macports-adaptations-toolongfilename.diff	                        (rev 0)
+++ trunk/dports/kde/py-pykde4/files/pykde4-macports-adaptations-toolongfilename.diff	2015-04-27 16:55:07 UTC (rev 135592)
@@ -0,0 +1,16 @@
+--- CMakeLists.txt.orig	2015-03-12 13:06:09.000000000 +0100
++++ CMakeLists.txt	2015-03-10 15:03:07.000000000 +0100
+@@ -162,9 +162,10 @@
+ # pykdeconfig will not work.
+ execute_process(COMMAND "${PYTHON_EXECUTABLE}" -c "import PyQt4.pyqtconfig"
+                 RESULT_VARIABLE _exit_code OUTPUT_QUIET ERROR_QUIET)
+-if (NOT _exit_code)
+-    python_install(${CMAKE_CURRENT_BINARY_DIR}/pykdeconfig.py ${PYTHON_SITE_PACKAGES_INSTALL_DIR}/PyKDE4)
+-endif ()
++# deactivate this because of cmake will try to create a recursive filename that gets way too long
++#if (NOT _exit_code)
++#    python_install(pykdeconfig.py ${PYTHON_SITE_PACKAGES_INSTALL_DIR}/PyKDE4)
++#endif ()
+ 
+ # Do not use --no-undefined for python modules.
+ STRING(REPLACE -Wl,--no-undefined "" CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}")

Added: trunk/dports/kde/py-pykde4/files/pykde4-macports-adaptations.diff
===================================================================
--- trunk/dports/kde/py-pykde4/files/pykde4-macports-adaptations.diff	                        (rev 0)
+++ trunk/dports/kde/py-pykde4/files/pykde4-macports-adaptations.diff	2015-04-27 16:55:07 UTC (rev 135592)
@@ -0,0 +1,115 @@
+diff -ur ../pykde4-4.14.3-orig/CMakeLists.txt ./CMakeLists.txt
+--- ../pykde4-4.14.3-orig/CMakeLists.txt	2015-04-28 01:25:43.000000000 +0900
++++ ./CMakeLists.txt	2015-04-28 01:07:08.000000000 +0900
+@@ -8,7 +8,6 @@
+ # Match what's used in the main macros
+ cmake_policy(SET CMP0002 OLD)
+ find_package(PythonLibrary)
+-find_package(PythonLibs)
+ 
+ include(KDE4Defaults)
+ include(MacroLibrary)
+@@ -34,8 +33,6 @@
+ 
+ include_directories(${KDE4_INCLUDES})
+ 
+-add_definitions(${QT_DEFINITIONS} ${KDE4_DEFINITIONS} -DQT3_SUPPORT)
+-
+ find_package(SIP)
+ set_package_properties(SIP PROPERTIES DESCRIPTION "The SIP binding generator"
+                        URL "http://riverbankcomputing.com" TYPE REQUIRED
+@@ -78,7 +75,6 @@
+                        "Required to build Python Polkit bindings")
+ 
+ include_directories(
+-    ${PYTHON_INCLUDE_DIRS}
+     ${PYTHON_INCLUDE_PATH}
+     ${SIP_INCLUDE_DIR}
+     ${QT_INCLUDE_DIR}
+@@ -103,17 +99,18 @@
+     ${KDEPIMLIBS_INCLUDE_DIRS}
+ )
+ 
+-# Pull in ARM configuration options if needed
+-STRING(REGEX MATCH "PyQt_qreal_double" SIP_ARM_HACK ${PYQT4_SIP_FLAGS} "")
+-
+ set(SIP_INCLUDES ${CMAKE_BINARY_DIR} ${PYQT4_SIP_DIR} sip)
+ set(SIP_CONCAT_PARTS 8)
+ if (WIN32)
+     set(SIP_TAGS ALL WS_WIN ${PYQT4_VERSION_TAG})
+ else ()
+-    set(SIP_TAGS ALL WS_X11 ${PYQT4_VERSION_TAG})
+-endif ()
+-set(SIP_DISABLE_FEATURES VendorID PyQt_NoPrintRangeBug ${SIP_ARM_HACK})
++    if (APPLE)
++        set(SIP_TAGS ALL WS_MACX ${PYQT4_VERSION_TAG})
++    else ()
++        set(SIP_TAGS ALL WS_X11 ${PYQT4_VERSION_TAG})
++    endif (APPLE)
++endif (WIN32)
++set(SIP_DISABLE_FEATURES VendorID PyQt_NoPrintRangeBug)
+ 
+ set(SIP_FILES_INSTALL_DIR ${SHARE_INSTALL_PREFIX}/sip)
+ 
+@@ -259,23 +256,16 @@
+ # Install the .sip files for anyone that wants to build bindings on top of PyKDE4.
+ # (Don't forget the / at the end of sip/.)
+ install(FILES ${CMAKE_BINARY_DIR}/pykde_config.sip DESTINATION ${SIP_FILES_INSTALL_DIR}/PyKDE4/)
+-if(DEFAULT_PYTHON_VERSION)
+-  install(DIRECTORY sip/ DESTINATION ${SIP_FILES_INSTALL_DIR}/PyKDE4
+-        PATTERN "*~" EXCLUDE    # This sucks, why can't I just whitelist what I _do_ want?
+-        PATTERN ".svn" EXCLUDE
+-        PATTERN "*.in" EXCLUDE)
+-   message("Installing sip files in this build pass")
+-else(DEFAULT_PYTHON_VERSION)
+-   message("Not installing sip files in this build pass")
+-endif(DEFAULT_PYTHON_VERSION)
++install(DIRECTORY sip/ DESTINATION ${SIP_FILES_INSTALL_DIR}/PyKDE4
++    PATTERN "*~" EXCLUDE    # This sucks, why can't I just whitelist what I _do_ want?
++    PATTERN ".svn" EXCLUDE
++    PATTERN "*.in" EXCLUDE)
+ 
+ add_subdirectory(tools)
+ #add_subdirectory(docs)
+ add_subdirectory(examples)
+-# Due to version specific ABI tagging in Python 3 so files, we can build for
+-# all Python 3 versions without a problem.
+-if ((PYTHON_VERSION_MAJOR LESS 3 AND DEFAULT_PYTHON_VERSION) OR PYTHON_VERSION_MAJOR GREATER 2)
++if (PYTHON_VERSION_MAJOR LESS 3)
+     add_subdirectory(kpythonpluginfactory)
+-endif ((PYTHON_VERSION_MAJOR LESS 3 AND DEFAULT_PYTHON_VERSION) OR PYTHON_VERSION_MAJOR GREATER 2)
++endif ()
+ 
+ feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
+diff -ur ../pykde4-4.14.3-orig/cmake/modules/FindPolkitQt.cmake ./cmake/modules/FindPolkitQt.cmake
+--- ../pykde4-4.14.3-orig/cmake/modules/FindPolkitQt.cmake	2014-08-15 05:17:11.000000000 +0900
++++ ./cmake/modules/FindPolkitQt.cmake	2015-04-28 01:07:42.000000000 +0900
+@@ -28,13 +28,13 @@
+   set(POLKITQT_MIN_VERSION "0.9.3")
+ endif (NOT POLKITQT_MIN_VERSION)
+ 
+-if (NOT WIN32)
++if (NOT WIN32 AND NOT APPLE)
+    # use pkg-config to get the directories and then use these values
+    # in the FIND_PATH() and FIND_LIBRARY() calls
+    find_package(PkgConfig)
+    pkg_check_modules(PC_POLKITQT QUIET polkit-qt)
+    set(POLKITQT_DEFINITIONS ${PC_POLKITQT_CFLAGS_OTHER})
+-endif (NOT WIN32)
++endif (NOT WIN32 AND NOT APPLE)
+ 
+ find_path( POLKITQT_INCLUDE_DIR
+      NAMES polkit-qt/auth.h
+diff -ur ../pykde4-4.14.3-orig/sip/kdecore/ktempdir.sip ./sip/kdecore/ktempdir.sip
+--- ../pykde4-4.14.3-orig/sip/kdecore/ktempdir.sip	2014-08-15 05:17:11.000000000 +0900
++++ ./sip/kdecore/ktempdir.sip	2015-04-28 01:08:25.000000000 +0900
+@@ -24,7 +24,9 @@
+ {
+ %TypeHeaderCode
+ #include <ktempdir.h>
++#ifdef Q_WS_X11
+ #include <fixx11h.h>
++#endif
+ %End
+ 
+ 

Added: trunk/dports/kde/py-pykde4/files/pykde4-macports-adaptations2.diff
===================================================================
--- trunk/dports/kde/py-pykde4/files/pykde4-macports-adaptations2.diff	                        (rev 0)
+++ trunk/dports/kde/py-pykde4/files/pykde4-macports-adaptations2.diff	2015-04-27 16:55:07 UTC (rev 135592)
@@ -0,0 +1,1108 @@
+diff --git sip/kdeui/kabstractwidgetjobtracker.sip sip/kdeui/kabstractwidgetjobtracker.sip
+index 6952642..b793971 100644
+--- sip/kdeui/kabstractwidgetjobtracker.sip
++++ sip/kdeui/kabstractwidgetjobtracker.sip
+@@ -223,6 +223,7 @@ signals:
+ 
+ //  Subclasses of QObject
+ 
++%If (WS_X11)
+ %ConvertToSubClassCode
+     // CTSCC for subclasses of 'QObject'
+     sipType = NULL;
+@@ -638,6 +639,418 @@ signals:
+     else if (dynamic_cast<Sonnet::ConfigWidget*>(sipCpp))
+         sipType = sipType_Sonnet_ConfigWidget;
+ %End
++%End
++%If (!WS_X11)
++%ConvertToSubClassCode
++    // CTSCC for subclasses of 'QObject'
++    sipType = NULL;
++
++    if (dynamic_cast<KActionCategory*>(sipCpp))
++        sipType = sipType_KActionCategory;
++    else if (dynamic_cast<KActionCollection*>(sipCpp))
++        sipType = sipType_KActionCollection;
++    else if (dynamic_cast<KCategoryDrawerV2*>(sipCpp))
++        {
++        sipType = sipType_KCategoryDrawerV2;
++        if (dynamic_cast<KCategoryDrawerV3*>(sipCpp))
++            sipType = sipType_KCategoryDrawerV3;
++        }
++    else if (dynamic_cast<KCompletion*>(sipCpp))
++        sipType = sipType_KCompletion;
++    else if (dynamic_cast<KConfigDialogManager*>(sipCpp))
++        sipType = sipType_KConfigDialogManager;
++    else if (dynamic_cast<KConfigSkeleton*>(sipCpp))
++        sipType = sipType_KConfigSkeleton;
++    else if (dynamic_cast<KFind*>(sipCpp))
++        {
++        sipType = sipType_KFind;
++        if (dynamic_cast<KReplace*>(sipCpp))
++            sipType = sipType_KReplace;
++        }
++    else if (dynamic_cast<KGlobalAccel*>(sipCpp))
++        sipType = sipType_KGlobalAccel;
++    else if (dynamic_cast<KGlobalSettings*>(sipCpp))
++        sipType = sipType_KGlobalSettings;
++    else if (dynamic_cast<KGlobalShortcutInfo*>(sipCpp))
++        sipType = sipType_KGlobalShortcutInfo;
++    else if (dynamic_cast<KHelpMenu*>(sipCpp))
++        sipType = sipType_KHelpMenu;
++    else if (dynamic_cast<KIconLoader*>(sipCpp))
++        sipType = sipType_KIconLoader;
++    else if (dynamic_cast<KAbstractWidgetJobTracker*>(sipCpp))
++        {
++        sipType = sipType_KAbstractWidgetJobTracker;
++        if (dynamic_cast<KStatusBarJobTracker*>(sipCpp))
++            sipType = sipType_KStatusBarJobTracker;
++        else if (dynamic_cast<KWidgetJobTracker*>(sipCpp))
++            sipType = sipType_KWidgetJobTracker;
++        }
++    else if (dynamic_cast<KUiServerJobTracker*>(sipCpp))
++        sipType = sipType_KUiServerJobTracker;
++    else if (dynamic_cast<KDialogJobUiDelegate*>(sipCpp))
++        sipType = sipType_KDialogJobUiDelegate;
++    else if (dynamic_cast<KMessageBoxMessageHandler*>(sipCpp))
++        sipType = sipType_KMessageBoxMessageHandler;
++    else if (dynamic_cast<KModelIndexProxyMapper*>(sipCpp))
++        sipType = sipType_KModelIndexProxyMapper;
++    else if (dynamic_cast<KModifierKeyInfo*>(sipCpp))
++        sipType = sipType_KModifierKeyInfo;
++    else if (dynamic_cast<KNotification*>(sipCpp))
++        sipType = sipType_KNotification;
++    else if (dynamic_cast<KNotificationRestrictions*>(sipCpp))
++        sipType = sipType_KNotificationRestrictions;
++    else if (dynamic_cast<KPageWidgetItem*>(sipCpp))
++        sipType = sipType_KPageWidgetItem;
++    else if (dynamic_cast<KPassivePopupMessageHandler*>(sipCpp))
++        sipType = sipType_KPassivePopupMessageHandler;
++    else if (dynamic_cast<KPixmapSequenceOverlayPainter*>(sipCpp))
++        sipType = sipType_KPixmapSequenceOverlayPainter;
++    else if (dynamic_cast<KStartupInfo*>(sipCpp))
++        sipType = sipType_KStartupInfo;
++    else if (dynamic_cast<KStatusNotifierItem*>(sipCpp))
++        sipType = sipType_KStatusNotifierItem;
++    else if (dynamic_cast<KViewStateMaintainerBase*>(sipCpp))
++        sipType = sipType_KViewStateMaintainerBase;
++    else if (dynamic_cast<KViewStateSaver*>(sipCpp))
++        sipType = sipType_KViewStateSaver;
++    else if (dynamic_cast<KWallet::Wallet*>(sipCpp))
++        sipType = sipType_KWallet_Wallet;
++    else if (dynamic_cast<KXMLGUIFactory*>(sipCpp))
++        sipType = sipType_KXMLGUIFactory;
++    else if (dynamic_cast<KWidgetItemDelegate*>(sipCpp))
++        sipType = sipType_KWidgetItemDelegate;
++    else if (dynamic_cast<KExtendableItemDelegate*>(sipCpp))
++        sipType = sipType_KExtendableItemDelegate;
++    else if (dynamic_cast<KPageModel*>(sipCpp))
++        {
++        sipType = sipType_KPageModel;
++        if (dynamic_cast<KPageWidgetModel*>(sipCpp))
++            sipType = sipType_KPageWidgetModel;
++        }
++    else if (dynamic_cast<KDescendantsProxyModel*>(sipCpp))
++        sipType = sipType_KDescendantsProxyModel;
++    else if (dynamic_cast<KIdentityProxyModel*>(sipCpp))
++        {
++        sipType = sipType_KIdentityProxyModel;
++        if (dynamic_cast<KCheckableProxyModel*>(sipCpp))
++            sipType = sipType_KCheckableProxyModel;
++        }
++    else if (dynamic_cast<KSelectionProxyModel*>(sipCpp))
++        sipType = sipType_KSelectionProxyModel;
++    else if (dynamic_cast<KCategorizedSortFilterProxyModel*>(sipCpp))
++        sipType = sipType_KCategorizedSortFilterProxyModel;
++    else if (dynamic_cast<KRecursiveFilterProxyModel*>(sipCpp))
++        sipType = sipType_KRecursiveFilterProxyModel;
++    else if (dynamic_cast<KAction*>(sipCpp))
++        {
++        sipType = sipType_KAction;
++        if (dynamic_cast<KActionMenu*>(sipCpp))
++            sipType = sipType_KActionMenu;
++        else if (dynamic_cast<KDualAction*>(sipCpp))
++            sipType = sipType_KDualAction;
++        else if (dynamic_cast<KPasteTextAction*>(sipCpp))
++            sipType = sipType_KPasteTextAction;
++        else if (dynamic_cast<KSelectAction*>(sipCpp))
++            {
++            sipType = sipType_KSelectAction;
++            if (dynamic_cast<KCodecAction*>(sipCpp))
++                sipType = sipType_KCodecAction;
++            else if (dynamic_cast<KFontAction*>(sipCpp))
++                sipType = sipType_KFontAction;
++            else if (dynamic_cast<KFontSizeAction*>(sipCpp))
++                sipType = sipType_KFontSizeAction;
++            else if (dynamic_cast<KRecentFilesAction*>(sipCpp))
++                sipType = sipType_KRecentFilesAction;
++            }
++        else if (dynamic_cast<KToggleAction*>(sipCpp))
++            {
++            sipType = sipType_KToggleAction;
++            if (dynamic_cast<KToggleFullScreenAction*>(sipCpp))
++                sipType = sipType_KToggleFullScreenAction;
++            else if (dynamic_cast<KToggleToolBarAction*>(sipCpp))
++                sipType = sipType_KToggleToolBarAction;
++            }
++        else if (dynamic_cast<KToolBarLabelAction*>(sipCpp))
++            sipType = sipType_KToolBarLabelAction;
++        else if (dynamic_cast<KToolBarPopupAction*>(sipCpp))
++            sipType = sipType_KToolBarPopupAction;
++        else if (dynamic_cast<KToolBarSpacerAction*>(sipCpp))
++            sipType = sipType_KToolBarSpacerAction;
++        }
++    else if (dynamic_cast<KApplication*>(sipCpp))
++        {
++        sipType = sipType_KApplication;
++        if (dynamic_cast<KUniqueApplication*>(sipCpp))
++            sipType = sipType_KUniqueApplication;
++        }
++    else if (dynamic_cast<KBreadcrumbSelectionModel*>(sipCpp))
++        sipType = sipType_KBreadcrumbSelectionModel;
++    else if (dynamic_cast<KLinkItemSelectionModel*>(sipCpp))
++        sipType = sipType_KLinkItemSelectionModel;
++    else if (dynamic_cast<KStyle*>(sipCpp))
++        sipType = sipType_KStyle;
++    else if (dynamic_cast<KSvgRenderer*>(sipCpp))
++        sipType = sipType_KSvgRenderer;
++    else if (dynamic_cast<Sonnet::Highlighter*>(sipCpp))
++        sipType = sipType_Sonnet_Highlighter;
++    else if (dynamic_cast<KSystemTrayIcon*>(sipCpp))
++        sipType = sipType_KSystemTrayIcon;
++    else if (dynamic_cast<KUndoStack*>(sipCpp))
++        sipType = sipType_KUndoStack;
++    else if (dynamic_cast<KDateValidator*>(sipCpp))
++        sipType = sipType_KDateValidator;
++    else if (dynamic_cast<KFloatValidator*>(sipCpp))
++        sipType = sipType_KFloatValidator;
++    else if (dynamic_cast<KIntValidator*>(sipCpp))
++        sipType = sipType_KIntValidator;
++    else if (dynamic_cast<KMimeTypeValidator*>(sipCpp))
++        sipType = sipType_KMimeTypeValidator;
++    else if (dynamic_cast<KStringListValidator*>(sipCpp))
++        sipType = sipType_KStringListValidator;
++    else if (dynamic_cast<KDoubleValidator*>(sipCpp))
++        sipType = sipType_KDoubleValidator;
++    else if (dynamic_cast<KActionSelector*>(sipCpp))
++        sipType = sipType_KActionSelector;
++    else if (dynamic_cast<KCModule*>(sipCpp))
++        sipType = sipType_KCModule;
++    else if (dynamic_cast<KCapacityBar*>(sipCpp))
++        sipType = sipType_KCapacityBar;
++    else if (dynamic_cast<KCharSelect*>(sipCpp))
++        sipType = sipType_KCharSelect;
++    else if (dynamic_cast<KDateTable*>(sipCpp))
++        sipType = sipType_KDateTable;
++    else if (dynamic_cast<KDateTimeEdit*>(sipCpp))
++        sipType = sipType_KDateTimeEdit;
++    else if (dynamic_cast<KDateTimeWidget*>(sipCpp))
++        sipType = sipType_KDateTimeWidget;
++    else if (dynamic_cast<KDateWidget*>(sipCpp))
++        sipType = sipType_KDateWidget;
++    else if (dynamic_cast<KEditListWidget*>(sipCpp))
++        sipType = sipType_KEditListWidget;
++    else if (dynamic_cast<KFadeWidgetEffect*>(sipCpp))
++        sipType = sipType_KFadeWidgetEffect;
++    else if (dynamic_cast<KFilterProxySearchLine*>(sipCpp))
++        sipType = sipType_KFilterProxySearchLine;
++    else if (dynamic_cast<KFontChooser*>(sipCpp))
++        sipType = sipType_KFontChooser;
++    else if (dynamic_cast<KFontRequester*>(sipCpp))
++        sipType = sipType_KFontRequester;
++    else if (dynamic_cast<KKeySequenceWidget*>(sipCpp))
++        sipType = sipType_KKeySequenceWidget;
++    else if (dynamic_cast<KLanguageButton*>(sipCpp))
++        sipType = sipType_KLanguageButton;
++    else if (dynamic_cast<KLed*>(sipCpp))
++        sipType = sipType_KLed;
++    else if (dynamic_cast<KMultiTabBar*>(sipCpp))
++        sipType = sipType_KMultiTabBar;
++    else if (dynamic_cast<KNumInput*>(sipCpp))
++        {
++        sipType = sipType_KNumInput;
++        if (dynamic_cast<KDoubleNumInput*>(sipCpp))
++            sipType = sipType_KDoubleNumInput;
++        else if (dynamic_cast<KIntNumInput*>(sipCpp))
++            sipType = sipType_KIntNumInput;
++        }
++    else if (dynamic_cast<KPageView*>(sipCpp))
++        {
++        sipType = sipType_KPageView;
++        if (dynamic_cast<KPageWidget*>(sipCpp))
++            sipType = sipType_KPageWidget;
++        }
++    else if (dynamic_cast<KPixmapRegionSelectorWidget*>(sipCpp))
++        sipType = sipType_KPixmapRegionSelectorWidget;
++    else if (dynamic_cast<KPixmapSequenceWidget*>(sipCpp))
++        sipType = sipType_KPixmapSequenceWidget;
++    else if (dynamic_cast<KShortcutWidget*>(sipCpp))
++        sipType = sipType_KShortcutWidget;
++    else if (dynamic_cast<KShortcutsEditor*>(sipCpp))
++        sipType = sipType_KShortcutsEditor;
++    else if (dynamic_cast<KTitleWidget*>(sipCpp))
++        sipType = sipType_KTitleWidget;
++    else if (dynamic_cast<KTreeWidgetSearchLineWidget*>(sipCpp))
++        sipType = sipType_KTreeWidgetSearchLineWidget;
++    else if (dynamic_cast<KXYSelector*>(sipCpp))
++        {
++        sipType = sipType_KXYSelector;
++        if (dynamic_cast<KHueSaturationSelector*>(sipCpp))
++            sipType = sipType_KHueSaturationSelector;
++        }
++    else if (dynamic_cast<KArrowButton*>(sipCpp))
++        sipType = sipType_KArrowButton;
++    else if (dynamic_cast<KColorButton*>(sipCpp))
++        sipType = sipType_KColorButton;
++    else if (dynamic_cast<KMultiTabBarButton*>(sipCpp))
++        {
++        sipType = sipType_KMultiTabBarButton;
++        if (dynamic_cast<KMultiTabBarTab*>(sipCpp))
++            sipType = sipType_KMultiTabBarTab;
++        }
++    else if (dynamic_cast<KPushButton*>(sipCpp))
++        sipType = sipType_KPushButton;
++    else if (dynamic_cast<KAnimatedButton*>(sipCpp))
++        sipType = sipType_KAnimatedButton;
++    else if (dynamic_cast<KRuler*>(sipCpp))
++        sipType = sipType_KRuler;
++    else if (dynamic_cast<KSelector*>(sipCpp))
++        {
++        sipType = sipType_KSelector;
++        if (dynamic_cast<KColorValueSelector*>(sipCpp))
++            sipType = sipType_KColorValueSelector;
++        else if (dynamic_cast<KGradientSelector*>(sipCpp))
++            sipType = sipType_KGradientSelector;
++        }
++    else if (dynamic_cast<KIntSpinBox*>(sipCpp))
++        sipType = sipType_KIntSpinBox;
++    else if (dynamic_cast<KColorCombo*>(sipCpp))
++        sipType = sipType_KColorCombo;
++    else if (dynamic_cast<KComboBox*>(sipCpp))
++        {
++        sipType = sipType_KComboBox;
++        if (dynamic_cast<KDateComboBox*>(sipCpp))
++            sipType = sipType_KDateComboBox;
++        else if (dynamic_cast<KFontComboBox*>(sipCpp))
++            sipType = sipType_KFontComboBox;
++        else if (dynamic_cast<KHistoryComboBox*>(sipCpp))
++            sipType = sipType_KHistoryComboBox;
++        else if (dynamic_cast<KTimeComboBox*>(sipCpp))
++            sipType = sipType_KTimeComboBox;
++        else if (dynamic_cast<Sonnet::DictionaryComboBox*>(sipCpp))
++            sipType = sipType_Sonnet_DictionaryComboBox;
++        }
++    else if (dynamic_cast<KDialog*>(sipCpp))
++        {
++        sipType = sipType_KDialog;
++        if (dynamic_cast<KAboutApplicationDialog*>(sipCpp))
++            sipType = sipType_KAboutApplicationDialog;
++        else if (dynamic_cast<KBugReport*>(sipCpp))
++            sipType = sipType_KBugReport;
++        else if (dynamic_cast<KColorDialog*>(sipCpp))
++            sipType = sipType_KColorDialog;
++        else if (dynamic_cast<KEditToolBar*>(sipCpp))
++            sipType = sipType_KEditToolBar;
++        else if (dynamic_cast<KFindDialog*>(sipCpp))
++            {
++            sipType = sipType_KFindDialog;
++            if (dynamic_cast<KReplaceDialog*>(sipCpp))
++                sipType = sipType_KReplaceDialog;
++            }
++        else if (dynamic_cast<KFontDialog*>(sipCpp))
++            sipType = sipType_KFontDialog;
++        else if (dynamic_cast<KNewPasswordDialog*>(sipCpp))
++            sipType = sipType_KNewPasswordDialog;
++        else if (dynamic_cast<KPageDialog*>(sipCpp))
++            {
++            sipType = sipType_KPageDialog;
++            if (dynamic_cast<KAssistantDialog*>(sipCpp))
++                sipType = sipType_KAssistantDialog;
++            else if (dynamic_cast<KConfigDialog*>(sipCpp))
++                sipType = sipType_KConfigDialog;
++            }
++        else if (dynamic_cast<KPasswordDialog*>(sipCpp))
++            sipType = sipType_KPasswordDialog;
++        else if (dynamic_cast<KPixmapRegionSelectorDialog*>(sipCpp))
++            sipType = sipType_KPixmapRegionSelectorDialog;
++        else if (dynamic_cast<KProgressDialog*>(sipCpp))
++            sipType = sipType_KProgressDialog;
++        else if (dynamic_cast<KShortcutsDialog*>(sipCpp))
++            sipType = sipType_KShortcutsDialog;
++        else if (dynamic_cast<KTipDialog*>(sipCpp))
++            sipType = sipType_KTipDialog;
++        else if (dynamic_cast<Sonnet::ConfigDialog*>(sipCpp))
++            sipType = sipType_Sonnet_ConfigDialog;
++        else if (dynamic_cast<Sonnet::Dialog*>(sipCpp))
++            sipType = sipType_Sonnet_Dialog;
++        }
++    else if (dynamic_cast<KDialogButtonBox*>(sipCpp))
++        sipType = sipType_KDialogButtonBox;
++    else if (dynamic_cast<KColorPatch*>(sipCpp))
++        sipType = sipType_KColorPatch;
++    else if (dynamic_cast<KDatePicker*>(sipCpp))
++        sipType = sipType_KDatePicker;
++    else if (dynamic_cast<KHBox*>(sipCpp))
++        {
++        sipType = sipType_KHBox;
++        if (dynamic_cast<KVBox*>(sipCpp))
++            sipType = sipType_KVBox;
++        }
++    else if (dynamic_cast<KMessageWidget*>(sipCpp))
++        sipType = sipType_KMessageWidget;
++    else if (dynamic_cast<KPassivePopup*>(sipCpp))
++        sipType = sipType_KPassivePopup;
++    else if (dynamic_cast<KPlotWidget*>(sipCpp))
++        sipType = sipType_KPlotWidget;
++    else if (dynamic_cast<KPopupFrame*>(sipCpp))
++        sipType = sipType_KPopupFrame;
++    else if (dynamic_cast<KRatingWidget*>(sipCpp))
++        sipType = sipType_KRatingWidget;
++    else if (dynamic_cast<KSeparator*>(sipCpp))
++        sipType = sipType_KSeparator;
++    else if (dynamic_cast<KCategorizedView*>(sipCpp))
++        sipType = sipType_KCategorizedView;
++    else if (dynamic_cast<KListWidget*>(sipCpp))
++        {
++        sipType = sipType_KListWidget;
++        if (dynamic_cast<KCompletionBox*>(sipCpp))
++            sipType = sipType_KCompletionBox;
++        }
++    else if (dynamic_cast<KColorCells*>(sipCpp))
++        sipType = sipType_KColorCells;
++    else if (dynamic_cast<KTimeZoneWidget*>(sipCpp))
++        sipType = sipType_KTimeZoneWidget;
++    else if (dynamic_cast<KTextEdit*>(sipCpp))
++        {
++        sipType = sipType_KTextEdit;
++        if (dynamic_cast<KRichTextEdit*>(sipCpp))
++            {
++            sipType = sipType_KRichTextEdit;
++            if (dynamic_cast<KRichTextWidget*>(sipCpp))
++                sipType = sipType_KRichTextWidget;
++            }
++        }
++    else if (dynamic_cast<KTextBrowser*>(sipCpp))
++        sipType = sipType_KTextBrowser;
++    else if (dynamic_cast<KSqueezedTextLabel*>(sipCpp))
++        sipType = sipType_KSqueezedTextLabel;
++    else if (dynamic_cast<KUrlLabel*>(sipCpp))
++        sipType = sipType_KUrlLabel;
++    else if (dynamic_cast<KButtonGroup*>(sipCpp))
++        sipType = sipType_KButtonGroup;
++    else if (dynamic_cast<KEditListBox*>(sipCpp))
++        sipType = sipType_KEditListBox;
++    else if (dynamic_cast<KLineEdit*>(sipCpp))
++        {
++        sipType = sipType_KLineEdit;
++        if (dynamic_cast<KListWidgetSearchLine*>(sipCpp))
++            sipType = sipType_KListWidgetSearchLine;
++        else if (dynamic_cast<KRestrictedLine*>(sipCpp))
++            sipType = sipType_KRestrictedLine;
++        else if (dynamic_cast<KTreeWidgetSearchLine*>(sipCpp))
++            sipType = sipType_KTreeWidgetSearchLine;
++        }
++    else if (dynamic_cast<KMainWindow*>(sipCpp))
++        {
++        sipType = sipType_KMainWindow;
++        if (dynamic_cast<KXmlGuiWindow*>(sipCpp))
++            sipType = sipType_KXmlGuiWindow;
++        }
++    else if (dynamic_cast<KMenu*>(sipCpp))
++        sipType = sipType_KMenu;
++    else if (dynamic_cast<KMenuBar*>(sipCpp))
++        sipType = sipType_KMenuBar;
++    else if (dynamic_cast<KSplashScreen*>(sipCpp))
++        sipType = sipType_KSplashScreen;
++    else if (dynamic_cast<KStatusBar*>(sipCpp))
++        sipType = sipType_KStatusBar;
++    else if (dynamic_cast<KTabBar*>(sipCpp))
++        sipType = sipType_KTabBar;
++    else if (dynamic_cast<KTabWidget*>(sipCpp))
++        sipType = sipType_KTabWidget;
++    else if (dynamic_cast<KToolBar*>(sipCpp))
++        sipType = sipType_KToolBar;
++    else if (dynamic_cast<Sonnet::ConfigWidget*>(sipCpp))
++        sipType = sipType_Sonnet_ConfigWidget;
++%End
++%End
+ 
+ public:
+     ~KAbstractWidgetJobTracker ();
+diff --git sip/kdeui/kapplication.sip sip/kdeui/kapplication.sip
+index febcd38..3f95d9a 100644
+--- sip/kdeui/kapplication.sip
++++ sip/kdeui/kapplication.sip
+@@ -92,6 +92,7 @@ static void kdeui_UpdatePyArgv(PyObject *argvlist, int argc, char **argv)
+ 
+ public:
+     explicit                KApplication (bool GUIenabled = 1);
++%If (WS_X11)
+     explicit                KApplication (Display* display, Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0);
+ //force
+                             KApplication (Display* display, SIP_PYLIST list, const QByteArray& rAppName, bool GUIenabled = 1) [(Display*, int&, char**, const QByteArray&, bool = 1)];
+@@ -119,6 +120,7 @@ public:
+         }
+ %End
+ //end
++%End
+ //ig                            KApplication (Display* display, int& argc, char** argv, const QByteArray& rAppName, bool GUIenabled = 1);
+ 
+     static KApplication*    kApplication ();
+@@ -141,8 +143,10 @@ public:
+     unsigned long           userTimestamp () const;
+     void                    updateRemoteUserTimestamp (const QString& service, int time = 0);
+     bool                    notify (QObject* receiver, QEvent* event);
++%If (WS_X11)
+ //ig    int                     xErrhandler (Display*, void*);
+     int                     xioErrhandler (Display*);
++%End
+ //ig    void                    iceIOErrorHandler (_IceConn* conn);
+     bool loadedByKdeinit;
+     void                    updateUserTimestamp (int time = 0);
+@@ -154,8 +158,10 @@ signals:
+ 
+ protected:
+                             KApplication (bool GUIenabled, const KComponentData& cData);
++%If (WS_X11)
+                             KApplication (Display* display, Qt::HANDLE visual, Qt::HANDLE colormap, const KComponentData& cData);
+ //ig    bool                    x11EventFilter (XEvent*);
++%End
+ 
+ private:
+                             KApplication (const KApplication&);
+--- sip/kdeui/kkeyserver_x11.sip.orig  2014-08-14 22:17:11.000000000 +0200
++++ sip/kdeui/kkeyserver_x11.sip        2015-03-08 21:49:55.000000000 +0100
+@@ -19,6 +19,7 @@
+ // You should have received a copy of the GNU General Public License
+ // along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ 
++%If (WS_X11)
+ %ModuleHeaderCode
+ #include <kkeyserver_x11.h>
+ %End
+@@ -50,4 +51,4 @@
+ %ModuleHeaderCode
+ #include <kkeyserver_x11.h>
+ %End
+-
++%End
+diff --git sip/kdeui/kmanagerselection.sip sip/kdeui/kmanagerselection.sip
+index fd13239..e7acfcc 100644
+--- sip/kdeui/kmanagerselection.sip
++++ sip/kdeui/kmanagerselection.sip
+@@ -19,7 +19,7 @@
+ // You should have received a copy of the GNU General Public License
+ // along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ 
+-
++%If (WS_X11)
+ class KSelectionOwner : QObject
+ {
+ %TypeHeaderCode
+@@ -71,4 +71,4 @@ public:
+ };
+ // KSelectionWatcher
+ 
+-
++%End
+diff --git sip/kdeui/kratingwidget.sip sip/kdeui/kratingwidget.sip
+index d5ced65..f17af8b 100644
+--- sip/kdeui/kratingwidget.sip
++++ sip/kdeui/kratingwidget.sip
+@@ -235,6 +235,7 @@ protected:
+ 
+ //  Subclasses of QObject
+ 
++%If (WS_X11)
+ %ConvertToSubClassCode
+     // CTSCC for subclasses of 'QObject'
+     sipType = NULL;
+@@ -650,7 +651,418 @@ protected:
+     else if (dynamic_cast<Sonnet::ConfigWidget*>(sipCpp))
+         sipType = sipType_Sonnet_ConfigWidget;
+ %End
++%End
++%If (!WS_X11)
++%ConvertToSubClassCode
++    // CTSCC for subclasses of 'QObject'
++    sipType = NULL;
+ 
++    if (dynamic_cast<KActionCategory*>(sipCpp))
++        sipType = sipType_KActionCategory;
++    else if (dynamic_cast<KActionCollection*>(sipCpp))
++        sipType = sipType_KActionCollection;
++    else if (dynamic_cast<KCategoryDrawerV2*>(sipCpp))
++        {
++        sipType = sipType_KCategoryDrawerV2;
++        if (dynamic_cast<KCategoryDrawerV3*>(sipCpp))
++            sipType = sipType_KCategoryDrawerV3;
++        }
++    else if (dynamic_cast<KCompletion*>(sipCpp))
++        sipType = sipType_KCompletion;
++    else if (dynamic_cast<KConfigDialogManager*>(sipCpp))
++        sipType = sipType_KConfigDialogManager;
++    else if (dynamic_cast<KConfigSkeleton*>(sipCpp))
++        sipType = sipType_KConfigSkeleton;
++    else if (dynamic_cast<KFind*>(sipCpp))
++        {
++        sipType = sipType_KFind;
++        if (dynamic_cast<KReplace*>(sipCpp))
++            sipType = sipType_KReplace;
++        }
++    else if (dynamic_cast<KGlobalAccel*>(sipCpp))
++        sipType = sipType_KGlobalAccel;
++    else if (dynamic_cast<KGlobalSettings*>(sipCpp))
++        sipType = sipType_KGlobalSettings;
++    else if (dynamic_cast<KGlobalShortcutInfo*>(sipCpp))
++        sipType = sipType_KGlobalShortcutInfo;
++    else if (dynamic_cast<KHelpMenu*>(sipCpp))
++        sipType = sipType_KHelpMenu;
++    else if (dynamic_cast<KIconLoader*>(sipCpp))
++        sipType = sipType_KIconLoader;
++    else if (dynamic_cast<KAbstractWidgetJobTracker*>(sipCpp))
++        {
++        sipType = sipType_KAbstractWidgetJobTracker;
++        if (dynamic_cast<KStatusBarJobTracker*>(sipCpp))
++            sipType = sipType_KStatusBarJobTracker;
++        else if (dynamic_cast<KWidgetJobTracker*>(sipCpp))
++            sipType = sipType_KWidgetJobTracker;
++        }
++    else if (dynamic_cast<KUiServerJobTracker*>(sipCpp))
++        sipType = sipType_KUiServerJobTracker;
++    else if (dynamic_cast<KDialogJobUiDelegate*>(sipCpp))
++        sipType = sipType_KDialogJobUiDelegate;
++    else if (dynamic_cast<KMessageBoxMessageHandler*>(sipCpp))
++        sipType = sipType_KMessageBoxMessageHandler;
++    else if (dynamic_cast<KModelIndexProxyMapper*>(sipCpp))
++        sipType = sipType_KModelIndexProxyMapper;
++    else if (dynamic_cast<KModifierKeyInfo*>(sipCpp))
++        sipType = sipType_KModifierKeyInfo;
++    else if (dynamic_cast<KNotification*>(sipCpp))
++        sipType = sipType_KNotification;
++    else if (dynamic_cast<KNotificationRestrictions*>(sipCpp))
++        sipType = sipType_KNotificationRestrictions;
++    else if (dynamic_cast<KPageWidgetItem*>(sipCpp))
++        sipType = sipType_KPageWidgetItem;
++    else if (dynamic_cast<KPassivePopupMessageHandler*>(sipCpp))
++        sipType = sipType_KPassivePopupMessageHandler;
++    else if (dynamic_cast<KPixmapSequenceOverlayPainter*>(sipCpp))
++        sipType = sipType_KPixmapSequenceOverlayPainter;
++    else if (dynamic_cast<KStartupInfo*>(sipCpp))
++        sipType = sipType_KStartupInfo;
++    else if (dynamic_cast<KStatusNotifierItem*>(sipCpp))
++        sipType = sipType_KStatusNotifierItem;
++    else if (dynamic_cast<KViewStateMaintainerBase*>(sipCpp))
++        sipType = sipType_KViewStateMaintainerBase;
++    else if (dynamic_cast<KViewStateSaver*>(sipCpp))
++        sipType = sipType_KViewStateSaver;
++    else if (dynamic_cast<KWallet::Wallet*>(sipCpp))
++        sipType = sipType_KWallet_Wallet;
++    else if (dynamic_cast<KXMLGUIFactory*>(sipCpp))
++        sipType = sipType_KXMLGUIFactory;
++    else if (dynamic_cast<KWidgetItemDelegate*>(sipCpp))
++        sipType = sipType_KWidgetItemDelegate;
++    else if (dynamic_cast<KExtendableItemDelegate*>(sipCpp))
++        sipType = sipType_KExtendableItemDelegate;
++    else if (dynamic_cast<KPageModel*>(sipCpp))
++        {
++        sipType = sipType_KPageModel;
++        if (dynamic_cast<KPageWidgetModel*>(sipCpp))
++            sipType = sipType_KPageWidgetModel;
++        }
++    else if (dynamic_cast<KDescendantsProxyModel*>(sipCpp))
++        sipType = sipType_KDescendantsProxyModel;
++    else if (dynamic_cast<KIdentityProxyModel*>(sipCpp))
++        {
++        sipType = sipType_KIdentityProxyModel;
++        if (dynamic_cast<KCheckableProxyModel*>(sipCpp))
++            sipType = sipType_KCheckableProxyModel;
++        }
++    else if (dynamic_cast<KSelectionProxyModel*>(sipCpp))
++        sipType = sipType_KSelectionProxyModel;
++    else if (dynamic_cast<KCategorizedSortFilterProxyModel*>(sipCpp))
++        sipType = sipType_KCategorizedSortFilterProxyModel;
++    else if (dynamic_cast<KRecursiveFilterProxyModel*>(sipCpp))
++        sipType = sipType_KRecursiveFilterProxyModel;
++    else if (dynamic_cast<KAction*>(sipCpp))
++        {
++        sipType = sipType_KAction;
++        if (dynamic_cast<KActionMenu*>(sipCpp))
++            sipType = sipType_KActionMenu;
++        else if (dynamic_cast<KDualAction*>(sipCpp))
++            sipType = sipType_KDualAction;
++        else if (dynamic_cast<KPasteTextAction*>(sipCpp))
++            sipType = sipType_KPasteTextAction;
++        else if (dynamic_cast<KSelectAction*>(sipCpp))
++            {
++            sipType = sipType_KSelectAction;
++            if (dynamic_cast<KCodecAction*>(sipCpp))
++                sipType = sipType_KCodecAction;
++            else if (dynamic_cast<KFontAction*>(sipCpp))
++                sipType = sipType_KFontAction;
++            else if (dynamic_cast<KFontSizeAction*>(sipCpp))
++                sipType = sipType_KFontSizeAction;
++            else if (dynamic_cast<KRecentFilesAction*>(sipCpp))
++                sipType = sipType_KRecentFilesAction;
++            }
++        else if (dynamic_cast<KToggleAction*>(sipCpp))
++            {
++            sipType = sipType_KToggleAction;
++            if (dynamic_cast<KToggleFullScreenAction*>(sipCpp))
++                sipType = sipType_KToggleFullScreenAction;
++            else if (dynamic_cast<KToggleToolBarAction*>(sipCpp))
++                sipType = sipType_KToggleToolBarAction;
++            }
++        else if (dynamic_cast<KToolBarLabelAction*>(sipCpp))
++            sipType = sipType_KToolBarLabelAction;
++        else if (dynamic_cast<KToolBarPopupAction*>(sipCpp))
++            sipType = sipType_KToolBarPopupAction;
++        else if (dynamic_cast<KToolBarSpacerAction*>(sipCpp))
++            sipType = sipType_KToolBarSpacerAction;
++        }
++    else if (dynamic_cast<KApplication*>(sipCpp))
++        {
++        sipType = sipType_KApplication;
++        if (dynamic_cast<KUniqueApplication*>(sipCpp))
++            sipType = sipType_KUniqueApplication;
++        }
++    else if (dynamic_cast<KBreadcrumbSelectionModel*>(sipCpp))
++        sipType = sipType_KBreadcrumbSelectionModel;
++    else if (dynamic_cast<KLinkItemSelectionModel*>(sipCpp))
++        sipType = sipType_KLinkItemSelectionModel;
++    else if (dynamic_cast<KStyle*>(sipCpp))
++        sipType = sipType_KStyle;
++    else if (dynamic_cast<KSvgRenderer*>(sipCpp))
++        sipType = sipType_KSvgRenderer;
++    else if (dynamic_cast<Sonnet::Highlighter*>(sipCpp))
++        sipType = sipType_Sonnet_Highlighter;
++    else if (dynamic_cast<KSystemTrayIcon*>(sipCpp))
++        sipType = sipType_KSystemTrayIcon;
++    else if (dynamic_cast<KUndoStack*>(sipCpp))
++        sipType = sipType_KUndoStack;
++    else if (dynamic_cast<KDateValidator*>(sipCpp))
++        sipType = sipType_KDateValidator;
++    else if (dynamic_cast<KFloatValidator*>(sipCpp))
++        sipType = sipType_KFloatValidator;
++    else if (dynamic_cast<KIntValidator*>(sipCpp))
++        sipType = sipType_KIntValidator;
++    else if (dynamic_cast<KMimeTypeValidator*>(sipCpp))
++        sipType = sipType_KMimeTypeValidator;
++    else if (dynamic_cast<KStringListValidator*>(sipCpp))
++        sipType = sipType_KStringListValidator;
++    else if (dynamic_cast<KDoubleValidator*>(sipCpp))
++        sipType = sipType_KDoubleValidator;
++    else if (dynamic_cast<KActionSelector*>(sipCpp))
++        sipType = sipType_KActionSelector;
++    else if (dynamic_cast<KCModule*>(sipCpp))
++        sipType = sipType_KCModule;
++    else if (dynamic_cast<KCapacityBar*>(sipCpp))
++        sipType = sipType_KCapacityBar;
++    else if (dynamic_cast<KCharSelect*>(sipCpp))
++        sipType = sipType_KCharSelect;
++    else if (dynamic_cast<KDateTable*>(sipCpp))
++        sipType = sipType_KDateTable;
++    else if (dynamic_cast<KDateTimeEdit*>(sipCpp))
++        sipType = sipType_KDateTimeEdit;
++    else if (dynamic_cast<KDateTimeWidget*>(sipCpp))
++        sipType = sipType_KDateTimeWidget;
++    else if (dynamic_cast<KDateWidget*>(sipCpp))
++        sipType = sipType_KDateWidget;
++    else if (dynamic_cast<KEditListWidget*>(sipCpp))
++        sipType = sipType_KEditListWidget;
++    else if (dynamic_cast<KFadeWidgetEffect*>(sipCpp))
++        sipType = sipType_KFadeWidgetEffect;
++    else if (dynamic_cast<KFilterProxySearchLine*>(sipCpp))
++        sipType = sipType_KFilterProxySearchLine;
++    else if (dynamic_cast<KFontChooser*>(sipCpp))
++        sipType = sipType_KFontChooser;
++    else if (dynamic_cast<KFontRequester*>(sipCpp))
++        sipType = sipType_KFontRequester;
++    else if (dynamic_cast<KKeySequenceWidget*>(sipCpp))
++        sipType = sipType_KKeySequenceWidget;
++    else if (dynamic_cast<KLanguageButton*>(sipCpp))
++        sipType = sipType_KLanguageButton;
++    else if (dynamic_cast<KLed*>(sipCpp))
++        sipType = sipType_KLed;
++    else if (dynamic_cast<KMultiTabBar*>(sipCpp))
++        sipType = sipType_KMultiTabBar;
++    else if (dynamic_cast<KNumInput*>(sipCpp))
++        {
++        sipType = sipType_KNumInput;
++        if (dynamic_cast<KDoubleNumInput*>(sipCpp))
++            sipType = sipType_KDoubleNumInput;
++        else if (dynamic_cast<KIntNumInput*>(sipCpp))
++            sipType = sipType_KIntNumInput;
++        }
++    else if (dynamic_cast<KPageView*>(sipCpp))
++        {
++        sipType = sipType_KPageView;
++        if (dynamic_cast<KPageWidget*>(sipCpp))
++            sipType = sipType_KPageWidget;
++        }
++    else if (dynamic_cast<KPixmapRegionSelectorWidget*>(sipCpp))
++        sipType = sipType_KPixmapRegionSelectorWidget;
++    else if (dynamic_cast<KPixmapSequenceWidget*>(sipCpp))
++        sipType = sipType_KPixmapSequenceWidget;
++    else if (dynamic_cast<KShortcutWidget*>(sipCpp))
++        sipType = sipType_KShortcutWidget;
++    else if (dynamic_cast<KShortcutsEditor*>(sipCpp))
++        sipType = sipType_KShortcutsEditor;
++    else if (dynamic_cast<KTitleWidget*>(sipCpp))
++        sipType = sipType_KTitleWidget;
++    else if (dynamic_cast<KTreeWidgetSearchLineWidget*>(sipCpp))
++        sipType = sipType_KTreeWidgetSearchLineWidget;
++    else if (dynamic_cast<KXYSelector*>(sipCpp))
++        {
++        sipType = sipType_KXYSelector;
++        if (dynamic_cast<KHueSaturationSelector*>(sipCpp))
++            sipType = sipType_KHueSaturationSelector;
++        }
++    else if (dynamic_cast<KArrowButton*>(sipCpp))
++        sipType = sipType_KArrowButton;
++    else if (dynamic_cast<KColorButton*>(sipCpp))
++        sipType = sipType_KColorButton;
++    else if (dynamic_cast<KMultiTabBarButton*>(sipCpp))
++        {
++        sipType = sipType_KMultiTabBarButton;
++        if (dynamic_cast<KMultiTabBarTab*>(sipCpp))
++            sipType = sipType_KMultiTabBarTab;
++        }
++    else if (dynamic_cast<KPushButton*>(sipCpp))
++        sipType = sipType_KPushButton;
++    else if (dynamic_cast<KAnimatedButton*>(sipCpp))
++        sipType = sipType_KAnimatedButton;
++    else if (dynamic_cast<KRuler*>(sipCpp))
++        sipType = sipType_KRuler;
++    else if (dynamic_cast<KSelector*>(sipCpp))
++        {
++        sipType = sipType_KSelector;
++        if (dynamic_cast<KColorValueSelector*>(sipCpp))
++            sipType = sipType_KColorValueSelector;
++        else if (dynamic_cast<KGradientSelector*>(sipCpp))
++            sipType = sipType_KGradientSelector;
++        }
++    else if (dynamic_cast<KIntSpinBox*>(sipCpp))
++        sipType = sipType_KIntSpinBox;
++    else if (dynamic_cast<KColorCombo*>(sipCpp))
++        sipType = sipType_KColorCombo;
++    else if (dynamic_cast<KComboBox*>(sipCpp))
++        {
++        sipType = sipType_KComboBox;
++        if (dynamic_cast<KDateComboBox*>(sipCpp))
++            sipType = sipType_KDateComboBox;
++        else if (dynamic_cast<KFontComboBox*>(sipCpp))
++            sipType = sipType_KFontComboBox;
++        else if (dynamic_cast<KHistoryComboBox*>(sipCpp))
++            sipType = sipType_KHistoryComboBox;
++        else if (dynamic_cast<KTimeComboBox*>(sipCpp))
++            sipType = sipType_KTimeComboBox;
++        else if (dynamic_cast<Sonnet::DictionaryComboBox*>(sipCpp))
++            sipType = sipType_Sonnet_DictionaryComboBox;
++        }
++    else if (dynamic_cast<KDialog*>(sipCpp))
++        {
++        sipType = sipType_KDialog;
++        if (dynamic_cast<KAboutApplicationDialog*>(sipCpp))
++            sipType = sipType_KAboutApplicationDialog;
++        else if (dynamic_cast<KBugReport*>(sipCpp))
++            sipType = sipType_KBugReport;
++        else if (dynamic_cast<KColorDialog*>(sipCpp))
++            sipType = sipType_KColorDialog;
++        else if (dynamic_cast<KEditToolBar*>(sipCpp))
++            sipType = sipType_KEditToolBar;
++        else if (dynamic_cast<KFindDialog*>(sipCpp))
++            {
++            sipType = sipType_KFindDialog;
++            if (dynamic_cast<KReplaceDialog*>(sipCpp))
++                sipType = sipType_KReplaceDialog;
++            }
++        else if (dynamic_cast<KFontDialog*>(sipCpp))
++            sipType = sipType_KFontDialog;
++        else if (dynamic_cast<KNewPasswordDialog*>(sipCpp))
++            sipType = sipType_KNewPasswordDialog;
++        else if (dynamic_cast<KPageDialog*>(sipCpp))
++            {
++            sipType = sipType_KPageDialog;
++            if (dynamic_cast<KAssistantDialog*>(sipCpp))
++                sipType = sipType_KAssistantDialog;
++            else if (dynamic_cast<KConfigDialog*>(sipCpp))
++                sipType = sipType_KConfigDialog;
++            }
++        else if (dynamic_cast<KPasswordDialog*>(sipCpp))
++            sipType = sipType_KPasswordDialog;
++        else if (dynamic_cast<KPixmapRegionSelectorDialog*>(sipCpp))
++            sipType = sipType_KPixmapRegionSelectorDialog;
++        else if (dynamic_cast<KProgressDialog*>(sipCpp))
++            sipType = sipType_KProgressDialog;
++        else if (dynamic_cast<KShortcutsDialog*>(sipCpp))
++            sipType = sipType_KShortcutsDialog;
++        else if (dynamic_cast<KTipDialog*>(sipCpp))
++            sipType = sipType_KTipDialog;
++        else if (dynamic_cast<Sonnet::ConfigDialog*>(sipCpp))
++            sipType = sipType_Sonnet_ConfigDialog;
++        else if (dynamic_cast<Sonnet::Dialog*>(sipCpp))
++            sipType = sipType_Sonnet_Dialog;
++        }
++    else if (dynamic_cast<KDialogButtonBox*>(sipCpp))
++        sipType = sipType_KDialogButtonBox;
++    else if (dynamic_cast<KColorPatch*>(sipCpp))
++        sipType = sipType_KColorPatch;
++    else if (dynamic_cast<KDatePicker*>(sipCpp))
++        sipType = sipType_KDatePicker;
++    else if (dynamic_cast<KHBox*>(sipCpp))
++        {
++        sipType = sipType_KHBox;
++        if (dynamic_cast<KVBox*>(sipCpp))
++            sipType = sipType_KVBox;
++        }
++    else if (dynamic_cast<KMessageWidget*>(sipCpp))
++        sipType = sipType_KMessageWidget;
++    else if (dynamic_cast<KPassivePopup*>(sipCpp))
++        sipType = sipType_KPassivePopup;
++    else if (dynamic_cast<KPlotWidget*>(sipCpp))
++        sipType = sipType_KPlotWidget;
++    else if (dynamic_cast<KPopupFrame*>(sipCpp))
++        sipType = sipType_KPopupFrame;
++    else if (dynamic_cast<KRatingWidget*>(sipCpp))
++        sipType = sipType_KRatingWidget;
++    else if (dynamic_cast<KSeparator*>(sipCpp))
++        sipType = sipType_KSeparator;
++    else if (dynamic_cast<KCategorizedView*>(sipCpp))
++        sipType = sipType_KCategorizedView;
++    else if (dynamic_cast<KListWidget*>(sipCpp))
++        {
++        sipType = sipType_KListWidget;
++        if (dynamic_cast<KCompletionBox*>(sipCpp))
++            sipType = sipType_KCompletionBox;
++        }
++    else if (dynamic_cast<KColorCells*>(sipCpp))
++        sipType = sipType_KColorCells;
++    else if (dynamic_cast<KTimeZoneWidget*>(sipCpp))
++        sipType = sipType_KTimeZoneWidget;
++    else if (dynamic_cast<KTextEdit*>(sipCpp))
++        {
++        sipType = sipType_KTextEdit;
++        if (dynamic_cast<KRichTextEdit*>(sipCpp))
++            {
++            sipType = sipType_KRichTextEdit;
++            if (dynamic_cast<KRichTextWidget*>(sipCpp))
++                sipType = sipType_KRichTextWidget;
++            }
++        }
++    else if (dynamic_cast<KTextBrowser*>(sipCpp))
++        sipType = sipType_KTextBrowser;
++    else if (dynamic_cast<KSqueezedTextLabel*>(sipCpp))
++        sipType = sipType_KSqueezedTextLabel;
++    else if (dynamic_cast<KUrlLabel*>(sipCpp))
++        sipType = sipType_KUrlLabel;
++    else if (dynamic_cast<KButtonGroup*>(sipCpp))
++        sipType = sipType_KButtonGroup;
++    else if (dynamic_cast<KEditListBox*>(sipCpp))
++        sipType = sipType_KEditListBox;
++    else if (dynamic_cast<KLineEdit*>(sipCpp))
++        {
++        sipType = sipType_KLineEdit;
++        if (dynamic_cast<KListWidgetSearchLine*>(sipCpp))
++            sipType = sipType_KListWidgetSearchLine;
++        else if (dynamic_cast<KRestrictedLine*>(sipCpp))
++            sipType = sipType_KRestrictedLine;
++        else if (dynamic_cast<KTreeWidgetSearchLine*>(sipCpp))
++            sipType = sipType_KTreeWidgetSearchLine;
++        }
++    else if (dynamic_cast<KMainWindow*>(sipCpp))
++        {
++        sipType = sipType_KMainWindow;
++        if (dynamic_cast<KXmlGuiWindow*>(sipCpp))
++            sipType = sipType_KXmlGuiWindow;
++        }
++    else if (dynamic_cast<KMenu*>(sipCpp))
++        sipType = sipType_KMenu;
++    else if (dynamic_cast<KMenuBar*>(sipCpp))
++        sipType = sipType_KMenuBar;
++    else if (dynamic_cast<KSplashScreen*>(sipCpp))
++        sipType = sipType_KSplashScreen;
++    else if (dynamic_cast<KStatusBar*>(sipCpp))
++        sipType = sipType_KStatusBar;
++    else if (dynamic_cast<KTabBar*>(sipCpp))
++        sipType = sipType_KTabBar;
++    else if (dynamic_cast<KTabWidget*>(sipCpp))
++        sipType = sipType_KTabWidget;
++    else if (dynamic_cast<KToolBar*>(sipCpp))
++        sipType = sipType_KToolBar;
++    else if (dynamic_cast<Sonnet::ConfigWidget*>(sipCpp))
++        sipType = sipType_Sonnet_ConfigWidget;
++%End
++%End
+ public:
+     ~KRatingWidget ();
+ };
+diff --git sip/kdeui/kuniqueapplication.sip sip/kdeui/kuniqueapplication.sip
+index d9b9ce3..cffc66b 100644
+--- sip/kdeui/kuniqueapplication.sip
++++ sip/kdeui/kuniqueapplication.sip
+@@ -29,7 +29,9 @@ class KUniqueApplication : KApplication
+ 
+ public:
+     explicit                KUniqueApplication (bool GUIenabled = 1, bool configUnique = 0);
++%If (WS_X11)
+     explicit                KUniqueApplication (Display* display, Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0, bool configUnique = 0);
++%End
+     static void             addCmdLineOptions ();
+ 
+ 
+diff --git sip/kdeui/kwallet.sip sip/kdeui/kwallet.sip
+index e05454a..11308c4 100644
+--- sip/kdeui/kwallet.sip
++++ sip/kdeui/kwallet.sip
+@@ -106,7 +106,9 @@ protected:
+ //ig    virtual void            virtual_hook (int id, void* data);
+ public:
+     ~Wallet ();
++%If (!WS_MACX)
+     static bool             isUsingKSecretsService ();
++%End
+ };
+ // Wallet
+ 
+diff --git sip/kdeui/kwindowinfo.sip sip/kdeui/kwindowinfo.sip
+index 24e060c..498ebca 100644
+--- sip/kdeui/kwindowinfo.sip
++++ sip/kdeui/kwindowinfo.sip
+@@ -50,12 +50,14 @@ public:
+     int                     desktop () const;
+     QRect                   geometry () const;
+     QRect                   frameGeometry () const;
++%If (WS_X11)
+     WId                     transientFor () const;
+     WId                     groupLeader () const;
+     QByteArray              windowClassClass () const;
+     QByteArray              windowClassName () const;
+     QByteArray              windowRole () const;
+     QByteArray              clientMachine () const;
++%End
+     bool                    actionSupported (NET::Action action) const;
+                             KWindowInfo (const KWindowInfo&);
+     ~KWindowInfo ();
+diff --git sip/kdeui/kwindowsystem.sip sip/kdeui/kwindowsystem.sip
+index 161f6c0..955fcc6 100644
+--- sip/kdeui/kwindowsystem.sip
++++ sip/kdeui/kwindowsystem.sip
+@@ -24,6 +24,7 @@ class KWindowSystem : QObject, NET
+ {
+ %TypeHeaderCode
+ #include <kwindowsystem.h>
++#include <../../Library/Frameworks/QtGui.framework/Versions/4/Headers/qstyleoption.h>
+ %End
+ 
+ 
+@@ -44,8 +45,10 @@ public:
+     static void             setOnAllDesktops (WId win, bool b);
+     static void             setOnDesktop (WId win, int desktop);
+     static void             setMainWindow (QWidget* subwindow, WId mainwindow);
++%If (WS_X11)
+     static WId              transientFor (WId window);
+     static WId              groupLeader (WId window);
++%End
+     static QPixmap          icon (WId win, int width = -1, int height = -1, bool scale = 0);
+ 
+     enum IconSource
+@@ -77,11 +80,13 @@ public:
+     static bool             allowedActionsSupported ();
+     static QString          readNameProperty (WId window, unsigned long atom);
+     static void             doNotManage (const QString& title);
++%If (WS_X11)
+     static bool             mapViewport ();
+     static int              viewportToDesktop (const QPoint& pos);
+     static int              viewportWindowToDesktop (const QRect& r);
+     static QPoint           desktopToViewport (int desktop, bool absolute);
+     static QPoint           constrainViewportRelativePosition (const QPoint& pos);
++%End
+ 
+ signals:
+     void                    currentDesktopChanged (int desktop);
+diff --git sip/kdeui/kxmessages.sip sip/kdeui/kxmessages.sip
+index 1b3438c..f69170d 100644
+--- sip/kdeui/kxmessages.sip
++++ sip/kdeui/kxmessages.sip
+@@ -20,6 +20,7 @@
+ // along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ 
+ 
++%If (WS_X11)
+ class KXMessages : QWidget
+ {
+ %TypeHeaderCode
+@@ -48,5 +49,6 @@ public:
+     ~KXMessages ();
+ };
+ // KXMessages
++%End
+ 
+ 
+diff --git sip/kdeui/kxutils.sip sip/kdeui/kxutils.sip
+index 9327afd..1f56920 100644
+--- sip/kdeui/kxutils.sip
++++ sip/kdeui/kxutils.sip
+@@ -18,6 +18,7 @@
+ // You should have received a copy of the GNU General Public License
+ // along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ 
++%If (WS_X11)
+ %ModuleHeaderCode
+ #include <kxutils.h>
+ %End
+@@ -28,5 +29,5 @@ int                     timestampCompare (unsigned long time1, unsigned long tim
+ int                     timestampDiff (unsigned long time1, unsigned long time2);
+ };
+ // KXUtils
+-
++%End
+ 
+diff --git sip/kdeui/netwm.sip sip/kdeui/netwm.sip
+index 2084144..26de24f 100644
+--- sip/kdeui/netwm.sip
++++ sip/kdeui/netwm.sip
+@@ -19,6 +19,7 @@
+ // You should have received a copy of the GNU General Public License
+ // along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ 
++%If (WS_X11)
+ %ModuleHeaderCode
+ #include <netwm.h>
+ %End
+@@ -286,3 +287,4 @@ public:
+ typedef ulong Time;
+ 
+ //end
++%End
+--- sip/kdeui/orig.netwm_def.sip	2015-03-09 23:44:12.000000000 +0100
++++ sip/kdeui/netwm_def.sip	2015-03-09 23:39:11.000000000 +0100
+@@ -111,6 +111,7 @@
+ {
+ %TypeHeaderCode
+ #include <netwm_def.h>
++#include <../../../../../../Library/Frameworks/QtGui.framework/Versions/4/Headers/qstyleoption.h>
+ %End
+ 
+ 
+@@ -200,7 +201,9 @@
+         AllTypesMask
+     };
+ 
++%If (WS_X11)
+     static bool             typeMatchesMask (NET::WindowType type, unsigned long mask);
++%End
+ 
+     enum State
+     {
+@@ -353,7 +356,9 @@
+         DesktopLayoutCornerBottomRight
+     };
+ 
++%If (WS_X11)
+     static int              timestampCompare (unsigned long time1, unsigned long time2);
+     static int              timestampDiff (unsigned long time1, unsigned long time2);
++%End
+ };
+ // NET

Added: trunk/dports/kde/py-pykde4/files/pythonpluginfactory_python3.diff
===================================================================
--- trunk/dports/kde/py-pykde4/files/pythonpluginfactory_python3.diff	                        (rev 0)
+++ trunk/dports/kde/py-pykde4/files/pythonpluginfactory_python3.diff	2015-04-27 16:55:07 UTC (rev 135592)
@@ -0,0 +1,100 @@
+Enable kpythonpluginfactory to build for Python 3 as well.  Should be
+upstreamed after more testing.
+Note: It is OK for the Python and Python3 versions to have the same name
+because of the version specific ABI tags in Python 3 so files and the fact
+that Python 3 interpreters will search for those first.
+Copyright (C) 2012 Barry A. Warsaw <barry at python.org>
+Index: pykde4-4.13.97/kpythonpluginfactory/kpythonpluginfactory.cpp
+===================================================================
+--- kpythonpluginfactory/kpythonpluginfactory.cpp.orig
++++ kpythonpluginfactory/kpythonpluginfactory.cpp
+@@ -29,6 +29,10 @@
+ #include <kcomponentdata.h>
+ #include <kdebug.h>
+ 
++#if PY_MAJOR_VERSION >= 3
++#define PY3
++#endif
++
+ /*
+ This implements a plugin factory for running Python plugins. It also
+ supports io-slaves with a kdemain() entry point.
+@@ -347,17 +351,48 @@ int kdemain( int argc, char **argv )
+     PyObject *pModule;
+     char *protocol = argv[1];
+ 
++#ifdef PY3
++    /* Python 3 requires wchar_t*s for its Py_SetProgramName() and
++       PySys_SetArgv() calls.  Python 2 uses the typical char*s.  This is
++       probably not the best way to do it, but the algorithm is based on
++       Python 3's main().
++    */
++    wchar_t **program_args = (wchar_t **)PyMem_Malloc(
++        sizeof(wchar_t *) * (argc + 1));
++    char *old_locale;
++    const char *argv_i;
++
++    if (!program_args) {
++        /* out of memory */
++        Py_FatalError("out of memory");
++    }
++    for (int i = 0; i < argc; i++) {
++        program_args[i] = (wchar_t *)PyMem_Malloc(
++            sizeof(wchar_t) * (strlen(argv[i]) + 1));
++        if (!program_args[i]) {
++            Py_FatalError("out of memory");
++        }
++        argv_i = argv[i];
++        if (mbsrtowcs(program_args[i], &argv_i, strlen(argv[i]), NULL) < 0) {
++            /* The conversion failed. */
++            Py_FatalError("conversion to wchar_t* failed");
++        }
++    }
++#else
++    char **program_args = argv;
++#endif  // PY3
++
+     kDebug() << "Python kioslave starting";
+     KComponentData slave(protocol);
+     kDebug() << "Created KComponentData for protocol " << protocol;
+ 
+     QLibrary *pyLib = LoadPythonLibrary();
+ 
+-    Py_SetProgramName(argv[0]);
++    Py_SetProgramName(program_args[0]);
+     Py_Initialize();
+ 
+     //PyEval_InitThreads();
+-    PySys_SetArgv(1, argv);
++    PySys_SetArgv(1, program_args);
+ 
+     QString completePath = KStandardDirs::locate("data", QString("kio_python/%1/%2.py").arg(protocol).arg(protocol));
+     kDebug() << "Path to Python kioslace is " << completePath;
+@@ -388,8 +423,8 @@ int kdemain( int argc, char **argv )
+     }
+     PyObject *pClass, *pArgs, *pArg1, *pArg2;
+     pArgs = PyTuple_New(2);
+-    pArg1 = PyString_FromString(argv[2]);
+-    pArg2 = PyString_FromString(argv[3]);
++    pArg1 = PyBytes_FromString(argv[2]);
++    pArg2 = PyBytes_FromString(argv[3]);
+     PyTuple_SetItem(pArgs, 0, pArg1);
+     PyTuple_SetItem(pArgs, 1, pArg2);
+     RunFunction(factoryFunction, pArgs);
+Index: pykde4-4.13.97/CMakeLists.txt
+===================================================================
+--- CMakeLists.txt.orig
++++ CMakeLists.txt
+@@ -275,8 +275,10 @@ endif(DEFAULT_PYTHON_VERSION)
+ add_subdirectory(tools)
+ #add_subdirectory(docs)
+ add_subdirectory(examples)
+-if (PYTHON_VERSION_MAJOR LESS 3 AND DEFAULT_PYTHON_VERSION)
++# Due to version specific ABI tagging in Python 3 so files, we can build for
++# all Python 3 versions without a problem.
++if ((PYTHON_VERSION_MAJOR LESS 3 AND DEFAULT_PYTHON_VERSION) OR PYTHON_VERSION_MAJOR GREATER 2)
+     add_subdirectory(kpythonpluginfactory)
+-endif (PYTHON_VERSION_MAJOR LESS 3 AND DEFAULT_PYTHON_VERSION)
++endif ((PYTHON_VERSION_MAJOR LESS 3 AND DEFAULT_PYTHON_VERSION) OR PYTHON_VERSION_MAJOR GREATER 2)
+ 
+ feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)

Added: trunk/dports/kde/py-pykde4/files/pythonpluginfactory_use_versioned_python_lib.diff
===================================================================
--- trunk/dports/kde/py-pykde4/files/pythonpluginfactory_use_versioned_python_lib.diff	                        (rev 0)
+++ trunk/dports/kde/py-pykde4/files/pythonpluginfactory_use_versioned_python_lib.diff	2015-04-27 16:55:07 UTC (rev 135592)
@@ -0,0 +1,21 @@
+From: Sune Vuorela <sune at debian.org>
+Subject: Make kpythonfactory dlopen versioned python library.
+Bug-Debian: http://bugs.debian.org/524685
+Bug-Debian: http://bugs.debian.org/541999
+Last-Update: 2009-09-19
+Forwarded: no
+Origin: vendor
+
+Otherwise, python-dev would be needed for Python Plugin factory to work.
+
+--- kpythonpluginfactory/kpythonpluginfactory.cpp.orig
++++ kpythonpluginfactory/kpythonpluginfactory.cpp
+@@ -307,7 +307,7 @@ QLibrary *LoadPythonLibrary()
+ {
+     QLibrary *pythonLib = new QLibrary();
+     pythonLib->setLoadHints(QLibrary::ExportExternalSymbolsHint);
+-    pythonLib->setFileName(LIB_PYTHON);
++    pythonLib->setFileName(LIB_PYTHON ".1");
+     pythonLib->load();
+     return pythonLib;
+ }
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20150427/2e4b2bd7/attachment-0001.html>


More information about the macports-changes mailing list