plasma54: init at 5.4.1

This commit is contained in:
Thomas Tuegel 2015-09-27 10:03:00 -05:00
parent 32a5695f2c
commit a482b9be4a
43 changed files with 2313 additions and 0 deletions

View File

@ -0,0 +1,39 @@
{ mkDerivation
, extra-cmake-modules
, bluez-qt
, kcoreaddons
, kdbusaddons
, kded
, ki18n
, kiconthemes
, kio
, knotifications
, kwidgetsaddons
, kwindowsystem
, plasma-framework
, qtdeclarative
, shared_mime_info
}:
mkDerivation {
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"
'';
}

View File

@ -0,0 +1,29 @@
{ mkDerivation
, automoc4
, cmake
, perl
, pkgconfig
, kdelibs
, qt4
, xproto
}:
mkDerivation {
name = "breeze-qt4";
sname = "breeze";
buildInputs = [
kdelibs
qt4
xproto
];
nativeBuildInputs = [
automoc4
cmake
perl
pkgconfig
];
cmakeFlags = [
"-DUSE_KDE4=ON"
"-DQT_QMAKE_EXECUTABLE=${qt4}/bin/qmake"
];
}

View File

@ -0,0 +1,35 @@
{ mkDerivation
, extra-cmake-modules
, frameworkintegration
, kcmutils
, kconfigwidgets
, kcoreaddons
, kdecoration
, kguiaddons
, ki18n
, kwindowsystem
, qtx11extras
}:
mkDerivation {
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"
'';
}

View File

@ -0,0 +1,87 @@
# 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";
mkDerivation = args:
let
inherit (stdenv) mkDerivation;
inherit (args) name;
sname = args.sname or name;
inherit (srcs."${sname}") src version;
in 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 (scope // { inherit mkDerivation; });
in lib.makeScope newScope addPackages

View File

@ -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 ..

View File

@ -0,0 +1,41 @@
{ mkDerivation
, extra-cmake-modules
, kcmutils
, kconfig
, kdelibs4support
, kdesu
, kdoctools
, ki18n
, kiconthemes
, kwindowsystem
, qtsvg
, qtx11extras
}:
mkDerivation {
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"
'';
}

View File

@ -0,0 +1,26 @@
{ mkDerivation
, extra-cmake-modules
, glib
, gtk2
, gtk3
, karchive
, kcmutils
, kconfigwidgets
, ki18n
, kiconthemes
, kio
, knewstuff
}:
mkDerivation {
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"
];
}

View File

@ -0,0 +1,6 @@
{ mkDerivation, extra-cmake-modules }:
mkDerivation {
name = "kdecoration";
nativeBuildInputs = [ extra-cmake-modules ];
}

View File

@ -0,0 +1,46 @@
{ mkDerivation
, extra-cmake-modules
, kdoctools
, ibus
, kconfig
, kconfigwidgets
, kcoreaddons
, kcmutils
, kdelibs4support
, ki18n
, kio
, knewstuff
, kross
, krunner
, kservice
, kunitconversion
, plasma-framework
, qtdeclarative
, qtx11extras
}:
mkDerivation {
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
];
}

View File

@ -0,0 +1,18 @@
{ mkDerivation
, extra-cmake-modules
, kdoctools
, kdelibs4support
, qtx11extras
}:
mkDerivation {
name = "kgamma5";
nativeBuildInputs = [
extra-cmake-modules
kdoctools
];
buildInputs = [
kdelibs4support
qtx11extras
];
}

View File

@ -0,0 +1,35 @@
{ mkDerivation
, extra-cmake-modules
, kdoctools
, kconfig
, kcoreaddons
, kdbusaddons
, ki18n
, kinit
, kcmutils
, kdelibs4support
, khtml
, kservice
}:
mkDerivation {
name = "khelpcenter";
nativeBuildInputs = [
extra-cmake-modules
kdoctools
];
buildInputs = [
kconfig
kcoreaddons
kdbusaddons
ki18n
kinit
kcmutils
kdelibs4support
khtml
kservice
];
postInstall = ''
wrapKDEProgram "$out/bin/khelpcenter"
'';
}

View File

@ -0,0 +1,34 @@
{ mkDerivation
, extra-cmake-modules
, kdoctools
, kcmutils
, kdbusaddons
, kdelibs4support
, kglobalaccel
, ki18n
, kio
, kxmlgui
, plasma-framework
, plasma-workspace
, qtx11extras
}:
mkDerivation {
name = "khotkeys";
nativeBuildInputs = [
extra-cmake-modules
kdoctools
];
buildInputs = [
kcmutils
kdbusaddons
kdelibs4support
kglobalaccel
ki18n
kio
kxmlgui
plasma-framework
plasma-workspace
qtx11extras
];
}

View File

@ -0,0 +1,53 @@
{ mkDerivation
, extra-cmake-modules
, kdoctools
, kcmutils
, kcompletion
, kconfig
, kconfigwidgets
, kcoreaddons
, kdbusaddons
, kdeclarative
, kdelibs4support
, ki18n
, kiconthemes
, kio
, kpackage
, kservice
, kwidgetsaddons
, kxmlgui
, libraw1394
, pciutils
, solid
}:
mkDerivation {
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"
'';
}

View File

@ -0,0 +1,31 @@
{ mkDerivation
, extra-cmake-modules
, kdoctools
, ki18n
, kxmlgui
, kdbusaddons
, kiconthemes
, kio
, sonnet
, kdelibs4support
}:
mkDerivation {
name = "kmenuedit";
nativeBuildInputs = [
extra-cmake-modules
kdoctools
];
buildInputs = [
ki18n
kxmlgui
kdbusaddons
kiconthemes
kio
sonnet
kdelibs4support
];
postInstall = ''
wrapKDEProgram "$out/bin/kmenuedit"
'';
}

View File

@ -0,0 +1,33 @@
{ mkDerivation
, extra-cmake-modules
, kconfig
, kconfigwidgets
, kdbusaddons
, kglobalaccel
, ki18n
, kwidgetsaddons
, kxmlgui
, libkscreen
, qtdeclarative
}:
mkDerivation {
name = "kscreen";
nativeBuildInputs = [
extra-cmake-modules
];
buildInputs = [
kconfig
kconfigwidgets
kdbusaddons
kglobalaccel
ki18n
kwidgetsaddons
kxmlgui
libkscreen
qtdeclarative
];
postInstall = ''
wrapKDEProgram "$out/bin/kscreen-console"
'';
}

View File

@ -0,0 +1,25 @@
{ mkDerivation
, extra-cmake-modules
, kdoctools
, kcoreaddons
, ki18n
, kwallet
, kwidgetsaddons
}:
mkDerivation {
name = "ksshaskpass";
nativeBuildInputs = [
extra-cmake-modules
kdoctools
];
buildInputs = [
kcoreaddons
ki18n
kwallet
kwidgetsaddons
];
postInstall = ''
wrapKDEProgram "$out/bin/ksshaskpass"
'';
}

View File

@ -0,0 +1,34 @@
{ mkDerivation
, extra-cmake-modules
, kdoctools
, kconfig
, kcoreaddons
, kdelibs4support
, ki18n
, kitemviews
, knewstuff
, kiconthemes
, libksysguard
}:
mkDerivation {
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"
'';
}

View File

@ -0,0 +1,14 @@
{ mkDerivation
, extra-cmake-modules
, wayland
}:
mkDerivation {
name = "kwayland";
nativeBuildInputs = [
extra-cmake-modules
];
buildInputs = [
wayland
];
}

View File

@ -0,0 +1,85 @@
{ mkDerivation
, 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
}:
mkDerivation {
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"
'';
}

View File

@ -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();

View File

@ -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()

View File

@ -0,0 +1,22 @@
{ mkDerivation
, extra-cmake-modules
, kcoreaddons
, ki18n
, kpty
, knotifications
, kdbusaddons
}:
mkDerivation {
name = "kwrited";
nativeBuildInputs = [
extra-cmake-modules
];
buildInputs = [
kcoreaddons
ki18n
kpty
knotifications
kdbusaddons
];
}

View File

@ -0,0 +1,16 @@
{ mkDerivation
, extra-cmake-modules
, libXrandr
, qtx11extras
}:
mkDerivation {
name = "libkscreen";
nativeBuildInputs = [
extra-cmake-modules
];
buildInputs = [
libXrandr
qtx11extras
];
}

View File

@ -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}"

View File

@ -0,0 +1,42 @@
{ mkDerivation
, extra-cmake-modules
, kauth
, kcompletion
, kconfigwidgets
, kcoreaddons
, kservice
, kwidgetsaddons
, kwindowsystem
, plasma-framework
, qtscript
, qtwebkit
, qtx11extras
, kconfig
, ki18n
, kiconthemes
}:
mkDerivation {
name = "libksysguard";
nativeBuildInputs = [
extra-cmake-modules
];
buildInputs = [
kauth
kcompletion
kconfigwidgets
kcoreaddons
kservice
kwidgetsaddons
kwindowsystem
plasma-framework
qtscript
qtwebkit
qtx11extras
];
propagatedBuildInputs = [
kconfig
ki18n
kiconthemes
];
}

View File

@ -0,0 +1,28 @@
{ mkDerivation
, extra-cmake-modules
, qtscript
, qtdeclarative
, kcoreaddons
, ki18n
, kdeclarative
, kservice
, plasma-framework
, krunner
}:
mkDerivation {
name = "milou";
nativeBuildInputs = [
extra-cmake-modules
];
buildInputs = [
qtscript
qtdeclarative
kcoreaddons
ki18n
kdeclarative
kservice
plasma-framework
krunner
];
}

View File

@ -0,0 +1,12 @@
{ mkDerivation
, extra-cmake-modules
, fontforge
}:
mkDerivation {
name = "oxygen-fonts";
nativeBuildInputs = [
extra-cmake-modules
fontforge
];
}

View File

@ -0,0 +1,38 @@
{ mkDerivation
, extra-cmake-modules
, ki18n
, kcmutils
, kconfig
, kdecoration
, kguiaddons
, kwidgetsaddons
, kservice
, kcompletion
, frameworkintegration
, kwindowsystem
, qtx11extras
}:
mkDerivation {
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"
'';
}

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,113 @@
{ mkDerivation
, 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
}:
mkDerivation {
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"
'';
}

View File

@ -0,0 +1,40 @@
{ mkDerivation
, extra-cmake-modules
, baloo
, kactivities
, kconfig
, kcoreaddons
, kdeclarative
, kguiaddons
, ki18n
, kio
, kservice
, kfilemetadata
, plasma-framework
, qtdeclarative
, qtmultimedia
, taglib
}:
mkDerivation {
name = "plasma-mediacenter";
nativeBuildInputs = [
extra-cmake-modules
];
buildInputs = [
baloo
kactivities
kconfig
kcoreaddons
kdeclarative
kguiaddons
ki18n
kio
kservice
kfilemetadata
plasma-framework
qtdeclarative
qtmultimedia
taglib
];
}

View File

@ -0,0 +1,65 @@
{ mkDerivation
, 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
}:
mkDerivation {
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"
'';
}

View File

@ -0,0 +1,28 @@
{ mkDerivation
, extra-cmake-modules
, glib
, kconfigwidgets
, kcoreaddons
, kdeclarative
, kglobalaccel
, ki18n
, libpulseaudio
, plasma-framework
}:
mkDerivation {
name = "plasma-pa";
nativeBuildInputs = [
extra-cmake-modules
];
buildInputs = [
glib
kconfigwidgets
kcoreaddons
kdeclarative
kglobalaccel
ki18n
libpulseaudio
plasma-framework
];
}

View File

@ -0,0 +1,10 @@
{ mkDerivation
, extra-cmake-modules
}:
mkDerivation {
name = "plasma-workspace-wallpapers";
nativeBuildInputs = [
extra-cmake-modules
];
}

View File

@ -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

View File

@ -0,0 +1,125 @@
{ mkDerivation
, 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
}:
mkDerivation {
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"
'';
}

View File

@ -0,0 +1,32 @@
{ mkDerivation
, extra-cmake-modules
, ki18n
, kwindowsystem
, kdbusaddons
, kwidgetsaddons
, kcoreaddons
, kcrash
, kconfig
, kiconthemes
, knotifications
, polkitQt
}:
mkDerivation {
name = "polkit-kde-agent";
nativeBuildInputs = [
extra-cmake-modules
];
buildInputs = [
ki18n
kwindowsystem
kdbusaddons
kwidgetsaddons
kcoreaddons
kcrash
kconfig
kiconthemes
knotifications
polkitQt
];
}

View File

@ -0,0 +1,44 @@
{ mkDerivation
, extra-cmake-modules
, kdoctools
, kactivities
, kauth
, kconfig
, kdbusaddons
, kdelibs4support
, kglobalaccel
, ki18n
, kidletime
, kio
, knotifyconfig
, libkscreen
, plasma-workspace
, qtx11extras
, solid
, udev
}:
mkDerivation {
name = "powerdevil";
nativeBuildInputs = [
extra-cmake-modules
kdoctools
];
buildInputs = [
kactivities
kauth
kconfig
kdbusaddons
kdelibs4support
kglobalaccel
ki18n
kidletime
kio
knotifyconfig
libkscreen
plasma-workspace
qtx11extras
solid
udev
];
}

View File

@ -0,0 +1 @@
addToSearchPath XDG_DATA_DIRS @out@/share

View File

@ -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";
};
};
}

View File

@ -0,0 +1,39 @@
{ mkDerivation
, extra-cmake-modules
, kdoctools
, kitemviews
, kcmutils
, ki18n
, kio
, kservice
, kiconthemes
, kwindowsystem
, kxmlgui
, kdbusaddons
, kconfig
, khtml
}:
mkDerivation {
name = "systemsettings";
nativeBuildInputs = [
extra-cmake-modules
kdoctools
];
buildInputs = [
kitemviews
kcmutils
ki18n
kio
kservice
kiconthemes
kwindowsystem
kxmlgui
kdbusaddons
kconfig
khtml
];
postInstall = ''
wrapKDEProgram "$out/bin/systemsettings5"
'';
}

View File

@ -14132,6 +14132,7 @@ let
plasma53 = recurseIntoAttrs (callPackage ../desktops/plasma-5.3 { });
plasma5_latest = plasma53;
plasma5_stable = plasma53;
plasma54 = recurseIntoAttrs (callPackage ../desktops/plasma-5.4 { inherit pkgs; });
kde5 = kf5_stable // plasma5_stable // kdeApps_stable;