summary refs log tree commit diff
diff options
context:
space:
mode:
authorYury G. Kudryashov <urkud.urkud@gmail.com>2007-11-15 00:08:58 +0000
committerYury G. Kudryashov <urkud.urkud@gmail.com>2007-11-15 00:08:58 +0000
commit5e0e475c7a3948f5e2b1fb9af6e31728de817012 (patch)
tree43ef2b277e3238b040f61bba9da77099c647abf8
parent1060379a4d46b1a24cb20a2c41b66250619b004b (diff)
downloadnixpkgs-5e0e475c7a3948f5e2b1fb9af6e31728de817012.tar
nixpkgs-5e0e475c7a3948f5e2b1fb9af6e31728de817012.tar.gz
nixpkgs-5e0e475c7a3948f5e2b1fb9af6e31728de817012.tar.bz2
nixpkgs-5e0e475c7a3948f5e2b1fb9af6e31728de817012.tar.lz
nixpkgs-5e0e475c7a3948f5e2b1fb9af6e31728de817012.tar.xz
nixpkgs-5e0e475c7a3948f5e2b1fb9af6e31728de817012.tar.zst
nixpkgs-5e0e475c7a3948f5e2b1fb9af6e31728de817012.zip
Added new kde-4 staff
svn path=/nixpkgs/trunk/; revision=9684
-rwxr-xr-xpkgs/desktops/kde-4/base/builder.sh12
-rw-r--r--pkgs/desktops/kde-4/base/default.nix14
-rw-r--r--pkgs/desktops/kde-4/decibel/default.nix11
-rw-r--r--pkgs/desktops/kde-4/default.nix35
-rw-r--r--pkgs/desktops/kde-4/edu/default.nix20
-rw-r--r--pkgs/desktops/kde-4/edu/myCmakeFiles/CheckBoostAndPythonCompatible.cmake38
-rw-r--r--pkgs/desktops/kde-4/edu/myCmakeFiles/FindBoostPython.cmake90
-rw-r--r--pkgs/desktops/kde-4/edu/myCmakeFiles/FindLibfacile.cmake45
-rw-r--r--pkgs/desktops/kde-4/edu/myCmakeFiles/PythonLibsUtils.cmake46
-rw-r--r--pkgs/desktops/kde-4/extragear/default.nix14
-rw-r--r--pkgs/desktops/kde-4/games/default.nix12
-rw-r--r--pkgs/desktops/kde-4/graphics/default.nix13
-rw-r--r--pkgs/desktops/kde-4/libs/FindIlmBase.cmake74
-rw-r--r--pkgs/desktops/kde-4/libs/FindOpenEXR.cmake68
-rw-r--r--pkgs/desktops/kde-4/libs/default.nix27
-rwxr-xr-xpkgs/desktops/kde-4/libs/setup.sh5
-rw-r--r--pkgs/desktops/kde-4/multimedia/default.nix13
-rw-r--r--pkgs/desktops/kde-4/network/default.nix12
-rwxr-xr-xpkgs/desktops/kde-4/pim/builder.sh10
-rw-r--r--pkgs/desktops/kde-4/pim/default.nix15
-rw-r--r--pkgs/desktops/kde-4/pimlibs/default.nix12
-rwxr-xr-xpkgs/desktops/kde-4/runtime/builder.sh12
-rw-r--r--pkgs/desktops/kde-4/runtime/default.nix15
-rw-r--r--pkgs/desktops/kde-4/support/akode.nix13
-rw-r--r--pkgs/desktops/kde-4/support/default.nix36
-rw-r--r--pkgs/desktops/kde-4/support/eigen.nix13
-rw-r--r--pkgs/desktops/kde-4/support/gmm.nix13
-rw-r--r--pkgs/desktops/kde-4/support/qca.nix15
-rw-r--r--pkgs/desktops/kde-4/support/qimageblitz.nix13
-rw-r--r--pkgs/desktops/kde-4/support/soprano.nix14
-rw-r--r--pkgs/desktops/kde-4/support/strigi.nix15
-rw-r--r--pkgs/desktops/kde-4/support/taglib.nix13
-rw-r--r--pkgs/desktops/kde-4/toys/default.nix12
-rw-r--r--pkgs/desktops/kde-4/utils/default.nix13
-rwxr-xr-xpkgs/desktops/kde-4/workspace/builder.sh12
-rw-r--r--pkgs/desktops/kde-4/workspace/default.nix15
36 files changed, 810 insertions, 0 deletions
diff --git a/pkgs/desktops/kde-4/base/builder.sh b/pkgs/desktops/kde-4/base/builder.sh
new file mode 100755
index 00000000000..99b357fcf16
--- /dev/null
+++ b/pkgs/desktops/kde-4/base/builder.sh
@@ -0,0 +1,12 @@
+source ${stdenv}/setup
+
+myPatchPhase()
+{
+	echo "Fixing dbus calls in CMakeLists.txt files"
+# Trailing slash in sed is essential
+	find .. -name CMakeLists.txt \
+	| xargs sed -e "s@\${DBUS_INTERFACES_INSTALL_DIR}/@${kdelibs}/share/dbus-1/interfaces/@" -i
+	#sed -e '/^#define HAS_RANDR_1_2 1$/d' -i ../workspace/kcontrol/randr/randr.h
+}
+patchPhase=myPatchPhase
+genericBuild
diff --git a/pkgs/desktops/kde-4/base/default.nix b/pkgs/desktops/kde-4/base/default.nix
new file mode 100644
index 00000000000..75dbfbf40d4
--- /dev/null
+++ b/pkgs/desktops/kde-4/base/default.nix
@@ -0,0 +1,14 @@
+args: with args;
+
+stdenv.mkDerivation {
+  name = "kdebase-4.0beta4";
+  #builder = ./builder.sh;
+  
+  src = fetchurl {
+    url = mirror://kde/unstable/3.95/src/kdebase-3.95.0.tar.bz2;
+    sha256 = "0qf7bn5jqj70hznjk74vpwb7rvk6f5gx9fxwli930b2hskib3zll";
+  };
+
+  propagatedBuildInputs = [kdepimlibs libusb];
+  inherit kdelibs;
+}
diff --git a/pkgs/desktops/kde-4/decibel/default.nix b/pkgs/desktops/kde-4/decibel/default.nix
new file mode 100644
index 00000000000..ff98b48ee6f
--- /dev/null
+++ b/pkgs/desktops/kde-4/decibel/default.nix
@@ -0,0 +1,11 @@
+args: with args;
+stdenv.mkDerivation {
+	name = "decibel-0.5.0";
+
+	src = fetchurl {
+		url = http://decibel.kde.org/fileadmin/downloads/decibel/releases/decibel-0.5.0.tar.gz;
+		sha256 = "07visasid4mpzm0ba5j9qy0lxxb6451lvbr2gnc1vzfvjagffqz4";
+	};
+
+	buildInputs = [kdelibs kdebase ];
+}
diff --git a/pkgs/desktops/kde-4/default.nix b/pkgs/desktops/kde-4/default.nix
new file mode 100644
index 00000000000..9732d9e2b2b
--- /dev/null
+++ b/pkgs/desktops/kde-4/default.nix
@@ -0,0 +1,35 @@
+args:
+rec {
+  fullargs = args // { kdelibs = libs; kdepimlibs = pimlibs; kdebase = base; kderuntime = runtime; };
+  libs = import ./libs (args // { kdesupport = support; });
+  pimlibs = import ./pimlibs (args // { kdelibs = libs; });
+  graphics = import ./graphics (fullargs // { kdeworkspace = workspace; } );
+  multimedia = import ./multimedia (fullargs // { kdeworkspace = workspace; } );
+  toys = import ./toys (fullargs // { kdeworkspace = workspace; } );
+  network = import ./network (fullargs // { kdeworkspace = workspace; } );
+  utils = import ./utils (fullargs // { kdeworkspace = workspace; } );
+  games = import ./games (fullargs // { kdeworkspace = workspace; } );
+  edu = import ./edu (fullargs // { kdeworkspace = workspace; } );
+  base = import ./base fullargs;
+  runtime = import ./runtime fullargs;
+  workspace = import ./workspace fullargs;
+  extragear_plasma = import ./extragear (fullargs // { kdeworkspace = workspace; });
+  support = import ./support args;
+  decibel = import ./decibel fullargs;
+  pim = import ./pim (fullargs // {kdeworkspace = workspace; });
+
+  env = with args; runCommand "kde-env"
+  {
+	  KDEDIRS = lib.concatStringsSep ":" ([ libs pimlibs graphics multimedia
+	  toys network utils games edu base runtime workspace extragear_plasma pim] ++
+	  support.all);
+	  scriptName = "echo-kde-dirs";
+  }
+  "
+  ensureDir \${out}/bin
+  scriptPath=\${out}/bin/\${scriptName}
+  echo \"#!/bin/sh\" > \${scriptPath}
+  echo \"echo -n export KDEDIRS=\${KDEDIRS}\" >> \${scriptPath}
+  chmod +x \${scriptPath}
+  ";
+}
diff --git a/pkgs/desktops/kde-4/edu/default.nix b/pkgs/desktops/kde-4/edu/default.nix
new file mode 100644
index 00000000000..e69a1a49be6
--- /dev/null
+++ b/pkgs/desktops/kde-4/edu/default.nix
@@ -0,0 +1,20 @@
+args: with args;
+
+stdenv.mkDerivation rec {
+  name = "kdeedu-4.0beta4";
+  
+  src = fetchurl {
+    url = mirror://kde/unstable/3.95/src/kdeedu-3.95.0.tar.bz2;
+    sha256 = "0cydl3pp3l0cbfmf774qh8njyhycaf8yxb27k4xf6mipvw1k9jqf";
+  };
+
+  buildInputs = [kdelibs kdepimlibs kdeworkspace boost readline openbabel ocaml
+  libusb facile python];
+  myCmakeFiles = ./myCmakeFiles;
+  patchPhase = "
+  cp ${myCmakeFiles}/* ../cmake/modules
+  sed -e 's@+facile@\${LIBFACILE_INCLUDE_DIR}@' -i \\
+  ../kalzium/src/CMakeOCamlInstructions.cmake
+  ";
+  configureFlags = "--debug-trycompile";
+}
diff --git a/pkgs/desktops/kde-4/edu/myCmakeFiles/CheckBoostAndPythonCompatible.cmake b/pkgs/desktops/kde-4/edu/myCmakeFiles/CheckBoostAndPythonCompatible.cmake
new file mode 100644
index 00000000000..35701ecf5c6
--- /dev/null
+++ b/pkgs/desktops/kde-4/edu/myCmakeFiles/CheckBoostAndPythonCompatible.cmake
@@ -0,0 +1,38 @@
+include(CheckCXXSourceCompiles)
+include(CheckIncludeFileCXX)
+include(CheckLibraryExists)
+
+MACRO(check_boost_and_python_compatible
+	_bo_inc _bo_ld _bo_py_lib
+	_py_inc _py_ld _py_lib)
+
+	set(_save_CXX_FLAGS ${CMAKE_CXX_FLAGS})
+	set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${KDE4_ENABLE_EXCEPTIONS}")
+
+	set(CMAKE_REQUIRED_FLAGS "-L${_bo_ld} -L${_py_ld}")
+	set(CMAKE_REQUIRED_INCLUDES ${_py_inc} ${_bo_inc})
+	set(CMAKE_REQUIRED_LIBRARIES ${_bo_py_lib} ${_py_lib})
+
+	check_cxx_source_compiles("
+#include <boost/python.hpp>
+const char* greet() { return \"Hello world!\"; }
+BOOST_PYTHON_MODULE(hello) { boost::python::def(\"greet\", greet); }
+
+int main() { return 0; }
+
+// some vars, in case of the compilation fail...
+// python include dir: ${_py_inc}
+// python lib: ${_py_lib}
+// 
+// boost python lib: ${_bo_py_lib}
+// boost include dir: ${_bo_inc}
+// boost lib dir: ${_bo_ld}
+// 
+"
+BOOST_PYTHON_${_bo_inc}_${_bo_ld}_${_bo_py_lib}_${_py_inc}_${_py_ld}_${_py_lib}_COMPATIBLE )
+
+	set(CMAKE_REQUIRED_FLAGS)
+	set(CMAKE_REQUIRED_INCLUDES)
+	set(CMAKE_REQUIRED_LIBRARIES)
+	set(CMAKE_CXX_FLAGS ${_save_CXX_FLAGS})
+ENDMACRO(check_boost_and_python_compatible)
diff --git a/pkgs/desktops/kde-4/edu/myCmakeFiles/FindBoostPython.cmake b/pkgs/desktops/kde-4/edu/myCmakeFiles/FindBoostPython.cmake
new file mode 100644
index 00000000000..b68959d8a9c
--- /dev/null
+++ b/pkgs/desktops/kde-4/edu/myCmakeFiles/FindBoostPython.cmake
@@ -0,0 +1,90 @@
+# - Try to find the a valid boost+python combination
+# Once done this will define
+#
+#  Boost_PYTHON_FOUND - system has a valid boost+python combination
+#  BOOST_PYTHON_INCLUDES - the include directory for boost+python
+#  BOOST_PYTHON_LIBS - the needed libs for boost+python
+
+# Copyright (c) 2006, Pino Toscano, <toscano.pino@tiscali.it>
+#
+# Redistribution and use is allowed according to the terms of the BSD license.
+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+
+if(BOOST_PYTHON_INCLUDES AND BOOST_PYTHON_LIBS)
+	# Already in cache, be silent
+	set(Boost_PYTHON_FIND_QUIETLY TRUE)
+endif(BOOST_PYTHON_INCLUDES AND BOOST_PYTHON_LIBS)
+
+SET(Boost_PYTHON_LIB_SUFFIXES "-mt" "-gcc-mt")
+SET(Boost_KNOWN_VERSIONS "-1_34_1" "-1_34_0" "-1_33_1" "-1_33_0")
+
+FIND_PACKAGE(Boost)
+INCLUDE(PythonLibsUtils)
+INCLUDE(CheckBoostAndPythonCompatible)
+
+IF(Boost_FOUND AND Boost_LIBRARY_DIRS)
+
+	SET(Boost_PYTHON_LIB_NAMES boost_python)
+	FOREACH(_suffix ${Boost_PYTHON_LIB_SUFFIXES})
+		set(Boost_PYTHON_LIB_NAMES ${Boost_PYTHON_LIB_NAMES}
+			boost_python${_suffix})
+		FOREACH(_bo_ver ${Boost_KNOWN_VERSIONS})
+			set(Boost_PYTHON_LIB_NAMES ${Boost_PYTHON_LIB_NAMES}
+				boost_python${_suffix}${_bo_ver})
+		ENDFOREACH(_bo_ver)
+	ENDFOREACH(_suffix)
+
+	SET(_found FALSE)
+	FOREACH(_boost_python_lib ${Boost_PYTHON_LIB_NAMES})
+		IF(NOT _found)
+			FIND_LIBRARY(Boost_PYTHON_LIB_FULLPATH
+				NAME ${_boost_python_lib}
+				PATHS ${Boost_LIBRARY_DIRS}
+				NO_DEFAULT_PATH
+				)
+			IF(Boost_PYTHON_LIB_FULLPATH)
+				SET(Boost_PYTHON_LIB ${_boost_python_lib})
+				SET(_found TRUE)
+			ENDIF(Boost_PYTHON_LIB_FULLPATH)
+		ENDIF(NOT _found)
+	ENDFOREACH(_boost_python_lib)
+
+	IF(Boost_PYTHON_LIB)
+		SET(_found FALSE)
+		FOREACH(_py_ver ${PYTHON_KNOWN_VERSIONS})
+			if (NOT _found)
+				python_find_version(${_py_ver} _py_inc _py_ld _py_lib)
+				IF(PYTHON_REQ_VERSION_FOUND)
+					MESSAGE(STATUS " ${Boost_INCLUDE_DIRS} ${Boost_LIBRARY_DIRS} ${Boost_PYTHON_LIB} ${_py_inc} ${_py_ld} ${_py_lib}")
+					check_boost_and_python_compatible(
+						"${Boost_INCLUDE_DIRS}" "${Boost_LIBRARY_DIRS}"
+						"${Boost_PYTHON_LIB}" "${_py_inc}" "${_py_ld}"
+						"${_py_lib}")
+					SET(_found
+						BOOST_PYTHON_${Boost_INCLUDE_DIRS}_${Boost_LIBRARY_DIRS}_${Boost_PYTHON_LIB}_${_py_inc}_${_py_ld}_${_py_lib}_COMPATIBLE)
+
+					IF(BOOST_PYTHON_${Boost_INCLUDE_DIRS}_${Boost_LIBRARY_DIRS}_${Boost_PYTHON_LIB}_${_py_inc}_${_py_ld}_${_py_lib}_COMPATIBLE)
+						SET(BOOST_PYTHON_INCLUDES ${Boost_INCLUDE_DIRS} ${_py_inc})
+						SET(BOOST_PYTHON_LIBS "-l${_py_lib} -L${_py_ld} -l${Boost_PYTHON_LIB}")
+						SET(BOOST_PYTHON_FOUND TRUE)
+						SET(_found TRUE)
+					ENDIF(BOOST_PYTHON_${Boost_INCLUDE_DIRS}_${Boost_LIBRARY_DIRS}_${Boost_PYTHON_LIB}_${_py_inc}_${_py_ld}_${_py_lib}_COMPATIBLE)
+				ENDIF(PYTHON_REQ_VERSION_FOUND)
+			ENDIF(NOT _found)
+		ENDFOREACH(_py_ver)
+	ENDIF(Boost_PYTHON_LIB)
+ENDIF(Boost_FOUND AND Boost_LIBRARY_DIRS)
+
+if(BOOST_PYTHON_FOUND)
+	if(NOT BoostPython_FIND_QUIETLY)
+		message(STATUS "Found Boost+Python: ${BOOST_PYTHON_INCLUDES} ${BOOST_PYTHON_LIBS}")
+	endif(NOT BoostPython_FIND_QUIETLY)
+	set(KIG_ENABLE_PYTHON_SCRIPTING 1)
+else (BOOST_PYTHON_FOUND)
+	if (BoostPython_FIND_REQUIRED)
+		message(FATAL_ERROR "Could NOT find Boost+Python")
+	endif(BoostPython_FIND_REQUIRED)
+	set(KIG_ENABLE_PYTHON_SCRIPTING 0)
+endif(BOOST_PYTHON_FOUND)
+
+mark_as_advanced(BOOST_PYTHON_INCLUDES BOOST_PYTHON_LIBS)
diff --git a/pkgs/desktops/kde-4/edu/myCmakeFiles/FindLibfacile.cmake b/pkgs/desktops/kde-4/edu/myCmakeFiles/FindLibfacile.cmake
new file mode 100644
index 00000000000..154531dabc1
--- /dev/null
+++ b/pkgs/desktops/kde-4/edu/myCmakeFiles/FindLibfacile.cmake
@@ -0,0 +1,45 @@
+# - Try to find Libfacile
+# Once done this will define
+#
+#  LIBFACILE_FOUND - system has Libfacile
+#  LIBFACILE_INCLUDE_DIR - the Libfacile include directory
+#  LIBFACILE_LIBRARIES - Link these to use Libfacile
+#  LIBFACILE_DEFINITIONS - Compiler switches required for using Libfacile
+#
+# Copyright (c) 2006, Carsten Niehaus, <cniehaus@gmx.de>
+# Copyright (c) 2006, Montel Laurent, <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.
+
+
+find_package(OCaml)
+
+set(LIBFACILE_FOUND FALSE)
+
+if( OCAML_FOUND )
+   find_file(LIBFACILE_LIBRARIES NAME facile.a
+       PATHS ${OCAMLC_DIR} ENV CMAKE_LIBRARY_PATH
+	   PATH_SUFFIXES facile ocaml/facile
+   )
+   message(STATUS "LIBFACILE_LIBRARIES :<${LIBFACILE_LIBRARIES}>") 
+   if (LIBFACILE_LIBRARIES)
+	   get_filename_component(LIBFACILE_INCLUDE_DIR ${LIBFACILE_LIBRARIES} PATH)
+	   message(STATUS "LIBFACILE_INCLUDE_DIR <${LIBFACILE_INCLUDE_DIR}>")
+       set(LIBFACILE_FOUND TRUE)
+   endif(LIBFACILE_LIBRARIES)
+endif(OCAML_FOUND)
+
+
+if(LIBFACILE_FOUND)
+   if(NOT Libfacile_FIND_QUIETLY)
+      message(STATUS "Found Libfacile: ${LIBFACILE_LIBRARIES}")
+   endif(NOT Libfacile_FIND_QUIETLY)
+else(LIBFACILE_FOUND)
+   if(Libfacile_FIND_REQUIRED)
+      message(FATAL_ERROR "Could not find Libfacile")
+   endif(Libfacile_FIND_REQUIRED)
+endif(LIBFACILE_FOUND)
+
+# show the LIBFACILE_INCLUDE_DIR and LIBFACILE_LIBRARIES variables only in the advanced view
+mark_as_advanced(LIBFACILE_INCLUDE_DIR LIBFACILE_LIBRARIES )
+ 
diff --git a/pkgs/desktops/kde-4/edu/myCmakeFiles/PythonLibsUtils.cmake b/pkgs/desktops/kde-4/edu/myCmakeFiles/PythonLibsUtils.cmake
new file mode 100644
index 00000000000..df54324712a
--- /dev/null
+++ b/pkgs/desktops/kde-4/edu/myCmakeFiles/PythonLibsUtils.cmake
@@ -0,0 +1,46 @@
+SET(PYTHON_KNOWN_VERSIONS "2.5" "2.4" "2.3" "2.2" "2.1" "2.0" "1.6" "1.5")
+
+MACRO(python_find_version _py_ver _py_inc _py_ld _py_lib)
+	STRING(REPLACE "." "" _py_ver_nd "${_py_ver}")
+
+	SET(PY_INSTALL_PATH
+		[HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_py_ver}\\InstallPath])
+
+	SET(_py_libnames "python${_py_ver}" "python${_py_ver_nd}")
+
+	SET(_py_found FALSE)
+	FOREACH(_py_libname ${_py_libnames})
+		IF (NOT _py_found)
+			SET(_py_lib_full _py_lib_full-NOTFOUND)
+
+			FIND_LIBRARY(_py_lib_full
+				NAMES "${_py_libname}"
+				PATHS "${PY_INSTALL_PATH}/libs"
+				NO_SYSTEM_ENVIRONMENT_PATH
+			)
+			FIND_LIBRARY(_py_lib_full
+				NAMES "${_py_libname}"
+				PATHS "${PY_INSTALL_PATH}/libs"
+				PATH_SUFFIXES "python${_py_ver}/config"
+				NO_SYSTEM_ENVIRONMENT_PATH
+			)
+			IF(_py_lib_full)
+				SET(_py_lib "${_py_libname}")
+				GET_FILENAME_COMPONENT(_py_ld "${_py_lib_full}" PATH)
+				SET(_py_found TRUE)
+			ENDIF(_py_lib_full)
+		ENDIF(NOT _py_found)
+	ENDFOREACH(_py_libname)
+
+	IF(_py_found)
+		FIND_PATH(_py_inc
+			NAMES Python.h
+			PATHS
+				${PY_INSTALL_PATH}/include
+			PATH_SUFFIXES
+				"python${_py_ver}"
+		)
+	ENDIF(_py_found)
+
+	SET(PYTHON_REQ_VERSION_FOUND ${_py_found})
+ENDMACRO(python_find_version)
diff --git a/pkgs/desktops/kde-4/extragear/default.nix b/pkgs/desktops/kde-4/extragear/default.nix
new file mode 100644
index 00000000000..c67d4b8682c
--- /dev/null
+++ b/pkgs/desktops/kde-4/extragear/default.nix
@@ -0,0 +1,14 @@
+args: with args;
+
+stdenv.mkDerivation {
+  name = "extragear-plasma-4.0beta4";
+  
+  src = fetchurl {
+    url = mirror://kde/unstable/3.95/src/extragear-plasma-3.95.0.tar.bz2;
+    sha256 = "1nzfy34ig66gfpgv6kbcmcap13axcy7kvj43srbd0ic6a0giv283";
+  };
+
+  buildInputs = [ kdeworkspace kdebase ];
+  patchPhase = "
+  sed -e 's@<Plasma@<KDE/Plasma@' -i ../applets/*/*.h";
+}
diff --git a/pkgs/desktops/kde-4/games/default.nix b/pkgs/desktops/kde-4/games/default.nix
new file mode 100644
index 00000000000..e3869e10808
--- /dev/null
+++ b/pkgs/desktops/kde-4/games/default.nix
@@ -0,0 +1,12 @@
+args: with args;
+
+stdenv.mkDerivation {
+  name = "kdegames-4.0beta4";
+  
+  src = fetchurl {
+    url = mirror://kde/unstable/3.95/src/kdegames-3.95.0.tar.bz2;
+    sha256 = "1zsfslnazl8gmiq51y5d16svv7p92yvs2zsz13zg7zpwy4afxzbp";
+  };
+
+  buildInputs = [kdelibs kdepimlibs kdeworkspace];
+}
diff --git a/pkgs/desktops/kde-4/graphics/default.nix b/pkgs/desktops/kde-4/graphics/default.nix
new file mode 100644
index 00000000000..124c9598c9e
--- /dev/null
+++ b/pkgs/desktops/kde-4/graphics/default.nix
@@ -0,0 +1,13 @@
+args: with args;
+
+stdenv.mkDerivation {
+  name = "kdegraphics-4.0beta4";
+  
+  src = fetchurl {
+    url = mirror://kde/unstable/3.95/src/kdegraphics-3.95.0.tar.bz2;
+    sha256 = "0mfsadv9ihhw6s7pcy1yabc21px47nzfs34c76n1888qb09m5dfw";
+  };
+
+  buildInputs = [kdelibs kdepimlibs kdeworkspace libgphoto2 saneBackends
+  djvulibre exiv2 poppler chmlib];
+}
diff --git a/pkgs/desktops/kde-4/libs/FindIlmBase.cmake b/pkgs/desktops/kde-4/libs/FindIlmBase.cmake
new file mode 100644
index 00000000000..1511e9509ce
--- /dev/null
+++ b/pkgs/desktops/kde-4/libs/FindIlmBase.cmake
@@ -0,0 +1,74 @@
+# Try to find the IlmBase libraries
+# This check defines:
+#
+#  ILMBASE_FOUND - system has IlmBase
+#  ILMBASE_INCLUDE_DIR - IlmBase include directory
+#  ILMBASE_LIBRARIES - Libraries needed to use IlmBase
+#
+# Copyright (c) 2006, Alexander Neundorf, <neundorf@kde.org>
+# Copyright (c) 2007, Yury G. Kudryashov, <urkud.urkud@gmail.com>
+#
+# Redistribution and use is allowed according to the terms of the BSD license.
+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+
+if (ILMBASE_INCLUDE_DIR AND ILMBASE_LIBRARIES)
+  # in cache already
+  SET(ILMBASE_FOUND TRUE)
+
+else (ILMBASE_INCLUDE_DIR AND ILMBASE_LIBRARIES)
+IF (NOT WIN32)
+  # use pkg-config to get the directories and then use these values
+  # in the FIND_PATH() and FIND_LIBRARY() calls
+  INCLUDE(UsePkgConfig)
+  
+  PKGCONFIG(IlmBase _IlmBaseIncDir _IlmBaseLinkDir _IlmBaseLinkFlags _IlmBaseCflags)
+ENDIF (NOT WIN32)  
+  FIND_PATH(ILMBASE_INCLUDE_DIR ImathBox.h
+     ${_IlmBaseIncDir}
+     ${_IlmBaseIncDir}/OpenEXR/
+  )
+
+  FIND_LIBRARY(ILMBASE_HALF_LIBRARY NAMES Half
+    PATHS
+    ${_IlmBaseLinkDir}
+    NO_DEFAULT_PATH
+  )
+  FIND_LIBRARY(ILMBASE_HALF_LIBRARY NAMES Half )
+  
+  FIND_LIBRARY(ILMBASE_IEX_LIBRARY NAMES Iex
+    PATHS
+    ${_IlmBaseLinkDir}
+    NO_DEFAULT_PATH
+  )
+  FIND_LIBRARY(ILMBASE_IEX_LIBRARY NAMES Iex )
+  
+  FIND_LIBRARY(ILMBASE_IMATH_LIBRARY NAMES Imath
+    PATHS
+    ${_IlmBaseLinkDir}
+    NO_DEFAULT_PATH
+  )
+  FIND_LIBRARY(ILMBASE_IMATH_LIBRARY NAMES Imath )  
+  
+  if (ILMBASE_INCLUDE_DIR AND ILMBASE_IMATH_LIBRARY AND ILMBASE_IEX_LIBRARY AND ILMBASE_HALF_LIBRARY)
+     set(ILMBASE_FOUND TRUE)
+     set(ILMBASE_LIBRARIES ${ILMBASE_IMATH_LIBRARY} ${ILMBASE_IEX_LIBRARY} ${ILMBASE_HALF_LIBRARY} CACHE STRING "The libraries needed to use IlmBase")
+  endif (ILMBASE_INCLUDE_DIR AND ILMBASE_IMATH_LIBRARY AND ILMBASE_IEX_LIBRARY AND ILMBASE_HALF_LIBRARY)
+  
+  if (ILMBASE_FOUND)
+    if (NOT IlmBase_FIND_QUIETLY)
+      message(STATUS "Found ILMBASE: ${ILMBASE_LIBRARIES}")
+    endif (NOT IlmBase_FIND_QUIETLY)
+  else (ILMBASE_FOUND)
+    if (IlmBase_FIND_REQUIRED)
+      message(FATAL_ERROR "Could NOT find ILMBASE")
+    endif (IlmBase_FIND_REQUIRED)
+  endif (ILMBASE_FOUND)
+  
+  MARK_AS_ADVANCED(
+     ILMBASE_INCLUDE_DIR 
+     ILMBASE_LIBRARIES 
+     ILMBASE_IMATH_LIBRARY 
+     ILMBASE_IEX_LIBRARY 
+     ILMBASE_HALF_LIBRARY )
+  
+endif (ILMBASE_INCLUDE_DIR AND ILMBASE_LIBRARIES)
diff --git a/pkgs/desktops/kde-4/libs/FindOpenEXR.cmake b/pkgs/desktops/kde-4/libs/FindOpenEXR.cmake
new file mode 100644
index 00000000000..b1f590544fa
--- /dev/null
+++ b/pkgs/desktops/kde-4/libs/FindOpenEXR.cmake
@@ -0,0 +1,68 @@
+# Try to find the OpenEXR libraries
+# This check defines:
+#
+#  OPENEXR_FOUND - system has OpenEXR
+#  OPENEXR_INCLUDE_DIR - OpenEXR include directory
+#  OPENEXR_LIBRARIES - Libraries needed to use OpenEXR
+#
+# Copyright (c) 2006, Alexander Neundorf, <neundorf@kde.org>
+# Copyright (c) 2007, Yury G. Kudryashov, <urkud.urkud@gmail.com>
+#
+# Redistribution and use is allowed according to the terms of the BSD license.
+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+
+
+if (OPENEXR_INCLUDE_DIR AND OPENEXR_LIBRARIES)
+  # in cache already
+  SET(OPENEXR_FOUND TRUE)
+
+else (OPENEXR_INCLUDE_DIR AND OPENEXR_LIBRARIES)
+FIND_PACKAGE(IlmBase)
+IF (NOT ILMBASE_FOUND)
+	SET(OPENEXR_FOUND FALSE)
+ELSE (NOT ILMBASE_FOUND)
+IF (NOT WIN32)
+  # use pkg-config to get the directories and then use these values
+  # in the FIND_PATH() and FIND_LIBRARY() calls
+  INCLUDE(UsePkgConfig)
+  
+  PKGCONFIG(OpenEXR _OpenEXRIncDir _OpenEXRLinkDir _OpenEXRLinkFlags _OpenEXRCflags)
+ENDIF (NOT WIN32)  
+  FIND_PATH(OPENEXR_INCLUDE_DIR ImfRgbaFile.h
+     ${_OpenEXRIncDir}
+     ${_OpenEXRIncDir}/OpenEXR/
+  )
+
+  FIND_LIBRARY(OPENEXR_ILMIMF_LIBRARY NAMES IlmImf 
+    PATHS
+    ${_OpenEXRLinkDir}
+    NO_DEFAULT_PATH
+  )
+  FIND_LIBRARY(OPENEXR_ILMIMF_LIBRARY NAMES IlmImf )  
+  
+  if (OPENEXR_INCLUDE_DIR AND OPENEXR_ILMIMF_LIBRARY)
+     set(OPENEXR_FOUND TRUE)
+     set(OPENEXR_LIBRARIES ${ILMBASE_LIBRARIES} ${OPENEXR_ILMIMF_LIBRARY} CACHE STRING "The libraries needed to use OpenEXR")
+	 set(OPENEXR_INCLUDE_DIR ${OPENEXR_INCLUDE_DIR} ${ILMBASE_INCLUDE_DIR})
+  endif (OPENEXR_INCLUDE_DIR AND OPENEXR_ILMIMF_LIBRARY)
+ENDIF (NOT ILMBASE_FOUND)
+  
+  if (OPENEXR_FOUND)
+    if (NOT OpenEXR_FIND_QUIETLY)
+      message(STATUS "Found OPENEXR: ${OPENEXR_LIBRARIES}")
+    endif (NOT OpenEXR_FIND_QUIETLY)
+  else (OPENEXR_FOUND)
+    if (OpenEXR_FIND_REQUIRED)
+      message(FATAL_ERROR "Could NOT find OPENEXR")
+    endif (OpenEXR_FIND_REQUIRED)
+  endif (OPENEXR_FOUND)
+  
+  MARK_AS_ADVANCED(
+     OPENEXR_INCLUDE_DIR 
+     OPENEXR_LIBRARIES 
+     OPENEXR_ILMIMF_LIBRARY 
+     OPENEXR_IMATH_LIBRARY 
+     OPENEXR_IEX_LIBRARY 
+     OPENEXR_HALF_LIBRARY )
+  
+endif (OPENEXR_INCLUDE_DIR AND OPENEXR_LIBRARIES)
diff --git a/pkgs/desktops/kde-4/libs/default.nix b/pkgs/desktops/kde-4/libs/default.nix
new file mode 100644
index 00000000000..844e4a03320
--- /dev/null
+++ b/pkgs/desktops/kde-4/libs/default.nix
@@ -0,0 +1,27 @@
+args: with args;
+
+stdenv.mkDerivation rec {
+  name = "kdelibs-4.0beta4";
+  
+  src = fetchurl {
+    url = mirror://kde/unstable/3.95/src/kdelibs-3.95.0.tar.bz2;
+    sha256 = "0960880wvwrj68r35knqjjxbqq90xzy1lqv526zyaymp7jc24ybc";
+  };
+
+  propagatedBuildInputs = [
+	cmake inputproto kbproto scrnsaverproto xextproto xf86miscproto xf86vidmodeproto
+	xineramaproto xproto libICE libX11 libXau libXcomposite libXcursor
+	libXdamage libXdmcp libXext libXfixes libXft libXi libXpm libXrandr
+	libXrender libXScrnSaver libXt libXtst libXv libXxf86misc libxkbfile zlib
+	perl qt openssl pcre pkgconfig libjpeg libpng libtiff libxml2 libxslt expat
+    libtool freetype bzip2 shared_mime_info alsaLib libungif cups
+	gettext enchant openexr aspell stdenv.gcc.libc
+  ] ++ kdesupport.all;
+  patchPhase = "cp ${findIlmBase} ../cmake/modules/FindIlmBase.cmake;
+  cp $findOpenEXR ../cmake/modules/FindOpenEXR.cmake;
+  sed -e 's@Soprano/DummyModel@Soprano/Util/DummyModel@' -i ../nepomuk/core/resourcemanager.cpp;";
+
+  findIlmBase = ./FindIlmBase.cmake;
+  findOpenEXR = ./FindOpenEXR.cmake;
+  setupHook=./setup.sh;
+}
diff --git a/pkgs/desktops/kde-4/libs/setup.sh b/pkgs/desktops/kde-4/libs/setup.sh
new file mode 100755
index 00000000000..6f899442d27
--- /dev/null
+++ b/pkgs/desktops/kde-4/libs/setup.sh
@@ -0,0 +1,5 @@
+addKDEDIRS()
+{
+	addToSearchPath KDEDIRS /share/kde4 /. $1
+}
+envHooks=(${envHooks[@]} addKDEDIRS)
diff --git a/pkgs/desktops/kde-4/multimedia/default.nix b/pkgs/desktops/kde-4/multimedia/default.nix
new file mode 100644
index 00000000000..f0870c1740d
--- /dev/null
+++ b/pkgs/desktops/kde-4/multimedia/default.nix
@@ -0,0 +1,13 @@
+args: with args;
+
+stdenv.mkDerivation {
+  name = "kdemultimedia-4.0beta4";
+  
+  src = fetchurl {
+    url = mirror://kde/unstable/3.95/src/kdemultimedia-3.95.0.tar.bz2;
+    sha256 = "0vjk5gpn45fh7hm982jw1frd7fr0grff96ksmh29wnkc160rh8va";
+  };
+
+  buildInputs = [kdelibs kdepimlibs kdeworkspace libogg flac cdparanoia lame
+  libvorbis];
+}
diff --git a/pkgs/desktops/kde-4/network/default.nix b/pkgs/desktops/kde-4/network/default.nix
new file mode 100644
index 00000000000..21ae2074e06
--- /dev/null
+++ b/pkgs/desktops/kde-4/network/default.nix
@@ -0,0 +1,12 @@
+args: with args;
+
+stdenv.mkDerivation {
+  name = "kdenetwork-4.0beta4";
+  
+  src = fetchurl {
+    url = mirror://kde/unstable/3.95/src/kdenetwork-3.95.0.tar.bz2;
+    sha256 = "118r55aw0pag78kawjfn3vya7aca12n5ypknm1i4khxs747hxqbr";
+  };
+
+  buildInputs = [kdelibs kdepimlibs kdeworkspace sqlite libidn];
+}
diff --git a/pkgs/desktops/kde-4/pim/builder.sh b/pkgs/desktops/kde-4/pim/builder.sh
new file mode 100755
index 00000000000..8963fae048c
--- /dev/null
+++ b/pkgs/desktops/kde-4/pim/builder.sh
@@ -0,0 +1,10 @@
+source ${stdenv}/setup
+
+myPatchPhase()
+{
+# They reset CMAKE_MODULE_PATH, not adding to the existing
+	sed -e '3s/)/ ${CMAKE_MODULE_PATH})/' -i ../CMakeLists.txt
+}
+patchPhase=myPatchPhase
+
+genericBuild
diff --git a/pkgs/desktops/kde-4/pim/default.nix b/pkgs/desktops/kde-4/pim/default.nix
new file mode 100644
index 00000000000..f0f4184d391
--- /dev/null
+++ b/pkgs/desktops/kde-4/pim/default.nix
@@ -0,0 +1,15 @@
+args: with args;
+
+stdenv.mkDerivation {
+  name = "kdepim-4.0beta4";
+  
+  src = fetchurl {
+    url = mirror://kde/unstable/3.95/src/kdepim-3.95.0.tar.bz2;
+    sha256 = "0gzvm4h6ij7i119apmh9w82raygahr18bl0i9m3ynf2mcca0aq94";
+  };
+
+  buildInputs = [libXinerama mesa stdenv.gcc.libc alsaLib kdelibs kdepimlibs
+  kdeworkspace libusb glib];
+  qt4BadIncludes = true;
+  inherit qt kdelibs;
+}
diff --git a/pkgs/desktops/kde-4/pimlibs/default.nix b/pkgs/desktops/kde-4/pimlibs/default.nix
new file mode 100644
index 00000000000..6d273acc67e
--- /dev/null
+++ b/pkgs/desktops/kde-4/pimlibs/default.nix
@@ -0,0 +1,12 @@
+args: with args;
+
+stdenv.mkDerivation {
+  name = "kdepimlibs-4.0beta4";
+  
+  src = fetchurl {
+    url = mirror://kde/unstable/3.95/src/kdepimlibs-3.95.0.tar.bz2;
+	sha256 = "1dhn5x3k9myqfymv6ry84v0zm2qwxnrlm1vdlllfvmgbm5nz34mg";
+  };
+
+  propagatedBuildInputs = [kdelibs boost gpgme cyrus_sasl openldap];
+}
diff --git a/pkgs/desktops/kde-4/runtime/builder.sh b/pkgs/desktops/kde-4/runtime/builder.sh
new file mode 100755
index 00000000000..99b357fcf16
--- /dev/null
+++ b/pkgs/desktops/kde-4/runtime/builder.sh
@@ -0,0 +1,12 @@
+source ${stdenv}/setup
+
+myPatchPhase()
+{
+	echo "Fixing dbus calls in CMakeLists.txt files"
+# Trailing slash in sed is essential
+	find .. -name CMakeLists.txt \
+	| xargs sed -e "s@\${DBUS_INTERFACES_INSTALL_DIR}/@${kdelibs}/share/dbus-1/interfaces/@" -i
+	#sed -e '/^#define HAS_RANDR_1_2 1$/d' -i ../workspace/kcontrol/randr/randr.h
+}
+patchPhase=myPatchPhase
+genericBuild
diff --git a/pkgs/desktops/kde-4/runtime/default.nix b/pkgs/desktops/kde-4/runtime/default.nix
new file mode 100644
index 00000000000..f3f241a7ffe
--- /dev/null
+++ b/pkgs/desktops/kde-4/runtime/default.nix
@@ -0,0 +1,15 @@
+args: with args;
+
+stdenv.mkDerivation {
+  name = "kdebase-runtime-4.0beta4";
+  builder = ./builder.sh;
+  
+  src = fetchurl {
+    url = mirror://kde/unstable/3.95/src/kdebase-runtime-3.95.0.tar.bz2;
+    sha256 = "1s4fhbz7gpdxmvlr20c7n6cvcb9sn0qxigzpljsxw9524w177ksr";
+  };
+
+  propagatedBuildInputs = [kdepimlibs libusb kdebase xineLib];
+  inherit kdelibs;
+}
+
diff --git a/pkgs/desktops/kde-4/support/akode.nix b/pkgs/desktops/kde-4/support/akode.nix
new file mode 100644
index 00000000000..1385def6b55
--- /dev/null
+++ b/pkgs/desktops/kde-4/support/akode.nix
@@ -0,0 +1,13 @@
+args: with args;
+
+stdenv.mkDerivation {
+  name = "akode-2.0.0dev";
+  
+  src = fetchsvn {
+    url = svn://anonsvn.kde.org/home/kde/trunk/kdesupport/akode;
+	rev = 732646;
+	md5 = "6629ffedc42c020d2e8645910a4efdf5";
+  };
+
+  buildInputs = [ cmake qt openssl gettext cyrus_sasl alsaLib ];
+}
diff --git a/pkgs/desktops/kde-4/support/default.nix b/pkgs/desktops/kde-4/support/default.nix
new file mode 100644
index 00000000000..af1dc175bed
--- /dev/null
+++ b/pkgs/desktops/kde-4/support/default.nix
@@ -0,0 +1,36 @@
+args:
+rec {
+	qca = (import ./qca.nix) args;
+	akode = (import ./akode.nix) args;
+	gmm = (import ./gmm.nix) args;
+	eigen = (import ./eigen.nix) args;
+	taglib = (import ./taglib.nix) args;
+	soprano = (import ./soprano.nix) args;
+	strigi = (import ./strigi.nix) args;
+	qimageblitz = (import ./qimageblitz.nix) args;
+	all = [qca gmm eigen taglib soprano strigi qimageblitz];
+}
+#args: with args;
+#
+#stdenv.mkDerivation {
+#  name = "kdesupport-4.0svn-r729462";
+#  
+#  src = fetchsvn {
+#    url = svn://anonsvn.kde.org/home/kde/trunk/kdesupport;
+#	rev = 729462;
+#	md5 = "aa50ec8e5c8d49e1dfd53143345cb4b3";
+#  };
+#
+#  propagatedBuildInputs = [
+#	exiv2
+#	cmake inputproto kbproto scrnsaverproto xextproto xf86miscproto xf86vidmodeproto
+#	xineramaproto xproto libICE libX11 libXau libXcomposite libXcursor
+#	libXdamage libXdmcp libXext libXfixes libXft libXi libXpm libXrandr
+#	libXrender libXScrnSaver libXt libXtst libXv libXxf86misc libxkbfile zlib
+#	perl qt openssl pcre pkgconfig libjpeg libpng libtiff libxml2 libxslt expat
+#    libtool freetype bzip2 shared_mime_info alsaLib libungif cups
+#	gettext cluceneCore redland stdenv.gcc.libc dbus bison cppunit
+#  ];
+#  CLUCENE_HOME=cluceneCore;
+#  patchPhase = "sed -e '/set(qca_PLUGINSDIR/s@\${QT_PLUGINS_DIR}@\${CMAKE_INSTALL_PREFIX}/plugins@' -i ../qca/CMakeLists.txt";
+#}
diff --git a/pkgs/desktops/kde-4/support/eigen.nix b/pkgs/desktops/kde-4/support/eigen.nix
new file mode 100644
index 00000000000..a3ac9eff391
--- /dev/null
+++ b/pkgs/desktops/kde-4/support/eigen.nix
@@ -0,0 +1,13 @@
+args: with args;
+
+stdenv.mkDerivation {
+  name = "eigen-1.0.5";
+  
+  src = fetchsvn {
+    url = svn://anonsvn.kde.org/home/kde/trunk/kdesupport/eigen;
+	rev = 732646;
+	md5 = "f91ad5d3dd992984fb61107fd9050a36";
+  };
+
+  buildInputs = [ cmake ];
+}
diff --git a/pkgs/desktops/kde-4/support/gmm.nix b/pkgs/desktops/kde-4/support/gmm.nix
new file mode 100644
index 00000000000..d32c9b9f765
--- /dev/null
+++ b/pkgs/desktops/kde-4/support/gmm.nix
@@ -0,0 +1,13 @@
+args: with args;
+
+stdenv.mkDerivation {
+  name = "gmm-svn";
+  
+  src = fetchsvn {
+    url = svn://anonsvn.kde.org/home/kde/trunk/kdesupport/gmm;
+	rev = 732646;
+	md5 = "09ee4cfcbb3c428bc681c2da022648bf";
+  };
+
+  buildInputs = [ cmake ];
+}
diff --git a/pkgs/desktops/kde-4/support/qca.nix b/pkgs/desktops/kde-4/support/qca.nix
new file mode 100644
index 00000000000..64b00da91ce
--- /dev/null
+++ b/pkgs/desktops/kde-4/support/qca.nix
@@ -0,0 +1,15 @@
+args: with args;
+
+stdenv.mkDerivation {
+  name = "qca-2.0.0dev";
+  
+  src = fetchsvn {
+    url = svn://anonsvn.kde.org/home/kde/trunk/kdesupport/qca;
+	rev = 732646;
+	md5 = "1df54bf3bf327b14ea1948f9080717c3";
+  };
+
+  buildInputs = [ cmake qt openssl gettext cyrus_sasl libgcrypt gnupg ];
+
+  patchPhase = "sed -e '/set(qca_PLUGINSDIR/s@\${QT_PLUGINS_DIR}@\${CMAKE_INSTALL_PREFIX}/plugins@' -i ../CMakeLists.txt";
+}
diff --git a/pkgs/desktops/kde-4/support/qimageblitz.nix b/pkgs/desktops/kde-4/support/qimageblitz.nix
new file mode 100644
index 00000000000..fe6a03ca7c7
--- /dev/null
+++ b/pkgs/desktops/kde-4/support/qimageblitz.nix
@@ -0,0 +1,13 @@
+args: with args;
+
+stdenv.mkDerivation {
+  name = "qimageblitz-4.0.0svn";
+  
+  src = fetchsvn {
+    url = svn://anonsvn.kde.org/home/kde/trunk/kdesupport/qimageblitz;
+	rev = 732646;
+	md5 = "c37fa505368071ec501e966225e30c78";
+  };
+
+  buildInputs = [cmake qt];
+}
diff --git a/pkgs/desktops/kde-4/support/soprano.nix b/pkgs/desktops/kde-4/support/soprano.nix
new file mode 100644
index 00000000000..0f453d726d7
--- /dev/null
+++ b/pkgs/desktops/kde-4/support/soprano.nix
@@ -0,0 +1,14 @@
+args: with args;
+
+stdenv.mkDerivation {
+  name = "soprano-1.9.0svn";
+  
+  src = fetchsvn {
+    url = svn://anonsvn.kde.org/home/kde/trunk/kdesupport/soprano;
+	rev = 732646;
+	md5 = "c3b43544536f0f8061e4afeb9e368072";
+  };
+
+  CLUCENE_HOME=cluceneCore;
+  buildInputs = [ cmake qt cluceneCore redland ];
+}
diff --git a/pkgs/desktops/kde-4/support/strigi.nix b/pkgs/desktops/kde-4/support/strigi.nix
new file mode 100644
index 00000000000..f0e0fe614be
--- /dev/null
+++ b/pkgs/desktops/kde-4/support/strigi.nix
@@ -0,0 +1,15 @@
+args: with args;
+
+stdenv.mkDerivation {
+  name = "strigi-svn";
+  
+  src = fetchsvn {
+    url = svn://anonsvn.kde.org/home/kde/trunk/kdesupport/strigi;
+	rev = 732646;
+	md5 = "15762f5a406ef84bc1cdd776b2ca9a82";
+  };
+
+  CLUCENE_HOME=cluceneCore;
+  buildInputs = [ cmake zlib cluceneCore bzip2 libxml2 qt dbus
+  log4cxx stdenv.gcc.libc exiv2 bison cppunit perl ];
+}
diff --git a/pkgs/desktops/kde-4/support/taglib.nix b/pkgs/desktops/kde-4/support/taglib.nix
new file mode 100644
index 00000000000..6aecb7a91ef
--- /dev/null
+++ b/pkgs/desktops/kde-4/support/taglib.nix
@@ -0,0 +1,13 @@
+args: with args;
+
+stdenv.mkDerivation {
+  name = "taglib-1.4svn";
+  
+  src = fetchsvn {
+    url = svn://anonsvn.kde.org/home/kde/trunk/kdesupport/taglib;
+	rev = 732646;
+	md5 = "647d68a76858cf3a667656c486b0a8c2";
+  };
+
+  buildInputs = [ cmake zlib ];
+}
diff --git a/pkgs/desktops/kde-4/toys/default.nix b/pkgs/desktops/kde-4/toys/default.nix
new file mode 100644
index 00000000000..19c08c4891b
--- /dev/null
+++ b/pkgs/desktops/kde-4/toys/default.nix
@@ -0,0 +1,12 @@
+args: with args;
+
+stdenv.mkDerivation {
+  name = "kdetoys-4.0beta4";
+  
+  src = fetchurl {
+    url = mirror://kde/unstable/3.95/src/kdetoys-3.95.0.tar.bz2;
+    sha256 = "0qg9ns640v21sa837pg5basnw8clnkyxap2lm7s69ainsg69662v";
+  };
+
+  buildInputs = [kdelibs kdepimlibs kdeworkspace];
+}
diff --git a/pkgs/desktops/kde-4/utils/default.nix b/pkgs/desktops/kde-4/utils/default.nix
new file mode 100644
index 00000000000..cee61c0e4cd
--- /dev/null
+++ b/pkgs/desktops/kde-4/utils/default.nix
@@ -0,0 +1,13 @@
+args: with args;
+
+stdenv.mkDerivation {
+  name = "kdeutils-4.0beta4";
+  
+  src = fetchurl {
+    url = mirror://kde/unstable/3.95/src/kdeutils-3.95.0.tar.bz2;
+    sha256 = "1b8jvdy83qwhnfwqxzx96bxnaxss25psazifymyb0z4ynkqmadlh";
+  };
+
+  buildInputs = [kdelibs kdepimlibs kdeworkspace gmp libzip python ];
+# TODO : tpctl
+}
diff --git a/pkgs/desktops/kde-4/workspace/builder.sh b/pkgs/desktops/kde-4/workspace/builder.sh
new file mode 100755
index 00000000000..648d6175f35
--- /dev/null
+++ b/pkgs/desktops/kde-4/workspace/builder.sh
@@ -0,0 +1,12 @@
+source ${stdenv}/setup
+
+myPatchPhase()
+{
+	echo "Fixing dbus calls in CMakeLists.txt files"
+# Trailing slash in sed is essential
+	find .. -name CMakeLists.txt \
+	| xargs sed -e "s@\${DBUS_INTERFACES_INSTALL_DIR}/@${kdelibs}/share/dbus-1/interfaces/@" -i
+	sed -e '/^#define HAS_RANDR_1_2 1$/d' -i ../kcontrol/randr/randr.h
+}
+patchPhase=myPatchPhase
+genericBuild
diff --git a/pkgs/desktops/kde-4/workspace/default.nix b/pkgs/desktops/kde-4/workspace/default.nix
new file mode 100644
index 00000000000..829393f67e9
--- /dev/null
+++ b/pkgs/desktops/kde-4/workspace/default.nix
@@ -0,0 +1,15 @@
+args: with args;
+
+stdenv.mkDerivation {
+  name = "kdebase-workspace-4.0beta4";
+  builder = ./builder.sh;
+  
+  src = fetchurl {
+    url = mirror://kde/unstable/3.95/src/kdebase-workspace-3.95.0.tar.bz2;
+    sha256 = "0jripmw8vgs7lxlsif552rr9vqps5kav8jdlfyhmr9c3xw5c99v0";
+  };
+
+  buildInputs = [kdelibs kdepimlibs kdebase kderuntime stdenv.gcc.libc];
+  inherit kdelibs;
+}
+