GNU bug report logs -
#74702
[PATCH 0/4] Update komikku to 1.57.0
Previous Next
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 74702 in the body.
You can then email your comments to 74702 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
guix-patches <at> gnu.org
:
bug#74702
; Package
guix-patches
.
(Thu, 05 Dec 2024 16:56:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Liliana Marie Prikler <liliana.prikler <at> gmail.com>
:
New bug report received and forwarded. Copy sent to
guix-patches <at> gnu.org
.
(Thu, 05 Dec 2024 16:56:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
Hi Guix,
this series updates komikku to 1.57.0 and adds a new package called
komikku-servers, which builds the newer 1.59.0 servers (upstream
currently has a version of 1.64.0, but >= 1.60.0 won't build with our
Python). I'm involving both Python and GNOME teams on the individual
packages, as updating pillow rebuilds some 1000 packages, which is
quite many.
Cheers
Liliana Marie Prikler (4):
gnu: python-pillow: Update to 11.0.0.
gnu: Add python-pillow-heif.
gnu: komikku: Update to 1.57.0.
gnu: Add komikku-servers.
gnu/packages/gnome.scm | 44 ++++++++++++++++++++++--
gnu/packages/python-xyz.scm | 67 +++++++++++++++++++++++++++++++------
2 files changed, 99 insertions(+), 12 deletions(-)
base-commit: 006679d1e6ca7acea0629b4f019c8cf89cde08be
--
2.46.0
Information forwarded
to
liliana.prikler <at> gmail.com, maxim.cournoyer <at> gmail.com, vivien <at> planete-kraus.eu, guix-patches <at> gnu.org
:
bug#74702
; Package
guix-patches
.
(Thu, 05 Dec 2024 17:45:01 GMT)
Full text and
rfc822 format available.
Message #8 received at 74702 <at> debbugs.gnu.org (full text, mbox):
* gnu/packages/gnome.scm (komikku-servers): New variable.
---
gnu/packages/gnome.scm | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index ae0e1f4783..3c89ab4054 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -233,6 +233,7 @@ (define-module (gnu packages gnome)
#:use-module (gnu artwork)
#:use-module (guix build-system cargo)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system copy)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
@@ -13647,6 +13648,41 @@ (define-public komikku
(variable "KOMIKKU_SERVERS_PATH")
(files '("lib/komikku/servers")))))))
+(define-public komikku-servers
+ (package
+ (name "komikku-servers")
+ (version "1.59.0") ; latest version that works with 1.57
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://codeberg.org/valos/Komikku/")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0sfqmqcpdl3bsbs0wxl4jwvd7wpgigkvvasy1niz6qm2vnp35gzq"))))
+ (build-system copy-build-system)
+ (arguments
+ (list
+ #:install-plan
+ #~'(("komikku/servers" "lib/komikku/servers"))
+ #:modules '((guix build copy-build-system)
+ (guix build utils)
+ (ice-9 ftw))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'delete-conflicting-files
+ (lambda _
+ (with-directory-excursion "komikku/servers"
+ (for-each delete-file
+ (scandir "."
+ (lambda (f) (string-suffix? ".py" f))))))))))
+ (home-page "https://apps.gnome.org/Komikku")
+ (synopsis "Servers for Komikku")
+ (description "This package provides more recent servers for Komikku.")
+ (license license:gpl3+)))
+
(define-public libgda
(package
(name "libgda")
--
2.46.0
Information forwarded
to
lars <at> 6xq.net, marius <at> gnu.org, me <at> bonfacemunyoki.com, sharlatanus <at> gmail.com, tanguy <at> bioneland.org, jgart <at> dismail.de, guix-patches <at> gnu.org
:
bug#74702
; Package
guix-patches
.
(Thu, 05 Dec 2024 17:45:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 74702 <at> debbugs.gnu.org (full text, mbox):
* gnu/packages/python-xyz.scm (python-pillow): Update to 11.0.0.
---
gnu/packages/python-xyz.scm | 25 +++++++++++++++----------
1 file changed, 15 insertions(+), 10 deletions(-)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index cba99cce62..e77c5f6b65 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -10388,20 +10388,25 @@ (define-public python-pikepdf
(define-public python-pillow
(package
(name "python-pillow")
- (version "9.2.0")
+ (version "11.0.0")
(source (origin
- (method url-fetch)
- (uri (pypi-uri "Pillow" version))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/python-pillow/Pillow")
+ (commit version)))
+ (file-name (git-file-name "python-pillow" version))
(sha256
(base32
- "011wgm1mssjchpva9wsi2a07im9czyjvik137xlp5f0g7vykdrkm"))
- (modules '((guix build utils)))
+ "0ya68a5ymxc581laidc3qlzjs9l327fyzw0mgcb9fz4r1p66lqxx"))
+ (modules '((guix build utils)
+ (ice-9 ftw)))
(snippet '(begin
- (delete-file-recursively "src/thirdparty")))
- (patches
- (search-patches "python-pillow-CVE-2022-45199.patch"
- ;; Included in 10.1.0.
- "python-pillow-use-zlib-1.3.patch"))))
+ (let ((keep '("." ".." "pythoncapi_compat.h")))
+ (with-directory-excursion "src/thirdparty"
+ (for-each
+ (lambda (f) (unless (member f keep)
+ (delete-file-recursively f)))
+ (scandir "."))))))))
(build-system python-build-system)
(native-inputs (list python-pytest))
(inputs (list freetype
--
2.46.0
Information forwarded
to
lars <at> 6xq.net, marius <at> gnu.org, me <at> bonfacemunyoki.com, sharlatanus <at> gmail.com, tanguy <at> bioneland.org, jgart <at> dismail.de, guix-patches <at> gnu.org
:
bug#74702
; Package
guix-patches
.
(Thu, 05 Dec 2024 17:45:03 GMT)
Full text and
rfc822 format available.
Message #14 received at 74702 <at> debbugs.gnu.org (full text, mbox):
* gnu/packages/python-xyz.scm (python-pillow-heif): New variable.
---
gnu/packages/python-xyz.scm | 42 +++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index e77c5f6b65..03852d2151 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -10445,6 +10445,48 @@ (define-public python-pillow
"http://www.pythonware.com/products/pil/license.htm"
"The PIL Software License"))))
+(define-public python-pillow-heif
+ (package
+ (name "python-pillow-heif")
+ (version "0.21.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pillow_heif" version))
+ (sha256
+ (base32 "16xl2a51z4rjfy7y8vnn3w0ngcr1mr2sgsl9p7z62payy2zy3bh7"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-flags
+ #~(list "-k" ; XXX: 10/12 bit tests fail
+ (string-append
+ "not test_save_bgr_16bit_to_10_12_bit"
+ " and not test_save_bgra_16bit_to_10_12_bit"
+ " and not test_open_heif_compare_non_standard_modes_data"
+ " and not test_open_save_disable_16bit"
+ " and not test_heif_read_images[image_path16]"
+ " and not test_heif_read_images[image_path43]"
+ " and not test_premultiplied_alpha"
+ " and not test_hdr_save"
+ " and not test_I_color_modes_to_10_12_bit"))))
+ (inputs (list libheif))
+ (propagated-inputs (list python-pillow))
+ (native-inputs (list opencv ; for opencv-python
+ python-coverage
+ python-defusedxml
+ python-numpy
+ python-packaging
+ python-pre-commit
+ python-pylint
+ python-pympler
+ python-pytest))
+ (home-page "https://github.com/bigcat88/pillow_heif")
+ (synopsis "Python interface for libheif library")
+ (description "This package provides Python bindings for the libheif library
+and a plugin for Pillow.")
+ (license license:bsd-3)))
+
(define-public python-pillow-2.9
(package
(inherit python-pillow)
--
2.46.0
Information forwarded
to
liliana.prikler <at> gmail.com, maxim.cournoyer <at> gmail.com, vivien <at> planete-kraus.eu, guix-patches <at> gnu.org
:
bug#74702
; Package
guix-patches
.
(Thu, 05 Dec 2024 17:45:03 GMT)
Full text and
rfc822 format available.
Message #17 received at 74702 <at> debbugs.gnu.org (full text, mbox):
* gnu/packages/gnome.scm (komikku): Update to 1.57.0.
[inputs]: Add python-pillow-heif.
[native-search-paths]: Add KOMIKKU_SERVERS_PATH.
---
gnu/packages/gnome.scm | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 73b0b6b895..ae0e1f4783 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -13564,7 +13564,7 @@ (define-public gnome-builder
(define-public komikku
(package
(name "komikku")
- (version "1.46.0")
+ (version "1.57.0")
(source
(origin
(method git-fetch)
@@ -13574,7 +13574,7 @@ (define-public komikku
(file-name (git-file-name name version))
(sha256
(base32
- "1ggg4hgd1kyc69b06kcgvvjwmz72xgjakva19gs3nrszr4cinank"))))
+ "0z8sigv1a8a96y0hgm21j4qmpy06ziqw8yhlgbp8kbg70g5yhrbg"))))
(build-system meson-build-system)
(arguments
(list
@@ -13622,6 +13622,7 @@ (define-public komikku
python-natsort
python-piexif
python-pillow
+ python-pillow-heif
python-pure-protobuf
python-pycairo
python-pygobject
@@ -13641,7 +13642,10 @@ (define-public komikku
(synopsis "Manga reader for GNOME")
(description "Komikku is an online/offline manga reader for GNOME,
developed with the aim of being used with the Librem 5 phone.")
- (license license:gpl3+)))
+ (license license:gpl3+)
+ (native-search-paths (list (search-path-specification
+ (variable "KOMIKKU_SERVERS_PATH")
+ (files '("lib/komikku/servers")))))))
(define-public libgda
(package
--
2.46.0
Information forwarded
to
guix-patches <at> gnu.org
:
bug#74702
; Package
guix-patches
.
(Mon, 09 Dec 2024 00:33:01 GMT)
Full text and
rfc822 format available.
Message #20 received at 74702 <at> debbugs.gnu.org (full text, mbox):
Liliana Marie Prikler <liliana.prikler <at> gmail.com> writes:
> * gnu/packages/gnome.scm (komikku): Update to 1.57.0.
> [inputs]: Add python-pillow-heif.
> [native-search-paths]: Add KOMIKKU_SERVERS_PATH.
Reviewed-by: Maxim Cournoyer <maxim.cournoyer <at> gmail>
--
Thanks,
Maxim
Information forwarded
to
guix-patches <at> gnu.org
:
bug#74702
; Package
guix-patches
.
(Mon, 09 Dec 2024 00:40:02 GMT)
Full text and
rfc822 format available.
Message #23 received at 74702 <at> debbugs.gnu.org (full text, mbox):
Hello,
Liliana Marie Prikler <liliana.prikler <at> gmail.com> writes:
> * gnu/packages/gnome.scm (komikku-servers): New variable.
> ---
> gnu/packages/gnome.scm | 36 ++++++++++++++++++++++++++++++++++++
> 1 file changed, 36 insertions(+)
>
> diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
> index ae0e1f4783..3c89ab4054 100644
> --- a/gnu/packages/gnome.scm
> +++ b/gnu/packages/gnome.scm
> @@ -233,6 +233,7 @@ (define-module (gnu packages gnome)
> #:use-module (gnu artwork)
> #:use-module (guix build-system cargo)
> #:use-module (guix build-system cmake)
> + #:use-module (guix build-system copy)
> #:use-module (guix build-system glib-or-gtk)
> #:use-module (guix build-system gnu)
> #:use-module (guix build-system meson)
> @@ -13647,6 +13648,41 @@ (define-public komikku
> (variable "KOMIKKU_SERVERS_PATH")
> (files '("lib/komikku/servers")))))))
>
> +(define-public komikku-servers
> + (package
> + (name "komikku-servers")
> + (version "1.59.0") ; latest version that works with 1.57
Per our referenced Scheme coding style [0] in (info '(guix) Formatting
Code'), the space between ';' and the comment for inline comments can be
omitted (see the '** Comments' section).
[0] https://mumble.net/~campbell/scheme/style.txt
> + (source
> + (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url "https://codeberg.org/valos/Komikku/")
> + (commit (string-append "v" version))))
> + (file-name (git-file-name name version))
> + (sha256
> + (base32
> + "0sfqmqcpdl3bsbs0wxl4jwvd7wpgigkvvasy1niz6qm2vnp35gzq"))))
> + (build-system copy-build-system)
> + (arguments
> + (list
> + #:install-plan
> + #~'(("komikku/servers" "lib/komikku/servers"))
> + #:modules '((guix build copy-build-system)
> + (guix build utils)
> + (ice-9 ftw))
> + #:phases
> + #~(modify-phases %standard-phases
> + (add-after 'unpack 'delete-conflicting-files
> + (lambda _
> + (with-directory-excursion "komikku/servers"
> + (for-each delete-file
> + (scandir "."
> + (lambda (f) (string-suffix? ".py" f))))))))))
Shouldn't these Python files be byte-compiled? You could perhaps use
the compile-bytecode phase from the pyproject-build-system to accomplish
that.
--
Thanks,
Maxim
Information forwarded
to
guix-patches <at> gnu.org
:
bug#74702
; Package
guix-patches
.
(Tue, 10 Dec 2024 19:55:02 GMT)
Full text and
rfc822 format available.
Message #26 received at 74702 <at> debbugs.gnu.org (full text, mbox):
Am Montag, dem 09.12.2024 um 09:37 +0900 schrieb Maxim Cournoyer:
> Hello,
>
> Liliana Marie Prikler <liliana.prikler <at> gmail.com> writes:
>
> > * gnu/packages/gnome.scm (komikku-servers): New variable.
> > ---
> > gnu/packages/gnome.scm | 36 ++++++++++++++++++++++++++++++++++++
> > 1 file changed, 36 insertions(+)
> >
> > diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
> > index ae0e1f4783..3c89ab4054 100644
> > --- a/gnu/packages/gnome.scm
> > +++ b/gnu/packages/gnome.scm
> > @@ -233,6 +233,7 @@ (define-module (gnu packages gnome)
> > #:use-module (gnu artwork)
> > #:use-module (guix build-system cargo)
> > #:use-module (guix build-system cmake)
> > + #:use-module (guix build-system copy)
> > #:use-module (guix build-system glib-or-gtk)
> > #:use-module (guix build-system gnu)
> > #:use-module (guix build-system meson)
> > @@ -13647,6 +13648,41 @@ (define-public komikku
> > (variable "KOMIKKU_SERVERS_PATH")
> > (files
> > '("lib/komikku/servers")))))))
> >
> > +(define-public komikku-servers
> > + (package
> > + (name "komikku-servers")
> > + (version "1.59.0") ; latest version that
> > works with 1.57
>
> Per our referenced Scheme coding style [0] in (info '(guix)
> Formatting Code'), the space between ';' and the comment for inline
> comments can be omitted (see the '** Comments' section).
>
> [0] https://mumble.net/~campbell/scheme/style.txt
I read this 'can' as optional and very much prefer my space :)
> > + (source
> > + (origin
> > + (method git-fetch)
> > + (uri (git-reference
> > + (url "https://codeberg.org/valos/Komikku/")
> > + (commit (string-append "v" version))))
> > + (file-name (git-file-name name version))
> > + (sha256
> > + (base32
> > +
> > "0sfqmqcpdl3bsbs0wxl4jwvd7wpgigkvvasy1niz6qm2vnp35gzq"))))
> > + (build-system copy-build-system)
> > + (arguments
> > + (list
> > + #:install-plan
> > + #~'(("komikku/servers" "lib/komikku/servers"))
> > + #:modules '((guix build copy-build-system)
> > + (guix build utils)
> > + (ice-9 ftw))
> > + #:phases
> > + #~(modify-phases %standard-phases
> > + (add-after 'unpack 'delete-conflicting-files
> > + (lambda _
> > + (with-directory-excursion "komikku/servers"
> > + (for-each delete-file
> > + (scandir "."
> > + (lambda (f) (string-suffix?
> > ".py" f))))))))))
>
> Shouldn't these Python files be byte-compiled? You could perhaps use
> the compile-bytecode phase from the pyproject-build-system to
> accomplish that.
I can't use it verbatim, since the install directory is different¹, but
I can copy it's logic, sure. Will do so for v2.
Cheers
¹ Komikku uses a custom module loader I once wrote that was upstreamed
some time ago, which means we can control the search path freely. I
chose a directory that does not rely on Python to avoid any potential
conflict here.
Information forwarded
to
guix-patches <at> gnu.org
:
bug#74702
; Package
guix-patches
.
(Wed, 11 Dec 2024 02:43:02 GMT)
Full text and
rfc822 format available.
Message #29 received at 74702 <at> debbugs.gnu.org (full text, mbox):
Hi,
Liliana Marie Prikler <liliana.prikler <at> gmail.com> writes:
[...]
>> > +(define-public komikku-servers
>> > + (package
>> > + (name "komikku-servers")
>> > + (version "1.59.0") ; latest version that
>> > works with 1.57
>>
>> Per our referenced Scheme coding style [0] in (info '(guix)
>> Formatting Code'), the space between ';' and the comment for inline
>> comments can be omitted (see the '** Comments' section).
>>
>> [0] https://mumble.net/~campbell/scheme/style.txt
> I read this 'can' as optional and very much prefer my space :)
It's indeed a 'can', but I value consistency enough that this errs on
the side of 'should' in my mind ;-).
[...]
>> > + #~(modify-phases %standard-phases
>> > + (add-after 'unpack 'delete-conflicting-files
>> > + (lambda _
>> > + (with-directory-excursion "komikku/servers"
>> > + (for-each delete-file
>> > + (scandir "."
>> > + (lambda (f) (string-suffix?
>> > ".py" f))))))))))
>>
>> Shouldn't these Python files be byte-compiled? You could perhaps use
>> the compile-bytecode phase from the pyproject-build-system to
>> accomplish that.
> I can't use it verbatim, since the install directory is different¹, but
> I can copy it's logic, sure. Will do so for v2.
OK. If it's too much boilerplate to copy-paste, feel free to ignore it.
It's probably not world-changing anyway.
--
Thanks,
Maxim
Information forwarded
to
lars <at> 6xq.net, marius <at> gnu.org, me <at> bonfacemunyoki.com, sharlatanus <at> gmail.com, tanguy <at> bioneland.org, jgart <at> dismail.de, guix-patches <at> gnu.org
:
bug#74702
; Package
guix-patches
.
(Sun, 22 Dec 2024 19:39:03 GMT)
Full text and
rfc822 format available.
Message #32 received at 74702 <at> debbugs.gnu.org (full text, mbox):
* gnu/packages/python-xyz.scm (python-pillow-heif): New variable.
---
Change since v1: Added missing native inputs.
gnu/packages/python-xyz.scm | 44 +++++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index d29941f4f7..591b0706b5 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -10893,6 +10893,50 @@ (define-public python-pillow
"http://www.pythonware.com/products/pil/license.htm"
"The PIL Software License"))))
+(define-public python-pillow-heif
+ (package
+ (name "python-pillow-heif")
+ (version "0.21.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pillow_heif" version))
+ (sha256
+ (base32 "16xl2a51z4rjfy7y8vnn3w0ngcr1mr2sgsl9p7z62payy2zy3bh7"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-flags
+ #~(list "-k" ; XXX: 10/12 bit tests fail
+ (string-append
+ "not test_save_bgr_16bit_to_10_12_bit"
+ " and not test_save_bgra_16bit_to_10_12_bit"
+ " and not test_open_heif_compare_non_standard_modes_data"
+ " and not test_open_save_disable_16bit"
+ " and not test_heif_read_images[image_path16]"
+ " and not test_heif_read_images[image_path43]"
+ " and not test_premultiplied_alpha"
+ " and not test_hdr_save"
+ " and not test_I_color_modes_to_10_12_bit"))))
+ (inputs (list libheif))
+ (propagated-inputs (list python-pillow))
+ (native-inputs (list opencv ; for opencv-python
+ python-coverage
+ python-defusedxml
+ python-numpy
+ python-packaging
+ python-pre-commit
+ python-pylint
+ python-pympler
+ python-setuptools
+ python-pytest
+ python-wheel))
+ (home-page "https://github.com/bigcat88/pillow_heif")
+ (synopsis "Python interface for libheif library")
+ (description "This package provides Python bindings for the libheif library
+and a plugin for Pillow.")
+ (license license:bsd-3)))
+
(define-public python-pillow-2.9
(package
(inherit python-pillow)
--
2.46.0
Reply sent
to
Liliana Marie Prikler <liliana.prikler <at> gmail.com>
:
You have taken responsibility.
(Wed, 22 Jan 2025 21:47:01 GMT)
Full text and
rfc822 format available.
Notification sent
to
Liliana Marie Prikler <liliana.prikler <at> gmail.com>
:
bug acknowledged by developer.
(Wed, 22 Jan 2025 21:47:02 GMT)
Full text and
rfc822 format available.
Message #37 received at 74702-done <at> debbugs.gnu.org (full text, mbox):
Am Mittwoch, dem 11.12.2024 um 11:40 +0900 schrieb Maxim Cournoyer:
> >
> > I read this 'can' as optional and very much prefer my space :)
>
> It's indeed a 'can', but I value consistency enough that this errs on
> the side of 'should' in my mind ;-).
> > >
And I prefer consistency between comments, which is why I'm always
adding the extra space :)
> > >
> > I can't use it verbatim, since the install directory is different¹,
> > but I can copy it's logic, sure. Will do so for v2.
>
> OK. If it's too much boilerplate to copy-paste, feel free to ignore
> it. It's probably not world-changing anyway.
Now that python-team is merged, I pushed it with the change.
Cheers
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Thu, 20 Feb 2025 12:24:08 GMT)
Full text and
rfc822 format available.
This bug report was last modified 21 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.