about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/misc/calibre/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/misc/calibre/default.nix')
-rw-r--r--nixpkgs/pkgs/applications/misc/calibre/default.nix40
1 files changed, 26 insertions, 14 deletions
diff --git a/nixpkgs/pkgs/applications/misc/calibre/default.nix b/nixpkgs/pkgs/applications/misc/calibre/default.nix
index d838cd4e859f..7917975f4f28 100644
--- a/nixpkgs/pkgs/applications/misc/calibre/default.nix
+++ b/nixpkgs/pkgs/applications/misc/calibre/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , mkDerivation
 , fetchurl
 , poppler_utils
@@ -16,21 +17,21 @@
 , hyphen
 , unrarSupport ? false
 , chmlib
-, pythonPackages
+, python3Packages
 , libusb1
 , libmtp
-, xdg_utils
+, xdg-utils
 , makeDesktopItem
 , removeReferencesTo
 }:
 
 mkDerivation rec {
   pname = "calibre";
-  version = "4.23.0";
+  version = "5.10.1";
 
   src = fetchurl {
     url = "https://download.calibre-ebook.com/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-Ft5RRzzw4zb5RqVyUaHk9Pu6H4V/F9j8FKoTLn61lRg=";
+    sha256 = "18pnqxdyvgmw12yarxhvsgs4jk6c5hp05gf8khybcd78330954v9";
   };
 
   patches = [
@@ -42,9 +43,20 @@ mkDerivation rec {
     # the unrar patch is not from debian
   ] ++ lib.optional (!unrarSupport) ./dont_build_unrar_plugin.patch;
 
+  escaped_pyqt5_dir = builtins.replaceStrings ["/"] ["\\/"] (toString python3Packages.pyqt5);
+  platform_tag =
+    if stdenv.hostPlatform.isDarwin then
+      "WS_MACX"
+    else if stdenv.hostPlatform.isWindows then
+      "WS_WIN"
+    else
+      "WS_X11";
+
   prePatch = ''
-    sed -i "/pyqt_sip_dir/ s:=.*:= '${pythonPackages.pyqt5}/share/sip/PyQt5':"  \
-      setup/build_environment.py
+    sed -i "s/\[tool.sip.project\]/[tool.sip.project]\nsip-include-dirs = [\"${escaped_pyqt5_dir}\/share\/sip\/PyQt5\"]/g" \
+      setup/build.py
+    sed -i "s/\[tool.sip.bindings.pictureflow\]/[tool.sip.bindings.pictureflow]\ntags = [\"${platform_tag}\"]/g" \
+      setup/build.py
 
     # Remove unneeded files and libs
     rm -rf resources/calibre-portable.* \
@@ -57,8 +69,6 @@ mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config qmake removeReferencesTo ];
 
-  CALIBRE_PY3_PORT = builtins.toString pythonPackages.isPy3k;
-
   buildInputs = [
     chmlib
     fontconfig
@@ -74,9 +84,9 @@ mkDerivation rec {
     poppler_utils
     qtbase
     sqlite
-    xdg_utils
+    xdg-utils
   ] ++ (
-    with pythonPackages; [
+    with python3Packages; [
       apsw
       beautifulsoup4
       css-parser
@@ -92,11 +102,13 @@ mkDerivation rec {
       msgpack
       netifaces
       pillow
+      pyqt-builder
       pyqt5
       pyqtwebengine
       python
       regex
-      sip
+      sip_5
+      zeroconf
       # the following are distributed with calibre, but we use upstream instead
       odfpy
     ] ++ lib.optional (unrarSupport) unrardll
@@ -114,11 +126,11 @@ mkDerivation rec {
     export FC_LIB_DIR=${fontconfig.lib}/lib
     export PODOFO_INC_DIR=${podofo.dev}/include/podofo
     export PODOFO_LIB_DIR=${podofo.lib}/lib
-    export SIP_BIN=${pythonPackages.sip}/bin/sip
+    export SIP_BIN=${python3Packages.sip}/bin/sip
     export XDG_DATA_HOME=$out/share
     export XDG_UTILS_INSTALL_MODE="user"
 
-    ${pythonPackages.python.interpreter} setup.py install --root=$out \
+    ${python3Packages.python.interpreter} setup.py install --root=$out \
       --prefix=$out \
       --libdir=$out/lib \
       --staging-root=$out \
@@ -147,7 +159,7 @@ mkDerivation rec {
   #   /nix/store/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-podofo-0.9.6-dev/include/podofo/base/PdfVariant.h
   preFixup = ''
     remove-references-to -t ${podofo.dev} \
-      $out/lib/calibre/calibre/plugins${lib.optionalString pythonPackages.isPy3k "/3"}/podofo.so
+      $out/lib/calibre/calibre/plugins/podofo.so
 
     for program in $out/bin/*; do
       wrapProgram $program \