anchor.diff:  { stdenv, fetchurl, python, pyqt5, sip_4_16, poppler_utils, pkgconfig, libpng
   , imagemagick, libjpeg, fontconfig, podofo, qtbase, qmakeHook, icu, sqlite
   , makeWrapper, unrarSupport ? false, chmlib, pythonPackages, xz, libusb1, libmtp
  -, xdg_utils
  +, xdg_utils, makeDesktopItem
   }:
   
   stdenv.mkDerivation rec {
  
positive.code:   name = "calibre-${version}";
  
    src = fetchurl {
      url = "http://download.calibre-ebook.com/${version}/${name}.tar.xz";
      sha256 = "0npqvfjqj1vwa7nmnsyd4d30z40brydw275ldf1jankrp6dr9dyd";
    };
  
  
negative.code:       wrapProgram $a --prefix PYTHONPATH : $PYTHONPATH \
                       --prefix PATH : ${poppler_utils.out}/bin
      done
  
      # Replace @out@ by the output path.
      mkdir -p $out/share/applications/
      cp {$calibreDesktopItem,$ebookEditDesktopItem,$ebookViewerDesktopItem}/share/applications/* $out/share/applications/
      for entry in $out/share/applications/*.desktop; do
        substituteAllInPlace $entry
      done
    '';
  
    calibreDesktopItem = makeDesktopItem {
      name = "calibre";
      desktopName = "calibre";
      exec = "@out@/bin/calibre --detach %F";
      genericName = "E-book library management";
      icon = "@out@/share/calibre/images/library.png";
      comment = "Manage, convert, edit, and read e-books";
      mimeType = stdenv.lib.concatStringsSep ";" [
        "application/x-mobipocket-subscription"
        "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
        "text/html"
        "application/x-cbc"
        "application/ereader"
        "application/oebps-package+xml"
        "image/vnd.djvu"
        "application/x-sony-bbeb"
        "application/vnd.ms-word.document.macroenabled.12"
        "text/rtf"
        "text/x-markdown"
        "application/pdf"
        "application/x-cbz"
        "application/x-mobipocket-ebook"
        "application/x-cbr"
        "application/x-mobi8-ebook"
        "text/fb2+xml"
        "application/vnd.oasis.opendocument.text"
        "application/epub+zip"
        "text/plain"
        "application/xhtml+xml"
      ];
      categories = "Office";
      extraEntries = ''
        Actions=ebook-edit ebook-viewer
  
        [Desktop Action ebook-edit]
        Name=Edit E-book
        Icon=@out@/share/calibre/images/tweak.png
        Exec=@out@/bin/ebook-edit --detach %F
  
        [Desktop Action ebook-viewer]
        Name=E-book Viewer
        Icon=@out@/share/calibre/images/viewer.png
        Exec=@out@/bin/ebook-viewer --detach %F
      '';
    };
  
    ebookEditDesktopItem = makeDesktopItem {
      name = "calibre-edit-ebook";
      desktopName = "Edit E-book";
      genericName = "E-book Editor";
      comment = "Edit e-books";
      icon = "@out@/share/calibre/images/tweak.png";
      exec = "@out@/bin/ebook-edit --detach %F";
      categories = "Office;Publishing";
      mimeType = "application/epub+zip";
      extraEntries = "NoDisplay=true";
    };
  
    ebookViewerDesktopItem = makeDesktopItem {
      name = "calibre-ebook-viewer";
      desktopName = "E-book Viewer";
      genericName = "E-book Viewer";
      comment = "Read e-books in all the major formats";
      icon = "@out@/share/calibre/images/viewer.png";
      exec = "@out@/bin/ebook-viewer --detach %F";
      categories = "Office;Viewer";
      mimeType = "application/epub+zip";
      extraEntries = "NoDisplay=true";
    };
  
    meta = with stdenv.lib; {
      description = "Comprehensive e-book software";
      homepage = https://calibre-ebook.com;
      license = with licenses; if unrarSupport then unfreeRedistributable else gpl3;
      maintainers = with maintainers; [ viric domenkozar pSub AndersonTorres ];
      platforms = platforms.linux;
  