summaryrefslogtreecommitdiffstats
path: root/pkgs/applications/display-managers
diff options
context:
space:
mode:
authorThomas Tuegel <ttuegel@mailbox.org>2017-05-17 09:21:11 -0500
committerThomas Tuegel <ttuegel@mailbox.org>2017-06-18 08:43:39 -0500
commit870c07cc2b020b507238ef6f71003add14ec5cfc (patch)
treec60ea6b8d7246fe56ca55e8b3fa54cdf61a3119a /pkgs/applications/display-managers
parentbe7b7d908f82e8ab16c43ffd0e240addd6f4018a (diff)
sddm: take themes from system environment
Diffstat (limited to 'pkgs/applications/display-managers')
-rw-r--r--pkgs/applications/display-managers/sddm/default.nix159
-rw-r--r--pkgs/applications/display-managers/sddm/sddm-ignore-config-mtime.patch (renamed from pkgs/applications/display-managers/sddm/0001-ignore-config-mtime.patch)0
-rw-r--r--pkgs/applications/display-managers/sddm/sddm-nix-profiles.patch24
-rw-r--r--pkgs/applications/display-managers/sddm/series2
4 files changed, 81 insertions, 104 deletions
diff --git a/pkgs/applications/display-managers/sddm/default.nix b/pkgs/applications/display-managers/sddm/default.nix
index 07c1e8cee331..d54fb455fcb1 100644
--- a/pkgs/applications/display-managers/sddm/default.nix
+++ b/pkgs/applications/display-managers/sddm/default.nix
@@ -1,121 +1,72 @@
-{ stdenv, lib, makeQtWrapper, fetchFromGitHub, fetchpatch
+{ mkDerivation, lib, copyPathsToStore, fetchFromGitHub, fetchpatch
, cmake, extra-cmake-modules, pkgconfig, libxcb, libpthreadstubs, lndir
, libXdmcp, libXau, qtbase, qtdeclarative, qttools, pam, systemd
-, themes
}:
let
- version = "0.14.0";
-
- unwrapped = stdenv.mkDerivation rec {
- name = "sddm-unwrapped-${version}";
-
- src = fetchFromGitHub {
- owner = "sddm";
- repo = "sddm";
- rev = "v${version}";
- sha256 = "0wwid23kw0725zpw67zchalg9mmharr7sn4yzhijq7wqpsczjfxj";
- };
-
- patches = [
- ./0001-ignore-config-mtime.patch
- (fetchpatch { /* Fix display of user avatars. */
- url = https://github.com/sddm/sddm/commit/ecb903e48822bd90650bdd64fe80754e3e9664cb.patch;
- sha256 = "0zm88944pwdad8grmv0xwnxl23xml85ryc71x2xac233jxdyx6ms";
- })
- ];
-
- postPatch =
- # Module Qt5::Test must be included in `find_package` before it is used.
- ''
- sed -i CMakeLists.txt -e '/find_package(Qt5/ s|)| Test)|'
- '';
-
- nativeBuildInputs = [ cmake extra-cmake-modules pkgconfig qttools ];
-
- buildInputs = [
- libxcb libpthreadstubs libXdmcp libXau pam systemd
- ];
-
- propagatedBuildInputs = [
- qtbase qtdeclarative
- ];
-
- cmakeFlags = [
- "-DCONFIG_FILE=/etc/sddm.conf"
- # Set UID_MIN and UID_MAX so that the build script won't try
- # to read them from /etc/login.defs (fails in chroot).
- # The values come from NixOS; they may not be appropriate
- # for running SDDM outside NixOS, but that configuration is
- # not supported anyway.
- "-DUID_MIN=1000"
- "-DUID_MAX=29999"
- ];
-
- preConfigure = ''
- export cmakeFlags="$cmakeFlags -DQT_IMPORTS_DIR=$out/$qtQmlPrefix -DCMAKE_INSTALL_SYSCONFDIR=$out/etc -DSYSTEMD_SYSTEM_UNIT_DIR=$out/lib/systemd/system"
- '';
- enableParallelBuilding = true;
-
- postInstall = ''
- # remove empty scripts
- rm "$out/share/sddm/scripts/Xsetup" "$out/share/sddm/scripts/Xstop"
- '';
+ version = "0.14.0";
- meta = with stdenv.lib; {
- description = "QML based X11 display manager";
- homepage = "https://github.com/sddm/sddm";
- platforms = platforms.linux;
- maintainers = with maintainers; [ abbradar ttuegel ];
- };
+ /* Fix display of user avatars. */
+ patchFixUserAvatars = fetchpatch {
+ url = https://github.com/sddm/sddm/commit/ecb903e48822bd90650bdd64fe80754e3e9664cb.patch;
+ sha256 = "0zm88944pwdad8grmv0xwnxl23xml85ryc71x2xac233jxdyx6ms";
};
-in
-
-stdenv.mkDerivation {
- name = "sddm-${version}";
-
- nativeBuildInputs = [ lndir makeQtWrapper ];
- buildInputs = [ unwrapped ] ++ themes;
- themes = map (pkg: pkg.out or pkg) themes;
- inherit unwrapped;
-
- unpackPhase = "true";
- configurePhase = "runHook preConfigure; runHook postConfigure";
- buildPhase = "runHook preBuild; runHook postBuild";
+in mkDerivation rec {
+ name = "sddm-unwrapped-${version}";
- 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
+ src = fetchFromGitHub {
+ owner = "sddm";
+ repo = "sddm";
+ rev = "v${version}";
+ sha256 = "0wwid23kw0725zpw67zchalg9mmharr7sn4yzhijq7wqpsczjfxj";
+ };
- for pkg in $propagated; do
- addToSearchPath RUNTIME_XDG_DATA_DIRS "$pkg/share"
- addToSearchPath RUNTIME_XDG_CONFIG_DIRS "$pkg/etc/xdg"
- done
+ patches =
+ copyPathsToStore (lib.readPathsFromFile ./. ./series)
+ ++ [ patchFixUserAvatars ];
- mkdir -p "$out/bin"
- makeQtWrapper "$unwrapped/bin/sddm" "$out/bin/sddm"
+ postPatch =
+ # Module Qt5::Test must be included in `find_package` before it is used.
+ ''
+ sed -i CMakeLists.txt -e '/find_package(Qt5/ s|)| Test)|'
+ '';
- mkdir -p "$out/share/sddm"
- for pkg in $unwrapped $themes; do
- local sddmDir="$pkg/share/sddm"
- if [ -d "$sddmDir" ]; then
- lndir -silent "$sddmDir" "$out/share/sddm"
- fi
- done
+ nativeBuildInputs = [ cmake extra-cmake-modules pkgconfig qttools ];
+
+ buildInputs = [
+ libxcb libpthreadstubs libXdmcp libXau pam systemd
+ ];
+
+ propagatedBuildInputs = [
+ qtbase qtdeclarative
+ ];
+
+ cmakeFlags = [
+ "-DCONFIG_FILE=/etc/sddm.conf"
+ # Set UID_MIN and UID_MAX so that the build script won't try
+ # to read them from /etc/login.defs (fails in chroot).
+ # The values come from NixOS; they may not be appropriate
+ # for running SDDM outside NixOS, but that configuration is
+ # not supported anyway.
+ "-DUID_MIN=1000"
+ "-DUID_MAX=29999"
+ ];
+
+ preConfigure = ''
+ export cmakeFlags="$cmakeFlags -DQT_IMPORTS_DIR=$out/$qtQmlPrefix -DCMAKE_INSTALL_SYSCONFDIR=$out/etc -DSYSTEMD_SYSTEM_UNIT_DIR=$out/lib/systemd/system"
+ '';
- runHook postInstall
+ postInstall = ''
+ # remove empty scripts
+ rm "$out/share/sddm/scripts/Xsetup" "$out/share/sddm/scripts/Xstop"
'';
- inherit (unwrapped) meta;
+ meta = with lib; {
+ description = "QML based X11 display manager";
+ homepage = "https://github.com/sddm/sddm";
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ abbradar ttuegel ];
+ };
}
diff --git a/pkgs/applications/display-managers/sddm/0001-ignore-config-mtime.patch b/pkgs/applications/display-managers/sddm/sddm-ignore-config-mtime.patch
index 836df2de292d..836df2de292d 100644
--- a/pkgs/applications/display-managers/sddm/0001-ignore-config-mtime.patch
+++ b/pkgs/applications/display-managers/sddm/sddm-ignore-config-mtime.patch
diff --git a/pkgs/applications/display-managers/sddm/sddm-nix-profiles.patch b/pkgs/applications/display-managers/sddm/sddm-nix-profiles.patch
new file mode 100644
index 000000000000..1783164af46d
--- /dev/null
+++ b/pkgs/applications/display-managers/sddm/sddm-nix-profiles.patch
@@ -0,0 +1,24 @@
+Index: sddm-0.14.0/src/daemon/Greeter.cpp
+===================================================================
+--- sddm-0.14.0.orig/src/daemon/Greeter.cpp
++++ sddm-0.14.0/src/daemon/Greeter.cpp
+@@ -157,18 +157,7 @@ namespace SDDM {
+ << args;
+
+ // greeter environment
+- QProcessEnvironment env;
+- QProcessEnvironment sysenv = QProcessEnvironment::systemEnvironment();
+-
+- insertEnvironmentList({QStringLiteral("LANG"), QStringLiteral("LANGUAGE"),
+- QStringLiteral("LC_CTYPE"), QStringLiteral("LC_NUMERIC"), QStringLiteral("LC_TIME"), QStringLiteral("LC_COLLATE"),
+- QStringLiteral("LC_MONETARY"), QStringLiteral("LC_MESSAGES"), QStringLiteral("LC_PAPER"), QStringLiteral("LC_NAME"),
+- QStringLiteral("LC_ADDRESS"), QStringLiteral("LC_TELEPHONE"), QStringLiteral("LC_MEASUREMENT"), QStringLiteral("LC_IDENTIFICATION"),
+- QStringLiteral("LD_LIBRARY_PATH"),
+- QStringLiteral("QML2_IMPORT_PATH"),
+- QStringLiteral("QT_PLUGIN_PATH"),
+- QStringLiteral("XDG_DATA_DIRS")
+- }, sysenv, env);
++ QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
+
+ env.insert(QStringLiteral("PATH"), mainConfig.Users.DefaultPath.get());
+ env.insert(QStringLiteral("DISPLAY"), m_display->name());
diff --git a/pkgs/applications/display-managers/sddm/series b/pkgs/applications/display-managers/sddm/series
new file mode 100644
index 000000000000..703fb6a3fe14
--- /dev/null
+++ b/pkgs/applications/display-managers/sddm/series
@@ -0,0 +1,2 @@
+sddm-ignore-config-mtime.patch
+sddm-nix-profiles.patch