diff options
author | Thomas Tuegel <ttuegel@mailbox.org> | 2017-05-17 09:21:11 -0500 |
---|---|---|
committer | Thomas Tuegel <ttuegel@mailbox.org> | 2017-06-18 08:43:39 -0500 |
commit | 870c07cc2b020b507238ef6f71003add14ec5cfc (patch) | |
tree | c60ea6b8d7246fe56ca55e8b3fa54cdf61a3119a /pkgs/applications/display-managers/sddm/default.nix | |
parent | be7b7d908f82e8ab16c43ffd0e240addd6f4018a (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.nix | 159 |
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 ]; + }; } |