From 11b43cef8e7dac98e96502177caae37c9ed1c0fb Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Tue, 3 Sep 2019 09:36:40 -0500 Subject: [PATCH 1/5] upower: 0.99.10 -> 0.99.11 https://gitlab.freedesktop.org/upower/upower/-/tags/UPOWER_0_99_11 --- pkgs/os-specific/linux/upower/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/os-specific/linux/upower/default.nix b/pkgs/os-specific/linux/upower/default.nix index 6b0dc179d0f..e931b28efbe 100644 --- a/pkgs/os-specific/linux/upower/default.nix +++ b/pkgs/os-specific/linux/upower/default.nix @@ -14,11 +14,11 @@ stdenv.mkDerivation rec { pname = "upower"; - version = "0.99.10"; + version = "0.99.11"; src = fetchurl { - url = https://gitlab.freedesktop.org/upower/upower/uploads/c438511024b9bc5a904f8775cfc8e4c4/upower-0.99.10.tar.xz; - sha256 = "17d2bclv5fgma2y3g8bsn9pdvspn1zrzismzdnzfivc0f2wm28k4"; + url = https://gitlab.freedesktop.org/upower/upower/uploads/93cfe7c8d66ed486001c4f3f55399b7a/upower-0.99.11.tar.xz; + sha256 = "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"; }; nativeBuildInputs = [ From 579a08ab15e066319e615741868dc4175d4890a4 Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Sun, 8 Sep 2019 04:55:14 -0400 Subject: [PATCH 2/5] upower: cleanup * correct inputs * drop dbus-glib Has not been needed for a very long time. * intltool -> gettext * add optional libimobiledevice * propagate glib It's in Requires * dev output * drop useSystemd --- pkgs/os-specific/linux/upower/default.nix | 35 +++++++++++++---------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/pkgs/os-specific/linux/upower/default.nix b/pkgs/os-specific/linux/upower/default.nix index e931b28efbe..91dddb50c34 100644 --- a/pkgs/os-specific/linux/upower/default.nix +++ b/pkgs/os-specific/linux/upower/default.nix @@ -1,53 +1,58 @@ { stdenv , fetchurl , pkgconfig -, dbus-glib -, intltool , libxslt , docbook_xsl , udev , libgudev , libusb1 +, glib , gobject-introspection -, useSystemd ? true, systemd +, gettext +, systemd +, useIMobileDevice ? true +, libimobiledevice }: stdenv.mkDerivation rec { pname = "upower"; version = "0.99.11"; + outputs = [ "out" "dev" ]; + src = fetchurl { url = https://gitlab.freedesktop.org/upower/upower/uploads/93cfe7c8d66ed486001c4f3f55399b7a/upower-0.99.11.tar.xz; sha256 = "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"; }; nativeBuildInputs = [ + docbook_xsl + gettext + gobject-introspection + libxslt pkgconfig ]; buildInputs = [ - dbus-glib - intltool - libxslt - docbook_xsl - udev libgudev libusb1 - gobject-introspection + udev + systemd ] - ++ stdenv.lib.optional useSystemd systemd + ++ stdenv.lib.optional useIMobileDevice libimobiledevice ; + propagatedBuildInputs = [ + glib + ]; + configureFlags = [ - "--with-backend=linux" "--localstatedir=/var" - ] - ++ stdenv.lib.optional useSystemd [ + "--with-backend=linux" "--with-systemdsystemunitdir=${placeholder "out"}/etc/systemd/system" "--with-systemdutildir=${placeholder "out"}/lib/systemd" "--with-udevrulesdir=${placeholder "out"}/lib/udev/rules.d" - ] - ; + ]; doCheck = false; # fails with "env: './linux/integration-test': No such file or directory" From ab48ede4c3f5a90f6229e84fdc471d12369407b7 Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Sun, 8 Sep 2019 04:56:13 -0400 Subject: [PATCH 3/5] nixos/upower: don't use activation script to create statedir Systemd now handles this completely. --- nixos/modules/services/hardware/upower.nix | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/nixos/modules/services/hardware/upower.nix b/nixos/modules/services/hardware/upower.nix index 1da47349c07..96d88da6e8b 100644 --- a/nixos/modules/services/hardware/upower.nix +++ b/nixos/modules/services/hardware/upower.nix @@ -84,12 +84,7 @@ in NoNewPrivileges = true; }; }; - - system.activationScripts.upower = - '' - mkdir -m 0755 -p /var/lib/upower - ''; - + # The upower daemon seems to get stuck after doing a suspend # (i.e. subsequent suspend requests will say "Sleep has already # been requested and is pending"). So as a workaround, restart From 92740dd4a81e0f2ef3c185e66809e3fca5132f0d Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Sun, 8 Sep 2019 05:03:46 -0400 Subject: [PATCH 4/5] nixos/upower: drop custom unit All of these changes ++ are in the upstream unit Also drop glib in path of unit as I don't believe this should be needed anymore. --- nixos/modules/services/hardware/upower.nix | 39 +++------------------- 1 file changed, 4 insertions(+), 35 deletions(-) diff --git a/nixos/modules/services/hardware/upower.nix b/nixos/modules/services/hardware/upower.nix index 96d88da6e8b..f6ce1101d54 100644 --- a/nixos/modules/services/hardware/upower.nix +++ b/nixos/modules/services/hardware/upower.nix @@ -5,8 +5,11 @@ with lib; let + cfg = config.services.upower; + in + { ###### interface @@ -49,42 +52,8 @@ in services.udev.packages = [ cfg.package ]; - systemd.services.upower = - { description = "Power Management Daemon"; - path = [ pkgs.glib.out ]; # needed for gdbus - serviceConfig = - { Type = "dbus"; - BusName = "org.freedesktop.UPower"; - ExecStart = "@${cfg.package}/libexec/upowerd upowerd"; - Restart = "on-failure"; - # Upstream lockdown: - # Filesystem lockdown - ProtectSystem = "strict"; - # Needed by keyboard backlight support - ProtectKernelTunables = false; - ProtectControlGroups = true; - ReadWritePaths = "/var/lib/upower"; - ProtectHome = true; - PrivateTmp = true; + systemd.packages = [ cfg.package ]; - # Network - # PrivateNetwork=true would block udev's netlink socket - RestrictAddressFamilies = "AF_UNIX AF_NETLINK"; - - # Execute Mappings - MemoryDenyWriteExecute = true; - - # Modules - ProtectKernelModules = true; - - # Real-time - RestrictRealtime = true; - - # Privilege escalation - NoNewPrivileges = true; - }; - }; - # The upower daemon seems to get stuck after doing a suspend # (i.e. subsequent suspend requests will say "Sleep has already # been requested and is pending"). So as a workaround, restart From 16083defb5aff18f70e938c6ecad1c9b11c3054a Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Sun, 8 Sep 2019 05:07:03 -0400 Subject: [PATCH 5/5] nixos/upower: drop resumeCommands hack Introduced 7 years ago, it's likely the issue has been fixed. Even possible this could cause issues with recent upower. --- nixos/modules/services/hardware/upower.nix | 9 --------- 1 file changed, 9 deletions(-) diff --git a/nixos/modules/services/hardware/upower.nix b/nixos/modules/services/hardware/upower.nix index f6ce1101d54..5e7ac7a6e65 100644 --- a/nixos/modules/services/hardware/upower.nix +++ b/nixos/modules/services/hardware/upower.nix @@ -54,15 +54,6 @@ in systemd.packages = [ cfg.package ]; - # The upower daemon seems to get stuck after doing a suspend - # (i.e. subsequent suspend requests will say "Sleep has already - # been requested and is pending"). So as a workaround, restart - # the daemon. - powerManagement.resumeCommands = - '' - ${config.systemd.package}/bin/systemctl try-restart upower - ''; - }; }