summary refs log tree commit diff
path: root/pkgs/applications/misc/redshift/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/misc/redshift/default.nix')
-rw-r--r--pkgs/applications/misc/redshift/default.nix176
1 files changed, 101 insertions, 75 deletions
diff --git a/pkgs/applications/misc/redshift/default.nix b/pkgs/applications/misc/redshift/default.nix
index b751560b301..e9862041f4a 100644
--- a/pkgs/applications/misc/redshift/default.nix
+++ b/pkgs/applications/misc/redshift/default.nix
@@ -11,82 +11,108 @@
 , withGeoclue ? withGeolocation && stdenv.isLinux, geoclue
 }:
 
-stdenv.mkDerivation rec {
-  pname = "redshift";
-  version = "1.12";
-
-  src = fetchFromGitHub {
-    owner = "jonls";
-    repo = "redshift";
-    rev = "v${version}";
-    sha256 = "12cb4gaqkybp4bkkns8pam378izr2mwhr2iy04wkprs2v92j7bz6";
+let
+  mkRedshift =
+    { pname, version, src, meta }:
+    stdenv.mkDerivation rec {
+      inherit pname version src meta;
+
+      patches = [
+        # https://github.com/jonls/redshift/pull/575
+        ./575.patch
+      ];
+
+      nativeBuildInputs = [
+        autoconf
+        automake
+        gettext
+        intltool
+        libtool
+        pkgconfig
+        wrapGAppsHook
+        wrapPython
+      ];
+
+      configureFlags = [
+        "--enable-randr=${if withRandr then "yes" else "no"}"
+        "--enable-geoclue2=${if withGeoclue then "yes" else "no"}"
+        "--enable-drm=${if withDrm then "yes" else "no"}"
+        "--enable-quartz=${if withQuartz then "yes" else "no"}"
+        "--enable-corelocation=${if withCoreLocation then "yes" else "no"}"
+      ];
+
+      buildInputs = [
+        gobject-introspection
+        gtk3
+        python
+      ] ++ stdenv.lib.optional  withRandr        libxcb
+        ++ stdenv.lib.optional  withGeoclue      geoclue
+        ++ stdenv.lib.optional  withDrm          libdrm
+        ++ stdenv.lib.optional  withQuartz       ApplicationServices
+        ++ stdenv.lib.optionals withCoreLocation [ CoreLocation Foundation Cocoa ]
+        ;
+
+      pythonPath = [ pygobject3 pyxdg ];
+
+      preConfigure = "./bootstrap";
+
+      postFixup = "wrapPythonPrograms";
+
+      # the geoclue agent may inspect these paths and expect them to be
+      # valid without having the correct $PATH set
+      postInstall = ''
+        substituteInPlace $out/share/applications/redshift.desktop \
+          --replace 'Exec=redshift' "Exec=$out/bin/redshift"
+        substituteInPlace $out/share/applications/redshift.desktop \
+          --replace 'Exec=redshift-gtk' "Exec=$out/bin/redshift-gtk"
+      '';
+
+      enableParallelBuilding = true;
+    };
+in
+rec {
+  redshift = mkRedshift rec {
+    pname = "redshift";
+    version = "1.12";
+
+    src = fetchFromGitHub {
+      owner = "jonls";
+      repo = "redshift";
+      rev = "v${version}";
+      sha256 = "12cb4gaqkybp4bkkns8pam378izr2mwhr2iy04wkprs2v92j7bz6";
+    };
+
+    meta = with stdenv.lib; {
+      description = "Screen color temperature manager";
+      longDescription = ''
+        Redshift adjusts the color temperature according to the position
+        of the sun. A different color temperature is set during night and
+        daytime. During twilight and early morning, the color temperature
+        transitions smoothly from night to daytime temperature to allow
+        your eyes to slowly adapt. At night the color temperature should
+        be set to match the lamps in your room.
+      '';
+      license = licenses.gpl3Plus;
+      homepage = http://jonls.dk/redshift;
+      platforms = platforms.unix;
+      maintainers = with maintainers; [ yegortimoshenko globin ];
+    };
   };
 
-  patches = [
-    # https://github.com/jonls/redshift/pull/575
-    ./575.patch
-  ];
-
-  nativeBuildInputs = [
-    autoconf
-    automake
-    gettext
-    intltool
-    libtool
-    pkgconfig
-    wrapGAppsHook
-    wrapPython
-  ];
-
-  configureFlags = [
-    "--enable-randr=${if withRandr then "yes" else "no"}"
-    "--enable-geoclue2=${if withGeoclue then "yes" else "no"}"
-    "--enable-drm=${if withDrm then "yes" else "no"}"
-    "--enable-quartz=${if withQuartz then "yes" else "no"}"
-    "--enable-corelocation=${if withCoreLocation then "yes" else "no"}"
-  ];
-
-  buildInputs = [
-    gobject-introspection
-    gtk3
-    python
-  ] ++ stdenv.lib.optional  withRandr        libxcb
-    ++ stdenv.lib.optional  withGeoclue      geoclue
-    ++ stdenv.lib.optional  withDrm          libdrm
-    ++ stdenv.lib.optional  withQuartz       ApplicationServices
-    ++ stdenv.lib.optionals withCoreLocation [ CoreLocation Foundation Cocoa ]
-    ;
-
-  pythonPath = [ pygobject3 pyxdg ];
-
-  preConfigure = "./bootstrap";
-
-  postFixup = "wrapPythonPrograms";
-
-  # the geoclue agent may inspect these paths and expect them to be
-  # valid without having the correct $PATH set
-  postInstall = ''
-    substituteInPlace $out/share/applications/redshift.desktop \
-      --replace 'Exec=redshift' "Exec=$out/bin/redshift"
-    substituteInPlace $out/share/applications/redshift.desktop \
-      --replace 'Exec=redshift-gtk' "Exec=$out/bin/redshift-gtk"
-  '';
-
-  enableParallelBuilding = true;
-
-  meta = with stdenv.lib; {
-    description = "Screen color temperature manager";
-    longDescription = ''
-      Redshift adjusts the color temperature according to the position
-      of the sun. A different color temperature is set during night and
-      daytime. During twilight and early morning, the color temperature
-      transitions smoothly from night to daytime temperature to allow
-      your eyes to slowly adapt. At night the color temperature should
-      be set to match the lamps in your room.
-    '';
-    license = licenses.gpl3Plus;
-    homepage = http://jonls.dk/redshift;
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ yegortimoshenko globin ];
+  redshift-wlr = mkRedshift {
+    pname = "redshift-wlr";
+    version = "2019-04-17";
+
+    src = fetchFromGitHub {
+      owner = "minus7";
+      repo = "redshift";
+      rev = "eecbfedac48f827e96ad5e151de8f41f6cd3af66";
+      sha256 = "0rs9bxxrw4wscf4a8yl776a8g880m5gcm75q06yx2cn3lw2b7v22";
+    };
+
+    meta = redshift.meta // {
+      description = redshift.meta.description + "(with wlroots patches)";
+      homepage = https://github.com/minus7/redshift;
+    };
   };
 }