about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLuca Bruno <lethalman88@gmail.com>2014-05-19 13:13:32 +0200
committerLuca Bruno <lucabru@src.gnome.org>2014-05-20 13:41:39 +0200
commitdf95a8cc2f922e41aab51d94e3faacc83ed0e80a (patch)
tree9362d7fbd3d1a9a70c5369fa7b355f02e5461f7a
parent819b5841c6586662416df895502040d64377331f (diff)
downloadnixlib-df95a8cc2f922e41aab51d94e3faacc83ed0e80a.tar
nixlib-df95a8cc2f922e41aab51d94e3faacc83ed0e80a.tar.gz
nixlib-df95a8cc2f922e41aab51d94e3faacc83ed0e80a.tar.bz2
nixlib-df95a8cc2f922e41aab51d94e3faacc83ed0e80a.tar.lz
nixlib-df95a8cc2f922e41aab51d94e3faacc83ed0e80a.tar.xz
nixlib-df95a8cc2f922e41aab51d94e3faacc83ed0e80a.tar.zst
nixlib-df95a8cc2f922e41aab51d94e3faacc83ed0e80a.zip
upower: add 0.99 version for gnome 3.12
-rw-r--r--nixos/modules/services/hardware/upower.nix22
-rw-r--r--nixos/modules/services/x11/desktop-managers/gnome3.nix1
-rw-r--r--pkgs/desktops/gnome-3/3.10/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/3.12/default.nix1
-rw-r--r--pkgs/os-specific/linux/upower/0.99.nix51
-rw-r--r--pkgs/top-level/all-packages.nix2
6 files changed, 73 insertions, 6 deletions
diff --git a/nixos/modules/services/hardware/upower.nix b/nixos/modules/services/hardware/upower.nix
index a202d82f646a..0b6a101efa0b 100644
--- a/nixos/modules/services/hardware/upower.nix
+++ b/nixos/modules/services/hardware/upower.nix
@@ -4,6 +4,9 @@
 
 with lib;
 
+let
+  cfg = config.services.upower;
+in
 {
 
   ###### interface
@@ -21,6 +24,15 @@ with lib;
         '';
       };
 
+      package = mkOption {
+        type = types.package;
+        default = pkgs.upower;
+        example = lib.literalExample "pkgs.upower";
+        description = ''
+          Which upower package to use.
+        '';
+      };
+
     };
 
   };
@@ -28,13 +40,13 @@ with lib;
 
   ###### implementation
 
-  config = mkIf config.services.upower.enable {
+  config = mkIf cfg.enable {
 
-    environment.systemPackages = [ pkgs.upower ];
+    environment.systemPackages = [ cfg.package ];
 
-    services.dbus.packages = [ pkgs.upower ];
+    services.dbus.packages = [ cfg.package ];
 
-    services.udev.packages = [ pkgs.upower ];
+    services.udev.packages = [ cfg.package ];
 
     systemd.services.upower =
       { description = "Power Management Daemon";
@@ -42,7 +54,7 @@ with lib;
         serviceConfig =
           { Type = "dbus";
             BusName = "org.freedesktop.UPower";
-            ExecStart = "@${pkgs.upower}/libexec/upowerd upowerd";
+            ExecStart = "@${cfg.package}/libexec/upowerd upowerd";
           };
       };
 
diff --git a/nixos/modules/services/x11/desktop-managers/gnome3.nix b/nixos/modules/services/x11/desktop-managers/gnome3.nix
index 63f39ec0d3af..4398a97ff47d 100644
--- a/nixos/modules/services/x11/desktop-managers/gnome3.nix
+++ b/nixos/modules/services/x11/desktop-managers/gnome3.nix
@@ -70,6 +70,7 @@ in {
     services.telepathy.enable = mkDefault true;
     networking.networkmanager.enable = true;
     services.upower.enable = config.powerManagement.enable;
+    services.upower.package = gnome3.upower;
 
     fonts.fonts = [ pkgs.dejavu_fonts ];
 
diff --git a/pkgs/desktops/gnome-3/3.10/default.nix b/pkgs/desktops/gnome-3/3.10/default.nix
index 2cb28e0c3076..b58bf7ef1d3b 100644
--- a/pkgs/desktops/gnome-3/3.10/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/default.nix
@@ -1,7 +1,7 @@
 { callPackage, self, pkgs }:
 
 rec {
-  inherit (pkgs) glib gtk2 gtk3 gnome2;
+  inherit (pkgs) glib gtk2 gtk3 gnome2 upower;
   gtk = gtk3; # just to be sure
   libcanberra = pkgs.libcanberra_gtk3; # just to be sure
   inherit (pkgs.gnome2) ORBit2;
diff --git a/pkgs/desktops/gnome-3/3.12/default.nix b/pkgs/desktops/gnome-3/3.12/default.nix
index e5c57903da08..f1c876d36657 100644
--- a/pkgs/desktops/gnome-3/3.12/default.nix
+++ b/pkgs/desktops/gnome-3/3.12/default.nix
@@ -3,6 +3,7 @@
 rec {
   inherit (pkgs) glib gtk2 gtk3 gnome2;
   gnome3 = pkgs.gnome3_12;
+  upower = pkgs.upower_99;
   gtk = gtk3; # just to be sure
   libcanberra = pkgs.libcanberra_gtk3; # just to be sure
   inherit (pkgs.gnome2) ORBit2;
diff --git a/pkgs/os-specific/linux/upower/0.99.nix b/pkgs/os-specific/linux/upower/0.99.nix
new file mode 100644
index 000000000000..c42fea16d353
--- /dev/null
+++ b/pkgs/os-specific/linux/upower/0.99.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl, pkgconfig, glib, dbus, dbus_glib, dbus_tools, polkit
+, intltool, libxslt, docbook_xsl, udev, libusb1, pmutils
+, useSystemd ? true, systemd, gobjectIntrospection
+}:
+
+assert stdenv.isLinux;
+
+stdenv.mkDerivation rec {
+  name = "upower-0.99.0";
+
+  src = fetchurl {
+    url = "http://upower.freedesktop.org/releases/${name}.tar.xz";
+    sha256 = "189rd8j5czy4fs7imxvr38icjh9vlgdz6ki2h08v530h96clndaz";
+  };
+
+  buildInputs =
+    [ dbus_glib polkit intltool libxslt docbook_xsl udev libusb1 gobjectIntrospection ]
+    ++ stdenv.lib.optional useSystemd systemd;
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  preConfigure =
+    ''
+      substituteInPlace src/linux/up-backend.c \
+        --replace /usr/bin/pm- ${pmutils}/bin/pm- \
+        --replace /usr/sbin/pm- ${pmutils}/sbin/pm-
+      substituteInPlace src/notify-upower.sh \
+        --replace /usr/bin/dbus-send ${dbus_tools}/bin/dbus-send
+    '';
+
+  configureFlags =
+    [ "--with-backend=linux" "--localstatedir=/var"
+      "--enable-deprecated" # needed for Xfce (Nov 2013)
+    ]
+    ++ stdenv.lib.optional useSystemd
+    [ "--enable-systemd"
+      "--with-systemdsystemunitdir=$(out)/etc/systemd/system"
+      "--with-systemdutildir=$(out)/lib/systemd/system-sleep"
+      "--with-udevrulesdir=$(out)/lib/udev/rules.d"
+    ];
+
+  NIX_CFLAGS_LINK = "-lgcc_s";
+
+  installFlags = "historydir=$(TMPDIR)/foo";
+
+  meta = {
+    homepage = http://upower.freedesktop.org/;
+    description = "A D-Bus service for power management";
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index f4e0337c3b30..9d88f1ff5eb1 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -7544,6 +7544,8 @@ let
 
   upower = callPackage ../os-specific/linux/upower { };
 
+  upower_99 = callPackage ../os-specific/linux/upower/0.99.nix { };
+
   upstart = callPackage ../os-specific/linux/upstart { };
 
   usbutils = callPackage ../os-specific/linux/usbutils { };