GNU bug report logs - #59975
[PATCH] guix: Show better progress bars.

Previous Next

Package: guix-patches;

Reported by: Julien Lepiller <julien <at> lepiller.eu>

Date: Sun, 11 Dec 2022 18:03:01 UTC

Severity: normal

Tags: patch

Done: Julien Lepiller <julien <at> lepiller.eu>

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 59975 in the body.
You can then email your comments to 59975 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


Report forwarded to guix-patches <at> gnu.org:
bug#59975; Package guix-patches. (Sun, 11 Dec 2022 18:03:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Julien Lepiller <julien <at> lepiller.eu>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Sun, 11 Dec 2022 18:03:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Julien Lepiller <julien <at> lepiller.eu>
To: guix-patches <at> gnu.org
Subject: [PATCH] guix: Show better progress bars.
Date: Sun, 11 Dec 2022 19:00:59 +0100
[Message part 1 (text/plain, inline)]
Hi Guix!

The attached patch is a small improvement on our progress bars. Instead
of our cute ASCII art:

1.2MiB/s 00:04 [###               ]  18.5%

We get something a little more smooth:

1.1MiB/s 00:04 ▕███               ▏  17.1%
1.2MiB/s 00:05 ▕███▋              ▏  20.7%

Using unicode characters that can represent 1/8 of a character width.

I used port-encoding to detect when the output supports unicode, but
maybe there's something more dedicated to figuring that out? When the
port encoding is not UTF-8, we fall back to the ASCII version.

Thoughts?
[0001-guix-Show-better-progress-bars.patch (text/x-patch, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#59975; Package guix-patches. (Wed, 21 Dec 2022 16:21:02 GMT) Full text and rfc822 format available.

Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Julien Lepiller <julien <at> lepiller.eu>
To: guix-patches <at> gnu.org, 59975 <at> debbugs.gnu.org
Subject: Re: [bug#59975] [PATCH] guix: Show better progress bars.
Date: Wed, 21 Dec 2022 17:20:26 +0100
[Message part 1 (text/plain, inline)]
Hi Guix!

The patch is pretty simple, but I'm surprised nobody bikeshedded yet :)

Thoughts?

Le 11 décembre 2022 19:00:59 GMT+01:00, Julien Lepiller <julien <at> lepiller.eu> a écrit :
>Hi Guix!
>
>The attached patch is a small improvement on our progress bars. Instead
>of our cute ASCII art:
>
>1.2MiB/s 00:04 [###               ]  18.5%
>
>We get something a little more smooth:
>
>1.1MiB/s 00:04 ▕███               ▏  17.1%
>1.2MiB/s 00:05 ▕███▋              ▏  20.7%
>
>Using unicode characters that can represent 1/8 of a character width.
>
>I used port-encoding to detect when the output supports unicode, but
>maybe there's something more dedicated to figuring that out? When the
>port encoding is not UTF-8, we fall back to the ASCII version.
>
>Thoughts?
[Message part 2 (text/html, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#59975; Package guix-patches. (Wed, 21 Dec 2022 16:21:02 GMT) Full text and rfc822 format available.

Information forwarded to guix-patches <at> gnu.org:
bug#59975; Package guix-patches. (Fri, 06 Jan 2023 18:02:01 GMT) Full text and rfc822 format available.

Message #14 received at 59975 <at> debbugs.gnu.org (full text, mbox):

From: Simon Tournier <zimon.toutoune <at> gmail.com>
To: Julien Lepiller <julien <at> lepiller.eu>, 59975 <at> debbugs.gnu.org
Subject: Re: [bug#59975] [PATCH] guix: Show better progress bars.
Date: Fri, 06 Jan 2023 18:45:48 +0100
Hi Julien,

> Le 11 décembre 2022 19:00:59 GMT+01:00, Julien Lepiller <julien <at> lepiller.eu> a écrit :

>>1.1MiB/s 00:04 ▕███               ▏  17.1%
>>1.2MiB/s 00:05 ▕███▋              ▏  20.7%

On Wed, 21 Dec 2022 at 17:20, Julien Lepiller <julien <at> lepiller.eu> wrote:

> The patch is pretty simple, but I'm surprised nobody bikeshedded yet :)

Personally, I am not fan of fancy Unicode. :-)  But the patch LGTM.

Well, if there is no strong objection and since it is more than 25 days,
maybe you could apply it after waiting a couple more of days. :-)

Cheers,
simon






Information forwarded to guix-patches <at> gnu.org:
bug#59975; Package guix-patches. (Fri, 13 Jan 2023 17:09:02 GMT) Full text and rfc822 format available.

Message #17 received at 59975 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Julien Lepiller <julien <at> lepiller.eu>
Cc: 59975 <at> debbugs.gnu.org
Subject: Re: bug#59975: [PATCH] guix: Show better progress bars.
Date: Fri, 13 Jan 2023 18:07:42 +0100
Hello!

Julien Lepiller <julien <at> lepiller.eu> skribis:

> Hi Guix!
>
> The attached patch is a small improvement on our progress bars. Instead
> of our cute ASCII art:
>
> 1.2MiB/s 00:04 [###               ]  18.5%
>
> We get something a little more smooth:
>
> 1.1MiB/s 00:04 ▕███               ▏  17.1%
> 1.2MiB/s 00:05 ▕███▋              ▏  20.7%
>
> Using unicode characters that can represent 1/8 of a character width.

Woow, fancy!  Love it!!  Too bad I was too late to have it under the
Newtonmas tree. 🎄

> I used port-encoding to detect when the output supports unicode, but
> maybe there's something more dedicated to figuring that out? When the
> port encoding is not UTF-8, we fall back to the ASCII version.

One question: how likely is it that people won’t have a font with those
glyphs to display it correctly?

It would be good to check in xterm, Linux console with some default
font, and GNOME/Xfce terminals with defaults.

(Works for me in xterm and in Emacs, FWIW.)

>>From c428c80fd628797ae80029a0a22678ef55c68d6c Mon Sep 17 00:00:00 2001
> From: Julien Lepiller <julien <at> lepiller.eu>
> Date: Sun, 11 Dec 2022 18:51:13 +0100
> Subject: [PATCH] guix: Show better progress bars.
>
> * guix/progress.scm (progress-bar): When supported, use unicode variant.

Please describe all the changes.

> +(define-record-type* <progress-bar-style>
> +  progress-bar-style make-progress-bar-style progress-bar-style?
> +  (start  progress-bar-style-start
> +          (default #\x2595))
> +  (stop   progress-bar-style-stop
> +          (default #\x258f))
> +  (filled progress-bar-style-filled
> +          (default #\x2588))
> +  (steps  progress-bar-style-steps
> +          (default '(#\x258F #\x258E #\x258D #\x258C #\x258B #\x258A #\x2589))))
> +
> +(define unicode-bar-style (progress-bar-style))

How about just dropping the ‘default’ bits and being explicit here?

> +  (let* ((bar-style (if (equal? (port-encoding (current-output-port)) "UTF-8")
> +                        unicode-bar-style
> +                        ascii-bar-style))

In theory you want to check for Unicode-capable, not UTF-8-encoded.

There are ways to do that (see ‘right-arrow’ in (guix ui)), but it’s
more expensive and trickier, so what you’re doing here is good enough
IMO (I actually did that in (guix scripts weather) too).

> +         (bar-width (max 3 (- bar-width 2)))
> +         (intermediates (+ (length (progress-bar-style-steps bar-style)) 1))
> +         (step     (inexact->exact (floor (/ (* % bar-width intermediates) 100))))
> +         (filled   (quotient step intermediates))
> +         (intermediate
> +           (list-ref (cons #f (progress-bar-style-steps bar-style))
> +                     (modulo step intermediates)))
> +         (empty    (- bar-width filled (if intermediate 1 0))))
> +    (format #f "~a~a~a~a~a"

s/format/simple-format/ for slightly better performance.

Otherwise LGTM, thanks!

Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#59975; Package guix-patches. (Sun, 15 Jan 2023 10:13:02 GMT) Full text and rfc822 format available.

Message #20 received at 59975 <at> debbugs.gnu.org (full text, mbox):

From: Julien Lepiller <julien <at> lepiller.eu>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 59975 <at> debbugs.gnu.org
Subject: Re: bug#59975: [PATCH] guix: Show better progress bars.
Date: Sun, 15 Jan 2023 11:12:02 +0100
[Message part 1 (text/plain, inline)]
Le Fri, 13 Jan 2023 18:07:42 +0100,
Ludovic Courtès <ludo <at> gnu.org> a écrit :

> Hello!
> 
> Julien Lepiller <julien <at> lepiller.eu> skribis:
> 
> > Hi Guix!
> >
> > The attached patch is a small improvement on our progress bars.
> > Instead of our cute ASCII art:
> >
> > 1.2MiB/s 00:04 [###               ]  18.5%
> >
> > We get something a little more smooth:
> >
> > 1.1MiB/s 00:04 ▕███               ▏  17.1%
> > 1.2MiB/s 00:05 ▕███▋              ▏  20.7%
> >
> > Using unicode characters that can represent 1/8 of a character
> > width.  
> 
> Woow, fancy!  Love it!!  Too bad I was too late to have it under the
> Newtonmas tree. 🎄
> 
> > I used port-encoding to detect when the output supports unicode, but
> > maybe there's something more dedicated to figuring that out? When
> > the port encoding is not UTF-8, we fall back to the ASCII version.  
> 
> One question: how likely is it that people won’t have a font with
> those glyphs to display it correctly?
> 
> It would be good to check in xterm, Linux console with some default
> font, and GNOME/Xfce terminals with defaults.
> 
> (Works for me in xterm and in Emacs, FWIW.)

I think it's pretty common to have these characters, since they are
used by many other projects. However, testing on a tty, I can only see
the filled characters, but not the semi-filled ones, so I get something
like:

?███?     ?

What do you think?

Attached v2.
[0001-guix-Show-better-progress-bars.patch (text/x-patch, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#59975; Package guix-patches. (Tue, 17 Jan 2023 09:07:02 GMT) Full text and rfc822 format available.

Message #23 received at 59975 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Julien Lepiller <julien <at> lepiller.eu>
Cc: 59975 <at> debbugs.gnu.org
Subject: Re: bug#59975: [PATCH] guix: Show better progress bars.
Date: Tue, 17 Jan 2023 10:06:30 +0100
Hi,

Julien Lepiller <julien <at> lepiller.eu> skribis:

> Le Fri, 13 Jan 2023 18:07:42 +0100,
> Ludovic Courtès <ludo <at> gnu.org> a écrit :

[...]

>> It would be good to check in xterm, Linux console with some default
>> font, and GNOME/Xfce terminals with defaults.
>> 
>> (Works for me in xterm and in Emacs, FWIW.)
>
> I think it's pretty common to have these characters, since they are
> used by many other projects. However, testing on a tty, I can only see
> the filled characters, but not the semi-filled ones, so I get something
> like:
>
> ?███?     ?
>
> What do you think?

Maybe use ASCII when $TERM is “linux”?

Though again that probably depends on the font, not on the terminal
type, and that you cannot guess.

> Attached v2.
>
> From 7e4c8fbcc49068ce5a9a592d8daf7b0039ce6680 Mon Sep 17 00:00:00 2001
> From: Julien Lepiller <julien <at> lepiller.eu>
> Date: Sun, 11 Dec 2022 18:51:13 +0100
> Subject: [PATCH] guix: Show better progress bars.
>
> Style provides information on the characters to use before and after the
> progress bar content (`[` and `]` for the ascii style), as well as the
> character for filled step (`#` for ascii style).  When supported, it
> provides intermediate steps.  This is used for unicode style, to show
> better precision.
>
> * guix/progress.scm (<progress-bar-style>): New record type.
> (ascii-bar-style, unicode-bar-style): New variables.
> (progress-bar): Draw progress depending on style.  When supported, use
> unicode style.  Fall back to ascii style.

LGTM.

Maybe send a heads-up on guix-devel to see if someone has something to
say about the ability to display those glyphs, wait a few more days, and
push if there are no objections?

Thanks,
Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#59975; Package guix-patches. (Fri, 27 Jan 2023 18:57:02 GMT) Full text and rfc822 format available.

Message #26 received at 59975 <at> debbugs.gnu.org (full text, mbox):

From: Simon Tournier <zimon.toutoune <at> gmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>, Julien Lepiller
 <julien <at> lepiller.eu>
Cc: 59975 <at> debbugs.gnu.org
Subject: Re: [bug#59975] [PATCH] guix: Show better progress bars.
Date: Fri, 27 Jan 2023 19:05:10 +0100
Hi,

On mar., 17 janv. 2023 at 10:06, Ludovic Courtès <ludo <at> gnu.org> wrote:

> LGTM.

And it LGTM too [1]. :-)

1: <https://issues.guix.gnu.org/msgid/87358nh7zn.fsf <at> gmail.com>


> Maybe send a heads-up on guix-devel to see if someone has something to
> say about the ability to display those glyphs, wait a few more days, and
> push if there are no objections?

What is the status of this patch?  I am sure people will find it
nice. :-)


Cheers,
simon






Information forwarded to guix-patches <at> gnu.org:
bug#59975; Package guix-patches. (Fri, 03 Feb 2023 11:57:01 GMT) Full text and rfc822 format available.

Message #29 received at 59975 <at> debbugs.gnu.org (full text, mbox):

From: Julien Lepiller <julien <at> lepiller.eu>
To: 59975 <at> debbugs.gnu.org
Subject: [PATCH v3 0/2] guix: Show better progress bars.
Date: Fri,  3 Feb 2023 12:56:01 +0100
Hi Guix!

Here's the new version, it's now a small series. The first patch sets
unifont as default, so we can see the fancy bars in a TTY :) The second
hasn't changed.

Julien Lepiller (2):
  gnu: Use unifont by default in TTYs.
  guix: Show better progress bars.

 gnu/services/base.scm |  7 +++----
 guix/progress.scm     | 45 ++++++++++++++++++++++++++++++++++++-------
 2 files changed, 41 insertions(+), 11 deletions(-)


base-commit: 92755c6352fd967bc74d8e5354aad057d779b717
-- 
2.38.1





Information forwarded to guix-patches <at> gnu.org:
bug#59975; Package guix-patches. (Fri, 03 Feb 2023 11:57:02 GMT) Full text and rfc822 format available.

Message #32 received at 59975 <at> debbugs.gnu.org (full text, mbox):

From: Julien Lepiller <julien <at> lepiller.eu>
To: 59975 <at> debbugs.gnu.org
Subject: [PATCH v3 1/2] gnu: Use unifont by default in TTYs.
Date: Fri,  3 Feb 2023 12:56:02 +0100
It has even better language support than LatGrkCyr-8x16 and can show
fancy progress bars.

* gnu/services/base.scm (%default-console-font): Use unifont.
---
 gnu/services/base.scm | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 9e799445d2..b062e445f2 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -64,6 +64,7 @@ (define-module (gnu services base)
                 #:select (coreutils glibc glibc-utf8-locales tar
                           canonical-package))
   #:use-module ((gnu packages compression) #:select (gzip))
+  #:use-module (gnu packages fonts)
   #:autoload   (gnu packages guile-xyz) (guile-netlink)
   #:autoload   (gnu packages hurd) (hurd)
   #:use-module (gnu packages package-management)
@@ -749,10 +750,8 @@ (define console-keymap-service-type
 of console keymaps with @command{loadkeys}.")))
 
 (define %default-console-font
-  ;; Note: 'LatGrkCyr-8x16' has the advantage of providing three common
-  ;; scripts as well as glyphs for em dash, quotation marks, and other Unicode
-  ;; codepoints notably found in the UTF-8 manual.
-  "LatGrkCyr-8x16")
+  #~(string-append #$font-gnu-unifont:psf
+                   "/share/consolefonts/Unifont-APL8x16.psf.gz"))
 
 (define (console-font-shepherd-services tty+font)
   "Return a list of Shepherd services for each pair in TTY+FONT."
-- 
2.38.1





Information forwarded to guix-patches <at> gnu.org:
bug#59975; Package guix-patches. (Fri, 03 Feb 2023 11:57:02 GMT) Full text and rfc822 format available.

Message #35 received at 59975 <at> debbugs.gnu.org (full text, mbox):

From: Julien Lepiller <julien <at> lepiller.eu>
To: 59975 <at> debbugs.gnu.org
Subject: [PATCH v3 2/2] guix: Show better progress bars.
Date: Fri,  3 Feb 2023 12:56:03 +0100
Style provides information on the characters to use before and after the
progress bar content (`[` and `]` for the ascii style), as well as the
character for filled step (`#` for ascii style).  When supported, it
provides intermediate steps.  This is used for unicode style, to show
better precision.

* guix/progress.scm (<progress-bar-style>): New record type.
(ascii-bar-style, unicode-bar-style): New variables.
(progress-bar): Draw progress depending on style.  When supported, use
unicode style.  Fall back to ascii style.
---
 guix/progress.scm | 45 ++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 38 insertions(+), 7 deletions(-)

diff --git a/guix/progress.scm b/guix/progress.scm
index 4f8e98edc0..33cf6f4a1a 100644
--- a/guix/progress.scm
+++ b/guix/progress.scm
@@ -166,16 +166,47 @@ (define current-terminal-columns
   ;; Number of columns of the terminal.
   (make-parameter 80))
 
+(define-record-type* <progress-bar-style>
+  progress-bar-style make-progress-bar-style progress-bar-style?
+  (start  progress-bar-style-start)
+  (stop   progress-bar-style-stop)
+  (filled progress-bar-style-filled)
+  (steps  progress-bar-style-steps))
+
+(define ascii-bar-style
+  (progress-bar-style
+    (start #\[)
+    (stop #\])
+    (filled #\#)
+    (steps '())))
+
+(define unicode-bar-style
+  (progress-bar-style
+    (start #\x2595)
+    (stop #\x258f)
+    (filled #\x2588)
+    (steps '(#\x258F #\x258E #\x258D #\x258C #\x258B #\x258A #\x2589))))
+
 (define* (progress-bar % #:optional (bar-width 20))
   "Return % as a string representing an ASCII-art progress bar.  The total
 width of the bar is BAR-WIDTH."
-  (let* ((bar-width (max 3 (- bar-width 2)))
-         (fraction (/ % 100))
-         (filled   (inexact->exact (floor (* fraction bar-width))))
-         (empty    (- bar-width filled)))
-    (format #f "[~a~a]"
-            (make-string filled #\#)
-            (make-string empty #\space))))
+  (let* ((bar-style (if (equal? (port-encoding (current-output-port)) "UTF-8")
+                        unicode-bar-style
+                        ascii-bar-style))
+         (bar-width (max 3 (- bar-width 2)))
+         (intermediates (+ (length (progress-bar-style-steps bar-style)) 1))
+         (step     (inexact->exact (floor (/ (* % bar-width intermediates) 100))))
+         (filled   (quotient step intermediates))
+         (intermediate
+           (list-ref (cons #f (progress-bar-style-steps bar-style))
+                     (modulo step intermediates)))
+         (empty    (- bar-width filled (if intermediate 1 0))))
+    (simple-format #f "~a~a~a~a~a"
+                   (string (progress-bar-style-start bar-style))
+                   (make-string filled (progress-bar-style-filled bar-style))
+                   (if intermediate (string intermediate) "")
+                   (make-string empty #\space)
+                   (string (progress-bar-style-stop bar-style)))))
 
 (define (erase-current-line port)
   "Write an ANSI erase-current-line sequence to PORT to erase the whole line and
-- 
2.38.1





Information forwarded to guix-patches <at> gnu.org:
bug#59975; Package guix-patches. (Sun, 12 Feb 2023 10:04:01 GMT) Full text and rfc822 format available.

Message #38 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Christopher Baines <mail <at> cbaines.net>
To: Julien Lepiller <julien <at> lepiller.eu>
Cc: 59975 <at> debbugs.gnu.org, guix-patches <at> gnu.org
Subject: Re: [bug#59975] [PATCH v3 0/2] guix: Show better progress bars.
Date: Sun, 12 Feb 2023 10:02:50 +0000
[Message part 1 (text/plain, inline)]
Julien Lepiller <julien <at> lepiller.eu> writes:

> Here's the new version, it's now a small series. The first patch sets
> unifont as default, so we can see the fancy bars in a TTY :) The second
> hasn't changed.
>
> Julien Lepiller (2):
>   gnu: Use unifont by default in TTYs.
>   guix: Show better progress bars.
>
>  gnu/services/base.scm |  7 +++----
>  guix/progress.scm     | 45 ++++++++++++++++++++++++++++++++++++-------
>  2 files changed, 41 insertions(+), 11 deletions(-)
>
>
> base-commit: 92755c6352fd967bc74d8e5354aad057d779b717

I haven't tried this out, but the changes look good to me :)

Thanks,

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

Information forwarded to guix-patches <at> gnu.org:
bug#59975; Package guix-patches. (Sun, 12 Feb 2023 10:04:02 GMT) Full text and rfc822 format available.

Reply sent to Julien Lepiller <julien <at> lepiller.eu>:
You have taken responsibility. (Sun, 19 Feb 2023 09:12:02 GMT) Full text and rfc822 format available.

Notification sent to Julien Lepiller <julien <at> lepiller.eu>:
bug acknowledged by developer. (Sun, 19 Feb 2023 09:12:02 GMT) Full text and rfc822 format available.

Message #46 received at 59975-done <at> debbugs.gnu.org (full text, mbox):

From: Julien Lepiller <julien <at> lepiller.eu>
To: Christopher Baines <mail <at> cbaines.net>
Cc: 59975-done <at> debbugs.gnu.org
Subject: Re: [bug#59975] [PATCH v3 0/2] guix: Show better progress bars.
Date: Sun, 19 Feb 2023 10:11:47 +0100
[Message part 1 (text/plain, inline)]
Finally pushed to master as 01334a61c7541d8ae29c5252e2e5b3ed7a59c552
and 189525412e3d803f3f77e15ec4a62aaa57f65a2d.

Le Sun, 12 Feb 2023 10:02:50 +0000,
Christopher Baines <mail <at> cbaines.net> a écrit :

> Julien Lepiller <julien <at> lepiller.eu> writes:
> 
> > Here's the new version, it's now a small series. The first patch
> > sets unifont as default, so we can see the fancy bars in a TTY :)
> > The second hasn't changed.
> >
> > Julien Lepiller (2):
> >   gnu: Use unifont by default in TTYs.
> >   guix: Show better progress bars.
> >
> >  gnu/services/base.scm |  7 +++----
> >  guix/progress.scm     | 45
> > ++++++++++++++++++++++++++++++++++++------- 2 files changed, 41
> > insertions(+), 11 deletions(-)
> >
> >
> > base-commit: 92755c6352fd967bc74d8e5354aad057d779b717  
> 
> I haven't tried this out, but the changes look good to me :)
> 
> Thanks,
> 
> Chris

[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. (Sun, 19 Mar 2023 11:24:12 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 36 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.