summary refs log tree commit diff
path: root/pkgs/applications/terminal-emulators/rxvt-unicode/default.nix
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2022-05-31 09:59:33 +0000
committerAlyssa Ross <hi@alyssa.is>2022-05-31 09:59:57 +0000
commit9ff36293d1e428cd7bf03e8d4b03611b6d361c28 (patch)
tree1ab51a42b868c55b83f6ccdb80371b9888739dd9 /pkgs/applications/terminal-emulators/rxvt-unicode/default.nix
parent1c4fcd0d4b0541e674ee56ace1053e23e562cc80 (diff)
parentddc3c396a51918043bb0faa6f676abd9562be62c (diff)
downloadnixpkgs-archive.tar
nixpkgs-archive.tar.gz
nixpkgs-archive.tar.bz2
nixpkgs-archive.tar.lz
nixpkgs-archive.tar.xz
nixpkgs-archive.tar.zst
nixpkgs-archive.zip
Last good Nixpkgs for Weston+nouveau? archive
I came this commit hash to terwiz[m] on IRC, who is trying to figure out
what the last version of Spectrum that worked on their NUC with Nvidia
graphics is.
Diffstat (limited to 'pkgs/applications/terminal-emulators/rxvt-unicode/default.nix')
-rw-r--r--pkgs/applications/terminal-emulators/rxvt-unicode/default.nix116
1 files changed, 116 insertions, 0 deletions
diff --git a/pkgs/applications/terminal-emulators/rxvt-unicode/default.nix b/pkgs/applications/terminal-emulators/rxvt-unicode/default.nix
new file mode 100644
index 00000000000..0eccceb5a4f
--- /dev/null
+++ b/pkgs/applications/terminal-emulators/rxvt-unicode/default.nix
@@ -0,0 +1,116 @@
+{ lib, stdenv, fetchurl, fetchpatch, makeDesktopItem
+, libX11, libXt, libXft, libXrender
+, ncurses, fontconfig, freetype
+, pkg-config, gdk-pixbuf, perl
+, libptytty
+, perlSupport      ? true
+, gdkPixbufSupport ? true
+, unicode3Support  ? true
+, emojiSupport     ? false
+, nixosTests
+}:
+
+let
+  pname = "rxvt-unicode";
+  version = "9.30";
+  description = "A clone of the well-known terminal emulator rxvt";
+
+  desktopItem = makeDesktopItem {
+    name = pname;
+    exec = "urxvt";
+    icon = "utilities-terminal";
+    comment = description;
+    desktopName = "URxvt";
+    genericName = pname;
+    categories = [ "System" "TerminalEmulator" ];
+  };
+
+  fetchPatchFromAUR = { package, name, rev, sha256 }:
+    fetchpatch rec {
+      url = "https://aur.archlinux.org/cgit/aur.git/plain/${name}?h=${package}&id=${rev}";
+      extraPrefix = "";
+      inherit name sha256;
+    };
+in
+
+with lib;
+
+stdenv.mkDerivation {
+  name = "${pname}-unwrapped-${version}";
+  inherit pname version;
+
+  src = fetchurl {
+    url = "http://dist.schmorp.de/rxvt-unicode/Attic/rxvt-unicode-${version}.tar.bz2";
+    sha256 = "0badnkjsn3zps24r5iggj8k5v4f00npc77wqg92pcn1q5z8r677y";
+  };
+
+  buildInputs =
+    [ libX11 libXt libXft ncurses  # required to build the terminfo file
+      fontconfig freetype pkg-config libXrender
+      libptytty
+    ] ++ optional perlSupport perl
+      ++ optional gdkPixbufSupport gdk-pixbuf;
+
+  outputs = [ "out" "terminfo" ];
+
+  patches = (if emojiSupport then [
+    # the required patches to libXft are in nixpkgs by default, see
+    # ../../../servers/x11/xorg/overrides.nix
+    (fetchPatchFromAUR {
+      name = "enable-wide-glyphs.patch";
+      package = "rxvt-unicode-truecolor-wide-glyphs";
+      rev = "69701a09c2c206233952b84bc966407f6774f1dc";
+      sha256 = "0jfcj0ahky4dxdfrhqvh1v83mblhf5nak56dk1vq3bhyifdg7ffq";
+    })
+    (fetchPatchFromAUR {
+      name = "improve-font-rendering.patch";
+      package = "rxvt-unicode-truecolor-wide-glyphs";
+      rev = "69701a09c2c206233952b84bc966407f6774f1dc";
+      sha256 = "1jj5ai2182nq912279adihi4zph1w4dvbdqa1pwacy4na6y0fz9y";
+    })
+  ] else [
+    ./patches/9.06-font-width.patch
+  ]) ++ [
+    ./patches/256-color-resources.patch
+  ]++ optional stdenv.isDarwin ./patches/makefile-phony.patch;
+
+  configureFlags = [
+    "--with-terminfo=${placeholder "terminfo"}/share/terminfo"
+    "--enable-256-color"
+    (enableFeature perlSupport "perl")
+    (enableFeature unicode3Support "unicode3")
+  ] ++ optional emojiSupport "--enable-wide-glyphs";
+
+  LDFLAGS = [ "-lfontconfig" "-lXrender" "-lpthread" ];
+  CFLAGS = [ "-I${freetype.dev}/include/freetype2" ];
+
+  preConfigure =
+    ''
+      # without this the terminfo won't be compiled by tic, see man tic
+      mkdir -p $terminfo/share/terminfo
+      export TERMINFO=$terminfo/share/terminfo
+    ''
+    + lib.optionalString perlSupport ''
+      # make urxvt find its perl file lib/perl5/site_perl
+      # is added to PERL5LIB automatically
+      mkdir -p $out/$(dirname ${perl.libPrefix})
+      ln -s $out/lib/urxvt $out/${perl.libPrefix}
+    '';
+
+  postInstall = ''
+    mkdir -p $out/nix-support
+    echo "$terminfo" >> $out/nix-support/propagated-user-env-packages
+    cp -r ${desktopItem}/share/applications/ $out/share/
+  '';
+
+  passthru.tests.test = nixosTests.terminal-emulators.urxvt;
+
+  meta = {
+    inherit description;
+    homepage = "http://software.schmorp.de/pkg/rxvt-unicode.html";
+    downloadPage = "http://dist.schmorp.de/rxvt-unicode/Attic/";
+    maintainers = with maintainers; [ rnhmjoj ];
+    platforms = platforms.unix;
+    license = licenses.gpl3;
+  };
+}