anchor.diff:    unpackPhase = "true";
   
     libPath = stdenv.lib.makeLibraryPath [
  -      qt5Full
  +      alsaLib
  +      cups
  +      curl
  +      dbus
  +      expat
  +      fontconfig
  +      freetype
  +      glib
  +      gst_all_1.gst-plugins-base
  +      gst_all_1.gstreamer
  +      harfbuzz
  +      libcap
  +      libpulseaudio
  +      mesa
  +      nspr
  +      nss
  +      stdenv.cc.cc
  +      libudev
  +      wayland
  +      zlib
  +
  +      xorg.libICE
  +      xorg.libSM
         xorg.libX11
  -      gstreamer
  -      zlib
  -      sqlite
  +      xorg.libxcb
  +      xorg.libXcomposite
  +      xorg.libXcursor
  +      xorg.libXdamage
  +      xorg.libXext
  +      xorg.libXfixes
  +      xorg.libXi
  +      xorg.libXrandr
         xorg.libXrender
  -      libxslt
  -      stdenv.cc.cc
         xorg.libXScrnSaver
  -      xorg.libXext
  -  ];
  +      xorg.libXtst
  +      xorg.xcbutilimage
  +      xorg.xcbutilkeysyms
  +      xorg.xcbutilrenderutil
  +      xorg.xcbutilwm
  +  ]
  +  ;
   
     installPhase = ''
       dpkg-deb -x $src $out
       mkdir -p $out/bin
  -    mv $out/opt/viber/{Sound,icons,libqfacebook.so} $out
  -    mv $out/opt/viber/Viber $out/viber
  -    rm -rf $out/opt
  -    ln -s $out/viber $out/bin/viber
  -    mkdir -p usr/lib/mozilla/plugins
   
  -    patchelf \
  -      --set-rpath $libPath \
  -      $out/libqfacebook.so
  -    patchelf \
  -      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
  -      --set-rpath $libPath:$out \
  -      $out/viber
  +    # Soothe nix-build "suspicions"
  +    chmod -R g-w $out
   
  -    wrapProgram $out/viber --prefix LD_LIBRARY_PATH : $libPath:$out
  +    for file in $(find $out -type f \( -perm /0111 -o -name \*.so\* \) ); do
  +      patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$file" || true
  +      patchelf --set-rpath $libPath:$out/opt/viber/lib $file || true
  +    done
  +
  +    # qt.conf is not working, so override everything using environment variables
  +    wrapProgram $out/opt/viber/Viber \
  +      --set QT_PLUGIN_PATH "$out/opt/viber/plugins" \
  +      --set QT_XKB_CONFIG_ROOT "${xorg.xkeyboardconfig}/share/X11/xkb" \
  +      --set QTCOMPOSE "${xorg.libX11}/share/X11/locale"
  +    ln -s $out/opt/viber/Viber $out/bin/viber
  +
  +    mv $out/usr/share $out/share
  +    rm -rf $out/usr
  +
  +    # Fix the desktop link
  +    substituteInPlace $out/share/applications/viber.desktop \
  +      --replace /opt/viber/Viber $out/opt/viber/Viber \
  +      --replace /usr/share/ $out/share/
     '';
   
     dontStrip = true;
  
positive.code: { fetchurl, stdenv, dpkg, makeWrapper, xorg, qt5Full, gstreamer, zlib, sqlite, libxslt }:
  
  assert stdenv.system == "x86_64-linux";
  
  # BUG: viber tries to access contacts list and that causes segfault
  # FIX: you have to do `chmod 444 ~/.ViberPC/<your mobile phone number>/Avatars`
  # BUG: viber tries to it's downloads and that causes segfault
  # FIX: you have to do `chmod 444 ~/Documents/ViberDownloads`
  # TODO: fix bugs
  
  stdenv.mkDerivation rec {
    name = "viber-${version}";
    version = "4.2.2.6";
  
    src = fetchurl {
      url = "http://download.cdn.viber.com/cdn/desktop/Linux/viber.deb";
      sha256 = "1fv269z9sni21lc1ka25jnxr9w8zfg1gfn2c7fnd8cdd5fm57d26";
    };
  
    buildInputs = [ dpkg makeWrapper ];
  
negative.code:     license = stdenv.lib.licenses.unfree;
      platforms = stdenv.lib.platforms.linux;
      maintainers = with stdenv.lib.maintainers; [ jagajaga ];
    };
  
  }
  