[PATCH 0/4] gnu: calibre: Update to 4.22.0.

  • Done
  • quality assurance status badge
Details
8 participants
  • Andreas Enge
  • Arun Isaac
  • Brendan Tildesley
  • Leo Famulari
  • Ludovic Courtès
  • Brendan Tildesley
  • Prafulla Giri
  • Ricardo Wurmus
Owner
unassigned
Submitted by
Brendan Tildesley
Severity
normal
B
B
Brendan Tildesley wrote on 16 Aug 2020 08:55
(address . guix-patches@gnu.org)
8b1e2bed-e543-44a2-574b-f3c2c5a14d3f@brendan.scot

B
B
Brendan Tildesley wrote on 16 Aug 2020 09:03
[PATCH 1/4] gnu: ebook.scm: remove duplicate module import.
(address . 42885@debbugs.gnu.org)
20200816070318.18642-1-mail@brendan.scot
---
gnu/packages/ebook.scm | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

Toggle diff (23 lines)
diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm
index d290b19f5f..aab4155d3d 100644
--- a/gnu/packages/ebook.scm
+++ b/gnu/packages/ebook.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2015, 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
-;;; Copyright © 2017, 2019 Brendan Tildesley <mail@brendan.scot>
+;;; Copyright © 2017, 2019, 2020 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
@@ -28,7 +28,6 @@
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
- #:use-module (gnu packages)
#:use-module (guix build-system python)
#:use-module (gnu packages)
#:use-module (gnu packages compression)
--
2.28.0
B
B
Brendan Tildesley wrote on 16 Aug 2020 09:03
[PATCH 3/4] gnu: calibre: Update to 4.22.0.
(address . 42885@debbugs.gnu.org)
20200816070318.18642-3-mail@brendan.scot
* gnu/packages/ebook.scm (calbre): Update to 4.22.0. Replace MathJax 2
input with newly required MathJax 3.
---
gnu/packages/ebook.scm | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)

Toggle diff (44 lines)
diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm
index aab4155d3d..a434f56bc1 100644
--- a/gnu/packages/ebook.scm
+++ b/gnu/packages/ebook.scm
@@ -82,7 +82,7 @@
(define-public calibre
(package
(name "calibre")
- (version "4.18.0")
+ (version "4.22.0")
(source
(origin
(method url-fetch)
@@ -91,7 +91,7 @@
version ".tar.xz"))
(sha256
(base32
- "0w9pcfvskjh4v00vjw3i6hzrafy863pgsmmqdx4lffip3p856brw"))
+ "0d0wmd3ijk8px1d662igal4lfmpyzynfzs6ms1bb9nf42mq2pxai"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -126,7 +126,7 @@
("hunspell" ,hunspell)
("hyphen" ,hyphen)
("icu4c" ,icu4c)
- ("js-mathjax" ,js-mathjax)
+ ("mathjax" ,mathjax-bin)
("libmtp" ,libmtp)
("libpng" ,libpng)
("libusb" ,libusb)
@@ -243,8 +243,8 @@
(lambda* (#:key inputs #:allow-other-keys)
(invoke "python2" "setup.py" "mathjax""--system-mathjax"
"--path-to-mathjax" (string-append
- (assoc-ref inputs "js-mathjax")
- "/share/javascript/mathjax"))
+ (assoc-ref inputs "mathjax")
+ "/lib/node_modules/mathjax/es5"))
(invoke "python2" "setup.py" "rapydscript")))
(add-after 'install 'install-man-pages
(lambda* (#:key outputs #:allow-other-keys)
--
2.28.0
B
B
Brendan Tildesley wrote on 16 Aug 2020 09:03
[PATCH 2/4] gnu: Add mathjax-bin (MathJax 3).
(address . 42885@debbugs.gnu.org)
20200816070318.18642-2-mail@brendan.scot
* gnu/packages/javascript.scm: (mathjax-bin): New variable
---
gnu/packages/javascript.scm | 40 +++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)

Toggle diff (60 lines)
diff --git a/gnu/packages/javascript.scm b/gnu/packages/javascript.scm
index d5ff5bffee..d6a66a1482 100644
--- a/gnu/packages/javascript.scm
+++ b/gnu/packages/javascript.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2020 Brendan Tildesley <mail@brendan.scot>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -128,6 +129,45 @@ plugins or software to be installed on the browser. So the page author can
write web documents that include mathematics and be confident that readers will
be able to view it naturally and easily.")))
+(define-public mathjax-bin
+ (package
+ (name "mathjax")
+ (version "3.0.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/mathjax/MathJax")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1zd0chn0cjahi28qv3nzshwljz2hgmj6lizyvvd8qs89gsx0z3h9"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils)
+ (ice-9 match))
+ (let ((install-directory (string-append %output "/lib/node_modules/mathjax")))
+ (mkdir-p install-directory)
+ (copy-recursively (string-append (assoc-ref %build-inputs "source"))
+ install-directory)))))
+ (home-page "https://www.mathjax.org/")
+ (synopsis "JavaScript display engine for LaTeX, MathML, and AsciiMath (prebuilt)")
+ (description "MathJax is a JavaScript display engine for LaTeX, MathML,
+and AsciiMath notation that works in all modern browsers. It requires no
+plugins or software to be installed on the browser. So the page author can
+write web documents that include mathematics and be confident that readers will
+be able to view it naturally and easily.
+
+The package is derived from not the true source but the built version of
+MathJax 3 for distribution by upstream. This package should eventually be
+replaced my a package built directly from the source at
+https://github.com/mathjax/MathJax-src.")
+ (license license:asl2.0)))
+
(define-public js-respond
(package
(name "js-respond")
--
2.28.0
B
B
Brendan Tildesley wrote on 16 Aug 2020 09:03
[PATCH 4/4] gnu: calibre: Add wrap phase for qtwebengine.
(address . 42885@debbugs.gnu.org)
20200816070318.18642-4-mail@brendan.scot
* gnu/packages/ebook.scm (calibre): [arguments]: Copy the wrap phase
from Anki to wrap QTWEBENGINEPROCESS_PATH. This fixes the 'Could not
find QtWebEngineProcess error' when opening a book with the
ebook-viewer.
---
gnu/packages/ebook.scm | 34 +++++++++++++++++++++++++++++++++-
1 file changed, 33 insertions(+), 1 deletion(-)

Toggle diff (54 lines)
diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm
index a434f56bc1..31864a0786 100644
--- a/gnu/packages/ebook.scm
+++ b/gnu/packages/ebook.scm
@@ -165,7 +165,10 @@
("qtwebengine" ,qtwebengine)
("sqlite" ,sqlite)))
(arguments
- `(#:python ,python-2
+ `(#:modules ((guix build python-build-system)
+ (guix build utils)
+ (ice-9 match))
+ #:python ,python-2
;; Calibre is using setuptools by itself, but the setup.py is not
;; compatible with the shim wrapper (taken from pip) we are using.
#:use-setuptools? #f
@@ -252,6 +255,35 @@
"man-pages"
(string-append (assoc-ref outputs "out") "/share/man"))
#t))
+ ;; wrap phase copied from anki package.
+ (add-after 'install 'wrap
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((bin (string-append (assoc-ref outputs "out") "/bin"))
+ ;; List of paths to the site-packages directories of Python
+ ;; library inputs.
+ (site-packages
+ (map (lambda (pyinput)
+ (string-append
+ (cdr pyinput)
+ "/lib/python2.7/site-packages"))
+ (filter (match-lambda
+ ((label . _)
+ (string-prefix? "python2-" label)))
+ inputs)))
+ (qtwebengineprocess
+ (string-append (assoc-ref inputs "qtwebengine")
+ "/lib/qt5/libexec/QtWebEngineProcess")))
+ ;; The program fails to find the QtWebEngineProcess program, so
+ ;; we set QTWEBENGINEPROCESS_PATH to help it. PYTHONPATH is
+ ;; wrapped to avoid declaring Python libraries as propagated
+ ;; inputs.
+ (for-each (lambda (program)
+ (wrap-program program
+ `("QTWEBENGINEPROCESS_PATH" =
+ (,qtwebengineprocess))
+ `("PYTHONPATH" = ,site-packages)))
+ (find-files bin ".")))
+ #t))
;; The font TTF files are used in some miscellaneous tests, so we
;; unbundle them here to avoid patching the tests.
(add-after 'install 'unbundle-font-liberation
--
2.28.0
B
B
Brendan Tildesley wrote on 21 Aug 2020 11:20
[PATCH] gnu: calibre: Update to 4.23.0.
(address . 42885@debbugs.gnu.org)
20200821092014.21866-1-mail@brendan.scot
* gnu/packages/ebook.scm (calibre): Update to 4.23.0.
---
gnu/packages/ebook.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (24 lines)
diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm
index 31864a0786..72a0d3b22a 100644
--- a/gnu/packages/ebook.scm
+++ b/gnu/packages/ebook.scm
@@ -82,7 +82,7 @@
(define-public calibre
(package
(name "calibre")
- (version "4.22.0")
+ (version "4.23.0")
(source
(origin
(method url-fetch)
@@ -91,7 +91,7 @@
version ".tar.xz"))
(sha256
(base32
- "0d0wmd3ijk8px1d662igal4lfmpyzynfzs6ms1bb9nf42mq2pxai"))
+ "064mnmz2w4xa2kydh5vzhlgvmyzlwjhm2wm58vwkdqzh7i3m3phn"))
(modules '((guix build utils)))
(snippet
'(begin
--
2.28.0
L
L
Leo Famulari wrote on 22 Aug 2020 19:30
(name . Brendan Tildesley)(address . mail@brendan.scot)(address . 42885@debbugs.gnu.org)
20200822173057.GA12497@jasmine.lan
On Fri, Aug 21, 2020 at 07:20:14PM +1000, Brendan Tildesley wrote:
Toggle quote (2 lines)
> * gnu/packages/ebook.scm (calibre): Update to 4.23.0.

Thanks! Can you send an updated patch series? I don't think we should
update to 4.22.0 and then immediately to 4.23.0.
B
B
Brendan Tildesley wrote on 23 Aug 2020 01:24
([PATCH 2/4] gnu: calibre: Update to 4.23.0 (new release)
(address . 42885@debbugs.gnu.org)
729297f7-8cc1-6a31-37ad-1522c339082f@brendan.scot
Calibre 4.23.0 was released. This just replaces the second patch. the
others should still apply without conflict.
From d3b70c4c2329abbe6d210b9993a99306d93c5f29 Mon Sep 17 00:00:00 2001
From: Brendan Tildesley <mail@brendan.scot>
Date: Sun, 16 Aug 2020 16:16:19 +1000
Subject: [PATCH 2/3] gnu: calibre: Update to 4.23.0.

* gnu/packages/ebook.scm (calbre): Update to 4.23.0. Replace MathJax 2
input with newly required MathJax 3.
---
gnu/packages/ebook.scm | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)

Toggle diff (44 lines)
diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm
index aab4155d3d..f1698900f3 100644
--- a/gnu/packages/ebook.scm
+++ b/gnu/packages/ebook.scm
@@ -82,7 +82,7 @@
(define-public calibre
(package
(name "calibre")
- (version "4.18.0")
+ (version "4.23.0")
(source
(origin
(method url-fetch)
@@ -91,7 +91,7 @@
version ".tar.xz"))
(sha256
(base32
- "0w9pcfvskjh4v00vjw3i6hzrafy863pgsmmqdx4lffip3p856brw"))
+ "064mnmz2w4xa2kydh5vzhlgvmyzlwjhm2wm58vwkdqzh7i3m3phn"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -126,7 +126,7 @@
("hunspell" ,hunspell)
("hyphen" ,hyphen)
("icu4c" ,icu4c)
- ("js-mathjax" ,js-mathjax)
+ ("mathjax" ,mathjax-bin)
("libmtp" ,libmtp)
("libpng" ,libpng)
("libusb" ,libusb)
@@ -243,8 +243,8 @@
(lambda* (#:key inputs #:allow-other-keys)
(invoke "python2" "setup.py" "mathjax""--system-mathjax"
"--path-to-mathjax" (string-append
- (assoc-ref inputs "js-mathjax")
- "/share/javascript/mathjax"))
+ (assoc-ref inputs "mathjax")
+ "/lib/node_modules/mathjax/es5"))
(invoke "python2" "setup.py" "rapydscript")))
(add-after 'install 'install-man-pages
(lambda* (#:key outputs #:allow-other-keys)
--
2.28.0
L
L
Leo Famulari wrote on 24 Aug 2020 03:01
Re: [bug#42885] [PATCH 1/4] gnu: ebook.scm: remove duplicate module import.
(name . Brendan Tildesley)(address . mail@brendan.scot)(address . 42885@debbugs.gnu.org)
20200824010154.GA14757@jasmine.lan
On Sun, Aug 16, 2020 at 05:03:15PM +1000, Brendan Tildesley wrote:
Toggle quote (26 lines)
> ---
> gnu/packages/ebook.scm | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm
> index d290b19f5f..aab4155d3d 100644
> --- a/gnu/packages/ebook.scm
> +++ b/gnu/packages/ebook.scm
> @@ -2,7 +2,7 @@
> ;;; Copyright © 2015, 2016 Andreas Enge <andreas@enge.fr>
> ;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il>
> ;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
> -;;; Copyright © 2017, 2019 Brendan Tildesley <mail@brendan.scot>
> +;;; Copyright © 2017, 2019, 2020 Brendan Tildesley <mail@brendan.scot>
> ;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
> ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
> ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
> @@ -28,7 +28,6 @@
> #:use-module (guix download)
> #:use-module (guix git-download)
> #:use-module (guix build-system gnu)
> - #:use-module (gnu packages)
> #:use-module (guix build-system python)
> #:use-module (gnu packages)
> #:use-module (gnu packages compression)

I pushed this patch as 29f61501f309a719be91a47fd43872437435cd1a
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEsFFZSPHn08G5gDigJkb6MLrKfwgFAl9DEYIACgkQJkb6MLrK
fwiW3hAA2klxkOoSF5tZLQs9fqSHySlndfeND6G9NXEXMW5i34ZiAoDh/5MjA+IX
jMpAati+DGYOr0bt4rseO/mxNBl0H1GwEwDB43klx94e1I4ghftkKz0anO/ROQad
EuCIT/Jjs2YEv3TDbV8cCVlx8NZW5/Y7/E0D6d7WDsLHpRz5jS9LFf9jgboHLML5
JSLqt7aaITIT72AtdI8AyILmzYC3eZA/8XS7umTu9VPnEuDJ2XzvjvNl07zTvWVj
jgGwRtH4oW/641z/mv2EUnWBt0SysC2XHNhlbU4EHAI0Nr7wfgSj2zaNutrZMOdr
jf1qEekI6IynmkDOrBNiyq4bDiaSh5Cdajrj8dfKDNBp5yxANEwtQXjz0IjVh770
dlmcgkDF5HhEGoTorUEeBcTI2z/ac5TSBVJ1CAtzd2RbdOFQTmUGAZihIewErxpG
1tiG3UOdtbOSR0Z7Gj/G2izHXQlGkNJOqrzmuha0sWAaYaxlLi+twlmLs1v+XqGo
ml8kCwh/S9xDYtMCyORC7/C+B/3zQJeF0P1qC5hWA+mVYrei9HislMo2OZhuauWW
eALaOy4PJiqJzWrvqDFIDsFLE2tOPwHP7AsKCeSQJeaofIBk37yHRayWqgF9WqGl
QqNqEyo2X1fu82UIqAmCVEdzHWCa83NuuzdaMvuGvfClHsR+Vdg=
=tNzn
-----END PGP SIGNATURE-----


L
L
Leo Famulari wrote on 24 Aug 2020 03:05
Re: [bug#42885] [PATCH 2/4] gnu: Add mathjax-bin (MathJax 3).
(name . Brendan Tildesley)(address . mail@brendan.scot)(address . 42885@debbugs.gnu.org)
20200824010501.GB14757@jasmine.lan
On Sun, Aug 16, 2020 at 05:03:16PM +1000, Brendan Tildesley wrote:
Toggle quote (13 lines)
> * gnu/packages/javascript.scm: (mathjax-bin): New variable

> + (description "MathJax is a JavaScript display engine for LaTeX, MathML,
> +and AsciiMath notation that works in all modern browsers. It requires no
> +plugins or software to be installed on the browser. So the page author can
> +write web documents that include mathematics and be confident that readers will
> +be able to view it naturally and easily.
> +
> +The package is derived from not the true source but the built version of
> +MathJax 3 for distribution by upstream. This package should eventually be
> +replaced my a package built directly from the source at
> +https://github.com/mathjax/MathJax-src.")

I'm not really familiar with the state of JavaScript in Guix. However,
Guix generally only includes packages built from source.

Is this a case where the package has bene "minified"? Or, in what way is
not built from source?
A
A
Arun Isaac wrote on 24 Aug 2020 06:25
(address . 42885@debbugs.gnu.org)
87h7sszn4j.fsf@systemreboot.net
Toggle quote (8 lines)
>> +The package is derived from not the true source but the built version of
>> +MathJax 3 for distribution by upstream. This package should eventually be
>> +replaced my a package built directly from the source at
>> +https://github.com/mathjax/MathJax-src.")
>
> I'm not really familiar with the state of JavaScript in Guix. However,
> Guix generally only includes packages built from source.

If I understand correctly, we already have a mathjax package built from
source. See js-mathjax.
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEf3MDQ/Lwnzx3v3nTLiXui2GAK7MFAl9DQS0ACgkQLiXui2GA
K7MJsQf+JNI/ZXCgeTUazcmZG4JAz5HjJ6sinIeqwM0D1NiPo5Qk1m6V9+F2pHAq
Lv24sb7RhbRGHUcQLgMxP1JZ/8IyAjMoq9PHUuh5/JBCGGH+OGA4VTNtUzgQlptG
TeKeHbqi89NjbVsu1g0eDh9jl6Mlh8i0nnGr0UV0OM7HglxTXQNWROgsL7Gisp8W
TwBsEREWLrxfMJzTIl3twEdiHYa8yqSMNccPUaEhoPowbjOoNig0BxPmCupy55zb
uQyg+Jx7PPbanha7H4BMcQWYzluqaB8KvJdW7JzIs7iK5pC2ALXN4hSNL3XlEfDf
saLA1O8EV6Oq5CpQC3C7K6n84kYO4Q==
=ncMz
-----END PGP SIGNATURE-----

B
B
Brendan Tildesley wrote on 24 Aug 2020 07:12
(address . 42885@debbugs.gnu.org)
6F7B2CEB-1A83-4B01-B815-1529359169E1@brendan.scot
On August 24, 2020 2:25:16 PM GMT+10:00, Arun Isaac <arunisaac@systemreboot.net> wrote:
Toggle quote (15 lines)
>
>>> +The package is derived from not the true source but the built
>version of
>>> +MathJax 3 for distribution by upstream. This package should
>eventually be
>>> +replaced my a package built directly from the source at
>>> +https://github.com/mathjax/MathJax-src.")
>>
>> I'm not really familiar with the state of JavaScript in Guix.
>However,
>> Guix generally only includes packages built from source.
>
>If I understand correctly, we already have a mathjax package built from
>source. See js-mathjax.

Mathjax 3 is a complete rewrite of mathjax 2. I had thought js-mathjax was just the component files too and not truely built from source. Maybe I was wrong. Currently, building this from the true source requires a huge number of js packages and we haven't got a npm importer and full JavaScript bootstrap yet so I wasn't sure what to do. If you like we can ignore this and I can modify calibre to disable mathjax for now since I don't think it works with the old mathjax 2. I would like to work on getting more JavaScript in to guix properly
Attachment: file
A
A
Arun Isaac wrote on 24 Aug 2020 08:44
(address . 42885@debbugs.gnu.org)
87eenwzgoa.fsf@systemreboot.net
Toggle quote (6 lines)
> I had thought js-mathjax was just the component files too and not
> truely built from source. Maybe I was wrong. Currently, building this
> from the true source requires a huge number of js packages and we
> haven't got a npm importer and full JavaScript bootstrap yet so I
> wasn't sure what to do.

True. js-mathjax is not truly built from source. A true source build
will properly depend on a huge number of other js packaces. js-mathjax
only redoes the minification step. In light of this, perhaps we should
remove js-mathjax from Guix. But, I'm not sure.

Toggle quote (4 lines)
> If you like we can ignore this and I can modify calibre to disable
> mathjax for now since I don't think it works with the old mathjax 2. I
> would like to work on getting more JavaScript in to guix properly

Yes, disabling mathjax for calibre is a good way to go if the
functionality is not too critical. But, I don't know much about
calibre. So, someone else should take a call.
-----BEGIN PGP SIGNATURE-----

iQEyBAEBCAAdFiEEf3MDQ/Lwnzx3v3nTLiXui2GAK7MFAl9DYdUACgkQLiXui2GA
K7MBZgf47tEyWUElDrh/emRlCKskr+G7fhNNvDkFizpnwu4qXJXNu2DSkYBBmuOR
LInkdm6yvrhwrcb42qQM780oJmhiHqMeBLwV53RhiLRRTERGssNekX2k6m2vpnYw
8X1hODwsoCNTCUMMDEqhVxhqmSKVp0yUhb1Em4+V0ScyoNIUJNfhAG1X1eOs+eQ/
v8VPBQyaNONwichn5ihzpDcvoEcGgm0hK0Lo493mJijIDSojdRnRGAcp/UXtOJ4q
kcgJJ9wNtXLXTn2lTYBoD7P797RqBo5g2NpUu9lGTjvTXeK+5fk2mbdFzJMRxCUL
0zZz+2oE2ef0ow4t1B/e7QK7ksnA
=Gmn/
-----END PGP SIGNATURE-----

B
B
Brendan Tildesley wrote on 24 Aug 2020 09:27
(address . 42885@debbugs.gnu.org)
6B389576-1F3B-4C26-BE23-869D72319ACD@brendan.scot
On August 24, 2020 4:44:37 PM GMT+10:00, Arun Isaac <arunisaac@systemreboot.net> wrote:
Toggle quote (20 lines)
>
>> I had thought js-mathjax was just the component files too and not
>> truely built from source. Maybe I was wrong. Currently, building this
>> from the true source requires a huge number of js packages and we
>> haven't got a npm importer and full JavaScript bootstrap yet so I
>> wasn't sure what to do.
>
>True. js-mathjax is not truly built from source. A true source build
>will properly depend on a huge number of other js packaces. js-mathjax
>only redoes the minification step. In light of this, perhaps we should
>remove js-mathjax from Guix. But, I'm not sure.
>
>> If you like we can ignore this and I can modify calibre to disable
>> mathjax for now since I don't think it works with the old mathjax 2.
>I
>> would like to work on getting more JavaScript in to guix properly
>
>Yes, disabling mathjax for calibre is a good way to go if the
>functionality is not too critical. But, I don't know much about
>calibre. So, someone else should take a call.
Attachment: file
B
B
Brendan Tildesley wrote on 24 Aug 2020 09:41
(address . 42885@debbugs.gnu.org)
C779B0BA-45A5-4F81-BB8B-69B2B8A42222@brendan.scot
On August 24, 2020 4:44:37 PM GMT+10:00, Arun Isaac <arunisaac@systemreboot.net> wrote:
Toggle quote (21 lines)
>
>> I had thought js-mathjax was just the component files too and not
>> truely built from source. Maybe I was wrong. Currently, building this
>> from the true source requires a huge number of js packages and we
>> haven't got a npm importer and full JavaScript bootstrap yet so I
>> wasn't sure what to do.
>
>True. js-mathjax is not truly built from source. A true source build
>will properly depend on a huge number of other js packaces. js-mathjax
>only redoes the minification step. In light of this, perhaps we should
>remove js-mathjax from Guix. But, I'm not sure.
>
>> If you like we can ignore this and I can modify calibre to disable
>> mathjax for now since I don't think it works with the old mathjax 2.
>I
>> would like to work on getting more JavaScript in to guix properly
>
>Yes, disabling mathjax for calibre is a good way to go if the
>functionality is not too critical. But, I don't know much about
>calibre. So, someone else should take a call.

Its just for rendering math in the eBook-viewer for books that include it. It shouldn't be essential. The reason I felt OK adding it is because its not like its actually proprietary, its just we haven't gotten around to integrating JavaScript into guix yet fully, and it doesn't look like that will happen any time soon.
Attachment: file
B
B
Brendan Tildesley wrote on 25 Aug 2020 03:59
[PATCH 2/4] gnu: Add mathjax-3.
(address . 42885@debbugs.gnu.org)
a0c22641-ba6c-32b6-7d61-2e776edf1d33@brendan.scot
This replaces the second patch, renaming mathjax-bin to mathjax-3 since
its not actually binary.
From 77e2312306c6684cdfc72f90e6be1a008e5e676f Mon Sep 17 00:00:00 2001
From: Brendan Tildesley <mail@brendan.scot>
Date: Sun, 16 Aug 2020 16:14:02 +1000
Subject: [PATCH 2/4] gnu: Add mathjax-3.

* gnu/packages/javascript.scm: (mathjax-3): New variable.
---
gnu/packages/javascript.scm | 40 +++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)

Toggle diff (60 lines)
diff --git a/gnu/packages/javascript.scm b/gnu/packages/javascript.scm
index d5ff5bffee..57e8302094 100644
--- a/gnu/packages/javascript.scm
+++ b/gnu/packages/javascript.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2020 Brendan Tildesley <mail@brendan.scot>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -128,6 +129,45 @@ plugins or software to be installed on the browser. So the page author can
write web documents that include mathematics and be confident that readers will
be able to view it naturally and easily.")))
+(define-public mathjax-3
+ (package
+ (name "mathjax")
+ (version "3.0.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/mathjax/MathJax")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1zd0chn0cjahi28qv3nzshwljz2hgmj6lizyvvd8qs89gsx0z3h9"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils)
+ (ice-9 match))
+ (let ((install-directory (string-append %output "/lib/node_modules/mathjax")))
+ (mkdir-p install-directory)
+ (copy-recursively (string-append (assoc-ref %build-inputs "source"))
+ install-directory)))))
+ (home-page "https://www.mathjax.org/")
+ (synopsis "JavaScript display engine for LaTeX, MathML, and AsciiMath (prebuilt)")
+ (description "MathJax is a JavaScript display engine for LaTeX, MathML,
+and AsciiMath notation that works in all modern browsers. It requires no
+plugins or software to be installed on the browser. So the page author can
+write web documents that include mathematics and be confident that readers will
+be able to view it naturally and easily.
+
+The package is derived from not the true source but the built version of
+MathJax 3 for distribution by upstream. This package should eventually be
+replaced my a package built directly from the source at
+https://github.com/mathjax/MathJax-src.")
+ (license license:asl2.0)))
+
(define-public js-respond
(package
(name "js-respond")
--
2.28.0
L
L
Ludovic Courtès wrote on 4 Sep 2020 11:02
Re: [bug#42885] [PATCH 2/4] gnu: Add mathjax-bin (MathJax 3).
(name . Brendan Tildesley)(address . mail@brendan.scot)
87y2lpvrrd.fsf@gnu.org
Hello there!

Arun, Leo, what’s the status of this patch series?


Can it be applied?

Brendan, to make it clear what the latest version of the patch series is
(next time), consider adding a “v2” etc. suffix to the subject, like so:

git format-patch --subject-prefix="PATCH v2" …

Thanks,
Ludo’.
A
A
Andreas Enge wrote on 4 Sep 2020 13:59
(name . Ludovic Courtès)(address . ludo@gnu.org)
20200904115935.GA8977@jurong
Hello,

On Fri, Sep 04, 2020 at 11:02:46AM +0200, Ludovic Courtès wrote:
Toggle quote (3 lines)
> Arun, Leo, what’s the status of this patch series?
> https://issues.guix.gnu.org/42885

why is the variable called mathjax-bin? Should it not be mathjax?

By the way, there is a version 3.1.0 now.

Andreas
R
R
Ricardo Wurmus wrote on 4 Sep 2020 15:10
(name . Arun Isaac)(address . arunisaac@systemreboot.net)
87ft7xg00x.fsf@elephly.net
Arun Isaac <arunisaac@systemreboot.net> writes:

Toggle quote (11 lines)
>> I had thought js-mathjax was just the component files too and not
>> truely built from source. Maybe I was wrong. Currently, building this
>> from the true source requires a huge number of js packages and we
>> haven't got a npm importer and full JavaScript bootstrap yet so I
>> wasn't sure what to do.
>
> True. js-mathjax is not truly built from source. A true source build
> will properly depend on a huge number of other js packaces. js-mathjax
> only redoes the minification step. In light of this, perhaps we should
> remove js-mathjax from Guix. But, I'm not sure.

js-mathjax does not contain minified JavaScript. The code is in
editable and readable form although it is not in the form that upstream
uses for development. In this case I still consider it to be actual
source code, because for the purposes of Guix this is the preferred
format (given that we have no way of building the sources in the format
that is used by upstream).

--
Ricardo
A
A
Arun Isaac wrote on 4 Sep 2020 20:13
87zh65csve.fsf@systemreboot.net
Toggle quote (6 lines)
> Arun, Leo, what’s the status of this patch series?
>
> https://issues.guix.gnu.org/42885
>
> Can it be applied?

Ricardo has clarified that we may consider the existing js-mathjax 2.7.2
package to have been built from source even though it isn't the form
upstream uses for development. No problems there.

But, like Brendan said, mathjax 3 is quite a different beast. With
mathjax 2, the source was in javascript, and our build system had merely
to minify it. But mathjax 3 is written in typescript that gets compiled
into javascript and then combined into "web component files" (this is
the first I'm hearing of web components and I'm not entirely clear what
they are). Since we don't have a typescript build system, packaging
mathjax 3 may be non-trivial. So, we should proceed with updating
calibre without mathjax support.

Toggle quote (5 lines)
> Brendan, to make it clear what the latest version of the patch series is
> (next time), consider adding a “v2” etc. suffix to the subject, like so:
>
> git format-patch --subject-prefix="PATCH v2" …

You could also do the slightly shorter

git format-patch -v2 ...

Cheers!
R
R
Ricardo Wurmus wrote on 4 Sep 2020 21:43
(name . Arun Isaac)(address . arunisaac@systemreboot.net)
871rjhfhtt.fsf@elephly.net
Arun Isaac <arunisaac@systemreboot.net> writes:

Toggle quote (19 lines)
>> Arun, Leo, what’s the status of this patch series?
>>
>> https://issues.guix.gnu.org/42885
>>
>> Can it be applied?
>
> Ricardo has clarified that we may consider the existing js-mathjax 2.7.2
> package to have been built from source even though it isn't the form
> upstream uses for development. No problems there.
>
> But, like Brendan said, mathjax 3 is quite a different beast. With
> mathjax 2, the source was in javascript, and our build system had merely
> to minify it. But mathjax 3 is written in typescript that gets compiled
> into javascript and then combined into "web component files" (this is
> the first I'm hearing of web components and I'm not entirely clear what
> they are). Since we don't have a typescript build system, packaging
> mathjax 3 may be non-trivial. So, we should proceed with updating
> calibre without mathjax support.

There may be a way to transpile the TypeScript sources with swc, a
babel-like transpiler with TypeScript support; it’s written in Rust, so
there may be a way to work around the JavaScript packaging problem.

--
Ricardo
P
P
Prafulla Giri wrote on 7 Sep 2020 05:11
Regarding Patch 4
(address . 42885@debbugs.gnu.org)
CAFw+=j1KTHP21puE0z+++oK6OjENW+E-tjySCPA-7UJ7we5fLw@mail.gmail.com
Hey there Mr. Tildesley,

Without knowing that this was going on, I worked on, and sent a patch to
fix the QtWebEngineProcess issue yesterday:

My patch also fixes this issue, but without appending things to PYTHONPATH.
And it works just the same.

Since you say, sir, that you copied the wrap-phase from Anki to fix the
issue, and I manually poked around with things, grepping the output of
`env` and stuff to deal with it - I wonder if I have stumbled upon the bare
minimum changes necessary to resolve this issue.

I would like to request that you, and other esteemed contributors, test my
patch. And, if it seems good to you, I would like to request that you
incorporate my patch in this change set.

Attached are the wrappers for `ebook-viewer`: with your patch applied, and
with my patch applied, for anyone to compare.

Please do let me know if there are any insufficiencies in my solution, or
if it does not work for anybody else (I did use --pure option with `guix
environment`).

Thank you
Attachment: file
P
P
Prafulla Giri wrote on 7 Sep 2020 05:40
(address . 42885@debbugs.gnu.org)
CAFw+=j3GS7V3OrxM+oY=oYoA7zBXZvYSFtrHs6dOOEicHP57aQ@mail.gmail.com
I just realized that the PYTHONPATH set by the default %standard-phase
'wrap of python-build-environment is (most likely) a superset of the manual
PYTHONPATH set by the custom phase 'wrap phase added after 'install in
patch no. 4. As such, perhaps it is redundant, too?

On Mon, Sep 7, 2020 at 8:56 AM Prafulla Giri <pratheblackdiamond@gmail.com>
wrote:

Toggle quote (27 lines)
> Hey there Mr. Tildesley,
>
> Without knowing that this was going on, I worked on, and sent a patch to
> fix the QtWebEngineProcess issue yesterday:
> https://issues.guix.gnu.org/43249
>
> My patch also fixes this issue, but without appending things to
> PYTHONPATH. And it works just the same.
>
> Since you say, sir, that you copied the wrap-phase from Anki to fix the
> issue, and I manually poked around with things, grepping the output of
> `env` and stuff to deal with it - I wonder if I have stumbled upon the bare
> minimum changes necessary to resolve this issue.
>
> I would like to request that you, and other esteemed contributors, test my
> patch. And, if it seems good to you, I would like to request that you
> incorporate my patch in this change set.
>
> Attached are the wrappers for `ebook-viewer`: with your patch applied, and
> with my patch applied, for anyone to compare.
>
> Please do let me know if there are any insufficiencies in my solution, or
> if it does not work for anybody else (I did use --pure option with `guix
> environment`).
>
> Thank you
>
Attachment: file
A
A
Andreas Enge wrote on 8 Sep 2020 22:11
Re: bug#43151: Resolve Calibre run-time dependency
(name . Brendan Tildesley)(address . mail@brendan.scot)
20200908201144.GA25269@jurong
Hello,

On Mon, Sep 07, 2020 at 06:15:15PM +1000, Brendan Tildesley wrote:
Toggle quote (8 lines)
> Your patch also works I think but it will wrap the programs twice, so
> you will get calibre, .calibre-real, and ..calibre-real-real, etc for
> every program, which seems ugly. My patch reproduces the same PYTHONPATH
> that is set in python-build-system in addition to wrapping PYTHONPATH
> (unless I made a mistake), although at the cost of code duplication. I
> leave it to you and who ever is reviewing this to decide which way is
> more correct and push one, haha.

thanks to both of your for your patches! I just pushed Brendan's, which
wraps only once at the price of copy-pasting from another package. I confirm
that it works, also to click on an epub file from within calibre. Closing
the two bugs asking about qtwebengine.

Concerning the update, is mathjax a required input now, or could we just
leave it out and update nevertheless?

Andreas
A
A
Arun Isaac wrote on 9 Sep 2020 08:36
Re: [bug#42885] [PATCH 2/4] gnu: Add mathjax-bin (MathJax 3).
(name . Ricardo Wurmus)(address . rekado@elephly.net)
87y2lj1moa.fsf@systemreboot.net
Toggle quote (4 lines)
> There may be a way to transpile the TypeScript sources with swc, a
> babel-like transpiler with TypeScript support; it’s written in Rust, so
> there may be a way to work around the JavaScript packaging problem.

I am packaging swc for Guix. I'm running into some unstable feature
issues with Rust, but otherwise things are going well. I will report on
further progress by tonight.
-----BEGIN PGP SIGNATURE-----

iQFPBAEBCAA5FiEEf3MDQ/Lwnzx3v3nTLiXui2GAK7MFAl9Yd/UbHGFydW5pc2Fh
Y0BzeXN0ZW1yZWJvb3QubmV0AAoJEC4l7othgCuz/MMIAJs84szQkQPMPCSapuTd
RKjgJLgAdALPc+I04/bnSLJJn6FJLWPOHZNYbROEY6yx3RJrdPXEmLQNOzqbFiES
ZURP6BlYvDltb/XM2UssNAH6LrpnSRftChPSXUvlQFgahgBcqEuG1dHIPyCa4z24
qwj9F9Zmi6crWDf4iv8nz+XHeE4S6QexWHHtlcGpBNzNxDgmjKNSv7qQV7znid/6
5vIL8tPM41Z4D0lQTS74u+nCHGYpfPCzPttw01vkuEDljglvwYJBvRESrVk9PDWe
hVGdRv7NPE0Rs97rdpWeQTPVcl/4PFm3jla4hEjr5KSDGkQTmLZS52dCzC79PE19
0Xg=
=UbJ/
-----END PGP SIGNATURE-----

R
R
Ricardo Wurmus wrote on 9 Sep 2020 09:19
(name . Arun Isaac)(address . arunisaac@systemreboot.net)
877dt3ct7u.fsf@elephly.net
Arun Isaac <arunisaac@systemreboot.net> writes:

Toggle quote (8 lines)
>> There may be a way to transpile the TypeScript sources with swc, a
>> babel-like transpiler with TypeScript support; it’s written in Rust, so
>> there may be a way to work around the JavaScript packaging problem.
>
> I am packaging swc for Guix. I'm running into some unstable feature
> issues with Rust, but otherwise things are going well. I will report on
> further progress by tonight.

Oh, me too.

I’m currently at rust-napi@0.4.

--
Ricardo
P
P
Prafulla Giri wrote on 9 Sep 2020 10:38
Re: bug#43151: Resolve Calibre run-time dependency
(name . Andreas Enge)(address . andreas@enge.fr)
CAFw+=j0McVLzs-vxeB19Je91Npq7G+AS3X2WZmiGY7fzB8UWTA@mail.gmail.com
I see. Thank you for the update.

Hopefully (wrap-program) will be fixed soon. That should save us a lot of
code-duplication.

Congratulations, Mr. Tildesley! (:
Attachment: file
A
A
Arun Isaac wrote on 9 Sep 2020 21:48
Re: [bug#42885] [PATCH 2/4] gnu: Add mathjax-bin (MathJax 3).
(name . Ricardo Wurmus)(address . rekado@elephly.net)
87sgbq20kw.fsf@systemreboot.net
Toggle quote (6 lines)
>> I am packaging swc for Guix. I'm running into some unstable feature
>> issues with Rust, but otherwise things are going well. I will report on
>> further progress by tonight.
>
> Oh, me too.

Oops, hopefully we haven't duplicated too much work.

Packaging rust programs is a much deeper rabbit hole than I imagined!
But, I'm making progress, and will hopefully be done given some more
time. Will keep you posted.
-----BEGIN PGP SIGNATURE-----

iQFPBAEBCAA5FiEEf3MDQ/Lwnzx3v3nTLiXui2GAK7MFAl9ZMY8bHGFydW5pc2Fh
Y0BzeXN0ZW1yZWJvb3QubmV0AAoJEC4l7othgCuzAYgIALTc2Hy4OwvSy7S69aSS
4UvbZ5K6ooP38qlSvXGahAruaZd2gLRSR7+1oqYlbQFi1ktiba3WLA/6ut2TJaE7
dwqoEZL1wXOUi9xtGxeO+J8UZdLHr/HzdkqeAsENt8Nn8LZhCG1+rtdG1qI3mphY
8Dnf3nWTde1BAnfEWksArVQTyrz+6rKnA4HkOcz+vEHetgcVo1JhcvuV8+OddWoP
u854Z7eEJCMfRIRtyXhZISLFS4vJP1EUYj5HCHWuJ7k9aJ83IQ2T5MIQ8NXua9dC
q15W1RDoRham3BWH5wS4/HFmOg4VFXRnLbf2YbW8uJGo8TuqgVarKQcZkRGEvDvg
FH4=
=DKCT
-----END PGP SIGNATURE-----

A
A
Arun Isaac wrote on 17 Sep 2020 12:14
(name . Ricardo Wurmus)(address . rekado@elephly.net)
874knwbtgv.fsf@systemreboot.net
Hi,

I have finished packaging swc. I am now mid-way through cleaning up and
committing my changes. Considering the number of commits, that alone
might take a couple more days. I will push my changes to a wip-swc
branch and let you know.

But, I also have some bad news. swc is not entirely written in rust. Its
CLI, swc-cli, is a separate package and uses node. So, packaging that
may be yet another deep rabbit hole.

Regards,
Arun
-----BEGIN PGP SIGNATURE-----

iQFPBAEBCAA5FiEEf3MDQ/Lwnzx3v3nTLiXui2GAK7MFAl9jNxEbHGFydW5pc2Fh
Y0BzeXN0ZW1yZWJvb3QubmV0AAoJEC4l7othgCuzimsIAJ5qb9oQXlxlg+aHvIfu
IfrAsJ3tHYNyQUwRqjdqUCTKhkUaWkGIom25gb2t9vkag3wcouVFTvw73hodrVmT
IGpcHS14HtItIB3xRspN1CbBNw10xqlGYsKYb7v0rhGi2US11JDFhgqFqc0+qQfg
bO1xtPgizSBz4fA5U9UmMasgvoFborSLqE1k9WgPsj0/QEGu07NyH+92Lsm/evrJ
ZfR+vxfP4ZVTbG7DgdMEwzjFpuXDbyQMewFMX0PN5itnT4vKLuHafahuaqq89LfR
Z95l/krM7XEH658Fi4LduePaauOc4XcW9xaKgYoz+8nUWavG7YorOTF2MpccaRpf
jTE=
=rx9z
-----END PGP SIGNATURE-----

R
R
Ricardo Wurmus wrote on 17 Sep 2020 13:24
(name . Arun Isaac)(address . arunisaac@systemreboot.net)
87a6xove66.fsf@elephly.net
Hi Arun,

Toggle quote (5 lines)
> I have finished packaging swc. I am now mid-way through cleaning up and
> committing my changes. Considering the number of commits, that alone
> might take a couple more days. I will push my changes to a wip-swc
> branch and let you know.

Wow, thank you very much!

Toggle quote (4 lines)
> But, I also have some bad news. swc is not entirely written in rust. Its
> CLI, swc-cli, is a separate package and uses node. So, packaging that
> may be yet another deep rabbit hole.

I expected as much, but I was hoping that we could invoke it some other
way, much like we invoke uglify-js (the Common Lisp package) with a
little custom wrapper.

--
Ricardo
A
A
Arun Isaac wrote on 21 Sep 2020 12:36
(name . Ricardo Wurmus)(address . rekado@elephly.net)
87y2l3zaa4.fsf@systemreboot.net
I have pushed my commits to a new wip-swc branch. A few questions and
discussion points below.

Considering that only the source of rust dependencies is used, should
those packages successfully build on their own? In the wip-swc branch, I
have only verified that the rust-swc package builds. There may be some
dependencies which fail to build on their own.
Related to the previous question, what is the purpose of the
#:skip-build? argument? Should it be set to #t for all dependency
packages?

While working on this patchset, I hacked the crate importer a bit to
make my life easier. In particular, I modified it to correctly append
the version to the package variable name. This requires a slightly more
general recursive importer than we have currently. The current recursive
importer assumes that we will package only one version for each
package. That assumption does not stand for rust crates.

We also don't always need to put the minor version into the package
variable name. For example, rust-syn-1 is sufficient. rust-syn-1.0 is
not required. The exact rules follow from
I improved the crate importer to better understand these version
requirement rules and put packages of the correct version into the
#:cargo-inputs and #:cargo-development-inputs fields.

I will send patches for these crate importer improvements separately
after this patchset is approved.

We also need some automated way to "garbage collect" old versions of
packages in crates-io.scm. crates-io.scm is getting quite large, and I
suspect many packages in there are old versions that are not really
necessary.

Toggle quote (4 lines)
> I expected as much, but I was hoping that we could invoke it some other
> way, much like we invoke uglify-js (the Common Lisp package) with a
> little custom wrapper.

That is a good idea. But, I have never written any rust. Perhaps someone
who is more familiar with rust should write it.
B
B
Brendan Tildesley wrote on 21 Sep 2020 13:08
(name . Arun Isaac)(address . arunisaac@systemreboot.net)(address . 42885@debbugs.gnu.org)
f9b1f9ec-da99-c2f4-7a48-375eb6ac5552@brendan.scot
On 21/9/20 8:36 pm, Arun Isaac wrote:
Toggle quote (7 lines)
> ...
> While working on this patchset, I hacked the crate importer a bit to
> make my life easier. In particular, I modified it to correctly append
> the version to the package variable name. This requires a slightly more
> general recursive importer than we have currently. The current recursive
> importer assumes that we will package only one version for each
> package. That assumption does not stand for rust crates.
Are you aware of this importer: https://issues.guix.gnu.org/issue/38408/?
A
A
Arun Isaac wrote on 22 Sep 2020 07:39
(name . Brendan Tildesley)(address . mail@brendan.scot)(address . 42885@debbugs.gnu.org)
87pn6eid4c.fsf@systemreboot.net
Toggle quote (5 lines)
>> While working on this patchset, I hacked the crate importer a bit to
>> make my life easier.

> Are you aware of this importer: https://issues.guix.gnu.org/issue/38408/ ?

Oh, I wasn't aware of this importer. It seems to address my
concerns. So, I'll just wait for it to get merged into master.
-----BEGIN PGP SIGNATURE-----

iQFPBAEBCAA5FiEEf3MDQ/Lwnzx3v3nTLiXui2GAK7MFAl9pjhMbHGFydW5pc2Fh
Y0BzeXN0ZW1yZWJvb3QubmV0AAoJEC4l7othgCuz1CEH/A5O+ioyNExSYxGADPGV
3sBbPNGdrGiWku2l2w+stiO4O+4KTiNwHvMdzfNPAjPee/PHJVKAuU/Fzmwh8HVW
uewWlMWYa8PsoMrm/hvQJMITvabpH8nQKw2IF4ObsyQ8ctu5k2zIfHyJV2bc1ogs
j7HOQJXbwMJNnD2iNnYXLVG5UzJlQXdFQuhFUI7cueB9WzMlP1evnm/wJLrI+FF8
I93hujYTv8U0A94AKvBHnOgt5KrRMwVkf0k0gCmI83zzOe+RH/KFLzJ3VQVElt4W
HoFKyFCqNHahDlAH0SRqYVh2DhWtCJ6QnQhTnxNf0HvRNHsgh6dqtE74UyUjzBX/
Vyc=
=DkXU
-----END PGP SIGNATURE-----

B
B
Brendan Tildesley wrote on 30 Sep 2020 01:56
Re: [bug#42885] Merge wip-swc
(name . Arun Isaac)(address . arunisaac@systemreboot.net)(address . 42885@debbugs.gnu.org)
7d55f6f8-ff58-c548-8bec-8508a71be2cf@brendan.scot
BTW, is it possible for your wip-swc branch to be merged into master? I
found my self building a package of my own starting from this branch
because it includes the rust packages I needed. Is there any reason it
can't be done? It would be convenient for me at least.
A
A
Arun Isaac wrote on 30 Sep 2020 07:38
(address . 42885@debbugs.gnu.org)
87ft6zx1rh.fsf@systemreboot.net
Toggle quote (2 lines)
> BTW, is it possible for your wip-swc branch to be merged into master?

I think it can be done. I was just waiting for someone to review and
approve it.

@Ricardo: Shall I go ahead and merge?
-----BEGIN PGP SIGNATURE-----

iQFPBAEBCAA5FiEEf3MDQ/Lwnzx3v3nTLiXui2GAK7MFAl90GdIbHGFydW5pc2Fh
Y0BzeXN0ZW1yZWJvb3QubmV0AAoJEC4l7othgCuzGG4H/101/0xviF6/pHQYKGEc
+Ied2WiPBB8Gyg93YcSTotliUB5lpFW1xlg4ty5OCXAUhK2gML+5hK0YYzbtnMXs
jLCyOgswEnHdrcqhoGVRsWj756i2taU5fRY2FYy5uCar/GI8UgI09i2VHPqRt77/
F3+6NzWenzsAX+MrbQe7jZ4IJqzZjcFBThHQrtcidkmwry0jBID8ZOrQNVcOG+8r
LOTBp0pGG+CZrsM9IwUt2JLkx63nkMIsDT7HBrRs09k6g0RxWCa+V4/737dl+o78
cMd6YM2jQFps0HVjo4+lWeYqI53M0S9Yi+TSweu3kWSOydh5C4686mNBWoOLZkTa
QJ8=
=IQwu
-----END PGP SIGNATURE-----

A
A
Arun Isaac wrote on 12 Oct 2020 09:23
(address . 42885@debbugs.gnu.org)
87a6wr29i2.fsf@systemreboot.net
I have merged wip-swc into master. Should this bug report be closed now?
Is there any pending work here related to calibre? We need a typescript
build system that uses swc. But, we should handle that in a separate bug
report.

Thanks!
B
B
Brendan Tildesley wrote on 13 Oct 2020 00:17
(address . 42885@debbugs.gnu.org)
ecbb3547-3253-edda-a1fb-e508c0b80b61@brendan.scot
On 12/10/20 5:23 pm, Arun Isaac wrote:
Toggle quote (7 lines)
> I have merged wip-swc into master. Should this bug report be closed now?
> Is there any pending work here related to calibre? We need a typescript
> build system that uses swc. But, we should handle that in a separate bug
> report.
>
> Thanks!

Thank you very much.

I'm kind of worried how long it will take to get that build system. Even
if we have it, will it really succeed at building MathJax so easily? If
it's going to take a while, I'm tempted to just update Calibre without
mathjax support. In theory I'm willing to do work to help but it all
seems rather advanced for me, so i'm glad to see you make progress.
What's the next step?

Calibre 5+ is out now which is on python3. I could even create a
calibre-next so that both calibre@4.18.0 exists and calibre will be
calibre@5.0.1, utilizing Guix's design.
A
A
Arun Isaac wrote on 13 Oct 2020 20:44
(address . 42885@debbugs.gnu.org)
87blh6q835.fsf@systemreboot.net
Toggle quote (2 lines)
> Thank you very much.

:-)

Toggle quote (7 lines)
> I'm kind of worried how long it will take to get that build system. Even
> if we have it, will it really succeed at building MathJax so easily? If
> it's going to take a while, I'm tempted to just update Calibre without
> mathjax support. In theory I'm willing to do work to help but it all
> seems rather advanced for me, so i'm glad to see you make progress.
> What's the next step?

True, I have similar concerns too. The next step, like Ricardo said, is
to write a simple rust script that uses rust-swc to compile typescript
to javascript. I am unfamiliar with both rust and typescript. So, if I
am to do it, I would need some time. If someone else volunteers to do
it, that would be great.

Toggle quote (4 lines)
> Calibre 5+ is out now which is on python3. I could even create a
> calibre-next so that both calibre@4.18.0 exists and calibre will be
> calibre@5.0.1, utilizing Guix's design.

I think we shouldn't let the typescript build system and mathjax block
calibre. If I understand correctly, calibre depends on mathjax only
optionally. So, you should go ahead with your work on calibre regardless
of what happens with mathjax.
R
R
Ricardo Wurmus wrote on 13 Oct 2020 23:22
(name . Arun Isaac)(address . arunisaac@systemreboot.net)
87blh5yg6o.fsf@elephly.net
Arun Isaac <arunisaac@systemreboot.net> writes:

Toggle quote (13 lines)
>> I'm kind of worried how long it will take to get that build system. Even
>> if we have it, will it really succeed at building MathJax so easily? If
>> it's going to take a while, I'm tempted to just update Calibre without
>> mathjax support. In theory I'm willing to do work to help but it all
>> seems rather advanced for me, so i'm glad to see you make progress.
>> What's the next step?
>
> True, I have similar concerns too. The next step, like Ricardo said, is
> to write a simple rust script that uses rust-swc to compile typescript
> to javascript. I am unfamiliar with both rust and typescript. So, if I
> am to do it, I would need some time. If someone else volunteers to do
> it, that would be great.

I looked at this today, but my rust-foo is very, very weak.
I tried to compile this:


jlicht told me on IRC that we also have a package for esbuild now, which
could also be used for transpiling TypeScript to JS.

--
Ricardo
A
A
Arun Isaac wrote on 19 Oct 2020 20:45
(name . Ricardo Wurmus)(address . rekado@elephly.net)
87zh4i6on4.fsf@systemreboot.net
Toggle quote (5 lines)
> I looked at this today, but my rust-foo is very, very weak.
> I tried to compile this:
>
> https://github.com/swc-project/swc/blob/master/examples/usage.rs

I managed to get this working. Please see the attached tarball. The
steps to test are:

Unpack the tarball and change directory.
Clone the swc git repo.
Build and run using cargo.

Toggle snippet (6 lines)
tar xvf miniswc.tar.gz
cd miniswc
git clone https://github.com/swc-project
cargo run

src/main.rs in the tarball is a slightly modified version of
examples/usage.rs in the swc git repo. On running, it transpiles the
file foo.ts and outputs to stdout.

The next step is to see if this is any good for building MathJax from
source.

Cheers!
Attachment: miniswc.tar.gz
-----BEGIN PGP SIGNATURE-----

iQFPBAEBCAA5FiEEf3MDQ/Lwnzx3v3nTLiXui2GAK7MFAl+N3r8bHGFydW5pc2Fh
Y0BzeXN0ZW1yZWJvb3QubmV0AAoJEC4l7othgCuzEmEIAJ7nljlqok3eJ34nmbJG
K5Hj5CD84jn32k1YRod39UxDaUyyKu3tuCdJXnjTYyEgmY62DV47Gq7JXe9LGwnx
EkfUsszEay8pyHlc3jvDF0bLRtwZ3e29k9wH5x6CtBQeBQK8OxTdYPaL6XoT9tJr
QMZtDbtv6kuTUoXojbTmNgpDi6JviYcLWJtlCb9mlCHIzZlVIjqWFbYqvTvU1DAG
nv6Cq04xydQ8JXXs1W8AA9VVLCG6ZbZg29sJ2+KTRyeQN2TLxH2UTh345jX0EB3d
EiTvjOCiBOwGhd8v5eMeHaP4PV3+8omQnqlyPlsZsLHMYesog8zSP7KkygXBaG/2
14g=
=jjSw
-----END PGP SIGNATURE-----

L
L
Ludovic Courtès wrote on 13 Jan 2021 16:00
Re: bug#42885: [PATCH 0/4] gnu: calibre: Update to 4.22.0.
(name . Arun Isaac)(address . arunisaac@systemreboot.net)
87eeioanm3.fsf_-_@gnu.org
Hey ho!

What’s the status of this Calibre update?


It it waiting on the SWC thing?

Thanks in advance, :-)
Ludo’.
A
A
Arun Isaac wrote on 14 Jan 2021 15:59
(name . Ludovic Courtès)(address . ludo@gnu.org)
874kjjsgxr.fsf@systemreboot.net
Hi Ludo,

I got a minimal swc (attached in my previous mail) working. This minimal
swc works for compiling typescript to javascript. But, I haven't figured
out how to use it to build web components. This is blocking packaging
mathjax v3, and thus calibre. I feel that if calibre can go ahead
without mathjax v3, it should. Then, we can close this issue and open a
separate one for web components and mathjax.

Regards,
Arun
-----BEGIN PGP SIGNATURE-----

iQFPBAEBCAA5FiEEf3MDQ/Lwnzx3v3nTLiXui2GAK7MFAmAAXEAbHGFydW5pc2Fh
Y0BzeXN0ZW1yZWJvb3QubmV0AAoJEC4l7othgCuzQfQH/3VRB/Oow5qalogKs26J
gEFT+8a2dB9l2Rz/zwmfeWBiShNsxK40vIbWRxJbJtAjzB468KPiv5xPSa5cr1bw
xdhBeAnB6CCsyFzI5dQrqREwbwW70Dyh9/S9cKfdhNawRmPfwf0AlXCuCIx4WWY9
gZjliFNed9HlG1vVBpjpJTUmYQ+w0CMt1H0JYUy+m+LVz07jadGy6wvmnwLQ028W
EvSenqm1jgVcXfVX1n9KvyrenE0VdKsrm3OG5bpRnCgR21ucYeiyy9N1yo8+Fxz3
z75/AXex4flezJ13QOCEW9iwCG3nLZbgGl9elVQNKsohT5hZl3ImSbiqe7EkBegc
e+k=
=WA6s
-----END PGP SIGNATURE-----

R
R
Ricardo Wurmus wrote on 14 Jan 2021 21:49
(name . Arun Isaac)(address . arunisaac@systemreboot.net)
87k0sfckg9.fsf@elephly.net
Arun Isaac <arunisaac@systemreboot.net> writes:

Toggle quote (4 lines)
> I got a minimal swc (attached in my previous mail) working. This minimal
> swc works for compiling typescript to javascript. But, I haven't figured
> out how to use it to build web components.

We can also try esbuild.

Toggle quote (5 lines)
> This is blocking packaging
> mathjax v3, and thus calibre. I feel that if calibre can go ahead
> without mathjax v3, it should. Then, we can close this issue and open a
> separate one for web components and mathjax.

I’ve been trying to package mathjax v3 for a while, but didn’t get far
enough to present anything yet. Here’s what I have:
Toggle diff (108 lines)
diff --git a/gnu/packages/javascript.scm b/gnu/packages/javascript.scm
index 8434836c6f..e6ff5d619d 100644
--- a/gnu/packages/javascript.scm
+++ b/gnu/packages/javascript.scm
@@ -27,6 +27,7 @@
#:use-module (gnu packages base)
#:use-module (gnu packages compression)
#:use-module (gnu packages lisp-xyz)
+ #:use-module (gnu packages node)
#:use-module (gnu packages readline)
#:use-module (gnu packages web)
#:use-module (guix packages)
@@ -270,6 +271,95 @@ of wicked-good-xpath together with xmldom.")
(license (list license:expat
license:lgpl2.0)))))
+(define-public js-mathjax-3
+ (package
+ (name "js-mathjax")
+ (version "3.1.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/mathjax/MathJax-src")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0kqcb6pl0zfs4hf8zqb4l50kkfq7isv35vpy05m0lg0yr9w0w4ai"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils)
+ (ice-9 match))
+ (set-path-environment-variable
+ "PATH" '("bin") (map (match-lambda
+ ((_ . input)
+ input))
+ %build-inputs))
+ (copy-recursively (assoc-ref %build-inputs "source")
+ "source")
+ (chdir "source")
+
+ ;; TODO: we can't build this because it depends on
+ ;; speech-rule-engine.
+ ;;(delete-file-recursively "ts/a11y")
+ (delete-file-recursively "components/src/a11y")
+
+ ;;(delete-file-recursively "components/src/sre")
+ ;; This file copies a11y files, which we don't build (see above).
+ (delete-file "components/src/node-main/copy.json")
+
+ (substitute* '("components/bin/build"
+ "components/bin/pack"
+ "components/bin/copy"
+ "components/bin/makeAll")
+ (("/usr/bin/env node")
+ (which "node")))
+
+ ;; Make the compiled files of the context menu available.
+ (mkdir-p "mj-context-menu/js")
+ (copy-recursively (string-append (assoc-ref %build-inputs "js-context-menu")
+ "/share/javascript/context-menu")
+ "mj-context-menu/js")
+
+ (let ((esbuild (string-append (assoc-ref %build-inputs "esbuild")
+ "/bin/esbuild"))
+ (node (string-append (assoc-ref %build-inputs "node")
+ "/bin/node"))
+ (target (string-append %output "/share/javascript/mathjax")))
+
+ ;; Transpile TypeScript
+ (apply invoke esbuild
+ "--bundle"
+ "--tsconfig=tsconfig.json"
+ "--platform=node"
+ "--outdir=js"
+ (find-files "ts" "\\.ts$"))
+
+ (setenv "HOME" "/tmp")
+ (with-directory-excursion "components"
+ ;; This requires network access
+ (substitute* "bin/makeAll"
+ (("processDir\\(fulldir, webpackLib\\);") ""))
+ (invoke node "bin/makeAll" "src"))
+
+ ;; Build components
+ (invoke esbuild
+ "components/src/tex-chtml-full/tex-chtml-full.js"
+ "--bundle"
+ "--minify"
+ "--platform=node"
+ (string-append "--outfile=" target "/es5/mml-chtml.js"))))))
+ (native-inputs
+ `(("esbuild" ,esbuild)
+ ("node" ,node-10.22)
+ ("js-context-menu" ,js-context-menu)))
+ (home-page "https://www.mathjax.org/")
+ (synopsis "TODO")
+ (description "TODO")
+ (license license:asl2.0)))
+
(define-public js-respond
(package
(name "js-respond")
--
Ricardo
B
B
Brendan Tildesley wrote on 17 Feb 2021 03:47
1eb856e2-c462-e74c-ab8d-668d10c71a52@brendan.scot
On 14/1/21 1:00 am, Ludovic Courtès wrote:
Toggle quote (11 lines)
> Hey ho!
>
> What’s the status of this Calibre update?
>
> https://issues.guix.gnu.org/42885
>
> It it waiting on the SWC thing?
>
> Thanks in advance, :-)
> Ludo’.

I was away from the project for a bit, but I'm back. I intend to update
Calibre to the latest (5.11.0) without mathjax since it's not a big
deal. New obstacles have come in to existence. I think python-pyqt5 may
need to be updated to use sip5 or sip6, which uses some new sip-build
thingy. I found it results in make files that tries to install files to
the python-wrapper store directory, which is immutable. Haven't yet
figured out how to fix that.
B
B
Brendan Tildesley wrote on 10 Mar 2021 10:00
[PATCH 02/27] gnu: python2-sip: Fix build.
(address . 42885@debbugs.gnu.org)
20210310090053.21612-2-mail@brendan.scot
* gnu/packages/qt.scm (python2-sip): Fix renamed python-sip-4 input.
---
gnu/packages/qt.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Toggle diff (15 lines)
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index ac5a68e8de..877e4b698e 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -2056,7 +2056,7 @@ module provides support functions to the automatically generated code.")
(license license:gpl3)))
(define-public python2-sip
- (package (inherit python-sip)
+ (package (inherit python-sip-4)
(name "python2-sip")
(native-inputs
`(("python" ,python-2)))))
--
2.30.1
B
B
Brendan Tildesley wrote on 10 Mar 2021 10:00
[PATCH 01/27] gnu: python-sip: Update to 5.5.0. Add python-sip-4
(address . 42885@debbugs.gnu.org)
20210310090053.21612-1-mail@brendan.scot
* gnu/packages/qt.scm (python-sip): Update to 5.5.0.
(python-sip-4): New variable. Rename the old python-sip to python-sip-4.
---
gnu/packages/qt.scm | 52 +++++++++++++++++++++++++++++++++------------
1 file changed, 39 insertions(+), 13 deletions(-)

Toggle diff (93 lines)
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index d921aa87fe..ac5a68e8de 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -20,6 +20,7 @@
;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -88,6 +89,7 @@
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
+ #:use-module (gnu packages python-build)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages regex)
#:use-module (gnu packages ruby)
@@ -1977,6 +1979,42 @@ and binaries removed, and adds modular support for using system libraries.")
(define-public python-sip
(package
+ (name "python-sip")
+ (version "5.5.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (list (pypi-uri "sip" version)
+ (string-append "https://www.riverbankcomputing.com/static/"
+ "Downloads/sip/" version
+ "/sip-" version ".tar.gz")))
+ (sha256
+ (base32
+ "1idaivamp1jvbbai9yzv471c62xbqxhaawccvskaizihkd0lq0jx"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python" ,python-wrapper)))
+ (propagated-inputs
+ `(("python-toml" ,python-toml)
+ ("python-packaging" ,python-packaging)))
+ (home-page "https://www.riverbankcomputing.com/software/sip/intro")
+ (synopsis "Python binding creator for C and C++ libraries")
+ (description
+ "SIP is a tool to create Python bindings for C and C++ libraries. It
+was originally developed to create PyQt, the Python bindings for the Qt
+toolkit, but can be used to create bindings for any C or C++ library.
+
+SIP comprises a code generator and a Python module. The code generator
+processes a set of specification files and generates C or C++ code, which
+is then compiled to create the bindings extension module. The SIP Python
+module provides support functions to the automatically generated code.")
+ ;; There is a choice between a python like license, gpl2 and gpl3.
+ ;; For compatibility with pyqt, we need gpl3.
+ (license license:gpl3)))
+
+(define-public python-sip-4
+ (package
+ (inherit python-sip)
(name "python-sip")
(version "4.19.24")
(source
@@ -1992,6 +2030,7 @@ and binaries removed, and adds modular support for using system libraries.")
(build-system gnu-build-system)
(native-inputs
`(("python" ,python-wrapper)))
+ (propagated-inputs `())
(arguments
`(#:tests? #f ; no check target
#:imported-modules ((guix build python-build-system)
@@ -2014,19 +2053,6 @@ and binaries removed, and adds modular support for using system libraries.")
"--bindir" bin
"--destdir" lib
"--incdir" include)))))))
- (home-page "https://www.riverbankcomputing.com/software/sip/intro")
- (synopsis "Python binding creator for C and C++ libraries")
- (description
- "SIP is a tool to create Python bindings for C and C++ libraries. It
-was originally developed to create PyQt, the Python bindings for the Qt
-toolkit, but can be used to create bindings for any C or C++ library.
-
-SIP comprises a code generator and a Python module. The code generator
-processes a set of specification files and generates C or C++ code, which
-is then compiled to create the bindings extension module. The SIP Python
-module provides support functions to the automatically generated code.")
- ;; There is a choice between a python like license, gpl2 and gpl3.
- ;; For compatibility with pyqt, we need gpl3.
(license license:gpl3)))
(define-public python2-sip
--
2.30.1
B
B
Brendan Tildesley wrote on 10 Mar 2021 10:00
[PATCH 03/27] gnu: veusz: Fix build.
(address . 42885@debbugs.gnu.org)
20210310090053.21612-3-mail@brendan.scot
* gnu/packages/maths.scm (veusz): Fix build that was broken by updating python-sip
---
gnu/packages/maths.scm | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

Toggle diff (16 lines)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 6856737bdf..675e1d5b88 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -2289,7 +2289,8 @@ ASCII text files using Gmsh's own scripting language.")
(native-inputs
`(("pkg-config" ,pkg-config)
;;("python-astropy" ,python-astropy) ;; FIXME: Package this.
- ("qttools" ,qttools)))
+ ("qttools" ,qttools)
+ ("python-sip" ,python-sip-4)))
(inputs
`(("ghostscript" ,ghostscript) ;optional, for EPS/PS output
("python-dbus" ,python-dbus)
--
2.30.1
B
B
Brendan Tildesley wrote on 10 Mar 2021 10:00
[PATCH 04/27] gnu: Add python-pyqt-builder.
(address . 42885@debbugs.gnu.org)
20210310090053.21612-4-mail@brendan.scot
* gnu/packages/qt.scm (python-pyqt-builder): New variable.
---
gnu/packages/qt.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 877e4b698e..6435c4b3c3 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -2326,6 +2326,27 @@ itself.")
"--sipdir" sip)))))))
(license (list license:gpl2 license:gpl3)))) ; choice of either license
+(define-public python-pyqt-builder
+ (package
+ (name "python-pyqt-builder")
+ (version "1.9.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "PyQt-builder" version))
+ (sha256
+ (base32
+ "0nh0054c54ji3sm6d268fccf0y5f613spswwgwqd3rnn816hnljl"))))
+ (build-system python-build-system)
+ (inputs
+ `(("python-sip" ,python-sip)))
+ (home-page "https://www.riverbankcomputing.com/static/Docs/PyQt-builder/")
+ (synopsis "The PEP 517 compliant PyQt build system")
+ (description "PyQt-builder is a tool for generating Python bindings for C++
+libraries that use the Qt application framework. The bindings are built on
+top of the PyQt bindings for Qt. PyQt-builder is used to build PyQt itself.")
+ (license (list license:gpl2 license:gpl3))))
+
(define-public python-qtpy
(package
(name "python-qtpy")
--
2.30.1
B
B
Brendan Tildesley wrote on 10 Mar 2021 10:00
[PATCH 05/27] gnu: Add python-pyqt5-sip.
(address . 42885@debbugs.gnu.org)
20210310090053.21612-5-mail@brendan.scot
* gnu/packages/qt.scm (python-pyqt5-sip): New variable.
---
gnu/packages/qt.scm | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)

Toggle diff (32 lines)
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 6435c4b3c3..65e61d4dc4 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -2153,6 +2153,25 @@ framework. The bindings are implemented as a set of Python modules and
contain over 620 classes.")
(license license:gpl3)))
+(define-public python-pyqt5-sip
+ (package
+ (name "python-pyqt5-sip")
+ (version "12.8.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "PyQt5_sip" version))
+ (sha256
+ (base32
+ "1gg032ys4pccwkdzmdryadc9a4lq85nr05pag9swrsdykbdl9s9h"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f)) ;; No test code.
+ (home-page "https://www.riverbankcomputing.com/software/sip/")
+ (synopsis "Sip module support for PyQt5")
+ (description "Sip module support for PyQt5")
+ (license license:lgpl2.1+)))
+
(define-public python-pyqtwebengine
(package
(name "python-pyqtwebengine")
--
2.30.1
B
B
Brendan Tildesley wrote on 10 Mar 2021 10:00
[PATCH 06/27] gnu: python-pyqt: Fix build for new python-sip.
(address . 42885@debbugs.gnu.org)
20210310090053.21612-6-mail@brendan.scot
* gnu/packages/qt.scm (python-pyqt)
[source]: Remove pyqt-public-sip.patch. PyQt uses python-pyqt5-sip
now. This patch is still used by python2-pyqt so we don't delete it completely.
[inputs]: Add python-pyqt-builder, python-pyqt5-sip
[arguments]: Add phase to link PyQt5-sip module.
---
gnu/packages/qt.scm | 18 ++++++++++++++----
1 file changed, 14 insertions(+), 4 deletions(-)

Toggle diff (48 lines)
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 65e61d4dc4..b615a74755 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -2074,12 +2074,11 @@ module provides support functions to the automatically generated code.")
(string-append "https://www.riverbankcomputing.com/static/"
"Downloads/PyQt5/" version "/PyQt5-"
version ".tar.gz")))
- (file-name (string-append "PyQt5-"version ".tar.gz"))
+ (file-name (string-append "PyQt5-" version ".tar.gz"))
(sha256
(base32
"1z74295i69cha52llsqffzhb5zz7qnbjc64h8qg21l91jgf0harp"))
- (patches (search-patches "pyqt-configure.patch"
- "pyqt-public-sip.patch"))))
+ (patches (search-patches "pyqt-configure.patch"))))
(build-system gnu-build-system)
(native-inputs
`(("qtbase" ,qtbase))) ; for qmake
@@ -2087,6 +2086,8 @@ module provides support functions to the automatically generated code.")
`(("python-sip" ,python-sip)))
(inputs
`(("python" ,python-wrapper)
+ ("python-pyqt-builder" ,python-pyqt-builder)
+ ("python-pyqt5-sip" ,python-pyqt5-sip)
("qtbase" ,qtbase)
("qtconnectivity" ,qtconnectivity)
("qtdeclarative" ,qtdeclarative)
@@ -2144,7 +2145,16 @@ module provides support functions to the automatically generated code.")
; installed into the python package's
; site-package directory, which is read-only.
"--stubsdir" stubs
- "--sipdir" sip)))))))
+ "--sipdir" sip))))
+ ;; Linking here means the sip module can be found without
+ ;; python-pyqt5-sip needing to be added as an input.
+ (add-after 'install 'pyqt5-sip
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (pyqt5-sip (assoc-ref inputs "python-pyqt5-sip"))
+ (site "/lib/python3.8/site-packages/PyQt5/")
+ (.so (first (find-files (string-append pyqt5-sip site) "sip.*"))))
+ (symlink .so (string-append out site (basename .so)))))))))
(home-page "https://www.riverbankcomputing.com/software/pyqt/intro")
(synopsis "Python bindings for Qt")
(description
--
2.30.1
B
B
Brendan Tildesley wrote on 10 Mar 2021 10:00
[PATCH 08/27] gnu: Add python-zeroconf.
(address . 42885@debbugs.gnu.org)
20210310090053.21612-8-mail@brendan.scot
* gnu/packages/python-xyz.scm (python-zeroconf): New variable.
---
gnu/packages/python-xyz.scm | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)

Toggle diff (46 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index f6bb57d518..4ac8b0d926 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -20710,6 +20710,39 @@ by Igor Pavlov.")
"Cross-platform network interface and IP address enumeration library")
(license license:expat)))
+(define-public python-zeroconf
+ (package
+ (name "python-zeroconf")
+ (version "0.28.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "zeroconf" version))
+ (sha256
+ (base32
+ "0narq8haa3b375vfblbyil77n8bw0wxqnanl91pl0wwwm884mqjb"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-nose" ,python-nose)))
+ (propagated-inputs
+ `(("python-ifaddr" ,python-ifaddr)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _ ;; Networking isn't available for these tests.
+ (invoke "nosetests" "-v"
+ "--exclude" "test_integration_with_listener_ipv6"
+ "--exclude" "test_launch_and_close_v6_only"
+ "--exclude" "test_launch_and_close_v4_v6"
+ "--exclude" "test_launch_and_close"))))))
+ (home-page "https://github.com/jstasiak/python-zeroconf")
+ (synopsis "Pure Python mDNS service discovery")
+ (description
+ "Pure Python multicast DNS (mDNS) service discovery library (Bonjour/Avahi
+compatible).")
+ (license license:lgpl2.1+)))
+
(define-public python2-zeroconf
(package
(name "python2-zeroconf")
--
2.30.1
B
B
Brendan Tildesley wrote on 10 Mar 2021 10:00
[PATCH 07/27] gnu: Add python-ifaddr.
(address . 42885@debbugs.gnu.org)
20210310090053.21612-7-mail@brendan.scot
* gnu/packages/python-xyz.scm (python-ifaddr): New variable.
---
gnu/packages/python-xyz.scm | 28 +++++++++++++++++++++++++++-
1 file changed, 27 insertions(+), 1 deletion(-)

Toggle diff (48 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index b1ac3e2e3b..f6bb57d518 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -43,7 +43,7 @@
;;; Copyright © 2017, 2018, 2019 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2017 Muriithi Frederick Muriuki <fredmanglis@gmail.com>
-;;; Copyright © 2017, 2019 Brendan Tildesley <mail@brendan.scot>
+;;; Copyright © 2017, 2019, 2021 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2018 Ethan R. Jones <ethanrjones97@gmail.com
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
;;; Copyright © 2018 Vijayalakshmi Vedantham <vijimay12@gmail.com>
@@ -20684,6 +20684,32 @@ by Igor Pavlov.")
(define-public python2-pylzma
(package-with-python2 python-pylzma))
+(define-public python-ifaddr
+ (package
+ (name "python-ifaddr")
+ (version "0.1.7")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "ifaddr" version))
+ (sha256
+ (base32
+ "150sxdlicwrphmhnv03ykxplyd2jdrxz0mikgnivavgilrn8m7hz"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _ (invoke "nosetests"))))))
+ (native-inputs
+ `(("python-nose" ,python-nose)))
+ (home-page "https://github.com/pydron/ifaddr")
+ (synopsis
+ "Cross-platform network interface and IP address enumeration library")
+ (description
+ "Cross-platform network interface and IP address enumeration library")
+ (license license:expat)))
+
(define-public python2-zeroconf
(package
(name "python2-zeroconf")
--
2.30.1
B
B
Brendan Tildesley wrote on 10 Mar 2021 10:00
[PATCH 09/27] gnu: Add python-pyannotate.
(address . 42885@debbugs.gnu.org)
20210310090053.21612-9-mail@brendan.scot
* gnu/packages/python-check.scm (python-pyannotate): New variable.
---
gnu/packages/python-check.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (43 lines)
diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm
index 15efdd3297..0de3a779b6 100644
--- a/gnu/packages/python-check.scm
+++ b/gnu/packages/python-check.scm
@@ -10,6 +10,7 @@
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
+;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1156,6 +1157,28 @@ any Python VM with basically no runtime overhead.")
;; mypyc/lib-rt/getargs.c
(license (list license:expat license:psfl))))
+(define-public python-pyannotate
+ (package
+ (name "python-pyannotate")
+ (version "1.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pyannotate" version))
+ (sha256
+ (base32
+ "16bm0mf7wxvy0lgmcs1p8n1ji8pnvj1jvj8zk3am70dkp825iv84"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-mypy-extensions" ,python-mypy-extensions)
+ ("python-six" ,python-six)))
+ (home-page
+ "https://github.com/dropbox/pyannotate")
+ (synopsis
+ "PyAnnotate: Auto-generate PEP-484 annotations")
+ (description
+ "PyAnnotate: Auto-generate PEP-484 annotations")
+ (license license:asl2.0)))
(define-public python-eradicate
(package
(name "python-eradicate")
--
2.30.1
B
B
Brendan Tildesley wrote on 10 Mar 2021 10:00
[PATCH 11/27] gnu: Add python-ppmd-cffi.
(address . 42885@debbugs.gnu.org)
20210310090053.21612-11-mail@brendan.scot
* gnu/packages/python-compression.scm (python-ppmd-cffi): New variable.
---
gnu/packages/python-compression.scm | 30 +++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

Toggle diff (50 lines)
diff --git a/gnu/packages/python-compression.scm b/gnu/packages/python-compression.scm
index fe73dd38cb..101211019b 100644
--- a/gnu/packages/python-compression.scm
+++ b/gnu/packages/python-compression.scm
@@ -31,6 +31,7 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
#:use-module (gnu packages)
+ #:use-module (gnu packages libffi)
#:use-module (gnu packages compression)
#:use-module (gnu packages check)
#:use-module (gnu packages maths)
@@ -67,6 +68,35 @@
wrapping multiple files as virtually like as a single file.")
(license license:lgpl2.1+)))
+(define-public python-ppmd-cffi
+ (package
+ (name "python-ppmd-cffi")
+ (version "0.3.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "ppmd-cffi" version))
+ (sha256
+ (base32
+ "01wcd9l6pp6hivdmd275qh9dhcwficjqfl67hxix5n07vvq7jzz0"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-cffi" ,python-cffi)))
+ (native-inputs
+ `(("python-setuptools" ,python-setuptools)
+ ("python-setuptools-scm" ,python-setuptools-scm/next)
+ ("python-pep517" ,python-pep517)
+ ("python-coverage" ,python-coverage)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-cov" ,python-pytest-cov)))
+ (home-page "http://github.com/miurahr/ppmd")
+ (synopsis "Compression/decompression library")
+ (description
+ "PPMd is a compression algorithm library using the Prediction by Partial
+Matching statical technique. It is by RAR and 7-Zip as one of several possible
+methods.")
+ (license license:lgpl2.1+)))
+
(define-public python-lzo
(package
(name "python-lzo")
--
2.30.1
B
B
Brendan Tildesley wrote on 10 Mar 2021 10:00
[PATCH 12/27] gnu: python-zstandard: Update to 0.15.2.
(address . 42885@debbugs.gnu.org)
20210310090053.21612-12-mail@brendan.scot
* gnu/packages/python-compression.scm (python-zstandard): Update to 0.15.2.
---
gnu/packages/python-compression.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (22 lines)
diff --git a/gnu/packages/python-compression.scm b/gnu/packages/python-compression.scm
index 101211019b..860b4ee342 100644
--- a/gnu/packages/python-compression.scm
+++ b/gnu/packages/python-compression.scm
@@ -348,13 +348,13 @@ wrapper. It provides a backport of the @code{Path} object.")
(define-public python-zstandard
(package
(name "python-zstandard")
- (version "0.13.0")
+ (version "0.15.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "zstandard" version))
(sha256
- (base32 "0q9msi00s93iqm8vzd839r7yc51gz54z90h5bckqyjdxa6vxijz5"))))
+ (base32 "0by9z7nxnkzhmza075q6q91rs8lnpf91129k8ppv7kymbwshipjj"))))
(build-system python-build-system)
(native-inputs
`(("python-hypothesis" ,python-hypothesis)))
--
2.30.1
B
B
Brendan Tildesley wrote on 10 Mar 2021 10:00
[PATCH 13/27] gnu: Add python-pyzstd
(address . 42885@debbugs.gnu.org)
20210310090053.21612-13-mail@brendan.scot
* gnu/packages/python-compression.scm (python-pyzstd): New variable.
---
gnu/packages/python-compression.scm | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

Toggle diff (28 lines)
diff --git a/gnu/packages/python-compression.scm b/gnu/packages/python-compression.scm
index 860b4ee342..51e1fb3ccf 100644
--- a/gnu/packages/python-compression.scm
+++ b/gnu/packages/python-compression.scm
@@ -364,3 +364,21 @@ wrapper. It provides a backport of the @code{Path} object.")
the Zstandard compression library. A C extension and CFFI interface are
provided.")
(license license:bsd-3)))
+
+(define-public python-pyzstd
+ (package
+ (name "python-pyzstd")
+ (version "0.14.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pyzstd" version))
+ (sha256
+ (base32
+ "1d3mngs45w2p490vrq5ymd2wz4lp15phmks1ilcx4k7amgibml3d"))))
+ (build-system python-build-system)
+ (home-page "https://github.com/animalize/pyzstd")
+ (synopsis "Zstandard bindings for Python")
+ (description "Python bindings to Zstandard (zstd) compression library, the
+API is similar to Python's bz2/lzma/zlib module.")
+ (license license:bsd-3)))
--
2.30.1
B
B
Brendan Tildesley wrote on 10 Mar 2021 10:00
[PATCH 14/27] gnu: Add python-bcj-cffi.
(address . 42885@debbugs.gnu.org)
20210310090053.21612-14-mail@brendan.scot
* gnu/packages/python-compression.scm (python-bcj-cffi): New variable.
---
gnu/packages/python-compression.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (47 lines)
diff --git a/gnu/packages/python-compression.scm b/gnu/packages/python-compression.scm
index 51e1fb3ccf..a25a658ff2 100644
--- a/gnu/packages/python-compression.scm
+++ b/gnu/packages/python-compression.scm
@@ -37,6 +37,7 @@
#:use-module (gnu packages maths)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
+ #:use-module (gnu packages python-build)
#:use-module (gnu packages python-check)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages sphinx))
@@ -68,6 +69,32 @@
wrapping multiple files as virtually like as a single file.")
(license license:lgpl2.1+)))
+(define-public python-bcj-cffi
+ (package
+ (name "python-bcj-cffi")
+ (version "0.5.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "bcj-cffi" version))
+ (sha256
+ (base32
+ "1jcczrb8zgg6w7v76w1wpz3nw75fghk3xwxkn09ll7kck7sdf68d"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-cffi" ,python-cffi)
+ ("python-toml" ,python-toml)
+ ("python-setuptools-scm" ,python-setuptools-scm/next)))
+ (native-inputs
+ `(("python-setuptools" ,python-setuptools)
+ ("python-coverage" ,python-coverage)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-cov" ,python-pytest-cov)))
+ (home-page "http://github.com/miurahr/bcj-cffi")
+ (synopsis "bcj algorithm library")
+ (description "bcj algorithm library")
+ (license license:lgpl2.1+)))
+
(define-public python-ppmd-cffi
(package
(name "python-ppmd-cffi")
--
2.30.1
B
B
Brendan Tildesley wrote on 10 Mar 2021 10:00
[PATCH 10/27] gnu: Add python-multivolumefile.
(address . 42885@debbugs.gnu.org)
20210310090053.21612-10-mail@brendan.scot
* gnu/packages/python-compression.scm (python-multivolumefile): New
variable.
---
gnu/packages/python-compression.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (52 lines)
diff --git a/gnu/packages/python-compression.scm b/gnu/packages/python-compression.scm
index 6b2da5f925..fe73dd38cb 100644
--- a/gnu/packages/python-compression.scm
+++ b/gnu/packages/python-compression.scm
@@ -6,6 +6,7 @@
;;; Copyright © 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -35,9 +36,37 @@
#:use-module (gnu packages maths)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
+ #:use-module (gnu packages python-check)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages sphinx))
+(define-public python-multivolumefile
+ (package
+ (name "python-multivolumefile")
+ (version "0.2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "multivolumefile" version))
+ (sha256
+ (base32
+ "0j46wab4b09s3favjzp3zs1cn2sn8pr7qyngs5wn31hpqqxbbz76"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-pep517" ,python-pep517)
+ ("python-setuptools" ,python-setuptools)
+ ("python-setuptools-scm" ,python-setuptools-scm/next)
+ ("python-coverage" ,python-coverage)
+ ("python-coveralls" ,python-coveralls)
+ ("python-pyannotate" ,python-pyannotate)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-cov" ,python-pytest-cov)))
+ (home-page "https://github.com/miurahr/multivolume")
+ (synopsis "Treat multiple files as one")
+ (description "MultiVolumefile is a python library to provide a file-object
+wrapping multiple files as virtually like as a single file.")
+ (license license:lgpl2.1+)))
+
(define-public python-lzo
(package
(name "python-lzo")
--
2.30.1
B
B
Brendan Tildesley wrote on 10 Mar 2021 10:00
[PATCH 15/27] gnu: Add python-py7zr.
(address . 42885@debbugs.gnu.org)
20210310090053.21612-15-mail@brendan.scot
* gnu/packages/python-compression.scm (python-py7zr): New variable.
---
gnu/packages/python-compression.scm | 40 +++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)

Toggle diff (60 lines)
diff --git a/gnu/packages/python-compression.scm b/gnu/packages/python-compression.scm
index a25a658ff2..9cc5a1b679 100644
--- a/gnu/packages/python-compression.scm
+++ b/gnu/packages/python-compression.scm
@@ -39,6 +39,7 @@
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-check)
+ #:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages sphinx))
@@ -124,6 +125,45 @@ Matching statical technique. It is by RAR and 7-Zip as one of several possible
methods.")
(license license:lgpl2.1+)))
+(define-public python-py7zr
+ (package
+ (name "python-py7zr")
+ (version "0.14.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "py7zr" version))
+ (sha256
+ (base32
+ "1zmgp7yax328fj8yj8pj4l7yh78hp727j6wk12vfi6nmi82wl32i"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-bcj-cffi" ,python-bcj-cffi)
+ ("python-multivolumefile" ,python-multivolumefile)
+ ("python-ppmd-cffi" ,python-ppmd-cffi)
+ ("python-pycryptodome" ,python-pycryptodome)
+ ("python-pyzstd" ,python-pyzstd)
+ ("python-texttable" ,python-texttable)
+ ("python-zstandard" ,python-zstandard)))
+ (native-inputs
+ `(("python-setuptools" ,python-setuptools)
+ ("python-setuptools-scm" ,python-setuptools-scm/next)
+ ("python-coverage" ,python-coverage)
+ ("python-coveralls" ,python-coveralls)
+ ("python-libarchive-c" ,python-libarchive-c)
+ ("python-py-cpuinfo" ,python-py-cpuinfo)
+ ("python-pyannotate" ,python-pyannotate)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-benchmark" ,python-pytest-benchmark)
+ ("python-pytest-cov" ,python-pytest-cov)
+ ("python-pytest-remotedata" ,python-pytest-remotedata)
+ ("python-pytest-timeout" ,python-pytest-timeout)))
+ (home-page "https://github.com/miurahr/py7zr")
+ (synopsis "Pure python 7-zip library")
+ (description "py7zr is a library and utility to support 7zip archive
+compression, decompression, encryption and decryption written in Python.")
+ (license license:lgpl2.1+)))
+
(define-public python-lzo
(package
(name "python-lzo")
--
2.30.1
B
B
Brendan Tildesley wrote on 10 Mar 2021 10:00
[PATCH 16/27] gnu: python-markdown: Update to 3.3.4.
(address . 42885@debbugs.gnu.org)
20210310090053.21612-16-mail@brendan.scot
* gnu/packages/python-xyz.scm (python-markdown): Update to 3.3.4.
---
gnu/packages/python-xyz.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (23 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 4ac8b0d926..0bf7c31ede 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -8775,14 +8775,14 @@ Python.")
(define-public python-markdown
(package
(name "python-markdown")
- (version "3.2.1")
+ (version "3.3.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "Markdown" version))
(sha256
(base32
- "00k91gwhxnm8jdnm2v5xjz9irj6dbi7afywz2hpakqdbxs1ydzlh"))))
+ "0jbs73nincha8fkfxx267sfxac6pl0ckszjbqbb8gk4dhs8v9d9i"))))
(build-system python-build-system)
(native-inputs
`(("python-nose" ,python-nose)
--
2.30.1
B
B
Brendan Tildesley wrote on 10 Mar 2021 10:00
[PATCH 17/27] gnu: python-feedparser: Update to 6.0.2.
(address . 42885@debbugs.gnu.org)
20210310090053.21612-17-mail@brendan.scot
* gnu/packages/web.scm (python-feedparser): Update to 6.0.2.
---
gnu/packages/web.scm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

Toggle diff (24 lines)
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 836328d758..ea0155cb54 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -4610,14 +4610,14 @@ their web site.")
(define-public python-feedparser
(package
(name "python-feedparser")
- (version "5.2.1")
+ (version "6.0.2")
(source
(origin
(method url-fetch)
- (uri (pypi-uri "feedparser" version ".tar.bz2"))
+ (uri (pypi-uri "feedparser" version ".tar.gz"))
(sha256
(base32
- "00hb4qg2am06g81mygfi1jsbx8830024jm45g6qp9g8fr6am91yf"))))
+ "0x0hm9brh3j71645pydvlkrwxaaca9dnwd7xahwjyjaz882s200v"))))
(build-system python-build-system)
(arguments
'(#:tests? #f))
--
2.30.1
B
B
Brendan Tildesley wrote on 10 Mar 2021 10:00
[PATCH 18/27] gnu: python-poppler-qt5: Fix build.
(address . 42885@debbugs.gnu.org)
20210310090053.21612-18-mail@brendan.scot
* gnu/packages/pdf.scm (python-poppler-qt5): Keep using python-sip 4
since it doesn't work with 5.
---
gnu/packages/pdf.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Toggle diff (15 lines)
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index e81c3caf87..a931f04ff7 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -346,7 +346,7 @@ When present, Poppler is able to correctly render CJK and Cyrillic text.")
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
- `(("python-sip" ,python-sip)
+ `(("python-sip" ,python-sip-4)
("python-pyqt" ,python-pyqt)
("poppler-qt5" ,poppler-qt5)
("qtbase" ,qtbase)))
--
2.30.1
B
B
Brendan Tildesley wrote on 10 Mar 2021 10:00
[PATCH 19/27] gnu: python-poppler-qt5: Update to 21.1.0.
(address . 42885@debbugs.gnu.org)
20210310090053.21612-19-mail@brendan.scot
* gnu/packages/pdf (python-poppler-qt5): Update to 21.1.0. (Unrelated to
Calibre, just updating this since I updated python-sip.)
---
gnu/packages/pdf.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (23 lines)
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index a931f04ff7..520f4b60f9 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -316,14 +316,14 @@ When present, Poppler is able to correctly render CJK and Cyrillic text.")
(define-public python-poppler-qt5
(package
(name "python-poppler-qt5")
- (version "0.24.2")
+ (version "21.1.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "python-poppler-qt5" version))
(sha256
(base32
- "0l69llw1fzwz8y90q0qp9q5pifbrqjjbwii7di54dwghw5fc6w1r"))))
+ "0b82gm4i75q5v19kfbq0h4y0b2vcwr2213zkhxh6l0h45kdndmxd"))))
(build-system python-build-system)
(arguments
`(;; There are no tests. The check phase just causes a rebuild.
--
2.30.1
B
B
Brendan Tildesley wrote on 10 Mar 2021 10:00
[PATCH 20/27] gnu: Add python-pychm.
(address . 42885@debbugs.gnu.org)
20210310090053.21612-20-mail@brendan.scot
* gnu/packages/ebook.scm (python-pychm): New variable.
---
gnu/packages/ebook.scm | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)

Toggle diff (33 lines)
diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm
index 47bbd1a789..763e3eba2b 100644
--- a/gnu/packages/ebook.scm
+++ b/gnu/packages/ebook.scm
@@ -88,6 +88,26 @@
(description "CHMLIB is a library for dealing with ITSS/CHM format files.")
(license license:lgpl2.1+)))
+(define-public python-pychm
+ (package
+ (name "python-pychm")
+ (version "0.8.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pychm" version))
+ (sha256
+ (base32
+ "0wpn9ijlsmrpyiwg3drmgz4dms1i1i347adgqw37bkrh3vn6yq16"))))
+ (build-system python-build-system)
+ (inputs
+ `(("chmlib" ,chmlib)))
+ (home-page "https://github.com/dottedmag/pychm")
+ (synopsis "Python package to handle CHM files")
+ (description
+ "Python package to handle CHM files")
+ (license license:gpl3)))
+
(define-public calibre
(package
(name "calibre")
--
2.30.1
B
B
Brendan Tildesley wrote on 10 Mar 2021 10:00
[PATCH 22/27] gnu: python-html5lib: Add python-chardet input.
(address . 42885@debbugs.gnu.org)
20210310090053.21612-22-mail@brendan.scot
* gnu/packages/python-web.scm: python-chardet to
propragated-inputs. html5lib uses this as a fallback for encoding
detection, and Calibre tests for its being there, so ad it.
---
gnu/packages/python-web.scm | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

Toggle diff (16 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index b0268e5a31..c527cfad90 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -1041,7 +1041,8 @@ storage.")
(build-system python-build-system)
(propagated-inputs
`(("python-six" ,python-six)
- ("python-webencodings" ,python-webencodings)))
+ ("python-webencodings" ,python-webencodings)
+ ("python-chardet" ,python-chardet)))
(arguments
`(#:test-target "check"))
(home-page
--
2.30.1
B
B
Brendan Tildesley wrote on 10 Mar 2021 10:00
[PATCH 21/27] gnu: Add python-cchardet.
(address . 42885@debbugs.gnu.org)
20210310090053.21612-21-mail@brendan.scot
* gnu/packages/freedesktop.scm (python-cchardet): New variable.
---
gnu/packages/freedesktop.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (41 lines)
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index e5f9ea71b6..87f592844d 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -22,6 +22,7 @@
;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
;;; Copyright © 2020 Anders Thuné <asse.97@gmail.com>
;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
+;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1920,6 +1921,26 @@ encoding names are iconv-compatible.")
;; combination is GPL 2.0+.
(license license:gpl2+)))
+(define-public python-cchardet
+ (package
+ (name "python-cchardet")
+ (version "2.1.7")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "cchardet" version))
+ (sha256
+ (base32
+ "1bqfz85cd51sw0bvhvdq9ikccxi2ld7g5jpni4jkq1a5clrvca64"))))
+ (build-system python-build-system)
+ (inputs
+ `(("uchardet" ,uchardet)))
+ (home-page "https://github.com/PyYoshi/cChardet")
+ (synopsis "Fast universal character encoding detector")
+ (description
+ "cChardet is high speed universal character encoding detector.")
+ (license license:gpl2+)))
+
(define-public udiskie
(package
(name "udiskie")
--
2.30.1
B
B
Brendan Tildesley wrote on 10 Mar 2021 10:00
[PATCH 24/27] gnu: calibre: Patch some paths.
(address . 42885@debbugs.gnu.org)
20210310090053.21612-24-mail@brendan.scot
* gnu/packages/ebook.scm (calibre):
[inputs]: Add libjpeg and libjxz.
[arguments]: substitute Calibre's weird get_exe_path procedure that looks
in poppler's output directory for binaries with direct paths to
jpegtran, cjpeg, optipng, and JxrDecApp.
---
gnu/packages/ebook.scm | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)

Toggle diff (29 lines)
diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm
index 124fcda4df..be367a5245 100644
--- a/gnu/packages/ebook.scm
+++ b/gnu/packages/ebook.scm
@@ -161,6 +161,8 @@
("icu4c" ,icu4c)
("libmtp" ,libmtp)
("libpng" ,libpng)
+ ("libjpeg" ,libjpeg-turbo)
+ ("libjxr" ,libjxr)
("libusb" ,libusb)
("openssl" ,openssl)
("optipng" ,optipng)
@@ -246,7 +248,12 @@ sip-include-dirs = [\"" pyqt "/share/sip" "\"]")))
(("PDFTOHTML = 'pdftohtml'")
(string-append "PDFTOHTML = \"" (assoc-ref inputs "poppler")
"/bin/pdftohtml\"")))
-
+ ;; get_exe_path looks in poppler's output for these binaries.
+ (substitute* "src/calibre/utils/img.py"
+ (("get_exe_path..jpegtran..") (string-append "'" (which "jpegtran") "'"))
+ (("get_exe_path..cjpeg..") (string-append "'" (which "cjpeg") "'"))
+ (("get_exe_path..optipng..") (string-append "'" (which "optipng") "'"))
+ (("get_exe_path..JxrDecApp..") (string-append "'" (which "JxrDecApp") "'")))
;; Calibre thinks we are installing desktop files into a home
;; directory, but here we butcher the script in to installing
;; to calibres /share directory.
--
2.30.1
B
B
Brendan Tildesley wrote on 10 Mar 2021 10:00
[PATCH 23/27] gnu: calibre: Update to 5.13.0.
(address . 42885@debbugs.gnu.org)
20210310090053.21612-23-mail@brendan.scot
* gnu/packages/ebook.scm (calibre): Update to 5.13.0.

Switch all Python 2 inputs to their Python 3 equivalents.

[native-inputs]: Add new dependency python-pyqt-builder.

[inputs]: Remove js-mathmax. Calibre now uses a newer mathjax that we
don't have in guix since it's needs a javascript bootstrap.
Remove python-chardet. This is still used by python-html5lib but since
I added the input directly to python-htmpl5lib, it is no longer needed
here.
Remove chmlib. python-chmlib bindings are used now.
Remove python-sip
Add new dependencies:
- python-cchardet
- python-speechd
- python-zeroconf
- python-py7zr
- python-pychm
- python-pycryptodome (Used by some Calibre extensions)

[arguments]: get_sip_dir isn't used anymore, so now we specify the sip
directory by editing the project.toml file. Also, for whatever reason,
it doesn't build unless the WS_X11 tag is set.
Don't try building mathjax support.
Don't set SIP_BIN anymore since it isn't needed.

* gnu/packages/patches/calibre-no-updates-dialog.patch
* gnu/packages/patches/calibre-remove-test-sqlite.patch
* gnu/packages/patches/calibre-remove-test-unrar.patch
Remake these patches to work with the slightly different new source
code.

startars
---
gnu/packages/ebook.scm | 101 +++++++++---------
.../patches/calibre-no-updates-dialog.patch | 22 ++--
.../patches/calibre-remove-test-sqlite.patch | 21 ++--
.../patches/calibre-remove-test-unrar.patch | 24 ++---
4 files changed, 88 insertions(+), 80 deletions(-)

Toggle diff (306 lines)
diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm
index 763e3eba2b..124fcda4df 100644
--- a/gnu/packages/ebook.scm
+++ b/gnu/packages/ebook.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2015, 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
-;;; Copyright © 2017, 2019, 2020 Brendan Tildesley <mail@brendan.scot>
+;;; Copyright © 2017, 2019, 2020, 2021 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
@@ -58,10 +58,14 @@
#:use-module (gnu packages pdf)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
+ #:use-module (gnu packages python-build)
+ #:use-module (gnu packages python-compression)
+ #:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages serialization)
+ #:use-module (gnu packages speech)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages time)
#:use-module (gnu packages tls)
@@ -111,7 +115,7 @@
(define-public calibre
(package
(name "calibre")
- (version "4.18.0")
+ (version "5.13.0")
(source
(origin
(method url-fetch)
@@ -120,7 +124,7 @@
version ".tar.xz"))
(sha256
(base32
- "0w9pcfvskjh4v00vjw3i6hzrafy863pgsmmqdx4lffip3p856brw"))
+ "08sljr5rg5f5i1s92g2li5f63mw458b8w5drgcxjm4k62rkl0c8q"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -145,17 +149,16 @@
(native-inputs
`(("pkg-config" ,pkg-config)
("qtbase" ,qtbase) ; for qmake
- ("python2-flake8" ,python2-flake8)
+ ("python-flake8" ,python-flake8)
+ ("python-pyqt-builder" ,python-pyqt-builder)
("xdg-utils" ,xdg-utils)))
(inputs
- `(("chmlib" ,chmlib)
- ("fontconfig" ,fontconfig)
+ `(("fontconfig" ,fontconfig)
("font-liberation" ,font-liberation)
("glib" ,glib)
("hunspell" ,hunspell)
("hyphen" ,hyphen)
("icu4c" ,icu4c)
- ("js-mathjax" ,js-mathjax)
("libmtp" ,libmtp)
("libpng" ,libpng)
("libusb" ,libusb)
@@ -163,39 +166,41 @@
("optipng" ,optipng)
("podofo" ,podofo)
("poppler" ,poppler)
- ("python" ,python-2)
- ("python2-apsw" ,python2-apsw)
- ("python2-beautifulsoup4" ,python2-beautifulsoup4)
- ("python2-chardet" ,python2-chardet)
- ("python2-cssselect" ,python2-cssselect)
- ("python2-css-parser" ,python2-css-parser)
- ("python2-dateutil" ,python2-dateutil)
- ("python2-dbus" ,python2-dbus)
- ("python2-dnspython" ,python2-dnspython-1.16)
- ("python2-dukpy" ,python2-dukpy)
- ("python2-feedparser" ,python2-feedparser)
- ("python2-html2text" ,python2-html2text)
- ("python2-html5-parser" ,python2-html5-parser)
- ("python2-html5lib" ,python2-html5lib)
- ("python2-lxml" ,python2-lxml)
- ("python2-markdown" ,python2-markdown)
- ("python2-mechanize" ,python2-mechanize)
- ;; python2-msgpack is needed for the network content server to work.
- ("python2-msgpack" ,python2-msgpack)
- ("python2-netifaces" ,python2-netifaces)
- ("python2-odfpy" ,python2-odfpy)
- ("python2-pillow" ,python2-pillow)
- ("python2-psutil" ,python2-psutil)
- ("python2-pygments" ,python2-pygments)
- ("python2-pyqtwebengine" ,python2-pyqtwebengine)
- ("python2-pyqt" ,python2-pyqt)
- ("python2-sip" ,python2-sip)
- ("python2-regex" ,python2-regex)
+ ("python-apsw" ,python-apsw)
+ ("python-beautifulsoup4" ,python-beautifulsoup4)
+ ("python-cchardet" ,python-cchardet)
+ ("python-css-parser" ,python-css-parser)
+ ("python-cssselect" ,python-cssselect)
+ ("python-dateutil" ,python-dateutil)
+ ("python-dbus" ,python-dbus)
+ ("python-dnspython" ,python-dnspython-1.16)
+ ("python-dukpy" ,python-dukpy)
+ ("python-feedparser" ,python-feedparser)
+ ("python-html2text" ,python-html2text)
+ ("python-html5-parser" ,python-html5-parser)
+ ("python-html5lib" ,python-html5lib)
+ ("python-lxml" ,python-lxml)
+ ("python-markdown" ,python-markdown)
+ ("python-mechanize" ,python-mechanize)
+ ;; python-msgpack is needed for the network content server to work.
+ ("python-msgpack" ,python-msgpack)
+ ("python-netifaces" ,python-netifaces)
+ ("python-odfpy" ,python-odfpy)
+ ("python-pillow" ,python-pillow)
+ ("python-psutil" ,python-psutil)
+ ("python-py7zr" ,python-py7zr)
+ ("python-pychm" ,python-pychm)
+ ("python-pycryptodome" ,python-pycryptodome)
+ ("python-pygments" ,python-pygments)
+ ("python-pyqt" ,python-pyqt)
+ ("python-pyqtwebengine" ,python-pyqtwebengine)
+ ("python-regex" ,python-regex)
+ ("python-speechd" ,speech-dispatcher)
+ ("python-zeroconf" ,python-zeroconf)
("qtwebengine" ,qtwebengine)
("sqlite" ,sqlite)))
(arguments
- `(#:python ,python-2
- ;; Calibre is using setuptools by itself, but the setup.py is not
+ `(;; Calibre is using setuptools by itself, but the setup.py is not
;; compatible with the shim wrapper (taken from pip) we are using.
#:use-setuptools? #f
#:phases
@@ -227,13 +232,16 @@
(add-before 'build 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((podofo (assoc-ref inputs "podofo"))
- (pyqt (assoc-ref inputs "python2-pyqt"))
- (python-sip (assoc-ref inputs "python2-sip"))
+ (pyqt (assoc-ref inputs "python-pyqt"))
+ (python-sip (assoc-ref inputs "python-sip"))
(out (assoc-ref outputs "out")))
- (substitute* "setup/build_environment.py"
- (("= get_sip_dir\\(\\)")
- (string-append "= '" pyqt "/share/sip'")))
-
+ (substitute* "setup/build.py"
+ (("\\[tool.sip.bindings.pictureflow\\]")
+ "[tool.sip.bindings.pictureflow]
+tags = [\"WS_X11\"]")
+ (("\\[tool.sip.project\\]")
+ (string-append "[tool.sip.project]
+sip-include-dirs = [\"" pyqt "/share/sip" "\"]")))
(substitute* "src/calibre/ebooks/pdf/pdftohtml.py"
(("PDFTOHTML = 'pdftohtml'")
(string-append "PDFTOHTML = \"" (assoc-ref inputs "poppler")
@@ -257,7 +265,6 @@
"/share/fonts")
"/tmp/.fonts")
- (setenv "SIP_BIN" (string-append python-sip "/bin/sip"))
(setenv "PODOFO_INC_DIR" (string-append podofo "/include/podofo"))
(setenv "PODOFO_LIB_DIR" (string-append podofo "/lib"))
;; This informs the tests we are a continuous integration
@@ -270,11 +277,7 @@
#t)))
(add-after 'build 'build-extra
(lambda* (#:key inputs #:allow-other-keys)
- (invoke "python2" "setup.py" "mathjax""--system-mathjax"
- "--path-to-mathjax" (string-append
- (assoc-ref inputs "js-mathjax")
- "/share/javascript/mathjax"))
- (invoke "python2" "setup.py" "rapydscript")
+ (invoke "python" "setup.py" "rapydscript")
#t))
(add-after 'install 'install-man-pages
(lambda* (#:key outputs #:allow-other-keys)
diff --git a/gnu/packages/patches/calibre-no-updates-dialog.patch b/gnu/packages/patches/calibre-no-updates-dialog.patch
index 1d8d79660e..66ac913cb5 100644
--- a/gnu/packages/patches/calibre-no-updates-dialog.patch
+++ b/gnu/packages/patches/calibre-no-updates-dialog.patch
@@ -1,11 +1,17 @@
-Taken from debian.
+From 19e8d7701c302b0eca4c638705a6db625352caa3 Mon Sep 17 00:00:00 2001
+From: Brendan Tildesley <mail@brendan.scot>
+Date: Thu, 25 Feb 2021 12:17:30 +1100
+Subject: [PATCH] Don't check for updates.
-# Description: Disable update check by default.
-Index: calibre/src/calibre/gui2/main.py
-===================================================================
---- calibre.orig/src/calibre/gui2/main.py 2014-02-02 10:41:28.470954623 +0100
-+++ calibre/src/calibre/gui2/main.py 2014-02-02 10:41:56.546954247 +0100
-@@ -37,8 +37,8 @@
+---
+ src/calibre/gui2/main.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/calibre/gui2/main.py b/src/calibre/gui2/main.py
+index 776f8bebfb..4302716d7e 100644
+--- a/src/calibre/gui2/main.py
++++ b/src/calibre/gui2/main.py
+@@ -59,8 +59,8 @@ def option_parser():
help=_('Start minimized to system tray.'))
parser.add_option('-v', '--verbose', default=0, action='count',
help=_('Ignored, do not use. Present only for legacy reasons'))
@@ -16,3 +22,5 @@ Index: calibre/src/calibre/gui2/main.py
parser.add_option('--ignore-plugins', default=False, action='store_true',
help=_('Ignore custom plugins, useful if you installed a plugin'
' that is preventing calibre from starting'))
+--
+2.30.1
diff --git a/gnu/packages/patches/calibre-remove-test-sqlite.patch b/gnu/packages/patches/calibre-remove-test-sqlite.patch
index 7bdd90874d..fc2b237ef2 100644
--- a/gnu/packages/patches/calibre-remove-test-sqlite.patch
+++ b/gnu/packages/patches/calibre-remove-test-sqlite.patch
@@ -1,20 +1,20 @@
-From a92e26359bd07743ab105819ed0b619e27e14017 Mon Sep 17 00:00:00 2001
+From d8225e83c3b73f0e0da73874910f50ca652f48cf Mon Sep 17 00:00:00 2001
From: Brendan Tildesley <mail@brendan.scot>
-Date: Sat, 27 Apr 2019 03:30:53 +1000
-Subject: [PATCH] Disable test_sqlite.
+Date: Thu, 25 Feb 2021 00:48:00 +1100
+Subject: [PATCH] Remove test_sqlite
---
src/calibre/test_build.py | 6 ------
1 file changed, 6 deletions(-)
diff --git a/src/calibre/test_build.py b/src/calibre/test_build.py
-index 07bdffd3e5..740588c95b 100644
+index 0ab7aa0646..87fdfabd9a 100644
--- a/src/calibre/test_build.py
+++ b/src/calibre/test_build.py
-@@ -162,12 +162,6 @@ class BuildTest(unittest.TestCase):
- au(x, 'strftime')
- self.assertEqual(unicode_type(time.strftime(fmt.replace('%e', '%#d'), t)), x)
-
+@@ -273,12 +273,6 @@ def read_changes():
+ m.close()
+ self.assertEqual(winutil.parse_cmdline('"c:\\test exe.exe" "some arg" 2'), ('c:\\test exe.exe', 'some arg', '2'))
+
- def test_sqlite(self):
- import sqlite3
- conn = sqlite3.connect(':memory:')
@@ -24,6 +24,5 @@ index 07bdffd3e5..740588c95b 100644
def test_apsw(self):
import apsw
conn = apsw.Connection(':memory:')
---
-2.21.0
-
+--
+2.30.1
diff --git a/gnu/packages/patches/calibre-remove-test-unrar.patch b/gnu/packages/patches/calibre-remove-test-unrar.patch
index 4e5572d1a6..961cc3eba7 100644
--- a/gnu/packages/patches/calibre-remove-test-unrar.patch
+++ b/gnu/packages/patches/calibre-remove-test-unrar.patch
@@ -1,28 +1,26 @@
-Unrar contains security vulnerabilities and has thus been removed from Guix.
-From a16f97b02bd8afd0ec05c471e156f631f2cc6eec Mon Sep 17 00:00:00 2001
+From 9edf67191cc3655480b6fd418247709ade930b1a Mon Sep 17 00:00:00 2001
From: Brendan Tildesley <mail@brendan.scot>
-Date: Tue, 26 Mar 2019 22:17:03 +1100
-Subject: [PATCH] Remove test_unrar.
+Date: Thu, 25 Feb 2021 00:33:10 +1100
+Subject: [PATCH] Remove test_unrar
---
src/calibre/test_build.py | 4 ----
1 file changed, 4 deletions(-)
diff --git a/src/calibre/test_build.py b/src/calibre/test_build.py
-index d67afd20a6..709132ef17 100644
+index b37fb1bcfb..0ab7aa0646 100644
--- a/src/calibre/test_build.py
+++ b/src/calibre/test_build.py
-@@ -220,10 +220,6 @@ class BuildTest(unittest.TestCase):
+@@ -369,10 +369,6 @@ def test_file_dialog_helper(self):
from calibre.gui2.win_file_dialogs import test
test()
-
+
- def test_unrar(self):
- from calibre.utils.unrar import test_basic
- test_basic()
-
- @unittest.skipUnless(iswindows, 'WPD is windows only')
- def test_wpd(self):
- wpd = plugins['wpd'][0]
---
-2.21.0
-
+ def test_7z(self):
+ from calibre.utils.seven_zip import test_basic
+ test_basic()
+--
+2.30.1
--
2.30.1
B
B
Brendan Tildesley wrote on 10 Mar 2021 10:00
[PATCH 25/27] gnu: calibre: Add qtsvg as input.
(address . 42885@debbugs.gnu.org)
20210310090053.21612-25-mail@brendan.scot
* gnu/packages/ebook.scm (calibre):[inputs]: Add qtsvg as an input.

This fixes part of the broken qt test, but not all. It still fails
printing to pdf.
---
gnu/packages/ebook.scm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

Toggle diff (26 lines)
diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm
index be367a5245..25a31c9a65 100644
--- a/gnu/packages/ebook.scm
+++ b/gnu/packages/ebook.scm
@@ -199,6 +199,7 @@
("python-regex" ,python-regex)
("python-speechd" ,speech-dispatcher)
("python-zeroconf" ,python-zeroconf)
+ ("qtsvg" ,qtsvg)
("qtwebengine" ,qtwebengine)
("sqlite" ,sqlite)))
(arguments
@@ -277,9 +278,8 @@ sip-include-dirs = [\"" pyqt "/share/sip" "\"]")))
;; This informs the tests we are a continuous integration
;; environment and thus have no networking.
(setenv "CI" "true")
- ;; The Qt test complains about being unable to load all image plugins, and I
- ;; notice the available plugins list it shows lacks 'svg'. Adding qtsvg doesn't
- ;; fix it, so I'm not sure how to fix it. TODO: Fix test and remove this.
+ ;; The Qt test fails at printing to pdf:
+ ;; AssertionError: b'Skia/PDF' not found in b'' : Print to PDF failed
(setenv "SKIP_QT_BUILD_TEST" "true")
#t)))
(add-after 'build 'build-extra
--
2.30.1
B
B
Brendan Tildesley wrote on 10 Mar 2021 10:00
[PATCH 26/27] gnu: Remove python2-pyqtwebengine.
(address . 42885@debbugs.gnu.org)
20210310090053.21612-26-mail@brendan.scot
* gnu/packages/qt.scm (python2-pyqtwebengine): Delete unused variable.
---
gnu/packages/qt.scm | 19 -------------------
1 file changed, 19 deletions(-)

Toggle diff (32 lines)
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index b615a74755..ad779940e9 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -2289,25 +2289,6 @@ itself.")
("python2-enum34" ,python2-enum34)
,@(alist-delete "python" (package-inputs python-pyqt))))))
-(define-public python2-pyqtwebengine
- (package/inherit
- python-pyqtwebengine
- (name "python2-pyqtwebengine")
- (native-inputs
- `(("python" ,python-2)
- ("python-sip" ,python2-sip)
- ;; qtbase is required for qmake
- ("qtbase" ,qtbase)))
- (inputs
- `(("python" ,python-2)
- ("python-sip" ,python2-sip)
- ("python-pyqt" ,python2-pyqt)
- ("qtbase" ,qtbase)
- ("qtsvg" ,qtsvg)
- ("qtdeclarative" ,qtdeclarative)
- ("qtwebchannel" ,qtwebchannel)
- ("qtwebengine" ,qtwebengine)))))
-
(define-public python2-pyqt-4
(package (inherit python-pyqt)
(name "python2-pyqt")
--
2.30.1
B
B
Brendan Tildesley wrote on 10 Mar 2021 10:00
[PATCH 27/27] gnu: Remove python2-pyqt.
(address . 42885@debbugs.gnu.org)
20210310090053.21612-27-mail@brendan.scot
* gnu/packages/qt.scm (python2-pyqt): Delete unused variable.
---
gnu/packages/qt.scm | 14 --------------
1 file changed, 14 deletions(-)

Toggle diff (27 lines)
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index ad779940e9..872cb40305 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -2275,20 +2275,6 @@ itself.")
(inputs
(alist-delete "qtwebkit" (package-inputs python-pyqt)))))
-(define-public python2-pyqt
- (package (inherit python-pyqt)
- (name "python2-pyqt")
- (propagated-inputs
- `(("python-enum34" ,python2-enum34)
- ("python-sip" ,python2-sip)))
- (native-inputs
- `(("python-sip" ,python2-sip)
- ("qtbase" ,qtbase)))
- (inputs
- `(("python" ,python-2)
- ("python2-enum34" ,python2-enum34)
- ,@(alist-delete "python" (package-inputs python-pyqt))))))
-
(define-public python2-pyqt-4
(package (inherit python-pyqt)
(name "python2-pyqt")
--
2.30.1
B
B
Brendan Tildesley wrote on 21 Mar 2021 08:00
[PATCHES] 2 more fixes.
(name . 42885@debbugs.gnu.org)(address . 42885@debbugs.gnu.org)
2053979569.43243.1616310015760@office.mailbox.org
These two patches go after the last 27 patches, fixing up some mistakes I made earlier.
Attachment: file
From a222592c08909b67ff2334f617a7b273cc5ab082 Mon Sep 17 00:00:00 2001
From: Brendan Tildesley <mail@brendan.scot>
Date: Sat, 20 Mar 2021 21:28:22 +1100
Subject: [PATCH 1/2] gnu: calibre: Don't install junk temporary files.

* gnu/packages/ebook.scm (calibre):
[arguments]: Unset XDG_DATA_HOME just for installing rapydscript so that
Qtwebengine temporary files aren't put in /share/. Moving the phase
until after the install phase prevents breaking .desktop file installation.
---
gnu/packages/ebook.scm | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

Toggle diff (18 lines)
diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm
index 25a31c9a65..b55af5c865 100644
--- a/gnu/packages/ebook.scm
+++ b/gnu/packages/ebook.scm
@@ -282,8 +282,10 @@ sip-include-dirs = [\"" pyqt "/share/sip" "\"]")))
;; AssertionError: b'Skia/PDF' not found in b'' : Print to PDF failed
(setenv "SKIP_QT_BUILD_TEST" "true")
#t)))
- (add-after 'build 'build-extra
+ (add-after 'install 'install-rapydscript
(lambda* (#:key inputs #:allow-other-keys)
+ ;; Unset so QtWebengine doesn't dump temporary files here.
+ (unsetenv "XDG_DATA_HOME")
(invoke "python" "setup.py" "rapydscript")
#t))
(add-after 'install 'install-man-pages
--
2.30.2
From f8fe46256cbfe211b1bbbb624651cfc5b261ee32 Mon Sep 17 00:00:00 2001
From: Brendan Tildesley <mail@brendan.scot>
Date: Sun, 21 Mar 2021 17:18:13 +1100
Subject: [PATCH 2/2] gnu: calibre: Don't delete needed files.

* gnu/packages/ebook.scm (calibre)[snippet]: Don't delete viewer.js
since it's actually used by the html reader.
---
gnu/packages/ebook.scm | 2 --
1 file changed, 2 deletions(-)

Toggle diff (15 lines)
diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm
index b55af5c865..6fb525a2c2 100644
--- a/gnu/packages/ebook.scm
+++ b/gnu/packages/ebook.scm
@@ -136,8 +136,6 @@
""))
;; Remove unneeded resources.
- (delete-file "resources/viewer.js")
- (delete-file "resources/viewer.html")
(delete-file "resources/mozilla-ca-certs.pem")
(delete-file "resources/calibre-portable.bat")
(delete-file "resources/calibre-portable.sh")
--
2.30.2
L
L
Leo Famulari wrote on 23 Mar 2021 19:25
Re: [bug#42885] [PATCH 23/27] gnu: calibre: Update to 5.13.0.
(name . Brendan Tildesley)(address . mail@brendan.scot)(address . 42885@debbugs.gnu.org)
YFoygJeaOkQ7D/tm@jasmine.lan
On Wed, Mar 10, 2021 at 08:00:49PM +1100, Brendan Tildesley wrote:
Toggle quote (4 lines)
> * gnu/packages/ebook.scm (calibre): Update to 5.13.0.
>
> Switch all Python 2 inputs to their Python 3 equivalents.

Thanks a lot for working on this! I'm going to start reviewing / pushing
patches today.
L
L
Leo Famulari wrote on 23 Mar 2021 19:36
(name . Brendan Tildesley)(address . mail@brendan.scot)(address . 42885@debbugs.gnu.org)
YFo1JVG6gvYLz3Bh@jasmine.lan
On Wed, Mar 10, 2021 at 08:00:49PM +1100, Brendan Tildesley wrote:
Toggle quote (4 lines)
> * gnu/packages/ebook.scm (calibre): Update to 5.13.0.
>
> Switch all Python 2 inputs to their Python 3 equivalents.

Alright, the patches are aleady stale, even at patch 2 of 27.

To make this easier, can you either put this work online in a Git repo
somewhere? It's easier to clone a repo with a custom branch to rebase
the patches.

Alternatively, can you say which older Guix Git commit these patches
apply to?

Thansk!
B
B
Brendan Tildesley wrote on 24 Mar 2021 03:13
(name . Leo Famulari)(address . leo@famulari.name)(address . 42885@debbugs.gnu.org)
1277129883.83284.1616552006895@office.mailbox.org
Toggle quote (19 lines)
> On 03/23/2021 7:36 PM Leo Famulari <leo@famulari.name> wrote:
>
>
> On Wed, Mar 10, 2021 at 08:00:49PM +1100, Brendan Tildesley wrote:
> > * gnu/packages/ebook.scm (calibre): Update to 5.13.0.
> >
> > Switch all Python 2 inputs to their Python 3 equivalents.
>
> Alright, the patches are aleady stale, even at patch 2 of 27.
>
> To make this easier, can you either put this work online in a Git repo
> somewhere? It's easier to clone a repo with a custom branch to rebase
> the patches.
>
> Alternatively, can you say which older Guix Git commit these patches
> apply to?
>
> Thansk!


I fixed the conflict updated to latest master here.
Also, a minor change, I oved the
"gnu: veusz: Fix build"
until after
"gnu: python-pyqt: Fix build for new python-sip."
since it doesn't actually work until that ones applied.
L
L
Leo Famulari wrote on 29 Mar 2021 22:12
(name . Brendan Tildesley)(address . mail@brendan.scot)(address . 42885@debbugs.gnu.org)
YGI0tb5l7DqDl2ml@jasmine.lan
On Wed, Mar 24, 2021 at 03:13:26AM +0100, Brendan Tildesley wrote:
Toggle quote (9 lines)
>
> I fixed the conflict updated to latest master here.
> Also, a minor change, I oved the
> "gnu: veusz: Fix build"
> until after
> "gnu: python-pyqt: Fix build for new python-sip."
> since it doesn't actually work until that ones applied.

Thanks for the updated branch! I'm going through the patches now.
L
L
Leo Famulari wrote on 30 Mar 2021 01:05
(name . Brendan Tildesley)(address . mail@brendan.scot)(address . 42885@debbugs.gnu.org)
YGJdP8INiWzzMSeU@jasmine.lan
On Wed, Mar 24, 2021 at 03:13:26AM +0100, Brendan Tildesley wrote:
Toggle quote (2 lines)
Can you clarify some things about the commit "gnu: python-pyqt: Fix
build for new python-sip"? First, python-pyqt before applying this
commit; if it's broken, can you say how?

Also, there is a comment "Linking here means the sip module can be found
without python-pyqt5-sip needing to be added as an input". But,
python-pyqt5-sip is an input to this package. Can you explain what you
mean?

I think we should drop the commit "gnu: calibre: Add qtsvg as input.",
since it adds a dependency but for what seems to be no reason. What do
you think?

Based on your branch, I've made the following changes and pushed the
branch at

Can you take a look and tell me what you think?

I squashed the first two commits, so that there is no commit where
python2-sip fails to build. It's not always easy to avoid intermediate
breakage in complicated package upgrades like this, but it's worth
trying. At least, it can improve the utility of `git bisect`.

I also squashed the "fix veusz" commit into that one, for the same
reason. And all the rest of the commits that are adjusting to that
change.

For the "Fix build for new python-sip" commit, I removed the hardcoding
of "python3.8" in the 'pyqt5-sip' phase, and instead used the
python-version procedure.

I squashed the remaining cleanup-type commits into the Calibre update.

I pushed the commit 'gnu: python-poppler-qt5: Update to 21.1.0.' as
02f664a0a3dd3a936213e687802bdc62f2a10983

I corrected the license of python-pychm from gpl3 to gpl2+.

I made many other changes to satisfy `guix lint`, and improved synopses
and descriptions.
B
B
Brendan Tildesley wrote on 30 Mar 2021 08:23
(address . 42885@debbugs.gnu.org)(name . Leo Famulari)(address . leo@famulari.name)
327102377.27084.1617085423564@office.mailbox.org
Toggle quote (10 lines)
> On 03/30/2021 1:05 AM Leo Famulari <leo@famulari.name> wrote:
>
>
> On Wed, Mar 24, 2021 at 03:13:26AM +0100, Brendan Tildesley wrote:
> > https://notabug.org/Brendan/guix/src/calibre-5.13.0
>
> Can you clarify some things about the commit "gnu: python-pyqt: Fix
> build for new python-sip"? First, python-pyqt before applying this
> commit; if it's broken, can you say how?

Me adding python-pyqt-builder here looks like a mistake. I left it
there while experimenting. When I was Upgrading SIP, I experimented
with switching to the new 'sip-build' tool introduced in SIP 5. SIP
6's main change is to delete obsoleted code, so the old 'python
configure.py' won't work. I never got it working so I just went back
to the old way with SIP 5. python-pyqt-builder is still needed by
Calibre however.

The only other functional change in this patch is to remove the patch
pyqt-public-sip.patch. The introduction of python-pyqt5-sip as a
separate module means means that with this patch, the module is not
found at all. Removing it fixes it. I don't understand it in any great
depth but it seems the patch may only really relevant to SIP 4.

Toggle quote (5 lines)
> Also, there is a comment "Linking here means the sip module can be found
> without python-pyqt5-sip needing to be added as an input". But,
> python-pyqt5-sip is an input to this package. Can you explain what you
> mean?

Upstream for whatever reason chose to move the sip module part out in
to a separate source package python-pyqt5-sip. It's broken without
removing the pyqt-public-sip.

The linking can be removed, but it would mean for every input that
requires python-pyqt5 as an input, you also need to add
python-pyqt5-sip so the sip module can be found. On a distribution
with a traditional filesystem layout, that would not be necessary, you
just have the -sip module as a dependency to pyqt5 and its then its
available at a global path to be found. On Nix/Guix that doesn't work
so it has to be added every time, or linked in like this. Actually I'm
not sure if there is ever any case where one /doesn't/ need the sip
modules, but they're only 200KiB. The Nix developers chose to just
link it like this so I copied their way. Do you think it's fine?

Toggle quote (4 lines)
> I think we should drop the commit "gnu: calibre: Add qtsvg as input.",
> since it adds a dependency but for what seems to be no reason. What do
> you think?

The reason I added qtsvg was to try fix the Qt test. If you remove the
line (setenv "SKIP_QT_BUILD_TEST" "true"), this test fails for
multiple reasons. One of them was qtsvg missing. Another was the
get_exe_path bit. But a third reason I that its call to printtopdf in
pyqtwebegine returns an empty string instaed of b'Skia/PDF'. I had no
idea how to proceed with fixing that so I left it for now. But at
least fixed the other errors. I assume some SVG related functionality
will fail without it...

Toggle quote (29 lines)
> Based on your branch, I've made the following changes and pushed the
> branch at
> <https://git.savannah.gnu.org/cgit/guix.git/log/?h=wip-update-calibre>.
>
> Can you take a look and tell me what you think?
>
> I squashed the first two commits, so that there is no commit where
> python2-sip fails to build. It's not always easy to avoid intermediate
> breakage in complicated package upgrades like this, but it's worth
> trying. At least, it can improve the utility of `git bisect`.
>
> I also squashed the "fix veusz" commit into that one, for the same
> reason. And all the rest of the commits that are adjusting to that
> change.
>
> For the "Fix build for new python-sip" commit, I removed the hardcoding
> of "python3.8" in the 'pyqt5-sip' phase, and instead used the
> python-version procedure.
>
> I squashed the remaining cleanup-type commits into the Calibre update.
>
> I pushed the commit 'gnu: python-poppler-qt5: Update to 21.1.0.' as
> 02f664a0a3dd3a936213e687802bdc62f2a10983
>
> I corrected the license of python-pychm from gpl3 to gpl2+.
>
> I made many other changes to satisfy `guix lint`, and improved synopses
> and descriptions.

All good I think. My descriptions were much worse than I realised.

python-cchardet differs from in python-chardet in that its not written
/in/ python, but links to a fast C library to do it, but your
description/synopsis changes make it look like its all in
Python. Maybe make the description:
"cChardet is a character encoding detector, binding to the C
library uchardet for speed." ?

I fixed another one of my typos 'statical' -> 'statistical', and
removed the python-pyqt-builder input from python-pyqt

B
L
L
Leo Famulari wrote on 4 Apr 2021 19:46
(name . Brendan Tildesley)(address . mail@brendan.scot)(address . 42885@debbugs.gnu.org)
YGn7eAZB5X29gNuJ@jasmine.lan
On Tue, Mar 30, 2021 at 12:45:18PM +0200, Brendan Tildesley wrote:
Toggle quote (4 lines)
> Just updated for Calibre 5.14.0 released 4 days ago also.
>
> https://notabug.org/Brendan/guix/src/wip-update-calibre

Thanks! I will review these today or tomorrow.
L
L
Leo Famulari wrote on 5 Apr 2021 21:58
(name . Brendan Tildesley)(address . mail@brendan.scot)(address . 42885@debbugs.gnu.org)
YGtr1LkXnJhQxxOV@jasmine.lan
On Tue, Mar 30, 2021 at 08:23:43AM +0200, Brendan Tildesley wrote:
Toggle quote (14 lines)
> Me adding python-pyqt-builder here looks like a mistake. I left it
> there while experimenting. When I was Upgrading SIP, I experimented
> with switching to the new 'sip-build' tool introduced in SIP 5. SIP
> 6's main change is to delete obsoleted code, so the old 'python
> configure.py' won't work. I never got it working so I just went back
> to the old way with SIP 5. python-pyqt-builder is still needed by
> Calibre however.
>
> The only other functional change in this patch is to remove the patch
> pyqt-public-sip.patch. The introduction of python-pyqt5-sip as a
> separate module means means that with this patch, the module is not
> found at all. Removing it fixes it. I don't understand it in any great
> depth but it seems the patch may only really relevant to SIP 4.

Okay. I adjusted the commit message to match your revision.

Toggle quote (14 lines)
> > On 03/30/2021 1:05 AM Leo Famulari <leo@famulari.name> wrote:
> > Also, there is a comment "Linking here means the sip module can be found
> > without python-pyqt5-sip needing to be added as an input". But,
> > python-pyqt5-sip is an input to this package. Can you explain what you
> > mean?
>
> Upstream for whatever reason chose to move the sip module part out in
> to a separate source package python-pyqt5-sip. It's broken without
> removing the pyqt-public-sip.
>
> The linking can be removed, but it would mean for every input that
> requires python-pyqt5 as an input, you also need to add
> python-pyqt5-sip so the sip module can be found.

If I understand correctly, the issue that any package that uses
python-pyqt5 also needs to be able to find python-pyqt5-sip. Is that
right?

If so, it sounds like a case for propagated-inputs [0]. Concretely, I made
python-pyqt5-sip a propagated-input of python-pyqt and removed the
'pyqt5-sip' phase, and Calibre built successfully.

Does that seem like the right approach?

Toggle quote (9 lines)
> The reason I added qtsvg was to try fix the Qt test. If you remove the
> line (setenv "SKIP_QT_BUILD_TEST" "true"), this test fails for
> multiple reasons. One of them was qtsvg missing. Another was the
> get_exe_path bit. But a third reason I that its call to printtopdf in
> pyqtwebegine returns an empty string instaed of b'Skia/PDF'. I had no
> idea how to proceed with fixing that so I left it for now. But at
> least fixed the other errors. I assume some SVG related functionality
> will fail without it...

That's a good point. However, I checked if the built Calibre refers to
qtsvg, and it doesn't [1]. So, it's unlikely that Calibre will be able to
find and use qtsvg, regardless of whether or not it's an input. So, I'd
prefer to leave it out until we understand what it's for and how to make
sure that Calibre can use it.

Toggle quote (2 lines)
> All good I think. My descriptions were much worse than I realised.

No worries. Writing the synopses and descriptions is a completely
different type of work from packaging or programming. I often "finish"
some packages, but need to go back later to write the descriptions. I'm
happy to finish these tasks as part of the code review process.

Toggle quote (8 lines)
> python-cchardet differs from in python-chardet in that its not written
> /in/ python, but links to a fast C library to do it, but your
> description/synopsis changes make it look like its all in
> Python. Maybe make the description:
>
> "cChardet is a character encoding detector, binding to the C
> library uchardet for speed." ?

Thanks, that helps. I amended the synopses and description based on
this.

I pushed my revisions of your updated branch, rebased on the current
master branch, to Savannah:


[0]

[1] This command be used:
$ guix gc --references $(./pre-inst-env guix build --no-grafts calibre) | grep qtsvg
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEsFFZSPHn08G5gDigJkb6MLrKfwgFAmBra9QACgkQJkb6MLrK
fwh9+xAAgEDFUZnBWEg7n+lYBeIijPpKK43oDb0wqk2tg1lmovUkYXEKNTM5terE
dg1ZnbS+vPSgiHjAFxOi3wc4fmMxjQvJrNcnESbyVhtHz1g30QnOF7nhN2x+22Zp
YTZEbPZHTZnnGwhZ/ZBX+hSThf7czLzMara4I/LBVcNZuPOTLdVFYXoQlnc4nMuF
bK4NHIAho9LcjVvC4rBa1dL+paAKCBVLen0azdSUnKSNQEeH5cwlVhB/huTo8xV6
qnmRoXF/MesrZYxGSZgG5tdZy8OpDrYGx5uTwFgePPxRXpZlmtSmBBdJWytyleHf
jUr/DD4bSLEp1ymc35GKLU45/eY5e4M3hxwfm7dhvvqq00Jq+xqtyX20dS+tgoQg
aeDA7QNaPH7mt9U4pjbpxY4ViDOE72MTE55s4G15cglmxDI2aKzww5YWEwSfOwti
+uC/E/82Rj3E6LPeJOhA3kLgi9nf/7nz/PmF50e4NfnQIGCbDlHyJMFx5F0zGo0d
Li4YefIYxr68xPyH6PyziVB/VlRP3HxjFBh0o3ogqvwJkd0jKNQqMLOdb5ZNQrAj
uB0i7TsYgWYn73YBDeEBncAsLB36vUBp4PBJVJNVnCsGeHM9slL3bfvYns6VszTL
s/eSkoczMuf9WT/9MbEy26kTJ/5JNvpIcX6YLOSjL/139LmQKc8=
=mCQM
-----END PGP SIGNATURE-----


B
B
Brendan Tildesley wrote on 6 Apr 2021 03:30
(name . Leo Famulari)(address . leo@famulari.name)(address . 42885@debbugs.gnu.org)
1191049121.29289.1617672608111@office.mailbox.org
Toggle quote (2 lines)
> On 04/05/2021 9:58 PM Leo Famulari <leo@famulari.name> wrote:

[...]

Toggle quote (11 lines)
> If I understand correctly, the issue that any package that uses
> python-pyqt5 also needs to be able to find python-pyqt5-sip. Is that
> right?
>
> If so, it sounds like a case for propagated-inputs [0]. Concretely, I made
> python-pyqt5-sip a propagated-input of python-pyqt and removed the
> 'pyqt5-sip' phase, and Calibre built successfully.
>
> Does that seem like the right approach?
>

Sounds good. I didn't realise propagated-inputs did that, I thought they were
just normal inputs that were installed along side the package in a profile,
but wouldn't make a difference during build time.
Does this mean all packages that depend on python-pyqt5 will have python-pyqt5-sip
added to its own list of inputs in their own package definition? If so
the manual doesn't mention that.

Toggle quote (15 lines)
> > The reason I added qtsvg was to try fix the Qt test. If you remove the
> > line (setenv "SKIP_QT_BUILD_TEST" "true"), this test fails for
> > multiple reasons. One of them was qtsvg missing. Another was the
> > get_exe_path bit. But a third reason I that its call to printtopdf in
> > pyqtwebegine returns an empty string instaed of b'Skia/PDF'. I had no
> > idea how to proceed with fixing that so I left it for now. But at
> > least fixed the other errors. I assume some SVG related functionality
> > will fail without it...
>
> That's a good point. However, I checked if the built Calibre refers to
> qtsvg, and it doesn't [1]. So, it's unlikely that Calibre will be able to
> find and use qtsvg, regardless of whether or not it's an input. So, I'd
> prefer to leave it out until we understand what it's for and how to make
> sure that Calibre can use it.

I see, that's a good trick for checking references.. Leave svg out for now then.

Toggle quote (8 lines)
>
> > All good I think. My descriptions were much worse than I realised.
>
> No worries. Writing the synopses and descriptions is a completely
> different type of work from packaging or programming. I often "finish"
> some packages, but need to go back later to write the descriptions. I'm
> happy to finish these tasks as part of the code review process.
>
I find writing them the most stressful part because I sit there not knowing
what to write.

Toggle quote (21 lines)
> > python-cchardet differs from in python-chardet in that its not written
> > /in/ python, but links to a fast C library to do it, but your
> > description/synopsis changes make it look like its all in
> > Python. Maybe make the description:
> >
> > "cChardet is a character encoding detector, binding to the C
> > library uchardet for speed." ?
>
> Thanks, that helps. I amended the synopses and description based on
> this.
>
> I pushed my revisions of your updated branch, rebased on the current
> master branch, to Savannah:
>
> https://git.savannah.gnu.org/cgit/guix.git/log/?h=wip-update-calibre
>
> [0]
> https://guix.gnu.org/manual/en/html_node/package-Reference.html
>
> [1] This command be used:
> $ guix gc --references $(./pre-inst-env guix build --no-grafts calibre) | grep qtsvg
L
L
Leo Famulari wrote on 6 Apr 2021 19:11
(name . Brendan Tildesley)(address . mail@brendan.scot)(address . 42885@debbugs.gnu.org)
YGyWT1B5kCLAzfDC@jasmine.lan
On Tue, Apr 06, 2021 at 03:30:08AM +0200, Brendan Tildesley wrote:
Toggle quote (7 lines)
> Sounds good. I didn't realise propagated-inputs did that, I thought they were
> just normal inputs that were installed along side the package in a profile,
> but wouldn't make a difference during build time.
> Does this mean all packages that depend on python-pyqt5 will have python-pyqt5-sip
> added to its own list of inputs in their own package definition? If so
> the manual doesn't mention that.

That's the idea: they are run-time dependencies of a package that lacks
the ability for recording references to its dependencies. We have to
help the package with our packaging tools.

In general, all Python packages in Guix use this mechanism.

Just to clarify, does Calibre work on your end with my latest Savannah
branch? I built it on CI, so you can get substitutes for it on x86_64.

The basics work for me: library management, conversion, etc.

I think we're almost done!

Toggle quote (3 lines)
> I find writing them the most stressful part because I sit there not knowing
> what to write.

Don't hesitate to send in your patches with a note like, "I didn't know
what to put here".
B
B
Brendan Tildesley wrote on 7 Apr 2021 05:57
(name . Leo Famulari)(address . leo@famulari.name)(address . 42885@debbugs.gnu.org)
1081792369.42570.1617767823200@office.mailbox.org
Toggle quote (21 lines)
> On 04/06/2021 7:11 PM Leo Famulari <leo@famulari.name> wrote:
>
>
> On Tue, Apr 06, 2021 at 03:30:08AM +0200, Brendan Tildesley wrote:
> > Sounds good. I didn't realise propagated-inputs did that, I thought they were
> > just normal inputs that were installed along side the package in a profile,
> > but wouldn't make a difference during build time.
> > Does this mean all packages that depend on python-pyqt5 will have python-pyqt5-sip
> > added to its own list of inputs in their own package definition? If so
> > the manual doesn't mention that.
>
> That's the idea: they are run-time dependencies of a package that lacks
> the ability for recording references to its dependencies. We have to
> help the package with our packaging tools.
>
> In general, all Python packages in Guix use this mechanism.
>
> Just to clarify, does Calibre work on your end with my latest Savannah
> branch? I built it on CI, so you can get substitutes for it on x86_64.
>
> The basics work for me: library management, conversion, etc.
Works for me.
L
L
Leo Famulari wrote on 8 Apr 2021 02:05
(name . Brendan Tildesley)(address . mail@brendan.scot)(address . 42885@debbugs.gnu.org)
YG5IrN8MAIWDxaia@jasmine.lan
While testing the dependents of packages changes in this patch series, I
found that QGIS fails to build as a result of these patches, like this:

------
[...]
[ 50%] Built target qgis_sqliteutilstest_autogen
make -f tests/src/core/CMakeFiles/qgis_layouthtmltest_autogen.dir/build.make tests/src/core/CMakeFiles/qgis_layouthtmltest_autogen.dir/depend
.sip5-real: Unable to find file "QtXml/QtXmlmod.sip"
make[2]: Entering directory '/tmp/guix-build-qgis-3.16.3.drv-0/build'
cd /tmp/guix-build-qgis-3.16.3.drv-0/build && /gnu/store/3dsl2jalrcyldkrsqab1hc6sv8pyag9z-cmake-minimal-3.16.5/bin/cmake -E cmake_depends "Unix Makefiles" /tmp/guix-build-qgis-3.16.3.drv-0/qgi
s-3.16.3 /tmp/guix-build-qgis-3.16.3.drv-0/qgis-3.16.3/tests/src/core /tmp/guix-build-qgis-3.16.3.drv-0/build /tmp/guix-build-qgis-3.16.3.drv-0/build/tests/src/core /tmp/guix-build-qgis-3.16.3
.drv-0/build/tests/src/core/CMakeFiles/qgis_layouthtmltest_autogen.dir/DependInfo.cmake --color=
Scanning dependencies of target qgis_layouthtmltest_autogen
make[2]: Leaving directory '/tmp/guix-build-qgis-3.16.3.drv-0/build'
make -f tests/src/core/CMakeFiles/qgis_layouthtmltest_autogen.dir/build.make tests/src/core/CMakeFiles/qgis_layouthtmltest_autogen.dir/build
make[2]: Entering directory '/tmp/guix-build-qgis-3.16.3.drv-0/build'
[ 50%] Automatic MOC for target qgis_layouthtmltest
cd /tmp/guix-build-qgis-3.16.3.drv-0/build/tests/src/core && /gnu/store/3dsl2jalrcyldkrsqab1hc6sv8pyag9z-cmake-minimal-3.16.5/bin/cmake -E cmake_autogen /tmp/guix-build-qgis-3.16.3.drv-0/build
/tests/src/core/CMakeFiles/qgis_layouthtmltest_autogen.dir/AutogenInfo.json RelWithDebInfo
make[2]: *** [python/CMakeFiles/python_module_qgis__core_autogen.dir/build.make:682: python/core/sip_corepart0.cpp] Error 1
make[2]: *** Deleting file 'python/core/sip_corepart0.cpp'
make[2]: Leaving directory '/tmp/guix-build-qgis-3.16.3.drv-0/build'
make[1]: *** [CMakeFiles/Makefile2:8003: python/CMakeFiles/python_module_qgis__core_autogen.dir/all] Error 2
[...]
builder for `/gnu/store/svp5sjdga02zngsrh3x613wjfqm2cwyi-qgis-3.16.3.drv' failed with exit code 1
------

I think the salient part is near the beginning:

.sip5-real: Unable to find file "QtXml/QtXmlmod.sip"

I tried using your original approach for pyqt5-sip, where you symlinked
it into the output of python-pyqt, but I got the same result.

I guess that we need to adjust the package python-pyqt+qscintilla. Any
ideas?
L
L
Leo Famulari wrote on 8 Apr 2021 03:14
(name . Brendan Tildesley)(address . mail@brendan.scot)(address . 42885@debbugs.gnu.org)
YG5Y2TzxVm3DUqMg@jasmine.lan
Toggle quote (2 lines)
> .sip5-real: Unable to find file "QtXml/QtXmlmod.sip"

I found an upstream bug report that is superficially similar:


However, their solution is already done in our package: Make sure that
pyqt is available.
L
L
Leo Famulari wrote on 8 Apr 2021 05:59
(name . Brendan Tildesley)(address . mail@brendan.scot)(address . 42885@debbugs.gnu.org)
YG5/mn1sGQNxhvzS@jasmine.lan
On Wed, Apr 07, 2021 at 08:05:00PM -0400, Leo Famulari wrote:
Toggle quote (2 lines)
> .sip5-real: Unable to find file "QtXml/QtXmlmod.sip"

I also noticed this passage in the QGIS ChangeLog:

------
Daniel Minor <daniel.minor@gmail.com> 2020-07-14

Fix FindPyQt5 cmake and python scripts

As written, the FindPyQt5.cmake and FindPyQt5.py scripts will succeed even if
PyQt5 is not installed. In FindPyQt5.cmake, we have PYQT5_FIND_REQUIRED rather
than PyQt5_FIND_REQUIRED, so the package is always treated as though it is
optional. In FindPyQt5.py, the script will succeed with a default location for
the sip directory, even if the PyQt5 directory is not located.

For some systems, if enough other dependencies are installed, the build can
get about halfway complete without the main PyQt5 dependency, and then fail
with a message like:

sip: Unable to find file "QtXml/QtXmlmod.sip"

I hit this building on Ubuntu, and there have been a few similar bug reports in
the past.
------
B
B
Brendan Tildesley wrote on 8 Apr 2021 06:11
(name . Leo Famulari)(address . leo@famulari.name)(address . 42885@debbugs.gnu.org)
1652327451.54561.1617855115601@office.mailbox.org
Well, using a python-pyqt with the python-sip input set back to python-sip-4 fixes it. Do we want to commit to getting it working with python-sip@5. I'm still playing around with it trying to get it to build

Not sure where you see that sip error. The builds fail for me with

make[2]: Leaving directory '/tmp/guix-build-qgis-3.16.3.drv-0/build'
make[2]: *** [python/CMakeFiles/python_module_qgis__core_autogen.dir/build.make:682: python/core/sip_corepart0.cpp] Error 1
make[2]: *** Deleting file 'python/core/sip_corepart0.cpp'
make[2]: Leaving directory '/tmp/guix-build-qgis-3.16.3.drv-0/build'
make[1]: *** [CMakeFiles/Makefile2:8003: python/CMakeFiles/python_module_qgis__core_autogen.dir/all] Error 2
L
L
Leo Famulari wrote on 8 Apr 2021 06:28
(name . Brendan Tildesley)(address . mail@brendan.scot)(address . 42885@debbugs.gnu.org)
YG6GXzZqd73Os+9w@jasmine.lan
On Thu, Apr 08, 2021 at 06:11:55AM +0200, Brendan Tildesley wrote:
Toggle quote (2 lines)
> Well, using a python-pyqt with the python-sip input set back to python-sip-4 fixes it. Do we want to commit to getting it working with python-sip@5. I'm still playing around with it trying to get it to build

I think it's okay to use python-sip-4, unless you want to hunt down this
bug.

Toggle quote (8 lines)
> Not sure where you see that sip error. The builds fail for me with
>
> make[2]: Leaving directory '/tmp/guix-build-qgis-3.16.3.drv-0/build'
> make[2]: *** [python/CMakeFiles/python_module_qgis__core_autogen.dir/build.make:682: python/core/sip_corepart0.cpp] Error 1
> make[2]: *** Deleting file 'python/core/sip_corepart0.cpp'
> make[2]: Leaving directory '/tmp/guix-build-qgis-3.16.3.drv-0/build'
> make[1]: *** [CMakeFiles/Makefile2:8003: python/CMakeFiles/python_module_qgis__core_autogen.dir/all] Error 2

I see these lines too, but later. The QtXml error may be a few lines
above.
B
B
Brendan Tildesley wrote on 8 Apr 2021 13:17
(name . Leo Famulari)(address . leo@famulari.name)(address . 42885@debbugs.gnu.org)
1216030188.59802.1617880663286@office.mailbox.org
Toggle quote (9 lines)
> On 04/08/2021 6:28 AM Leo Famulari <leo@famulari.name> wrote:
>
>
> On Thu, Apr 08, 2021 at 06:11:55AM +0200, Brendan Tildesley wrote:
> > Well, using a python-pyqt with the python-sip input set back to python-sip-4 fixes it. Do we want to commit to getting it working with python-sip@5. I'm still playing around with it trying to get it to build
>
> I think it's okay to use python-sip-4, unless you want to hunt down this
> bug.

Fixed I think.
Also I deleted the unused python2-sip (in my notabug)
From 6143e197e1caf55d4c0a29aad01f07ca6c73bec8 Mon Sep 17 00:00:00 2001
From: Brendan Tildesley <mail@brendan.scot>
Date: Thu, 8 Apr 2021 20:49:57 +1000
Subject: [PATCH] gnu: qgis: Fix build.

* gnu/packages/geo.scm (qgis):[arguments]: Add another hack in the
'configure-pyqt5-sip-path phase to fix build failure caused by the
upgrade to python-sip@5.

The reason for this is that python-sip@5 introduces some changes such as
a new build system 'sip-build' as well as the use of the path
"/lib/pythonX.X/site-packages/*/bindings/" instead of "/share/sip/" for
.sip files. However, we do not actually use that those yet. Qgis detects
SIP5 and assumes we are, messing up the build. The long term solution is
to fully upgrade SIP, use sip-build and fix all failing packages, but
for now I just want to get the build working.
---
gnu/packages/geo.scm | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)

Toggle diff (19 lines)
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index bc5e6820f3..baa95f3cc3 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -2082,7 +2082,11 @@ growing set of geoscientific methods.")
(("sip_dir = cfg.default_sip_dir")
(string-append "sip_dir = \""
(assoc-ref inputs "python-pyqt+qscintilla")
- "/share/sip\"")))
+ "/share/sip\""))
+ ((".pyqt_sip_dir...os.path.join.*,")
+ (string-append "'pyqt_sip_dir': \""
+ (assoc-ref inputs "python-pyqt+qscintilla")
+ "/share/sip" "\",")))
(substitute* (list "scripts/prepare_commit.sh"
"scripts/qstringfixup.sh"
"scripts/release.pl"
--
2.31.1
L
L
Leo Famulari wrote on 9 Apr 2021 22:12
(name . Brendan Tildesley)(address . mail@brendan.scot)(address . 42885-done@debbugs.gnu.org)
YHC1OyCtLMnUMmyx@jasmine.lan
On Thu, Apr 08, 2021 at 01:17:43PM +0200, Brendan Tildesley wrote:
Toggle quote (13 lines)
>
> > On 04/08/2021 6:28 AM Leo Famulari <leo@famulari.name> wrote:
> >
> >
> > On Thu, Apr 08, 2021 at 06:11:55AM +0200, Brendan Tildesley wrote:
> > > Well, using a python-pyqt with the python-sip input set back to python-sip-4 fixes it. Do we want to commit to getting it working with python-sip@5. I'm still playing around with it trying to get it to build
> >
> > I think it's okay to use python-sip-4, unless you want to hunt down this
> > bug.
>
> Fixed I think.
> Also I deleted the unused python2-sip (in my notabug)

Alright, I pushed as f68bcc1bc3aa0a8d1829e2eb5d9ef256c817c17c

Thank you very much for tackling this complicated upgrade of such an
important package!
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 42885@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 42885
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch