at 18.03-beta 135 lines 5.2 kB view raw
1{ stdenv, fetchFromGitHub, fetchpatch, pkgconfig, cmake 2 3# dependencies 4, glib, libXinerama 5 6# optional features without extra dependencies 7, mpdSupport ? true 8, ibmSupport ? true # IBM/Lenovo notebooks 9 10# optional features with extra dependencies 11 12# ouch, this is ugly, but this gives the man page 13, docsSupport ? true, docbook2x, libxslt ? null 14 , man ? null, less ? null 15 , docbook_xsl ? null , docbook_xml_dtd_44 ? null 16 17, ncursesSupport ? true , ncurses ? null 18, x11Support ? true , xlibsWrapper ? null 19, xdamageSupport ? x11Support, libXdamage ? null 20, doubleBufferSupport ? x11Support 21, imlib2Support ? x11Support, imlib2 ? null 22 23, luaSupport ? true , lua ? null 24, luaImlib2Support ? luaSupport && imlib2Support 25, luaCairoSupport ? luaSupport && x11Support, cairo ? null 26, toluapp ? null 27 28, wirelessSupport ? true , wirelesstools ? null 29, nvidiaSupport ? false , libXNVCtrl ? null 30 31, curlSupport ? true , curl ? null 32, rssSupport ? curlSupport 33, weatherMetarSupport ? curlSupport 34, weatherXoapSupport ? curlSupport 35, libxml2 ? null 36}: 37 38assert docsSupport -> docbook2x != null && libxslt != null 39 && man != null && less != null 40 && docbook_xsl != null && docbook_xml_dtd_44 != null; 41 42assert ncursesSupport -> ncurses != null; 43 44assert x11Support -> xlibsWrapper != null; 45assert xdamageSupport -> x11Support && libXdamage != null; 46assert imlib2Support -> x11Support && imlib2 != null; 47assert luaSupport -> lua != null; 48assert luaImlib2Support -> luaSupport && imlib2Support 49 && toluapp != null; 50assert luaCairoSupport -> luaSupport && toluapp != null 51 && cairo != null; 52assert luaCairoSupport || luaImlib2Support 53 -> lua.luaversion == "5.1"; 54 55assert wirelessSupport -> wirelesstools != null; 56assert nvidiaSupport -> libXNVCtrl != null; 57 58assert curlSupport -> curl != null; 59assert rssSupport -> curlSupport && libxml2 != null; 60assert weatherMetarSupport -> curlSupport; 61assert weatherXoapSupport -> curlSupport && libxml2 != null; 62 63with stdenv.lib; 64 65stdenv.mkDerivation rec { 66 name = "conky-${version}"; 67 version = "1.10.8"; 68 69 src = fetchFromGitHub { 70 owner = "brndnmtthws"; 71 repo = "conky"; 72 rev = "v${version}"; 73 sha256 = "18kxjmaplqvn81vmvybvpc9qczm7wgcgd4af3a8vsqdv77cn5bwq"; 74 }; 75 76 postPatch = '' 77 sed -i -e '/include.*CheckIncludeFile)/i include(CheckIncludeFiles)' \ 78 cmake/ConkyPlatformChecks.cmake 79 '' + optionalString docsSupport '' 80 # Drop examples, since they contain non-ASCII characters that break docbook2x :( 81 sed -i 's/ Example: .*$//' doc/config_settings.xml 82 83 substituteInPlace cmake/Conky.cmake --replace "#set(RELEASE true)" "set(RELEASE true)" 84 ''; 85 86 NIX_LDFLAGS = "-lgcc_s"; 87 88 nativeBuildInputs = [ cmake pkgconfig ]; 89 buildInputs = [ glib libXinerama ] 90 ++ optionals docsSupport [ docbook2x docbook_xsl docbook_xml_dtd_44 libxslt man less ] 91 ++ optional ncursesSupport ncurses 92 ++ optional x11Support xlibsWrapper 93 ++ optional xdamageSupport libXdamage 94 ++ optional imlib2Support imlib2 95 ++ optional luaSupport lua 96 ++ optionals luaImlib2Support [ toluapp imlib2 ] 97 ++ optionals luaCairoSupport [ toluapp cairo ] 98 ++ optional wirelessSupport wirelesstools 99 ++ optional curlSupport curl 100 ++ optional rssSupport libxml2 101 ++ optional weatherXoapSupport libxml2 102 ++ optional nvidiaSupport libXNVCtrl 103 ; 104 105 cmakeFlags = [] 106 ++ optional docsSupport "-DMAINTAINER_MODE=ON" 107 ++ optional curlSupport "-DBUILD_CURL=ON" 108 ++ optional (!ibmSupport) "-DBUILD_IBM=OFF" 109 ++ optional imlib2Support "-DBUILD_IMLIB2=ON" 110 ++ optional luaCairoSupport "-DBUILD_LUA_CAIRO=ON" 111 ++ optional luaImlib2Support "-DBUILD_LUA_IMLIB2=ON" 112 ++ optional (!mpdSupport) "-DBUILD_MPD=OFF" 113 ++ optional (!ncursesSupport) "-DBUILD_NCURSES=OFF" 114 ++ optional rssSupport "-DBUILD_RSS=ON" 115 ++ optional (!x11Support) "-DBUILD_X11=OFF" 116 ++ optional xdamageSupport "-DBUILD_XDAMAGE=ON" 117 ++ optional doubleBufferSupport "-DBUILD_XDBE=ON" 118 ++ optional weatherMetarSupport "-DBUILD_WEATHER_METAR=ON" 119 ++ optional weatherXoapSupport "-DBUILD_WEATHER_XOAP=ON" 120 ++ optional wirelessSupport "-DBUILD_WLAN=ON" 121 ++ optional nvidiaSupport "-DBUILD_NVIDIA=ON" 122 ; 123 124 # `make -f src/CMakeFiles/conky.dir/build.make src/CMakeFiles/conky.dir/conky.cc.o`: 125 # src/conky.cc:137:23: fatal error: defconfig.h: No such file or directory 126 enableParallelBuilding = false; 127 128 meta = with stdenv.lib; { 129 homepage = http://conky.sourceforge.net/; 130 description = "Advanced, highly configurable system monitor based on torsmo"; 131 maintainers = [ maintainers.guibert ]; 132 license = licenses.gpl3Plus; 133 platforms = platforms.linux; 134 }; 135}