From 7aee677a1093aa5869a6a1bf5ecd6121f87534c8 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Wed, 22 Mar 2017 07:14:05 -0500 Subject: [PATCH 1/6] makeQtWrapper: wrap with runtime XDG dirs --- pkgs/development/libraries/qt-5/make-qt-wrapper-darwin.sh | 4 ++-- pkgs/development/libraries/qt-5/make-qt-wrapper.sh | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/development/libraries/qt-5/make-qt-wrapper-darwin.sh b/pkgs/development/libraries/qt-5/make-qt-wrapper-darwin.sh index cc88d2ca35d..576c03d8c76 100644 --- a/pkgs/development/libraries/qt-5/make-qt-wrapper-darwin.sh +++ b/pkgs/development/libraries/qt-5/make-qt-wrapper-darwin.sh @@ -31,8 +31,8 @@ _makeQtWrapperSetup() { export QT_PLUGIN_PATH="$QT_PLUGIN_PATH${QT_PLUGIN_PATH:+:}${!outputLib}/lib/qt5/plugins" export QML_IMPORT_PATH="$QML_IMPORT_PATH${QML_IMPORT_PATH:+:}${!outputLib}/lib/qt5/imports" export QML2_IMPORT_PATH="$QML2_IMPORT_PATH${QML2_IMPORT_PATH:+:}${!outputLib}/lib/qt5/qml" - export RUNTIME_XDG_DATA_DIRS="$XDG_DATA_DIRS${XDG_DATA_DIRS:+:}${!outputBin}/share" - export RUNTIME_XDG_CONFIG_DIRS="$XDG_CONFIG_DIRS${XDG_CONFIG_DIRS:+:}${!outputBin}/etc/xdg" + export RUNTIME_XDG_DATA_DIRS="$RUNTIME_XDG_DATA_DIRS${RUNTIME_XDG_DATA_DIRS:+:}${!outputBin}/share" + export RUNTIME_XDG_CONFIG_DIRS="$RUNTIME_XDG_CONFIG_DIRS${RUNTIME_XDG_CONFIG_DIRS:+:}${!outputBin}/etc/xdg" } prePhases+=(_makeQtWrapperSetup) diff --git a/pkgs/development/libraries/qt-5/make-qt-wrapper.sh b/pkgs/development/libraries/qt-5/make-qt-wrapper.sh index b0d0bec9e3f..d716a876526 100644 --- a/pkgs/development/libraries/qt-5/make-qt-wrapper.sh +++ b/pkgs/development/libraries/qt-5/make-qt-wrapper.sh @@ -29,8 +29,8 @@ _makeQtWrapperSetup() { export QT_PLUGIN_PATH="$QT_PLUGIN_PATH${QT_PLUGIN_PATH:+:}${!outputLib}/lib/qt5/plugins" export QML_IMPORT_PATH="$QML_IMPORT_PATH${QML_IMPORT_PATH:+:}${!outputLib}/lib/qt5/imports" export QML2_IMPORT_PATH="$QML2_IMPORT_PATH${QML2_IMPORT_PATH:+:}${!outputLib}/lib/qt5/qml" - export RUNTIME_XDG_DATA_DIRS="$XDG_DATA_DIRS${XDG_DATA_DIRS:+:}${!outputBin}/share" - export RUNTIME_XDG_CONFIG_DIRS="$XDG_CONFIG_DIRS${XDG_CONFIG_DIRS:+:}${!outputBin}/etc/xdg" + export RUNTIME_XDG_DATA_DIRS="$RUNTIME_XDG_DATA_DIRS${RUNTIME_XDG_DATA_DIRS:+:}${!outputBin}/share" + export RUNTIME_XDG_CONFIG_DIRS="$RUNTIME_XDG_CONFIG_DIRS${RUNTIME_XDG_CONFIG_DIRS:+:}${!outputBin}/etc/xdg" } prePhases+=(_makeQtWrapperSetup) From 3de6ccd5b21e391c4fa324c94dd150e331a8474e Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Wed, 22 Mar 2017 07:14:59 -0500 Subject: [PATCH 2/6] sddm: propagate qtbase input --- .../display-managers/sddm/default.nix | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/display-managers/sddm/default.nix b/pkgs/applications/display-managers/sddm/default.nix index 9fd56a49b5f..019d3e97a6f 100644 --- a/pkgs/applications/display-managers/sddm/default.nix +++ b/pkgs/applications/display-managers/sddm/default.nix @@ -1,4 +1,4 @@ -{ stdenv, makeQtWrapper, fetchFromGitHub, fetchpatch +{ stdenv, lib, makeQtWrapper, fetchFromGitHub, fetchpatch , cmake, extra-cmake-modules, pkgconfig, libxcb, libpthreadstubs, lndir , libXdmcp, libXau, qtbase, qtdeclarative, qttools, pam, systemd , themes @@ -28,10 +28,13 @@ let nativeBuildInputs = [ cmake extra-cmake-modules pkgconfig qttools ]; buildInputs = [ - libxcb libpthreadstubs libXdmcp libXau qtbase pam systemd + libxcb libpthreadstubs libXdmcp libXau pam systemd + qtbase qtdeclarative ]; - propagatedBuildInputs = [ qtdeclarative ]; + propagatedUserEnvPkgs = builtins.map lib.getBin [ + qtbase qtdeclarative + ]; cmakeFlags = [ "-DCONFIG_FILE=/etc/sddm.conf" @@ -80,6 +83,21 @@ stdenv.mkDerivation { installPhase = '' runHook preInstall + propagated= + for i in $unwrapped $themes; do + findInputs $i propagated propagated-user-env-packages + if [ -z "$crossConfig" ]; then + findInputs $i propagated propagated-native-build-inputs + else + findInputs $i propagated propagated-build-inputs + fi + done + + for pkg in $propagated; do + addToSearchPath RUNTIME_XDG_DATA_DIRS "$pkg/share" + addToSearchPath RUNTIME_XDG_CONFIG_DIRS "$pkg/etc/xdg" + done + makeQtWrapper "$unwrapped/bin/sddm" "$out/bin/sddm" mkdir -p "$out/share/sddm" From 7ca62935bb7d8a1617a1c12e6735ecf45441aced Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Wed, 22 Mar 2017 07:15:08 -0500 Subject: [PATCH 3/6] nixos/plasma5: do not include extra-cmake-modules in sddm Fixes #24126. --- nixos/modules/services/x11/desktop-managers/plasma5.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/nixos/modules/services/x11/desktop-managers/plasma5.nix b/nixos/modules/services/x11/desktop-managers/plasma5.nix index f923d86265f..e3fc3340c95 100644 --- a/nixos/modules/services/x11/desktop-managers/plasma5.nix +++ b/nixos/modules/services/x11/desktop-managers/plasma5.nix @@ -209,7 +209,6 @@ in services.xserver.displayManager.sddm = { theme = "breeze"; themes = [ - pkgs.extra-cmake-modules # for the setup-hook plasma5.plasma-workspace pkgs.breeze-icons ]; From 203c4926e3251c91299eb122d48d250e5232ba9a Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Wed, 22 Mar 2017 07:33:26 -0500 Subject: [PATCH 4/6] sddmPlasma5: provide top-level package for theme --- pkgs/top-level/all-packages.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ecafbf2de90..1f07cf3f99c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15470,6 +15470,13 @@ with pkgs; themes = []; # extra themes, etc. }; + sddmPlasma5 = sddm.override { + themes = [ + plasma5.plasma-workspace + pkgs.breeze-icons + ]; + }; + skrooge = libsForQt5.callPackage ../applications/office/skrooge {}; slim = callPackage ../applications/display-managers/slim { From a96e047b31ca1f64cd80301f520471f4fd8de854 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Wed, 22 Mar 2017 07:39:50 -0500 Subject: [PATCH 5/6] nixos/sddm: replace `themes` option with `package` option --- nixos/modules/rename.nix | 2 ++ .../modules/services/x11/desktop-managers/plasma5.nix | 5 +---- nixos/modules/services/x11/display-managers/sddm.nix | 11 ++++++----- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix index 7b75ca85219..d9d399e3481 100644 --- a/nixos/modules/rename.nix +++ b/nixos/modules/rename.nix @@ -202,5 +202,7 @@ with lib; "See the 16.09 release notes for more information.") (mkRemovedOptionModule [ "services" "phpfpm" "phpIni" ] "") (mkRemovedOptionModule [ "services" "dovecot2" "package" ] "") + (mkRemovedOptionModule [ "services" "xserver" "displayManager" "sddm" "themes" ] + "Set the option `services.xserver.displayManager.sddm.package' instead.") ]; } diff --git a/nixos/modules/services/x11/desktop-managers/plasma5.nix b/nixos/modules/services/x11/desktop-managers/plasma5.nix index e3fc3340c95..918841e8f16 100644 --- a/nixos/modules/services/x11/desktop-managers/plasma5.nix +++ b/nixos/modules/services/x11/desktop-managers/plasma5.nix @@ -208,10 +208,7 @@ in services.xserver.displayManager.sddm = { theme = "breeze"; - themes = [ - plasma5.plasma-workspace - pkgs.breeze-icons - ]; + package = pkgs.sddmPlasma5; }; security.pam.services.kde = { allowNullPassword = true; }; diff --git a/nixos/modules/services/x11/display-managers/sddm.nix b/nixos/modules/services/x11/display-managers/sddm.nix index 6630b8257e4..affc1261d19 100644 --- a/nixos/modules/services/x11/display-managers/sddm.nix +++ b/nixos/modules/services/x11/display-managers/sddm.nix @@ -9,7 +9,7 @@ let cfg = dmcfg.sddm; xEnv = config.systemd.services."display-manager".environment; - sddm = pkgs.sddm.override { inherit (cfg) themes; }; + sddm = cfg.package; xserverWrapper = pkgs.writeScript "xserver-wrapper" '' #!/bin/sh @@ -105,11 +105,12 @@ in ''; }; - themes = mkOption { - type = types.listOf types.package; - default = []; + package = mkOption { + type = types.package; + default = pkgs.sddm; description = '' - Extra packages providing themes. + The SDDM package to install. + The default package can be overridden to provide extra themes. ''; }; From 403b87f0d58f3dd17b5bcf4f378bb4894b50d987 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Wed, 22 Mar 2017 07:14:27 -0500 Subject: [PATCH 6/6] plasma-workspace: do not propagate non-KDE inputs --- pkgs/desktops/plasma-5/plasma-workspace/default.nix | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/plasma-5/plasma-workspace/default.nix b/pkgs/desktops/plasma-5/plasma-workspace/default.nix index 5463e017d23..8759c7d8c1e 100644 --- a/pkgs/desktops/plasma-5/plasma-workspace/default.nix +++ b/pkgs/desktops/plasma-5/plasma-workspace/default.nix @@ -17,12 +17,15 @@ plasmaPackage { nativeBuildInputs = [ extra-cmake-modules kdoctools ]; buildInputs = [ + isocodes libdbusmenu libSM libXcursor pam wayland + ]; + propagatedBuildInputs = [ baloo kactivities kcmutils kconfig kcrash kdbusaddons kdeclarative kdelibs4support kdesu kglobalaccel kidletime kjsembed knewstuff knotifyconfig kpackage krunner ktexteditor ktextwidgets kwallet kwayland kwin kxmlrpcclient libkscreen libksysguard networkmanager-qt phonon - plasma-framework qtgraphicaleffects qtquickcontrols qtquickcontrols2 - qtscript qtx11extras solid isocodes libdbusmenu libSM libXcursor pam wayland + plasma-framework solid qtgraphicaleffects qtquickcontrols qtquickcontrols2 + qtscript qtx11extras ]; patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);