summary refs log tree commit diff
path: root/pkgs/os-specific/linux/conky/default.nix
diff options
context:
space:
mode:
authorChristoph Hrdinka <c.github@hrdinka.at>2014-03-14 23:39:56 +0100
committerChristoph Hrdinka <c.github@hrdinka.at>2014-03-16 12:30:15 +0100
commit26d5d506c968e4a06c5b37bdd154aa8525f2d77e (patch)
tree8ff82e0bd524a837fae0049726f7f16012b66405 /pkgs/os-specific/linux/conky/default.nix
parentb57ee8c33104523cd64426dd77770f0adc9731b3 (diff)
downloadnixpkgs-26d5d506c968e4a06c5b37bdd154aa8525f2d77e.tar
nixpkgs-26d5d506c968e4a06c5b37bdd154aa8525f2d77e.tar.gz
nixpkgs-26d5d506c968e4a06c5b37bdd154aa8525f2d77e.tar.bz2
nixpkgs-26d5d506c968e4a06c5b37bdd154aa8525f2d77e.tar.lz
nixpkgs-26d5d506c968e4a06c5b37bdd154aa8525f2d77e.tar.xz
nixpkgs-26d5d506c968e4a06c5b37bdd154aa8525f2d77e.tar.zst
nixpkgs-26d5d506c968e4a06c5b37bdd154aa8525f2d77e.zip
conky: add config options
Diffstat (limited to 'pkgs/os-specific/linux/conky/default.nix')
-rw-r--r--pkgs/os-specific/linux/conky/default.nix62
1 files changed, 54 insertions, 8 deletions
diff --git a/pkgs/os-specific/linux/conky/default.nix b/pkgs/os-specific/linux/conky/default.nix
index 086b792b4cd..3e95daba29e 100644
--- a/pkgs/os-specific/linux/conky/default.nix
+++ b/pkgs/os-specific/linux/conky/default.nix
@@ -1,5 +1,33 @@
-{ stdenv, fetchurl, pkgconfig, libxml2, curl, wirelesstools, glib, openssl
-, ncurses }:
+{ stdenv, fetchurl, pkgconfig
+
+# dependencies
+, glib, ncurses
+
+# optional features without extra dependencies
+, mpdSupport   ? true
+
+# optional features with extra dependencies
+, x11Support   ? false, x11           ? null
+, xdamage      ? false, libXdamage    ? null
+, wireless     ? false, wirelesstools ? null
+, luaSupport   ? false, lua5          ? null
+
+, rss          ? false
+, weatherMetar ? false
+, weatherXoap  ? false
+, curl ? null, libxml2 ? null
+}:
+
+assert luaSupport -> lua5          != null;
+assert wireless   -> wirelesstools != null;
+assert x11Support -> x11           != null;
+assert xdamage    -> x11Support && libXdamage != null;
+
+assert rss          -> curl != null && libxml2 != null;
+assert weatherMetar -> curl != null;
+assert weatherXoap  -> curl != null && libxml2 != null;
+
+with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "conky-1.9.0";
@@ -9,17 +37,35 @@ stdenv.mkDerivation rec {
     sha256 = "0vxvjmi3cdvnp994sv5zcdyncfn0mlxa71p2wm9zpyrmy58bbwds";
   };
 
-  patches = [ ./stdbool.patch ];
+  buildInputs = [ pkgconfig glib ncurses ]
+    ++ optional  luaSupport   lua5
+    ++ optional  wireless     wirelesstools
+    ++ optional  x11Support   x11
+    ++ optional  xdamage      libXdamage
+
+    ++ optionals rss          [ curl libxml2 ]
+    ++ optional  weatherMetar curl
+    ++ optionals weatherXoap  [ curl libxml2 ]
+    ;
 
-  buildInputs = [ pkgconfig libxml2 curl wirelesstools glib openssl ncurses ];
   configureFlags =
-    (map (x: "--disable-${x}") [ "x11" "xdamage" "own-window" "xft" "lua" ])
-    ++ (map (x: "--enable-${x}") [ "mpd" "double-buffer" "wlan" "rss"
-                                   "weather-metar" "weather-xoap" ]);
+    let flag = state: flags: if state then map (x: "--enable-${x}")  flags
+                                      else map (x: "--disable-${x}") flags;
+     in flag mpdSupport   [ "mpd" ]
+
+     ++ flag luaSupport   [ "lua" ]
+     ++ flag wireless     [ "wlan" ]
+     ++ flag x11Support   [ "x11" "xft" "argb" "double-buffer" "own-window" ] # conky won't compile without --enable-own-window
+     ++ flag xdamage      [ "xdamage" ]
+
+     ++ flag rss          [ "rss" ]
+     ++ flag weatherMetar [ "weather-metar" ]
+     ++ flag weatherXoap  [ "weather-xoap" ]
+     ;
 
   meta = {
     homepage = http://conky.sourceforge.net/;
-    description = "Conky is an advanced, highly configurable system monitor complied without X based on torsmo";
+    description = "Conky is an advanced, highly configurable system monitor based on torsmo";
     maintainers = [ stdenv.lib.maintainers.guibert ];
     license = stdenv.lib.licenses.gpl3Plus;
   };