[arch-commits] Commit in kdelibs/repos (20 files)

Andrea Scarpino andrea at archlinux.org
Thu Mar 15 10:19:54 EDT 2012


    Date: Thursday, March 15, 2012 @ 10:19:53
  Author: andrea
Revision: 153521

archrelease: copy trunk to extra-i686, extra-x86_64

Added:
  kdelibs/repos/extra-i686/PKGBUILD
    (from rev 153520, kdelibs/trunk/PKGBUILD)
  kdelibs/repos/extra-i686/archlinux-menu.patch
    (from rev 153520, kdelibs/trunk/archlinux-menu.patch)
  kdelibs/repos/extra-i686/fix-kmail-crash.patch
    (from rev 153520, kdelibs/trunk/fix-kmail-crash.patch)
  kdelibs/repos/extra-i686/kde-applications-menu.patch
    (from rev 153520, kdelibs/trunk/kde-applications-menu.patch)
  kdelibs/repos/extra-i686/kdelibs.install
    (from rev 153520, kdelibs/trunk/kdelibs.install)
  kdelibs/repos/extra-i686/use-pythondontwritebytecode.patch
    (from rev 153520, kdelibs/trunk/use-pythondontwritebytecode.patch)
  kdelibs/repos/extra-x86_64/PKGBUILD
    (from rev 153520, kdelibs/trunk/PKGBUILD)
  kdelibs/repos/extra-x86_64/archlinux-menu.patch
    (from rev 153520, kdelibs/trunk/archlinux-menu.patch)
  kdelibs/repos/extra-x86_64/fix-kmail-crash.patch
    (from rev 153520, kdelibs/trunk/fix-kmail-crash.patch)
  kdelibs/repos/extra-x86_64/kde-applications-menu.patch
    (from rev 153520, kdelibs/trunk/kde-applications-menu.patch)
  kdelibs/repos/extra-x86_64/kdelibs.install
    (from rev 153520, kdelibs/trunk/kdelibs.install)
  kdelibs/repos/extra-x86_64/use-pythondontwritebytecode.patch
    (from rev 153520, kdelibs/trunk/use-pythondontwritebytecode.patch)
Deleted:
  kdelibs/repos/extra-i686/PKGBUILD
  kdelibs/repos/extra-i686/archlinux-menu.patch
  kdelibs/repos/extra-i686/kde-applications-menu.patch
  kdelibs/repos/extra-i686/kdelibs.install
  kdelibs/repos/extra-x86_64/PKGBUILD
  kdelibs/repos/extra-x86_64/archlinux-menu.patch
  kdelibs/repos/extra-x86_64/kde-applications-menu.patch
  kdelibs/repos/extra-x86_64/kdelibs.install

------------------------------------------------+
 extra-i686/PKGBUILD                            |  122 ++++++++++++-----------
 extra-i686/archlinux-menu.patch                |   44 ++++----
 extra-i686/fix-kmail-crash.patch               |   71 +++++++++++++
 extra-i686/kde-applications-menu.patch         |   44 ++++----
 extra-i686/kdelibs.install                     |   26 ++--
 extra-i686/use-pythondontwritebytecode.patch   |   80 +++++++++++++++
 extra-x86_64/PKGBUILD                          |  122 ++++++++++++-----------
 extra-x86_64/archlinux-menu.patch              |   44 ++++----
 extra-x86_64/fix-kmail-crash.patch             |   71 +++++++++++++
 extra-x86_64/kde-applications-menu.patch       |   44 ++++----
 extra-x86_64/kdelibs.install                   |   26 ++--
 extra-x86_64/use-pythondontwritebytecode.patch |   80 +++++++++++++++
 12 files changed, 548 insertions(+), 226 deletions(-)

Deleted: extra-i686/PKGBUILD
===================================================================
--- extra-i686/PKGBUILD	2012-03-15 14:03:38 UTC (rev 153520)
+++ extra-i686/PKGBUILD	2012-03-15 14:19:53 UTC (rev 153521)
@@ -1,56 +0,0 @@
-# $Id$
-# Maintainer: Andrea Scarpino <andrea at archlinux.org
-# Contributor: Pierre Schmitz <pierre at archlinux.de>
-
-pkgname=kdelibs
-pkgver=4.8.1
-pkgrel=1
-pkgdesc="KDE Core Libraries"
-arch=('i686' 'x86_64')
-url='http://www.kde.org'
-license=('GPL' 'LGPL' 'FDL')
-depends=('strigi' 'attica' 'libxss' 'xz' 'soprano' 'krb5' 'grantlee'
-        'shared-desktop-ontologies' 'qca' 'libdbusmenu-qt' 'polkit-qt'
-        'shared-mime-info' 'enchant' 'giflib' 'jasper' 'openexr' 'docbook-xsl'
-        'upower' 'udisks' 'libxcursor' 'phonon' 'qtwebkit')
-makedepends=('cmake' 'automoc4' 'avahi' 'libgl' 'hspell')
-replaces=('kdelibs-experimental')
-install=${pkgname}.install
-source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz"
-        'kde-applications-menu.patch' 'archlinux-menu.patch')
-sha1sums=('da4e13f63ac340619351e9a2f4211cce8ec4fdf8'
-          '86ee8c8660f19de8141ac99cd6943964d97a1ed7'
-          '63a850ab4196b9d06934f2b4a13acd9f7739bc67')
-
-build() {
-       cd "${srcdir}"/${pkgname}-${pkgver}
-
-       # avoid file conflict with gnome-menus
-       patch -p1 -i "${srcdir}"/kde-applications-menu.patch
-       # add Archlinux menu entry
-       patch -p1 -i "${srcdir}"/archlinux-menu.patch
-
-       cd "${srcdir}"
-       mkdir build
-       cd build
-       cmake ../${pkgname}-${pkgver} \
-               -DCMAKE_BUILD_TYPE=Release \
-               -DCMAKE_SKIP_RPATH=ON \
-               -DKDE_DISTRIBUTION_TEXT='Arch Linux' \
-               -DCMAKE_INSTALL_PREFIX=/usr \
-               -DSYSCONF_INSTALL_DIR=/etc \
-               -DHTML_INSTALL_DIR=/usr/share/doc/kde/html \
-               -DKDE_DEFAULT_HOME='.kde4' \
-               -DWITH_FAM=OFF
-       make
-}
-
-package() {
-       cd "${srcdir}"/build
-       make DESTDIR="${pkgdir}" install
-
-       # cert bundle seems to be hardcoded
-       # link it to the one from ca-certificates
-       rm -f "${pkgdir}"/usr/share/apps/kssl/ca-bundle.crt
-       ln -sf /etc/ssl/certs/ca-certificates.crt "${pkgdir}"/usr/share/apps/kssl/ca-bundle.crt
-}

Copied: kdelibs/repos/extra-i686/PKGBUILD (from rev 153520, kdelibs/trunk/PKGBUILD)
===================================================================
--- extra-i686/PKGBUILD	                        (rev 0)
+++ extra-i686/PKGBUILD	2012-03-15 14:19:53 UTC (rev 153521)
@@ -0,0 +1,66 @@
+# $Id$
+# Maintainer: Andrea Scarpino <andrea at archlinux.org
+# Contributor: Pierre Schmitz <pierre at archlinux.de>
+
+pkgname=kdelibs
+pkgver=4.8.1
+pkgrel=2
+pkgdesc="KDE Core Libraries"
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+depends=('strigi' 'attica' 'libxss' 'xz' 'soprano' 'krb5' 'grantlee'
+        'shared-desktop-ontologies' 'qca' 'libdbusmenu-qt' 'polkit-qt'
+        'shared-mime-info' 'enchant' 'giflib' 'jasper' 'openexr' 'docbook-xsl'
+        'upower' 'udisks' 'libxcursor' 'phonon' 'qtwebkit')
+makedepends=('cmake' 'automoc4' 'avahi' 'libgl' 'hspell')
+replaces=('kdelibs-experimental')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz"
+        'kde-applications-menu.patch' 'archlinux-menu.patch'
+        'fix-kmail-crash.patch'
+        'use-pythondontwritebytecode.patch')
+sha1sums=('da4e13f63ac340619351e9a2f4211cce8ec4fdf8'
+          '86ee8c8660f19de8141ac99cd6943964d97a1ed7'
+          '63a850ab4196b9d06934f2b4a13acd9f7739bc67'
+          '081b0663480568359120b573d26abb91e1a348c0'
+          'a1e35760d5b4e29471ad357c963a343c67200f32')
+
+build() {
+       cd "${srcdir}"/${pkgname}-${pkgver}
+
+       # avoid file conflict with gnome-menus
+       patch -p1 -i "${srcdir}"/kde-applications-menu.patch
+       # add Archlinux menu entry
+       patch -p1 -i "${srcdir}"/archlinux-menu.patch
+
+       # Upstream (FS#28907)
+       patch -p1 -i "${srcdir}"/fix-kmail-crash.patch
+
+       # Set PYTHONDONTWRITEBYTECODE (KDEBUG#276151)
+       patch -p0 -i "${srcdir}"/use-pythondontwritebytecode.patch
+
+       cd "${srcdir}"
+       mkdir build
+       cd build
+       cmake ../${pkgname}-${pkgver} \
+               -DCMAKE_BUILD_TYPE=Release \
+               -DCMAKE_SKIP_RPATH=ON \
+               -DKDE_DISTRIBUTION_TEXT='Arch Linux' \
+               -DCMAKE_INSTALL_PREFIX=/usr \
+               -DSYSCONF_INSTALL_DIR=/etc \
+               -DHTML_INSTALL_DIR=/usr/share/doc/kde/html \
+               -DKDE_DEFAULT_HOME='.kde4' \
+               -DWITH_FAM=OFF
+       make
+}
+
+package() {
+       cd "${srcdir}"/build
+       make DESTDIR="${pkgdir}" install
+
+       # cert bundle seems to be hardcoded
+       # link it to the one from ca-certificates
+       rm -f "${pkgdir}"/usr/share/apps/kssl/ca-bundle.crt
+       ln -sf /etc/ssl/certs/ca-certificates.crt "${pkgdir}"/usr/share/apps/kssl/ca-bundle.crt
+}

Deleted: extra-i686/archlinux-menu.patch
===================================================================
--- extra-i686/archlinux-menu.patch	2012-03-15 14:03:38 UTC (rev 153520)
+++ extra-i686/archlinux-menu.patch	2012-03-15 14:19:53 UTC (rev 153521)
@@ -1,22 +0,0 @@
---- kdelibs-4.3.98/kded/applications.menu	2010-01-31 19:28:11.000000000 +0000
-+++ kdelibs-4.3.98/kded/applications.menu	2010-01-31 22:25:53.556043077 +0000
-@@ -16,11 +16,19 @@
- 	</DefaultLayout>
- 	<Layout>
- 		<Merge type="menus"/>
-+		<Menuname>Arch Linux</Menuname>
- 		<Menuname>Applications</Menuname>
- 		<Merge type="files"/>
- 	</Layout>
- 
- 	<Menu>
-+		<Name>Arch Linux</Name>                                                                                                   
-+		<Directory>Archlinux.directory</Directory>                                                                               
-+		<Include>                                                                                                                
-+			<Category>Archlinux</Category>                                                                                           
-+		</Include>
-+	</Menu>
-+	<Menu>
- 		<Name>Applications</Name>
- 		<Directory>kde-unknown.directory</Directory>
- 		<OnlyUnallocated/>

Copied: kdelibs/repos/extra-i686/archlinux-menu.patch (from rev 153520, kdelibs/trunk/archlinux-menu.patch)
===================================================================
--- extra-i686/archlinux-menu.patch	                        (rev 0)
+++ extra-i686/archlinux-menu.patch	2012-03-15 14:19:53 UTC (rev 153521)
@@ -0,0 +1,22 @@
+--- kdelibs-4.3.98/kded/applications.menu	2010-01-31 19:28:11.000000000 +0000
++++ kdelibs-4.3.98/kded/applications.menu	2010-01-31 22:25:53.556043077 +0000
+@@ -16,11 +16,19 @@
+ 	</DefaultLayout>
+ 	<Layout>
+ 		<Merge type="menus"/>
++		<Menuname>Arch Linux</Menuname>
+ 		<Menuname>Applications</Menuname>
+ 		<Merge type="files"/>
+ 	</Layout>
+ 
+ 	<Menu>
++		<Name>Arch Linux</Name>                                                                                                   
++		<Directory>Archlinux.directory</Directory>                                                                               
++		<Include>                                                                                                                
++			<Category>Archlinux</Category>                                                                                           
++		</Include>
++	</Menu>
++	<Menu>
+ 		<Name>Applications</Name>
+ 		<Directory>kde-unknown.directory</Directory>
+ 		<OnlyUnallocated/>

Copied: kdelibs/repos/extra-i686/fix-kmail-crash.patch (from rev 153520, kdelibs/trunk/fix-kmail-crash.patch)
===================================================================
--- extra-i686/fix-kmail-crash.patch	                        (rev 0)
+++ extra-i686/fix-kmail-crash.patch	2012-03-15 14:19:53 UTC (rev 153521)
@@ -0,0 +1,71 @@
+commit 979b0436510e7807c054e79c40c3753834ac2863
+Author: Sebastian Trueg <trueg at kde.org>
+Date:   Thu Mar 15 09:14:35 2012 +0100
+
+    Thread-safe ResourceWatcher handling.
+    
+    We simply perform all RW operations in the manager thread.
+    
+    BUG: 295474
+    FIXED-IN: 4.8.2
+
+diff --git a/nepomuk/core/resourcedata.cpp b/nepomuk/core/resourcedata.cpp
+index abe55ea..9d45228 100644
+--- a/nepomuk/core/resourcedata.cpp
++++ b/nepomuk/core/resourcedata.cpp
+@@ -175,7 +175,8 @@ void Nepomuk::ResourceData::resetAll( bool isDelete )
+     if( !m_uri.isEmpty() ) {
+         m_rm->m_initializedData.remove( m_uri );
+         if( m_rm->m_watcher && m_addedToWatcher ) {
+-            m_rm->m_watcher->removeResource(Resource::fromResourceUri(m_uri));
++            // See load() for an explanation of the QMetaObject call
++            QMetaObject::invokeMethod(m_rm->m_watcher, "removeResource", Qt::AutoConnection, Q_ARG(Nepomuk::Resource, Resource::fromResourceUri(m_uri)));
+             m_addedToWatcher = false;
+         }
+     }
+@@ -393,16 +394,23 @@ bool Nepomuk::ResourceData::load()
+         m_cache.clear();
+ 
+         if(!m_rm->m_watcher) {
++            //
++            // The ResourceWatcher is not thread-safe. Thus, we need to ensure the safety ourselves.
++            // We do that by simply handling all RW related operations in the manager thread.
++            // This also means to invoke methods on the watcher through QMetaObject to make sure they
++            // get queued in case of calls between different threads.
++            //
+             m_rm->m_watcher = new ResourceWatcher(m_rm->m_manager);
++            m_rm->m_watcher->moveToThread(m_rm->m_manager->thread());
+             QObject::connect( m_rm->m_watcher, SIGNAL(propertyAdded(Nepomuk::Resource, Nepomuk::Types::Property, QVariant)),
+                               m_rm->m_manager, SLOT(slotPropertyAdded(Nepomuk::Resource, Nepomuk::Types::Property, QVariant)) );
+             QObject::connect( m_rm->m_watcher, SIGNAL(propertyRemoved(Nepomuk::Resource, Nepomuk::Types::Property, QVariant)),
+                               m_rm->m_manager, SLOT(slotPropertyRemoved(Nepomuk::Resource, Nepomuk::Types::Property, QVariant)) );
+             m_rm->m_watcher->addResource( Nepomuk::Resource::fromResourceUri(m_uri) );
+-            m_rm->m_watcher->start();
++            QMetaObject::invokeMethod(m_rm->m_watcher, "start", Qt::AutoConnection);
+         }
+         else {
+-            m_rm->m_watcher->addResource( Nepomuk::Resource::fromResourceUri(m_uri) );
++            QMetaObject::invokeMethod(m_rm->m_watcher, "addResource", Qt::AutoConnection, Q_ARG(Nepomuk::Resource, Nepomuk::Resource::fromResourceUri(m_uri)) );
+         }
+         m_addedToWatcher = true;
+ 
+diff --git a/nepomuk/core/resourcewatcher.h b/nepomuk/core/resourcewatcher.h
+index 06b9622..92b12f5 100644
+--- a/nepomuk/core/resourcewatcher.h
++++ b/nepomuk/core/resourcewatcher.h
+@@ -93,6 +93,7 @@ namespace Nepomuk {
+          */
+         virtual ~ResourceWatcher();
+ 
++    public Q_SLOTS:
+         /**
+          * \brief Add a type to be watched.
+          *
+@@ -204,7 +205,6 @@ namespace Nepomuk {
+          */
+         QList<Types::Property> properties() const;
+ 
+-    public Q_SLOTS:
+         /**
+          * \brief Start the signalling of changes.
+          *

Deleted: extra-i686/kde-applications-menu.patch
===================================================================
--- extra-i686/kde-applications-menu.patch	2012-03-15 14:03:38 UTC (rev 153520)
+++ extra-i686/kde-applications-menu.patch	2012-03-15 14:19:53 UTC (rev 153521)
@@ -1,22 +0,0 @@
---- kdelibs-4.3.98/kded/CMakeLists.txt	2009-10-02 14:55:17.000000000 +0000
-+++ kdelibs-4.3.98/kded/CMakeLists.txt	2010-01-31 22:16:13.946933892 +0000
-@@ -69,7 +69,7 @@
- if (WIN32)
- install( FILES applications.menu  DESTINATION  ${SHARE_INSTALL_PREFIX}/xdg/menus )
- else (WIN32)
--install( FILES applications.menu  DESTINATION  ${SYSCONF_INSTALL_DIR}/xdg/menus )
-+install( FILES applications.menu  DESTINATION  ${SYSCONF_INSTALL_DIR}/xdg/menus RENAME kde-applications.menu )
- endif (WIN32)
- install( FILES kdedmodule.desktop DESTINATION  ${SERVICETYPES_INSTALL_DIR} )
- install( FILES kded.upd           DESTINATION  ${DATA_INSTALL_DIR}/kconf_update )
---- kdelibs-4.3.98/kded/kbuildsycoca.cpp	2009-12-04 23:10:18.000000000 +0000
-+++ kdelibs-4.3.98/kded/kbuildsycoca.cpp	2010-01-31 22:16:13.962766572 +0000
-@@ -302,7 +302,7 @@
-      if (!m_trackId.isEmpty())
-         g_vfolder->setTrackId(m_trackId);
- 
--     VFolderMenu::SubMenu *kdeMenu = g_vfolder->parseMenu("applications.menu", true);
-+     VFolderMenu::SubMenu *kdeMenu = g_vfolder->parseMenu("kde-applications.menu", true);
- 
-      KServiceGroup::Ptr entry = g_bsgf->addNew("/", kdeMenu->directoryFile, KServiceGroup::Ptr(), false);
-      entry->setLayoutInfo(kdeMenu->layoutList);

Copied: kdelibs/repos/extra-i686/kde-applications-menu.patch (from rev 153520, kdelibs/trunk/kde-applications-menu.patch)
===================================================================
--- extra-i686/kde-applications-menu.patch	                        (rev 0)
+++ extra-i686/kde-applications-menu.patch	2012-03-15 14:19:53 UTC (rev 153521)
@@ -0,0 +1,22 @@
+--- kdelibs-4.3.98/kded/CMakeLists.txt	2009-10-02 14:55:17.000000000 +0000
++++ kdelibs-4.3.98/kded/CMakeLists.txt	2010-01-31 22:16:13.946933892 +0000
+@@ -69,7 +69,7 @@
+ if (WIN32)
+ install( FILES applications.menu  DESTINATION  ${SHARE_INSTALL_PREFIX}/xdg/menus )
+ else (WIN32)
+-install( FILES applications.menu  DESTINATION  ${SYSCONF_INSTALL_DIR}/xdg/menus )
++install( FILES applications.menu  DESTINATION  ${SYSCONF_INSTALL_DIR}/xdg/menus RENAME kde-applications.menu )
+ endif (WIN32)
+ install( FILES kdedmodule.desktop DESTINATION  ${SERVICETYPES_INSTALL_DIR} )
+ install( FILES kded.upd           DESTINATION  ${DATA_INSTALL_DIR}/kconf_update )
+--- kdelibs-4.3.98/kded/kbuildsycoca.cpp	2009-12-04 23:10:18.000000000 +0000
++++ kdelibs-4.3.98/kded/kbuildsycoca.cpp	2010-01-31 22:16:13.962766572 +0000
+@@ -302,7 +302,7 @@
+      if (!m_trackId.isEmpty())
+         g_vfolder->setTrackId(m_trackId);
+ 
+-     VFolderMenu::SubMenu *kdeMenu = g_vfolder->parseMenu("applications.menu", true);
++     VFolderMenu::SubMenu *kdeMenu = g_vfolder->parseMenu("kde-applications.menu", true);
+ 
+      KServiceGroup::Ptr entry = g_bsgf->addNew("/", kdeMenu->directoryFile, KServiceGroup::Ptr(), false);
+      entry->setLayoutInfo(kdeMenu->layoutList);

Deleted: extra-i686/kdelibs.install
===================================================================
--- extra-i686/kdelibs.install	2012-03-15 14:03:38 UTC (rev 153520)
+++ extra-i686/kdelibs.install	2012-03-15 14:19:53 UTC (rev 153521)
@@ -1,13 +0,0 @@
-post_install() {
-	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
-	update-mime-database usr/share/mime &> /dev/null
-    update-desktop-database -q
-}
-
-post_upgrade() {
-	post_install
-}
-
-post_remove() {
-	post_install
-}

Copied: kdelibs/repos/extra-i686/kdelibs.install (from rev 153520, kdelibs/trunk/kdelibs.install)
===================================================================
--- extra-i686/kdelibs.install	                        (rev 0)
+++ extra-i686/kdelibs.install	2012-03-15 14:19:53 UTC (rev 153521)
@@ -0,0 +1,13 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+	update-mime-database usr/share/mime &> /dev/null
+    update-desktop-database -q
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}

Copied: kdelibs/repos/extra-i686/use-pythondontwritebytecode.patch (from rev 153520, kdelibs/trunk/use-pythondontwritebytecode.patch)
===================================================================
--- extra-i686/use-pythondontwritebytecode.patch	                        (rev 0)
+++ extra-i686/use-pythondontwritebytecode.patch	2012-03-15 14:19:53 UTC (rev 153521)
@@ -0,0 +1,80 @@
+--- cmake/modules/PythonMacros.cmake
++++ cmake/modules/PythonMacros.cmake
+@@ -23,40 +23,42 @@
+   # Install the source file.
+   INSTALL(FILES ${SOURCE_FILE} DESTINATION ${DESINATION_DIR})
+ 
+-  # Byte compile and install the .pyc file.        
+-  GET_FILENAME_COMPONENT(_absfilename ${SOURCE_FILE} ABSOLUTE)
+-  GET_FILENAME_COMPONENT(_filename ${SOURCE_FILE} NAME)
+-  GET_FILENAME_COMPONENT(_filenamebase ${SOURCE_FILE} NAME_WE)
+-  GET_FILENAME_COMPONENT(_basepath ${SOURCE_FILE} PATH)
+-
+-  if(WIN32)
+-    string(REGEX REPLACE ".:/" "/" _basepath "${_basepath}")
+-  endif(WIN32)
+-
+-  SET(_bin_py ${CMAKE_CURRENT_BINARY_DIR}/${_basepath}/${_filename})
+-  SET(_bin_pyc ${CMAKE_CURRENT_BINARY_DIR}/${_basepath}/${_filenamebase}.pyc)
+-
+-  FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${_basepath})
+-
+-  SET(_message "-DMESSAGE=Byte-compiling ${_bin_py}")
+-
+-  GET_FILENAME_COMPONENT(_abs_bin_py ${_bin_py} ABSOLUTE)
+-  IF(_abs_bin_py STREQUAL ${_absfilename})    # Don't copy the file onto itself.
+-    ADD_CUSTOM_COMMAND(
+-      TARGET compile_python_files
+-      COMMAND ${CMAKE_COMMAND} -E echo ${message}
+-      COMMAND ${PYTHON_EXECUTABLE} ${_python_compile_py} ${_bin_py}
+-      DEPENDS ${_absfilename}
+-    )
+-  ELSE(_abs_bin_py STREQUAL ${_absfilename})
+-    ADD_CUSTOM_COMMAND(
+-      TARGET compile_python_files
+-      COMMAND ${CMAKE_COMMAND} -E echo ${message} 
+-      COMMAND ${CMAKE_COMMAND} -E copy ${_absfilename} ${_bin_py}
+-      COMMAND ${PYTHON_EXECUTABLE} ${_python_compile_py} ${_bin_py}
+-      DEPENDS ${_absfilename}
+-    )
+-  ENDIF(_abs_bin_py STREQUAL ${_absfilename})
++  # Byte compile and install the .pyc file.
++  IF("$ENV{PYTHONDONTWRITEBYTECODE}" STREQUAL "")
++    GET_FILENAME_COMPONENT(_absfilename ${SOURCE_FILE} ABSOLUTE)
++    GET_FILENAME_COMPONENT(_filename ${SOURCE_FILE} NAME)
++    GET_FILENAME_COMPONENT(_filenamebase ${SOURCE_FILE} NAME_WE)
++    GET_FILENAME_COMPONENT(_basepath ${SOURCE_FILE} PATH)
++
++    if(WIN32)
++      string(REGEX REPLACE ".:/" "/" _basepath "${_basepath}")
++    endif(WIN32)
++
++    SET(_bin_py ${CMAKE_CURRENT_BINARY_DIR}/${_basepath}/${_filename})
++    SET(_bin_pyc ${CMAKE_CURRENT_BINARY_DIR}/${_basepath}/${_filenamebase}.pyc)
++
++    FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${_basepath})
++
++    SET(_message "-DMESSAGE=Byte-compiling ${_bin_py}")
++
++    GET_FILENAME_COMPONENT(_abs_bin_py ${_bin_py} ABSOLUTE)
++    IF(_abs_bin_py STREQUAL ${_absfilename})    # Don't copy the file onto itself.
++      ADD_CUSTOM_COMMAND(
++        TARGET compile_python_files
++        COMMAND ${CMAKE_COMMAND} -E echo ${message}
++        COMMAND ${PYTHON_EXECUTABLE} ${_python_compile_py} ${_bin_py}
++        DEPENDS ${_absfilename}
++      )
++    ELSE(_abs_bin_py STREQUAL ${_absfilename})
++      ADD_CUSTOM_COMMAND(
++        TARGET compile_python_files
++        COMMAND ${CMAKE_COMMAND} -E echo ${message}
++        COMMAND ${CMAKE_COMMAND} -E copy ${_absfilename} ${_bin_py}
++        COMMAND ${PYTHON_EXECUTABLE} ${_python_compile_py} ${_bin_py}
++        DEPENDS ${_absfilename}
++      )
++    ENDIF(_abs_bin_py STREQUAL ${_absfilename})
+ 
+-  INSTALL(FILES ${_bin_pyc} DESTINATION ${DESINATION_DIR})
++    INSTALL(FILES ${_bin_pyc} DESTINATION ${DESINATION_DIR})
++  ENDIF("$ENV{PYTHONDONTWRITEBYTECODE}" STREQUAL "")
+ ENDMACRO(PYTHON_INSTALL)

Deleted: extra-x86_64/PKGBUILD
===================================================================
--- extra-x86_64/PKGBUILD	2012-03-15 14:03:38 UTC (rev 153520)
+++ extra-x86_64/PKGBUILD	2012-03-15 14:19:53 UTC (rev 153521)
@@ -1,56 +0,0 @@
-# $Id$
-# Maintainer: Andrea Scarpino <andrea at archlinux.org
-# Contributor: Pierre Schmitz <pierre at archlinux.de>
-
-pkgname=kdelibs
-pkgver=4.8.1
-pkgrel=1
-pkgdesc="KDE Core Libraries"
-arch=('i686' 'x86_64')
-url='http://www.kde.org'
-license=('GPL' 'LGPL' 'FDL')
-depends=('strigi' 'attica' 'libxss' 'xz' 'soprano' 'krb5' 'grantlee'
-        'shared-desktop-ontologies' 'qca' 'libdbusmenu-qt' 'polkit-qt'
-        'shared-mime-info' 'enchant' 'giflib' 'jasper' 'openexr' 'docbook-xsl'
-        'upower' 'udisks' 'libxcursor' 'phonon' 'qtwebkit')
-makedepends=('cmake' 'automoc4' 'avahi' 'libgl' 'hspell')
-replaces=('kdelibs-experimental')
-install=${pkgname}.install
-source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz"
-        'kde-applications-menu.patch' 'archlinux-menu.patch')
-sha1sums=('da4e13f63ac340619351e9a2f4211cce8ec4fdf8'
-          '86ee8c8660f19de8141ac99cd6943964d97a1ed7'
-          '63a850ab4196b9d06934f2b4a13acd9f7739bc67')
-
-build() {
-       cd "${srcdir}"/${pkgname}-${pkgver}
-
-       # avoid file conflict with gnome-menus
-       patch -p1 -i "${srcdir}"/kde-applications-menu.patch
-       # add Archlinux menu entry
-       patch -p1 -i "${srcdir}"/archlinux-menu.patch
-
-       cd "${srcdir}"
-       mkdir build
-       cd build
-       cmake ../${pkgname}-${pkgver} \
-               -DCMAKE_BUILD_TYPE=Release \
-               -DCMAKE_SKIP_RPATH=ON \
-               -DKDE_DISTRIBUTION_TEXT='Arch Linux' \
-               -DCMAKE_INSTALL_PREFIX=/usr \
-               -DSYSCONF_INSTALL_DIR=/etc \
-               -DHTML_INSTALL_DIR=/usr/share/doc/kde/html \
-               -DKDE_DEFAULT_HOME='.kde4' \
-               -DWITH_FAM=OFF
-       make
-}
-
-package() {
-       cd "${srcdir}"/build
-       make DESTDIR="${pkgdir}" install
-
-       # cert bundle seems to be hardcoded
-       # link it to the one from ca-certificates
-       rm -f "${pkgdir}"/usr/share/apps/kssl/ca-bundle.crt
-       ln -sf /etc/ssl/certs/ca-certificates.crt "${pkgdir}"/usr/share/apps/kssl/ca-bundle.crt
-}

Copied: kdelibs/repos/extra-x86_64/PKGBUILD (from rev 153520, kdelibs/trunk/PKGBUILD)
===================================================================
--- extra-x86_64/PKGBUILD	                        (rev 0)
+++ extra-x86_64/PKGBUILD	2012-03-15 14:19:53 UTC (rev 153521)
@@ -0,0 +1,66 @@
+# $Id$
+# Maintainer: Andrea Scarpino <andrea at archlinux.org
+# Contributor: Pierre Schmitz <pierre at archlinux.de>
+
+pkgname=kdelibs
+pkgver=4.8.1
+pkgrel=2
+pkgdesc="KDE Core Libraries"
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+depends=('strigi' 'attica' 'libxss' 'xz' 'soprano' 'krb5' 'grantlee'
+        'shared-desktop-ontologies' 'qca' 'libdbusmenu-qt' 'polkit-qt'
+        'shared-mime-info' 'enchant' 'giflib' 'jasper' 'openexr' 'docbook-xsl'
+        'upower' 'udisks' 'libxcursor' 'phonon' 'qtwebkit')
+makedepends=('cmake' 'automoc4' 'avahi' 'libgl' 'hspell')
+replaces=('kdelibs-experimental')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz"
+        'kde-applications-menu.patch' 'archlinux-menu.patch'
+        'fix-kmail-crash.patch'
+        'use-pythondontwritebytecode.patch')
+sha1sums=('da4e13f63ac340619351e9a2f4211cce8ec4fdf8'
+          '86ee8c8660f19de8141ac99cd6943964d97a1ed7'
+          '63a850ab4196b9d06934f2b4a13acd9f7739bc67'
+          '081b0663480568359120b573d26abb91e1a348c0'
+          'a1e35760d5b4e29471ad357c963a343c67200f32')
+
+build() {
+       cd "${srcdir}"/${pkgname}-${pkgver}
+
+       # avoid file conflict with gnome-menus
+       patch -p1 -i "${srcdir}"/kde-applications-menu.patch
+       # add Archlinux menu entry
+       patch -p1 -i "${srcdir}"/archlinux-menu.patch
+
+       # Upstream (FS#28907)
+       patch -p1 -i "${srcdir}"/fix-kmail-crash.patch
+
+       # Set PYTHONDONTWRITEBYTECODE (KDEBUG#276151)
+       patch -p0 -i "${srcdir}"/use-pythondontwritebytecode.patch
+
+       cd "${srcdir}"
+       mkdir build
+       cd build
+       cmake ../${pkgname}-${pkgver} \
+               -DCMAKE_BUILD_TYPE=Release \
+               -DCMAKE_SKIP_RPATH=ON \
+               -DKDE_DISTRIBUTION_TEXT='Arch Linux' \
+               -DCMAKE_INSTALL_PREFIX=/usr \
+               -DSYSCONF_INSTALL_DIR=/etc \
+               -DHTML_INSTALL_DIR=/usr/share/doc/kde/html \
+               -DKDE_DEFAULT_HOME='.kde4' \
+               -DWITH_FAM=OFF
+       make
+}
+
+package() {
+       cd "${srcdir}"/build
+       make DESTDIR="${pkgdir}" install
+
+       # cert bundle seems to be hardcoded
+       # link it to the one from ca-certificates
+       rm -f "${pkgdir}"/usr/share/apps/kssl/ca-bundle.crt
+       ln -sf /etc/ssl/certs/ca-certificates.crt "${pkgdir}"/usr/share/apps/kssl/ca-bundle.crt
+}

Deleted: extra-x86_64/archlinux-menu.patch
===================================================================
--- extra-x86_64/archlinux-menu.patch	2012-03-15 14:03:38 UTC (rev 153520)
+++ extra-x86_64/archlinux-menu.patch	2012-03-15 14:19:53 UTC (rev 153521)
@@ -1,22 +0,0 @@
---- kdelibs-4.3.98/kded/applications.menu	2010-01-31 19:28:11.000000000 +0000
-+++ kdelibs-4.3.98/kded/applications.menu	2010-01-31 22:25:53.556043077 +0000
-@@ -16,11 +16,19 @@
- 	</DefaultLayout>
- 	<Layout>
- 		<Merge type="menus"/>
-+		<Menuname>Arch Linux</Menuname>
- 		<Menuname>Applications</Menuname>
- 		<Merge type="files"/>
- 	</Layout>
- 
- 	<Menu>
-+		<Name>Arch Linux</Name>                                                                                                   
-+		<Directory>Archlinux.directory</Directory>                                                                               
-+		<Include>                                                                                                                
-+			<Category>Archlinux</Category>                                                                                           
-+		</Include>
-+	</Menu>
-+	<Menu>
- 		<Name>Applications</Name>
- 		<Directory>kde-unknown.directory</Directory>
- 		<OnlyUnallocated/>

Copied: kdelibs/repos/extra-x86_64/archlinux-menu.patch (from rev 153520, kdelibs/trunk/archlinux-menu.patch)
===================================================================
--- extra-x86_64/archlinux-menu.patch	                        (rev 0)
+++ extra-x86_64/archlinux-menu.patch	2012-03-15 14:19:53 UTC (rev 153521)
@@ -0,0 +1,22 @@
+--- kdelibs-4.3.98/kded/applications.menu	2010-01-31 19:28:11.000000000 +0000
++++ kdelibs-4.3.98/kded/applications.menu	2010-01-31 22:25:53.556043077 +0000
+@@ -16,11 +16,19 @@
+ 	</DefaultLayout>
+ 	<Layout>
+ 		<Merge type="menus"/>
++		<Menuname>Arch Linux</Menuname>
+ 		<Menuname>Applications</Menuname>
+ 		<Merge type="files"/>
+ 	</Layout>
+ 
+ 	<Menu>
++		<Name>Arch Linux</Name>                                                                                                   
++		<Directory>Archlinux.directory</Directory>                                                                               
++		<Include>                                                                                                                
++			<Category>Archlinux</Category>                                                                                           
++		</Include>
++	</Menu>
++	<Menu>
+ 		<Name>Applications</Name>
+ 		<Directory>kde-unknown.directory</Directory>
+ 		<OnlyUnallocated/>

Copied: kdelibs/repos/extra-x86_64/fix-kmail-crash.patch (from rev 153520, kdelibs/trunk/fix-kmail-crash.patch)
===================================================================
--- extra-x86_64/fix-kmail-crash.patch	                        (rev 0)
+++ extra-x86_64/fix-kmail-crash.patch	2012-03-15 14:19:53 UTC (rev 153521)
@@ -0,0 +1,71 @@
+commit 979b0436510e7807c054e79c40c3753834ac2863
+Author: Sebastian Trueg <trueg at kde.org>
+Date:   Thu Mar 15 09:14:35 2012 +0100
+
+    Thread-safe ResourceWatcher handling.
+    
+    We simply perform all RW operations in the manager thread.
+    
+    BUG: 295474
+    FIXED-IN: 4.8.2
+
+diff --git a/nepomuk/core/resourcedata.cpp b/nepomuk/core/resourcedata.cpp
+index abe55ea..9d45228 100644
+--- a/nepomuk/core/resourcedata.cpp
++++ b/nepomuk/core/resourcedata.cpp
+@@ -175,7 +175,8 @@ void Nepomuk::ResourceData::resetAll( bool isDelete )
+     if( !m_uri.isEmpty() ) {
+         m_rm->m_initializedData.remove( m_uri );
+         if( m_rm->m_watcher && m_addedToWatcher ) {
+-            m_rm->m_watcher->removeResource(Resource::fromResourceUri(m_uri));
++            // See load() for an explanation of the QMetaObject call
++            QMetaObject::invokeMethod(m_rm->m_watcher, "removeResource", Qt::AutoConnection, Q_ARG(Nepomuk::Resource, Resource::fromResourceUri(m_uri)));
+             m_addedToWatcher = false;
+         }
+     }
+@@ -393,16 +394,23 @@ bool Nepomuk::ResourceData::load()
+         m_cache.clear();
+ 
+         if(!m_rm->m_watcher) {
++            //
++            // The ResourceWatcher is not thread-safe. Thus, we need to ensure the safety ourselves.
++            // We do that by simply handling all RW related operations in the manager thread.
++            // This also means to invoke methods on the watcher through QMetaObject to make sure they
++            // get queued in case of calls between different threads.
++            //
+             m_rm->m_watcher = new ResourceWatcher(m_rm->m_manager);
++            m_rm->m_watcher->moveToThread(m_rm->m_manager->thread());
+             QObject::connect( m_rm->m_watcher, SIGNAL(propertyAdded(Nepomuk::Resource, Nepomuk::Types::Property, QVariant)),
+                               m_rm->m_manager, SLOT(slotPropertyAdded(Nepomuk::Resource, Nepomuk::Types::Property, QVariant)) );
+             QObject::connect( m_rm->m_watcher, SIGNAL(propertyRemoved(Nepomuk::Resource, Nepomuk::Types::Property, QVariant)),
+                               m_rm->m_manager, SLOT(slotPropertyRemoved(Nepomuk::Resource, Nepomuk::Types::Property, QVariant)) );
+             m_rm->m_watcher->addResource( Nepomuk::Resource::fromResourceUri(m_uri) );
+-            m_rm->m_watcher->start();
++            QMetaObject::invokeMethod(m_rm->m_watcher, "start", Qt::AutoConnection);
+         }
+         else {
+-            m_rm->m_watcher->addResource( Nepomuk::Resource::fromResourceUri(m_uri) );
++            QMetaObject::invokeMethod(m_rm->m_watcher, "addResource", Qt::AutoConnection, Q_ARG(Nepomuk::Resource, Nepomuk::Resource::fromResourceUri(m_uri)) );
+         }
+         m_addedToWatcher = true;
+ 
+diff --git a/nepomuk/core/resourcewatcher.h b/nepomuk/core/resourcewatcher.h
+index 06b9622..92b12f5 100644
+--- a/nepomuk/core/resourcewatcher.h
++++ b/nepomuk/core/resourcewatcher.h
+@@ -93,6 +93,7 @@ namespace Nepomuk {
+          */
+         virtual ~ResourceWatcher();
+ 
++    public Q_SLOTS:
+         /**
+          * \brief Add a type to be watched.
+          *
+@@ -204,7 +205,6 @@ namespace Nepomuk {
+          */
+         QList<Types::Property> properties() const;
+ 
+-    public Q_SLOTS:
+         /**
+          * \brief Start the signalling of changes.
+          *

Deleted: extra-x86_64/kde-applications-menu.patch
===================================================================
--- extra-x86_64/kde-applications-menu.patch	2012-03-15 14:03:38 UTC (rev 153520)
+++ extra-x86_64/kde-applications-menu.patch	2012-03-15 14:19:53 UTC (rev 153521)
@@ -1,22 +0,0 @@
---- kdelibs-4.3.98/kded/CMakeLists.txt	2009-10-02 14:55:17.000000000 +0000
-+++ kdelibs-4.3.98/kded/CMakeLists.txt	2010-01-31 22:16:13.946933892 +0000
-@@ -69,7 +69,7 @@
- if (WIN32)
- install( FILES applications.menu  DESTINATION  ${SHARE_INSTALL_PREFIX}/xdg/menus )
- else (WIN32)
--install( FILES applications.menu  DESTINATION  ${SYSCONF_INSTALL_DIR}/xdg/menus )
-+install( FILES applications.menu  DESTINATION  ${SYSCONF_INSTALL_DIR}/xdg/menus RENAME kde-applications.menu )
- endif (WIN32)
- install( FILES kdedmodule.desktop DESTINATION  ${SERVICETYPES_INSTALL_DIR} )
- install( FILES kded.upd           DESTINATION  ${DATA_INSTALL_DIR}/kconf_update )
---- kdelibs-4.3.98/kded/kbuildsycoca.cpp	2009-12-04 23:10:18.000000000 +0000
-+++ kdelibs-4.3.98/kded/kbuildsycoca.cpp	2010-01-31 22:16:13.962766572 +0000
-@@ -302,7 +302,7 @@
-      if (!m_trackId.isEmpty())
-         g_vfolder->setTrackId(m_trackId);
- 
--     VFolderMenu::SubMenu *kdeMenu = g_vfolder->parseMenu("applications.menu", true);
-+     VFolderMenu::SubMenu *kdeMenu = g_vfolder->parseMenu("kde-applications.menu", true);
- 
-      KServiceGroup::Ptr entry = g_bsgf->addNew("/", kdeMenu->directoryFile, KServiceGroup::Ptr(), false);
-      entry->setLayoutInfo(kdeMenu->layoutList);

Copied: kdelibs/repos/extra-x86_64/kde-applications-menu.patch (from rev 153520, kdelibs/trunk/kde-applications-menu.patch)
===================================================================
--- extra-x86_64/kde-applications-menu.patch	                        (rev 0)
+++ extra-x86_64/kde-applications-menu.patch	2012-03-15 14:19:53 UTC (rev 153521)
@@ -0,0 +1,22 @@
+--- kdelibs-4.3.98/kded/CMakeLists.txt	2009-10-02 14:55:17.000000000 +0000
++++ kdelibs-4.3.98/kded/CMakeLists.txt	2010-01-31 22:16:13.946933892 +0000
+@@ -69,7 +69,7 @@
+ if (WIN32)
+ install( FILES applications.menu  DESTINATION  ${SHARE_INSTALL_PREFIX}/xdg/menus )
+ else (WIN32)
+-install( FILES applications.menu  DESTINATION  ${SYSCONF_INSTALL_DIR}/xdg/menus )
++install( FILES applications.menu  DESTINATION  ${SYSCONF_INSTALL_DIR}/xdg/menus RENAME kde-applications.menu )
+ endif (WIN32)
+ install( FILES kdedmodule.desktop DESTINATION  ${SERVICETYPES_INSTALL_DIR} )
+ install( FILES kded.upd           DESTINATION  ${DATA_INSTALL_DIR}/kconf_update )
+--- kdelibs-4.3.98/kded/kbuildsycoca.cpp	2009-12-04 23:10:18.000000000 +0000
++++ kdelibs-4.3.98/kded/kbuildsycoca.cpp	2010-01-31 22:16:13.962766572 +0000
+@@ -302,7 +302,7 @@
+      if (!m_trackId.isEmpty())
+         g_vfolder->setTrackId(m_trackId);
+ 
+-     VFolderMenu::SubMenu *kdeMenu = g_vfolder->parseMenu("applications.menu", true);
++     VFolderMenu::SubMenu *kdeMenu = g_vfolder->parseMenu("kde-applications.menu", true);
+ 
+      KServiceGroup::Ptr entry = g_bsgf->addNew("/", kdeMenu->directoryFile, KServiceGroup::Ptr(), false);
+      entry->setLayoutInfo(kdeMenu->layoutList);

Deleted: extra-x86_64/kdelibs.install
===================================================================
--- extra-x86_64/kdelibs.install	2012-03-15 14:03:38 UTC (rev 153520)
+++ extra-x86_64/kdelibs.install	2012-03-15 14:19:53 UTC (rev 153521)
@@ -1,13 +0,0 @@
-post_install() {
-	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
-	update-mime-database usr/share/mime &> /dev/null
-    update-desktop-database -q
-}
-
-post_upgrade() {
-	post_install
-}
-
-post_remove() {
-	post_install
-}

Copied: kdelibs/repos/extra-x86_64/kdelibs.install (from rev 153520, kdelibs/trunk/kdelibs.install)
===================================================================
--- extra-x86_64/kdelibs.install	                        (rev 0)
+++ extra-x86_64/kdelibs.install	2012-03-15 14:19:53 UTC (rev 153521)
@@ -0,0 +1,13 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+	update-mime-database usr/share/mime &> /dev/null
+    update-desktop-database -q
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}

Copied: kdelibs/repos/extra-x86_64/use-pythondontwritebytecode.patch (from rev 153520, kdelibs/trunk/use-pythondontwritebytecode.patch)
===================================================================
--- extra-x86_64/use-pythondontwritebytecode.patch	                        (rev 0)
+++ extra-x86_64/use-pythondontwritebytecode.patch	2012-03-15 14:19:53 UTC (rev 153521)
@@ -0,0 +1,80 @@
+--- cmake/modules/PythonMacros.cmake
++++ cmake/modules/PythonMacros.cmake
+@@ -23,40 +23,42 @@
+   # Install the source file.
+   INSTALL(FILES ${SOURCE_FILE} DESTINATION ${DESINATION_DIR})
+ 
+-  # Byte compile and install the .pyc file.        
+-  GET_FILENAME_COMPONENT(_absfilename ${SOURCE_FILE} ABSOLUTE)
+-  GET_FILENAME_COMPONENT(_filename ${SOURCE_FILE} NAME)
+-  GET_FILENAME_COMPONENT(_filenamebase ${SOURCE_FILE} NAME_WE)
+-  GET_FILENAME_COMPONENT(_basepath ${SOURCE_FILE} PATH)
+-
+-  if(WIN32)
+-    string(REGEX REPLACE ".:/" "/" _basepath "${_basepath}")
+-  endif(WIN32)
+-
+-  SET(_bin_py ${CMAKE_CURRENT_BINARY_DIR}/${_basepath}/${_filename})
+-  SET(_bin_pyc ${CMAKE_CURRENT_BINARY_DIR}/${_basepath}/${_filenamebase}.pyc)
+-
+-  FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${_basepath})
+-
+-  SET(_message "-DMESSAGE=Byte-compiling ${_bin_py}")
+-
+-  GET_FILENAME_COMPONENT(_abs_bin_py ${_bin_py} ABSOLUTE)
+-  IF(_abs_bin_py STREQUAL ${_absfilename})    # Don't copy the file onto itself.
+-    ADD_CUSTOM_COMMAND(
+-      TARGET compile_python_files
+-      COMMAND ${CMAKE_COMMAND} -E echo ${message}
+-      COMMAND ${PYTHON_EXECUTABLE} ${_python_compile_py} ${_bin_py}
+-      DEPENDS ${_absfilename}
+-    )
+-  ELSE(_abs_bin_py STREQUAL ${_absfilename})
+-    ADD_CUSTOM_COMMAND(
+-      TARGET compile_python_files
+-      COMMAND ${CMAKE_COMMAND} -E echo ${message} 
+-      COMMAND ${CMAKE_COMMAND} -E copy ${_absfilename} ${_bin_py}
+-      COMMAND ${PYTHON_EXECUTABLE} ${_python_compile_py} ${_bin_py}
+-      DEPENDS ${_absfilename}
+-    )
+-  ENDIF(_abs_bin_py STREQUAL ${_absfilename})
++  # Byte compile and install the .pyc file.
++  IF("$ENV{PYTHONDONTWRITEBYTECODE}" STREQUAL "")
++    GET_FILENAME_COMPONENT(_absfilename ${SOURCE_FILE} ABSOLUTE)
++    GET_FILENAME_COMPONENT(_filename ${SOURCE_FILE} NAME)
++    GET_FILENAME_COMPONENT(_filenamebase ${SOURCE_FILE} NAME_WE)
++    GET_FILENAME_COMPONENT(_basepath ${SOURCE_FILE} PATH)
++
++    if(WIN32)
++      string(REGEX REPLACE ".:/" "/" _basepath "${_basepath}")
++    endif(WIN32)
++
++    SET(_bin_py ${CMAKE_CURRENT_BINARY_DIR}/${_basepath}/${_filename})
++    SET(_bin_pyc ${CMAKE_CURRENT_BINARY_DIR}/${_basepath}/${_filenamebase}.pyc)
++
++    FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${_basepath})
++
++    SET(_message "-DMESSAGE=Byte-compiling ${_bin_py}")
++
++    GET_FILENAME_COMPONENT(_abs_bin_py ${_bin_py} ABSOLUTE)
++    IF(_abs_bin_py STREQUAL ${_absfilename})    # Don't copy the file onto itself.
++      ADD_CUSTOM_COMMAND(
++        TARGET compile_python_files
++        COMMAND ${CMAKE_COMMAND} -E echo ${message}
++        COMMAND ${PYTHON_EXECUTABLE} ${_python_compile_py} ${_bin_py}
++        DEPENDS ${_absfilename}
++      )
++    ELSE(_abs_bin_py STREQUAL ${_absfilename})
++      ADD_CUSTOM_COMMAND(
++        TARGET compile_python_files
++        COMMAND ${CMAKE_COMMAND} -E echo ${message}
++        COMMAND ${CMAKE_COMMAND} -E copy ${_absfilename} ${_bin_py}
++        COMMAND ${PYTHON_EXECUTABLE} ${_python_compile_py} ${_bin_py}
++        DEPENDS ${_absfilename}
++      )
++    ENDIF(_abs_bin_py STREQUAL ${_absfilename})
+ 
+-  INSTALL(FILES ${_bin_pyc} DESTINATION ${DESINATION_DIR})
++    INSTALL(FILES ${_bin_pyc} DESTINATION ${DESINATION_DIR})
++  ENDIF("$ENV{PYTHONDONTWRITEBYTECODE}" STREQUAL "")
+ ENDMACRO(PYTHON_INSTALL)



More information about the arch-commits mailing list