diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2015-10-01 14:17:46 +0200 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2015-10-01 14:17:46 +0200 |
commit | b23038dd801fcbfad2980664758d820b29abebae (patch) | |
tree | a743ff1a9428dea20b791e9556a32a077293ad41 /pkgs/desktops | |
parent | 96e1b7eaf9eaaa3592906a97e0c3cc4a4552769c (diff) | |
parent | 562851a0680c35ecc34e59976e2f8eabe142dca6 (diff) | |
download | nixlib-b23038dd801fcbfad2980664758d820b29abebae.tar nixlib-b23038dd801fcbfad2980664758d820b29abebae.tar.gz nixlib-b23038dd801fcbfad2980664758d820b29abebae.tar.bz2 nixlib-b23038dd801fcbfad2980664758d820b29abebae.tar.lz nixlib-b23038dd801fcbfad2980664758d820b29abebae.tar.xz nixlib-b23038dd801fcbfad2980664758d820b29abebae.tar.zst nixlib-b23038dd801fcbfad2980664758d820b29abebae.zip |
Merge remote-tracking branch 'origin/master' into systemd-219
Diffstat (limited to 'pkgs/desktops')
72 files changed, 2641 insertions, 81 deletions
diff --git a/pkgs/desktops/e19/efl.nix b/pkgs/desktops/e19/efl.nix index 10b69647c0ee..16c934b3b3af 100644 --- a/pkgs/desktops/e19/efl.nix +++ b/pkgs/desktops/e19/efl.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgconfig, openssl, libjpeg, zlib, freetype, fontconfig, fribidi, SDL2, SDL, mesa, giflib, libpng, libtiff, glib, gst_all_1, libpulseaudio, libsndfile, xlibs, libdrm, libxkbcommon, udev, utillinuxCurses, dbus, bullet, luajit, python27Packages, openjpeg, doxygen, expat, harfbuzz, jbig2dec, librsvg, dbus_libs, alsaLib, poppler, libraw, libspectre, xineLib, vlc, libwebp, curl, libinput }: +{ stdenv, fetchurl, pkgconfig, openssl, libjpeg, zlib, freetype, fontconfig, fribidi, SDL2, SDL, mesa, giflib, libpng, libtiff, glib, gst_all_1, libpulseaudio, libsndfile, xorg, libdrm, libxkbcommon, udev, utillinuxCurses, dbus, bullet, luajit, python27Packages, openjpeg, doxygen, expat, harfbuzz, jbig2dec, librsvg, dbus_libs, alsaLib, poppler, libraw, libspectre, xineLib, vlc, libwebp, curl, libinput }: stdenv.mkDerivation rec { @@ -11,13 +11,13 @@ stdenv.mkDerivation rec { buildInputs = [ pkgconfig openssl zlib freetype fontconfig fribidi SDL2 SDL mesa giflib libpng libtiff glib gst_all_1.gstreamer gst_all_1.gst-plugins-base - gst_all_1.gst-libav libpulseaudio libsndfile xlibs.libXcursor xlibs.printproto - xlibs.libX11 udev utillinuxCurses ]; + gst_all_1.gst-libav libpulseaudio libsndfile xorg.libXcursor xorg.printproto + xorg.libX11 udev utillinuxCurses ]; - propagatedBuildInputs = [ libxkbcommon python27Packages.dbus dbus libjpeg xlibs.libXcomposite - xlibs.libXdamage xlibs.libXinerama xlibs.libXp xlibs.libXtst xlibs.libXi xlibs.libXext - bullet xlibs.libXScrnSaver xlibs.libXrender xlibs.libXfixes xlibs.libXrandr - xlibs.libxkbfile xlibs.libxcb xlibs.xcbutilkeysyms openjpeg doxygen expat luajit + propagatedBuildInputs = [ libxkbcommon python27Packages.dbus dbus libjpeg xorg.libXcomposite + xorg.libXdamage xorg.libXinerama xorg.libXp xorg.libXtst xorg.libXi xorg.libXext + bullet xorg.libXScrnSaver xorg.libXrender xorg.libXfixes xorg.libXrandr + xorg.libxkbfile xorg.libxcb xorg.xcbutilkeysyms openjpeg doxygen expat luajit harfbuzz jbig2dec librsvg dbus_libs alsaLib poppler libraw libspectre xineLib vlc libwebp curl libdrm libinput ]; @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { "--disable-tslib" "--with-systemdunitdir=$out/systemd/user" "ac_ct_CXX=foo" ]; - NIX_CFLAGS_COMPILE = [ "-I${xlibs.libXtst}" "-I${dbus_libs}/include/dbus-1.0" "-I${dbus_libs}/lib/dbus-1.0/include" ]; + NIX_CFLAGS_COMPILE = [ "-I${xorg.libXtst}" "-I${dbus_libs}/include/dbus-1.0" "-I${dbus_libs}/lib/dbus-1.0/include" ]; patches = [ ./efl-elua.patch ]; diff --git a/pkgs/desktops/e19/enlightenment.nix b/pkgs/desktops/e19/enlightenment.nix index 7a350d7396b6..e4396073c03b 100644 --- a/pkgs/desktops/e19/enlightenment.nix +++ b/pkgs/desktops/e19/enlightenment.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgconfig, e19, xlibs, libffi, pam, alsaLib, luajit, bzip2 +{ stdenv, fetchurl, pkgconfig, e19, xorg, libffi, pam, alsaLib, luajit, bzip2 , libpthreadstubs, gdbm, libcap, mesa_glu, xkeyboard_config, set_freqset_setuid ? false }: stdenv.mkDerivation rec { @@ -8,8 +8,8 @@ stdenv.mkDerivation rec { url = "http://download.enlightenment.org/rel/apps/enlightenment/${name}.tar.xz"; sha256 = "1y83jnq01k9i328adgjgpfwgpvvd2a1ixpm029pjcar8p1mvgadi"; }; - buildInputs = [ pkgconfig e19.efl e19.elementary xlibs.libXdmcp xlibs.libxcb - xlibs.xcbutilkeysyms xlibs.libXrandr libffi pam alsaLib luajit bzip2 + buildInputs = [ pkgconfig e19.efl e19.elementary xorg.libXdmcp xorg.libxcb + xorg.xcbutilkeysyms xorg.libXrandr libffi pam alsaLib luajit bzip2 libpthreadstubs gdbm ] ++ stdenv.lib.optionals stdenv.isLinux [ libcap ]; NIX_CFLAGS_COMPILE = [ "-I${e19.efl}/include/eo-1" "-I${e19.efl}/include/emile-1" ]; preConfigure = '' diff --git a/pkgs/desktops/enlightenment/default.nix b/pkgs/desktops/enlightenment/default.nix index 61f58719b272..5aa3d781e4b3 100644 --- a/pkgs/desktops/enlightenment/default.nix +++ b/pkgs/desktops/enlightenment/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgconfig, x11, xlibs, dbus, imlib2, freetype }: +{ stdenv, fetchurl, pkgconfig, xlibsWrapper, xorg, dbus, imlib2, freetype }: let version = "0.16.8.15"; in stdenv.mkDerivation { @@ -10,7 +10,7 @@ let version = "0.16.8.15"; in }; buildInputs = [pkgconfig imlib2 freetype - xlibs.libX11 xlibs.libXt xlibs.libXext xlibs.libXrender xlibs.libXft ]; + xorg.libX11 xorg.libXt xorg.libXext xorg.libXrender xorg.libXft ]; meta = { description = "Desktop shell built on the Enlightenment Foundation Libraries"; diff --git a/pkgs/desktops/gnome-2/platform/gtkglext/default.nix b/pkgs/desktops/gnome-2/platform/gtkglext/default.nix index b278dadfe24c..ff50bcd5e5cd 100644 --- a/pkgs/desktops/gnome-2/platform/gtkglext/default.nix +++ b/pkgs/desktops/gnome-2/platform/gtkglext/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgconfig, glib, gtk, mesa, pango, pangox_compat, xlibs }: +{ stdenv, fetchurl, pkgconfig, glib, gtk, mesa, pango, pangox_compat, xorg }: stdenv.mkDerivation rec { name = "gtkglext-1.2.0"; @@ -8,7 +8,7 @@ stdenv.mkDerivation rec { sha256 = "0lbz96jwz57hnn52b8rfj54inwpwcc9fkdq6ya043cgnfih77g8n"; }; - buildInputs = with xlibs; + buildInputs = with xorg; [ pkgconfig glib gtk mesa pango pangox_compat libX11 libXmu ]; # The library uses `GTK_WIDGET_REALIZED', `GTK_WIDGET_TOPLEVEL', and diff --git a/pkgs/desktops/gnome-2/platform/libgnomeui/default.nix b/pkgs/desktops/gnome-2/platform/libgnomeui/default.nix index d230d19d5886..961fb1c0a199 100644 --- a/pkgs/desktops/gnome-2/platform/libgnomeui/default.nix +++ b/pkgs/desktops/gnome-2/platform/libgnomeui/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgconfig, libxml2, xlibs, glib, pango +{ stdenv, fetchurl, pkgconfig, libxml2, xorg, glib, pango , intltool, libgnome, libgnomecanvas, libbonoboui, GConf, libtool , gnome_vfs, libgnome_keyring, libglade }: @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkgconfig intltool ]; buildInputs = - [ xlibs.xlibs libxml2 GConf pango glib libgnome_keyring libglade libtool ]; + [ xorg.xlibsWrapper libxml2 GConf pango glib libgnome_keyring libglade libtool ]; propagatedBuildInputs = [ libgnome libbonoboui libgnomecanvas gnome_vfs ]; } diff --git a/pkgs/desktops/gnome-3/3.16/default.nix b/pkgs/desktops/gnome-3/3.16/default.nix index 8251526bbd51..d84713903823 100644 --- a/pkgs/desktops/gnome-3/3.16/default.nix +++ b/pkgs/desktops/gnome-3/3.16/default.nix @@ -369,12 +369,13 @@ let gitg = callPackage ./misc/gitg { webkitgtk = webkitgtk24x; + libgit2 = pkgs.libgit2_0_21; }; libgda = callPackage ./misc/libgda { }; libgit2-glib = callPackage ./misc/libgit2-glib { - libgit2 = pkgs.libgit2.override { libssh2 = null; }; + libgit2 = pkgs.libgit2_0_21.override { libssh2 = null; }; }; libmediaart = callPackage ./misc/libmediaart { }; diff --git a/pkgs/desktops/gnome-3/3.16/misc/gpaste/default.nix b/pkgs/desktops/gnome-3/3.16/misc/gpaste/default.nix index dee9caf444c5..6563f7979700 100644 --- a/pkgs/desktops/gnome-3/3.16/misc/gpaste/default.nix +++ b/pkgs/desktops/gnome-3/3.16/misc/gpaste/default.nix @@ -2,12 +2,12 @@ , pango, gtk3, gnome3, dbus, clutter, appstream-glib, makeWrapper }: stdenv.mkDerivation rec { - version = "${gnome3.version}.3"; + version = "${gnome3.version}.3.1"; name = "gpaste-${version}"; src = fetchurl { url = "https://github.com/Keruspe/GPaste/archive/v${version}.tar.gz"; - sha256 = "1czc707y2ksb8lgq1la0qkj3wpi202hjfiyshsndhw0pqn3qjj4a"; + sha256 = "1m171r1d1jrv9d7ssj25ikrw7lc96gr41rgkxnsa2lsqrvv8i16l"; }; buildInputs = [ intltool autoreconfHook pkgconfig vala glib diff --git a/pkgs/desktops/kde-4.14/files/ksysguard-0001-disable-signalplottertest.patch b/pkgs/desktops/kde-4.14/files/ksysguard-0001-disable-signalplottertest.patch new file mode 100644 index 000000000000..cd19b7e2d72a --- /dev/null +++ b/pkgs/desktops/kde-4.14/files/ksysguard-0001-disable-signalplottertest.patch @@ -0,0 +1,36 @@ +From 38f35dcec38458f7192424b3d63bc0c614bb86e0 Mon Sep 17 00:00:00 2001 +From: Thomas Tuegel <ttuegel@gmail.com> +Date: Mon, 7 Sep 2015 18:55:44 -0500 +Subject: [PATCH] ksysguard disable signalplottertest + +--- + libs/ksysguard/tests/CMakeLists.txt | 16 ---------------- + 1 file changed, 16 deletions(-) + +diff --git a/libs/ksysguard/tests/CMakeLists.txt b/libs/ksysguard/tests/CMakeLists.txt +index d472fd7..f178b71 100644 +--- a/libs/ksysguard/tests/CMakeLists.txt ++++ b/libs/ksysguard/tests/CMakeLists.txt +@@ -14,19 +14,3 @@ target_link_libraries(processtest processui ${KDE4_KDECORE_LIBS} ${QT_QTTEST_LIB + set( signalplotterbenchmark_SRCS signalplotterbenchmark.cpp ../signalplotter/ksignalplotter.cpp) + kde4_add_unit_test( signalplotterbenchmark TESTNAME ksysguard-signalplottertest ${signalplotterbenchmark_SRCS} ) + target_link_libraries( signalplotterbenchmark ${KDE4_KDEUI_LIBS} ${QT_QTTEST_LIBRARY} ${QT_QTBENCHMARK_LIBRARY} ) +- +- +-# KGraphicsSignalPlotter benchmark +-set( graphicssignalplotterbenchmark_SRCS graphicssignalplotterbenchmark.cpp ../signalplotter/kgraphicssignalplotter.cpp) +-kde4_add_unit_test( graphicssignalplotterbenchmark TESTNAME ksysguard-signalplottertest ${graphicssignalplotterbenchmark_SRCS} ) +-target_link_libraries( graphicssignalplotterbenchmark ${KDE4_KDEUI_LIBS} ${QT_QTTEST_LIBRARY} ${QT_QTBENCHMARK_LIBRARY} ) +- +- +-# KSignalPlotter unit test +-set( signalplottertest_SRCS signalplottertest.cpp ../signalplotter/ksignalplotter.cpp) +-kde4_add_unit_test( signalplottertest TESTNAME ksysguard-signalplottertest ${signalplottertest_SRCS} ) +-target_link_libraries( signalplottertest ${KDE4_KDEUI_LIBS} ${QT_QTTEST_LIBRARY} ) +- +- +- +- +-- +2.5.0 + diff --git a/pkgs/desktops/kde-4.14/files/rocs-0001-duplicate-add_test.patch b/pkgs/desktops/kde-4.14/files/rocs-0001-duplicate-add_test.patch new file mode 100644 index 000000000000..4127b16d5f6d --- /dev/null +++ b/pkgs/desktops/kde-4.14/files/rocs-0001-duplicate-add_test.patch @@ -0,0 +1,62 @@ +From 93081f817f20bbc26b55e1b37b22d60535d153f7 Mon Sep 17 00:00:00 2001 +From: Thomas Tuegel <ttuegel@gmail.com> +Date: Thu, 10 Sep 2015 18:41:57 -0500 +Subject: [PATCH] duplicate add_test + +--- + RocsCore/LoadSave/Plugins/dotFileFormat/Tests/CMakeLists.txt | 1 - + RocsCore/LoadSave/Plugins/gmlFileFormat/Tests/CMakeLists.txt | 1 - + RocsCore/LoadSave/Plugins/kmlFileFormat/Tests/CMakeLists.txt | 1 - + RocsCore/LoadSave/Plugins/tgfFileFormat/Tests/CMakeLists.txt | 1 - + RocsCore/LoadSave/Plugins/tikzFileFormat/Tests/CMakeLists.txt | 1 - + 5 files changed, 5 deletions(-) + +diff --git a/RocsCore/LoadSave/Plugins/dotFileFormat/Tests/CMakeLists.txt b/RocsCore/LoadSave/Plugins/dotFileFormat/Tests/CMakeLists.txt +index 32a2504..4fbb838 100644 +--- a/RocsCore/LoadSave/Plugins/dotFileFormat/Tests/CMakeLists.txt ++++ b/RocsCore/LoadSave/Plugins/dotFileFormat/Tests/CMakeLists.txt +@@ -33,4 +33,3 @@ target_link_libraries(TestDotFileFormatPlugin + ${QT_QTTEST_LIBRARY} + ${KDE4_KDECORE_LIBS} + ) +-add_test(TestDotFileFormatPlugin TestDotFileFormatPlugin) +diff --git a/RocsCore/LoadSave/Plugins/gmlFileFormat/Tests/CMakeLists.txt b/RocsCore/LoadSave/Plugins/gmlFileFormat/Tests/CMakeLists.txt +index 615004c..6383bd8 100644 +--- a/RocsCore/LoadSave/Plugins/gmlFileFormat/Tests/CMakeLists.txt ++++ b/RocsCore/LoadSave/Plugins/gmlFileFormat/Tests/CMakeLists.txt +@@ -32,4 +32,3 @@ target_link_libraries(TestGmlFileFormatPlugin + ${QT_QTTEST_LIBRARY} + ${KDE4_KDECORE_LIBS} + ) +-add_test(TestGmlFileFormatPlugin TestGmlFileFormatPlugin) +diff --git a/RocsCore/LoadSave/Plugins/kmlFileFormat/Tests/CMakeLists.txt b/RocsCore/LoadSave/Plugins/kmlFileFormat/Tests/CMakeLists.txt +index f9cdbfa..842d14b 100644 +--- a/RocsCore/LoadSave/Plugins/kmlFileFormat/Tests/CMakeLists.txt ++++ b/RocsCore/LoadSave/Plugins/kmlFileFormat/Tests/CMakeLists.txt +@@ -30,4 +30,3 @@ target_link_libraries(TestKmlFileFormatPlugin + ${QT_QTTEST_LIBRARY} + ${KDE4_KDECORE_LIBS} + ) +-add_test(TestKmlFileFormatPlugin TestKmlFileFormatPlugin) +diff --git a/RocsCore/LoadSave/Plugins/tgfFileFormat/Tests/CMakeLists.txt b/RocsCore/LoadSave/Plugins/tgfFileFormat/Tests/CMakeLists.txt +index 33c0da8..70cab8d 100644 +--- a/RocsCore/LoadSave/Plugins/tgfFileFormat/Tests/CMakeLists.txt ++++ b/RocsCore/LoadSave/Plugins/tgfFileFormat/Tests/CMakeLists.txt +@@ -35,4 +35,3 @@ target_link_libraries(TestTgfFileFormatPlugin + ${QT_QTTEST_LIBRARY} + ${KDE4_KDECORE_LIBS} + ) +-add_test(TestTgfFileFormatPlugin TestTgfFileFormatPlugin) +diff --git a/RocsCore/LoadSave/Plugins/tikzFileFormat/Tests/CMakeLists.txt b/RocsCore/LoadSave/Plugins/tikzFileFormat/Tests/CMakeLists.txt +index b52736e..58ee40e 100644 +--- a/RocsCore/LoadSave/Plugins/tikzFileFormat/Tests/CMakeLists.txt ++++ b/RocsCore/LoadSave/Plugins/tikzFileFormat/Tests/CMakeLists.txt +@@ -29,5 +29,4 @@ target_link_libraries(TestTikzFileFormatPlugin + ${QT_QTTEST_LIBRARY} + ${KDE4_KDECORE_LIBS} + ) +-add_test(TestTikzFileFormatPlugin TestTikzFileFormatPlugin) + +-- +2.5.0 + diff --git a/pkgs/desktops/kde-4.14/kde-package/default.nix b/pkgs/desktops/kde-4.14/kde-package/default.nix index c78dfbd8a36a..52600e183bdd 100644 --- a/pkgs/desktops/kde-4.14/kde-package/default.nix +++ b/pkgs/desktops/kde-4.14/kde-package/default.nix @@ -1,4 +1,4 @@ -{ callPackage, runCommand, stdenv, fetchurl, qt4, cmake, automoc4 +{ callPackage, runCommand, stdenv, fetchurl, qt4, cmake, automoc4, perl, pkgconfig , release, branch, ignoreList, extraSubpkgs }: @@ -29,13 +29,14 @@ rec { # released as individual tarballs kdeMonoPkg = name: let n_ = name; v_ = getAttr name manifest.versions; in - a@{meta, name ? n_, version ? v_, ...}: + a@{meta, name ? n_, version ? v_, nativeBuildInputs ? [], ...}: stdenv.mkDerivation ({ name = "${name}-${version}"; src = kdesrc name version; + nativeBuildInputs = nativeBuildInputs ++ [ automoc4 cmake perl pkgconfig ]; meta = defMeta // meta; enableParallelBuilding = true; - } // (removeAttrs a [ "meta" "name" ])); + } // (removeAttrs a [ "meta" "name" "nativeBuildInputs" ])); # kdeMonoPkg wrapper for modules splitted upstream compatible with combinePkgs # API. @@ -45,10 +46,11 @@ rec { kdeSubdirPkg = module: {name, subdir ? name, sane ? name}: let name_ = name; version_ = getAttr module manifest.versions; in - a@{cmakeFlags ? [], name ? name_, version ? version_, meta ? {}, ...}: + a@{cmakeFlags ? [], name ? name_, version ? version_, meta ? {}, nativeBuildInputs ? [], ...}: stdenv.mkDerivation ({ name = "${name}-${release}"; src = kdesrc module version; + nativeBuildInputs = nativeBuildInputs ++ [ automoc4 cmake perl pkgconfig ]; cmakeFlags = [ "-DDISABLE_ALL_OPTIONAL_SUBDIRECTORIES=TRUE" "-DBUILD_doc=TRUE" @@ -56,7 +58,7 @@ rec { ] ++ cmakeFlags; meta = defMeta // meta; enableParallelBuilding = module.enableParallelBuilding or true; - } // (removeAttrs a [ "meta" "name" "cmakeFlags" ])); + } // (removeAttrs a [ "meta" "name" "cmakeFlags" "nativeBuildInputs" ])); # A KDE monolithic module kdeMonoModule = name: path: callPackage path { kde = kdeMonoPkg name; }; diff --git a/pkgs/desktops/kde-4.14/kde-runtime.nix b/pkgs/desktops/kde-4.14/kde-runtime.nix index ddda04fd3705..ae4959662626 100644 --- a/pkgs/desktops/kde-4.14/kde-runtime.nix +++ b/pkgs/desktops/kde-4.14/kde-runtime.nix @@ -1,4 +1,4 @@ -{ kde, kdelibs, bzip2, libssh, exiv2, attica, qca2 +{ kde, kdelibs, bzip2, libssh, exiv2, attica, qca2, shared_mime_info , libcanberra, virtuoso, samba, libjpeg, ntrack, pkgconfig, xz, libpulseaudio , networkmanager, kactivities, kdepimlibs, openexr, ilmbase, gpgme }: @@ -14,7 +14,7 @@ kde { #todo: gpgme can't be found because cmake module is provided by kdepimlibs which are found too late ]; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ shared_mime_info ]; NIX_CFLAGS_COMPILE = "-I${ilmbase}/include/OpenEXR"; diff --git a/pkgs/desktops/kde-4.14/kde-workspace.nix b/pkgs/desktops/kde-4.14/kde-workspace.nix index 75863e1fe99b..53df146ab533 100644 --- a/pkgs/desktops/kde-4.14/kde-workspace.nix +++ b/pkgs/desktops/kde-4.14/kde-workspace.nix @@ -18,7 +18,7 @@ kde { kactivities ]; - nativeBuildInputs = [ pkgconfig ]; + patches = [ ./files/ksysguard-0001-disable-signalplottertest.patch ]; preConfigure = '' diff --git a/pkgs/desktops/kde-4.14/kdeedu/rocs.nix b/pkgs/desktops/kde-4.14/kdeedu/rocs.nix index ce30d11fda31..76131d8f0f0f 100644 --- a/pkgs/desktops/kde-4.14/kdeedu/rocs.nix +++ b/pkgs/desktops/kde-4.14/kdeedu/rocs.nix @@ -1,6 +1,8 @@ { kde, kdelibs, boost, grantlee }: kde { + patches = [ ../files/rocs-0001-duplicate-add_test.patch ]; + buildInputs = [ kdelibs (boost.override { enableExceptions = true; }) grantlee ]; NIX_CFLAGS_COMPILE = "-fexceptions"; diff --git a/pkgs/desktops/kde-4.14/kdegames/kpat.nix b/pkgs/desktops/kde-4.14/kdegames/kpat.nix index f8d9bad36dc5..b60afa786d17 100644 --- a/pkgs/desktops/kde-4.14/kdegames/kpat.nix +++ b/pkgs/desktops/kde-4.14/kdegames/kpat.nix @@ -1,6 +1,7 @@ -{ kde, kdelibs, libkdegames }: +{ kde, kdelibs, libkdegames, shared_mime_info }: kde { buildInputs = [ kdelibs libkdegames ]; + nativeBuildInputs = [ shared_mime_info ]; meta = { description = "a relaxing card sorting game"; }; diff --git a/pkgs/desktops/kde-4.14/kdegames/palapeli.nix b/pkgs/desktops/kde-4.14/kdegames/palapeli.nix index 010dbd5d6232..ddecc78c75bc 100644 --- a/pkgs/desktops/kde-4.14/kdegames/palapeli.nix +++ b/pkgs/desktops/kde-4.14/kdegames/palapeli.nix @@ -1,8 +1,10 @@ -{ kde, kdelibs, libkdegames }: +{ kde, kdelibs, libkdegames, shared_mime_info }: kde { # TODO: package qvoronoi + nativeBuildInputs = [ shared_mime_info ]; + buildInputs = [ kdelibs libkdegames ]; meta = { diff --git a/pkgs/desktops/kde-4.14/kdegraphics/libkdcraw.nix b/pkgs/desktops/kde-4.14/kdegraphics/libkdcraw.nix index 1d5c6e2fcb4a..18697e13b66c 100644 --- a/pkgs/desktops/kde-4.14/kdegraphics/libkdcraw.nix +++ b/pkgs/desktops/kde-4.14/kdegraphics/libkdcraw.nix @@ -4,8 +4,6 @@ kde { buildInputs = [ kdelibs libraw lcms2 ]; - nativeBuildInputs = [ pkgconfig ]; - meta = { description = "Library for decoding RAW images"; license = stdenv.lib.licenses.gpl2; diff --git a/pkgs/desktops/kde-4.14/kdelibs/nepomuk-core.nix b/pkgs/desktops/kde-4.14/kdelibs/nepomuk-core.nix index 526ac069e619..b990628889b6 100644 --- a/pkgs/desktops/kde-4.14/kdelibs/nepomuk-core.nix +++ b/pkgs/desktops/kde-4.14/kdelibs/nepomuk-core.nix @@ -1,5 +1,5 @@ { stdenv, kde, kdelibs, soprano, shared_desktop_ontologies, exiv2, ffmpeg, taglib, poppler_qt4 -, pkgconfig, doxygen, ebook_tools +, pkgconfig, doxygen, ebook_tools, automoc4, cmake, perl }: kde { @@ -11,7 +11,7 @@ kde { poppler_qt4 ebook_tools ]; - nativeBuildInputs = [ pkgconfig doxygen ]; + nativeBuildInputs = [ automoc4 cmake perl pkgconfig doxygen ]; meta = { description = "NEPOMUK core"; diff --git a/pkgs/desktops/kde-4.14/kdepim-runtime.nix b/pkgs/desktops/kde-4.14/kdepim-runtime.nix index d92e22548206..e5061a8790af 100644 --- a/pkgs/desktops/kde-4.14/kdepim-runtime.nix +++ b/pkgs/desktops/kde-4.14/kdepim-runtime.nix @@ -1,4 +1,5 @@ -{ kde, libxslt, boost, kdepimlibs, akonadi, shared_desktop_ontologies }: +{ kde, libxslt, boost, kdepimlibs, akonadi, shared_desktop_ontologies +, shared_mime_info }: kde { @@ -9,6 +10,8 @@ kde { libxslt ]; + nativeBuildInputs = [ shared_mime_info ]; + meta = { description = "KDE PIM runtime"; license = "GPL"; diff --git a/pkgs/desktops/kde-4.14/kdepimlibs.nix b/pkgs/desktops/kde-4.14/kdepimlibs.nix index e0f355acdd95..ac62c970eec0 100644 --- a/pkgs/desktops/kde-4.14/kdepimlibs.nix +++ b/pkgs/desktops/kde-4.14/kdepimlibs.nix @@ -1,13 +1,20 @@ { kde, pkgconfig, boost, cyrus_sasl, gpgme, libical, openldap, prison , kdelibs, akonadi, libxslt, nepomuk_core -, shared_desktop_ontologies, qjson }: +, shared_mime_info, shared_desktop_ontologies, qjson +, automoc4, cmake, perl +}: kde { - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ automoc4 cmake perl pkgconfig ]; + + cmakeFlags = [ + "-DCMAKE_MINIMUM_REQUIRED_VERSION=3.3" + ]; buildInputs = [ boost gpgme libical libxslt qjson prison openldap cyrus_sasl akonadi shared_desktop_ontologies + shared_mime_info ]; propagatedBuildInputs = [ kdelibs nepomuk_core ]; diff --git a/pkgs/desktops/kde-4.14/kdeplasma-addons.nix b/pkgs/desktops/kde-4.14/kdeplasma-addons.nix index 2b1f1628cf1d..b4d24f47e490 100644 --- a/pkgs/desktops/kde-4.14/kdeplasma-addons.nix +++ b/pkgs/desktops/kde-4.14/kdeplasma-addons.nix @@ -1,7 +1,7 @@ { kde, kdelibs, marble, shared_desktop_ontologies, pkgconfig , boost, eigen2, kde_workspace, attica, qca2, qimageblitz , kdepimlibs, libkexiv2, libqalculate, libXtst, libdbusmenu_qt -, qjson, qoauth }: +, qjson, qoauth, shared_mime_info }: kde { @@ -14,7 +14,7 @@ kde { shared_desktop_ontologies marble libkexiv2 libdbusmenu_qt ]; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ shared_mime_info ]; meta = { description = "KDE Plasma Addons"; diff --git a/pkgs/desktops/kde-4.14/kdesdk/okteta.nix b/pkgs/desktops/kde-4.14/kdesdk/okteta.nix index 058636596ad8..77108c76adc3 100644 --- a/pkgs/desktops/kde-4.14/kdesdk/okteta.nix +++ b/pkgs/desktops/kde-4.14/kdesdk/okteta.nix @@ -1,8 +1,10 @@ -{ kde, kdelibs, qca2 }: +{ kde, kdelibs, qca2, shared_mime_info }: kde { buildInputs = [ kdelibs qca2 ]; + nativeBuildInputs = [ shared_mime_info ]; + # TODO: Look what does -DBUILD_mobile add enableParallelBuilding = false; diff --git a/pkgs/desktops/kde-4.14/l10n/default.nix b/pkgs/desktops/kde-4.14/l10n/default.nix index fa6406043b1b..b4c272cb328e 100644 --- a/pkgs/desktops/kde-4.14/l10n/default.nix +++ b/pkgs/desktops/kde-4.14/l10n/default.nix @@ -1,4 +1,6 @@ -{ stdenv, fetchurl, kdelibs, gettext, release, branch, stable }: +{ stdenv, fetchurl, automoc4, cmake, perl, pkgconfig +, kdelibs, gettext, release, branch, stable +}: let @@ -18,7 +20,11 @@ let buildInputs = [ gettext kdelibs ]; - cmakeFlags = "-Wno-dev"; + nativeBuildInputs = [ automoc4 cmake perl pkgconfig ]; + + cmakeFlags = [ + "-Wno-dev" + ]; meta = { description = "KDE translation for ${lang}"; diff --git a/pkgs/desktops/plasma-5.3/default.nix b/pkgs/desktops/plasma-5.3/default.nix index f9026b5843a1..ec9873390e50 100644 --- a/pkgs/desktops/plasma-5.3/default.nix +++ b/pkgs/desktops/plasma-5.3/default.nix @@ -128,8 +128,8 @@ let freetype glib gnugrep gnused gtk2 gtk3 libinput libssh modemmanager openconnect openexr pam pango qt4 samba socat substituteAll taglib utillinux wayland xapian - xkeyboard_config xlibs xorg; - boost = boost156; + xkeyboard_config xorg; + boost = boost155; canberra = libcanberra; epub = ebook_tools; fontforge_executable = fontforge; @@ -157,7 +157,7 @@ let breeze-qt4 = overrideDerivation super.breeze (drv: { name = "breeze-qt4-${version}"; - buildInputs = [ pkgs.xlibs.xproto pkgs.kde4.kdelibs pkgs.qt4 ]; + buildInputs = [ pkgs.xorg.xproto pkgs.kde4.kdelibs pkgs.qt4 ]; nativeBuildInputs = [ scope.cmake pkgs.pkgconfig ]; cmakeFlags = [ "-DUSE_KDE4=ON" @@ -194,18 +194,18 @@ let }; kwin = extendDerivation super.kwin { - buildInputs = with scope.xlibs; [ libICE libSM libXcursor ]; + buildInputs = with scope.xorg; [ libICE libSM libXcursor ]; patches = [ ./kwin/kwin-import-plugin-follow-symlinks.patch ]; }; libkscreen = extendDerivation super.libkscreen { - buildInputs = [ scope.xlibs.libXrandr]; + buildInputs = [ scope.xorg.libXrandr]; }; plasma-desktop = extendDerivation super.plasma-desktop { buildInputs = with scope; [ canberra ] - ++ (with xlibs; [ libxkbfile libXcursor libXft ]); + ++ (with xorg; [ libxkbfile libXcursor libXft ]); patches = [ (scope.substituteAll { src = ./plasma-desktop/plasma-desktop-hwclock.patch; @@ -217,13 +217,13 @@ let xkb = scope.xkeyboard_config; }) ]; - NIX_CFLAGS_COMPILE = with scope.xlibs; + NIX_CFLAGS_COMPILE = with scope.xorg; lib.concatStringsSep " " [ "-I${xf86inputsynaptics}/include/xorg" "-I${xf86inputevdev}/include/xorg" "-I${xorgserver}/include/xorg" ]; - cmakeFlags = with scope.xlibs; [ + cmakeFlags = with scope.xorg; [ "-DEvdev_INCLUDE_DIRS=${xf86inputevdev}/include" "-DSynaptics_INCLUDE_DIRS=${xf86inputsynaptics}/include" ]; @@ -231,7 +231,7 @@ let plasma-workspace = extendDerivation super.plasma-workspace { patches = [ ./plasma-workspace/0001-startkde-NixOS-patches.patch ]; - buildInputs = with scope.xlibs; [ libSM libXcursor scope.pam ]; + buildInputs = with scope.xorg; [ libSM libXcursor scope.pam ]; inherit (scope) bash coreutils gnused gnugrep socat; inherit (scope) kconfig kinit kservice qt5tools; @@ -246,11 +246,11 @@ let }; powerdevil = extendDerivation super.powerdevil { - buildInputs = [ scope.xlibs.libXrandr ]; + buildInputs = [ scope.xorg.libXrandr ]; }; sddm-kcm = extendDerivation super.sddm-kcm { - buildInputs = [ scope.xlibs.libXcursor ]; + buildInputs = [ scope.xorg.libXcursor ]; }; }; diff --git a/pkgs/desktops/plasma-5.4/bluedevil.nix b/pkgs/desktops/plasma-5.4/bluedevil.nix new file mode 100644 index 000000000000..208540c4c796 --- /dev/null +++ b/pkgs/desktops/plasma-5.4/bluedevil.nix @@ -0,0 +1,39 @@ +{ plasmaPackage +, extra-cmake-modules +, bluez-qt +, kcoreaddons +, kdbusaddons +, kded +, ki18n +, kiconthemes +, kio +, knotifications +, kwidgetsaddons +, kwindowsystem +, plasma-framework +, qtdeclarative +, shared_mime_info +}: + +plasmaPackage { + name = "bluedevil"; + nativeBuildInputs = [ extra-cmake-modules shared_mime_info ]; + buildInputs = [ + bluez-qt + kcoreaddons + kdbusaddons + kded + ki18n + kiconthemes + kio + knotifications + kwidgetsaddons + kwindowsystem + plasma-framework + qtdeclarative + ]; + postInstall = '' + wrapKDEProgram "$out/bin/bluedevil-wizard" + wrapKDEProgram "$out/bin/bluedevil-sendfile" + ''; +} diff --git a/pkgs/desktops/plasma-5.4/breeze-qt4.nix b/pkgs/desktops/plasma-5.4/breeze-qt4.nix new file mode 100644 index 000000000000..f8092bc9d376 --- /dev/null +++ b/pkgs/desktops/plasma-5.4/breeze-qt4.nix @@ -0,0 +1,29 @@ +{ plasmaPackage +, automoc4 +, cmake +, perl +, pkgconfig +, kdelibs +, qt4 +, xproto +}: + +plasmaPackage { + name = "breeze-qt4"; + sname = "breeze"; + buildInputs = [ + kdelibs + qt4 + xproto + ]; + nativeBuildInputs = [ + automoc4 + cmake + perl + pkgconfig + ]; + cmakeFlags = [ + "-DUSE_KDE4=ON" + "-DQT_QMAKE_EXECUTABLE=${qt4}/bin/qmake" + ]; +} diff --git a/pkgs/desktops/plasma-5.4/breeze-qt5.nix b/pkgs/desktops/plasma-5.4/breeze-qt5.nix new file mode 100644 index 000000000000..ea769b1e282c --- /dev/null +++ b/pkgs/desktops/plasma-5.4/breeze-qt5.nix @@ -0,0 +1,35 @@ +{ plasmaPackage +, extra-cmake-modules +, frameworkintegration +, kcmutils +, kconfigwidgets +, kcoreaddons +, kdecoration +, kguiaddons +, ki18n +, kwindowsystem +, qtx11extras +}: + +plasmaPackage { + name = "breeze-qt5"; + sname = "breeze"; + nativeBuildInputs = [ + extra-cmake-modules + ]; + buildInputs = [ + frameworkintegration + kcmutils + kconfigwidgets + kcoreaddons + kdecoration + kguiaddons + ki18n + kwindowsystem + qtx11extras + ]; + cmakeFlags = [ "-DUSE_KDE4=OFF" ]; + postInstall = '' + wrapKDEProgram "$out/bin/breeze-settings5" + ''; +} diff --git a/pkgs/desktops/plasma-5.4/default.nix b/pkgs/desktops/plasma-5.4/default.nix new file mode 100644 index 000000000000..db8747d74bd2 --- /dev/null +++ b/pkgs/desktops/plasma-5.4/default.nix @@ -0,0 +1,86 @@ +# Maintainer's Notes: +# +# How To Update +# 1. Edit the URL in ./manifest.sh +# 2. Run ./manifest.sh +# 3. Fix build errors. + +{ pkgs, debug ? false }: + +let + + inherit (pkgs) lib stdenv symlinkJoin; + + kf5 = pkgs.kf513; + kdeApps = pkgs.kdeApps_15_08; + + srcs = import ./srcs.nix { inherit (pkgs) fetchurl; inherit mirror; }; + mirror = "mirror://kde"; + + plasmaPackage = args: + let + inherit (args) name; + sname = args.sname or name; + inherit (srcs."${sname}") src version; + in stdenv.mkDerivation (args // { + name = "${name}-${version}"; + inherit src; + + setupHook = args.setupHook or ./setup-hook.sh; + + cmakeFlags = + (args.cmakeFlags or []) + ++ [ "-DBUILD_TESTING=OFF" ] + ++ lib.optional debug "-DCMAKE_BUILD_TYPE=Debug"; + + meta = { + license = with lib.licenses; [ + lgpl21Plus lgpl3Plus bsd2 mit gpl2Plus gpl3Plus fdl12 + ]; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ ttuegel ]; + homepage = "http://www.kde.org"; + } // (args.meta or {}); + }); + + addPackages = self: with self; { + bluedevil = callPackage ./bluedevil.nix {}; + breeze-qt4 = callPackage ./breeze-qt4.nix {}; + breeze-qt5 = callPackage ./breeze-qt5.nix {}; + breeze = + let version = (builtins.parseDrvName breeze-qt5.name).version; + in symlinkJoin "breeze-${version}" [ breeze-qt4 breeze-qt5 ]; + kde-cli-tools = callPackage ./kde-cli-tools.nix {}; + kde-gtk-config = callPackage ./kde-gtk-config.nix {}; + kdecoration = callPackage ./kdecoration.nix {}; + kdeplasma-addons = callPackage ./kdeplasma-addons.nix {}; + kgamma5 = callPackage ./kgamma5.nix {}; + khelpcenter = callPackage ./khelpcenter.nix {}; + khotkeys = callPackage ./khotkeys.nix {}; + kinfocenter = callPackage ./kinfocenter.nix {}; + kmenuedit = callPackage ./kmenuedit.nix {}; + kscreen = callPackage ./kscreen.nix {}; + ksshaskpass = callPackage ./ksshaskpass.nix {}; + ksysguard = callPackage ./ksysguard.nix {}; + kwayland = callPackage ./kwayland.nix {}; + kwin = callPackage ./kwin {}; + kwrited = callPackage ./kwrited.nix {}; + libkscreen = callPackage ./libkscreen {}; + libksysguard = callPackage ./libksysguard.nix {}; + milou = callPackage ./milou.nix {}; + oxygen = callPackage ./oxygen.nix {}; + oxygen-fonts = callPackage ./oxygen-fonts.nix {}; + plasma-desktop = callPackage ./plasma-desktop {}; + plasma-mediacenter = callPackage ./plasma-mediacenter.nix {}; + plasma-nm = callPackage ./plasma-nm.nix {}; + plasma-pa = callPackage ./plasma-pa.nix {}; + plasma-workspace = callPackage ./plasma-workspace {}; + plasma-workspace-wallpapers = callPackage ./plasma-workspace-wallpapers.nix {}; + polkit-kde-agent = callPackage ./polkit-kde-agent.nix {}; + powerdevil = callPackage ./powerdevil.nix {}; + systemsettings = callPackage ./systemsettings.nix {}; + }; + + newScope = scope: kdeApps.newScope ({ inherit plasmaPackage; } // scope); + +in lib.makeScope newScope addPackages diff --git a/pkgs/desktops/plasma-5.4/fetchsrcs.sh b/pkgs/desktops/plasma-5.4/fetchsrcs.sh new file mode 100755 index 000000000000..e2c5bdc9d698 --- /dev/null +++ b/pkgs/desktops/plasma-5.4/fetchsrcs.sh @@ -0,0 +1,47 @@ +#! /usr/bin/env nix-shell +#! nix-shell -i bash -p coreutils findutils gnused nix wget + +set -x + +# The trailing slash at the end is necessary! +RELEASE_URL="http://download.kde.org/stable/plasma/5.4.1/" +EXTRA_WGET_ARGS='-A *.tar.xz' + +mkdir tmp; cd tmp + +wget -nH -r -c --no-parent $RELEASE_URL $EXTRA_WGET_ARGS + +cat >../srcs.nix <<EOF +# DO NOT EDIT! This file is generated automatically by manifest.sh +{ fetchurl, mirror }: + +{ +EOF + +workdir=$(pwd) + +find . | while read src; do + if [[ -f "${src}" ]]; then + url="${src:2}" + # Sanitize file name + filename=$(basename "$src" | tr '@' '_') + nameversion="${filename%.tar.*}" + name=$(echo "$nameversion" | sed -e 's,-[[:digit:]].*,,' | sed -e 's,-opensource-src$,,') + version=$(echo "$nameversion" | sed -e 's,^\([[:alpha:]][[:alnum:]]*-\)\+,,') + sha256=$(nix-hash --type sha256 --base32 --flat "$src") + cat >>../srcs.nix <<EOF + $name = { + version = "$version"; + src = fetchurl { + url = "\${mirror}/$url"; + sha256 = "$sha256"; + name = "$filename"; + }; + }; +EOF + fi +done + +echo "}" >>../srcs.nix + +cd .. diff --git a/pkgs/desktops/plasma-5.4/kde-cli-tools.nix b/pkgs/desktops/plasma-5.4/kde-cli-tools.nix new file mode 100644 index 000000000000..ce93bb86b325 --- /dev/null +++ b/pkgs/desktops/plasma-5.4/kde-cli-tools.nix @@ -0,0 +1,41 @@ +{ plasmaPackage +, extra-cmake-modules +, kcmutils +, kconfig +, kdelibs4support +, kdesu +, kdoctools +, ki18n +, kiconthemes +, kwindowsystem +, qtsvg +, qtx11extras +}: + +plasmaPackage { + name = "kde-cli-tools"; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + kcmutils + kconfig + kdelibs4support + kdesu + ki18n + kiconthemes + kwindowsystem + qtsvg + qtx11extras + ]; + postInstall = '' + wrapKDEProgram "$out/bin/kmimetypefinder5" + wrapKDEProgram "$out/bin/ksvgtopng5" + wrapKDEProgram "$out/bin/ktraderclient5" + wrapKDEProgram "$out/bin/kioclient5" + wrapKDEProgram "$out/bin/kdecp5" + wrapKDEProgram "$out/bin/keditfiletype5" + wrapKDEProgram "$out/bin/kcmshell5" + wrapKDEProgram "$out/bin/kdemv5" + wrapKDEProgram "$out/bin/kstart5" + wrapKDEProgram "$out/bin/kde-open5" + ''; +} diff --git a/pkgs/desktops/plasma-5.4/kde-gtk-config.nix b/pkgs/desktops/plasma-5.4/kde-gtk-config.nix new file mode 100644 index 000000000000..9c59665f1a0c --- /dev/null +++ b/pkgs/desktops/plasma-5.4/kde-gtk-config.nix @@ -0,0 +1,26 @@ +{ plasmaPackage +, extra-cmake-modules +, glib +, gtk2 +, gtk3 +, karchive +, kcmutils +, kconfigwidgets +, ki18n +, kiconthemes +, kio +, knewstuff +}: + +plasmaPackage { + name = "kde-gtk-config"; + nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ + glib gtk2 gtk3 karchive kcmutils kconfigwidgets ki18n kiconthemes + kio knewstuff + ]; + cmakeFlags = [ + "-DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib}/lib/glib-2.0/include" + "-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2}/lib/gtk-2.0/include" + ]; +} diff --git a/pkgs/desktops/plasma-5.4/kdecoration.nix b/pkgs/desktops/plasma-5.4/kdecoration.nix new file mode 100644 index 000000000000..eb65f7f90afb --- /dev/null +++ b/pkgs/desktops/plasma-5.4/kdecoration.nix @@ -0,0 +1,6 @@ +{ plasmaPackage, extra-cmake-modules }: + +plasmaPackage { + name = "kdecoration"; + nativeBuildInputs = [ extra-cmake-modules ]; +} diff --git a/pkgs/desktops/plasma-5.4/kdeplasma-addons.nix b/pkgs/desktops/plasma-5.4/kdeplasma-addons.nix new file mode 100644 index 000000000000..3e7058315e57 --- /dev/null +++ b/pkgs/desktops/plasma-5.4/kdeplasma-addons.nix @@ -0,0 +1,46 @@ +{ plasmaPackage +, extra-cmake-modules +, kdoctools +, ibus +, kconfig +, kconfigwidgets +, kcoreaddons +, kcmutils +, kdelibs4support +, ki18n +, kio +, knewstuff +, kross +, krunner +, kservice +, kunitconversion +, plasma-framework +, qtdeclarative +, qtx11extras +}: + +plasmaPackage { + name = "kdeplasma-addons"; + nativeBuildInputs = [ + extra-cmake-modules + kdoctools + ]; + buildInputs = [ + ibus + kconfig + kconfigwidgets + kcoreaddons + kcmutils + kdelibs4support + ki18n + kio + knewstuff + kross + krunner + kservice + kunitconversion + plasma-framework + qtdeclarative + qtx11extras + ]; +} diff --git a/pkgs/desktops/plasma-5.4/kgamma5.nix b/pkgs/desktops/plasma-5.4/kgamma5.nix new file mode 100644 index 000000000000..8d954cc145a0 --- /dev/null +++ b/pkgs/desktops/plasma-5.4/kgamma5.nix @@ -0,0 +1,18 @@ +{ plasmaPackage +, extra-cmake-modules +, kdoctools +, kdelibs4support +, qtx11extras +}: + +plasmaPackage { + name = "kgamma5"; + nativeBuildInputs = [ + extra-cmake-modules + kdoctools + ]; + buildInputs = [ + kdelibs4support + qtx11extras + ]; +} diff --git a/pkgs/desktops/plasma-5.4/khelpcenter.nix b/pkgs/desktops/plasma-5.4/khelpcenter.nix new file mode 100644 index 000000000000..dc7afd348c45 --- /dev/null +++ b/pkgs/desktops/plasma-5.4/khelpcenter.nix @@ -0,0 +1,35 @@ +{ plasmaPackage +, extra-cmake-modules +, kdoctools +, kconfig +, kcoreaddons +, kdbusaddons +, ki18n +, kinit +, kcmutils +, kdelibs4support +, khtml +, kservice +}: + +plasmaPackage { + name = "khelpcenter"; + nativeBuildInputs = [ + extra-cmake-modules + kdoctools + ]; + buildInputs = [ + kconfig + kcoreaddons + kdbusaddons + ki18n + kinit + kcmutils + kdelibs4support + khtml + kservice + ]; + postInstall = '' + wrapKDEProgram "$out/bin/khelpcenter" + ''; +} diff --git a/pkgs/desktops/plasma-5.4/khotkeys.nix b/pkgs/desktops/plasma-5.4/khotkeys.nix new file mode 100644 index 000000000000..02c43efd27e8 --- /dev/null +++ b/pkgs/desktops/plasma-5.4/khotkeys.nix @@ -0,0 +1,34 @@ +{ plasmaPackage +, extra-cmake-modules +, kdoctools +, kcmutils +, kdbusaddons +, kdelibs4support +, kglobalaccel +, ki18n +, kio +, kxmlgui +, plasma-framework +, plasma-workspace +, qtx11extras +}: + +plasmaPackage { + name = "khotkeys"; + nativeBuildInputs = [ + extra-cmake-modules + kdoctools + ]; + buildInputs = [ + kcmutils + kdbusaddons + kdelibs4support + kglobalaccel + ki18n + kio + kxmlgui + plasma-framework + plasma-workspace + qtx11extras + ]; +} diff --git a/pkgs/desktops/plasma-5.4/kinfocenter.nix b/pkgs/desktops/plasma-5.4/kinfocenter.nix new file mode 100644 index 000000000000..89a3b4643830 --- /dev/null +++ b/pkgs/desktops/plasma-5.4/kinfocenter.nix @@ -0,0 +1,53 @@ +{ plasmaPackage +, extra-cmake-modules +, kdoctools +, kcmutils +, kcompletion +, kconfig +, kconfigwidgets +, kcoreaddons +, kdbusaddons +, kdeclarative +, kdelibs4support +, ki18n +, kiconthemes +, kio +, kpackage +, kservice +, kwidgetsaddons +, kxmlgui +, libraw1394 +, pciutils +, solid +}: + +plasmaPackage { + name = "kinfocenter"; + nativeBuildInputs = [ + extra-cmake-modules + kdoctools + ]; + buildInputs = [ + kcmutils + kcompletion + kconfig + kconfigwidgets + kcoreaddons + kdbusaddons + kdeclarative + kdelibs4support + ki18n + kiconthemes + kio + kpackage + kservice + kwidgetsaddons + kxmlgui + libraw1394 + pciutils + solid + ]; + postInstall = '' + wrapKDEProgram "$out/bin/kinfocenter" + ''; +} diff --git a/pkgs/desktops/plasma-5.4/kmenuedit.nix b/pkgs/desktops/plasma-5.4/kmenuedit.nix new file mode 100644 index 000000000000..d5eeb3c35730 --- /dev/null +++ b/pkgs/desktops/plasma-5.4/kmenuedit.nix @@ -0,0 +1,31 @@ +{ plasmaPackage +, extra-cmake-modules +, kdoctools +, ki18n +, kxmlgui +, kdbusaddons +, kiconthemes +, kio +, sonnet +, kdelibs4support +}: + +plasmaPackage { + name = "kmenuedit"; + nativeBuildInputs = [ + extra-cmake-modules + kdoctools + ]; + buildInputs = [ + ki18n + kxmlgui + kdbusaddons + kiconthemes + kio + sonnet + kdelibs4support + ]; + postInstall = '' + wrapKDEProgram "$out/bin/kmenuedit" + ''; +} diff --git a/pkgs/desktops/plasma-5.4/kscreen.nix b/pkgs/desktops/plasma-5.4/kscreen.nix new file mode 100644 index 000000000000..f221f66f03f6 --- /dev/null +++ b/pkgs/desktops/plasma-5.4/kscreen.nix @@ -0,0 +1,33 @@ +{ plasmaPackage +, extra-cmake-modules +, kconfig +, kconfigwidgets +, kdbusaddons +, kglobalaccel +, ki18n +, kwidgetsaddons +, kxmlgui +, libkscreen +, qtdeclarative +}: + +plasmaPackage { + name = "kscreen"; + nativeBuildInputs = [ + extra-cmake-modules + ]; + buildInputs = [ + kconfig + kconfigwidgets + kdbusaddons + kglobalaccel + ki18n + kwidgetsaddons + kxmlgui + libkscreen + qtdeclarative + ]; + postInstall = '' + wrapKDEProgram "$out/bin/kscreen-console" + ''; +} diff --git a/pkgs/desktops/plasma-5.4/ksshaskpass.nix b/pkgs/desktops/plasma-5.4/ksshaskpass.nix new file mode 100644 index 000000000000..d20a44df0ac8 --- /dev/null +++ b/pkgs/desktops/plasma-5.4/ksshaskpass.nix @@ -0,0 +1,25 @@ +{ plasmaPackage +, extra-cmake-modules +, kdoctools +, kcoreaddons +, ki18n +, kwallet +, kwidgetsaddons +}: + +plasmaPackage { + name = "ksshaskpass"; + nativeBuildInputs = [ + extra-cmake-modules + kdoctools + ]; + buildInputs = [ + kcoreaddons + ki18n + kwallet + kwidgetsaddons + ]; + postInstall = '' + wrapKDEProgram "$out/bin/ksshaskpass" + ''; +} diff --git a/pkgs/desktops/plasma-5.4/ksysguard.nix b/pkgs/desktops/plasma-5.4/ksysguard.nix new file mode 100644 index 000000000000..23a7c04cca20 --- /dev/null +++ b/pkgs/desktops/plasma-5.4/ksysguard.nix @@ -0,0 +1,34 @@ +{ plasmaPackage +, extra-cmake-modules +, kdoctools +, kconfig +, kcoreaddons +, kdelibs4support +, ki18n +, kitemviews +, knewstuff +, kiconthemes +, libksysguard +}: + +plasmaPackage { + name = "ksysguard"; + nativeBuildInputs = [ + extra-cmake-modules + kdoctools + ]; + buildInputs = [ + kconfig + kcoreaddons + kdelibs4support + ki18n + kitemviews + knewstuff + kiconthemes + libksysguard + ]; + postInstall = '' + wrapKDEProgram "$out/bin/ksysguardd" + wrapKDEProgram "$out/bin/ksysguard" + ''; +} diff --git a/pkgs/desktops/plasma-5.4/kwayland.nix b/pkgs/desktops/plasma-5.4/kwayland.nix new file mode 100644 index 000000000000..e4d6eb631f95 --- /dev/null +++ b/pkgs/desktops/plasma-5.4/kwayland.nix @@ -0,0 +1,14 @@ +{ plasmaPackage +, extra-cmake-modules +, wayland +}: + +plasmaPackage { + name = "kwayland"; + nativeBuildInputs = [ + extra-cmake-modules + ]; + buildInputs = [ + wayland + ]; +} diff --git a/pkgs/desktops/plasma-5.4/kwin/default.nix b/pkgs/desktops/plasma-5.4/kwin/default.nix new file mode 100644 index 000000000000..429d336f661a --- /dev/null +++ b/pkgs/desktops/plasma-5.4/kwin/default.nix @@ -0,0 +1,85 @@ +{ plasmaPackage +, extra-cmake-modules +, kdoctools +, epoxy +, kactivities +, kcompletion +, kcmutils +, kconfig +, kconfigwidgets +, kcoreaddons +, kcrash +, kdeclarative +, kdecoration +, kglobalaccel +, ki18n +, kiconthemes +, kinit +, kio +, knewstuff +, knotifications +, kpackage +, kservice +, kwayland +, kwidgetsaddons +, kwindowsystem +, kxmlgui +, libinput +, libICE +, libSM +, plasma-framework +, qtdeclarative +, qtscript +, qtx11extras +, udev +, wayland +, xcb-util-cursor +}: + +plasmaPackage { + name = "kwin"; + nativeBuildInputs = [ + extra-cmake-modules + kdoctools + ]; + buildInputs = [ + epoxy + kactivities + kcompletion + kcmutils + kconfig + kconfigwidgets + kcoreaddons + kcrash + kdeclarative + kdecoration + kglobalaccel + ki18n + kiconthemes + kinit + kio + knewstuff + knotifications + kpackage + kservice + kwayland + kwidgetsaddons + kwindowsystem + kxmlgui + libinput + libICE + libSM + plasma-framework + qtdeclarative + qtscript + qtx11extras + udev + wayland + xcb-util-cursor + ]; + patches = [ ./kwin-import-plugin-follow-symlinks.patch ]; + postInstall = '' + wrapKDEProgram "$out/bin/kwin_x11" + wrapKDEProgram "$out/bin/kwin_wayland" + ''; +} diff --git a/pkgs/desktops/plasma-5.4/kwin/kwin-import-plugin-follow-symlinks.patch b/pkgs/desktops/plasma-5.4/kwin/kwin-import-plugin-follow-symlinks.patch new file mode 100644 index 000000000000..fd1f35d717e3 --- /dev/null +++ b/pkgs/desktops/plasma-5.4/kwin/kwin-import-plugin-follow-symlinks.patch @@ -0,0 +1,13 @@ +diff --git a/clients/aurorae/src/aurorae.cpp b/clients/aurorae/src/aurorae.cpp +index 26b44a9..d14e226 100644 +--- a/clients/aurorae/src/aurorae.cpp ++++ b/clients/aurorae/src/aurorae.cpp +@@ -73,7 +73,7 @@ void AuroraeFactory::init() + // so let's try to locate our plugin: + QString pluginPath; + for (const QString &path : m_engine->importPathList()) { +- QDirIterator it(path, QDirIterator::Subdirectories); ++ QDirIterator it(path, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks); + while (it.hasNext()) { + it.next(); + QFileInfo fileInfo = it.fileInfo(); diff --git a/pkgs/desktops/plasma-5.4/kwin/libinput-0.8.patch b/pkgs/desktops/plasma-5.4/kwin/libinput-0.8.patch new file mode 100644 index 000000000000..d0b9658b3bfc --- /dev/null +++ b/pkgs/desktops/plasma-5.4/kwin/libinput-0.8.patch @@ -0,0 +1,25 @@ +commit a93a2ab1918630c6d571b5a24379c15a0458d1fa +Author: Martin Gräßlin <mgraesslin@kde.org> +Date: Wed Jan 28 16:20:57 2015 +0100 + + Disable libinput integration if >= 0.8 is found + + libinput 0.8 is incompatible causing the build to fail. As we are in + dependency freeze the only option is to disable the build. + + BUG: 342893 + FIXED-IN: 5.2.1 + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 550ef57..8d9c593 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -145,7 +145,7 @@ set_package_properties(UDev PROPERTIES URL "http://www.freedesktop.org/software + PURPOSE "Required for input handling on Wayland." + ) + set(HAVE_INPUT FALSE) +-if (Libinput_FOUND AND UDEV_FOUND) ++if (Libinput_FOUND AND UDEV_FOUND AND Libinput_VERSION VERSION_LESS 0.8) + set(HAVE_INPUT TRUE) + endif() + diff --git a/pkgs/desktops/plasma-5.4/kwrited.nix b/pkgs/desktops/plasma-5.4/kwrited.nix new file mode 100644 index 000000000000..afd69073227c --- /dev/null +++ b/pkgs/desktops/plasma-5.4/kwrited.nix @@ -0,0 +1,22 @@ +{ plasmaPackage +, extra-cmake-modules +, kcoreaddons +, ki18n +, kpty +, knotifications +, kdbusaddons +}: + +plasmaPackage { + name = "kwrited"; + nativeBuildInputs = [ + extra-cmake-modules + ]; + buildInputs = [ + kcoreaddons + ki18n + kpty + knotifications + kdbusaddons + ]; +} diff --git a/pkgs/desktops/plasma-5.4/libkscreen/default.nix b/pkgs/desktops/plasma-5.4/libkscreen/default.nix new file mode 100644 index 000000000000..8f5212e76c85 --- /dev/null +++ b/pkgs/desktops/plasma-5.4/libkscreen/default.nix @@ -0,0 +1,16 @@ +{ plasmaPackage +, extra-cmake-modules +, libXrandr +, qtx11extras +}: + +plasmaPackage { + name = "libkscreen"; + nativeBuildInputs = [ + extra-cmake-modules + ]; + buildInputs = [ + libXrandr + qtx11extras + ]; +} diff --git a/pkgs/desktops/plasma-5.4/libkscreen/libkscreen-backend-path.patch b/pkgs/desktops/plasma-5.4/libkscreen/libkscreen-backend-path.patch new file mode 100644 index 000000000000..d5797924d233 --- /dev/null +++ b/pkgs/desktops/plasma-5.4/libkscreen/libkscreen-backend-path.patch @@ -0,0 +1,130 @@ +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 460022f..422a708 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -1,5 +1,7 @@ + include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${QT_INCLUDES}) + ++configure_file(config-libkscreen.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-libkscreen.h) ++ + set(libkscreen_SRCS + backendloader.cpp + config.cpp +diff --git a/src/backendloader.cpp b/src/backendloader.cpp +index b93e469..8aebc14 100644 +--- a/src/backendloader.cpp ++++ b/src/backendloader.cpp +@@ -16,6 +16,7 @@ + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * + *************************************************************************************/ + ++#include "config-libkscreen.h" + #include "backendloader.h" + #include "debug_p.h" + #include "backends/abstractbackend.h" +@@ -40,55 +41,54 @@ bool BackendLoader::init() + const QString backend = qgetenv("KSCREEN_BACKEND").constData(); + const QString backendFilter = QString::fromLatin1("KSC_%1*").arg(backend); + +- const QStringList paths = QCoreApplication::libraryPaths(); +- Q_FOREACH (const QString &path, paths) { +- const QDir dir(path + QDir::separator() + QLatin1String("/kf5/kscreen/"), +- backendFilter, +- QDir::SortFlags(QDir::QDir::NoSort), +- QDir::NoDotAndDotDot | QDir::Files); +- const QFileInfoList finfos = dir.entryInfoList(); +- Q_FOREACH (const QFileInfo &finfo, finfos) { +- // Skip "Fake" backend unless explicitly specified via KSCREEN_BACKEND +- if (backend.isEmpty() && finfo.fileName().contains(QLatin1String("KSC_Fake"))) { +- continue; +- } ++ QString path = QFile::decodeName(CMAKE_INSTALL_PREFIX "/" PLUGIN_INSTALL_DIR "/"); + +- // When on X11, skip the QScreen backend, instead use the XRandR backend, +- // if not specified in KSCREEN_BACKEND +- if (backend.isEmpty() && +- finfo.fileName().contains(QLatin1String("KSC_QScreen")) && +- QX11Info::isPlatformX11()) { +- continue; +- } ++ const QDir dir(path + QDir::separator() + QLatin1String("/kf5/kscreen/"), ++ backendFilter, ++ QDir::SortFlags(QDir::QDir::NoSort), ++ QDir::NoDotAndDotDot | QDir::Files); ++ const QFileInfoList finfos = dir.entryInfoList(); ++ Q_FOREACH (const QFileInfo &finfo, finfos) { ++ // Skip "Fake" backend unless explicitly specified via KSCREEN_BACKEND ++ if (backend.isEmpty() && finfo.fileName().contains(QLatin1String("KSC_Fake"))) { ++ continue; ++ } + +- // When not on X11, skip the XRandR backend, and fall back to QSCreen +- // if not specified in KSCREEN_BACKEND +- if (backend.isEmpty() && +- finfo.fileName().contains(QLatin1String("KSC_XRandR")) && +- !QX11Info::isPlatformX11()) { +- continue; +- } ++ // When on X11, skip the QScreen backend, instead use the XRandR backend, ++ // if not specified in KSCREEN_BACKEND ++ if (backend.isEmpty() && ++ finfo.fileName().contains(QLatin1String("KSC_QScreen")) && ++ QX11Info::isPlatformX11()) { ++ continue; ++ } ++ ++ // When not on X11, skip the XRandR backend, and fall back to QSCreen ++ // if not specified in KSCREEN_BACKEND ++ if (backend.isEmpty() && ++ finfo.fileName().contains(QLatin1String("KSC_XRandR")) && ++ !QX11Info::isPlatformX11()) { ++ continue; ++ } + +- QPluginLoader loader(finfo.filePath()); +- loader.load(); +- QObject *instance = loader.instance(); +- if (!instance) { ++ QPluginLoader loader(finfo.filePath()); ++ loader.load(); ++ QObject *instance = loader.instance(); ++ if (!instance) { ++ loader.unload(); ++ continue; ++ } ++ ++ s_backend = qobject_cast< AbstractBackend* >(instance); ++ if (s_backend) { ++ if (!s_backend->isValid()) { ++ qCDebug(KSCREEN) << "Skipping" << s_backend->name() << "backend"; ++ delete s_backend; ++ s_backend = 0; + loader.unload(); + continue; + } +- +- s_backend = qobject_cast< AbstractBackend* >(instance); +- if (s_backend) { +- if (!s_backend->isValid()) { +- qCDebug(KSCREEN) << "Skipping" << s_backend->name() << "backend"; +- delete s_backend; +- s_backend = 0; +- loader.unload(); +- continue; +- } +- qCDebug(KSCREEN) << "Loading" << s_backend->name() << "backend"; +- return true; +- } ++ qCDebug(KSCREEN) << "Loading" << s_backend->name() << "backend"; ++ return true; + } + } + +diff --git a/src/config-libkscreen.h.cmake b/src/config-libkscreen.h.cmake +new file mode 100644 +index 0000000..a99f3d1 +--- /dev/null ++++ b/src/config-libkscreen.h.cmake +@@ -0,0 +1,2 @@ ++#define CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" ++#define PLUGIN_INSTALL_DIR "${PLUGIN_INSTALL_DIR}" diff --git a/pkgs/desktops/plasma-5.4/libksysguard.nix b/pkgs/desktops/plasma-5.4/libksysguard.nix new file mode 100644 index 000000000000..d36eadb3b4f8 --- /dev/null +++ b/pkgs/desktops/plasma-5.4/libksysguard.nix @@ -0,0 +1,42 @@ +{ plasmaPackage +, extra-cmake-modules +, kauth +, kcompletion +, kconfigwidgets +, kcoreaddons +, kservice +, kwidgetsaddons +, kwindowsystem +, plasma-framework +, qtscript +, qtwebkit +, qtx11extras +, kconfig +, ki18n +, kiconthemes +}: + +plasmaPackage { + name = "libksysguard"; + nativeBuildInputs = [ + extra-cmake-modules + ]; + buildInputs = [ + kauth + kcompletion + kconfigwidgets + kcoreaddons + kservice + kwidgetsaddons + kwindowsystem + plasma-framework + qtscript + qtwebkit + qtx11extras + ]; + propagatedBuildInputs = [ + kconfig + ki18n + kiconthemes + ]; +} diff --git a/pkgs/desktops/plasma-5.4/milou.nix b/pkgs/desktops/plasma-5.4/milou.nix new file mode 100644 index 000000000000..86698e8aee63 --- /dev/null +++ b/pkgs/desktops/plasma-5.4/milou.nix @@ -0,0 +1,28 @@ +{ plasmaPackage +, extra-cmake-modules +, qtscript +, qtdeclarative +, kcoreaddons +, ki18n +, kdeclarative +, kservice +, plasma-framework +, krunner +}: + +plasmaPackage { + name = "milou"; + nativeBuildInputs = [ + extra-cmake-modules + ]; + buildInputs = [ + qtscript + qtdeclarative + kcoreaddons + ki18n + kdeclarative + kservice + plasma-framework + krunner + ]; +} diff --git a/pkgs/desktops/plasma-5.4/oxygen-fonts.nix b/pkgs/desktops/plasma-5.4/oxygen-fonts.nix new file mode 100644 index 000000000000..b1ccb6f5ffd5 --- /dev/null +++ b/pkgs/desktops/plasma-5.4/oxygen-fonts.nix @@ -0,0 +1,12 @@ +{ plasmaPackage +, extra-cmake-modules +, fontforge +}: + +plasmaPackage { + name = "oxygen-fonts"; + nativeBuildInputs = [ + extra-cmake-modules + fontforge + ]; +} diff --git a/pkgs/desktops/plasma-5.4/oxygen.nix b/pkgs/desktops/plasma-5.4/oxygen.nix new file mode 100644 index 000000000000..5d221bc92b63 --- /dev/null +++ b/pkgs/desktops/plasma-5.4/oxygen.nix @@ -0,0 +1,38 @@ +{ plasmaPackage +, extra-cmake-modules +, ki18n +, kcmutils +, kconfig +, kdecoration +, kguiaddons +, kwidgetsaddons +, kservice +, kcompletion +, frameworkintegration +, kwindowsystem +, qtx11extras +}: + +plasmaPackage { + name = "oxygen"; + nativeBuildInputs = [ + extra-cmake-modules + ]; + buildInputs = [ + ki18n + kcmutils + kconfig + kdecoration + kguiaddons + kwidgetsaddons + kservice + kcompletion + frameworkintegration + kwindowsystem + qtx11extras + ]; + postInstall = '' + wrapKDEProgram "$out/bin/oxygen-demo5" + wrapKDEProgram "$out/bin/oxygen-settings5" + ''; +} diff --git a/pkgs/desktops/plasma-5.4/plasma-desktop/0001-hwclock.patch b/pkgs/desktops/plasma-5.4/plasma-desktop/0001-hwclock.patch new file mode 100644 index 000000000000..1a0ca99113d9 --- /dev/null +++ b/pkgs/desktops/plasma-5.4/plasma-desktop/0001-hwclock.patch @@ -0,0 +1,36 @@ +From bce620c9dcb25a4e603b22ead5c004b053dae7bf Mon Sep 17 00:00:00 2001 +From: Thomas Tuegel <ttuegel@gmail.com> +Date: Fri, 28 Aug 2015 10:16:38 -0500 +Subject: [PATCH 1/2] hwclock + +--- + kcms/dateandtime/helper.cpp | 6 +----- + 1 file changed, 1 insertion(+), 5 deletions(-) + +diff --git a/kcms/dateandtime/helper.cpp b/kcms/dateandtime/helper.cpp +index cec5ab8..fc4a6b9 100644 +--- a/kcms/dateandtime/helper.cpp ++++ b/kcms/dateandtime/helper.cpp +@@ -48,10 +48,6 @@ + #include <sys/stat.h> + #endif + +-// We cannot rely on the $PATH environment variable, because D-Bus activation +-// clears it. So we have to use a reasonable default. +-static const QString exePath = QLatin1String("/usr/sbin:/usr/bin:/sbin:/bin"); +- + int ClockHelper::ntp( const QStringList& ntpServers, bool ntpEnabled ) + { + int ret = 0; +@@ -227,7 +223,7 @@ int ClockHelper::tzreset() + + void ClockHelper::toHwclock() + { +- QString hwclock = KStandardDirs::findExe("hwclock", exePath); ++ QString hwclock = "@hwclock@"; + if (!hwclock.isEmpty()) { + KProcess::execute(hwclock, QStringList() << "--systohc"); + } +-- +2.5.0 + diff --git a/pkgs/desktops/plasma-5.4/plasma-desktop/0002-zoneinfo.patch b/pkgs/desktops/plasma-5.4/plasma-desktop/0002-zoneinfo.patch new file mode 100644 index 000000000000..321bf083ae26 --- /dev/null +++ b/pkgs/desktops/plasma-5.4/plasma-desktop/0002-zoneinfo.patch @@ -0,0 +1,30 @@ +From 2778186be31a8f949135ed99232eafee201a668d Mon Sep 17 00:00:00 2001 +From: Thomas Tuegel <ttuegel@gmail.com> +Date: Fri, 28 Aug 2015 10:16:53 -0500 +Subject: [PATCH 2/2] zoneinfo + +--- + kcms/dateandtime/helper.cpp | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/kcms/dateandtime/helper.cpp b/kcms/dateandtime/helper.cpp +index fc4a6b9..7b64d05 100644 +--- a/kcms/dateandtime/helper.cpp ++++ b/kcms/dateandtime/helper.cpp +@@ -181,7 +181,12 @@ int ClockHelper::tz( const QString& selectedzone ) + + val = selectedzone; + #else +- QString tz = "/usr/share/zoneinfo/" + selectedzone; ++ // NixOS-specific path ++ QString tz = "/etc/zoneinfo/" + selectedzone; ++ if (!QFile::exists(tz)) { ++ // Standard Linux path ++ tz = "/usr/share/zoneinfo/" + selectedzone; ++ } + + if (QFile::exists(tz)) { // make sure the new TZ really exists + QFile::remove("/etc/localtime"); +-- +2.5.0 + diff --git a/pkgs/desktops/plasma-5.4/plasma-desktop/default.nix b/pkgs/desktops/plasma-5.4/plasma-desktop/default.nix new file mode 100644 index 000000000000..b89496dfd795 --- /dev/null +++ b/pkgs/desktops/plasma-5.4/plasma-desktop/default.nix @@ -0,0 +1,113 @@ +{ plasmaPackage +, substituteAll +, extra-cmake-modules +, kdoctools +, attica +, baloo +, boost +, fontconfig +, kactivities +, kauth +, kcmutils +, kdbusaddons +, kdeclarative +, kded +, kdelibs4support +, kemoticons +, kglobalaccel +, ki18n +, kitemmodels +, knewstuff +, knotifications +, knotifyconfig +, kpeople +, krunner +, kwallet +, kwin +, phonon +, plasma-framework +, plasma-workspace +, qtdeclarative +, qtx11extras +, qtsvg +, libXcursor +, libXft +, libxkbfile +, xf86inputevdev +, xf86inputsynaptics +, xinput +, xkeyboard_config +, xorgserver +, libcanberra_kde +, libpulseaudio +, utillinux +}: + +plasmaPackage { + name = "plasma-desktop"; + nativeBuildInputs = [ + extra-cmake-modules + kdoctools + ]; + buildInputs = [ + attica + baloo + boost + fontconfig + kactivities + kauth + kcmutils + kdbusaddons + kdeclarative + kded + kdelibs4support + kemoticons + kglobalaccel + ki18n + kitemmodels + knewstuff + knotifications + knotifyconfig + kpeople + krunner + kwallet + kwin + libcanberra_kde + libXcursor + libpulseaudio + libXft + libxkbfile + phonon + plasma-framework + plasma-workspace + qtdeclarative + qtx11extras + qtsvg + xf86inputevdev + xf86inputsynaptics + xkeyboard_config + xinput + ]; + patches = [ + (substituteAll { + src = ./0001-hwclock.patch; + hwclock = "${utillinux}/sbin/hwclock"; + }) + ./0002-zoneinfo.patch + ]; + NIX_CFLAGS_COMPILE = [ "-I${xorgserver}/include/xorg" ]; + cmakeFlags = [ + "-DEvdev_INCLUDE_DIRS=${xf86inputevdev}/include/xorg" + "-DSynaptics_INCLUDE_DIRS=${xf86inputsynaptics}/include/xorg" + ]; + postInstall = '' + wrapKDEProgram "$out/bin/kaccess" + wrapKDEProgram "$out/bin/solid-action-desktop-gen" + wrapKDEProgram "$out/bin/knetattach" + wrapKDEProgram "$out/bin/krdb" + wrapKDEProgram "$out/bin/kapplymousetheme" + wrapKDEProgram "$out/bin/kfontinst" + wrapKDEProgram "$out/bin/kcm-touchpad-list-devices" + wrapKDEProgram "$out/bin/kfontview" + ''; +} diff --git a/pkgs/desktops/plasma-5.4/plasma-mediacenter.nix b/pkgs/desktops/plasma-5.4/plasma-mediacenter.nix new file mode 100644 index 000000000000..6b21eed5a957 --- /dev/null +++ b/pkgs/desktops/plasma-5.4/plasma-mediacenter.nix @@ -0,0 +1,40 @@ +{ plasmaPackage +, extra-cmake-modules +, baloo +, kactivities +, kconfig +, kcoreaddons +, kdeclarative +, kguiaddons +, ki18n +, kio +, kservice +, kfilemetadata +, plasma-framework +, qtdeclarative +, qtmultimedia +, taglib +}: + +plasmaPackage { + name = "plasma-mediacenter"; + nativeBuildInputs = [ + extra-cmake-modules + ]; + buildInputs = [ + baloo + kactivities + kconfig + kcoreaddons + kdeclarative + kguiaddons + ki18n + kio + kservice + kfilemetadata + plasma-framework + qtdeclarative + qtmultimedia + taglib + ]; +} diff --git a/pkgs/desktops/plasma-5.4/plasma-nm.nix b/pkgs/desktops/plasma-5.4/plasma-nm.nix new file mode 100644 index 000000000000..1cf3ec27b36e --- /dev/null +++ b/pkgs/desktops/plasma-5.4/plasma-nm.nix @@ -0,0 +1,65 @@ +{ plasmaPackage +, extra-cmake-modules +, kdoctools +, kcompletion +, kconfigwidgets +, kcoreaddons +, kdbusaddons +, kdeclarative +, kdelibs4support +, ki18n +, kiconthemes +, kinit +, kio +, kitemviews +, knotifications +, kservice +, kwallet +, kwidgetsaddons +, kwindowsystem +, kxmlgui +, mobile_broadband_provider_info +, modemmanager-qt +, networkmanager-qt +, openconnect +, plasma-framework +, qtdeclarative +, solid +}: + +plasmaPackage { + name = "plasma-nm"; + nativeBuildInputs = [ + extra-cmake-modules + kdoctools + ]; + buildInputs = [ + kcompletion + kconfigwidgets + kcoreaddons + kdbusaddons + kdeclarative + kdelibs4support + ki18n + kiconthemes + kinit + kio + kitemviews + knotifications + kservice + kwallet + kwidgetsaddons + kwindowsystem + kxmlgui + mobile_broadband_provider_info + modemmanager-qt + networkmanager-qt + openconnect + plasma-framework + qtdeclarative + solid + ]; + postInstall = '' + wrapKDEProgram "$out/bin/kde5-nm-connection-editor" + ''; +} diff --git a/pkgs/desktops/plasma-5.4/plasma-pa.nix b/pkgs/desktops/plasma-5.4/plasma-pa.nix new file mode 100644 index 000000000000..e82a5b814a6a --- /dev/null +++ b/pkgs/desktops/plasma-5.4/plasma-pa.nix @@ -0,0 +1,28 @@ +{ plasmaPackage +, extra-cmake-modules +, glib +, kconfigwidgets +, kcoreaddons +, kdeclarative +, kglobalaccel +, ki18n +, libpulseaudio +, plasma-framework +}: + +plasmaPackage { + name = "plasma-pa"; + nativeBuildInputs = [ + extra-cmake-modules + ]; + buildInputs = [ + glib + kconfigwidgets + kcoreaddons + kdeclarative + kglobalaccel + ki18n + libpulseaudio + plasma-framework + ]; +} diff --git a/pkgs/desktops/plasma-5.4/plasma-workspace-wallpapers.nix b/pkgs/desktops/plasma-5.4/plasma-workspace-wallpapers.nix new file mode 100644 index 000000000000..bc87abcad153 --- /dev/null +++ b/pkgs/desktops/plasma-5.4/plasma-workspace-wallpapers.nix @@ -0,0 +1,10 @@ +{ plasmaPackage +, extra-cmake-modules +}: + +plasmaPackage { + name = "plasma-workspace-wallpapers"; + nativeBuildInputs = [ + extra-cmake-modules + ]; +} diff --git a/pkgs/desktops/plasma-5.4/plasma-workspace/0001-startkde-NixOS-patches.patch b/pkgs/desktops/plasma-5.4/plasma-workspace/0001-startkde-NixOS-patches.patch new file mode 100644 index 000000000000..6752258112ef --- /dev/null +++ b/pkgs/desktops/plasma-5.4/plasma-workspace/0001-startkde-NixOS-patches.patch @@ -0,0 +1,404 @@ +From d34575dc1edb9fcc8e7608e82e63c6c9d20f37ea Mon Sep 17 00:00:00 2001 +From: Thomas Tuegel <ttuegel@gmail.com> +Date: Thu, 27 Aug 2015 20:36:39 -0500 +Subject: [PATCH] startkde NixOS patches + +--- + startkde/startkde.cmake | 219 ++++++++++++++++++++---------------------------- + 1 file changed, 89 insertions(+), 130 deletions(-) + +diff --git a/startkde/startkde.cmake b/startkde/startkde.cmake +index cfbe227..999dd8f 100644 +--- a/startkde/startkde.cmake ++++ b/startkde/startkde.cmake +@@ -1,8 +1,31 @@ +-#!/bin/sh ++#!@bash@/bin/bash + # + # DEFAULT KDE STARTUP SCRIPT ( @PROJECT_VERSION@ ) + # + ++set -x ++ ++# The KDE icon cache is supposed to update itself ++# automatically, but it uses the timestamp on the icon ++# theme directory as a trigger. Since in Nix the ++# timestamp is always the same, this doesn't work. So as ++# a workaround, nuke the icon cache on login. This isn't ++# perfect, since it may require logging out after ++# installing new applications to update the cache. ++# See http://lists-archives.org/kde-devel/26175-what-when-will-icon-cache-refresh.html ++rm -fv $HOME/.cache/icon-cache.kcache ++ ++# Qt writes a weird ‘libraryPath’ line to ++# ~/.config/Trolltech.conf that causes the KDE plugin ++# paths of previous KDE invocations to be searched. ++# Obviously using mismatching KDE libraries is potentially ++# disastrous, so here we nuke references to the Nix store ++# in Trolltech.conf. A better solution would be to stop ++# Qt from doing this wackiness in the first place. ++if [ -e $HOME/.config/Trolltech.conf ]; then ++ @gnused@/bin/sed -e '/nix\\store\|nix\/store/ d' -i $HOME/.config/Trolltech.conf ++fi ++ + if test "x$1" = x--failsafe; then + KDE_FAILSAFE=1 # General failsafe flag + KWIN_COMPOSE=N # Disable KWin's compositing +@@ -16,29 +39,16 @@ trap 'echo GOT SIGHUP' HUP + # we have to unset this for Darwin since it will screw up KDE's dynamic-loading + unset DYLD_FORCE_FLAT_NAMESPACE + +-# in case we have been started with full pathname spec without being in PATH +-bindir=`echo "$0" | sed -n 's,^\(/.*\)/[^/][^/]*$,\1,p'` +-if [ -n "$bindir" ]; then +- qbindir=`qtpaths --binaries-dir` +- qdbus=$qbindir/qdbus +- case $PATH in +- $bindir|$bindir:*|*:$bindir|*:$bindir:*) ;; +- *) PATH=$bindir:$PATH; export PATH;; +- esac +-else +- qdbus=qdbus +-fi +- + # Check if a KDE session already is running and whether it's possible to connect to X +-kcheckrunning ++@out@/bin/kcheckrunning + kcheckrunning_result=$? + if test $kcheckrunning_result -eq 0 ; then +- echo "KDE seems to be already running on this display." +- xmessage -geometry 500x100 "KDE seems to be already running on this display." > /dev/null 2>/dev/null ++ echo "KDE seems to be already running on this display." ++ @xmessage@/bin/xmessage -geometry 500x100 "KDE seems to be already running on this display." + exit 1 + elif test $kcheckrunning_result -eq 2 ; then + echo "\$DISPLAY is not set or cannot connect to the X server." +- exit 1 ++ exit 1 + fi + + # Boot sequence: +@@ -56,13 +66,8 @@ fi + # * Then ksmserver is started which takes control of the rest of the startup sequence + + # We need to create config folder so we can write startupconfigkeys +-if [ ${XDG_CONFIG_HOME} ]; then +- configDir=$XDG_CONFIG_HOME; +-else +- configDir=${HOME}/.config; #this is the default, http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html +-fi +- +-mkdir -p $configDir ++configDir=$(@qttools@/bin/qtpaths --writable-path GenericConfigLocation) ++mkdir -p "$configDir" + + #This is basically setting defaults so we can use them with kstartupconfig5 + cat >$configDir/startupconfigkeys <<EOF +@@ -101,55 +106,21 @@ XftSubPixel=none + EOF + } + +-# Make sure the Oxygen font is installed +-# This is necessary for setups where CMAKE_INSTALL_PREFIX +-# is not in /usr. fontconfig looks in /usr, ~/.fonts and +-# $XDG_DATA_HOME for fonts. In this case, we symlink the +-# Oxygen font under ${XDG_DATA_HOME} and make it known to +-# fontconfig +- +-usr_share="/usr/share" +-install_share="@CMAKE_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@" +- +-if [ ! $install_share = $usr_share ]; then +- +- if [ ${XDG_DATA_HOME} ]; then +- fontsDir="${XDG_DATA_HOME}/fonts" +- else +- fontsDir="${HOME}/.fonts" +- fi +- +- test -d $fontsDir || { +- mkdir -p $fontsDir +- } +- +- oxygenDir=$fontsDir/oxygen +- prefixDir="@CMAKE_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@/fonts/oxygen" +- +- # if the oxygen dir doesn't exist, create a symlink to be sure that the +- # Oxygen font is available to the user +- test -d $oxygenDir || test -d $prefixDir && { +- test -h $oxygenDir || ln -s $prefixDir $oxygenDir && fc-cache $oxygenDir +- } +-fi +- +-kstartupconfig5 ++@out@/bin/kstartupconfig5 + returncode=$? + if test $returncode -ne 0; then +- xmessage -geometry 500x100 "kstartupconfig5 does not exist or fails. The error code is $returncode. Check your installation." ++ @xmessage@/bin/xmessage -geometry 500x100 "kstartupconfig5 does not exist or fails. The error code is $returncode. Check your installation." + exit 1 + fi + [ -r $configDir/startupconfig ] && . $configDir/startupconfig + +-if test "$kdeglobals_kscreen_scalefactor" -ne 1; then +- export QT_DEVICE_PIXEL_RATIO=$kdeglobals_kscreen_scalefactor +-fi ++XCURSOR_PATH=~/.icons:$(echo "$XDG_DATA_DIRS" | @coreutils@/bin/tr ":" "\n" | @gnused@/bin/sed 's,$,/icons,g' | @coreutils@/bin/tr "\n" ":") ++export XCURSOR_PATH + + # XCursor mouse theme needs to be applied here to work even for kded or ksmserver + if test -n "$kcminputrc_mouse_cursortheme" -o -n "$kcminputrc_mouse_cursorsize" ; then +- @EXPORT_XCURSOR_PATH@ + +- kapplymousetheme "$kcminputrc_mouse_cursortheme" "$kcminputrc_mouse_cursorsize" ++ @out@/bin/kapplymousetheme "$kcminputrc_mouse_cursortheme" "$kcminputrc_mouse_cursorsize" + if test $? -eq 10; then + XCURSOR_THEME=breeze_cursors + export XCURSOR_THEME +@@ -163,21 +134,39 @@ if test -n "$kcminputrc_mouse_cursortheme" -o -n "$kcminputrc_mouse_cursorsize" + fi + fi + +-if test "$kcmfonts_general_forcefontdpi" -ne 0; then +- xrdb -quiet -merge -nocpp <<EOF +-Xft.dpi: $kcmfonts_general_forcefontdpi +-EOF +-fi ++# Set a left cursor instead of the standard X11 "X" cursor, since I've heard ++# from some users that they're confused and don't know what to do. This is ++# especially necessary on slow machines, where starting KDE takes one or two ++# minutes until anything appears on the screen. ++# ++# If the user has overwritten fonts, the cursor font may be different now ++# so don't move this up. ++# ++@xsetroot@/bin/xsetroot -cursor_name left_ptr + + dl=$DESKTOP_LOCKED + unset DESKTOP_LOCKED # Don't want it in the environment + ++# Make sure that D-Bus is running ++# D-Bus autolaunch is broken ++if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then ++ eval `@dbus_tools@/bin/dbus-launch --sh-syntax --exit-with-session` ++fi ++if @qttools@/bin/qdbus >/dev/null 2>/dev/null; then ++ : # ok ++else ++ echo 'startkde: Could not start D-Bus. Can you call qdbus?' 1>&2 ++ test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null ++ @xmessage@/bin/xmessage -geometry 500x100 "Could not start D-Bus. Can you call qdbus?" ++ exit 1 ++fi ++ + ksplash_pid= + if test -z "$dl"; then + # the splashscreen and progress indicator + case "$ksplashrc_ksplash_engine" in + KSplashQML) +- ksplash_pid=`ksplashqml "${ksplashrc_ksplash_theme}" --pid` ++ ksplash_pid=`@out@/bin/ksplashqml "${ksplashrc_ksplash_theme}" --pid` + ;; + None) + ;; +@@ -200,8 +189,7 @@ fi + # For anything else (that doesn't set env vars, or that needs a window manager), + # better use the Autostart folder. + +-# TODO: Use GenericConfigLocation once we depend on Qt 5.4 +-scriptpath=`qtpaths --paths ConfigLocation | tr ':' '\n' | sed 's,$,/plasma-workspace,g'` ++scriptpath=$(@qttools@/bin/qtpaths --paths GenericConfigLocation | tr ':' '\n' | @gnused@/bin/sed 's,$,/plasma-workspace,g') + + # Add /env/ to the directory to locate the scripts to be sourced + for prefix in `echo $scriptpath`; do +@@ -231,7 +219,7 @@ usr_odir=$HOME/.fonts/kde-override + usr_fdir=$HOME/.fonts + + if test -n "$KDEDIRS"; then +- kdedirs_first=`echo "$KDEDIRS"|sed -e 's/:.*//'` ++ kdedirs_first=`echo "$KDEDIRS" | @gnused@/bin/sed -e 's/:.*//'` + sys_odir=$kdedirs_first/share/fonts/override + sys_fdir=$kdedirs_first/share/fonts + else +@@ -244,23 +232,13 @@ fi + # add the user's dirs to the font path, as they might simply have been made + # read-only by the administrator, for whatever reason. + +-test -d "$sys_odir" && xset +fp "$sys_odir" +-test -d "$usr_odir" && (mkfontdir "$usr_odir" ; xset +fp "$usr_odir") +-test -d "$usr_fdir" && (mkfontdir "$usr_fdir" ; xset fp+ "$usr_fdir") +-test -d "$sys_fdir" && xset fp+ "$sys_fdir" ++test -d "$sys_odir" && @xset@/bin/xset +fp "$sys_odir" ++test -d "$usr_odir" && ( @mkfontdir@/bin/mkfontdir "$usr_odir" ; @xset@/bin/xset +fp "$usr_odir" ) ++test -d "$usr_fdir" && ( @mkfontdir@/bin/mkfontdir "$usr_fdir" ; @xset@/bin/xset fp+ "$usr_fdir" ) ++test -d "$sys_fdir" && @xset@/bin/xset fp+ "$sys_fdir" + + # Ask X11 to rebuild its font list. +-xset fp rehash +- +-# Set a left cursor instead of the standard X11 "X" cursor, since I've heard +-# from some users that they're confused and don't know what to do. This is +-# especially necessary on slow machines, where starting KDE takes one or two +-# minutes until anything appears on the screen. +-# +-# If the user has overwritten fonts, the cursor font may be different now +-# so don't move this up. +-# +-xsetroot -cursor_name left_ptr ++@xset@/bin/xset fp rehash + + # Get Ghostscript to look into user's KDE fonts dir for additional Fontmap + if test -n "$GS_LIB" ; then +@@ -273,30 +251,6 @@ fi + + echo 'startkde: Starting up...' 1>&2 + +-# Make sure that the KDE prefix is first in XDG_DATA_DIRS and that it's set at all. +-# The spec allows XDG_DATA_DIRS to be not set, but X session startup scripts tend +-# to set it to a list of paths *not* including the KDE prefix if it's not /usr or +-# /usr/local. +-if test -z "$XDG_DATA_DIRS"; then +- XDG_DATA_DIRS="@CMAKE_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@:/usr/share:/usr/local/share" +-fi +-export XDG_DATA_DIRS +- +-# Make sure that D-Bus is running +-# D-Bus autolaunch is broken +-if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then +- eval `dbus-launch --sh-syntax --exit-with-session` +-fi +-if $qdbus >/dev/null 2>/dev/null; then +- : # ok +-else +- echo 'startkde: Could not start D-Bus. Can you call qdbus?' 1>&2 +- test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null +- xmessage -geometry 500x100 "Could not start D-Bus. Can you call qdbus?" +- exit 1 +-fi +- +- + # Mark that full KDE session is running (e.g. Konqueror preloading works only + # with full KDE running). The KDE_FULL_SESSION property can be detected by + # any X client connected to the same X session, even if not launched +@@ -321,11 +275,11 @@ fi + # + KDE_FULL_SESSION=true + export KDE_FULL_SESSION +-xprop -root -f KDE_FULL_SESSION 8t -set KDE_FULL_SESSION true ++@xprop@/bin/xprop -root -f KDE_FULL_SESSION 8t -set KDE_FULL_SESSION true + + KDE_SESSION_VERSION=5 + export KDE_SESSION_VERSION +-xprop -root -f KDE_SESSION_VERSION 32c -set KDE_SESSION_VERSION 5 ++@xprop@/bin/xprop -root -f KDE_SESSION_VERSION 32c -set KDE_SESSION_VERSION 5 + + KDE_SESSION_UID=`id -ru` + export KDE_SESSION_UID +@@ -335,11 +289,11 @@ export XDG_CURRENT_DESKTOP + + # At this point all the environment is ready, let's send it to kwalletd if running + if test -n "$PAM_KWALLET_LOGIN" ; then +- env | socat STDIN UNIX-CONNECT:$PAM_KWALLET_LOGIN ++ env | @socat@/bin/socat STDIN UNIX-CONNECT:$PAM_KWALLET_LOGIN + fi + # ...and also to kwalletd5 + if test -n "$PAM_KWALLET5_LOGIN" ; then +- env | socat STDIN UNIX-CONNECT:$PAM_KWALLET5_LOGIN ++ env | @socat@/bin/socat STDIN UNIX-CONNECT:$PAM_KWALLET5_LOGIN + fi + + # At this point all environment variables are set, let's send it to the DBus session server to update the activation environment +@@ -348,21 +302,26 @@ if test $? -ne 0; then + # Startup error + echo 'startkde: Could not sync environment to dbus.' 1>&2 + test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null +- xmessage -geometry 500x100 "Could not sync environment to dbus." ++ @xmessage@/bin/xmessage -geometry 500x100 "Could not sync environment to dbus." + exit 1 + fi + + # We set LD_BIND_NOW to increase the efficiency of kdeinit. + # kdeinit unsets this variable before loading applications. +-LD_BIND_NOW=true @CMAKE_INSTALL_FULL_LIBEXECDIR_KF5@/start_kdeinit_wrapper --kded +kcminit_startup ++LD_BIND_NOW=true @kinit@/lib/libexec/kf5/start_kdeinit_wrapper --kded +kcminit_startup + if test $? -ne 0; then + # Startup error + echo 'startkde: Could not start kdeinit5. Check your installation.' 1>&2 + test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null +- xmessage -geometry 500x100 "Could not start kdeinit5. Check your installation." ++ @xmessage@/bin/xmessage -geometry 500x100 "Could not start kdeinit5. Check your installation." + exit 1 + fi + ++# (NixOS) We run kbuildsycoca5 before starting the user session because things ++# may be missing or moved if they have run nixos-rebuild and it may not be ++# possible for them to start Konsole to run it manually! ++@kservice@/bin/kbuildsycoca5 ++ + # finally, give the session control to the session manager + # see kdebase/ksmserver for the description of the rest of the startup sequence + # if the KDEWM environment variable has been set, then it will be used as KDE's +@@ -378,27 +337,27 @@ test -n "$KDEWM" && KDEWM="--windowmanager $KDEWM" + # lock now and do the rest of the KDE startup underneath the locker. + KSMSERVEROPTIONS="" + test -n "$dl" && KSMSERVEROPTIONS=" --lockscreen" +-kwrapper5 ksmserver $KDEWM $KSMSERVEROPTIONS ++@kinit@/bin/kwrapper5 ksmserver $KDEWM $KSMSERVEROPTIONS + if test $? -eq 255; then + # Startup error + echo 'startkde: Could not start ksmserver. Check your installation.' 1>&2 + test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null +- xmessage -geometry 500x100 "Could not start ksmserver. Check your installation." ++ @xmessage@/bin/xmessage -geometry 500x100 "Could not start ksmserver. Check your installation." + fi + +-wait_drkonqi=`kreadconfig5 --file startkderc --group WaitForDrKonqi --key Enabled --default true` ++wait_drkonqi=`@kconfig@/bin/kreadconfig5 --file startkderc --group WaitForDrKonqi --key Enabled --default true` + + if test x"$wait_drkonqi"x = x"true"x ; then + # wait for remaining drkonqi instances with timeout (in seconds) +- wait_drkonqi_timeout=`kreadconfig5 --file startkderc --group WaitForDrKonqi --key Timeout --default 900` ++ wait_drkonqi_timeout=`@kconfig@/bin/kreadconfig5 --file startkderc --group WaitForDrKonqi --key Timeout --default 900` + wait_drkonqi_counter=0 +- while $qdbus | grep "^[^w]*org.kde.drkonqi" > /dev/null ; do ++ while @qttools@/bin/qdbus | @gnugrep@/bin/grep "^[^w]*org.kde.drkonqi" > /dev/null ; do + sleep 5 + wait_drkonqi_counter=$((wait_drkonqi_counter+5)) + if test "$wait_drkonqi_counter" -ge "$wait_drkonqi_timeout" ; then + # ask remaining drkonqis to die in a graceful way +- $qdbus | grep 'org.kde.drkonqi-' | while read address ; do +- $qdbus "$address" "/MainApplication" "quit" ++ @qttools@/bin/qdbus | @gnugrep@/bin/grep 'org.kde.drkonqi-' | while read address ; do ++ @qttools@/bin/qdbus "$address" "/MainApplication" "quit" + done + break + fi +@@ -410,21 +369,21 @@ echo 'startkde: Shutting down...' 1>&2 + test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null + + # Clean up +-kdeinit5_shutdown ++@kinit@/bin/kdeinit5_shutdown + + echo 'startkde: Running shutdown scripts...' 1>&2 + + # Run scripts found in <config locations>/plasma-workspace/shutdown + for prefix in `echo "$scriptpath"`; do +- for file in `ls "$prefix"/shutdown 2> /dev/null | egrep -v '(~|\.bak)$'`; do ++ for file in `ls "$prefix"/shutdown 2> /dev/null | @gnugrep@/bin/egrep -v '(~|\.bak)$'`; do + test -x "$prefix/shutdown/$file" && "$prefix/shutdown/$file" + done + done + + unset KDE_FULL_SESSION +-xprop -root -remove KDE_FULL_SESSION ++@xprop@/bin/xprop -root -remove KDE_FULL_SESSION + unset KDE_SESSION_VERSION +-xprop -root -remove KDE_SESSION_VERSION ++@xprop@/bin/xprop -root -remove KDE_SESSION_VERSION + unset KDE_SESSION_UID + + echo 'startkde: Done.' 1>&2 +-- +2.5.0 + diff --git a/pkgs/desktops/plasma-5.4/plasma-workspace/default.nix b/pkgs/desktops/plasma-5.4/plasma-workspace/default.nix new file mode 100644 index 000000000000..f9339f808062 --- /dev/null +++ b/pkgs/desktops/plasma-5.4/plasma-workspace/default.nix @@ -0,0 +1,125 @@ +{ plasmaPackage +, extra-cmake-modules +, kdoctools +, baloo +, kactivities +, kcmutils +, kcrash +, kdbusaddons +, kdeclarative +, kdelibs4support +, kdesu +, kdewebkit +, kglobalaccel +, kidletime +, kjsembed +, knewstuff +, knotifyconfig +, kpackage +, krunner +, ktexteditor +, ktextwidgets +, kwallet +, kwayland +, kwin +, kxmlrpcclient +, libdbusmenu +, libkscreen +, libSM +, libXcursor +, networkmanager-qt +, pam +, phonon +, plasma-framework +, qtscript +, qtx11extras +, wayland +, libksysguard +, bash +, coreutils +, gnused +, gnugrep +, socat +, kconfig +, kinit +, kservice +, qttools +, dbus_tools +, mkfontdir +, xmessage +, xprop +, xrdb +, xset +, xsetroot +}: + +plasmaPackage { + name = "plasma-workspace"; + nativeBuildInputs = [ + extra-cmake-modules + kdoctools + ]; + buildInputs = [ + baloo + kactivities + kcmutils + kcrash + kdbusaddons + kdeclarative + kdelibs4support + kdesu + kdewebkit + kglobalaccel + kidletime + kjsembed + knewstuff + knotifyconfig + kpackage + krunner + ktexteditor + ktextwidgets + kwallet + kwayland + kwin + kxmlrpcclient + libdbusmenu + libkscreen + libSM + libXcursor + networkmanager-qt + pam + phonon + plasma-framework + qtscript + qtx11extras + wayland + ]; + propagatedBuildInputs = [ + libksysguard + ]; + patches = [ ./0001-startkde-NixOS-patches.patch ]; + + inherit bash coreutils gnused gnugrep socat; + inherit kconfig kinit kservice qttools; + inherit dbus_tools mkfontdir xmessage xprop xrdb xset xsetroot; + postPatch = '' + substituteAllInPlace startkde/startkde.cmake + substituteInPlace startkde/kstartupconfig/kstartupconfig.cpp \ + --replace kdostartupconfig5 $out/bin/kdostartupconfig5 + ''; + postInstall = '' + wrapKDEProgram "$out/bin/ksmserver" + wrapKDEProgram "$out/bin/plasmawindowed" + wrapKDEProgram "$out/bin/kcminit_startup" + wrapKDEProgram "$out/bin/ksplashqml" + wrapKDEProgram "$out/bin/kcheckrunning" + wrapKDEProgram "$out/bin/systemmonitor" + wrapKDEProgram "$out/bin/kstartupconfig5" + wrapKDEProgram "$out/bin/startplasmacompositor" + wrapKDEProgram "$out/bin/kdostartupconfig5" + wrapKDEProgram "$out/bin/klipper" + wrapKDEProgram "$out/bin/kuiserver5" + wrapKDEProgram "$out/bin/krunner" + wrapKDEProgram "$out/bin/plasmashell" + ''; +} diff --git a/pkgs/desktops/plasma-5.4/polkit-kde-agent.nix b/pkgs/desktops/plasma-5.4/polkit-kde-agent.nix new file mode 100644 index 000000000000..a38c68d62dcc --- /dev/null +++ b/pkgs/desktops/plasma-5.4/polkit-kde-agent.nix @@ -0,0 +1,32 @@ +{ plasmaPackage +, extra-cmake-modules +, ki18n +, kwindowsystem +, kdbusaddons +, kwidgetsaddons +, kcoreaddons +, kcrash +, kconfig +, kiconthemes +, knotifications +, polkitQt +}: + +plasmaPackage { + name = "polkit-kde-agent"; + nativeBuildInputs = [ + extra-cmake-modules + ]; + buildInputs = [ + ki18n + kwindowsystem + kdbusaddons + kwidgetsaddons + kcoreaddons + kcrash + kconfig + kiconthemes + knotifications + polkitQt + ]; +} diff --git a/pkgs/desktops/plasma-5.4/powerdevil.nix b/pkgs/desktops/plasma-5.4/powerdevil.nix new file mode 100644 index 000000000000..9427638936e5 --- /dev/null +++ b/pkgs/desktops/plasma-5.4/powerdevil.nix @@ -0,0 +1,44 @@ +{ plasmaPackage +, extra-cmake-modules +, kdoctools +, kactivities +, kauth +, kconfig +, kdbusaddons +, kdelibs4support +, kglobalaccel +, ki18n +, kidletime +, kio +, knotifyconfig +, libkscreen +, plasma-workspace +, qtx11extras +, solid +, udev +}: + +plasmaPackage { + name = "powerdevil"; + nativeBuildInputs = [ + extra-cmake-modules + kdoctools + ]; + buildInputs = [ + kactivities + kauth + kconfig + kdbusaddons + kdelibs4support + kglobalaccel + ki18n + kidletime + kio + knotifyconfig + libkscreen + plasma-workspace + qtx11extras + solid + udev + ]; +} diff --git a/pkgs/desktops/plasma-5.4/setup-hook.sh b/pkgs/desktops/plasma-5.4/setup-hook.sh new file mode 100644 index 000000000000..a8d9b7e0e36f --- /dev/null +++ b/pkgs/desktops/plasma-5.4/setup-hook.sh @@ -0,0 +1 @@ +addToSearchPath XDG_DATA_DIRS @out@/share diff --git a/pkgs/desktops/plasma-5.4/srcs.nix b/pkgs/desktops/plasma-5.4/srcs.nix new file mode 100644 index 000000000000..f9fa32509382 --- /dev/null +++ b/pkgs/desktops/plasma-5.4/srcs.nix @@ -0,0 +1,301 @@ +# DO NOT EDIT! This file is generated automatically by manifest.sh +{ fetchurl, mirror }: + +{ + plasma-nm = { + version = "5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/plasma-nm-5.4.1.tar.xz"; + sha256 = "02rx63ff95nhq2i5hndk93mxixkzf46gp792768i93ss50wjr1li"; + name = "plasma-nm-5.4.1.tar.xz"; + }; + }; + kmenuedit = { + version = "5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/kmenuedit-5.4.1.tar.xz"; + sha256 = "1h0zv6ksfw3ym88y3v5yxwwmw8m9cqbwbrsca0rxa4dc43vinn5m"; + name = "kmenuedit-5.4.1.tar.xz"; + }; + }; + kdecoration = { + version = "5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/kdecoration-5.4.1.tar.xz"; + sha256 = "04jz0b0cx5hwiws5f5d72zd6rr3hqchlbm5qd3xjhq9m8rdb28yv"; + name = "kdecoration-5.4.1.tar.xz"; + }; + }; + user-manager = { + version = "5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/user-manager-5.4.1.tar.xz"; + sha256 = "19srb9dxl1693grjjbqbb4wl1bg7vp50dhsx82mgg09b4vs2szcp"; + name = "user-manager-5.4.1.tar.xz"; + }; + }; + powerdevil = { + version = "5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/powerdevil-5.4.1.tar.xz"; + sha256 = "1l467ijhn7h6b0v5ms8vxpjprd4hjdnhplf0k5k0ynj5cgyk96vh"; + name = "powerdevil-5.4.1.tar.xz"; + }; + }; + libkscreen = { + version = "5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/libkscreen-5.4.1.tar.xz"; + sha256 = "07m340kcajhf0dslcy68msh1zn6gnc58nsxyqasbkikwv9sx4v7r"; + name = "libkscreen-5.4.1.tar.xz"; + }; + }; + kwallet-pam = { + version = "5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/kwallet-pam-5.4.1.tar.xz"; + sha256 = "0y9b2r4cpmj8gidqzc2j9ki09fb76gp1958v2kkbalma9g0689kc"; + name = "kwallet-pam-5.4.1.tar.xz"; + }; + }; + plasma-pa = { + version = "5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/plasma-pa-5.4.1.tar.xz"; + sha256 = "0c0lzhv8fnkb1359n181ys5bwm9pzfw6g4f7pxrx9vlqqhjbr06p"; + name = "plasma-pa-5.4.1.tar.xz"; + }; + }; + ksysguard = { + version = "5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/ksysguard-5.4.1.tar.xz"; + sha256 = "1n9sddx54i6xnr8xk65wbdyl6mpnfmdgzqllc534zj2nq9lgcpfj"; + name = "ksysguard-5.4.1.tar.xz"; + }; + }; + bluedevil = { + version = "5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/bluedevil-5.4.1.tar.xz"; + sha256 = "1sy3v1fq2mw2mjy3xd183g8fpkjwlmz6sp384qzk55nav7clbjfq"; + name = "bluedevil-5.4.1.tar.xz"; + }; + }; + milou = { + version = "5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/milou-5.4.1.tar.xz"; + sha256 = "0n2c94d8kza8m0gl93waa66r52ncn6b0yjbks7lszl0zwzi3wqyx"; + name = "milou-5.4.1.tar.xz"; + }; + }; + plasma-workspace-wallpapers = { + version = "5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/plasma-workspace-wallpapers-5.4.1.tar.xz"; + sha256 = "0p92p3d4m6d8jnbwgfrk8hqij67aa9pvqhzlccn29gr88f1j7wii"; + name = "plasma-workspace-wallpapers-5.4.1.tar.xz"; + }; + }; + kde-cli-tools = { + version = "5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/kde-cli-tools-5.4.1.tar.xz"; + sha256 = "02b6w8hxz05s10ajb4vnasy1ayh8a9skw26asy20zvkm3xn32pc1"; + name = "kde-cli-tools-5.4.1.tar.xz"; + }; + }; + kwin = { + version = "5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/kwin-5.4.1.tar.xz"; + sha256 = "0mx95pwlvx7kfzmp6jcihaw3dmgjjrsizmv5baq8mgravp9zzglw"; + name = "kwin-5.4.1.tar.xz"; + }; + }; + muon = { + version = "5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/muon-5.4.1.tar.xz"; + sha256 = "0g229c2h4k3qdhzhc4sq0vlnwvbmb6qp3d4lix4q65mgnamz4lwc"; + name = "muon-5.4.1.tar.xz"; + }; + }; + oxygen = { + version = "5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/oxygen-5.4.1.tar.xz"; + sha256 = "0a880jm8islbcqp08vwd9srn2kqgrn27lsz7wr0mq2b622hsyk1p"; + name = "oxygen-5.4.1.tar.xz"; + }; + }; + plasma-mediacenter = { + version = "5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/plasma-mediacenter-5.4.1.tar.xz"; + sha256 = "1rnmjhyn83ic77sxybz042ghlzrrfh8ig3ivh9nnshzv8gf58bpx"; + name = "plasma-mediacenter-5.4.1.tar.xz"; + }; + }; + kwrited = { + version = "5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/kwrited-5.4.1.tar.xz"; + sha256 = "0y1ag8syf1g3mmzyr0hci4xcpxs85qh54jzwkj98xghb316akdrs"; + name = "kwrited-5.4.1.tar.xz"; + }; + }; + plasma-sdk = { + version = "5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/plasma-sdk-5.4.1.tar.xz"; + sha256 = "03qazkqi3x5r8bsf7v73qsqnfgv60q12bv2hmg7rf637rbk1ys7s"; + name = "plasma-sdk-5.4.1.tar.xz"; + }; + }; + ksshaskpass = { + version = "5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/ksshaskpass-5.4.1.tar.xz"; + sha256 = "1yjp78p4r5a9ldba5nda8ly8r71zm8niyd0vz262cr14n36l0j52"; + name = "ksshaskpass-5.4.1.tar.xz"; + }; + }; + plasma-desktop = { + version = "5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/plasma-desktop-5.4.1.tar.xz"; + sha256 = "1a3jllmyk12smpf9fczwkkvfp6ljcsy4m271d9wfahl4adwiycjq"; + name = "plasma-desktop-5.4.1.tar.xz"; + }; + }; + sddm-kcm = { + version = "5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/sddm-kcm-5.4.1.tar.xz"; + sha256 = "1vpwn7ybcz5qpx3v2yvhpdcwlicw34gmfy8yi6j199i4kba2c38l"; + name = "sddm-kcm-5.4.1.tar.xz"; + }; + }; + systemsettings = { + version = "5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/systemsettings-5.4.1.tar.xz"; + sha256 = "0nadq4gsv3caz8x237hvphc05zl15fpaanr1m0s2svg84k251k5l"; + name = "systemsettings-5.4.1.tar.xz"; + }; + }; + kwayland-integration = { + version = "5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/kwayland-integration-5.4.1.tar.xz"; + sha256 = "1hcvnbfzzc7rrbi48ar6hjlvj7mhii23lzlbvaizaqv3x8bgpvd7"; + name = "kwayland-integration-5.4.1.tar.xz"; + }; + }; + polkit-kde-agent = { + version = "1-5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/polkit-kde-agent-1-5.4.1.tar.xz"; + sha256 = "1g11kdv9wkqcn4gaijw7j71hkbfg5vi7vci8n880w536l173aa2i"; + name = "polkit-kde-agent-1-5.4.1.tar.xz"; + }; + }; + libksysguard = { + version = "5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/libksysguard-5.4.1.tar.xz"; + sha256 = "03vffsn2bnx26svmm7rpl4rlvnb8kmrqmivqdi55q69fsxdrz1wp"; + name = "libksysguard-5.4.1.tar.xz"; + }; + }; + plasma-workspace = { + version = "5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/plasma-workspace-5.4.1.tar.xz"; + sha256 = "158p70m0dda84c2mskw5xczqr5p8773nb3fibl8h2lw1bn4db130"; + name = "plasma-workspace-5.4.1.tar.xz"; + }; + }; + kgamma5 = { + version = "5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/kgamma5-5.4.1.tar.xz"; + sha256 = "1402cvwl9xjlzqi2z6hx59w388xqhh88igaxz0mwmfnlk6fdvrkv"; + name = "kgamma5-5.4.1.tar.xz"; + }; + }; + kde-gtk-config = { + version = "5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/kde-gtk-config-5.4.1.tar.xz"; + sha256 = "0g86ij6pqlmcjvaw7gc1n7mqf6v6nywsq874nkvja18k9yvr2cc3"; + name = "kde-gtk-config-5.4.1.tar.xz"; + }; + }; + kscreen = { + version = "5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/kscreen-5.4.1.tar.xz"; + sha256 = "00kb1jrdq2hklkq5svjfpmfd4jj8c9mzi5r3kx96hlnwz9abfjcv"; + name = "kscreen-5.4.1.tar.xz"; + }; + }; + kdeplasma-addons = { + version = "5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/kdeplasma-addons-5.4.1.tar.xz"; + sha256 = "0fn5z1p5hs9l0ggi62b0wyqpc4wyaaf49921zjn11nb8qs4y0vg1"; + name = "kdeplasma-addons-5.4.1.tar.xz"; + }; + }; + khotkeys = { + version = "5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/khotkeys-5.4.1.tar.xz"; + sha256 = "07wsf7257b48adn22x7dkws3ifdp9flw51spxk5nqyscs15dljm2"; + name = "khotkeys-5.4.1.tar.xz"; + }; + }; + oxygen-fonts = { + version = "5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/oxygen-fonts-5.4.1.tar.xz"; + sha256 = "0qybgwqz7v37mlqs2gprmxaz5k2dlya3fvcq4kz96zmgrskwlv6v"; + name = "oxygen-fonts-5.4.1.tar.xz"; + }; + }; + breeze = { + version = "5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/breeze-5.4.1.tar.xz"; + sha256 = "0dram0iy3ym4rhxbmv1ssv52avmmqk694b7ja7b9zr7krm1n8gyh"; + name = "breeze-5.4.1.tar.xz"; + }; + }; + kinfocenter = { + version = "5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/kinfocenter-5.4.1.tar.xz"; + sha256 = "17j7akqi3av4b790c40cva2b9vissyzv8kf1mj5b4mxwhrjlhbrj"; + name = "kinfocenter-5.4.1.tar.xz"; + }; + }; + khelpcenter = { + version = "5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/khelpcenter-5.4.1.tar.xz"; + sha256 = "11aszn2ha1wjpdyfr25by963krsmgflqj30fmkns2la1axqq19x9"; + name = "khelpcenter-5.4.1.tar.xz"; + }; + }; + kwayland = { + version = "5.4.1"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.4.1/kwayland-5.4.1.tar.xz"; + sha256 = "0irw68c9vn4c2jaqll442wr3f6wzj9q2z2qfl5qpq3vb9lpzfafg"; + name = "kwayland-5.4.1.tar.xz"; + }; + }; +} diff --git a/pkgs/desktops/plasma-5.4/systemsettings.nix b/pkgs/desktops/plasma-5.4/systemsettings.nix new file mode 100644 index 000000000000..089dc2790665 --- /dev/null +++ b/pkgs/desktops/plasma-5.4/systemsettings.nix @@ -0,0 +1,39 @@ +{ plasmaPackage +, extra-cmake-modules +, kdoctools +, kitemviews +, kcmutils +, ki18n +, kio +, kservice +, kiconthemes +, kwindowsystem +, kxmlgui +, kdbusaddons +, kconfig +, khtml +}: + +plasmaPackage { + name = "systemsettings"; + nativeBuildInputs = [ + extra-cmake-modules + kdoctools + ]; + buildInputs = [ + kitemviews + kcmutils + ki18n + kio + kservice + kiconthemes + kwindowsystem + kxmlgui + kdbusaddons + kconfig + khtml + ]; + postInstall = '' + wrapKDEProgram "$out/bin/systemsettings5" + ''; +} diff --git a/pkgs/desktops/xfce/core/thunar-archive-plugin.nix b/pkgs/desktops/xfce/core/thunar-archive-plugin.nix deleted file mode 100644 index 62a90578bd30..000000000000 --- a/pkgs/desktops/xfce/core/thunar-archive-plugin.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ stdenv, fetchurl, pkgconfig, thunar, intltool, exo, gtk, udev, libxfce4ui, libxfce4util, xfconf }: - -stdenv.mkDerivation rec { - name = "thunar-archive-plugin-${version}"; - maj_ver = "0.3"; - version = "${maj_ver}.1"; - - src = fetchurl { - url = "mirror://xfce/src/thunar-plugins/${name}/${maj_ver}/${name}.tar.bz2"; - sha256 = "1sxw09fwyn5sr6ipxk7r8gqjyf41c2v7vkgl0l6mhy5mcb48f27z"; - }; - - buildInputs = [ pkgconfig thunar intltool exo gtk udev libxfce4ui libxfce4util xfconf ]; - enableParallelBuilding = true; - - preFixup = "rm $out/share/icons/hicolor/icon-theme.cache"; - - meta = { - homepage = http://foo-projects.org/~benny/projects/thunar-archive-plugin/; - description = "The Thunar Archive Plugin allows you to create and extract archive files using the file context menus in the Thunar file manager"; - license = stdenv.lib.licenses.gpl2Plus; - platforms = stdenv.lib.platforms.linux; - maintainers = [ stdenv.lib.maintainers.iElectric ]; - }; -} diff --git a/pkgs/desktops/xfce/core/thunar.nix b/pkgs/desktops/xfce/core/thunar.nix index 6e4794544596..1ddab2b07525 100644 --- a/pkgs/desktops/xfce/core/thunar.nix +++ b/pkgs/desktops/xfce/core/thunar.nix @@ -14,6 +14,8 @@ stdenv.mkDerivation rec { }; name = "${p_name}-${ver_maj}.${ver_min}"; + patches = [ ./thunarx_plugins_directory.patch ]; + buildInputs = [ pkgconfig intltool gtk dbus_glib libstartup_notification libnotify libexif pcre udev diff --git a/pkgs/desktops/xfce/core/thunarx_plugins_directory.patch b/pkgs/desktops/xfce/core/thunarx_plugins_directory.patch new file mode 100644 index 000000000000..e1431d86b147 --- /dev/null +++ b/pkgs/desktops/xfce/core/thunarx_plugins_directory.patch @@ -0,0 +1,48 @@ +diff --git a/thunarx/thunarx-provider-factory.c b/thunarx/thunarx-provider-factory.c +index 31b8835..a3e7f4e 100644 +--- a/thunarx/thunarx-provider-factory.c ++++ b/thunarx/thunarx-provider-factory.c +@@ -141,12 +141,19 @@ static GList* + thunarx_provider_factory_load_modules (ThunarxProviderFactory *factory) + { + ThunarxProviderModule *module; ++ const gchar *thunar_dir; + const gchar *name; + GList *modules = NULL; + GList *lp; + GDir *dp; + +- dp = g_dir_open (THUNARX_DIRECTORY, 0, NULL); ++ thunar_dir = g_getenv("THUNARX_MODULE_DIR"); ++ if (NULL == thunar_dir) ++ { ++ thunar_dir = THUNARX_DIRECTORY; ++ } ++ ++ dp = g_dir_open (thunar_dir, 0, NULL); + if (G_LIKELY (dp != NULL)) + { + /* determine the types for all existing plugins */ +diff --git a/thunarx/thunarx-provider-module.c b/thunarx/thunarx-provider-module.c +index 023ad2a..6c21997 100644 +--- a/thunarx/thunarx-provider-module.c ++++ b/thunarx/thunarx-provider-module.c +@@ -174,10 +174,17 @@ static gboolean + thunarx_provider_module_load (GTypeModule *type_module) + { + ThunarxProviderModule *module = THUNARX_PROVIDER_MODULE (type_module); ++ const gchar *thunar_dir; + gchar *path; ++ ++ thunar_dir = g_getenv("THUNARX_MODULE_DIR"); ++ if (NULL == thunar_dir) ++ { ++ thunar_dir = THUNARX_DIRECTORY; ++ } + + /* load the module using the runtime link editor */ +- path = g_build_filename (THUNARX_DIRECTORY, type_module->name, NULL); ++ path = g_build_filename (thunar_dir, type_module->name, NULL); + module->library = g_module_open (path, G_MODULE_BIND_LAZY | G_MODULE_BIND_LOCAL); + g_free (path); + diff --git a/pkgs/desktops/xfce/core/xfdesktop.nix b/pkgs/desktops/xfce/core/xfdesktop.nix index 4402e61a2fb6..e5d04879008e 100644 --- a/pkgs/desktops/xfce/core/xfdesktop.nix +++ b/pkgs/desktops/xfce/core/xfdesktop.nix @@ -4,11 +4,11 @@ stdenv.mkDerivation rec { p_name = "xfdesktop"; ver_maj = "4.12"; - ver_min = "2"; + ver_min = "3"; src = fetchurl { url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2"; - sha256 = "c9788883163b57bac39d12e5f8310c869d176454879defb78b67f8e9f1ad5225"; + sha256 = "a8a8d93744d842ca6ac1f9bd2c8789ee178937bca7e170e5239cbdbef30520ac"; }; name = "${p_name}-${ver_maj}.${ver_min}"; diff --git a/pkgs/desktops/xfce/default.nix b/pkgs/desktops/xfce/default.nix index f2a9f848342c..5fdab2ab81e6 100644 --- a/pkgs/desktops/xfce/default.nix +++ b/pkgs/desktops/xfce/default.nix @@ -26,7 +26,10 @@ xfce_self = rec { # the lines are very long but it seems better than the even-od libxfcegui4 = callPackage ./core/libxfcegui4.nix { }; thunar = callPackage ./core/thunar.nix { }; thunar_volman = callPackage ./core/thunar-volman.nix { }; # ToDo: probably inside Thunar now - thunar_archive_plugin = callPackage ./core/thunar-archive-plugin.nix { }; + thunar-archive-plugin + = callPackage ./thunar-plugins/archive { }; + thunar-dropbox-plugin + = callPackage ./thunar-plugins/dropbox { }; tumbler = callPackage ./core/tumbler.nix { }; xfce4panel = callPackage ./core/xfce4-panel.nix { }; # ToDo: impure plugins from /run/current-system/sw/lib/xfce4 xfce4session = callPackage ./core/xfce4-session.nix { }; diff --git a/pkgs/desktops/xfce/thunar-plugins/archive/default.nix b/pkgs/desktops/xfce/thunar-plugins/archive/default.nix new file mode 100644 index 000000000000..78e5f5002cd4 --- /dev/null +++ b/pkgs/desktops/xfce/thunar-plugins/archive/default.nix @@ -0,0 +1,58 @@ +{ stdenv, fetchFromGitHub, pkgconfig, xfce4_dev_tools +, gtk +, thunar +, exo, libxfce4util, libxfce4ui +, xfconf, udev, libnotify +}: + +stdenv.mkDerivation rec { + p_name = "thunar-archive-plugin"; + ver_maj = "0.3"; + ver_min = "1"; + name = "${p_name}-${ver_maj}.${ver_min}"; + + src = fetchFromGitHub { + owner = "xfce-mirror"; + repo = p_name; + rev = "72b23eefc348bee31e06a04f968e430bc7dfa51e"; + sha256 = "0l8715x23qmk0jkywiza3qx0xxmafxi4grp7p82kkc5df5ccs8kx"; + }; + + buildInputs = [ + pkgconfig + xfce4_dev_tools + thunar + exo gtk libxfce4util libxfce4ui + xfconf udev libnotify + ]; + + preConfigure = '' + ./autogen.sh + ''; + + /* + File roller `*.desktop` situation + --------------------------------- + + For some odd reason, in nix os, gnome file-roller's desktop file has the non-standard name + `org.gnome.FileRoller.desktop`. In order to be compatible with this odd context, create + a `*.tap` file of the same name. + + IMPORTANT: Adapt or remove the symbolic link if the situation changes. + */ + preFixup = '' + pushd $out/libexec/thunar-archive-plugin > /dev/null + ln -s ./file-roller.tap org.gnome.FileRoller.tap + popd > /dev/null + rm $out/share/icons/hicolor/icon-theme.cache + ''; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + homepage = http://foo-projects.org/~benny/projects/thunar-archive-plugin/; + description = "Thunar plugin providing file context menus for archives"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/xfce/thunar-plugins/dropbox/default.nix b/pkgs/desktops/xfce/thunar-plugins/dropbox/default.nix new file mode 100644 index 000000000000..cf83386fa261 --- /dev/null +++ b/pkgs/desktops/xfce/thunar-plugins/dropbox/default.nix @@ -0,0 +1,41 @@ +{ stdenv, fetchurl, pkgconfig +, gtk +, thunar, python2 +}: + +stdenv.mkDerivation rec { + p_name = "thunar-dropbox-plugin"; + ver_maj = "0.2"; + ver_min = "1"; + name = "${p_name}-${ver_maj}.${ver_min}"; + + src = fetchurl { + url = "http://softwarebakery.com/maato/files/thunar-dropbox/thunar-dropbox-${ver_maj}.${ver_min}.tar.bz2"; + sha256 = "08vhzzzwshyz371yl7fzfylmhvchhv3s5kml3dva4v39jhvrpnkf"; + }; + + buildInputs = [ + pkgconfig + gtk + thunar python2 + ]; + + configurePhase = "python2 waf configure --prefix=$out"; + + buildPhase = "python2 waf"; + + installPhase = '' + python2 waf install + ''; + + preFixup = "rm $out/share/icons/hicolor/icon-theme.cache"; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + homepage = http://softwarebakery.com/maato/thunar-dropbox.html; + description = "A plugin for thunar that adds context-menu items from dropbox"; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} |