nixpkgs/pkgs/os-specific/linux/conky/default.nix
aszlig e07e3a7591
conky: Link against GCC runtime library.
This is needed for Conky to shut down cleanly, because it relies on
pthread_cancel() to work.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-07-14 09:35:24 +02:00

75 lines
2.2 KiB
Nix

{ 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";
src = fetchurl {
url = "mirror://sourceforge/conky/${name}.tar.bz2";
sha256 = "0vxvjmi3cdvnp994sv5zcdyncfn0mlxa71p2wm9zpyrmy58bbwds";
};
NIX_LDFLAGS = "-lgcc_s";
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 ]
;
configureFlags =
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 based on torsmo";
maintainers = [ stdenv.lib.maintainers.guibert ];
license = stdenv.lib.licenses.gpl3Plus;
};
}