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: dj_palindrome <dj_palindrome@comcast.net>
Date: Sat, 13 Aug 2011 22:57:01 UTC
Severity: normal
Found in versions dkms/2.2.0.2-1, dkms/2.2.0.3-2, dkms/2.2.1.0+git20160527-1
Reply or subscribe to this bug.
View this report as an mbox folder, status mbox, maintainer mbox
Report forwarded
to debian-bugs-dist@lists.debian.org, Dynamic Kernel Modules Support Team <pkg-dkms-maint@lists.alioth.debian.org>:
Bug#637737; Package dkms.
(Sat, 13 Aug 2011 22:57:04 GMT) (full text, mbox, link).
Acknowledgement sent
to dj_palindrome <dj_palindrome@comcast.net>:
New Bug report received and forwarded. Copy sent to Dynamic Kernel Modules Support Team <pkg-dkms-maint@lists.alioth.debian.org>.
(Sat, 13 Aug 2011 22:57:04 GMT) (full text, mbox, link).
Message #5 received at submit@bugs.debian.org (full text, mbox, reply):
[Message part 1 (text/plain, inline)]
Package: dkms Version: 2.2.0.2-1 Severity: normal root@aptosidbox:~# apt-get purge linux-image-3.0-1.slh.2-aptosid-amd64 linux-image-3.0-1.slh.4-aptosid-amd64 linux-image-3.0-1.slh.5-aptosid-amd64 Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED: linux-image-3.0-1.slh.2-aptosid-amd64* linux-image-3.0-1.slh.4-aptosid-amd64* linux-image-3.0-1.slh.5-aptosid-amd64* 0 upgraded, 0 newly installed, 3 to remove and 1 not upgraded. After this operation, 367 MB disk space will be freed. Do you want to continue [Y/n]? Y (Reading database ... 316576 files and directories currently installed.) Removing linux-image-3.0-1.slh.2-aptosid-amd64 ... Examining /etc/kernel/prerm.d. run-parts: executing /etc/kernel/prerm.d/dkms 3.0-1.slh.2-aptosid-amd64/boot/vmlinuz-3.0-1.slh.2-aptosid-amd64 dkms: removing: vboxguest 4.1.0 (3.0-1.slh.2-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 /usr/sbin/dkms: line 1880: 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 /usr/sbin/dkms: line 1880: 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 /usr/sbin/dkms: line 1880: 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. Examining /etc/kernel/postrm.d .run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.0-1.slh.2-aptosid-amd64 /boot/vmlinuz-3.0-1.slh.2-aptosid-amd64 update-initramfs: Deleting /boot/initrd.img-3.0-1.slh.2-aptosid-amd64 run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.0-1.slh.2-aptosid- amd64 /boot/vmlinuz-3.0-1.slh.2-aptosid-amd64 Generating grub.cfg ... -- System Information: Debian Release: wheezy/sid APT prefers unstable APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 3.0.0-1-amd64 (SMP w/2 CPU cores) Locale: LANG=en_US.utf8, LC_CTYPE=en_US.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.0.3 Debian package development tools ii gcc 4:4.6.1-2 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: pn fakeroot <none> (no description available) ii linux-headers-2.6.37-0.slh.18 2.6.37-18 Header files for Linux 2.6.37-0.sl ii linux-headers-2.6.39-2-amd64 2.6.39-3 Header files for Linux 2.6.39-2-am ii linux-headers-2.6.39-3.slh.2- 2.6.39-31 Header files for Linux 2.6.39-3.sl ii linux-headers-3.0-1.slh.6-apt 3.0-14 Header files for Linux 3.0-1.slh.6 ii linux-headers-3.0.0-1-amd64 [ 3.0.0-1 Header files for Linux 3.0.0-1-amd ii linux-headers-amd64 [linux-he 3.0.0+39 Header files for Linux amd64 confi ii linux-image-2.6.37-0.slh.18-a 2.6.37-18 Linux 2.6.37 for 64-bit PCs ii linux-image-2.6.39-2-amd64 [l 2.6.39-3 Linux 2.6.39 for 64-bit PCs ii linux-image-2.6.39-3.slh.2-ap 2.6.39-31 Linux 2.6.39 for 64-bit PCs ii linux-image-3.0-1.slh.6-aptos 3.0-14 Linux 3.0 for 64-bit PCs ii linux-image-3.0.0-1-amd64 [li 3.0.0-1 Linux 3.0.0 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
[apt-get purge kernels 3.0-1.slh.2-4-5-aptosid.log (text/plain, attachment)]
Information forwarded
to debian-bugs-dist@lists.debian.org, Dynamic Kernel Modules Support Team <pkg-dkms-maint@lists.alioth.debian.org>:
Bug#637737; Package dkms.
(Sat, 10 Dec 2011 20:00:07 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:00:07 GMT) (full text, mbox, link).
Message #10 received at 637737@bugs.debian.org (full text, mbox, reply):
This is a duplicate of bug 630772. See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=630772
Information forwarded
to debian-bugs-dist@lists.debian.org, Dynamic Kernel Modules Support Team <pkg-dkms-maint@lists.alioth.debian.org>:
Bug#637737; Package dkms.
(Thu, 29 Jan 2015 03:48:08 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:09 GMT) (full text, mbox, link).
Message #15 received at 637737@bugs.debian.org (full text, mbox, reply):
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
Information forwarded
to debian-bugs-dist@lists.debian.org, Dynamic Kernel Modules Support Team <pkg-dkms-maint@lists.alioth.debian.org>:
Bug#637737; Package dkms.
(Sat, 28 Nov 2015 16:36:05 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, 28 Nov 2015 16:36:05 GMT) (full text, mbox, link).
Message #20 received at 637737@bugs.debian.org (full text, mbox, reply):
Still seeing this old bug on Jessie. I've removed dozens of kernels since this bug has existed, and it's pretty annoying Would be nice to see the intended sdout of dkms to be assured it's functioning properly. Removing linux-image-4.2.4+mfm (4.2.4) ... Examining /etc/kernel/prerm.d. run-parts: executing /etc/kernel/prerm.d/dkms 4.2.4+mfm /boot/vmlinuz-4.2.4+mfm dkms: removing: nvidia-current 340.93 (4.2.4+mfm) (x86_64) /usr/sbin/dkms: line 1878: echo: write error: Broken pipe /usr/sbin/dkms: line 1880: echo: write error: Broken pipe /usr/sbin/dkms: line 1878: echo: write error: Broken pipe /usr/sbin/dkms: line 1824: echo: write error: Broken pipe /usr/sbin/dkms: line 1880: echo: write error: Broken pipe /usr/sbin/dkms: line 1878: echo: write error: Broken pipe /usr/sbin/dkms: line 1880: echo: write error: Broken pipe /usr/sbin/dkms: line 1878: echo: write error: Broken pipe /usr/sbin/dkms: line 1880: echo: write error: Broken pipe /usr/sbin/dkms: line 1878: 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 1880: echo: write error: Broken pipe /usr/sbin/dkms: line 1878: echo: write error: Broken pipe /usr/sbin/dkms: line 1880: echo: write error: Broken pipe dkms: removing: vboxhost 5.0.10 (4.2.4+mfm) (x86_64) /usr/sbin/dkms: line 1878: echo: write error: Broken pipe /usr/sbin/dkms: line 1880: echo: write error: Broken pipe /usr/sbin/dkms: line 1878: echo: write error: Broken pipe /usr/sbin/dkms: line 1824: echo: write error: Broken pipe ... Thanks
Marked as found in versions dkms/2.2.0.3-2.
Request was from Marc Meledandri <m.meledandri@gmail.com>
to control@bugs.debian.org.
(Sat, 28 Nov 2015 16:45:06 GMT) (full text, mbox, link).
Information forwarded
to debian-bugs-dist@lists.debian.org, Dynamic Kernel Modules Support Team <pkg-dkms-maint@lists.alioth.debian.org>:
Bug#637737; Package dkms.
(Thu, 01 Sep 2016 18:09:09 GMT) (full text, mbox, link).
Acknowledgement sent
to Ritesh Raj Sarraf <rrs@debian.org>:
Extra info received and forwarded to list. Copy sent to Dynamic Kernel Modules Support Team <pkg-dkms-maint@lists.alioth.debian.org>.
(Thu, 01 Sep 2016 18:09:09 GMT) (full text, mbox, link).
Message #27 received at 637737@bugs.debian.org (full text, mbox, reply):
Package: dkms Version: 2.2.1.0+git20160527-1 Followup-For: Bug #637737 I'm hit by this issue too. rrs@learner:/var/tmp$ sudo apt purge linux-headers-4.7.2bfqv8r21+ linux-image-4.7.2bfqv8r21+ Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED: linux-headers-4.7.2bfqv8r21+* linux-image-4.7.2bfqv8r21+* 0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded. After this operation, 272 MB disk space will be freed. Do you want to continue? [Y/n] (Reading database ... 532891 files and directories currently installed.) Removing linux-headers-4.7.2bfqv8r21+ (4.7.2bfqv8r21+-10.00.Custom) ... Removing linux-image-4.7.2bfqv8r21+ (4.7.2bfqv8r21+-10.00.Custom) ... Examining /etc/kernel/prerm.d. run-parts: executing /etc/kernel/prerm.d/dkms 4.7.2bfqv8r21+ /boot/vmlinuz-4.7.2bfqv8r21+ dkms: removing: sysdig 0.9.0 (4.7.2bfqv8r21+) (x86_64) /usr/sbin/dkms: line 1994: echo: write error: Broken pipe /usr/sbin/dkms: line 1996: echo: write error: Broken pipe /usr/sbin/dkms: line 1994: echo: write error: Broken pipe /usr/sbin/dkms: line 1996: echo: write error: Broken pipe /usr/sbin/dkms: line 1994: echo: write error: Broken pipe /usr/sbin/dkms: line 1996: echo: write error: Broken pipe /usr/sbin/dkms: line 1994: echo: write error: Broken pipe /usr/sbin/dkms: line 1938: echo: write error: Broken pipe /usr/sbin/dkms: line 1996: echo: write error: Broken pipe /usr/sbin/dkms: line 1994: echo: write error: Broken pipe /usr/sbin/dkms: line 1996: echo: write error: Broken pipe dkms: removing: virtualbox 5.0.24 (4.7.2bfqv8r21+) (x86_64) /usr/sbin/dkms: line 1994: echo: write error: Broken pipe /usr/sbin/dkms: line 1996: echo: write error: Broken pipe /usr/sbin/dkms: line 1994: echo: write error: Broken pipe /usr/sbin/dkms: line 1996: echo: write error: Broken pipe /usr/sbin/dkms: line 1994: echo: write error: Broken pipe /usr/sbin/dkms: line 1996: echo: write error: Broken pipe /usr/sbin/dkms: line 1994: echo: write error: Broken pipe /usr/sbin/dkms: line 1938: echo: write error: Broken pipe /usr/sbin/dkms: line 1996: echo: write error: Broken pipe /usr/sbin/dkms: line 1994: echo: write error: Broken pipe /usr/sbin/dkms: line 1996: echo: write error: Broken pipe /usr/sbin/dkms: line 1994: echo: write error: Broken pipe /usr/sbin/dkms: line 1996: echo: write error: Broken pipe /usr/sbin/dkms: line 1994: echo: write error: Broken pipe /usr/sbin/dkms: line 1996: echo: write error: Broken pipe /usr/sbin/dkms: line 1994: echo: write error: Broken pipe /usr/sbin/dkms: line 1996: echo: write error: Broken pipe /usr/sbin/dkms: line 1994: echo: write error: Broken pipe /usr/sbin/dkms: line 1938: echo: write error: Broken pipe /usr/sbin/dkms: line 1938: echo: write error: Broken pipe /usr/sbin/dkms: line 1996: echo: write error: Broken pipe /usr/sbin/dkms: line 1994: echo: write error: Broken pipe /usr/sbin/dkms: line 1996: echo: write error: Broken pipe /usr/sbin/dkms: line 1994: echo: write error: Broken pipe /usr/sbin/dkms: line 1996: echo: write error: Broken pipe /usr/sbin/dkms: line 1994: echo: write error: Broken pipe /usr/sbin/dkms: line 1996: echo: write error: Broken pipe /usr/sbin/dkms: line 1994: echo: write error: Broken pipe /usr/sbin/dkms: line 1996: echo: write error: Broken pipe /usr/sbin/dkms: line 1994: echo: write error: Broken pipe /usr/sbin/dkms: line 1938: echo: write error: Broken pipe /usr/sbin/dkms: line 1938: echo: write error: Broken pipe /usr/sbin/dkms: line 1938: echo: write error: Broken pipe /usr/sbin/dkms: line 1996: echo: write error: Broken pipe /usr/sbin/dkms: line 1994: echo: write error: Broken pipe /usr/sbin/dkms: line 1996: echo: write error: Broken pipe /usr/sbin/dkms: line 1994: echo: write error: Broken pipe /usr/sbin/dkms: line 1996: echo: write error: Broken pipe /usr/sbin/dkms: line 1994: echo: write error: Broken pipe /usr/sbin/dkms: line 1996: echo: write error: Broken pipe /usr/sbin/dkms: line 1994: echo: write error: Broken pipe /usr/sbin/dkms: line 1996: echo: write error: Broken pipe /usr/sbin/dkms: line 1994: echo: write error: Broken pipe /usr/sbin/dkms: line 1938: echo: write error: Broken pipe /usr/sbin/dkms: line 1938: echo: write error: Broken pipe /usr/sbin/dkms: line 1938: echo: write error: Broken pipe /usr/sbin/dkms: line 1938: echo: write error: Broken pipe /usr/sbin/dkms: line 1996: echo: write error: Broken pipe /usr/sbin/dkms: line 1994: echo: write error: Broken pipe /usr/sbin/dkms: line 1996: echo: write error: Broken pipe Examining /etc/kernel/postrm.d . run-parts: executing /etc/kernel/postrm.d/initramfs-tools 4.7.2bfqv8r21+ /boot/vmlinuz-4.7.2bfqv8r21+ run-parts: executing /etc/kernel/postrm.d/zz-update-grub 4.7.2bfqv8r21+ /boot/vmlinuz-4.7.2bfqv8r21+ Generating grub configuration file ... Found background image: .background_cache.png Found linux image: /boot/vmlinuz-4.7.2bfqv8r2+ Found initrd image: /boot/initrd.img-4.7.2bfqv8r2+ Found linux image: /boot/vmlinuz-4.7.1bfqv8r2+ Found initrd image: /boot/initrd.img-4.7.1bfqv8r2+ Found linux image: /boot/vmlinuz-4.7.0-1-amd64 Found initrd image: /boot/initrd.img-4.7.0-1-amd64 Found linux image: /boot/vmlinuz-4.7.0bfqv8r2+ Found initrd image: /boot/initrd.img-4.7.0bfqv8r2+ Found linux image: /boot/vmlinuz-4.6.0-1-amd64 Found initrd image: /boot/initrd.img-4.6.0-1-amd64 Found memtest86+ image: /memtest86+.bin Found memtest86+ multiboot image: /memtest86+_multiboot.bin Found Windows Boot Manager on /dev/sda2@/EFI/Microsoft/Boot/bootmgfw.efi Adding boot menu entry for EFI firmware configuration Found Grml ISO image: /boot/grml/android-x86-6.0_20160129.iso Found Grml ISO image: /boot/grml/debian-live-8.2.0-amd64-kde-desktop.iso Found Grml ISO image: /boot/grml/debian-testing-amd64-CD-1.iso Found Grml ISO image: /boot/grml/elementaryos-0.3.2-stable-amd64.20151209.iso Found Grml ISO image: /boot/grml/grml64-full_2014.11.iso Found Grml ISO image: /boot/grml/ubuntu-15.10-desktop-amd64.iso done (Reading database ... 506128 files and directories currently installed.) Removing linux-headers-4.7.2bfqv8r21+ (4.7.2bfqv8r21+-10.00.Custom) ... Purging configuration files for linux-headers-4.7.2bfqv8r21+ (4.7.2bfqv8r21+-10.00.Custom) ... Removing linux-image-4.7.2bfqv8r21+ (4.7.2bfqv8r21+-10.00.Custom) ... Purging configuration files for linux-image-4.7.2bfqv8r21+ (4.7.2bfqv8r21+-10.00.Custom) ... Examining /etc/kernel/postrm.d . run-parts: executing /etc/kernel/postrm.d/initramfs-tools 4.7.2bfqv8r21+ /boot/vmlinuz-4.7.2bfqv8r21+ run-parts: executing /etc/kernel/postrm.d/zz-update-grub 4.7.2bfqv8r21+ /boot/vmlinuz-4.7.2bfqv8r21+ ====== How can you help? (doc: https://wiki.debian.org/how-can-i-help ) ====== ----- Show old opportunities as well as new ones: how-can-i-help --old ----- 2016-09-01 / 23:34:08 ♒♒♒ ☺ -- System Information: Debian Release: stretch/sid APT prefers testing-debug APT policy: (990, 'testing-debug'), (990, 'testing'), (500, 'unstable-debug'), (500, 'unstable'), (101, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.7.2bfqv8r2+ (SMP w/4 CPU cores) Locale: LANG=en_IN.utf8, LC_CTYPE=en_IN.utf8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) Versions of packages dkms depends on: ii build-essential 12.2 ii coreutils 8.25-2 ii dpkg-dev 1.18.10 ii gcc 4:6.1.1-1 ii kmod 22-1.1 ii make 4.1-9 ii patch 2.7.5-1 Versions of packages dkms recommends: ii fakeroot 1.21-1 ii linux-headers-4.7.0bfqv8r2+ [linux-headers] 4.7.0bfqv8r2+-10.00.Custom ii linux-headers-4.7.1bfqv8r2+ [linux-headers] 4.7.1bfqv8r2+-10.00.Custom ii linux-headers-4.7.2bfqv8r2+ [linux-headers] 4.7.2bfqv8r2+-10.00.Custom ii linux-headers-amd64 4.7+75 ii sudo 1.8.17p1-2 Versions of packages dkms suggests: pn python3-apport <none> -- no debconf information
Send a report that this bug log contains spam.
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.