Debian Bug report logs - #630772
dkms: "Use of uninitialized value" perl warning when removing a kernel with virtualbox modules

version graph

Package: dkms; Maintainer for dkms is Dynamic Kernel Module System Team <dkms@packages.debian.org>; Source for dkms is src:dkms (PTS, buildd, popcon).

Reported by: Raphael Hertzog <hertzog@debian.org>

Date: Fri, 17 Jun 2011 09:06:25 UTC

Severity: normal

Found in version dkms/2.1.1.2-6

Done: Aron Xu <aron@debian.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 debian-bugs-dist@lists.debian.org, virtualbox@packages.debian.org, Dynamic Kernel Modules Support Team <pkg-dkms-maint@lists.alioth.debian.org>:
Bug#630772; Package dkms. (Fri, 17 Jun 2011 09:06:28 GMT) (full text, mbox, link).


Acknowledgement sent to Raphael Hertzog <hertzog@debian.org>:
New Bug report received and forwarded. Copy sent to virtualbox@packages.debian.org, Dynamic Kernel Modules Support Team <pkg-dkms-maint@lists.alioth.debian.org>. (Fri, 17 Jun 2011 09:06:29 GMT) (full text, mbox, link).


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

From: Raphael Hertzog <hertzog@debian.org>
To: Debian Bug Tracking System <submit@bugs.debian.org>
Subject: dkms: "Use of uninitialized value" perl warning when removing a kernel with virtualbox modules
Date: Fri, 17 Jun 2011 11:05:28 +0200
Package: dkms
Version: 2.1.1.2-6
Severity: normal

When removing an obsolete kernel, I got 6 warnings like this one:
Use of uninitialized value $command in lc at /usr/share/perl5/Debconf/ConfModule.pm line 123, <GEN0> line 3.

I don't know if dkms is at fault or if it's virtualbox that is not using dkms correctly.
See the log below:

$ sudo apt-get purge linux-headers-2.6.39-1-amd64 linux-headers-2.6.39-1-common linux-image-2.6.39-1-amd64
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Le paquet suivant a été installé automatiquement et n'est plus nécessaire :
  libntfs10
Veuillez utiliser « apt-get autoremove » pour les supprimer.
Les paquets suivants seront ENLEVÉS :
  linux-headers-2.6.39-1-amd64* linux-headers-2.6.39-1-common* linux-image-2.6.39-1-amd64*
0 mis à jour, 0 nouvellement installés, 3 à enlever et 1 non mis à jour.
Après cette opération, 139 Mo d'espace disque seront libérés.
Souhaitez-vous continuer [O/n] ? 
(Lecture de la base de données... 306758 fichiers et répertoires déjà installés.)
Suppression de linux-headers-2.6.39-1-amd64 ...
Suppression de linux-headers-2.6.39-1-common ...
Suppression de linux-image-2.6.39-1-amd64 ...
Examining /etc/kernel/prerm.d.
run-parts: executing /etc/kernel/prerm.d/dkms 2.6.39-1-amd64 /boot/vmlinuz-2.6.39-1-amd64
dkms: removing: virtualbox 4.0.8 (2.6.39-1-amd64) (x86_64)
Use of uninitialized value $command in lc at /usr/share/perl5/Debconf/ConfModule.pm line 123, <GEN0> line 3.
Use of uninitialized value $command in lc at /usr/share/perl5/Debconf/ConfModule.pm line 123, <GEN0> line 9.
Use of uninitialized value $command in lc at /usr/share/perl5/Debconf/ConfModule.pm line 123, <GEN0> line 11.
Use of uninitialized value $command in lc at /usr/share/perl5/Debconf/ConfModule.pm line 123, <GEN0> line 18.
Use of uninitialized value $command in lc at /usr/share/perl5/Debconf/ConfModule.pm line 123, <GEN0> line 25.
Use of uninitialized value $command in lc at /usr/share/perl5/Debconf/ConfModule.pm line 123, <GEN0> line 33.
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 2.6.39-1-amd64 /boot/vmlinuz-2.6.39-1-amd64
update-initramfs: Deleting /boot/initrd.img-2.6.39-1-amd64
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 2.6.39-1-amd64 /boot/vmlinuz-2.6.39-1-amd64
Generating grub.cfg ...


-- System Information:
Debian Release: wheezy/sid
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'proposed-updates'), (500, 'unstable'), (500, 'testing'), (500, 'stable'), (150, 'experimental')
Architecture: i386 (x86_64)

Kernel: Linux 2.6.39-2-amd64 (SMP w/2 CPU cores)
Locale: LANG=fr_FR.utf8, LC_CTYPE=fr_FR.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages dkms depends on:
ii  build-essential               11.5       Informational list of build-essent
ii  coreutils                     8.5-1      GNU core utilities
ii  dpkg-dev                      1.16.1     Debian package development tools
ii  gcc                           4:4.6.0-5  The GNU C compiler
ii  make                          3.81-8.1   An utility for Directing compilati
ii  module-init-tools             3.16-1     tools for managing Linux kernel mo
ii  patch                         2.6.1-2    Apply a diff file to an original

Versions of packages dkms recommends:
ii  fakeroot                     1.16-1      tool for simulating superuser priv
ii  linux-headers-2.6-amd64 [lin 2.6.39+35.1 Header files for Linux 2.6-amd64 (
ii  linux-headers-2.6.32-5-amd64 2.6.32-35   Header files for Linux 2.6.32-5-am
ii  linux-headers-2.6.38-2-amd64 2.6.38-5    Header files for Linux 2.6.38-2-am
ii  linux-headers-2.6.39-2-amd64 2.6.39-2    Header files for Linux 2.6.39-2-am
ii  linux-image-2.6.32-5-amd64 [ 2.6.32-35   Linux 2.6.32 for 64-bit PCs
ii  linux-image-2.6.38-2-amd64 [ 2.6.38-5    Linux 2.6.38 for 64-bit PCs
ii  linux-image-2.6.39-2-amd64 [ 2.6.39-2    Linux 2.6.39 for 64-bit PCs
ii  menu                         2.1.45      generates programs menu for all me
ii  sudo                         1.7.4p6-1   Provide limited super user privile

dkms suggests no packages.

-- no debconf information

-- 
Raphaël Hertzog ◈ Debian Developer

Follow my Debian News ▶ http://RaphaelHertzog.com (English)
                      ▶ http://RaphaelHertzog.fr (Français)




Information forwarded to debian-bugs-dist@lists.debian.org, Dynamic Kernel Modules Support Team <pkg-dkms-maint@lists.alioth.debian.org>:
Bug#630772; Package dkms. (Sat, 06 Aug 2011 06:03:05 GMT) (full text, mbox, link).


Acknowledgement sent to dj_palindrome <dj_palindrome@comcast.net>:
Extra info received and forwarded to list. Copy sent to Dynamic Kernel Modules Support Team <pkg-dkms-maint@lists.alioth.debian.org>. (Sat, 06 Aug 2011 06:03:05 GMT) (full text, mbox, link).


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

From: dj_palindrome <dj_palindrome@comcast.net>
To: 630772@bugs.debian.org
Subject: RE dkms: "Use of uninitialized value" perl warning when removing a, kernel with virtualbox modules
Date: Fri, 05 Aug 2011 22:58:14 -0700
Dear Mr. Hertzog,

I don't know the source of the issue either, but I'm pretty sure it 
isn't confined in scope to VirtualBox, since I get an even longer, more 
annoying, and more time-consuming cascade of such messages when dkms 
removes other modules (in this case, xtables-addons), also while purging 
old kernels:


Removing linux-image-3.0-1.slh.1-aptosid-amd64 ...
Examining /etc/kernel/prerm.d.
run-parts: executing /etc/kernel/prerm.d/dkms 3.0-1.slh.1-aptosid-amd64 
/boot/vmlinuz-3.0-1.slh.1-aptosid-amd64

dkms: removing: vboxguest 4.1.0 (3.0-1.slh.1-aptosid-amd64) (x86_64)

Use of uninitialized value $command in lc at 
/usr/share/perl5/Debconf/ConfModule.pm line 123, <GEN0> line 3.
Use of uninitialized value $command in lc at 
/usr/share/perl5/Debconf/ConfModule.pm line 123, <GEN0> line 9.
Use of uninitialized value $command in lc at 
/usr/share/perl5/Debconf/ConfModule.pm line 123, <GEN0> line 11.
/usr/sbin/dkms: line 1824: echo: write error: Broken pipe
/usr/sbin/dkms: line 1882: echo: write error: Broken pipe
/usr/sbin/dkms: line 1880: echo: write error: Broken pipe
/usr/sbin/dkms: line 1882: echo: write error: Broken pipe
Use of uninitialized value $command in lc at 
/usr/share/perl5/Debconf/ConfModule.pm line 123, <GEN0> line 18.
Use of uninitialized value $command in lc at 
/usr/share/perl5/Debconf/ConfModule.pm line 123, <GEN0> line 19.
/usr/sbin/dkms: line 1824: echo: write error: Broken pipe
/usr/sbin/dkms: line 1824: echo: write error: Broken pipe
/usr/sbin/dkms: line 1882: echo: write error: Broken pipe
/usr/sbin/dkms: line 1880: echo: write error: Broken pipe
/usr/sbin/dkms: line 1882: echo: write error: Broken pipe
Use of uninitialized value $command in lc at 
/usr/share/perl5/Debconf/ConfModule.pm line 123, <GEN0> line 26.
Use of uninitialized value $command in lc at 
/usr/share/perl5/Debconf/ConfModule.pm line 123, <GEN0> line 27.
/usr/sbin/dkms: line 1824: echo: write error: Broken pipe
/usr/sbin/dkms: line 1824: echo: write error: Broken pipe
/usr/sbin/dkms: line 1824: echo: write error: Broken pipe
/usr/sbin/dkms: line 1882: echo: write error: Broken pipe
/usr/sbin/dkms: line 1880: echo: write error: Broken pipe
/usr/sbin/dkms: line 1882: echo: write error: Broken pipe
Use of uninitialized value $command in lc at 
/usr/share/perl5/Debconf/ConfModule.pm line 123, <GEN0> line 34.
Use of uninitialized value $command in lc at 
/usr/share/perl5/Debconf/ConfModule.pm line 123, <GEN0> line 36.

dkms: removing: xtables-addons 1.35 (3.0-1.slh.1-aptosid-amd64) (x86_64)

Use of uninitialized value $command in lc at 
/usr/share/perl5/Debconf/ConfModule.pm line 123, <GEN0> line 38.
Use of uninitialized value $command in lc at 
/usr/share/perl5/Debconf/ConfModule.pm line 123, <GEN0> line 44.
Use of uninitialized value $command in lc at 
/usr/share/perl5/Debconf/ConfModule.pm line 123, <GEN0> line 46.
/usr/sbin/dkms: line 1882: echo: write error: Broken pipe
/usr/sbin/dkms: line 1880: echo: write error: Broken pipe
/usr/sbin/dkms: line 1824: echo: write error: Broken pipe
/usr/sbin/dkms: line 1882: echo: write error: Broken pipe
/usr/sbin/dkms: line 1880: echo: write error: Broken pipe
/usr/sbin/dkms: line 1882: echo: write error: Broken pipe
Use of uninitialized value $command in lc at 
/usr/share/perl5/Debconf/ConfModule.pm line 123, <GEN0> line 53.
Use of uninitialized value $command in lc at 
/usr/share/perl5/Debconf/ConfModule.pm line 123, <GEN0> line 54.
/usr/sbin/dkms: line 1882: echo: write error: Broken pipe
/usr/sbin/dkms: line 1880: echo: write error: Broken pipe
/usr/sbin/dkms: line 1824: echo: write error: Broken pipe
/usr/sbin/dkms: line 1824: echo: write error: Broken pipe
/usr/sbin/dkms: line 1882: echo: write error: Broken pipe
/usr/sbin/dkms: line 1880: echo: write error: Broken pipe
/usr/sbin/dkms: line 1882: echo: write error: Broken pipe
Use of uninitialized value $command in lc at 
/usr/share/perl5/Debconf/ConfModule.pm line 123, <GEN0> line 61.
Use of uninitialized value $command in lc at 
/usr/share/perl5/Debconf/ConfModule.pm line 123, <GEN0> line 62.

[I've spared you the rest]




Information forwarded to debian-bugs-dist@lists.debian.org, Dynamic Kernel Modules Support Team <pkg-dkms-maint@lists.alioth.debian.org>:
Bug#630772; Package dkms. (Fri, 14 Oct 2011 02:54:03 GMT) (full text, mbox, link).


Acknowledgement sent to Phil Miller <mille121@illinois.edu>:
Extra info received and forwarded to list. Copy sent to Dynamic Kernel Modules Support Team <pkg-dkms-maint@lists.alioth.debian.org>. (Fri, 14 Oct 2011 02:54:03 GMT) (full text, mbox, link).


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

From: Phil Miller <mille121@illinois.edu>
To: 630772@bugs.debian.org
Subject: Also seeing this
Date: Thu, 13 Oct 2011 21:51:58 -0500
I'm seeing the same issue on debconf 1.5.41 and dkms 2.2.0.2-1, with
some variation in the versions and line numbers involved:

Errors appear after "Removing linux-image-2.6.39-2-amd64

virtualbox is version 4.1.2, and the lines reporting the error are
3
9
11
18
19
26
27
34
35
42
44




Information forwarded to debian-bugs-dist@lists.debian.org, Dynamic Kernel Modules Support Team <pkg-dkms-maint@lists.alioth.debian.org>:
Bug#630772; Package dkms. (Sat, 10 Dec 2011 20:03:06 GMT) (full text, mbox, link).


Acknowledgement sent to Bob Vincent <bobvin@pillars.net>:
Extra info received and forwarded to list. Copy sent to Dynamic Kernel Modules Support Team <pkg-dkms-maint@lists.alioth.debian.org>. (Sat, 10 Dec 2011 20:03:06 GMT) (full text, mbox, link).


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

From: Bob Vincent <bobvin@pillars.net>
To: 630772@bugs.debian.org
Subject: Fixed locally
Date: Sat, 10 Dec 2011 14:54:57 -0500
I fixed this locally as follows:

--- /usr/share/perl5/Debconf/ConfModule.pm~     2011-06-23 
03:01:31.000000000 -0400
+++ /usr/share/perl5/Debconf/ConfModule.pm      2011-12-10 
14:45:22.500307649 -0500
@@ -112,7 +112,9 @@
        my $this=shift;

        debug developer => "<-- $_";
-       return 1 unless defined && ! /^\s*#/; # Skip blank lines, comments.
+       return 1 unless defined; # Skip empty input.
+       return 1 if /^\s*$/; # Skip blank lines.
+       return 1 if /^\s*#/; # Skip comments.
        chomp;
        my ($command, @params);
        if (defined $this->client_capb and grep { $_ eq 'escape' } 
@{$this->client_capb}) {





Information forwarded to debian-bugs-dist@lists.debian.org, Dynamic Kernel Modules Support Team <pkg-dkms-maint@lists.alioth.debian.org>:
Bug#630772; Package dkms. (Tue, 13 Mar 2012 10:21:08 GMT) (full text, mbox, link).


Acknowledgement sent to Ralf Jung <ralfjung-e@gmx.de>:
Extra info received and forwarded to list. Copy sent to Dynamic Kernel Modules Support Team <pkg-dkms-maint@lists.alioth.debian.org>. (Tue, 13 Mar 2012 10:21:13 GMT) (full text, mbox, link).


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

From: Ralf Jung <ralfjung-e@gmx.de>
To: 630772@bugs.debian.org
Subject: dkms errors/warnings when uninstalling old kernel
Date: Tue, 13 Mar 2012 11:19:32 +0100
I am still seeing those messages with the current dkms from testing 
(2.2.0.3-1). Are they harmless or is something broken by them?

Also, http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=637737 seemsto be the 
same (or a very similar) bug.




Information forwarded to debian-bugs-dist@lists.debian.org, Dynamic Kernel Modules Support Team <pkg-dkms-maint@lists.alioth.debian.org>:
Bug#630772; Package dkms. (Sat, 05 Oct 2013 21:00:04 GMT) (full text, mbox, link).


Acknowledgement sent to Marc Meledandri <m.meledandri@gmail.com>:
Extra info received and forwarded to list. Copy sent to Dynamic Kernel Modules Support Team <pkg-dkms-maint@lists.alioth.debian.org>. (Sat, 05 Oct 2013 21:00:04 GMT) (full text, mbox, link).


Message #30 received at 630772@bugs.debian.org (full text, mbox, reply):

From: Marc Meledandri <m.meledandri@gmail.com>
To: 630772@bugs.debian.org
Cc: ralfjung-e@gmx.de, bobvin@pillars.net, hertzog@debian.org, pkg-dkms-maint@lists.alioth.debian.org
Subject: RE: dkms errors/warnings when uninstalling old kernel
Date: Sat, 5 Oct 2013 16:55:56 -0400
This issue is ongoing, still present in Debian 7.1 Wheezy:

Log started: 2013-10-05  13:50:46
(Reading database ... 223686 files and directories currently installed.)
Removing linux-headers-3.10.13+mfm ...
Purging configuration files for linux-headers-3.10.13+mfm ...
Removing linux-image-3.10.13+mfm ...
Examining /etc/kernel/prerm.d.
run-parts: executing /etc/kernel/prerm.d/dkms 3.10.13+mfm
/boot/vmlinuz-3.10.13+mfm
dkms: removing: nvidia-current 325.15 (3.10.13+mfm) (x86_64)
/usr/sbin/dkms: line 1874: echo: write error: Broken pipe
/usr/sbin/dkms: line 1876: echo: write error: Broken pipe
/usr/sbin/dkms: line 1874: echo: write error: Broken pipe
/usr/sbin/dkms: line 1876: echo: write error: Broken pipe
/usr/sbin/dkms: line 1874: echo: write error: Broken pipe
/usr/sbin/dkms: line 1876: echo: write error: Broken pipe
dkms: removing: vboxhost 4.1.26 (3.10.13+mfm) (x86_64)
/usr/sbin/dkms: line 1874: echo: write error: Broken pipe
/usr/sbin/dkms: line 1876: echo: write error: Broken pipe
/usr/sbin/dkms: line 1874: echo: write error: Broken pipe
/usr/sbin/dkms: line 1876: echo: write error: Broken pipe
/usr/sbin/dkms: line 1874: echo: write error: Broken pipe
/usr/sbin/dkms: line 1876: echo: write error: Broken pipe
/usr/sbin/dkms: line 1874: echo: write error: Broken pipe
/usr/sbin/dkms: line 1876: echo: write error: Broken pipe
/usr/sbin/dkms: line 1874: echo: write error: Broken pipe
/usr/sbin/dkms: line 1876: echo: write error: Broken pipe
/usr/sbin/dkms: line 1874: echo: write error: Broken pipe
/usr/sbin/dkms: line 1876: echo: write error: Broken pipe
/usr/sbin/dkms: line 1874: echo: write error: Broken pipe
/usr/sbin/dkms: line 1876: echo: write error: Broken pipe
/usr/sbin/dkms: line 1874: echo: write error: Broken pipe
/usr/sbin/dkms: line 1876: echo: write error: Broken pipe
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.10.13+mfm
/boot/vmlinuz-3.10.13+mfm
update-initramfs: Deleting /boot/initrd.img-3.10.13+mfm
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.10.13+mfm
/boot/vmlinuz-3.10.13+mfm
Generating grub.cfg ...
Found background image: grub2-hash-bang-background.png
Found linux image: /boot/vmlinuz-3.10.15+mfm
Found initrd image: /boot/initrd.img-3.10.15+mfm
Found linux image: /boot/vmlinuz-3.4.63+mfm
Found initrd image: /boot/initrd.img-3.4.63+mfm
Found linux image: /boot/vmlinuz-3.2.0-4-amd64
Found initrd image: /boot/initrd.img-3.2.0-4-amd64
Found Windows 7 (loader) on /dev/sda1
done
Purging configuration files for linux-image-3.10.13+mfm ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.10.13+mfm
/boot/vmlinuz-3.10.13+mfm
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.10.13+mfm
/boot/vmlinuz-3.10.13+mfm
Log ended: 2013-10-05  13:50:59



Information forwarded to debian-bugs-dist@lists.debian.org, Dynamic Kernel Modules Support Team <pkg-dkms-maint@lists.alioth.debian.org>:
Bug#630772; Package dkms. (Thu, 29 Jan 2015 03:48:05 GMT) (full text, mbox, link).


Acknowledgement sent to Elliott Mitchell <ehem+debian@m5p.com>:
Extra info received and forwarded to list. Copy sent to Dynamic Kernel Modules Support Team <pkg-dkms-maint@lists.alioth.debian.org>. (Thu, 29 Jan 2015 03:48:05 GMT) (full text, mbox, link).


Message #35 received at 630772@bugs.debian.org (full text, mbox, reply):

From: Elliott Mitchell <ehem+debian@m5p.com>
To: 637737@bugs.debian.org, 630772@bugs.debian.org
Subject: #630772 and #637737 Look Distinct
Date: Wed, 28 Jan 2015 19:21:43 -0800
Looking at bugs #630772 and #637737, even though a number of people have
suggested they are one bug, they look pretty clearly distinct to me.

#630772 is some variables being uninitialized in
/usr/share/perl5/Debconf/ConfModule.pm, this may be a failure in dkms,
but could potentially be a bug in debconf.  If this was in debconf, it
may already be fixed.

Meanwhile #637737 is very much an issue of attempting to write to stdout
after it has been closed and the bug is *definitely* in /usr/sbin/dkms.

Unsurprisingly, I'm seeing bug #637737 occur, but *not* #630772.  I
suspect one or both bugs should be promoted to important severity given
the number of people seeing these occur.


-- 
(\___(\___(\______          --=> 8-) EHM <=--          ______/)___/)___/)
 \BS (    |         EHeM+sigmsg@m5p.com  PGP 87145445         |    )   /
  \_CS\   |  _____  -O #include <stddisclaimer.h> O-   _____  |   /  _/
8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445





Reply sent to Aron Xu <aron@debian.org>:
You have taken responsibility. (Sun, 03 Jul 2016 15:57:09 GMT) (full text, mbox, link).


Notification sent to Raphael Hertzog <hertzog@debian.org>:
Bug acknowledged by developer. (Sun, 03 Jul 2016 15:57:09 GMT) (full text, mbox, link).


Message #40 received at 630772-close@bugs.debian.org (full text, mbox, reply):

From: Aron Xu <aron@debian.org>
To: 630772-close@bugs.debian.org
Subject: Re: dkms: "Use of uninitialized value" perl warning when removing a kernel with virtualbox modules
Date: Sun, 3 Jul 2016 23:55:10 +0800
This bug is in debconf package, and should be fixed already, closing.

Regards,
Aron



Bug archived. Request was from Debbugs Internal Request <owner@bugs.debian.org> to internal_control@bugs.debian.org. (Mon, 01 Aug 2016 07:52:53 GMT) (full text, mbox, link).


Send a report that this bug log contains spam.


Debian bug tracking system administrator <owner@bugs.debian.org>. Last modified: Sun Jul 2 06:27:43 2023; Machine Name: bembo

Debian 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.