anchor.diff:  , nixosTests
   
   # Dependencies
  +, bzip2
   , cmake
  +, freetype
  +, libGL
   , libjpeg_turbo
   , makeWrapper
   , mesa # for built-in 3D software rendering using swrast
  
positive.code: , openssl
  , pam
  , perl
  , which
  , xkbcomp
  , xkeyboard_config
  , xorg
  }:
  
  stdenv.mkDerivation rec {
    pname = "turbovnc";
    version = "2.2.7";
  
    src = fetchFromGitHub {
      owner = "TurboVNC";
      repo = "turbovnc";
      rev = version;
      sha256 = "sha256-mEdatfTBx4nNmMTgv1Z+xefPFEiE2rCrsxyB7Dd03rg=";
    };
  
    # TODO:
  
negative.code:     # (This default is written by `vncserver` to `~/.vnc/xstartup.turbovnc`,
      # see https://github.com/TurboVNC/turbovnc/blob/ffdb57d9/unix/vncserver.in#L201.)
      # It checks for it using `which twm`.
      # vncserver needs also needs `xauth` and we add in `xterm` for convenience
      wrapProgram $out/bin/vncserver \
        --prefix PATH : ${lib.makeBinPath [ which xorg.twm xorg.xauth xterm ]}
  
      # Patch /usr/bin/perl
      patchShebangs $out/bin/vncserver
  
      # The viewer is in Java and requires `JAVA_HOME` (which is a single
      # path, cannot be multiple separated paths).
  