Package: emacs;
Reported by: Michael Albinus <michael.albinus <at> gmx.de>
Date: Mon, 20 Mar 2023 08:57:02 UTC
Severity: normal
Tags: patch
Found in version 29.0.60
Fixed in version 29.1
Done: Michael Albinus <michael.albinus <at> gmx.de>
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 62289 in the body.
You can then email your comments to 62289 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
bug-gnu-emacs <at> gnu.org
:bug#62289
; Package emacs
.
(Mon, 20 Mar 2023 08:57:02 GMT) Full text and rfc822 format available.Michael Albinus <michael.albinus <at> gmx.de>
:bug-gnu-emacs <at> gnu.org
.
(Mon, 20 Mar 2023 08:57:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Michael Albinus <michael.albinus <at> gmx.de> To: bug-gnu-emacs <at> gnu.org Subject: 29.0.60; eglot-test-tramp-test-2 fails on EMBA Date: Mon, 20 Mar 2023 09:56:03 +0100
[Message part 1 (text/plain, inline)]
The test eglot-test-tramp-test-2 fails on EMBA: --8<---------------cut here---------------start------------->8--- Test eglot-test-tramp-test-2 backtrace: signal(end-of-file ("Error reading from stdin")) tramp-error((tramp-file-name "mock" nil nil "55ffaf6b25da" nil "/tmp tramp-signal-hook-function(end-of-file ("Error reading from stdin")) yes-or-no-p("Lock file on local temporary directory, do you wan...") tramp-handle-lock-file("/mock:55ffaf6b25da:/tmp/eglot--fixtureF9ktLK apply(tramp-handle-lock-file "/mock:55ffaf6b25da:/tmp/eglot--fixture tramp-sh-file-name-handler(lock-file "/mock:55ffaf6b25da:/tmp/eglot- apply(tramp-sh-file-name-handler lock-file "/mock:55ffaf6b25da:/tmp/ tramp-file-name-handler(lock-file "/mock:55ffaf6b25da:/tmp/eglot--fi insert("p ") (let (c-notifs) (advice-add #'jsonrpc--log-event :before #'(lambda ( (unwind-protect (let (c-notifs) (advice-add #'jsonrpc--log-event :be (save-current-buffer (set-buffer (eglot--find-file-noselect "project (let ((eglot-server-programs '((c-mode "clangd")))) (save-current-bu (closure (company-candidates typescript-mode-abbrev-table typescript funcall((closure (company-candidates typescript-mode-abbrev-table ty (prog1 (funcall fn) (setq test-body-successful-p t)) (let* ((process-environment (append (list "XDG_CONFIG_HOME=/dev/null (unwind-protect (let* ((process-environment (append (list "XDG_CONFI (let* ((fixture-directory (make-nearby-temp-file "eglot--fixture" t) eglot--call-with-fixture((("project" ("foo.c" . "const char write_da eglot-tests--lsp-abiding-column-1() funcall(eglot-tests--lsp-abiding-column-1) (let* ((tramp-remote-path (cons 'tramp-own-remote-path tramp-remote- eglot--call-with-tramp-test(eglot-tests--lsp-abiding-column-1) (closure (tramp-histfile-override company-candidates typescript-mode ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test ert-run-test(#s(ert-test :name eglot-test-tramp-test-2 :documentatio ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp)))) ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/progmodes/eglot-test command-line() normal-top-level() Test eglot-test-tramp-test-2 condition: (end-of-file "Error reading from stdin") FAILED 50/50 eglot-test-tramp-test-2 (1.173894 sec) at lisp/progmodes/eglot-tests.el:1277 --8<---------------cut here---------------end--------------->8--- The following patch should fix it.
[Message part 2 (text/x-patch, inline)]
diff --git a/test/lisp/progmodes/eglot-tests.el b/test/lisp/progmodes/eglot-tests.el index 7a90d68d213..2388cf9ef51 100644 --- a/test/lisp/progmodes/eglot-tests.el +++ b/test/lisp/progmodes/eglot-tests.el @@ -1261,6 +1261,7 @@ eglot--call-with-tramp-test ;; really just the local host. (let* ((tramp-remote-path (cons 'tramp-own-remote-path tramp-remote-path)) (tramp-histfile-override t) + (tramp-allow-unsafe-temporary-files t) (tramp-verbose 1) (temporary-file-directory ert-remote-temporary-file-directory) (default-directory temporary-file-directory))
[Message part 3 (text/plain, inline)]
Best regards, Michael. In GNU Emacs 29.0.60 (build 21, x86_64-pc-linux-gnu, GTK+ Version 3.24.37, cairo version 1.17.6) of 2023-03-18 built on gandalf Repository revision: 0eddfa28ebdba3b1e5b3249416f14ea67bd41e3c Repository branch: emacs-29 Windowing system distributor 'The X.Org Foundation', version 11.0.12201008 System Description: Fedora Linux 37 (Workstation Edition) Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG LIBOTF LIBSELINUX LIBXML2 M17N_FLT MODULES NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB Important settings: value of $LANG: en_US.UTF-8 value of $XMODIFIERS: @im=ibus locale-coding-system: utf-8 Major mode: Group Minor modes in effect: gnus-undo-mode: t display-time-mode: t shell-dirtrack-mode: t delete-selection-mode: t icomplete-mode: t global-goto-address-mode: t goto-address-mode: t tooltip-mode: t global-eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t buffer-read-only: t column-number-mode: t line-number-mode: t indent-tabs-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: /home/albinus/src/elpa/packages/tramp-theme/tramp-theme-autoloads hides /home/albinus/.emacs.d/elpa/tramp-theme-0.2/tramp-theme-autoloads /home/albinus/src/elpa/packages/tramp-theme/tramp-theme hides /home/albinus/.emacs.d/elpa/tramp-theme-0.2/tramp-theme /home/albinus/src/elpa/packages/tramp-theme/tramp-theme-pkg hides /home/albinus/.emacs.d/elpa/tramp-theme-0.2/tramp-theme-pkg /home/albinus/.emacs.d/elpa/hydra-0.15.0/lv hides /home/albinus/.emacs.d/elpa/lv-0.15.0/lv /home/albinus/src/elpa/packages/debbugs/debbugs hides /home/albinus/.emacs.d/elpa/debbugs-0.35/debbugs /home/albinus/src/elpa/packages/debbugs/debbugs-org hides /home/albinus/.emacs.d/elpa/debbugs-0.35/debbugs-org /home/albinus/src/elpa/packages/debbugs/debbugs-gnu hides /home/albinus/.emacs.d/elpa/debbugs-0.35/debbugs-gnu /home/albinus/src/elpa/packages/debbugs/debbugs-guix hides /home/albinus/.emacs.d/elpa/debbugs-0.35/debbugs-guix /home/albinus/src/elpa/packages/debbugs/debbugs-browse hides /home/albinus/.emacs.d/elpa/debbugs-0.35/debbugs-browse /home/albinus/src/elpa/packages/debbugs/debbugs-pkg hides /home/albinus/.emacs.d/elpa/debbugs-0.35/debbugs-pkg /home/albinus/src/elpa/packages/debbugs/debbugs-autoloads hides /home/albinus/.emacs.d/elpa/debbugs-0.35/debbugs-autoloads /home/albinus/src/elpa/packages/debbugs/debbugs-compat hides /home/albinus/.emacs.d/elpa/debbugs-0.35/debbugs-compat /home/albinus/src/tramp/lisp/tramp-container hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp-container /home/albinus/src/tramp/lisp/tramp-sh hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp-sh /home/albinus/src/tramp/lisp/tramp-compat hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp-compat /home/albinus/src/tramp/lisp/tramp hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp /home/albinus/src/tramp/lisp/tramp-rclone hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp-rclone /home/albinus/src/tramp/lisp/tramp-cmds hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp-cmds /home/albinus/src/tramp/lisp/tramp-gvfs hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp-gvfs /home/albinus/src/tramp/lisp/tramp-uu hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp-uu /home/albinus/src/tramp/lisp/tramp-crypt hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp-crypt /home/albinus/src/tramp/lisp/tramp-integration hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp-integration /home/albinus/src/tramp/lisp/tramp-archive hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp-archive /home/albinus/src/tramp/lisp/tramp-fuse hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp-fuse /home/albinus/src/tramp/lisp/tramp-adb hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp-adb /home/albinus/src/tramp/lisp/trampver hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/trampver /home/albinus/src/tramp/lisp/tramp-ftp hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp-ftp /home/albinus/src/tramp/lisp/tramp-smb hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp-smb /home/albinus/src/tramp/lisp/tramp-cache hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp-cache /home/albinus/src/tramp/lisp/tramp-sudoedit hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp-sudoedit /home/albinus/src/tramp/lisp/tramp-sshfs hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp-sshfs /home/albinus/src/tramp/lisp/tramp-loaddefs hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp-loaddefs /home/albinus/src/tramp/lisp/tramp-sh hides /usr/local/share/emacs/site-lisp/tramp-sh /home/albinus/src/tramp/lisp/tramp-cmds hides /usr/local/share/emacs/site-lisp/tramp-cmds /home/albinus/src/tramp/lisp/tramp-gvfs hides /usr/local/share/emacs/site-lisp/tramp-gvfs /home/albinus/src/tramp/lisp/tramp-ftp hides /usr/local/share/emacs/site-lisp/tramp-ftp /home/albinus/src/tramp/lisp/tramp-crypt hides /usr/local/share/emacs/site-lisp/tramp-crypt /home/albinus/src/tramp/lisp/tramp-adb hides /usr/local/share/emacs/site-lisp/tramp-adb /home/albinus/src/tramp/lisp/tramp hides /usr/local/share/emacs/site-lisp/tramp /home/albinus/src/tramp/lisp/tramp-cache hides /usr/local/share/emacs/site-lisp/tramp-cache /home/albinus/src/tramp/lisp/tramp-rclone hides /usr/local/share/emacs/site-lisp/tramp-rclone /home/albinus/src/tramp/lisp/tramp-compat hides /usr/local/share/emacs/site-lisp/tramp-compat /home/albinus/src/tramp/lisp/tramp-integration hides /usr/local/share/emacs/site-lisp/tramp-integration /home/albinus/src/tramp/lisp/tramp-archive hides /usr/local/share/emacs/site-lisp/tramp-archive /home/albinus/src/tramp/lisp/tramp-sudoedit hides /usr/local/share/emacs/site-lisp/tramp-sudoedit /home/albinus/src/tramp/lisp/tramp-loaddefs hides /usr/local/share/emacs/site-lisp/tramp-loaddefs /home/albinus/src/tramp/lisp/tramp-uu hides /usr/local/share/emacs/site-lisp/tramp-uu /home/albinus/src/tramp/lisp/tramp-smb hides /usr/local/share/emacs/site-lisp/tramp-smb /home/albinus/src/tramp/lisp/trampver hides /usr/local/share/emacs/site-lisp/trampver /home/albinus/.emacs.d/elpa/transient-20230304.1149/transient hides /home/albinus/src/emacs-29/lisp/transient /home/albinus/src/tramp/lisp/trampver hides /home/albinus/src/emacs-29/lisp/net/trampver /home/albinus/src/tramp/lisp/tramp-uu hides /home/albinus/src/emacs-29/lisp/net/tramp-uu /home/albinus/src/tramp/lisp/tramp-sudoedit hides /home/albinus/src/emacs-29/lisp/net/tramp-sudoedit /home/albinus/src/tramp/lisp/tramp-sshfs hides /home/albinus/src/emacs-29/lisp/net/tramp-sshfs /home/albinus/src/tramp/lisp/tramp-smb hides /home/albinus/src/emacs-29/lisp/net/tramp-smb /home/albinus/src/tramp/lisp/tramp-sh hides /home/albinus/src/emacs-29/lisp/net/tramp-sh /home/albinus/src/tramp/lisp/tramp-rclone hides /home/albinus/src/emacs-29/lisp/net/tramp-rclone /home/albinus/src/tramp/lisp/tramp-loaddefs hides /home/albinus/src/emacs-29/lisp/net/tramp-loaddefs /home/albinus/src/tramp/lisp/tramp-gvfs hides /home/albinus/src/emacs-29/lisp/net/tramp-gvfs /home/albinus/src/tramp/lisp/tramp-fuse hides /home/albinus/src/emacs-29/lisp/net/tramp-fuse /home/albinus/src/tramp/lisp/tramp-ftp hides /home/albinus/src/emacs-29/lisp/net/tramp-ftp /home/albinus/src/tramp/lisp/tramp hides /home/albinus/src/emacs-29/lisp/net/tramp /home/albinus/src/tramp/lisp/tramp-crypt hides /home/albinus/src/emacs-29/lisp/net/tramp-crypt /home/albinus/src/tramp/lisp/tramp-integration hides /home/albinus/src/emacs-29/lisp/net/tramp-integration /home/albinus/src/tramp/lisp/tramp-compat hides /home/albinus/src/emacs-29/lisp/net/tramp-compat /home/albinus/src/tramp/lisp/tramp-cmds hides /home/albinus/src/emacs-29/lisp/net/tramp-cmds /home/albinus/src/tramp/lisp/tramp-cache hides /home/albinus/src/emacs-29/lisp/net/tramp-cache /home/albinus/src/tramp/lisp/tramp-archive hides /home/albinus/src/emacs-29/lisp/net/tramp-archive /home/albinus/src/tramp/lisp/tramp-adb hides /home/albinus/src/emacs-29/lisp/net/tramp-adb /home/albinus/src/tramp/lisp/tramp-container hides /home/albinus/src/emacs-29/lisp/net/tramp-container ~/lisp/dbus hides /home/albinus/src/emacs-29/lisp/net/dbus Features: (shadow sort mail-extr emacsbug pop3 utf-7 nndraft nnmh nnml network-stream nsm gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig gnus-cache gnus-sum shr pixel-fill kinsoku url-file svg dom nnnil smtpmail gnus-demon nntp gnus-group gnus-undo gnus-start gnus-dbus dbus xml gnus-cloud nnimap nnmail mail-source utf7 nnoo gnus-spec gnus-int gnus-range message sendmail yank-media puny rfc822 mml mml-sec epa derived epg rfc6068 epg-config mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader gnus-win gnus nnheader gnus-util text-property-search mail-utils range mm-util mail-prsvr wid-edit face-remap ob-shell ob ob-tangle ol org-src ob-ref ob-lob ob-table ob-exp ob-comint ob-core org-cycle org-fold org-fold-core ob-eval org-keys oc org-compat org-version org-macs vc vc-dispatcher time tramp-cache time-stamp tramp-sh lxd-tramp lxc-tramp tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat warnings icons shell pcomplete comint ansi-osc ansi-color ring parse-time iso8601 time-date ls-lisp format-spec delsel ido jka-compr icomplete dired dired-loaddefs goto-addr thingatpt envrc-autoloads vertico-autoloads dired-rsync-autoloads transient-dwim-autoloads transient-autoloads orderless-autoloads recentf-remove-sudo-tramp-prefix-autoloads auth-source-keytar-autoloads direnv-autoloads flycheck-autoloads dockerfile-mode-autoloads auth-source-xoauth2-autoloads yaml-mode-autoloads relint-autoloads counsel-tramp-autoloads auto-virtualenv-autoloads helm-projectile-autoloads lsp-java-autoloads ibuffer-tramp-autoloads jarchive-autoloads dap-mode-autoloads lsp-docker-autoloads yaml-autoloads lsp-treemacs-autoloads treemacs-autoloads cfrs-autoloads posframe-autoloads hydra-autoloads pfuture-autoloads lsp-mode-autoloads lv-autoloads markdown-mode-autoloads ht-autoloads ace-window-autoloads alert-autoloads debbugs-autoloads pythonic-autoloads f-autoloads keytar-autoloads ssh-deploy-autoloads lxc-tramp-autoloads xr-autoloads pylint-autoloads clojure-mode-autoloads avy-autoloads mastodon-autoloads ts-autoloads s-autoloads persist-autoloads request-autoloads helm-tramp-autoloads helm-autoloads helm-core-autoloads async-autoloads auth-source-gopass-autoloads ednc-autoloads ghub-autoloads treepy-autoloads compat-autoloads bui-autoloads dash-autoloads info rx nlinum-autoloads projectile-autoloads package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs password-cache json subr-x map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads dbusbind inotify dynamic-setting system-font-setting font-render-setting cairo move-toolbar gtk x-toolkit xinput2 x multi-tty make-network-process emacs) Memory information: ((conses 16 199827 12632) (symbols 48 19752 0) (strings 32 65685 3383) (string-bytes 1 2293918) (vectors 16 34215) (vector-slots 8 423410 13887) (floats 8 245 492) (intervals 56 501 0) (buffers 976 21))
Michael Albinus <michael.albinus <at> gmx.de>
to control <at> debbugs.gnu.org
.
(Mon, 20 Mar 2023 08:59:01 GMT) Full text and rfc822 format available.bug-gnu-emacs <at> gnu.org
:bug#62289
; Package emacs
.
(Wed, 22 Mar 2023 13:31:02 GMT) Full text and rfc822 format available.Message #10 received at 62289 <at> debbugs.gnu.org (full text, mbox):
From: Michael Albinus <michael.albinus <at> gmx.de> To: 62289 <at> debbugs.gnu.org Subject: Re: bug#62289: 29.0.60; eglot-test-tramp-test-2 fails on EMBA Date: Wed, 22 Mar 2023 14:30:09 +0100
Michael Albinus <michael.albinus <at> gmx.de> writes: Hi Jiao, > The test eglot-test-tramp-test-2 fails on EMBA: This still fails on EMBA. > The following patch should fix it. > > diff --git a/test/lisp/progmodes/eglot-tests.el b/test/lisp/progmodes/eglot-tests.el > index 7a90d68d213..2388cf9ef51 100644 > --- a/test/lisp/progmodes/eglot-tests.el > +++ b/test/lisp/progmodes/eglot-tests.el > @@ -1261,6 +1261,7 @@ eglot--call-with-tramp-test > ;; really just the local host. > (let* ((tramp-remote-path (cons 'tramp-own-remote-path tramp-remote-path)) > (tramp-histfile-override t) > + (tramp-allow-unsafe-temporary-files t) > (tramp-verbose 1) > (temporary-file-directory ert-remote-temporary-file-directory) > (default-directory temporary-file-directory)) Shall I install the patch? Best regards, Michael.
Michael Albinus <michael.albinus <at> gmx.de>
:Michael Albinus <michael.albinus <at> gmx.de>
:Message #15 received at 62289-done <at> debbugs.gnu.org (full text, mbox):
From: Michael Albinus <michael.albinus <at> gmx.de> To: 62289-done <at> debbugs.gnu.org Subject: Re: bug#62289: 29.0.60; eglot-test-tramp-test-2 fails on EMBA Date: Tue, 28 Mar 2023 12:45:44 +0200
Version: 29.1 Michael Albinus <michael.albinus <at> gmx.de> writes: >> The test eglot-test-tramp-test-2 fails on EMBA: > > This still fails on EMBA. > >> The following patch should fix it. >> >> diff --git a/test/lisp/progmodes/eglot-tests.el b/test/lisp/progmodes/eglot-tests.el >> index 7a90d68d213..2388cf9ef51 100644 >> --- a/test/lisp/progmodes/eglot-tests.el >> +++ b/test/lisp/progmodes/eglot-tests.el >> @@ -1261,6 +1261,7 @@ eglot--call-with-tramp-test >> ;; really just the local host. >> (let* ((tramp-remote-path (cons 'tramp-own-remote-path tramp-remote-path)) >> (tramp-histfile-override t) >> + (tramp-allow-unsafe-temporary-files t) >> (tramp-verbose 1) >> (temporary-file-directory ert-remote-temporary-file-directory) >> (default-directory temporary-file-directory)) > > Shall I install the patch? No news is good news. I've pushed the patch to the emacs-29 branch, closing the bug. Best regards, Michael.
Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Tue, 25 Apr 2023 11:24:13 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.