[bug#33868] gnu: calibre: Fix PDF to EPUB conversion.

Message ID 20181225114427.2777-1-m.othacehe@gmail.com
State Accepted
Headers show
Series [bug#33868] gnu: calibre: Fix PDF to EPUB conversion. | expand

Checks

Context Check Description
cbaines/applying patch success Successfully applied

Commit Message

Mathieu Othacehe Dec. 25, 2018, 11:44 a.m. UTC
When trying to convert a PDF to EPUB, the following error occurs:

  File "/gnu/store/kz6bgqw9z7akj11zh20wkx14cgq0s3n2-calibre-3.35.0/lib/calibre/calibre/ebooks/pdf/pdftohtml.py", line 76, in pdftohtml
    _('Could not find pdftohtml, check it is in your PATH'))

Move poppler which provides pdftohtml from inputs to propagated-inputs to fix it.

* gnu/packages/ebook.scm (calibre)[inputs]: Move poppler from here ...
[propagated-inputs]: ... to here.
---
 gnu/packages/ebook.scm | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Ludovic Courtès Jan. 6, 2019, 5:56 p.m. UTC | #1
Hello,

Mathieu Othacehe <m.othacehe@gmail.com> skribis:

> When trying to convert a PDF to EPUB, the following error occurs:
>
>   File "/gnu/store/kz6bgqw9z7akj11zh20wkx14cgq0s3n2-calibre-3.35.0/lib/calibre/calibre/ebooks/pdf/pdftohtml.py", line 76, in pdftohtml
>     _('Could not find pdftohtml, check it is in your PATH'))
>
> Move poppler which provides pdftohtml from inputs to propagated-inputs to fix it.
>
> * gnu/packages/ebook.scm (calibre)[inputs]: Move poppler from here ...
> [propagated-inputs]: ... to here.

I haven’t tested it but I’m confident you can go ahead and push it.

Thanks!

Ludo’.
Marius Bakke Jan. 11, 2019, 11:19 p.m. UTC | #2
Mathieu Othacehe <m.othacehe@gmail.com> writes:

> When trying to convert a PDF to EPUB, the following error occurs:
>
>   File "/gnu/store/kz6bgqw9z7akj11zh20wkx14cgq0s3n2-calibre-3.35.0/lib/calibre/calibre/ebooks/pdf/pdftohtml.py", line 76, in pdftohtml
>     _('Could not find pdftohtml, check it is in your PATH'))
>
> Move poppler which provides pdftohtml from inputs to propagated-inputs to fix it.
>
> * gnu/packages/ebook.scm (calibre)[inputs]: Move poppler from here ...
> [propagated-inputs]: ... to here.

An less intrusive solution would be to substitute the absolute path to
'pdf2html' in a build step.  I.e.:

(substitute* "lib/calibre/calibre/ebooks/pdf/pdftohtml.py"
  (("PDFTOHTML = \"pdftohtml\"")
   (string-append "PDFTOHTML = \"" (assoc-ref inputs "poppler")
                  "/bin/pdftohtml\"")))

Either approach is fine by me, but please leave a comment about why
Poppler is propagated if you go that route :-)
Leo Famulari Jan. 12, 2019, 10:43 p.m. UTC | #3
On Sat, Jan 12, 2019 at 12:19:54AM +0100, Marius Bakke wrote:
> Mathieu Othacehe <m.othacehe@gmail.com> writes:
> 
> > When trying to convert a PDF to EPUB, the following error occurs:
> >
> >   File "/gnu/store/kz6bgqw9z7akj11zh20wkx14cgq0s3n2-calibre-3.35.0/lib/calibre/calibre/ebooks/pdf/pdftohtml.py", line 76, in pdftohtml
> >     _('Could not find pdftohtml, check it is in your PATH'))
> >
> > Move poppler which provides pdftohtml from inputs to propagated-inputs to fix it.
> >
> > * gnu/packages/ebook.scm (calibre)[inputs]: Move poppler from here ...
> > [propagated-inputs]: ... to here.
> 
> An less intrusive solution would be to substitute the absolute path to
> 'pdf2html' in a build step.  I.e.:
> 
> (substitute* "lib/calibre/calibre/ebooks/pdf/pdftohtml.py"
>   (("PDFTOHTML = \"pdftohtml\"")
>    (string-append "PDFTOHTML = \"" (assoc-ref inputs "poppler")
>                   "/bin/pdftohtml\"")))
> 
> Either approach is fine by me, but please leave a comment about why
> Poppler is propagated if you go that route :-)

I think this substitution is the better solution.
Mathieu Othacehe Jan. 21, 2019, 9:57 a.m. UTC | #4
>> (substitute* "lib/calibre/calibre/ebooks/pdf/pdftohtml.py"
>>   (("PDFTOHTML = \"pdftohtml\"")
>>    (string-append "PDFTOHTML = \"" (assoc-ref inputs "poppler")
>>                   "/bin/pdftohtml\"")))

Pushed as b65b78ff using your substitute snippet.

Thanks,

Mathieu

Patch

diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm
index e750c6cac..70434293a 100644
--- a/gnu/packages/ebook.scm
+++ b/gnu/packages/ebook.scm
@@ -5,6 +5,7 @@ 
 ;;; Copyright © 2017 Brendan Tildesley <brendan.tildesley@openmailbox.org>
 ;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -121,7 +122,6 @@ 
        ("openssl" ,openssl)
        ("optipng" ,optipng)
        ("podofo" ,podofo)
-       ("poppler" ,poppler)
        ("python" ,python-2)
        ("python2-apsw" ,python2-apsw)
        ("python2-chardet" ,python2-chardet)
@@ -145,9 +145,9 @@ 
        ("python2-sip" ,python2-sip)
        ("python2-regex" ,python2-regex)
        ;; python2-unrardll is needed for decompressing RAR files.
-       ;; A program called 'pdf2html' is needed for reading PDF books
-       ;; in the web interface.
        ("sqlite" ,sqlite)))
+    (propagated-inputs
+     `(("poppler" ,poppler)))
     (arguments
      `(#:python ,python-2
        #:test-target "check"