conky: add config options

This commit is contained in:
Christoph Hrdinka 2014-03-14 23:39:56 +01:00
parent b57ee8c331
commit 26d5d506c9
3 changed files with 64 additions and 21 deletions

View File

@ -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;
};

View File

@ -1,12 +0,0 @@
diff --git a/src/conky.c b/src/conky.c
index 5848b61..69a3d45 100644
--- a/src/conky.c
+++ b/src/conky.c
@@ -34,6 +34,7 @@
#include "common.h"
#include "timed_thread.h"
#include <stdarg.h>
+#include <stdbool.h>
#include <math.h>
#include <time.h>
#include <locale.h>

View File

@ -6583,7 +6583,16 @@ let
cifs_utils = callPackage ../os-specific/linux/cifs-utils { };
conky = callPackage ../os-specific/linux/conky { };
conky = callPackage ../os-specific/linux/conky {
mpdSupport = config.conky.mpdSupport or true;
x11Support = config.conky.x11Support or false;
xdamage = config.conky.xdamage or false;
wireless = config.conky.wireless or false;
luaSupport = config.conky.luaSupport or false;
rss = config.conky.rss or false;
weatherMetar = config.conky.weatherMetar or false;
weatherXoap = config.conky.weatherXoap or false;
};
cpufrequtils = callPackage ../os-specific/linux/cpufrequtils { };