GNU bug report logs -
#27249
[PATCH] gnu: gnome: Add deja-dup.
Previous Next
Reported by: Christopher Baines <mail <at> cbaines.net>
Date: Mon, 5 Jun 2017 07:13:02 UTC
Severity: normal
Tags: patch
Done: ludo <at> gnu.org (Ludovic Courtès)
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 27249 in the body.
You can then email your comments to 27249 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#27249
; Package
guix-patches
.
(Mon, 05 Jun 2017 07:13:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Christopher Baines <mail <at> cbaines.net>
:
New bug report received and forwarded. Copy sent to
guix-patches <at> gnu.org
.
(Mon, 05 Jun 2017 07:13:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
* gnu/packages/gnome.scm (deja-dup): New variable.
---
gnu/packages/gnome.scm | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 79 insertions(+)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index c1c73f0f7..ab2735686 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -58,6 +58,7 @@
#:use-module (gnu packages bison)
#:use-module (gnu packages calendar)
#:use-module (gnu packages check)
+ #:use-module (gnu packages cmake)
#:use-module (gnu packages cups)
#:use-module (gnu packages curl)
#:use-module (gnu packages cyrus-sasl)
@@ -188,6 +189,84 @@ Desktop. It is designed to be as simple as possible and has some unique
features to enable users to create their discs easily and quickly.")
(license license:gpl2+)))
+(define-public deja-dup
+ (package
+ (name "deja-dup")
+ (version "34.3")
+ (source (origin
+ (method url-fetch)
+ (uri "https://launchpadlibrarian.net/295170991/deja-dup-34.3.tar.xz")
+ (sha256
+ (base32
+ "1xqcr61hpbahbla7gdjn4ngjfz7w6f57y7f5pkb77yk05f60j2n9"))))
+ (build-system glib-or-gtk-build-system)
+ (arguments
+ `(#:modules ((guix build gnu-build-system)
+ ((guix build cmake-build-system) #:prefix cmake:)
+ (guix build glib-or-gtk-build-system)
+ (guix build utils))
+ #:imported-modules (,@%glib-or-gtk-build-system-modules
+ (guix build cmake-build-system))
+ #:test-target "test"
+ #:configure-flags (list (string-append
+ "-DCMAKE_INSTALL_FULL_DATADIR=" %output)
+ (string-append
+ "-DCMAKE_INSTALL_LIBEXECDIR=" %output))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-lockfile-deletion
+ (lambda rest
+ (substitute* "libdeja/tools/duplicity/DuplicityInstance.vala"
+ (("/bin/rm")
+ (which "rm")))))
+ (replace 'configure
+ (assoc-ref cmake:%standard-phases 'configure))
+ (add-before 'check 'set-ctest-output-on-failure
+ (lambda args
+ (setenv "CTEST_OUTPUT_ON_FAILURE" "1")))
+ (add-after 'install 'wrap-deja-dup
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((python (assoc-ref inputs "python"))
+ (python-path (getenv "PYTHONPATH"))
+ (duplicity (assoc-ref inputs "duplicity"))
+ (out (assoc-ref outputs "out")))
+ (for-each
+ (lambda (program)
+ (wrap-program program
+ `("PATH" ":" prefix (,(string-append python "/bin")
+ ,(string-append duplicity "/bin"))))
+ (wrap-program program
+ `("PYTHONPATH" ":" prefix (,python-path))))
+
+ (find-files (string-append out "/bin")))
+ #t))))))
+ (propagated-inputs
+ `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+ ("gobject-introspection" ,gobject-introspection)
+ ("duplicity" ,duplicity)
+ ("python" ,python2-minimal)
+ ("python-pygobject" ,python2-pygobject)))
+ (inputs
+ `(("gtk+" ,gtk+)
+ ("libnotify" ,libnotify)
+ ("libpeas" ,libpeas)
+ ("libsecret" ,libsecret)
+ ("itstool" ,itstool)
+ ("packagekit" ,packagekit)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("vala" ,vala)
+ ("gettext" ,gettext-minimal)
+ ("intltool" ,intltool)
+ ("cmake", cmake)))
+ (home-page "https://launchpad.net/deja-dup")
+ (synopsis "Simple backup tool, for regular encrypted backups")
+ (description
+ "Déjà Dup is a simple backup tool, for regular encrypted backups. It uses
+duplicity as the backend, which supports incremental backups and storage
+either on a local, or remote machine via a number of methods.")
+ (license license:gpl3+)))
+
(define-public dia
;; This version from GNOME's repository includes fixes for compiling with
;; recent versions of the build tools. The latest activity on the
--
2.13.0
Added blocking bug(s) 27247
Request was from
Christopher Baines <mail <at> cbaines.net>
to
control <at> debbugs.gnu.org
.
(Mon, 05 Jun 2017 19:43:01 GMT)
Full text and
rfc822 format available.
Information forwarded
to
guix-patches <at> gnu.org
:
bug#27249
; Package
guix-patches
.
(Wed, 07 Jun 2017 13:02:02 GMT)
Full text and
rfc822 format available.
Message #10 received at 27249 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Christopher Baines <mail <at> cbaines.net> skribis:
> * gnu/packages/gnome.scm (deja-dup): New variable.
There’s a couple of lint warnings fixed by the patch below:
[Message part 2 (text/x-patch, inline)]
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index ab0c57d31..cd78e6015 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -252,19 +252,19 @@ features to enable users to create their discs easily and quickly.")
("libnotify" ,libnotify)
("libpeas" ,libpeas)
("libsecret" ,libsecret)
- ("itstool" ,itstool)
("packagekit" ,packagekit)))
(native-inputs
`(("pkg-config" ,pkg-config)
("vala" ,vala)
("gettext" ,gettext-minimal)
+ ("itstool" ,itstool)
("intltool" ,intltool)
("cmake", cmake)))
(home-page "https://launchpad.net/deja-dup")
(synopsis "Simple backup tool, for regular encrypted backups")
(description
- "Déjà Dup is a simple backup tool, for regular encrypted backups. It uses
-duplicity as the backend, which supports incremental backups and storage
+ "Déjà Dup is a simple backup tool, for regular encrypted backups. It
+uses duplicity as the backend, which supports incremental backups and storage
either on a local, or remote machine via a number of methods.")
(license license:gpl3+)))
[Message part 3 (text/plain, inline)]
Regarding propagated inputs:
> + (propagated-inputs
> + `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
> + ("gobject-introspection" ,gobject-introspection)
> + ("duplicity" ,duplicity)
> + ("python" ,python2-minimal)
> + ("python-pygobject" ,python2-pygobject)))
Could you add a comment explaining why all this needs to be propagated?
If there’s a way to avoid it, it’s even better (for instance, if
deja-dup execs duplicity, we could hard-code the absolute file name of
duplicity.)
TIA!
Ludo’.
Information forwarded
to
guix-patches <at> gnu.org
:
bug#27249
; Package
guix-patches
.
(Thu, 08 Jun 2017 20:51:02 GMT)
Full text and
rfc822 format available.
Message #13 received at 27249 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
On 07/06/17 14:01, Ludovic Courtès wrote:
> Christopher Baines <mail <at> cbaines.net> skribis:
>
>> * gnu/packages/gnome.scm (deja-dup): New variable.
>
> There’s a couple of lint warnings fixed by the patch below:
>
>
>
> diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
> index ab0c57d31..cd78e6015 100644
> --- a/gnu/packages/gnome.scm
> +++ b/gnu/packages/gnome.scm
> @@ -252,19 +252,19 @@ features to enable users to create their discs easily and quickly.")
> ("libnotify" ,libnotify)
> ("libpeas" ,libpeas)
> ("libsecret" ,libsecret)
> - ("itstool" ,itstool)
> ("packagekit" ,packagekit)))
> (native-inputs
> `(("pkg-config" ,pkg-config)
> ("vala" ,vala)
> ("gettext" ,gettext-minimal)
> + ("itstool" ,itstool)
> ("intltool" ,intltool)
> ("cmake", cmake)))
> (home-page "https://launchpad.net/deja-dup")
> (synopsis "Simple backup tool, for regular encrypted backups")
> (description
> - "Déjà Dup is a simple backup tool, for regular encrypted backups. It uses
> -duplicity as the backend, which supports incremental backups and storage
> + "Déjà Dup is a simple backup tool, for regular encrypted backups. It
> +uses duplicity as the backend, which supports incremental backups and storage
> either on a local, or remote machine via a number of methods.")
> (license license:gpl3+)))
>
>
>
>
>
> Regarding propagated inputs:
>
>> + (propagated-inputs
>> + `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
>> + ("gobject-introspection" ,gobject-introspection)
>> + ("duplicity" ,duplicity)
>> + ("python" ,python2-minimal)
>> + ("python-pygobject" ,python2-pygobject)))
>
> Could you add a comment explaining why all this needs to be propagated?
> If there’s a way to avoid it, it’s even better (for instance, if
> deja-dup execs duplicity, we could hard-code the absolute file name of
> duplicity.)
Thanks for your review Ludo, hopefully I can get around to looking at
deja-dup again at the weekend :)
[signature.asc (application/pgp-signature, attachment)]
Information forwarded
to
guix-patches <at> gnu.org
:
bug#27249
; Package
guix-patches
.
(Thu, 20 Jul 2017 09:29:01 GMT)
Full text and
rfc822 format available.
Message #16 received at 27249 <at> debbugs.gnu.org (full text, mbox):
Heya Christopher,
Christopher Baines <mail <at> cbaines.net> skribis:
> On 07/06/17 14:01, Ludovic Courtès wrote:
>> Christopher Baines <mail <at> cbaines.net> skribis:
>>
>>> * gnu/packages/gnome.scm (deja-dup): New variable.
>>
>> There’s a couple of lint warnings fixed by the patch below:
[...]
>> Regarding propagated inputs:
>>
>>> + (propagated-inputs
>>> + `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
>>> + ("gobject-introspection" ,gobject-introspection)
>>> + ("duplicity" ,duplicity)
>>> + ("python" ,python2-minimal)
>>> + ("python-pygobject" ,python2-pygobject)))
>>
>> Could you add a comment explaining why all this needs to be propagated?
>> If there’s a way to avoid it, it’s even better (for instance, if
>> deja-dup execs duplicity, we could hard-code the absolute file name of
>> duplicity.)
>
> Thanks for your review Ludo, hopefully I can get around to looking at
> deja-dup again at the weekend :)
It’s been a long week-end. ;-) Could you take a look again so we can
save this patch from bitrot?
TIA!
Ludo’.
Information forwarded
to
guix-patches <at> gnu.org
:
bug#27249
; Package
guix-patches
.
(Sat, 22 Jul 2017 09:31:01 GMT)
Full text and
rfc822 format available.
Message #19 received at 27249 <at> debbugs.gnu.org (full text, mbox):
* gnu/packages/gnome.scm (deja-dup): New variable.
* gnu/packages/patches/deja-dup-use-ref-keyword-for-iter.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add patch file entry.
---
gnu/local.mk | 1 +
gnu/packages/gnome.scm | 78 ++++++++++++++++++++++
.../deja-dup-use-ref-keyword-for-iter.patch | 41 ++++++++++++
3 files changed, 120 insertions(+)
create mode 100644 gnu/packages/patches/deja-dup-use-ref-keyword-for-iter.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index 6d9e57062..bb73a54d8 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -563,6 +563,7 @@ dist_patch_DATA = \
%D%/packages/patches/cyrus-sasl-CVE-2013-4122.patch \
%D%/packages/patches/dblatex-remove-multirow.patch \
%D%/packages/patches/dbus-helper-search-path.patch \
+ %D%/packages/patches/deja-dup-use-ref-keyword-for-iter.patch \
%D%/packages/patches/dfu-programmer-fix-libusb.patch \
%D%/packages/patches/diffutils-gets-undeclared.patch \
%D%/packages/patches/doc++-include-directives.patch \
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index be00fcff5..1ab59a630 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -61,6 +61,7 @@
#:use-module (gnu packages bison)
#:use-module (gnu packages calendar)
#:use-module (gnu packages check)
+ #:use-module (gnu packages cmake)
#:use-module (gnu packages cups)
#:use-module (gnu packages curl)
#:use-module (gnu packages cyrus-sasl)
@@ -193,6 +194,83 @@ Desktop. It is designed to be as simple as possible and has some unique
features to enable users to create their discs easily and quickly.")
(license license:gpl2+)))
+(define-public deja-dup
+ (package
+ (name "deja-dup")
+ (version "34.3")
+ (source (origin
+ (method url-fetch)
+ (uri "https://launchpadlibrarian.net/295170991/deja-dup-34.3.tar.xz")
+ (sha256
+ (base32
+ "1xqcr61hpbahbla7gdjn4ngjfz7w6f57y7f5pkb77yk05f60j2n9"))
+ (patches
+ (search-patches "deja-dup-use-ref-keyword-for-iter.patch"))))
+ (build-system glib-or-gtk-build-system)
+ (arguments
+ `(#:modules ((guix build gnu-build-system)
+ ((guix build cmake-build-system) #:prefix cmake:)
+ (guix build glib-or-gtk-build-system)
+ (guix build utils))
+ #:imported-modules (,@%glib-or-gtk-build-system-modules
+ (guix build cmake-build-system))
+ #:test-target "test"
+ #:configure-flags (list (string-append
+ "-DCMAKE_INSTALL_FULL_DATADIR=" %output)
+ (string-append
+ "-DCMAKE_INSTALL_LIBEXECDIR=" %output))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-lockfile-deletion
+ (lambda rest
+ (substitute* "libdeja/tools/duplicity/DuplicityInstance.vala"
+ (("/bin/rm")
+ (which "rm")))))
+ (replace 'configure
+ (assoc-ref cmake:%standard-phases 'configure))
+ (delete 'check) ;; Fails due to issues with DBus
+ (add-after 'install 'wrap-deja-dup
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((python (assoc-ref inputs "python"))
+ (python-path (getenv "PYTHONPATH"))
+ (duplicity (assoc-ref inputs "duplicity"))
+ (out (assoc-ref outputs "out")))
+ (for-each
+ (lambda (program)
+ (wrap-program program
+ `("PATH" ":" prefix (,(string-append python "/bin")
+ ,(string-append duplicity "/bin"))))
+ (wrap-program program
+ `("PYTHONPATH" ":" prefix (,python-path))))
+
+ (find-files (string-append out "/bin")))
+ #t))))))
+ (inputs
+ `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+ ("gobject-introspection" ,gobject-introspection)
+ ("duplicity" ,duplicity)
+ ("python" ,python2-minimal)
+ ("python-pygobject" ,python2-pygobject)
+ ("gtk+" ,gtk+)
+ ("libnotify" ,libnotify)
+ ("libpeas" ,libpeas)
+ ("libsecret" ,libsecret)
+ ("packagekit" ,packagekit)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("vala" ,vala)
+ ("gettext" ,gettext-minimal)
+ ("itstool" ,itstool)
+ ("intltool" ,intltool)
+ ("cmake", cmake)))
+ (home-page "https://launchpad.net/deja-dup")
+ (synopsis "Simple backup tool, for regular encrypted backups")
+ (description
+ "Déjà Dup is a simple backup tool, for regular encrypted backups. It
+uses duplicity as the backend, which supports incremental backups and storage
+either on a local, or remote machine via a number of methods.")
+ (license license:gpl3+)))
+
(define-public dia
;; This version from GNOME's repository includes fixes for compiling with
;; recent versions of the build tools. The latest activity on the
diff --git a/gnu/packages/patches/deja-dup-use-ref-keyword-for-iter.patch b/gnu/packages/patches/deja-dup-use-ref-keyword-for-iter.patch
new file mode 100644
index 000000000..a03e0c548
--- /dev/null
+++ b/gnu/packages/patches/deja-dup-use-ref-keyword-for-iter.patch
@@ -0,0 +1,41 @@
+From 5676766be5e845ccb6cdf46cfa8722497f151752 Mon Sep 17 00:00:00 2001
+From: Jeremy Bicha <jbicha <at> ubuntu.com>
+Date: Fri, 16 Jun 2017 15:11:37 -0400
+Subject: Use 'ref' keyword for iter, requires vala 0.36
+
+
+diff --git a/deja-dup/widgets/ConfigList.vala b/deja-dup/widgets/ConfigList.vala
+index 15de2d6..02cd81a 100644
+--- a/deja-dup/widgets/ConfigList.vala
++++ b/deja-dup/widgets/ConfigList.vala
+@@ -333,7 +333,7 @@ public class ConfigList : ConfigWidget
+
+ model.row_deleted.disconnect(write_to_config);
+ foreach (Gtk.TreeIter iter in iters) {
+- (model as Gtk.ListStore).remove(iter);
++ (model as Gtk.ListStore).remove(ref iter);
+ }
+ model.row_deleted.connect(write_to_config);
+
+diff --git a/deja-dup/widgets/ConfigLocation.vala b/deja-dup/widgets/ConfigLocation.vala
+index 869e2a8..d21c556 100644
+--- a/deja-dup/widgets/ConfigLocation.vala
++++ b/deja-dup/widgets/ConfigLocation.vala
+@@ -397,12 +397,12 @@ public class ConfigLocation : ConfigWidget
+ if (uuid == saved_uuid)
+ return;
+
+- store.remove(iter);
++ store.remove(ref iter);
+
+ if (--num_volumes == 0) {
+ Gtk.TreeIter sep_iter;
+ if (store.get_iter_from_string(out sep_iter, index_vol_sep.to_string())) {
+- store.remove(sep_iter);
++ store.remove(ref sep_iter);
+ index_vol_sep = -2;
+ }
+ }
+--
+cgit v0.10.2
+
--
2.13.1
Information forwarded
to
guix-patches <at> gnu.org
:
bug#27249
; Package
guix-patches
.
(Sat, 22 Jul 2017 09:34:01 GMT)
Full text and
rfc822 format available.
Message #22 received at 27249 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
On Thu, 20 Jul 2017 11:28:11 +0200
ludo <at> gnu.org (Ludovic Courtès) wrote:
> Heya Christopher,
>
> Christopher Baines <mail <at> cbaines.net> skribis:
>
> > On 07/06/17 14:01, Ludovic Courtès wrote:
> >> Christopher Baines <mail <at> cbaines.net> skribis:
> >>
> >>> * gnu/packages/gnome.scm (deja-dup): New variable.
> >>
> >> There’s a couple of lint warnings fixed by the patch below:
>
> [...]
>
> >> Regarding propagated inputs:
> >>
> >>> + (propagated-inputs
> >>> + `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
> >>> + ("gobject-introspection" ,gobject-introspection)
> >>> + ("duplicity" ,duplicity)
> >>> + ("python" ,python2-minimal)
> >>> + ("python-pygobject" ,python2-pygobject)))
> >>
> >> Could you add a comment explaining why all this needs to be
> >> propagated? If there’s a way to avoid it, it’s even better (for
> >> instance, if deja-dup execs duplicity, we could hard-code the
> >> absolute file name of duplicity.)
> >
> > Thanks for your review Ludo, hopefully I can get around to looking
> > at deja-dup again at the weekend :)
>
> It’s been a long week-end. ;-) Could you take a look again so we can
> save this patch from bitrot?
Yep, its so long ago, I forget what I ended up doing that weekend!
I've sent another patch now. I think vala and dbus may have moved in
the mean time, so this one includes a patch from upstream to fix
compilation issues with vala 0.36, and the check stage had to be
disabled, as the tests no longer pass due to an issue with DBus.
As for the propagated-inputs, I made them all inputs, and tested the
application, and I couldn't see any problems.
[Message part 2 (application/pgp-signature, inline)]
Reply sent
to
ludo <at> gnu.org (Ludovic Courtès)
:
You have taken responsibility.
(Mon, 24 Jul 2017 12:51:01 GMT)
Full text and
rfc822 format available.
Notification sent
to
Christopher Baines <mail <at> cbaines.net>
:
bug acknowledged by developer.
(Mon, 24 Jul 2017 12:51:02 GMT)
Full text and
rfc822 format available.
Message #27 received at 27249-done <at> debbugs.gnu.org (full text, mbox):
Christopher Baines <mail <at> cbaines.net> skribis:
> * gnu/packages/gnome.scm (deja-dup): New variable.
> * gnu/packages/patches/deja-dup-use-ref-keyword-for-iter.patch: New file.
> * gnu/local.mk (dist_patch_DATA): Add patch file entry.
Awesome. Applied, thanks!
Ludo'.
Information forwarded
to
guix-patches <at> gnu.org
:
bug#27249
; Package
guix-patches
.
(Mon, 24 Jul 2017 12:52:01 GMT)
Full text and
rfc822 format available.
Message #30 received at 27249 <at> debbugs.gnu.org (full text, mbox):
Christopher Baines <mail <at> cbaines.net> skribis:
> * gnu/packages/gnome.scm (deja-dup): New variable.
> * gnu/packages/patches/deja-dup-use-ref-keyword-for-iter.patch: New file.
> * gnu/local.mk (dist_patch_DATA): Add patch file entry.
Oh you actually have commit access now, so please push!
Information forwarded
to
guix-patches <at> gnu.org
:
bug#27249
; Package
guix-patches
.
(Mon, 24 Jul 2017 20:01:02 GMT)
Full text and
rfc822 format available.
Message #33 received at 27249 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
On Mon, 24 Jul 2017 14:50:55 +0200
ludo <at> gnu.org (Ludovic Courtès) wrote:
> Christopher Baines <mail <at> cbaines.net> skribis:
>
> > * gnu/packages/gnome.scm (deja-dup): New variable.
> > * gnu/packages/patches/deja-dup-use-ref-keyword-for-iter.patch: New
> > file.
> > * gnu/local.mk (dist_patch_DATA): Add patch file entry.
>
> Oh you actually have commit access now, so please push!
Done! Thanks again for your review :)
[Message part 2 (application/pgp-signature, inline)]
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Tue, 22 Aug 2017 11:24:04 GMT)
Full text and
rfc822 format available.
This bug report was last modified 7 years and 306 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.