lol
1{ stdenv, fetchurl, perlSupport, libX11, libXt, libXft, ncurses, perl,
2 fontconfig, freetype, pkgconfig, libXrender, gdkPixbufSupport, gdk_pixbuf,
3 unicode3Support }:
4
5let
6 name = "rxvt-unicode";
7 version = "9.21";
8 n = "${name}-${version}";
9in
10
11stdenv.mkDerivation (rec {
12
13 name = "${n}${if perlSupport then "-with-perl" else ""}${if unicode3Support then "-with-unicode3" else ""}";
14
15 src = fetchurl {
16 url = "http://dist.schmorp.de/rxvt-unicode/Attic/rxvt-unicode-${version}.tar.bz2";
17 sha256 = "0swmi308v5yxsddrdhvi4cch88k2bbs2nffpl5j5m2f55gbhw9vm";
18 };
19
20 buildInputs =
21 [ libX11 libXt libXft ncurses /* required to build the terminfo file */
22 fontconfig freetype pkgconfig libXrender ]
23 ++ stdenv.lib.optional perlSupport perl
24 ++ stdenv.lib.optional gdkPixbufSupport gdk_pixbuf;
25
26 outputs = [ "out" "terminfo" ];
27
28 patches = [
29 ./rxvt-unicode-9.06-font-width.patch
30 ./rxvt-unicode-256-color-resources.patch
31 ]
32 ++ stdenv.lib.optional stdenv.isDarwin ./rxvt-unicode-makefile-phony.patch;
33
34 preConfigure =
35 ''
36 mkdir -p $terminfo/share/terminfo
37 configureFlags="--with-terminfo=$terminfo/share/terminfo --enable-256-color ${if perlSupport then "--enable-perl" else "--disable-perl"} ${if unicode3Support then "--enable-unicode3" else "--disable-unicode3"}";
38 export TERMINFO=$terminfo/share/terminfo # without this the terminfo won't be compiled by tic, see man tic
39 NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${freetype}/include/freetype2"
40 NIX_LDFLAGS="$NIX_LDFLAGS -lfontconfig -lXrender "
41 ''
42 # make urxvt find its perl file lib/perl5/site_perl is added to PERL5LIB automatically
43 + stdenv.lib.optionalString perlSupport ''
44 mkdir -p $out/lib/perl5
45 ln -s $out/{lib/urxvt,lib/perl5/site_perl}
46 '';
47
48 postInstall = ''
49 mkdir -p $out/nix-support
50 echo "$terminfo" >> $out/nix-support/propagated-user-env-packages
51 '';
52
53 meta = {
54 description = "A clone of the well-known terminal emulator rxvt";
55 homepage = "http://software.schmorp.de/pkg/rxvt-unicode.html";
56 maintainers = [ stdenv.lib.maintainers.mornfall ];
57 };
58})