anchor.diff:          --set HUNSPELL_DICTIONARIES "${hunspellDicts.${hunspellDict}}/share/hunspell" \
           --set LC_MESSAGES "${spellcheckerLanguage}"''
         else "");
  -  rpath = lib.makeLibraryPath [
  +in stdenv.mkDerivation rec {
  +  pname = "signal-desktop";
  +  version = "1.29.6"; # Please backport all updates to the stable channel.
  +  # All releases have a limited lifetime and "expire" 90 days after the release.
  +  # When releases "expire" the application becomes unusable until an update is
  +  # applied. The expiration date for the current release can be extracted with:
  +  # $ grep -a "^{\"buildExpiration" "${signal-desktop}/lib/Signal/resources/app.asar"
  +  # (Alternatively we could try to patch the asar archive, but that requires a
  +  # few additional steps and might not be the best idea.)
  +
  +  src = fetchurl {
  +    url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
  +    sha256 = "1s1rc4kyv0nxz5fy5ia7fflphf3izk80ks71q4wd67k1g9lvcw24";
  +  };
  +
  +  nativeBuildInputs = [
  +    autoPatchelfHook
  +    dpkg
  +    wrapGAppsHook
  +  ];
  +
  +  buildInputs = [
       alsaLib
  -    atk
       at-spi2-atk
       at-spi2-core
  +    atk
       cairo
       cups
       dbus
  
positive.code: , gnome2, gtk3, atk, at-spi2-atk, cairo, pango, gdk-pixbuf, glib, freetype, fontconfig
  , dbus, libX11, xorg, libXi, libXcursor, libXdamage, libXrandr, libXcomposite
  , libXext, libXfixes, libXrender, libXtst, libXScrnSaver, nss, nspr, alsaLib
  , cups, expat, udev, libnotify, libuuid, at-spi2-core, libappindicator-gtk3
  # Unfortunately this also overwrites the UI language (not just the spell
  # checking language!):
  , hunspellDicts, spellcheckerLanguage ? null # E.g. "de_DE"
  
negative.code:     glib
      gnome2.GConf
      gtk3
      libX11
      libXScrnSaver
      libXcomposite
  