about summary refs log tree commit diff
path: root/pkgs/applications/display-managers/sddm/default.nix
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/sddm/default.nix
parentbe7b7d908f82e8ab16c43ffd0e240addd6f4018a (diff)
sddm: take themes from system environment
Diffstat (limited to 'pkgs/applications/display-managers/sddm/default.nix')
-rw-r--r--pkgs/applications/display-managers/sddm/default.nix159
1 files changed, 55 insertions, 104 deletions
diff --git a/pkgs/applications/display-managers/sddm/default.nix b/pkgs/applications/display-managers/sddm/default.nix
index 07c1e8cee3310..d54fb455fcb10 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 ];
+  };
 }