diff --git a/pkgs/applications/kde-apps-15.12/default.nix b/pkgs/applications/kde-apps-15.12/default.nix index 807c32ccb7d..a89f88b58fa 100644 --- a/pkgs/applications/kde-apps-15.12/default.nix +++ b/pkgs/applications/kde-apps-15.12/default.nix @@ -27,7 +27,7 @@ let }; packages = self: with self; { - inherit (pkgs.kdeApps_15_08) kdelibs ksnapshot; + kdelibs = callPackage ./kdelibs { inherit (pkgs) attica phonon; }; ark = callPackage ./ark.nix {}; baloo-widgets = callPackage ./baloo-widgets.nix {}; diff --git a/pkgs/applications/kde-apps-15.12/kdelibs/0001-old-kde4-cmake-policies.patch b/pkgs/applications/kde-apps-15.12/kdelibs/0001-old-kde4-cmake-policies.patch new file mode 100644 index 00000000000..b7d7300e9a8 --- /dev/null +++ b/pkgs/applications/kde-apps-15.12/kdelibs/0001-old-kde4-cmake-policies.patch @@ -0,0 +1,56 @@ +From b43c49109694940f0a26240753e879eb629dd02d Mon Sep 17 00:00:00 2001 +From: Thomas Tuegel +Date: Mon, 7 Sep 2015 13:54:57 -0500 +Subject: [PATCH 1/2] old kde4 cmake policies + +--- + cmake/modules/FindKDE4Internal.cmake | 33 +++++++++++++++++++++++++++++++++ + 1 file changed, 33 insertions(+) + +diff --git a/cmake/modules/FindKDE4Internal.cmake b/cmake/modules/FindKDE4Internal.cmake +index 7d54b9b..c435571 100644 +--- a/cmake/modules/FindKDE4Internal.cmake ++++ b/cmake/modules/FindKDE4Internal.cmake +@@ -345,6 +345,39 @@ + # Redistribution and use is allowed according to the terms of the BSD license. + # For details see the accompanying COPYING-CMAKE-SCRIPTS file. + ++# this is required now by cmake 2.6 and so must not be skipped by if(KDE4_FOUND) below ++cmake_minimum_required(VERSION 2.8.9 FATAL_ERROR) ++# set the cmake policies to the 2.4.x compatibility settings (may change for KDE 4.3) ++cmake_policy(VERSION 2.4.5) ++ ++# CMake 2.6, set compatibility behaviour to cmake 2.4 ++# this must be executed always, because the CMAKE_MINIMUM_REQUIRED() command above ++# resets the policy settings, so we get a lot of warnings ++ ++# CMP0000: don't require cmake_minimum_version() directly in the top level CMakeLists.txt, FindKDE4Internal.cmake is good enough ++cmake_policy(SET CMP0000 OLD) ++# CMP0002: in KDE4 we have multiple targets with the same name for the unit tests ++cmake_policy(SET CMP0002 OLD) ++# CMP0003: add the link paths to the link command as with cmake 2.4 ++cmake_policy(SET CMP0003 OLD) ++# CMP0005: keep escaping behaviour for definitions added via add_definitions() ++cmake_policy(SET CMP0005 OLD) ++# since cmake 2.6.3: NEW behaviour is that setting policies doesn't "escape" the file ++# where this is done, macros and functions are executed with the policies as they ++# were when the were defined. Keep the OLD behaviour so we can set the policies here ++# for all KDE software without the big warning ++cmake_policy(SET CMP0011 OLD) ++ ++# since cmake 2.8.4: when include()ing from inside cmake's module dir, prefer the files ++# in this directory over those from CMAKE_MODULE_PATH ++cmake_policy(SET CMP0017 NEW) ++ ++# since cmake 3.0: use of the LOCATION target property is disallowed while it is used in KDE4Macros.cmake ++if (POLICY CMP0026) ++ cmake_policy(SET CMP0026 OLD) ++endif (POLICY CMP0026) ++ ++ + # Only do something if it hasn't been found yet + if(NOT KDE4_FOUND) + +-- +2.5.0 + diff --git a/pkgs/applications/kde-apps-15.12/kdelibs/0002-polkit-install-path.patch b/pkgs/applications/kde-apps-15.12/kdelibs/0002-polkit-install-path.patch new file mode 100644 index 00000000000..ff0306ea148 --- /dev/null +++ b/pkgs/applications/kde-apps-15.12/kdelibs/0002-polkit-install-path.patch @@ -0,0 +1,25 @@ +From fab35bac146a817f3af80f45531355fd70cd226b Mon Sep 17 00:00:00 2001 +From: Thomas Tuegel +Date: Mon, 7 Sep 2015 13:56:03 -0500 +Subject: [PATCH 2/2] polkit install path + +--- + kdecore/auth/ConfigureChecks.cmake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/kdecore/auth/ConfigureChecks.cmake b/kdecore/auth/ConfigureChecks.cmake +index 7cf9cb5..c8334ae 100644 +--- a/kdecore/auth/ConfigureChecks.cmake ++++ b/kdecore/auth/ConfigureChecks.cmake +@@ -150,7 +150,7 @@ elseif(KDE4_AUTH_BACKEND_NAME STREQUAL "POLKITQT-1") + ${CMAKE_INSTALL_PREFIX} _KDE4_AUTH_POLICY_FILES_INSTALL_DIR + ${POLKITQT-1_POLICY_FILES_INSTALL_DIR}) + +- set(KDE4_AUTH_POLICY_FILES_INSTALL_DIR ${_KDE4_AUTH_POLICY_FILES_INSTALL_DIR} CACHE STRING ++ set(KDE4_AUTH_POLICY_FILES_INSTALL_DIR "\${CMAKE_INSTALL_PREFIX}/share/polkit-1/actions" CACHE STRING + "Where policy files generated by KAuth will be installed" FORCE) + elseif(KDE4_AUTH_BACKEND_NAME STREQUAL "FAKE") + set (KAUTH_COMPILING_FAKE_BACKEND TRUE) +-- +2.5.0 + diff --git a/pkgs/applications/kde-apps-15.12/kdelibs/0003-remove_xdg_impurities.patch b/pkgs/applications/kde-apps-15.12/kdelibs/0003-remove_xdg_impurities.patch new file mode 100644 index 00000000000..a79d7b2b7d1 --- /dev/null +++ b/pkgs/applications/kde-apps-15.12/kdelibs/0003-remove_xdg_impurities.patch @@ -0,0 +1,47 @@ +diff --git a/kdecore/kernel/kstandarddirs.cpp b/kdecore/kernel/kstandarddirs.cpp +index ab8f76d..2ae5089 100644 +--- a/kdecore/kernel/kstandarddirs.cpp ++++ b/kdecore/kernel/kstandarddirs.cpp +@@ -1768,12 +1768,6 @@ void KStandardDirs::addKDEDefaults() + else + { + xdgdirList.clear(); +- xdgdirList.append(QString::fromLatin1("/etc/xdg")); +-#ifdef Q_WS_WIN +- xdgdirList.append(installPath("kdedir") + QString::fromLatin1("etc/xdg")); +-#else +- xdgdirList.append(QFile::decodeName(KDESYSCONFDIR "/xdg")); +-#endif + } + + QString localXdgDir = readEnvPath("XDG_CONFIG_HOME"); +@@ -1821,10 +1815,6 @@ void KStandardDirs::addKDEDefaults() + } + } else { + xdgdirList = kdedirDataDirs; +-#ifndef Q_WS_WIN +- xdgdirList.append(QString::fromLatin1("/usr/local/share/")); +- xdgdirList.append(QString::fromLatin1("/usr/share/")); +-#endif + } + + localXdgDir = readEnvPath("XDG_DATA_HOME"); +diff --git a/solid/solid/xdgbasedirs.cpp b/solid/solid/xdgbasedirs.cpp +index 4c9cad9..6849d45 100644 +--- a/solid/solid/xdgbasedirs.cpp ++++ b/solid/solid/xdgbasedirs.cpp +@@ -70,12 +70,12 @@ QStringList Solid::XdgBaseDirs::systemPathList( const char *resource ) + { + if ( qstrncmp( "data", resource, 4 ) == 0 ) { + if ( instance()->mDataDirs.isEmpty() ) { +- instance()->mDataDirs = instance()->systemPathList( "XDG_DATA_DIRS", "/usr/local/share:/usr/share" ); ++ instance()->mDataDirs = instance()->systemPathList( "XDG_DATA_DIRS", "" ); + } + return instance()->mDataDirs; + } else if ( qstrncmp( "config", resource, 6 ) == 0 ) { + if ( instance()->mConfigDirs.isEmpty() ) { +- instance()->mConfigDirs = instance()->systemPathList( "XDG_CONFIG_DIRS", "/etc/xdg" ); ++ instance()->mConfigDirs = instance()->systemPathList( "XDG_CONFIG_DIRS", "" ); + } + return instance()->mConfigDirs; + } diff --git a/pkgs/applications/kde-apps-15.12/kdelibs/default.nix b/pkgs/applications/kde-apps-15.12/kdelibs/default.nix new file mode 100644 index 00000000000..a30b19774f2 --- /dev/null +++ b/pkgs/applications/kde-apps-15.12/kdelibs/default.nix @@ -0,0 +1,43 @@ +{ kdeApp, attica, attr, automoc4, avahi, bison, cmake +, docbook_xml_dtd_42, docbook_xsl, flex, giflib, ilmbase +, libdbusmenu_qt, libjpeg, libxml2, libxslt, perl, phonon, pkgconfig +, polkit_qt4, qca2, qt4, shared_desktop_ontologies, shared_mime_info +, soprano, strigi, udev, xz +, lib +}: + +kdeApp { + name = "kdelibs"; + + buildInputs = [ + attica attr avahi giflib libdbusmenu_qt libjpeg libxml2 + polkit_qt4 qca2 shared_desktop_ontologies udev xz + ]; + propagatedBuildInputs = [ qt4 soprano phonon strigi ]; + nativeBuildInputs = [ + automoc4 bison cmake flex libxslt perl pkgconfig shared_mime_info + ]; + + patches = [ + ./0001-old-kde4-cmake-policies.patch + ./0002-polkit-install-path.patch + ./0003-remove_xdg_impurities.patch + ]; + + # cmake does not detect path to `ilmbase` + NIX_CFLAGS_COMPILE = "-I${ilmbase}/include/OpenEXR"; + + cmakeFlags = [ + "-DDOCBOOKXML_CURRENTDTD_DIR=${docbook_xml_dtd_42}/xml/dtd/docbook" + "-DDOCBOOKXSL_DIR=${docbook_xsl}/xml/xsl/docbook" + "-DWITH_SOLID_UDISKS2=ON" + "-DKDE_DEFAULT_HOME=.kde" + ]; + + setupHook = ./setup-hook.sh; + + meta = { + licenses = with lib.licenses; [ gpl2 fdl12 lgpl21 ]; + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/applications/kde-apps-15.12/kdelibs/polkit-install.patch b/pkgs/applications/kde-apps-15.12/kdelibs/polkit-install.patch new file mode 100644 index 00000000000..d2ecac663ec --- /dev/null +++ b/pkgs/applications/kde-apps-15.12/kdelibs/polkit-install.patch @@ -0,0 +1,12 @@ +diff -ru -x '*~' kdelibs-4.6.90-orig/kdecore/auth/ConfigureChecks.cmake kdelibs-4.6.90/kdecore/auth/ConfigureChecks.cmake +--- kdelibs-4.6.90-orig/kdecore/auth/ConfigureChecks.cmake 2011-05-20 22:24:54.000000000 +0200 ++++ kdelibs-4.6.90/kdecore/auth/ConfigureChecks.cmake 2011-07-12 14:03:00.000000000 +0200 +@@ -139,7 +139,7 @@ + ${CMAKE_INSTALL_PREFIX} _KDE4_AUTH_POLICY_FILES_INSTALL_DIR + ${POLKITQT-1_POLICY_FILES_INSTALL_DIR}) + +- set(KDE4_AUTH_POLICY_FILES_INSTALL_DIR ${_KDE4_AUTH_POLICY_FILES_INSTALL_DIR} CACHE STRING ++ set(KDE4_AUTH_POLICY_FILES_INSTALL_DIR "\${CMAKE_INSTALL_PREFIX}/share/polkit-1/actions" CACHE STRING + "Where policy files generated by KAuth will be installed" FORCE) + elseif(KDE4_AUTH_BACKEND_NAME STREQUAL "FAKE") + set (KAUTH_COMPILING_FAKE_BACKEND TRUE) diff --git a/pkgs/applications/kde-apps-15.12/kdelibs/setup-hook.sh b/pkgs/applications/kde-apps-15.12/kdelibs/setup-hook.sh new file mode 100644 index 00000000000..e0a75dc8acd --- /dev/null +++ b/pkgs/applications/kde-apps-15.12/kdelibs/setup-hook.sh @@ -0,0 +1,10 @@ +addQt4Plugins() { + if [[ -d "$1/lib/qt4/plugins" ]]; then + propagatedUserEnvPkgs+=" $1" + fi + + if [[ -d "$1/lib/kde4/plugins" ]]; then + propagatedUserEnvPkgs+=" $1" + fi +} +envHooks+=(addQt4Plugins) diff --git a/pkgs/applications/kde-apps-15.12/ksnapshot.nix b/pkgs/applications/kde-apps-15.12/ksnapshot.nix deleted file mode 100644 index b757f4f0403..00000000000 --- a/pkgs/applications/kde-apps-15.12/ksnapshot.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ kdeApp -, lib -, automoc4 -, cmake -, perl -, pkgconfig -, kdelibs -, libkipi -, libXfixes -}: - -kdeApp { - name = "ksnapshot"; - nativeBuildInputs = [ - automoc4 - cmake - perl - pkgconfig - ]; - buildInputs = [ - kdelibs - libkipi - libXfixes - ]; - meta = { - license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; - maintainers = [ lib.maintainers.ttuegel ]; - }; -}