summary refs log tree commit diff
path: root/pkgs/desktops/kde-4.5
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/desktops/kde-4.5')
-rw-r--r--pkgs/desktops/kde-4.5/accessibility/default.nix14
-rw-r--r--pkgs/desktops/kde-4.5/admin/builder.sh13
-rw-r--r--pkgs/desktops/kde-4.5/admin/default.nix22
-rw-r--r--pkgs/desktops/kde-4.5/artwork/FindXscreensaver.cmake85
-rw-r--r--pkgs/desktops/kde-4.5/artwork/default.nix25
-rw-r--r--pkgs/desktops/kde-4.5/base-runtime/default.nix27
-rw-r--r--pkgs/desktops/kde-4.5/base-runtime/freeze.diff37
-rw-r--r--pkgs/desktops/kde-4.5/base-workspace/default.nix23
-rw-r--r--pkgs/desktops/kde-4.5/base/default.nix18
-rw-r--r--pkgs/desktops/kde-4.5/bindings/default.nix26
-rw-r--r--pkgs/desktops/kde-4.5/bindings/python-site-packages-install-dir.diff8
-rw-r--r--pkgs/desktops/kde-4.5/default.nix36
-rw-r--r--pkgs/desktops/kde-4.5/edu/default.nix27
-rw-r--r--pkgs/desktops/kde-4.5/games/default.nix20
-rw-r--r--pkgs/desktops/kde-4.5/graphics/default.nix21
-rw-r--r--pkgs/desktops/kde-4.5/kde-package/default.nix10
-rw-r--r--pkgs/desktops/kde-4.5/kde-package/manifest.nix95
-rw-r--r--pkgs/desktops/kde-4.5/libs/default.nix3
-rw-r--r--pkgs/desktops/kde-4.5/libs/polkit-install.patch11
-rw-r--r--pkgs/desktops/kde-4.5/libs/python-site-packages-install-dir.diff13
-rw-r--r--pkgs/desktops/kde-4.5/multimedia/default.nix18
-rw-r--r--pkgs/desktops/kde-4.5/network/default.nix34
-rw-r--r--pkgs/desktops/kde-4.5/network/log-feature.diff60
-rw-r--r--pkgs/desktops/kde-4.5/pim-runtime/default.nix14
-rw-r--r--pkgs/desktops/kde-4.5/pimlibs/default.nix1
-rw-r--r--pkgs/desktops/kde-4.5/plasma-addons/default.nix18
-rw-r--r--pkgs/desktops/kde-4.5/sdk/default.nix21
-rw-r--r--pkgs/desktops/kde-4.5/sdk/find-svn.patch59
-rw-r--r--pkgs/desktops/kde-4.5/support/akonadi/default.nix1
-rw-r--r--pkgs/desktops/kde-4.5/support/akonadi/fix-broken-datadir-parameter.patch17
-rw-r--r--pkgs/desktops/kde-4.5/support/eigen/default.nix8
-rw-r--r--pkgs/desktops/kde-4.5/support/oxygen-icons/default.nix1
-rw-r--r--pkgs/desktops/kde-4.5/support/polkit-qt-1/default.nix1
-rw-r--r--pkgs/desktops/kde-4.5/support/qimageblitz/default.nix21
-rw-r--r--pkgs/desktops/kde-4.5/support/strigi/default.nix5
-rw-r--r--pkgs/desktops/kde-4.5/toys/default.nix12
-rw-r--r--pkgs/desktops/kde-4.5/utils/cmake-module-path.diff10
-rw-r--r--pkgs/desktops/kde-4.5/utils/default.nix28
-rw-r--r--pkgs/desktops/kde-4.5/utils/log-feature.diff10
-rw-r--r--pkgs/desktops/kde-4.5/webdev/default.nix14
40 files changed, 829 insertions, 58 deletions
diff --git a/pkgs/desktops/kde-4.5/accessibility/default.nix b/pkgs/desktops/kde-4.5/accessibility/default.nix
new file mode 100644
index 00000000000..048111389bf
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/accessibility/default.nix
@@ -0,0 +1,14 @@
+{kdePackage, cmake, qt4, perl, alsaLib, libXi, libXtst, kdelibs, automoc4 }:
+
+kdePackage {
+  pn = "kdeaccessibility";
+  v = "4.5.0";
+
+  # TODO: speech dispatcher and/or freetts
+  buildInputs = [ cmake qt4 perl alsaLib libXi libXtst kdelibs automoc4 ];
+
+  meta = {
+    description = "KDE accessibility tools";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.5/admin/builder.sh b/pkgs/desktops/kde-4.5/admin/builder.sh
new file mode 100644
index 00000000000..78e29543c1f
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/admin/builder.sh
@@ -0,0 +1,13 @@
+source $stdenv/setup
+
+myPatchPhase()
+{
+    for i in system-config-printer-kde/cmake-modules/FindSystemConfigPrinter.py system-config-printer-kde/system-config-printer-kde.py
+    do
+	sed -i -e "s|/usr/share/system-config-printer|$system_config_printer/share/system-config-printer|" $i
+    done
+
+	sed -i -e "s|import cupshelpers.ppds, cupshelpers.cupshelpers|import ppds, cupshelpers|" system-config-printer-kde/cmake-modules/FindSystemConfigPrinter.py
+}
+patchPhase=myPatchPhase
+genericBuild
diff --git a/pkgs/desktops/kde-4.5/admin/default.nix b/pkgs/desktops/kde-4.5/admin/default.nix
new file mode 100644
index 00000000000..61f5b018a7b
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/admin/default.nix
@@ -0,0 +1,22 @@
+{ kdePackage, cmake, qt4, pkgconfig, perl, python
+, sip, pyqt4, pycups, rhpl, system_config_printer
+, kdelibs, kdepimlibs, kdebindings, automoc4}:
+
+kdePackage {
+  pn = "kdeadmin";
+  v = "4.5.0";
+
+  builder = ./builder.sh;
+
+  inherit system_config_printer;
+
+  PYTHONPATH = "${pycups}/lib/python${python.majorVersion}/site-packages";
+
+  buildInputs = [ cmake qt4 pkgconfig perl python sip pyqt4 pycups rhpl system_config_printer
+                  kdelibs kdepimlibs kdebindings automoc4 ];
+
+  meta = {
+    description = "KDE Administration Utilities";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.5/artwork/FindXscreensaver.cmake b/pkgs/desktops/kde-4.5/artwork/FindXscreensaver.cmake
new file mode 100644
index 00000000000..caa5ddd9254
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/artwork/FindXscreensaver.cmake
@@ -0,0 +1,85 @@
+#Macro to find xscreensaver directory
+
+# Copyright (c) 2006, Laurent Montel, <montel@kde.org>
+#
+# Redistribution and use is allowed according to the terms of the BSD license.
+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+
+if (NOT XSCREENSAVER_FOUND)
+  FIND_PATH(XSCREENSAVER_DIR deco
+    HINTS
+      ${KDE4_INCLUDE_DIR}
+	PATHS
+      /usr
+      /usr/local
+      /opt/local
+      /usr/X11R6
+      /opt/kde
+      /opt/kde3
+      /usr/kde
+      /usr/local/kde
+      /usr/local/xscreensaver
+      /usr/openwin/lib/xscreensaver
+      /etc
+	PATH_SUFFIXES
+      lib${LIB_SUFFIX}/xscreensaver
+      lib/xscreensaver
+	  lib${LIB_SUFFIX}/misc/xscreensaver
+	  lib/misc/xscreensaver
+	  libexec/xscreensaver
+	  bin/xscreensaver-hacks
+	  hacks)
+  message(XSCREENSAVER_DIR ${XSCREENSAVER_DIR})
+
+  set(XSCREENSAVER_CONFIG_DIR)
+  FIND_PATH(XSCREENSAVER_CONFIG_DECO config/deco.xml
+    PATHS
+    ${KDE4_INCLUDE_DIR}
+    /usr/
+    /usr/local/
+    /opt/local/
+    /usr/X11R6/
+    /opt/kde/
+    /opt/kde3/
+    /usr/kde/
+    /usr/local/kde/
+    /usr/openwin/lib/xscreensaver/
+    /etc/
+    PATH_SUFFIXES xscreensaver share/xscreensaver
+  )
+  #MESSAGE(STATUS "XSCREENSAVER_CONFIG_DIR :<${XSCREENSAVER_CONFIG_DIR}>")
+
+  if(XSCREENSAVER_CONFIG_DECO)
+	set(XSCREENSAVER_CONFIG_DIR "${XSCREENSAVER_CONFIG_DECO}/config/")
+	#MESSAGE(STATUS "XSCREENSAVER_CONFIG_DIR <${XSCREENSAVER_CONFIG_DIR}>")
+  endif(XSCREENSAVER_CONFIG_DECO)
+
+
+  # Try and locate XScreenSaver config when path doesn't include config
+  if(NOT XSCREENSAVER_CONFIG_DIR)
+    FIND_PATH(XSCREENSAVER_CONFIG_DIR deco.xml
+      /etc/xscreensaver
+      )
+  endif(NOT XSCREENSAVER_CONFIG_DIR)
+endif(NOT XSCREENSAVER_FOUND)
+
+#MESSAGE(STATUS "XSCREENSAVER_CONFIG_DIR :<${XSCREENSAVER_CONFIG_DIR}>")
+#MESSAGE(STATUS "XSCREENSAVER_DIR :<${XSCREENSAVER_DIR}>")
+
+# Need to fix hack
+if(XSCREENSAVER_DIR AND XSCREENSAVER_CONFIG_DIR)
+	set(XSCREENSAVER_FOUND TRUE)
+endif(XSCREENSAVER_DIR AND XSCREENSAVER_CONFIG_DIR)
+
+if (XSCREENSAVER_FOUND)
+  if (NOT Xscreensaver_FIND_QUIETLY)
+    message(STATUS "Found XSCREENSAVER_CONFIG_DIR <${XSCREENSAVER_CONFIG_DIR}>")
+  endif (NOT Xscreensaver_FIND_QUIETLY)
+else (XSCREENSAVER_FOUND)
+  if (Xscreensaver_FIND_REQUIRED)
+    message(FATAL_ERROR "XScreenSaver not found")
+  endif (Xscreensaver_FIND_REQUIRED)
+endif (XSCREENSAVER_FOUND)
+
+
+MARK_AS_ADVANCED(XSCREENSAVER_DIR XSCREENSAVER_CONFIG_DIR)
diff --git a/pkgs/desktops/kde-4.5/artwork/default.nix b/pkgs/desktops/kde-4.5/artwork/default.nix
index e4e94ebb6dc..ca036322f48 100644
--- a/pkgs/desktops/kde-4.5/artwork/default.nix
+++ b/pkgs/desktops/kde-4.5/artwork/default.nix
@@ -1,19 +1,20 @@
-{ stdenv, fetchurl, lib, cmake, qt4, perl, xscreensaver
-, kdelibs, kdebase_workspace, automoc4, phonon, strigi, eigen}:
+{ kdePackage, cmake, qt4, perl, xscreensaver
+, kdelibs, kdebase_workspace, automoc4, strigi, eigen}:
+
+kdePackage {
+  pn = "kdeartwork";
+  v = "4.5.0";
+
+  buildInputs = [ cmake qt4 perl xscreensaver kdelibs kdebase_workspace automoc4
+    strigi eigen ];
+
+  preConfigure = ''
+    cp -v ${./FindXscreensaver.cmake} cmake/modules/FindXscreensaver.cmake
+    '';
 
-stdenv.mkDerivation {
-  name = "kdeartwork-4.4.92";
-  src = fetchurl {
-    url = "mirror://kde/unstable/4.4.92/src/${name}.tar.bz2";
-    sha256 = "17c481za2jfrmhd946jbhgwpcyzjkgjkk2jw84wbj8v694ry3xym";
-  };
-  buildInputs = [ cmake qt4 perl xscreensaver
-                  kdelibs kdebase_workspace automoc4 phonon strigi eigen ];
   meta = {
     description = "KDE artwork";
     longDescription = "Contains various artwork for KDE such as backgrounds, icons and screensavers";
     license = "LGPL";
-    homepage = http://www.kde.org;
-    maintainers = [ lib.maintainers.sander ];
   };
 }
diff --git a/pkgs/desktops/kde-4.5/base-runtime/default.nix b/pkgs/desktops/kde-4.5/base-runtime/default.nix
new file mode 100644
index 00000000000..7abac4aa594
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/base-runtime/default.nix
@@ -0,0 +1,27 @@
+{ kdePackage, cmake, perl, bzip2, xz, qt4, alsaLib, xineLib, samba,
+  shared_mime_info, exiv2, libssh , kdelibs, automoc4, strigi, soprano,
+  cluceneCore, attica, virtuoso, makeWrapper, oxygen_icons }:
+
+kdePackage {
+  pn = "kdebase-runtime";
+  v = "4.5.0";
+
+  buildInputs = [ cmake perl bzip2 xz qt4 alsaLib xineLib samba shared_mime_info
+    exiv2 libssh kdelibs automoc4 strigi soprano cluceneCore attica
+    makeWrapper];
+
+  patches = [ ./freeze.diff ];
+
+  postInstall = ''
+    rm -v $out/share/icons/default.kde4
+    ln -s ${oxygen_icons}/share/icons/oxygen $out/share/icons/default.kde4
+    wrapProgram "$out/bin/nepomukservicestub" --prefix LD_LIBRARY_PATH : "${virtuoso}/lib" \
+        --prefix PATH : "${virtuoso}/bin"
+  '';
+
+  meta = {
+    description = "KDE runtime";
+    longDescription = "Libraries and tools which supports running KDE desktop applications";
+    license = "LGPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.5/base-runtime/freeze.diff b/pkgs/desktops/kde-4.5/base-runtime/freeze.diff
new file mode 100644
index 00000000000..62079f6e8ce
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/base-runtime/freeze.diff
@@ -0,0 +1,37 @@
+Index: kioslave/network/network/builder/upnp/upnpnetworkbuilder.cpp
+===================================================================
+--- a/kioslave/network/network/builder/upnp/upnpnetworkbuilder.cpp	(revision 1160390)
++++ b/kioslave/network/network/builder/upnp/upnpnetworkbuilder.cpp	(revision 1160391)
+@@ -36,6 +36,7 @@
+ #include <QtDBus/QDBusConnection>
+ #include <QtDBus/QDBusInterface>
+ #include <QtDBus/QDBusPendingCallWatcher>
++#include <QtCore/QTimer>
+ #include <QtCore/QStringList>
+ 
+ #include <KDebug>
+@@ -60,6 +61,11 @@
+ 
+ void UpnpNetworkBuilder::start()
+ {
++    QTimer::singleShot(0, this, SLOT(startBrowse()));
++}
++
++void UpnpNetworkBuilder::startBrowse()
++{
+     qDBusRegisterMetaType<DeviceTypeMap>();
+     qDBusRegisterMetaType<Cagibi::Device>();
+ 
+Index: kioslave/network/network/builder/upnp/upnpnetworkbuilder.h
+===================================================================
+--- a/kioslave/network/network/builder/upnp/upnpnetworkbuilder.h	(revision 1160390)
++++ b/kioslave/network/network/builder/upnp/upnpnetworkbuilder.h	(revision 1160391)
+@@ -63,6 +63,8 @@
+     void removeUPnPDevices( const QList<Cagibi::Device>& devices );
+ 
+   private Q_SLOTS:
++    void startBrowse();
++
+     void onDevicesAdded( const DeviceTypeMap& deviceTypeMap );
+     void onDevicesRemoved( const DeviceTypeMap& deviceTypeMap );
+     void onAddedDeviceDetails( const Cagibi::Device& device );
diff --git a/pkgs/desktops/kde-4.5/base-workspace/default.nix b/pkgs/desktops/kde-4.5/base-workspace/default.nix
new file mode 100644
index 00000000000..d80d78ed933
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/base-workspace/default.nix
@@ -0,0 +1,23 @@
+{ kdePackage, cmake, perl, python, pam, consolekit
+, qt4, sip, pyqt4, kdelibs, kdepimlibs, kdebindings
+, libXi, libXau, libXdmcp, libXtst, libXcomposite, libXdamage, libXScrnSaver
+, lm_sensors, libxklavier, libusb, libpthreadstubs, boost
+, automoc4, strigi, soprano, qimageblitz, akonadi
+, libdbusmenu_qt
+}:
+
+kdePackage {
+  pn = "kdebase-workspace";
+  v = "4.5.0";
+
+  buildInputs = [ cmake perl python qt4 pam consolekit sip pyqt4 kdelibs libXtst
+    kdepimlibs kdebindings boost libusb libXi libXau libXdmcp
+    libXcomposite libXdamage libXScrnSaver lm_sensors libxklavier automoc4
+    strigi soprano qimageblitz akonadi libpthreadstubs libdbusmenu_qt ];
+
+  meta = {
+    description = "KDE Workspace";
+    longDescription = "KDE base components that are only required to work with X11 such KDM and KWin";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.5/base/default.nix b/pkgs/desktops/kde-4.5/base/default.nix
new file mode 100644
index 00000000000..02c38bacede
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/base/default.nix
@@ -0,0 +1,18 @@
+{ kdePackage, cmake, perl, qt4, kdelibs, pciutils, libraw1394
+, automoc4, strigi, qimageblitz, soprano}:
+
+kdePackage {
+  pn = "kdebase";
+  v = "4.5.0";
+
+  preConfigure = "cd apps";
+
+  buildInputs = [ cmake perl qt4 kdelibs pciutils libraw1394 automoc4
+    strigi qimageblitz soprano ];
+
+  meta = {
+    description = "KDE Base components";
+    longDescription = "Applications that form the KDE desktop, like Plasma, System Settings, Konqueror, Dolphin, Kate, and Konsole";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.5/bindings/default.nix b/pkgs/desktops/kde-4.5/bindings/default.nix
index ce8f841726e..2628d115cd4 100644
--- a/pkgs/desktops/kde-4.5/bindings/default.nix
+++ b/pkgs/desktops/kde-4.5/bindings/default.nix
@@ -1,42 +1,36 @@
-{ stdenv, fetchurl, lib, cmake, perl, python, sip, pyqt4, zlib, libpng, freetype, fontconfig, qt4, boost
+{ kdePackage, lib, cmake, perl, python, sip, pyqt4, zlib, libpng, freetype, fontconfig, qt4, boost
 , kdelibs, kdepimlibs, automoc4, soprano, akonadi, attica, polkit_qt_1, ruby
 }:
 
 # This function will only build the pykde4 module. I don't need the other bindings and
 # some bindings are even broken.
 
-stdenv.mkDerivation rec {
-  name = "kdebindings-4.4.95";
-  
-  src = fetchurl {
-    url = "mirror://kde/unstable/4.4.95/src/${name}.tar.bz2";
-    sha256 = "115xl1jcpnyr71573if0nvb3hy8z5hxqy5qlvc71pdprzrp78xbc";
-  };
+kdePackage rec {
+  pn = "kdebindings";
+  v = "4.5.0";
 
   patches = [ ./python-site-packages-install-dir.diff ];
 
   preConfigure = ''
     CUSTOM_RUBY_SITE_ARCH_DIR=$(ruby -r rbconfig -e "print Config::CONFIG['sitearchdir']" | sed -e "s@${ruby}@$out@")
     CUSTOM_RUBY_SITE_LIB_DIR=$(ruby -r rbconfig -e "print Config::CONFIG['sitelibdir']" | sed -e "s@${ruby}@$out@")
-	CUSTOM_PERL_SITE_ARCH_DIR=$(perl -MConfig -e 'print $Config{sitearch}' | sed -e "s@${perl}@$out@")
+    CUSTOM_PERL_SITE_ARCH_DIR=$(perl -MConfig -e 'print $Config{sitearch}' | sed -e "s@${perl}@$out@")
     cmakeFlagsArray=(
-	  -DSIP_DEFAULT_SIP_DIR=$out/share/sip
+      -DSIP_DEFAULT_SIP_DIR=$out/share/sip
       -DCUSTOM_RUBY_SITE_ARCH_DIR=$CUSTOM_RUBY_SITE_ARCH_DIR
-	  -DCUSTOM_RUBY_SITE_LIB_DIR=$CUSTOM_RUBY_SITE_LIB_DIR
-	  -DCUSTOM_PERL_SITE_ARCH_DIR=$CUSTOM_PERL_SITE_ARCH_DIR
-	)
+      -DCUSTOM_RUBY_SITE_LIB_DIR=$CUSTOM_RUBY_SITE_LIB_DIR
+      -DCUSTOM_PERL_SITE_ARCH_DIR=$CUSTOM_PERL_SITE_ARCH_DIR
+    )
   '';
   
   # Okular seems also an optional depenedency which I left out
   buildInputs = [ cmake perl python sip pyqt4 zlib libpng freetype fontconfig qt4 boost
-		  kdelibs kdepimlibs automoc4 soprano akonadi attica polkit_qt_1 ruby ];
+          kdelibs kdepimlibs automoc4 soprano akonadi attica polkit_qt_1 ruby ];
 
   meta = {
     description = "KDE bindings";
     longDescription = "Provides KDE bindings for several languages such as Java, Smoke and Python";
     license = "LGPL";
-    homepage = http://www.kde.org;
-	inherit (kdelibs.meta) maintainers;
   };
 }
 
diff --git a/pkgs/desktops/kde-4.5/bindings/python-site-packages-install-dir.diff b/pkgs/desktops/kde-4.5/bindings/python-site-packages-install-dir.diff
index d1a58201b5f..7fe64e7eff5 100644
--- a/pkgs/desktops/kde-4.5/bindings/python-site-packages-install-dir.diff
+++ b/pkgs/desktops/kde-4.5/bindings/python-site-packages-install-dir.diff
@@ -39,7 +39,7 @@ diff --git a/python/pykde4/tools/pykdeuic4/CMakeLists.txt b/python/pykde4/tools/
 index ea711ba..115c777 100644
 --- a/python/pykde4/tools/pykdeuic4/CMakeLists.txt
 +++ b/python/pykde4/tools/pykdeuic4/CMakeLists.txt
-@@ -1,5 +1,5 @@
+@@ -1,5 +1,9 @@
  
 -PYTHON_INSTALL(kde4.py ${PYTHON_SITE_PACKAGES_DIR}/PyQt4/uic/widget-plugins/)
 -PYTHON_INSTALL(pykdeuic4.py ${PYTHON_SITE_PACKAGES_DIR}/PyQt4/uic/)
@@ -47,4 +47,8 @@ index ea711ba..115c777 100644
 +PYTHON_INSTALL(pykdeuic4.py ${PYTHON_SITE_PACKAGES_INSTALL_DIR}/PyQt4/uic/)
  find_path(cmake_module_dir create_exe_symlink.cmake ${CMAKE_MODULE_PATH})
 -INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -DTARGET=${PYTHON_SITE_PACKAGES_DIR}/PyQt4/uic/pykdeuic4.py -DLINK_NAME=${BIN_INSTALL_DIR}/pykdeuic4 -P ${cmake_module_dir}/create_exe_symlink.cmake)" )
-+INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -DTARGET=${PYTHON_SITE_PACKAGES_INSTALL_DIR}/PyQt4/uic/pykdeuic4.py -DLINK_NAME=${BIN_INSTALL_DIR}/pykdeuic4 -P ${cmake_module_dir}/create_exe_symlink.cmake)" )
++IF(IS_ABSOLUTE ${PYTHON_SITE_PACKAGES_INSTALL_DIR})
++  INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -DTARGET=${PYTHON_SITE_PACKAGES_INSTALL_DIR}/PyQt4/uic/pykdeuic4.py -DLINK_NAME=${BIN_INSTALL_DIR}/pykdeuic4 -P ${cmake_module_dir}/create_exe_symlink.cmake)" )
++ELSE(IS_ABSOLUTE ${PYTHON_SITE_PACKAGES_INSTALL_DIR})
++  INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -DTARGET=${CMAKE_INSTALL_PREFIX}/${PYTHON_SITE_PACKAGES_INSTALL_DIR}/PyQt4/uic/pykdeuic4.py -DLINK_NAME=${BIN_INSTALL_DIR}/pykdeuic4 -P ${cmake_module_dir}/create_exe_symlink.cmake)" )
++ENDIF(IS_ABSOLUTE ${PYTHON_SITE_PACKAGES_INSTALL_DIR})
diff --git a/pkgs/desktops/kde-4.5/default.nix b/pkgs/desktops/kde-4.5/default.nix
index e0801d80ba7..1d2abb5284a 100644
--- a/pkgs/desktops/kde-4.5/default.nix
+++ b/pkgs/desktops/kde-4.5/default.nix
@@ -1,8 +1,12 @@
-{ callPackage, stdenv, fetchurl } :
+{ callPackage, stdenv, fetchurl, qt47 } :
 
 {
   recurseForRelease = true;
 
+  qt4 = qt47;
+
+  phonon = null;
+
   kdePackage = import ./kde-package {
     inherit stdenv fetchurl;
   };
@@ -14,6 +18,8 @@
 
   automoc4 = callPackage ./support/automoc4 { };
 
+  eigen = callPackage ./support/eigen { };
+
   oxygen_icons = callPackage ./support/oxygen-icons { };
 
   polkit_qt_1 = callPackage ./support/polkit-qt-1 { };
@@ -26,13 +32,39 @@
 
   qca2_ossl = callPackage ./support/qca2/ossl.nix { };
 
+  qimageblitz = callPackage ./support/qimageblitz { };
+
 ### LIBS
   kdelibs = callPackage ./libs { };
 
   kdepimlibs = callPackage ./pimlibs { };
 
+### BASE
+  kdebase = callPackage ./base { };
+
+  kdebase_workspace = callPackage ./base-workspace { };
+
+  kdebase_runtime = callPackage ./base-runtime { };
+
+### OTHER MODULES
+  kdeaccessibility = callPackage ./accessibility { };
+  kdeadmin = callPackage ./admin { };
+  kdeartwork = callPackage ./artwork { };
+  kdeedu = callPackage ./edu { };
+  kdegames = callPackage ./games { };
+  kdegraphics = callPackage ./graphics { };
+  kdemultimedia = callPackage ./multimedia { };
+  kdenetwork = callPackage ./network { };
+  kdeplasma_addons = callPackage ./plasma-addons { };
+  kdesdk = callPackage ./sdk { };
+  kdetoys = callPackage ./toys { };
+  kdeutils = callPackage ./utils { };
+  kdewebdev = callPackage ./webdev { };
+
+  #kdepim_runtime = callPackage ../kde-4.4/pim-runtime { };
+  kdepim_runtime = callPackage ./pim-runtime { };
+  kdepim = callPackage ../kde-4.4/pim { };
 ### DEVELOPMENT
 
   kdebindings = callPackage ./bindings { };
-  
 }
diff --git a/pkgs/desktops/kde-4.5/edu/default.nix b/pkgs/desktops/kde-4.5/edu/default.nix
new file mode 100644
index 00000000000..2b9fe044dfd
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/edu/default.nix
@@ -0,0 +1,27 @@
+{ kdePackage, cmake, qt4, perl, libxml2, libxslt, openbabel, boost, readline, gmm, gsl
+, xplanet, libspectre, pkgconfig, libqalculate
+, kdelibs, automoc4, eigen, attica}:
+
+kdePackage {
+  pn = "kdeedu";
+  v = "4.5.0";
+
+#TODO:
+#* Boost.Python (1.31 or higher)  <http://www.boost.org/> - fails to find
+# * libcfitsio0 (3.09 or higher)  <http://indi.sf.net>
+# * libindi (0.6.1 or higher)  <http://indi.sf.net>
+# * R  <http://www.r-project.org/>
+# * OCaml  <http://caml.inria.fr/>
+# * LibFacile  <http://www.recherche.enac.fr/log/facile/>
+# * Avogadro (1.0 or higher)  <http://avogadro.openmolecules.net>
+# * libgps
+
+  buildInputs = [ cmake qt4 perl libxml2 libxslt openbabel boost readline gmm
+    gsl xplanet kdelibs automoc4 eigen attica libspectre pkgconfig
+    libqalculate ];
+
+  meta = {
+    description = "KDE Educative software";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.5/games/default.nix b/pkgs/desktops/kde-4.5/games/default.nix
new file mode 100644
index 00000000000..662813ce86e
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/games/default.nix
@@ -0,0 +1,20 @@
+{kdePackage, cmake, qt4, perl, shared_mime_info, kdelibs, automoc4, qca2
+, kdebindings, twisted, python, pyqt4, sip, makeWrapper }:
+
+kdePackage {
+  pn = "kdegames";
+  v = "4.5.0";
+
+# TODO: ggz
+  buildInputs = [ cmake qt4 perl shared_mime_info kdelibs automoc4 qca2
+    kdebindings twisted python pyqt4 sip makeWrapper ];
+
+  postInstall = ''
+    wrapProgram $out/bin/kajongg --set PYTHONPATH $PYTHONPATH
+    wrapProgram $out/bin/kajonggserver --set PYTHONPATH $PYTHONPATH'';
+
+  meta = {
+    description = "KDE Games";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.5/graphics/default.nix b/pkgs/desktops/kde-4.5/graphics/default.nix
new file mode 100644
index 00000000000..555f5ef32e3
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/graphics/default.nix
@@ -0,0 +1,21 @@
+{ kdePackage, cmake, lib, perl, qt4, exiv2, lcms, saneBackends, libgphoto2
+, libspectre, popplerQt4, djvulibre, chmlib, shared_mime_info, libXxf86vm
+, kdelibs, automoc4, strigi, qimageblitz, soprano, qca2, ebook_tools }:
+
+kdePackage {
+  pn = "kdegraphics";
+  v = "4.5.0";
+
+  buildInputs = [ cmake perl qt4 exiv2 lcms saneBackends libgphoto2 libspectre
+    (popplerQt4.override { inherit qt4; }) chmlib shared_mime_info libXxf86vm
+    kdelibs automoc4 strigi qimageblitz soprano qca2 djvulibre ebook_tools ];
+
+  meta = {
+    description = "KDE graphics utilities";
+    longDescription = ''
+      Contains various graphics utilities such as Gwenview image viewer and
+      Okular  document reader.
+    '';
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.5/kde-package/default.nix b/pkgs/desktops/kde-4.5/kde-package/default.nix
index 6f41ed7daa6..9e1ef5006fd 100644
--- a/pkgs/desktops/kde-4.5/kde-package/default.nix
+++ b/pkgs/desktops/kde-4.5/kde-package/default.nix
@@ -1,12 +1,16 @@
 { stdenv, fetchurl }:
 
-a@{ pn, v, stable ? true, sha256, subdir ? null, ... }:
+let
+  manifest = import ./manifest.nix;
+in
+
+a@{ pn, v, stable ? true, subdir ? null, ... }:
 stdenv.mkDerivation ({
   name = "${pn}-${v}";
   src = fetchurl {
     url = "mirror://kde/" + (if stable then "" else "un") + "stable/" +
       (if subdir == null then "${v}/src" else subdir) + "/${pn}-${v}.tar.bz2";
-    inherit sha256;
+    sha256 = builtins.getAttr "${pn}-${v}.tar.bz2" manifest;
   };
   meta = {
     maintainers = with stdenv.lib.maintainers; [ sander urkud ];
@@ -14,4 +18,4 @@ stdenv.mkDerivation ({
     inherit stable;
     homepage = http://www.kde.org;
   } // ( if a ? meta then a.meta else { } );
-} // (removeAttrs a [ "meta" "pn" "v" "stable" "sha256" "subdir" ]))
+} // (removeAttrs a [ "meta" "pn" "v" "stable" "subdir" ]))
diff --git a/pkgs/desktops/kde-4.5/kde-package/manifest.nix b/pkgs/desktops/kde-4.5/kde-package/manifest.nix
new file mode 100644
index 00000000000..d33a365a19c
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/kde-package/manifest.nix
@@ -0,0 +1,95 @@
+builtins.listToAttrs
+[
+{
+  name = "kdepim-runtime-4.4.92.tar.bz2";
+  value = "1gshcnra3fcbj6ww7rfaw6ny1x9mf4l7pxwlrppv2slgwg141msy";
+}
+{
+  name = "kdepim-4.4.92.tar.bz2";
+  value = "0mhpifynnypg81nhwfvr28hbpr7c6w488afasprqhxbs4q57lin6";
+}
+{
+  name = "kdegraphics-4.5.0.tar.bz2";
+  value = "13ms1z26sb2pfadhagkykgnw0p7inrn36p4s9qr04qisy2b2vd6l";
+}
+{
+  name = "kdebase-workspace-4.5.0.tar.bz2";
+  value = "0wwg2rcwgkwi0k1a7v6h0ibvzk64mb2fvr02zbdkc94rh4pc25zw";
+}
+{
+  name = "oxygen-icons-4.5.0.tar.bz2";
+  value = "11wlrxnral4q5wi46p1di1cff4vr5da35a8dv2xx3ag6lnhqvjqi";
+}
+{
+  name = "kdeplasma-addons-4.5.0.tar.bz2";
+  value = "1v0zcl65sqlz6ggin3mb6pr3gf2v15z8lyh0p4b95rslrzw6iih6";
+}
+{
+  name = "kdepimlibs-4.5.0.tar.bz2";
+  value = "0n3wmc2c4jcxbi81i9jmw23b5ms43gia58qpr835im874641f54m";
+}
+{
+  name = "kdegames-4.5.0.tar.bz2";
+  value = "1ax2qwmkpnc01prlkw5yx5hiqcv725b7yf6czr5gkjysjsqi3aqk";
+}
+{
+  name = "kdewebdev-4.5.0.tar.bz2";
+  value = "0frl9kfw549lfxrjbslxny12r4cg67ggnyclhb0rqma7i07g8gd8";
+}
+{
+  name = "kdelibs-4.5.0.tar.bz2";
+  value = "0d3iml2v1vp1y6i5vpqv77nbdlw6qb8j6c88yi744ba4zvcirzrx";
+}
+{
+  name = "kdebase-4.5.0.tar.bz2";
+  value = "1znmmx84hx3a31lhr55j3h91p9r6fv1c4q9hbgv4xwaijlkxk6dw";
+}
+{
+  name = "kdeadmin-4.5.0.tar.bz2";
+  value = "1zwc8x1r7wg1qddw01b5zr3npmzibag17csiv4a1w6fsnvnny8k1";
+}
+{
+  name = "kdebase-runtime-4.5.0.tar.bz2";
+  value = "0cis9as2szqaxi0bhhw63sy6s8b994j8ffx5wsc84w4a8y3ld1s0";
+}
+{
+  name = "kdeedu-4.5.0.tar.bz2";
+  value = "15c6k1274ckhs4liqyxna5xka2gn4h9qfdvbh9ys85x08srb3051";
+}
+{
+  name = "kdebindings-4.5.0.tar.bz2";
+  value = "0x8c98gbp2rm3dckzw3l0jh2ch5g9sb2prmilwzl8d5psyhx39n6";
+}
+{
+  name = "kdemultimedia-4.5.0.tar.bz2";
+  value = "0b00d9kgy7jcfrxivw4gjvqzp5gd145cd4zbhbnjjdg5l9pvc721";
+}
+{
+  name = "kdetoys-4.5.0.tar.bz2";
+  value = "0lg12cjpk2x2qsk998jbsn0p7a26ans9zgf5966k4wmjcgx1zhqq";
+}
+{
+  name = "kdenetwork-4.5.0.tar.bz2";
+  value = "0xc8309z5c7k3hg38waavrs2hlpv8mf20paj9nadr8q3zs0q6nyp";
+}
+{
+  name = "kdesdk-4.5.0.tar.bz2";
+  value = "09w0n1v9qhxf7ijickw48s19rkaim36vnrxv28lrhj2x3s3s6n1s";
+}
+{
+  name = "kdeartwork-4.5.0.tar.bz2";
+  value = "15sdhrq6hx4i0wywilvvl3h8j5wfa7lgvr8siqxlipy94pfwrbwr";
+}
+{
+  name = "kdeutils-4.5.0.tar.bz2";
+  value = "1x4dwc193gsfcnryhkv2v3xafjr1a87ls0zfi56i1w2aj38b36l7";
+}
+{
+  name = "kdeaccessibility-4.5.0.tar.bz2";
+  value = "0p08xn3rdqf4a9mj4wrvnjj64mbxas3pns772a1sdmpxkyjlwwcx";
+}
+{
+  name = "polkit-qt-1-0.96.1.tar.bz2";
+  value = "1ng5bi1gmr5lg49c5kyqyjzbjhs4w90c2zlnfcyviv9p3wzfgzbr";
+}
+]
diff --git a/pkgs/desktops/kde-4.5/libs/default.nix b/pkgs/desktops/kde-4.5/libs/default.nix
index 71daed339cd..b7bb4573a94 100644
--- a/pkgs/desktops/kde-4.5/libs/default.nix
+++ b/pkgs/desktops/kde-4.5/libs/default.nix
@@ -8,7 +8,6 @@
 kdePackage {
   pn = "kdelibs";
   v = "4.5.0";
-  sha256 = "0d3iml2v1vp1y6i5vpqv77nbdlw6qb8j6c88yi744ba4zvcirzrx";
 
   buildInputs = [
     cmake perl qt4 xz flex bison bzip2 pcre fam libxml2 libxslt
@@ -19,6 +18,8 @@ kdePackage {
 
   propagatedBuildInputs = [ shared_desktop_ontologies gcc.libc ];
 
+  patches = [ ./polkit-install.patch ];
+
   # cmake fails to find acl.h because of C++-style comment
   cmakeFlags = [
     "-DHAVE_ACL_LIBACL_H=ON" "-DHAVE_SYS_ACL_H=ON"
diff --git a/pkgs/desktops/kde-4.5/libs/polkit-install.patch b/pkgs/desktops/kde-4.5/libs/polkit-install.patch
new file mode 100644
index 00000000000..68bf5548796
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/libs/polkit-install.patch
@@ -0,0 +1,11 @@
+Author: Yury Kudryashov
+Reason: other KDE modules try to install polkit action files into
+$kdelibs/share/polkit-1/actions
+--- a/cmake/modules/FindPolkitQt-1.cmake.old	2010-08-12 16:13:45.000000000 +0400
++++ b/cmake/modules/FindPolkitQt-1.cmake	2010-08-12 16:13:56.000000000 +0400
+@@ -101,4 +101,4 @@
+     endif (NOT PC_POLKITQT-1_PREFIX STREQUAL CMAKE_INSTALL_PREFIX)
+ endif (POLKITQT-1_FOUND)
+ 
+-set(POLKITQT-1_POLICY_FILES_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/share/polkit-1/actions)
++set(POLKITQT-1_POLICY_FILES_INSTALL_DIR share/polkit-1/actions)
diff --git a/pkgs/desktops/kde-4.5/libs/python-site-packages-install-dir.diff b/pkgs/desktops/kde-4.5/libs/python-site-packages-install-dir.diff
deleted file mode 100644
index 05b280838c4..00000000000
--- a/pkgs/desktops/kde-4.5/libs/python-site-packages-install-dir.diff
+++ /dev/null
@@ -1,13 +0,0 @@
-Source: upstream r1153602
-Index: a/cmake/modules/SIPMacros.cmake
-===================================================================
---- a/cmake/modules/SIPMacros.cmake	(revision 1153601)
-+++ b/cmake/modules/SIPMacros.cmake	(revision 1153602)
-@@ -119,6 +119,6 @@
-     TARGET_LINK_LIBRARIES(${_logical_name} ${EXTRA_LINK_LIBRARIES})
-     SET_TARGET_PROPERTIES(${_logical_name} PROPERTIES PREFIX "" OUTPUT_NAME ${_child_module_name})
- 
--    INSTALL(TARGETS ${_logical_name} DESTINATION "${PYTHON_SITE_PACKAGES_DIR}/${_parent_module_path}")
-+    INSTALL(TARGETS ${_logical_name} DESTINATION "${PYTHON_SITE_PACKAGES_INSTALL_DIR}/${_parent_module_path}")
- 
- ENDMACRO(ADD_SIP_PYTHON_MODULE)
diff --git a/pkgs/desktops/kde-4.5/multimedia/default.nix b/pkgs/desktops/kde-4.5/multimedia/default.nix
new file mode 100644
index 00000000000..9a020970c5d
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/multimedia/default.nix
@@ -0,0 +1,18 @@
+{ kdePackage, cmake, perl, qt4, alsaLib, libvorbis, xineLib, taglib, flac,
+cdparanoia, lame , kdelibs, automoc4, ffmpeg}:
+
+kdePackage {
+  pn = "kdemultimedia";
+  v = "4.5.0";
+
+  buildInputs = [ cmake perl qt4 alsaLib libvorbis xineLib flac taglib
+    cdparanoia lame kdelibs automoc4 ffmpeg ];
+
+  meta = {
+    description = "KDE Multimedia";
+    longDescription = ''
+      Contains various Multimedia utilties for KDE such as a movie player and sound volume mixer.
+    '';
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.5/network/default.nix b/pkgs/desktops/kde-4.5/network/default.nix
new file mode 100644
index 00000000000..e7e4a8cd561
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/network/default.nix
@@ -0,0 +1,34 @@
+{ kdePackage, cmake, qt4, perl, speex, gmp, libxml2, libxslt, sqlite, alsaLib, libidn
+, libvncserver, libmsn, giflib, gpgme, boost, libv4l, libotr
+, libXi, libXtst, libXdamage, libXxf86vm, libktorrent, kdebase
+, kdebase_workspace
+, kdelibs, kdepimlibs, automoc4, qca2, soprano, qimageblitz, strigi}:
+
+kdePackage {
+  pn = "kdenetwork";
+  v = "4.5.0";
+
+  buildInputs = [ cmake qt4 perl speex gmp libxml2 libxslt sqlite alsaLib libidn
+    libvncserver libmsn giflib gpgme boost libv4l libotr libXi libXtst
+    libXdamage libXxf86vm kdelibs kdepimlibs automoc4 qca2 soprano
+    qimageblitz strigi libktorrent kdebase kdebase_workspace ];
+
+  patches = [ ./log-feature.diff ];
+#TODO
+# * telepathy-qt4 (0.18 or higher)  <http://telepathy.freedesktop.org>
+# * KWebKitPart  <https://svn.kde.org/home/kde/trunk/extragear/base/kwebkitpart>
+# * libortp (0.13 or higher)  <http://www.linphone.org/index.php/eng/code_review/ortp>
+# * XMMS  <http://www.xmms.org>
+# * mediastreamer (2.3.0 or higher)  <http://www.linphone.org/index.php/eng/code_review/mediastreamer2>
+# * libmeanwhile  <http://meanwhile.sf.net>
+# * libgadu (1.8.0 or higher)  <http://toxygen.net/libgadu/>
+
+# Let cmake find libktorrent. Waiting for upstream fix in 4.5.1
+  KDEDIRS="${libktorrent}";
+
+  meta = {
+    description = "KDE network utilities";
+    longDescription = "Various network utilities for KDE such as a messenger client and network configuration interface";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.5/network/log-feature.diff b/pkgs/desktops/kde-4.5/network/log-feature.diff
new file mode 100644
index 00000000000..6770dd399e3
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/network/log-feature.diff
@@ -0,0 +1,60 @@
+--- a/kget/CMakeLists.txt	2010-08-16 19:08:36.000000000 +0400
++++ b/kget/CMakeLists.txt	2010-08-16 22:04:24.000000000 +0400
+@@ -53,21 +53,20 @@
+ add_subdirectory(desktop)
+ add_subdirectory(plasma)
+ 
+-# find kworkspace library to allow the shutdown after downloads completed option
+-find_library(KDE4_KWORKSPACE_LIBRARY NAMES kworkspace PATHS ${KDE4_LIB_INSTALL_DIR} NO_DEFAULT_PATH )
+-if(KDE4_KWORKSPACE_LIBRARY)
+-    set(KDE4_KWORKSPACE_LIBS ${kworkspace_LIB_DEPENDS} ${KDE4_KWORKSPACE_LIBRARY})
++macro_optional_find_package(KDE4Workspace)
++macro_log_feature(KDE4WORKSPACE_FOUND "KDE4Workspace" "KDE4 workspace libraries, part of kdebase-workspace" "http://www.kde.org" FALSE "" "Allows 'shutdown after downloads completed' in kget")
++if(KDE4WORKSPACE_FOUND)
+     add_definitions(-DHAVE_KWORKSPACE)
+-    set(KWORKSPACE_FOUND true)
+-endif(KDE4_KWORKSPACE_LIBRARY)
++	include_directories(${KDE4WORKSPACE_INCLUDE_DIR})
++endif(KDE4WORKSPACE_FOUND)
+ 
+ # find libkonq to allow actions and open with options in the context menu of a transfer
+-find_library(KDE4_KONQUEROR_LIBRARY NAMES konq PATHS ${KDE4_LIB_INSTALL_DIR} NO_DEFAULT_PATH )
+-if(KDE4_KONQUEROR_LIBRARY)
+-    set(KDE4_KONQUEROR_LIBS ${konq_LIB_DEPENDS} ${KDE4_KONQUEROR_LIBRARY})
++macro_optional_find_package(LibKonq)
++macro_log_feature(LIBKONQ_FOUND "libkonq" "KDE4 Konqueror library" "http://www.kde.org" FALSE "" "Needed to build actions and open with options in the context menu of a transfer")
++if(LIBKONQ_FOUND)
+     add_definitions(-DHAVE_KONQUEROR)
+-    set(KONQUEROR_FOUND true)
+-endif(KDE4_KONQUEROR_LIBRARY)
++	include_directories(${LIBKONQ_INCLUDE_DIR})
++endif(LIBKONQ_FOUND)
+ 
+ 
+ include_directories(
+@@ -142,9 +141,9 @@
+ 
+ target_link_libraries(kgetcore ${KDE4_KIO_LIBS})
+ 
+-if (KWORKSPACE_FOUND)
+-    target_link_libraries(kgetcore ${KDE4_KWORKSPACE_LIBS})
+-endif (KWORKSPACE_FOUND)
++if (KDE4WORKSPACE_FOUND)
++    target_link_libraries(kgetcore ${KDE4WORKSPACE_KWORKSPACE_LIBS})
++endif (KDE4WORKSPACE_FOUND)
+ 
+ if (HAVE_NEPOMUK)
+   target_link_libraries(kgetcore ${SOPRANO_LIBRARIES} ${NEPOMUK_LIBRARIES})
+@@ -294,9 +293,9 @@
+   target_link_libraries(kget ${SOPRANO_LIBRARIES} ${NEPOMUK_LIBRARIES})
+ endif (HAVE_NEPOMUK)
+ 
+-if (KONQUEROR_FOUND)
+-  target_link_libraries(kget ${KDE4_KONQUEROR_LIBS})
+-endif (KONQUEROR_FOUND)
++if (LIBKONQ_FOUND)
++  target_link_libraries(kget ${LIBKONQ_LIBRARY})
++endif (LIBKONQ_FOUND)
+ 
+ if (QGPGME_FOUND)
+   target_link_libraries(kget ${QGPGME_LIBRARIES})
diff --git a/pkgs/desktops/kde-4.5/pim-runtime/default.nix b/pkgs/desktops/kde-4.5/pim-runtime/default.nix
new file mode 100644
index 00000000000..2d1787f62a7
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/pim-runtime/default.nix
@@ -0,0 +1,14 @@
+{ kdePackage, cmake, kdelibs, qt4, kdepimlibs, akonadi, pkgconfig, boost, shared_mime_info, libxml2, shared_desktop_ontologies, soprano, strigi, automoc4, libxslt }:
+
+kdePackage rec {
+	pn = "kdepim-runtime";
+	v = "4.4.92";
+	stable = false;
+	subdir = "kdepim/${v}/src";
+
+	buildInputs = [ automoc4 cmake kdelibs qt4 kdepimlibs akonadi pkgconfig boost shared_mime_info shared_desktop_ontologies libxml2 soprano strigi libxslt ];
+
+  meta = {
+    description = "Runtime files for KDE PIM: akonadi agents etc.";
+  };
+}
diff --git a/pkgs/desktops/kde-4.5/pimlibs/default.nix b/pkgs/desktops/kde-4.5/pimlibs/default.nix
index 8452161b66c..b548ad66ecd 100644
--- a/pkgs/desktops/kde-4.5/pimlibs/default.nix
+++ b/pkgs/desktops/kde-4.5/pimlibs/default.nix
@@ -4,7 +4,6 @@
 kdePackage {
   pn = "kdepimlibs";
   v = "4.5.0";
-  sha256 = "0n3wmc2c4jcxbi81i9jmw23b5ms43gia58qpr835im874641f54m";
 
   buildInputs = [ cmake qt4 perl boost cyrus_sasl gpgme libical openldap
     shared_mime_info kdelibs automoc4 akonadi soprano ];
diff --git a/pkgs/desktops/kde-4.5/plasma-addons/default.nix b/pkgs/desktops/kde-4.5/plasma-addons/default.nix
new file mode 100644
index 00000000000..39f67fdaa8e
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/plasma-addons/default.nix
@@ -0,0 +1,18 @@
+{ kdePackage, cmake, qt4, perl, automoc4, kdelibs, soprano, kdeedu
+, boost, eigen, kdebase_workspace, attica, python, qca2, qimageblitz
+, shared_mime_info, kdepimlibs, kdegraphics, libqalculate, libXtst }:
+# , qwt, scim, kdeedu 
+
+kdePackage {
+  pn = "kdeplasma-addons";
+  v = "4.5.0";
+
+  buildInputs = [ cmake qt4 perl automoc4 kdelibs boost eigen kdebase_workspace
+    attica python qca2 qimageblitz shared_mime_info kdepimlibs kdegraphics
+    libqalculate soprano libXtst kdeedu ];
+
+  meta = {
+    description = "KDE Plasma Addons";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.5/sdk/default.nix b/pkgs/desktops/kde-4.5/sdk/default.nix
new file mode 100644
index 00000000000..b03a1d88595
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/sdk/default.nix
@@ -0,0 +1,21 @@
+{ kdePackage, binutils, cmake, qt4, perl, libxml2, libxslt, boost, subversion, apr,
+  aprutil , shared_mime_info, hunspell , kdelibs, kdepimlibs, automoc4,
+  kdebindings, strigi, kdebase, libtool, antlr}:
+
+kdePackage {
+  pn = "kdesdk";
+  v = "4.5.0";
+
+  buildInputs = [ cmake qt4 perl libxml2 libxslt boost subversion aprutil apr
+    shared_mime_info kdelibs kdepimlibs automoc4 strigi hunspell kdebindings
+    kdebase libtool binutils antlr ];
+
+  patches = [ ./find-svn.patch ];
+
+#cmakeFlags = "-DDISABLE_ALL_OPTIONAL_SUBDIRECTORIES=ON -DBUILD_kioslave=ON";
+  meta = {
+    description = "KDE SDK";
+    longDescription = "Contains various development utilities such as the Umbrello UML modeler and Cerivisia CVS front-end";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.5/sdk/find-svn.patch b/pkgs/desktops/kde-4.5/sdk/find-svn.patch
new file mode 100644
index 00000000000..61cb49b308f
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/sdk/find-svn.patch
@@ -0,0 +1,59 @@
+diff --git a/cmake/modules/FindSVN.cmake b/cmake/modules/FindSVN.cmake
+index 59bcb96..2eac05d 100644
+--- a/cmake/modules/FindSVN.cmake
++++ b/cmake/modules/FindSVN.cmake
+@@ -17,6 +17,9 @@ FIND_PROGRAM(SVNCONFIG_EXECUTABLE NAMES svn-config PATHS
+ FIND_PROGRAM(APRCONFIG_EXECUTABLE NAMES apr-1-config apr-config PATHS
+    /usr/local/apr/bin
+ )
++find_program(APUCONFIG_EXECUTABLE NAMES apu-1-config apu-config PATHS
++   /usr/local/apr/bin
++)
+ 
+ if(SVNCONFIG_EXECUTABLE)
+ 
+@@ -56,15 +59,9 @@ else(SVNCONFIG_EXECUTABLE)
+       set(SVN_INCLUDES ${SVN_INCLUDES} ${_INCLUDES})
+    else(APRCONFIG_EXECUTABLE)
+       FIND_PATH(_INCLUDES apr_pools.h
+-         ${SVN_INCLUDES}/apr-0/
+-         ${SVN_INCLUDES}/apr-1/
+-         ${SVN_INCLUDES}/apr-1.0/
+-         /usr/include/apr-0/
+-         /usr/include/apr-1/
+-         /usr/include/apr-1.0/
+-         /usr/local/include/apr-0/
+-         /usr/local/include/apr-1/
+-         /usr/local/include/apr-1.0/
++         HINTS ${SVN_INCLUDES}
++         PATHS /usr /usr/local
++         SUFFIXES apr-0 apr-1 apr-1.0
+       )
+       if(_INCLUDES)
+          set(SVN_INCLUDES ${SVN_INCLUDES} ${_INCLUDES})
+@@ -72,6 +69,25 @@ else(SVNCONFIG_EXECUTABLE)
+          set(SVN_FOUND FALSE) # no apr == can't compile!
+       endif(_INCLUDES)
+    endif(APRCONFIG_EXECUTABLE)
++
++   # Use apu-config if it exists
++   if(APUCONFIG_EXECUTABLE)
++      EXEC_PROGRAM(${APUCONFIG_EXECUTABLE} ARGS --includes RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _INCLUDES)
++      string(REPLACE "-I" "" _INCLUDES ${_INCLUDES})
++      string(REPLACE " " ";" _INCLUDES ${_INCLUDES})
++      set(SVN_INCLUDES ${SVN_INCLUDES} ${_INCLUDES})
++   else(APUCONFIG_EXECUTABLE)
++      FIND_PATH(_INCLUDES apu.h
++         HINTS ${SVN_INCLUDES}
++         PATHS /usr /usr/local
++         SUFFIXES apr-0 apr-1 apr-1.0
++      )
++      if(_INCLUDES)
++         set(SVN_INCLUDES ${SVN_INCLUDES} ${_INCLUDES})
++      else(_INCLUDES)
++         set(SVN_FOUND FALSE) # no apr == can't compile!
++      endif(_INCLUDES)
++   endif(APUCONFIG_EXECUTABLE)
+    FIND_LIBRARY(SVN_LIBRARIES NAMES svn_client-1)
+    if(SVN_LIBRARIES)
+       FIND_LIBRARY(_LIBRARIES NAMES svn_subr-1)
diff --git a/pkgs/desktops/kde-4.5/support/akonadi/default.nix b/pkgs/desktops/kde-4.5/support/akonadi/default.nix
index 5ef0fcb183c..0d6e4dc3e65 100644
--- a/pkgs/desktops/kde-4.5/support/akonadi/default.nix
+++ b/pkgs/desktops/kde-4.5/support/akonadi/default.nix
@@ -7,6 +7,7 @@ stdenv.mkDerivation rec {
     sha256 = "199fh5yqygr0xdwcnjqqms8vskigbzvwb3071r979606rrsnpnl5";
   };
   buildInputs = [ cmake qt4 shared_mime_info libxslt boost mysql automoc4 soprano ];
+  patches = [ ./fix-broken-datadir-parameter.patch ];
   meta = with stdenv.lib; {
     description = "KDE PIM Storage Service";
     license = "LGPL";
diff --git a/pkgs/desktops/kde-4.5/support/akonadi/fix-broken-datadir-parameter.patch b/pkgs/desktops/kde-4.5/support/akonadi/fix-broken-datadir-parameter.patch
new file mode 100644
index 00000000000..fa33329d4b0
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/support/akonadi/fix-broken-datadir-parameter.patch
@@ -0,0 +1,17 @@
+Fix broken datadir parameter.
+
+--- akonadi-1.3.85/server/src/storage/dbconfigmysql.cpp	2010-06-09 03:41:30.000000000 -0430
++++ akonadi-local-1.3.85/server/src/storage/dbconfigmysql.cpp	2010-08-11 00:21:20.547181479 -0430
+@@ -250,11 +250,10 @@
+   // synthesize the mysqld command
+   QStringList arguments;
+   arguments << QString::fromLatin1( "--defaults-file=%1/mysql.conf" ).arg( akDir );
++  arguments << QString::fromLatin1( "--datadir=%1/" ).arg( dataDir );
+ #ifndef Q_WS_WIN
+-  arguments << QString::fromLatin1( "--datadir" ) << QString::fromLatin1( "%1/" ).arg( dataDir );
+   arguments << QString::fromLatin1( "--socket=%1/mysql.socket" ).arg( miscDir );
+ #else
+-  arguments << QString::fromLatin1( "--datadir=%1/" ).arg( dataDir );
+   arguments << QString::fromLatin1( "--shared-memory" );
+ #endif
+ 
diff --git a/pkgs/desktops/kde-4.5/support/eigen/default.nix b/pkgs/desktops/kde-4.5/support/eigen/default.nix
index 30a47d1d041..e72de6c1b25 100644
--- a/pkgs/desktops/kde-4.5/support/eigen/default.nix
+++ b/pkgs/desktops/kde-4.5/support/eigen/default.nix
@@ -1,20 +1,20 @@
-{stdenv, fetchurl, lib, cmake}:
+{stdenv, fetchurl, cmake}:
 
 let
-  v = "2.0.14";
+  v = "2.0.15";
 in
 stdenv.mkDerivation {
   name = "eigen-${v}";
   src = fetchurl {
     url = "http://bitbucket.org/eigen/eigen/get/${v}.tar.bz2";
     name = "eigen-${v}.tar.bz2";
-    sha256 = "01xkdqs6hqkwcq5yzpdz79da0i512s818pbg8fl9w3m2vvndzs6p";
+    sha256 = "1a00hqyig4rc7nkz97xv23q7k0vdkzvgd0jkayk61fn9aqcrky79";
   };
   buildInputs = [ cmake ];
   meta = {
     description = "C++ template library for linear algebra: vectors, matrices, and related algorithms";
     license = "LGPL";
     homepage = http://eigen.tuxfamily.org ;
-    maintainers = [ lib.maintainers.sander ];
+    maintainers = with stdenv.lib.maintainers; [ sander urkud ];
   };
 }
diff --git a/pkgs/desktops/kde-4.5/support/oxygen-icons/default.nix b/pkgs/desktops/kde-4.5/support/oxygen-icons/default.nix
index b701e61ba03..ffd7fb819e8 100644
--- a/pkgs/desktops/kde-4.5/support/oxygen-icons/default.nix
+++ b/pkgs/desktops/kde-4.5/support/oxygen-icons/default.nix
@@ -3,7 +3,6 @@
 kdePackage {
   pn = "oxygen-icons";
   v = "4.5.0";
-  sha256 = "11wlrxnral4q5wi46p1di1cff4vr5da35a8dv2xx3ag6lnhqvjqi";
 
   outputHashAlgo = "sha256";
   outputHashMode = "recursive";
diff --git a/pkgs/desktops/kde-4.5/support/polkit-qt-1/default.nix b/pkgs/desktops/kde-4.5/support/polkit-qt-1/default.nix
index 03543a6d7e2..6d0de598313 100644
--- a/pkgs/desktops/kde-4.5/support/polkit-qt-1/default.nix
+++ b/pkgs/desktops/kde-4.5/support/polkit-qt-1/default.nix
@@ -4,7 +4,6 @@ kdePackage {
   pn = "polkit-qt-1";
   v = "0.96.1";
   subdir = "apps/KDE4.x/admin";
-  sha256 = "1ng5bi1gmr5lg49c5kyqyjzbjhs4w90c2zlnfcyviv9p3wzfgzbr";
 
   buildInputs = [ cmake qt4 automoc4 ];
   propagatedBuildInputs = [ polkit glib ];
diff --git a/pkgs/desktops/kde-4.5/support/qimageblitz/default.nix b/pkgs/desktops/kde-4.5/support/qimageblitz/default.nix
new file mode 100644
index 00000000000..bb3d0220b43
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/support/qimageblitz/default.nix
@@ -0,0 +1,21 @@
+{stdenv, fetchurl, lib, cmake, qt4}:
+
+let
+  pn = "qimageblitz";
+  v = "0.0.4";
+in
+
+stdenv.mkDerivation {
+  name = "${pn}-${v}";
+  src = fetchurl {
+    url = "mirror://sf/${pn}/${pn}-${v}.tar.bz2";
+    sha256 = "0pnaf3qi7rgkxzs2mssmslb3f9ya4cyx09wzwlis3ppyvf72j0p9";
+  };
+  buildInputs = [ cmake qt4 ];
+
+  meta = {
+    description = "Graphical effect and filter library for KDE4";
+    license = "BSD";
+    homepage = "http://${pn}.sourceforge.net";
+  };
+}
diff --git a/pkgs/desktops/kde-4.5/support/strigi/default.nix b/pkgs/desktops/kde-4.5/support/strigi/default.nix
index 93778e7c984..10847482df3 100644
--- a/pkgs/desktops/kde-4.5/support/strigi/default.nix
+++ b/pkgs/desktops/kde-4.5/support/strigi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, lib, cmake, qt4, perl, bzip2, libxml2, expat, exiv2
+{ stdenv, fetchurl, cmake, qt4, perl, bzip2, libxml2, expat, exiv2
 , cluceneCore
 }:
 
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
     homepage = http://strigi.sourceforge.net;
     description = "A very fast and efficient crawler to index data on your harddrive";
     license = "LGPL";
-    maintainers = [ lib.maintainers.sander ];
+    maintainers = with stdenv.lib.maintainers; [ sander urkud ];
+    inherit (qt4.meta) platforms;
   };
 }
diff --git a/pkgs/desktops/kde-4.5/toys/default.nix b/pkgs/desktops/kde-4.5/toys/default.nix
new file mode 100644
index 00000000000..17986600536
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/toys/default.nix
@@ -0,0 +1,12 @@
+{kdePackage, cmake, qt4, perl, kdelibs, kdebase_workspace, automoc4}:
+
+kdePackage {
+  pn = "kdetoys";
+  v = "4.5.0";
+
+  buildInputs = [ cmake qt4 perl kdelibs kdebase_workspace automoc4 ];
+  meta = {
+    description = "KDE Toys";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.5/utils/cmake-module-path.diff b/pkgs/desktops/kde-4.5/utils/cmake-module-path.diff
new file mode 100644
index 00000000000..4564d0318d4
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/utils/cmake-module-path.diff
@@ -0,0 +1,10 @@
+--- a/CMakeLists.txt	2010-04-15 12:58:25.000000000 +0400
++++ b/CMakeLists.txt.new	2010-08-14 03:30:16.000000000 +0400
+@@ -1,6 +1,6 @@
+ project( kdeutils )
+ 
+-set( CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules )
++set( CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH} )
+ 
+ # search packages used by KDE
+ find_package( KDE4 REQUIRED )
diff --git a/pkgs/desktops/kde-4.5/utils/default.nix b/pkgs/desktops/kde-4.5/utils/default.nix
new file mode 100644
index 00000000000..fb038179daf
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/utils/default.nix
@@ -0,0 +1,28 @@
+{ kdePackage, cmake, qt4, perl, gmp, python, libzip, libarchive, xz
+, sip, pyqt4, pycups, rhpl, system_config_printer, qjson, shared_mime_info
+, kdebase_workspace
+, kdelibs, kdepimlibs, kdebase, kdebindings, automoc4, qimageblitz, qca2}:
+
+kdePackage {
+  pn = "kdeutils";
+  v = "4.5.0";
+  
+  postPatch = ''
+    cp -vn ${qjson}/share/apps/cmake/modules/FindQJSON.cmake cmake/modules
+    sed -e "s@/usr\(/share/system-config-printer\)@${system_config_printer}\1@" -i \
+      printer-applet/cmake-modules/FindSystemConfigPrinter.py \
+      printer-applet/printer-applet.py
+    sed -i -e "s|import cupshelpers.ppds, cupshelpers.cupshelpers|import ppds, cupshelpers|" printer-applet/cmake-modules/FindSystemConfigPrinter.py
+    '';
+
+  buildInputs = [ cmake qt4 perl gmp python libzip libarchive xz sip pyqt4
+    pycups rhpl system_config_printer kdelibs kdepimlibs kdebase kdebindings
+    automoc4 qimageblitz qca2 qjson shared_mime_info kdebase_workspace ];
+
+  patches = [ ./log-feature.diff ];
+                  
+  meta = {
+    description = "KDE Utilities";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.5/utils/log-feature.diff b/pkgs/desktops/kde-4.5/utils/log-feature.diff
new file mode 100644
index 00000000000..050f06fd397
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/utils/log-feature.diff
@@ -0,0 +1,10 @@
+--- kdeutils-4.5.0.orig/CMakeLists.txt.orig	2010-08-16 18:21:33.000000000 +0400
++++ kdeutils-4.5.0/CMakeLists.txt	2010-08-16 18:27:05.000000000 +0400
+@@ -36,6 +36,7 @@
+ endif( GMP_FOUND )
+ if( UNIX )
+     find_package( KDE4Workspace )
++    macro_log_feature( KDE4Workspace_FOUND "KDE4Workspace" "KDE workscpace library, part of kdebase-workspace" "http://www.kde.org" FALSE "" "Required to build kremotecontrol." )
+     if( KDE4Workspace_FOUND AND QT_QTXMLPATTERNS_FOUND )
+         macro_optional_add_subdirectory( kremotecontrol )
+     endif( KDE4Workspace_FOUND AND QT_QTXMLPATTERNS_FOUND )
diff --git a/pkgs/desktops/kde-4.5/webdev/default.nix b/pkgs/desktops/kde-4.5/webdev/default.nix
new file mode 100644
index 00000000000..24d1f49bd6c
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/webdev/default.nix
@@ -0,0 +1,14 @@
+{ kdePackage, cmake, qt4, perl, libxml2, libxslt, boost
+, kdelibs, kdepimlibs, automoc4, ruby, htmlTidy, zlib }:
+
+kdePackage {
+  pn = "kdewebdev";
+  v = "4.5.0";
+
+  buildInputs = [ cmake qt4 perl libxml2 libxslt boost kdelibs kdepimlibs
+    automoc4 htmlTidy ruby zlib ];
+  meta = {
+    description = "KDE Web development utilities";
+    license = "GPL";
+  };
+}