From 78a6d62b4894089fe58c1706cda7c2b801294728 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Fri, 11 Dec 2015 06:58:04 -0600 Subject: sddm: wrap to include themes --- .../applications/display-managers/sddm/default.nix | 106 +++++++++++++-------- 1 file changed, 66 insertions(+), 40 deletions(-) (limited to 'pkgs/applications/display-managers/sddm/default.nix') diff --git a/pkgs/applications/display-managers/sddm/default.nix b/pkgs/applications/display-managers/sddm/default.nix index dc891605d1b61..8e5174869250d 100644 --- a/pkgs/applications/display-managers/sddm/default.nix +++ b/pkgs/applications/display-managers/sddm/default.nix @@ -1,54 +1,80 @@ -{ stdenv, fetchpatch, makeQtWrapper, fetchFromGitHub, cmake, pkgconfig, libxcb, libpthreadstubs -, libXdmcp, libXau, qtbase, qtdeclarative, qttools, pam, systemd }: +{ stdenv, makeQtWrapper, fetchFromGitHub +, cmake, pkgconfig, libxcb, libpthreadstubs, lndir +, libXdmcp, libXau, qtbase, qtdeclarative, qttools, pam, systemd +, themes +}: let version = "0.13.0"; -in -stdenv.mkDerivation rec { - name = "sddm-${version}"; - src = fetchFromGitHub { - owner = "sddm"; - repo = "sddm"; - rev = "v${version}"; - sha256 = "0c3q8lpb123m9k5x3i71mm8lmyzhknw77zxh89yfl8qmn6zd61i1"; - }; + unwrapped = stdenv.mkDerivation rec { + name = "sddm-unwrapped-${version}"; - patches = [ - ./0001-ignore-config-mtime.patch - ./0002-fix-ConfigReader-QStringList-corruption.patch - ]; + src = fetchFromGitHub { + owner = "sddm"; + repo = "sddm"; + rev = "v${version}"; + sha256 = "0c3q8lpb123m9k5x3i71mm8lmyzhknw77zxh89yfl8qmn6zd61i1"; + }; - nativeBuildInputs = [ cmake makeQtWrapper pkgconfig qttools ]; + patches = [ + ./0001-ignore-config-mtime.patch + ./0002-fix-ConfigReader-QStringList-corruption.patch + ]; - buildInputs = [ libxcb libpthreadstubs libXdmcp libXau qtbase qtdeclarative pam systemd ]; + nativeBuildInputs = [ cmake pkgconfig qttools ]; - 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" - ]; + buildInputs = [ + libxcb libpthreadstubs libXdmcp libXau qtbase qtdeclarative pam systemd + ]; - preConfigure = '' - export cmakeFlags="$cmakeFlags -DQT_IMPORTS_DIR=$out/lib/qt5/qml -DCMAKE_INSTALL_SYSCONFDIR=$out/etc -DSYSTEMD_SYSTEM_UNIT_DIR=$out/lib/systemd/system" - ''; + 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" + ]; - postInstall = '' - wrapQtProgram $out/bin/sddm - wrapQtProgram $out/bin/sddm-greeter - ''; + preConfigure = '' + export cmakeFlags="$cmakeFlags -DQT_IMPORTS_DIR=$out/lib/qt5/qml -DCMAKE_INSTALL_SYSCONFDIR=$out/etc -DSYSTEMD_SYSTEM_UNIT_DIR=$out/lib/systemd/system" + ''; - enableParallelBuilding = true; + enableParallelBuilding = true; - meta = with stdenv.lib; { - description = "QML based X11 display manager"; - homepage = https://github.com/sddm/sddm; - platforms = platforms.linux; - maintainers = with maintainers; [ abbradar ]; + meta = with stdenv.lib; { + description = "QML based X11 display manager"; + homepage = https://github.com/sddm/sddm; + platforms = platforms.linux; + maintainers = with maintainers; [ abbradar ]; + }; }; + +in + +stdenv.mkDerivation { + name = "sddm-${version}"; + phases = "installPhase"; + + nativeBuildInputs = [ lndir makeQtWrapper ]; + buildInputs = [ unwrapped ] ++ themes; + inherit themes; + inherit unwrapped; + + installPhase = '' + makeQtWrapper "$unwrapped/bin/sddm" "$out/bin/sddm" + + 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 + ''; + + inherit (unwrapped) meta; } -- cgit 1.4.1