From 870c07cc2b020b507238ef6f71003add14ec5cfc Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Wed, 17 May 2017 09:21:11 -0500 Subject: sddm: take themes from system environment --- .../sddm/0001-ignore-config-mtime.patch | 28 ---- .../applications/display-managers/sddm/default.nix | 159 +++++++-------------- .../sddm/sddm-ignore-config-mtime.patch | 28 ++++ .../display-managers/sddm/sddm-nix-profiles.patch | 24 ++++ pkgs/applications/display-managers/sddm/series | 2 + 5 files changed, 109 insertions(+), 132 deletions(-) delete mode 100644 pkgs/applications/display-managers/sddm/0001-ignore-config-mtime.patch create mode 100644 pkgs/applications/display-managers/sddm/sddm-ignore-config-mtime.patch create mode 100644 pkgs/applications/display-managers/sddm/sddm-nix-profiles.patch create mode 100644 pkgs/applications/display-managers/sddm/series (limited to 'pkgs/applications/display-managers') diff --git a/pkgs/applications/display-managers/sddm/0001-ignore-config-mtime.patch b/pkgs/applications/display-managers/sddm/0001-ignore-config-mtime.patch deleted file mode 100644 index 836df2de292d..000000000000 --- a/pkgs/applications/display-managers/sddm/0001-ignore-config-mtime.patch +++ /dev/null @@ -1,28 +0,0 @@ -From e9d82bfbc49993a5be2c93f6b72a969630587f26 Mon Sep 17 00:00:00 2001 -From: Thomas Tuegel -Date: Mon, 23 Nov 2015 06:56:28 -0600 -Subject: [PATCH 1/2] ignore config mtime - ---- - src/common/ConfigReader.cpp | 5 ----- - 1 file changed, 5 deletions(-) - -diff --git a/src/common/ConfigReader.cpp b/src/common/ConfigReader.cpp -index cfc9940..5bf5a6a 100644 ---- a/src/common/ConfigReader.cpp -+++ b/src/common/ConfigReader.cpp -@@ -138,11 +138,6 @@ namespace SDDM { - QString currentSection = QStringLiteral(IMPLICIT_SECTION); - - QFile in(m_path); -- QDateTime modificationTime = QFileInfo(in).lastModified(); -- if (modificationTime <= m_fileModificationTime) { -- return; -- } -- m_fileModificationTime = modificationTime; - - in.open(QIODevice::ReadOnly); - while (!in.atEnd()) { --- -2.6.3 - 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/sddm-ignore-config-mtime.patch b/pkgs/applications/display-managers/sddm/sddm-ignore-config-mtime.patch new file mode 100644 index 000000000000..836df2de292d --- /dev/null +++ b/pkgs/applications/display-managers/sddm/sddm-ignore-config-mtime.patch @@ -0,0 +1,28 @@ +From e9d82bfbc49993a5be2c93f6b72a969630587f26 Mon Sep 17 00:00:00 2001 +From: Thomas Tuegel +Date: Mon, 23 Nov 2015 06:56:28 -0600 +Subject: [PATCH 1/2] ignore config mtime + +--- + src/common/ConfigReader.cpp | 5 ----- + 1 file changed, 5 deletions(-) + +diff --git a/src/common/ConfigReader.cpp b/src/common/ConfigReader.cpp +index cfc9940..5bf5a6a 100644 +--- a/src/common/ConfigReader.cpp ++++ b/src/common/ConfigReader.cpp +@@ -138,11 +138,6 @@ namespace SDDM { + QString currentSection = QStringLiteral(IMPLICIT_SECTION); + + QFile in(m_path); +- QDateTime modificationTime = QFileInfo(in).lastModified(); +- if (modificationTime <= m_fileModificationTime) { +- return; +- } +- m_fileModificationTime = modificationTime; + + in.open(QIODevice::ReadOnly); + while (!in.atEnd()) { +-- +2.6.3 + 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 -- cgit v1.2.3