@ -1,29 +1,50 @@
{ stdenv , fetchurl , python , pyqt5 , sip , poppler_utils , pkgconfig , libpng
{ stdenv , fetchurl , fetchpatch , python , pyqt5 , sip , poppler_utils , pkgconfig , libpng
, imagemagick , libjpeg , fontconfig , podofo , qtbase , qmakeHook , icu , sqlite
, imagemagick , libjpeg , fontconfig , podofo , qtbase , qmakeHook , icu , sqlite
, makeWrapper , unrarSupport ? false , chmlib , pythonPackages , xz , libusb1 , libmtp
, makeWrapper , unrarSupport ? false , chmlib , pythonPackages , xz , libusb1 , libmtp
, xdg_utils , makeDesktopItem
, xdg_utils , makeDesktopItem
} :
} :
stdenv . mkDerivation rec {
stdenv . mkDerivation rec {
version = " 2 . 6 4 . 0 " ;
version = " 2 . 6 6 . 0 " ;
name = " c a l i b r e - ${ version } " ;
name = " c a l i b r e - ${ version } " ;
src = fetchurl {
src = fetchurl {
url = " h t t p s : / / d o w n l o a d . c a l i b r e - e b o o k . c o m / ${ version } / ${ name } . t a r . x z " ;
url = " h t t p s : / / d o w n l o a d . c a l i b r e - e b o o k . c o m / ${ version } / ${ name } . t a r . x z " ;
sha256 = " 0 j j b k h d 3 n 7 r h 5 q 6 c l 6 y y 5 1 h y j b x m g m 6 x j 7 i 2 a 1 d 3 h 2 g g r i p 1 z m r 9 " ;
sha256 = " 1 d b v 6 p 9 c q 9 z j 5 1 z v h f y 2 b 7 a i c 2 z q a 4 4 l m f m q 7 k 7 f k q c g b 6 w m a n i c " ;
} ;
} ;
inherit python ;
inherit python ;
patches = [
patches = [
# Patch from Debian that switches the version update change from
# Patches from Debian that:
# enabled by default to disabled by default.
# - disable plugin installation (very insecure)
./no_updates_dialog.patch
# - disables loading of web bug for privacy
# - switches the version update from enabled to disabled by default
( fetchpatch {
name = " d i s a b l e _ p l u g i n s . p a t c h " ;
url = " h t t p : / / b a z a a r . l a u n c h p a d . n e t / ~ c a l i b r e - p a c k a g e r s / c a l i b r e / d e b i a n / d o w n l o a d / h e a d : / d i s a b l e _ p l u g i n s . p y - 2 0 1 1 1 2 2 0 1 8 3 0 4 3 - d c l 0 8 c c f a g j x t 1 d v - 1 / d i s a b l e _ p l u g i n s . p y " ;
sha256 = " 1 9 s p d x 5 2 d h b r f n 9 l m 0 8 4 y l 3 c f w m 6 f 9 0 i m d 5 1 k 9 7 s f 7 f l m p l 5 6 9 p k " ;
} )
( fetchpatch {
name = " l i n k s _ p r i v a c y . p a t c h " ;
url = " h t t p : / / b a z a a r . l a u n c h p a d . n e t / ~ c a l i b r e - p a c k a g e r s / c a l i b r e / d e b i a n / d o w n l o a d / h e a d : / l i n k s p r i v a c y . p a t c h - 2 0 1 6 0 4 1 7 2 1 4 3 0 8 - 6 h v i v e 7 2 p c 0 r 4 a w c - 1 / l i n k s - p r i v a c y . p a t c h " ;
sha256 = " 0 f 6 p q 2 b 7 q 5 6 p x r q 2 j 8 y q d 7 b k s c 6 2 3 q 2 z g q 2 9 q c l i 3 0 f 1 3 v g a 1 w 6 0 " ;
} )
( fetchpatch {
name = " n o _ u p d a t e s _ d i a l o g . p a t c h " ;
url = " h t t p : / / b a z a a r . l a u n c h p a d . n e t / ~ c a l i b r e - p a c k a g e r s / c a l i b r e / d e b i a n / d o w n l o a d / h e a d : / n o _ u p d a t e s _ d i a l o g . p a - 2 0 0 8 1 2 3 1 1 2 0 4 2 6 - r z z u f l 0 z o 6 6 t 3 m t c - 1 6 / n o _ u p d a t e s _ d i a l o g . p a t c h " ;
sha256 = " 1 6 x w a 2 f a 4 7 j v s 9 5 4 f j r w r 8 r h h 8 9 a l j g i 1 d 1 w r f x a 4 0 s k n l m f w x i f " ;
} )
# the unrar patch is not from debian
] ++ stdenv . lib . optional ( ! unrarSupport ) ./dont_build_unrar_plugin.patch ;
] ++ stdenv . lib . optional ( ! unrarSupport ) ./dont_build_unrar_plugin.patch ;
prePatch = ''
prePatch = ''
sed - i " / p y q t _ s i p _ d i r / s : = . * : = ' ${ pyqt5 } / s h a r e / s i p / P y Q t 5 ' : " \
sed - i " / p y q t _ s i p _ d i r / s : = . * : = ' ${ pyqt5 } / s h a r e / s i p / P y Q t 5 ' : " \
setup/build_environment.py
setup/build_environment.py
# Remove unneeded files and libs
rm - rf resources/calibre-portable. * \
src / { chardet , cherrypy , html5lib , odf , routes }
'' ;
'' ;
dontUseQmakeConfigure = true ;
dontUseQmakeConfigure = true ;
@ -34,14 +55,14 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ makeWrapper pkgconfig qmakeHook ] ;
nativeBuildInputs = [ makeWrapper pkgconfig qmakeHook ] ;
buildInputs =
buildInputs = [
[ python pyqt5 sip poppler_utils libpng imagemagick libjpeg
python pyqt5 sip poppler_utils libpng imagemagick libjpeg
fontconfig podofo qtbase chmlib icu sqlite libusb1 libmtp xdg_utils
fontconfig podofo qtbase chmlib icu sqlite libusb1 libmtp xdg_utils
pythonPackages . mechanize pythonPackages . lxml pythonPackages . dateutil
] ++ ( with pythonPackages ; [
pythonPackages . cssutils pythonPackages . beautifulsoup pythonPackages . pillow
apsw beautifulsoup cssselect cssutils dateutil lxml mechanize netifaces pillow sqlite3
pythonPackages . sqlite3 pythonPackages . netifaces pythonPackages . apsw
# the following are distributed with calibre, but we use upstream instead
pythonPackages . cssselect
chardet cherrypy html5lib odfpy routes
] ;
] ) ;
installPhase = ''
installPhase = ''
export HOME = $ TMPDIR/fakehome
export HOME = $ TMPDIR/fakehome