anchor.diff: -{ stdenv, fetchurl, lib, makeWrapper,
  +{ stdenv, fetchurl, lib, makeWrapper, wrapGAppsHook,
     # build dependencies
  -  alsaLib, atk, cairo, cups, dbus, expat, fontconfig,
  -  freetype, gdk-pixbuf, glib, gnome2, nspr, nss, xorg,
  -  glibc, systemd
  +  alsaLib, atk, at-spi2-atk, at-spi2-core, cairo, cups, dbus, expat, fontconfig,
  +  freetype, gdk-pixbuf, glib, glibc, gtk3, libuuid, nspr, nss, pango,
  +  xorg, systemd
   }:
  +let
   
  -stdenv.mkDerivation rec {
  -  version = "3.0.4";
  +  deps = [
  +    alsaLib
  +    atk
  +    at-spi2-atk
  +    at-spi2-core
  +    cairo
  +    cups
  +    dbus
  +    expat
  +    fontconfig
  +    freetype
  +    gdk-pixbuf
  +    glib
  +    glibc
  +    gtk3
  +    libuuid
  +    nspr
  +    nss
  +    pango
  +    xorg.libX11
  +    xorg.libxcb
  +    xorg.libXScrnSaver
  +    xorg.libXcomposite
  +    xorg.libXcursor
  +    xorg.libXdamage
  +    xorg.libXext
  +    xorg.libXfixes
  +    xorg.libXi
  +    xorg.libXrandr
  +    xorg.libXrender
  +    xorg.libXtst
  +    stdenv.cc.cc.lib
  +    stdenv.cc.cc
  +  ];
  +
  +in stdenv.mkDerivation rec {
  +  version = "3.1.0";
     pname = "pencil";
   
     src = fetchurl {
  -    url    = "http://pencil.evolus.vn/dl/V${version}/Pencil_${version}_amd64.deb";
  -    sha256 = "58e2b794c615ea8715d8374f177e19c87f7071e359826ec34a59836d537a62fd";
  +    url    = "http://pencil.evolus.vn/dl/V${version}.ga/pencil_${version}.ga_amd64.deb";
  +    sha256 = "01ae54b1a1351b909eb2366c6ec00816e1deba370e58f35601cf7368f10aaba3";
     };
   
     sourceRoot = ".";
   
     unpackCmd = ''
  -    ar p "$src" data.tar.xz | tar xJ
  +    ar p "$src" data.tar.gz | tar xz
     '';
   
     dontBuild = true;
   
  -  nativeBuildInputs = [ makeWrapper ];
  +  nativeBuildInputs = [ makeWrapper wrapGAppsHook ];
  +
  +  buildInputs = deps;
   
     installPhase = ''
  -    mkdir -p $out/bin
  -    cp -R usr/share opt $out/
  +    mkdir -p $out/bin $out/opt $out/share/applications
  +    cp -R usr/share $out/
  +    cp -R opt/pencil*/ $out/opt/pencil
  +    cp $out/opt/pencil/pencil.desktop $out/share/applications/
   
       # fix the path in the desktop file
       substituteInPlace \
  
positive.code:     # patch executable
      patchelf \
        --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
        --set-rpath "${libPath}:$out/opt/Pencil" \
        $out/opt/Pencil/pencil
  
      # patch libnode
      patchelf \
        --set-rpath "${libPath}" \
        $out/opt/Pencil/libnode.so
  
      # libffmpeg is for some reason  not executable
      chmod a+x $out/opt/Pencil/libffmpeg.so
  
      # fix missing libudev
      ln -s ${systemd.lib}/lib/libudev.so.1 $out/opt/Pencil/libudev.so.1
      wrapProgram $out/opt/Pencil/pencil \
        --prefix LD_LIBRARY_PATH : $out/opt/Pencil
    '';
  
    meta = with stdenv.lib; {
  
negative.code:       --replace /opt/ $out/opt/
  
      # symlink the binary to bin/
      ln -s $out/opt/pencil/pencil $out/bin/pencil
    '';
  
  
    preFixup = let
      packages = deps;
      libPathNative = lib.makeLibraryPath packages;
      libPath64 = lib.makeSearchPathOutput "lib" "lib64" packages;
      libPath = "${libPathNative}:${libPath64}";
  