X2Go Bug report logs - #923
.xsession-x2go-errors improvements

version graph

Package: x2goserver; Maintainer for x2goserver is X2Go Developers <x2go-dev@lists.x2go.org>; Source for x2goserver is src:x2goserver.

Reported by: Orion Poplawski <orion@cora.nwra.com>

Date: Tue, 18 Aug 2015 15:55:01 UTC

Severity: important

Tags: pending

Found in version 4.0.1.19

Fixed in version 4.0.1.20

Done: X2Go Release Manager <git-admin@x2go.org>

Bug is archived. No further changes may be made.

Toggle useless messages

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to x2go-dev@lists.x2go.org, X2Go Developers <x2go-dev@lists.x2go.org>:
Bug#923; Package x2goserver. (Tue, 18 Aug 2015 15:55:02 GMT) (full text, mbox, link).


Acknowledgement sent to Orion Poplawski <orion@cora.nwra.com>:
New Bug report received and forwarded. Copy sent to X2Go Developers <x2go-dev@lists.x2go.org>. (Tue, 18 Aug 2015 15:55:02 GMT) (full text, mbox, link).


Message #5 received at submit@bugs.x2go.org (full text, mbox, reply):

From: Orion Poplawski <orion@cora.nwra.com>
To: submit@bugs.x2go.org
Subject: .xsession-x2go-errors improvements
Date: Tue, 18 Aug 2015 09:46:04 -0600
Package: x2goserver
Version: 4.0.1.19

First issue is that ~/.xsession-x2go-errors is always appended to so it grows
forever.  It should at least get rotated to .old file.

Second is with shared NFS home directories, multiple X2Go sessions get logged
to the same file which is confusing.  I would suggest putting the host name
into the log file name.

-- 
Orion Poplawski
Technical Manager                     303-415-9701 x222
NWRA, Boulder/CoRA Office             FAX: 303-415-9702
3380 Mitchell Lane                       orion@nwra.com
Boulder, CO 80301                   http://www.nwra.com


Information forwarded to x2go-dev@lists.x2go.org, X2Go Developers <x2go-dev@lists.x2go.org>:
Bug#923; Package x2goserver. (Wed, 19 Aug 2015 03:30:02 GMT) (full text, mbox, link).


Acknowledgement sent to Mike DePaulo <mikedep333@gmail.com>:
Extra info received and forwarded to list. Copy sent to X2Go Developers <x2go-dev@lists.x2go.org>. (Wed, 19 Aug 2015 03:30:02 GMT) (full text, mbox, link).


Message #10 received at 923@bugs.x2go.org (full text, mbox, reply):

From: Mike DePaulo <mikedep333@gmail.com>
To: 923@bugs.x2go.org
Subject: Re: [X2Go-Dev] Bug#923: .xsession-x2go-errors improvements
Date: Tue, 18 Aug 2015 23:25:52 -0400
[Message part 1 (text/plain, inline)]
On Tue, Aug 18, 2015 at 11:46 AM, Orion Poplawski <orion@cora.nwra.com>
wrote:

> Package: x2goserver
> Version: 4.0.1.19
>
> First issue is that ~/.xsession-x2go-errors is always appended to so it
> grows
> forever.  It should at least get rotated to .old file.
>

I wholeheartedly agree. Plus there are weird instances where a command will
make it grow to GB in size quickly.

In general, I believe in following what the local X.org server sessions do.
However, since I am often debugging issues with why apps are not working
properly with X2Go, I would rather rotate than delete.


> Second is with shared NFS home directories, multiple X2Go sessions get
> logged
> to the same file which is confusing.  I would suggest putting the host name
> into the log file name.


I wholeheartedly agree. Gluster (for HA home dirs) is affected too.

-Mike
[Message part 2 (text/html, inline)]

Information forwarded to x2go-dev@lists.x2go.org, X2Go Developers <x2go-dev@lists.x2go.org>:
Bug#923; Package x2goserver. (Sun, 23 Aug 2015 16:00:02 GMT) (full text, mbox, link).


Acknowledgement sent to Mihai Moldovan <ionic@ionic.de>:
Extra info received and forwarded to list. Copy sent to X2Go Developers <x2go-dev@lists.x2go.org>. (Sun, 23 Aug 2015 16:00:02 GMT) (full text, mbox, link).


Message #15 received at 923@bugs.x2go.org (full text, mbox, reply):

From: Mihai Moldovan <ionic@ionic.de>
To: Orion Poplawski <orion@cora.nwra.com>, 923@bugs.x2go.org
Subject: Re: [X2Go-Dev] .xsession-x2go-errors improvements
Date: Sun, 23 Aug 2015 17:56:17 +0200
[Message part 1 (text/plain, inline)]
On 18.08.2015 05:46 PM, Orion Poplawski wrote:
> Package: x2goserver
> Version: 4.0.1.19
> 
> First issue is that ~/.xsession-x2go-errors is always appended to so it grows
> forever.  It should at least get rotated to .old file.

I'm not sure that's an issue per se. Isn't that normal behavior for DEs/Login
Managers?

It's inconvenient, but I remember other software doing exactly the same thing,
so it's at least "consistent". But maybe I'm wrong. I see ~/.xsession-errors and
~/.xsession-errors.old on my system using LightDM. So you're probably right. But
that's for LightDM, not sure how other LMs or systems without a LM handle this?


> Second is with shared NFS home directories, multiple X2Go sessions get logged
> to the same file which is confusing.  I would suggest putting the host name
> into the log file name.

Okay, but that will break for systems with misconfigured/unset hostnames or
environments where every system has the same hostname. Additionally, multiple
sessions also get logged to the same file, so merely going for one file per host
name feels half-baked.



Mihai

[signature.asc (application/pgp-signature, attachment)]

Information forwarded to x2go-dev@lists.x2go.org, X2Go Developers <x2go-dev@lists.x2go.org>:
Bug#923; Package x2goserver. (Mon, 24 Aug 2015 15:25:01 GMT) (full text, mbox, link).


Acknowledgement sent to Orion Poplawski <orion@cora.nwra.com>:
Extra info received and forwarded to list. Copy sent to X2Go Developers <x2go-dev@lists.x2go.org>. (Mon, 24 Aug 2015 15:25:01 GMT) (full text, mbox, link).


Message #20 received at 923@bugs.x2go.org (full text, mbox, reply):

From: Orion Poplawski <orion@cora.nwra.com>
To: Mihai Moldovan <ionic@ionic.de>, 923@bugs.x2go.org
Subject: Re: [X2Go-Dev] .xsession-x2go-errors improvements
Date: Mon, 24 Aug 2015 09:16:29 -0600
On 08/23/2015 09:56 AM, Mihai Moldovan wrote:
> On 18.08.2015 05:46 PM, Orion Poplawski wrote:
>> Package: x2goserver
>> Version: 4.0.1.19
>>
>> First issue is that ~/.xsession-x2go-errors is always appended to so it grows
>> forever.  It should at least get rotated to .old file.
> 
> I'm not sure that's an issue per se. Isn't that normal behavior for DEs/Login
> Managers?
> 
> It's inconvenient, but I remember other software doing exactly the same thing,
> so it's at least "consistent". But maybe I'm wrong. I see ~/.xsession-errors and
> ~/.xsession-errors.old on my system using LightDM. So you're probably right. But
> that's for LightDM, not sure how other LMs or systems without a LM handle this?

On Fedora, /etc/X11/xinit/Xsession does:

    errfile="$HOME/.xsession-errors"
    if ( umask 077 && cp /dev/null "$errfile" 2> /dev/null ); then
        chmod 600 "$errfile"
        [ -x /sbin/restorecon ] && /sbin/restorecon $errfile
        exec > "$errfile" 2>&1

So it overwrites it without backup.  I would prefer a backup.  Perhaps I'll
file a bug...

> 
>> Second is with shared NFS home directories, multiple X2Go sessions get logged
>> to the same file which is confusing.  I would suggest putting the host name
>> into the log file name.
> 
> Okay, but that will break for systems with misconfigured/unset hostnames or
> environments where every system has the same hostname. Additionally, multiple
> sessions also get logged to the same file, so merely going for one file per host
> name feels half-baked.

I'm happy to have a suggestion for another key.  My one worry would be to not
use a key that is completely unique so we end up with a proliferation of
xsession error files like we already have with x2go session dirs.


-- 
Orion Poplawski
Technical Manager                     303-415-9701 x222
NWRA, Boulder/CoRA Office             FAX: 303-415-9702
3380 Mitchell Lane                       orion@nwra.com
Boulder, CO 80301                   http://www.nwra.com


Information forwarded to x2go-dev@lists.x2go.org, X2Go Developers <x2go-dev@lists.x2go.org>:
Bug#923; Package x2goserver. (Thu, 22 Oct 2015 07:15:02 GMT) (full text, mbox, link).


Acknowledgement sent to Mike Gabriel <mike.gabriel@das-netzwerkteam.de>:
Extra info received and forwarded to list. Copy sent to X2Go Developers <x2go-dev@lists.x2go.org>. (Thu, 22 Oct 2015 07:15:02 GMT) (full text, mbox, link).


Message #25 received at 923@bugs.x2go.org (full text, mbox, reply):

From: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
To: Nigra Truo <nigratruo@gmail.com>
Cc: x2go-user@lists.x2go.org, 923@bugs.x2go.org
Subject: Re: [X2Go-User] .xsession-x2go-errors filling up constantly
Date: Thu, 22 Oct 2015 07:10:03 +0000
[Message part 1 (text/plain, inline)]
Control: severity -1 important

On  Mi 21 Okt 2015 06:22:14 CEST, Nigra Truo wrote:

> I have a question about the above file. This file regularly reaches 1 GB in
> no time, and that for every user I use on the x2go server. How can I stop
> this from filling? I'm pretty sure this also affects performance, if it is
> filling up so fast.

This is a know issue [1]. Raising severity a bit...

Mike

[1] http://bugs.x2go.org/923
-- 

DAS-NETZWERKTEAM
mike gabriel, herweg 7, 24357 fleckeby
fon: +49 (1520) 1976 148

GnuPG Key ID 0x25771B31
mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de

freeBusy:
https://mail.das-netzwerkteam.de/mailxchange/kronolith/fb.php?u=m.gabriel%40das-netzwerkteam.de
[Message part 2 (application/pgp-signature, inline)]

Severity set to 'important' from 'normal' Request was from Mike Gabriel <mike.gabriel@das-netzwerkteam.de> to 923-submit@bugs.x2go.org. (Thu, 22 Oct 2015 07:15:02 GMT) (full text, mbox, link).


Information forwarded to x2go-dev@lists.x2go.org, X2Go Developers <x2go-dev@lists.x2go.org>:
Bug#923; Package x2goserver. (Sat, 13 Aug 2016 01:50:02 GMT) (full text, mbox, link).


Acknowledgement sent to Mihai Moldovan <ionic@ionic.de>:
Extra info received and forwarded to list. Copy sent to X2Go Developers <x2go-dev@lists.x2go.org>. (Sat, 13 Aug 2016 01:50:02 GMT) (full text, mbox, link).


Message #32 received at 923@bugs.x2go.org (full text, mbox, reply):

From: Mihai Moldovan <ionic@ionic.de>
To: 923-submitter@bugs.x2go.org
Cc: control@bugs.x2go.org, 923@bugs.x2go.org
Subject: X2Go issue (in src:x2goserver) has been marked as pending for release
Date: Sat, 13 Aug 2016 03:45:16 +0200 (CEST)
tag #923 pending
fixed #923 4.0.1.20
thanks

Hello,

X2Go issue #923 (src:x2goserver) reported by you has been
fixed in X2Go Git. You can see the changelog below, and you can
check the diff of the fix at:

    http://code.x2go.org/gitweb?p=x2goserver.git;a=commitdiff;h=65e9b8c

The issue will most likely be fixed in src:x2goserver (4.0.1.20).

light+love
X2Go Git Admin (on behalf of the sender of this mail)

---
commit 65e9b8c308aad422c3e84760b63789ce58efedae
Author: Mihai Moldovan <ionic@ionic.de>
Date:   Sat Aug 13 03:26:26 2016 +0200

    x2goserver-xsession/etc/Xsession: rotate old log/error file before appending new data. Fixes: #923.

diff --git a/debian/changelog b/debian/changelog
index 5af3e93..f125f8b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -90,6 +90,8 @@ x2goserver (4.0.1.20-0x2go1) UNRELEASED; urgency=low
       creating session log/error file and add uname call where necessary.
     - x2goserver-xsession/etc/Xsession: include hostname in
       xsession-x2go-errors file name. Part of #923.
+    - x2goserver-xsession/etc/Xsession: rotate old log/error file before
+      appending new data. Fixes: #923.
   * x2goserver.spec:
     - Add sudo and logcheck as BuildRequires and Requires. Don't own
       directories that are owned by sudo and logcheck. Logcheck is not


Added tag(s) pending. Request was from Mihai Moldovan <ionic@ionic.de> to control@bugs.x2go.org. (Sat, 13 Aug 2016 01:50:03 GMT) (full text, mbox, link).


Marked as fixed in versions 4.0.1.20. Request was from Mihai Moldovan <ionic@ionic.de> to control@bugs.x2go.org. (Sat, 13 Aug 2016 01:50:03 GMT) (full text, mbox, link).


Message sent on to Orion Poplawski <orion@cora.nwra.com>:
Bug#923. (Sat, 13 Aug 2016 01:50:04 GMT) (full text, mbox, link).


Information forwarded to x2go-dev@lists.x2go.org, X2Go Developers <x2go-dev@lists.x2go.org>:
Bug#923; Package x2goserver. (Sun, 20 Nov 2016 19:20:02 GMT) (full text, mbox, link).


Acknowledgement sent to X2Go Release Manager <git-admin@x2go.org>:
Extra info received and forwarded to list. Copy sent to X2Go Developers <x2go-dev@lists.x2go.org>. (Sun, 20 Nov 2016 19:20:02 GMT) (full text, mbox, link).


Message #44 received at 923@bugs.x2go.org (full text, mbox, reply):

From: X2Go Release Manager <git-admin@x2go.org>
To: 923-submitter@bugs.x2go.org
Cc: control@bugs.x2go.org, 923@bugs.x2go.org
Subject: X2Go issue (in src:x2goserver) has been marked as closed
Date: Sun, 20 Nov 2016 12:43:00 +0100 (CET)
close #923
thanks

Hello,

we are very hopeful that X2Go issue #923 reported by you
has been resolved in the new release (4.0.1.20) of the
X2Go source project »src:x2goserver«.

You can view the complete changelog entry of src:x2goserver (4.0.1.20)
below, and you can use the following link to view all the code changes
between this and the last release of src:x2goserver.

    http://code.x2go.org/gitweb?p=x2goserver.git;a=commitdiff;h=71e1e82d82acc718da71301d2fbd67eb0a71ad44;hp=8a494e794402c1b124d861893d649726a9016eb7

If you feel that the issue has not been resolved satisfyingly, feel
free to reopen this bug report or submit a follow-up report with
further observations described based on the new released version
of src:x2goserver.

Thanks a lot for contributing to X2Go!!!

light+love
X2Go Git Admin (on behalf of the sender of this mail)

---
X2Go Component: src:x2goserver
Version: 4.0.1.20-0x2go1
Status: RELEASE
Date: Sun, 20 Nov 2016 12:39:36 +0100
Fixes: 799 812 888 889 903 922 923 985 1065 1068 1073
Changes: 
 x2goserver (4.0.1.20-0x2go1) RELEASED; urgency=low
 .
   [ Mike DePaulo ]
   * New upstream version (4.0.1.20):
     - TERMINAL Session: Add support for qterminal
       (Lightweight terminal emulator written in Qt)
     - TRINITY: Add support for Q4OS
 .
   [ Mihai Moldovan ]
   * New upstream version (4.0.1.20):
     - x2goserver/bin/x2gogetapps: respect NoDisplay and Hidden values, don't
       parse the full desktop file if there are non-Desktop Entries groups.
       Based on a patch submitted by Jason Alavaliant. Fixes: #812.
     - x2goserver/bin/x2gogetapps: do not print spurious newlines.
     - Change string "X2go" to "X2Go" where appropriate.
     - Add runcommand.d hooks to x2goserver-extensions Makefile.
     - x2goserver/bin/x2gosessionlimit: don't iterate over the whole groups
       file. Only check the primary and secondary groups as returned by
       getgid()/getgroups(). Fixes long delays in session startup on machines
       with a gazillion of groups.
     - x2goserver/sbin/x2gocleansessions: re-fetch the current sessions' status
       before handling it. Using the "cached" value from the initial
       x2golistsessions run may be desynchronized with the actual current
       value. Avoids a race condition logging users out after they attached to a
       session.
     - x2goserver/sbin/x2gocleansessions: rename %remembered_sessions_since to
       %remembered_sessions_status_since. That's what it really is. Add
       comments to further clarify what it's actually doing. Change it to
       include a timestamp instead of the "iteration count multiplied by two"
       value. Compare timestamps to see if killing hanging nxagent processes is
       necessary.
     - x2goserver/sbin/x2gocleansessions: rename
       %remembered_sessions_status_since to
       %remembered_sessions_status_since_time. Add
       %remembered_sessions_status_since_iterations that will come in handy for
       the next change.
     - x2goserver/sbin/x2gocleansessions: give suspended-but-running sessions a
       grace period of one iteration. Fixes: #888.
     - x2goserver/sbin/x2gocleansessions: fix ugly missing whitespace.
     - x2goserver/sbin/x2gocleansessions: move up session status sync a bit,
       don't update session state when session has been removed from the
       database.
     - x2goserver/sbin/x2gocleansessions: unify log messages. Move dangling
       line around.
     - x2goserver/sbin/x2gocleansessions: whitespace only.
     - x2goserver/sbin/x2gocleansessions: also delete entries in the other,
       overlooked hashes.
     - x2goserver/sbin/x2gocleansessions: move socket and lock file cleanup
       into time-based block for finished/failed sessions.
     - x2goserver/sbin/x2gocleansessions: add @remembered_finished_sessions
       array. Merge with session list as queried from the database (won't
       include finished/failed sessions) and remember F-state sessions via this
       array. Only delete elements once work on these has been finished.
     - x2goserver/sbin/x2gocleansessions: don't add failed/finished sessions to
       remembered list if that list already includes them.
     - x2goserver/sbin/x2gocleansessions: don't use gmtime (time ()) but merely
       time (). The former one returns a formatted date-time string, which
       can't be checked by forming a difference. The latter one returns an UNIX
       timestamp, which is what we really want... minus leap seconds. Let's
       hope this doesn't bite back some time or later...
     - x2goserver/sbin/x2gocleansessions: add debugging output to show the
       state change when updating the cached state result.
     - x2goserver/sbin/x2gocleansessions: only output status refreshing debug
       message if the old and new states actually differ. Prevents log spam.
     - x2goserver/bin/x2gostartagent: changes to Robert Nowotny's SSH_PORT
       patch. Fixes: #922. Use default outgoing interface to determine IP
       address. Use the whole range of ${RANDOM}'s pool. Seed it for good
       measure. Change the default method to randomization instead of IP-based
       initialization. If IP-based initialization was requested but the default
       outgoing IP address unavailable, fall back to randomization.
     - x2goserver/bin/x2goruncommand: whitespace and comment changes only.
     - x2goserver/bin/x2gocleansessions: replace system_capture_stdout_output()
       with actual implementation. We don't have that function on the release
       branch.
     - x2goserver-xsession/etc/Xsession: use /bin/bash explicitly on RedHat-,
       Gentoo- and SuSE-based systems. Users might change /bin/sh to point to a
       shell like mksh or dash, which do not support the -l or -c flags to
       exec. C.f., BGO #575022 (Gentoo.)
     - x2goserver/bin/x2gomountdirs: remove blowfish Cipher spec hardcoded for
       sshfs mounts. The speed improvement is probably mostly an illusion
       (unless talking about high-bandwidth links) and more importantly recent
       OpenSSH server versions seem to disable the Blowfish cipher by default,
       leading to errors like "Connection reset by peer."
     - x2goserver/bin/x2goruncommand: whitespace only.
     - x2goserver/sbin/x2gocleansessions: add Perl documentation and --help,
       -h, -? and --man options. Fixes: #1065. Also print a usage message on
       unknown options.
     - x2goserver/man/man8/x2gocleansessions.8: drop obsolete man page.
     - x2goserver-xsession/etc/Xsession: fix uname calls when (potentially)
       creating session log/error file and add uname call where necessary.
     - x2goserver-xsession/etc/Xsession: include hostname in
       xsession-x2go-errors file name. Part of #923.
     - x2goserver-xsession/etc/Xsession: rotate old log/error file before
       appending new data. Fixes: #923.
     - x2goserver-xsession/etc/Xsession: fix wrong variable usage.
       Fixes: #1073.
     - x2goserver/sbin/x2gocleansessions: move in-file POD to end of file,
       rather than "commenting" out all the remaining code. Fixes: #1068.
     - x2goserver/sbin/x2godbadmin: exit earlier when not finding the required
       "x2gouser" user.
   * x2goserver.spec:
     - Add sudo and logcheck as BuildRequires and Requires. Don't own
       directories that are owned by sudo and logcheck. Logcheck is not
       available on *SUSE, FC < 20 and RHEL, so for those distros still own the
       directories.
     - Typo fix in comment: Recommands -> Recommends.
     - Fix installation on OpenSUSE 12.3 and higher: has replaced pwdutils with
       shadow. Also affects SLE{S,D} 12.
     - Add workaround documentation for sudoers on *SUSE 11.
     - Add shadow/shadow-utils/pwdutils Requires to x2goserver-printing
       sub package.
     - Add new dependency on bash.
     - Add new dependency on xkeyboard-config to x2goserver. Fixes: #903.
     - Add new dependency on perl and the Cwd module to x2goserver-xsession.
       Part of #923.
   * debian/control:
     - Add new dependency on bash.
     - Add new dependency on xkb-data to x2goserver.
     - Maintainer change in package: X2Go Developers <x2go-dev@lists.x2go.org>.
     - Uploaders: add myself. Also, force a rebuild due to the changed
       versioning.
     - Add new dependency on perl-modules for Cwd. Part of #923.
 .
   [ Henning Heinold ]
   * New upstream version (4.0.1.20):
     - x2goserver/sbin/x2godbadmin: remove trailing whitespace.
     - x2goserver/sbin/x2godbadmin: revoke all PRIVILEGES before trying to
       delete a user on postgres. Fixes: #889.
 .
   [ Mike Gabriel ]
   * debian/x2goserver.preinst:
     + Use proper comment header explaining about preinst script argument
       calls (not postinst).
 .
   [ Robert Nowotny ]
   * New upstream version (4.0.1.20):
     - x2goserver/bin/x2gostartagent: original patch for SSH_PORT
       randomization/IP-based initialization. Submitted as #922.
 .
   [ Stefan Baur ]
   * New upstream version (4.0.1.20):
     - x2goserver/bin/x2goruncommand: add the other trinity launcher scripts in
       order from newest to oldest. Fixes: #985.
 .
   [ Tor Perkins ]
   * New upstream version (4.0.1.20):
     - x2goserver/bin/x2goruncommand: capture x2goruncommand debug output for
       x2gofeature X2GO_XSESSION.
 .
   [ Orion Poplawski ]
   * New upstream version (4.0.1.20):
     - x2goserver/bin/x2golistdesktops: drop -u parameter to ss. Fixes: #799.
       We would filter out UDP sockets later anyway and the combination -lxu is
       known to be broken with some versions of iproute2.


Marked Bug as done Request was from X2Go Release Manager <git-admin@x2go.org> to control@bugs.x2go.org. (Sun, 20 Nov 2016 19:20:03 GMT) (full text, mbox, link).


Notification sent to Orion Poplawski <orion@cora.nwra.com>:
Bug acknowledged by developer. (Sun, 20 Nov 2016 19:20:03 GMT) (full text, mbox, link).


Message sent on to Orion Poplawski <orion@cora.nwra.com>:
Bug#923. (Sun, 20 Nov 2016 19:20:04 GMT) (full text, mbox, link).


Bug archived. Request was from Debbugs Internal Request <owner@bugs.x2go.org> to internal_control@bugs.x2go.org. (Mon, 19 Dec 2016 06:24:02 GMT) (full text, mbox, link).


Send a report that this bug log contains spam.


X2Go Developers <owner@bugs.x2go.org>. Last modified: Wed Nov 20 08:57:34 2019; Machine Name: ymir.das-netzwerkteam.de

X2Go Bug tracking system

Debbugs is free software and licensed under the terms of the GNU Public License version 2. The current version can be obtained from https://bugs.debian.org/debbugs-source/.

Copyright © 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson, 2005-2017 Don Armstrong, and many other contributors.