summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuss Allbery <rra@cpan.org>2022-01-19 20:56:05 -0800
committerRuss Allbery <rra@cpan.org>2022-01-19 20:56:05 -0800
commit13e3dad9b573c16ed25535574b37bea52f469b6d (patch)
tree248812be7b3a6048ce1ab4c7e06b3df7cd6b1b1c
parent9efafd60f2dcfdad14e21873c51e99068ee4e7d0 (diff)
parentc7e9e66ae14206f8b42015600839eb492410980d (diff)
New upstream version 7.01
-rw-r--r--Changes13
-rw-r--r--META.json30
-rw-r--r--META.yml30
-rw-r--r--README6
-rw-r--r--README.md4
-rw-r--r--docs/docknot.yaml8
-rw-r--r--lib/App/DocKnot.pm2
-rw-r--r--lib/App/DocKnot/Command.pm2
-rw-r--r--lib/App/DocKnot/Config.pm2
-rw-r--r--lib/App/DocKnot/Dist.pm2
-rw-r--r--lib/App/DocKnot/Generate.pm2
-rw-r--r--lib/App/DocKnot/Release.pm2
-rw-r--r--lib/App/DocKnot/Spin.pm12
-rw-r--r--lib/App/DocKnot/Spin/Pointer.pm3
-rw-r--r--lib/App/DocKnot/Spin/RSS.pm2
-rw-r--r--lib/App/DocKnot/Spin/Sitemap.pm2
-rw-r--r--lib/App/DocKnot/Spin/Thread.pm4
-rw-r--r--lib/App/DocKnot/Spin/Versions.pm2
-rw-r--r--lib/App/DocKnot/Update.pm2
-rw-r--r--lib/App/DocKnot/Util.pm2
-rwxr-xr-xt/cli/generate.t8
-rw-r--r--t/data/generate/docknot/output/thread10
-rwxr-xr-xt/data/regenerate-data4
-rw-r--r--t/data/spin/output/usefor/index.html2
-rwxr-xr-xt/docs/spdx-license.t4
-rwxr-xr-xt/update/spin.t22
26 files changed, 100 insertions, 82 deletions
diff --git a/Changes b/Changes
index 32766e2..4bbb493 100644
--- a/Changes
+++ b/Changes
@@ -1,5 +1,18 @@
Revision history for DocKnot
+7.01 - 2022-01-19
+
+ - Correctly handle Unicode output from commands run by pointers and from
+ POD processing by Pod::Thread. Previous versions since 6.01 were
+ double-encoding. Thanks to Julien ÉLIE for the report.
+
+ - Follow symlinks to ordinary files in docknot spin, just not
+ directories. The Path::Iterator::Rule conversion in 6.01 broke copying
+ of files referenced by symlink.
+
+ - The \size spin always used 1024-based units. It now correctly uses the
+ KiB, MiB, etc. abbreviations to match.
+
7.00 - 2022-01-17
- Various module APIs now take Path::Tiny objects instead of string
diff --git a/META.json b/META.json
index 218c069..0349ace 100644
--- a/META.json
+++ b/META.json
@@ -53,59 +53,59 @@
"provides" : {
"App::DocKnot" : {
"file" : "lib/App/DocKnot.pm",
- "version" : "7.00"
+ "version" : "7.01"
},
"App::DocKnot::Command" : {
"file" : "lib/App/DocKnot/Command.pm",
- "version" : "7.00"
+ "version" : "7.01"
},
"App::DocKnot::Config" : {
"file" : "lib/App/DocKnot/Config.pm",
- "version" : "7.00"
+ "version" : "7.01"
},
"App::DocKnot::Dist" : {
"file" : "lib/App/DocKnot/Dist.pm",
- "version" : "7.00"
+ "version" : "7.01"
},
"App::DocKnot::Generate" : {
"file" : "lib/App/DocKnot/Generate.pm",
- "version" : "7.00"
+ "version" : "7.01"
},
"App::DocKnot::Release" : {
"file" : "lib/App/DocKnot/Release.pm",
- "version" : "7.00"
+ "version" : "7.01"
},
"App::DocKnot::Spin" : {
"file" : "lib/App/DocKnot/Spin.pm",
- "version" : "7.00"
+ "version" : "7.01"
},
"App::DocKnot::Spin::Pointer" : {
"file" : "lib/App/DocKnot/Spin/Pointer.pm",
- "version" : "7.00"
+ "version" : "7.01"
},
"App::DocKnot::Spin::RSS" : {
"file" : "lib/App/DocKnot/Spin/RSS.pm",
- "version" : "7.00"
+ "version" : "7.01"
},
"App::DocKnot::Spin::Sitemap" : {
"file" : "lib/App/DocKnot/Spin/Sitemap.pm",
- "version" : "7.00"
+ "version" : "7.01"
},
"App::DocKnot::Spin::Thread" : {
"file" : "lib/App/DocKnot/Spin/Thread.pm",
- "version" : "7.00"
+ "version" : "7.01"
},
"App::DocKnot::Spin::Versions" : {
"file" : "lib/App/DocKnot/Spin/Versions.pm",
- "version" : "7.00"
+ "version" : "7.01"
},
"App::DocKnot::Update" : {
"file" : "lib/App/DocKnot/Update.pm",
- "version" : "7.00"
+ "version" : "7.01"
},
"App::DocKnot::Util" : {
"file" : "lib/App/DocKnot/Util.pm",
- "version" : "7.00"
+ "version" : "7.01"
}
},
"release_status" : "stable",
@@ -123,6 +123,6 @@
"web" : "https://github.com/rra/docknot"
}
},
- "version" : "7.00",
+ "version" : "7.01",
"x_serialization_backend" : "JSON::PP version 4.04"
}
diff --git a/META.yml b/META.yml
index 8acd006..a7d7870 100644
--- a/META.yml
+++ b/META.yml
@@ -17,46 +17,46 @@ name: App-DocKnot
provides:
App::DocKnot:
file: lib/App/DocKnot.pm
- version: '7.00'
+ version: '7.01'
App::DocKnot::Command:
file: lib/App/DocKnot/Command.pm
- version: '7.00'
+ version: '7.01'
App::DocKnot::Config:
file: lib/App/DocKnot/Config.pm
- version: '7.00'
+ version: '7.01'
App::DocKnot::Dist:
file: lib/App/DocKnot/Dist.pm
- version: '7.00'
+ version: '7.01'
App::DocKnot::Generate:
file: lib/App/DocKnot/Generate.pm
- version: '7.00'
+ version: '7.01'
App::DocKnot::Release:
file: lib/App/DocKnot/Release.pm
- version: '7.00'
+ version: '7.01'
App::DocKnot::Spin:
file: lib/App/DocKnot/Spin.pm
- version: '7.00'
+ version: '7.01'
App::DocKnot::Spin::Pointer:
file: lib/App/DocKnot/Spin/Pointer.pm
- version: '7.00'
+ version: '7.01'
App::DocKnot::Spin::RSS:
file: lib/App/DocKnot/Spin/RSS.pm
- version: '7.00'
+ version: '7.01'
App::DocKnot::Spin::Sitemap:
file: lib/App/DocKnot/Spin/Sitemap.pm
- version: '7.00'
+ version: '7.01'
App::DocKnot::Spin::Thread:
file: lib/App/DocKnot/Spin/Thread.pm
- version: '7.00'
+ version: '7.01'
App::DocKnot::Spin::Versions:
file: lib/App/DocKnot/Spin/Versions.pm
- version: '7.00'
+ version: '7.01'
App::DocKnot::Update:
file: lib/App/DocKnot/Update.pm
- version: '7.00'
+ version: '7.01'
App::DocKnot::Util:
file: lib/App/DocKnot/Util.pm
- version: '7.00'
+ version: '7.01'
requires:
Date::Parse: '0'
File::BaseDir: '0'
@@ -83,5 +83,5 @@ resources:
homepage: https://www.eyrie.org/~eagle/software/docknot
license: http://www.opensource.org/licenses/mit-license.php
repository: https://github.com/rra/docknot.git
-version: '7.00'
+version: '7.01'
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff --git a/README b/README
index b7cb45f..a006bff 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
- DocKnot 7.00
+ DocKnot 7.01
(Static web site and documentation generator)
Maintained by Russ Allbery <rra@cpan.org>
@@ -145,11 +145,11 @@ SOURCE REPOSITORY
or by cloning the repository at:
- https://git.eyrie.org/git/devel/docknot.git
+ https://git.eyrie.org/git/web/docknot.git
or view the repository via the web at:
- https://git.eyrie.org/?p=devel/docknot.git
+ https://git.eyrie.org/?p=web/docknot.git
The eyrie.org repository is the canonical one, maintained by the author,
but using GitHub is probably more convenient for most purposes. Pull
diff --git a/README.md b/README.md
index f5db663..ab8620f 100644
--- a/README.md
+++ b/README.md
@@ -147,10 +147,10 @@ couple of months.
DocKnot is maintained using Git. You can access the current source on
[GitHub](https://github.com/rra/docknot) or by cloning the repository at:
-https://git.eyrie.org/git/devel/docknot.git
+https://git.eyrie.org/git/web/docknot.git
or [view the repository on the
-web](https://git.eyrie.org/?p=devel/docknot.git).
+web](https://git.eyrie.org/?p=web/docknot.git).
The eyrie.org repository is the canonical one, maintained by the author,
but using GitHub is probably more convenient for most purposes. Pull
diff --git a/docs/docknot.yaml b/docs/docknot.yaml
index 4f84fb9..3b35642 100644
--- a/docs/docknot.yaml
+++ b/docs/docknot.yaml
@@ -15,7 +15,7 @@ format: v1
name: DocKnot
maintainer: Russ Allbery <rra@cpan.org>
-version: '7.00'
+version: '7.01'
synopsis: Static web site and documentation generator
license:
@@ -33,7 +33,7 @@ distribution:
package: docknot
summary: |
DocKnot is packaged in Debian 11 (bullseye) and later as docknot.
- section: devel
+ section: web
tarname: App-DocKnot
version: docknot
support:
@@ -41,12 +41,12 @@ support:
github: rra/docknot
web: https://www.eyrie.org/~eagle/software/docknot/
vcs:
- browse: https://git.eyrie.org/?p=devel/docknot.git
+ browse: https://git.eyrie.org/?p=web/docknot.git
github: rra/docknot
status:
workflow: build
type: Git
- url: https://git.eyrie.org/git/devel/docknot.git
+ url: https://git.eyrie.org/git/web/docknot.git
quote:
author: Murphy's Fourth Corollary
diff --git a/lib/App/DocKnot.pm b/lib/App/DocKnot.pm
index 947b9d2..d4c2449 100644
--- a/lib/App/DocKnot.pm
+++ b/lib/App/DocKnot.pm
@@ -11,7 +11,7 @@
# Modules and declarations
##############################################################################
-package App::DocKnot 7.00;
+package App::DocKnot 7.01;
use 5.024;
use autodie;
diff --git a/lib/App/DocKnot/Command.pm b/lib/App/DocKnot/Command.pm
index a0fa90c..3992081 100644
--- a/lib/App/DocKnot/Command.pm
+++ b/lib/App/DocKnot/Command.pm
@@ -10,7 +10,7 @@
# Modules and declarations
##############################################################################
-package App::DocKnot::Command 7.00;
+package App::DocKnot::Command 7.01;
use 5.024;
use autodie;
diff --git a/lib/App/DocKnot/Config.pm b/lib/App/DocKnot/Config.pm
index 597e6cb..05fff02 100644
--- a/lib/App/DocKnot/Config.pm
+++ b/lib/App/DocKnot/Config.pm
@@ -9,7 +9,7 @@
# Modules and declarations
##############################################################################
-package App::DocKnot::Config 7.00;
+package App::DocKnot::Config 7.01;
use 5.024;
use autodie;
diff --git a/lib/App/DocKnot/Dist.pm b/lib/App/DocKnot/Dist.pm
index 585d243..8cdf203 100644
--- a/lib/App/DocKnot/Dist.pm
+++ b/lib/App/DocKnot/Dist.pm
@@ -10,7 +10,7 @@
# Modules and declarations
##############################################################################
-package App::DocKnot::Dist 7.00;
+package App::DocKnot::Dist 7.01;
use 5.024;
use autodie;
diff --git a/lib/App/DocKnot/Generate.pm b/lib/App/DocKnot/Generate.pm
index 72eb686..c195622 100644
--- a/lib/App/DocKnot/Generate.pm
+++ b/lib/App/DocKnot/Generate.pm
@@ -10,7 +10,7 @@
# Modules and declarations
##############################################################################
-package App::DocKnot::Generate 7.00;
+package App::DocKnot::Generate 7.01;
use 5.024;
use autodie;
diff --git a/lib/App/DocKnot/Release.pm b/lib/App/DocKnot/Release.pm
index b118281..1634ddb 100644
--- a/lib/App/DocKnot/Release.pm
+++ b/lib/App/DocKnot/Release.pm
@@ -10,7 +10,7 @@
# Modules and declarations
##############################################################################
-package App::DocKnot::Release 7.00;
+package App::DocKnot::Release 7.01;
use 5.024;
use autodie;
diff --git a/lib/App/DocKnot/Spin.pm b/lib/App/DocKnot/Spin.pm
index f7a5978..c461d61 100644
--- a/lib/App/DocKnot/Spin.pm
+++ b/lib/App/DocKnot/Spin.pm
@@ -11,7 +11,7 @@
# Modules and declarations
##############################################################################
-package App::DocKnot::Spin 7.00;
+package App::DocKnot::Spin 7.01;
use 5.024;
use autodie;
@@ -23,6 +23,7 @@ use App::DocKnot::Spin::Sitemap;
use App::DocKnot::Spin::Thread;
use App::DocKnot::Spin::Versions;
use App::DocKnot::Util qw(is_newer print_checked print_fh);
+use Encode qw(decode);
use Git::Repository ();
use IPC::System::Simple qw(capture);
use Path::Iterator::Rule ();
@@ -186,6 +187,7 @@ sub _cl2xhtml {
my ($self, $source, $output, $options, $style) = @_;
$style ||= $self->{style_url} . 'changelog.css';
my @page = capture("cl2xhtml $options -s $style $source");
+ @page = map { decode('utf-8', $_) } @page;
my $footer = sub {
my ($blurb, $id) = @_;
if ($blurb) {
@@ -216,6 +218,7 @@ sub _cvs2xhtml {
# Run the converter and write the output.
my @page = capture("(cd $dir && cvs log $name) | cvs2xhtml $options");
+ @page = map { decode('utf-8', $_) } @page;
my $footer = sub {
my ($blurb, $id, $file) = @_;
if ($blurb) {
@@ -234,6 +237,7 @@ sub _faq2html {
my ($self, $source, $output, $options, $style) = @_;
$style ||= $self->{style_url} . 'faq.css';
my @page = capture("faq2html $options -s $style $source");
+ @page = map { decode('utf-8', $_) } @page;
my $footer = sub {
my ($blurb, $id, $file) = @_;
if ($blurb) {
@@ -270,6 +274,7 @@ sub _pod2html {
my $data;
$podthread->output_string(\$data);
$podthread->parse_file("$source");
+ $data = decode('utf-8', $data);
# Spin that thread into HTML.
my $page = $self->{thread}->spin_thread($data);
@@ -573,16 +578,17 @@ sub spin {
#>>>
# Process the input tree.
+ my %options = (follow_symlinks => 0, report_symlinks => 1);
$rule = Path::Iterator::Rule->new();
$rule = $rule->skip($rule->new()->name($self->{excludes}->@*));
- $iter = $rule->iter("$input", { follow_symlinks => 0 });
+ $iter = $rule->iter("$input", \%options);
while (defined(my $file = $iter->())) {
$self->_process_file(path($file));
}
# Remove stray files from the output tree.
if ($self->{delete}) {
- my %options = (depthfirst => 1, follow_symlinks => 0);
+ $options{depthfirst} = 1;
$iter = $rule->iter("$output", \%options);
while (defined(my $file = $iter->())) {
$self->_delete_files(path($file));
diff --git a/lib/App/DocKnot/Spin/Pointer.pm b/lib/App/DocKnot/Spin/Pointer.pm
index a16250c..d074b41 100644
--- a/lib/App/DocKnot/Spin/Pointer.pm
+++ b/lib/App/DocKnot/Spin/Pointer.pm
@@ -10,7 +10,7 @@
# Modules and declarations
##############################################################################
-package App::DocKnot::Spin::Pointer 7.00;
+package App::DocKnot::Spin::Pointer 7.01;
use 5.024;
use autodie;
@@ -136,6 +136,7 @@ sub _spin_pod {
my $data;
$podthread->output_string(\$data);
$podthread->parse_file("$source");
+ $data = decode('utf-8', $data);
# Spin that page into HTML.
$self->{thread}->spin_thread_output($data, $source, 'POD', $output);
diff --git a/lib/App/DocKnot/Spin/RSS.pm b/lib/App/DocKnot/Spin/RSS.pm
index 2b0e0fc..dc2e5ff 100644
--- a/lib/App/DocKnot/Spin/RSS.pm
+++ b/lib/App/DocKnot/Spin/RSS.pm
@@ -9,7 +9,7 @@
# Modules and declarations
##############################################################################
-package App::DocKnot::Spin::RSS 7.00;
+package App::DocKnot::Spin::RSS 7.01;
use 5.024;
use autodie;
diff --git a/lib/App/DocKnot/Spin/Sitemap.pm b/lib/App/DocKnot/Spin/Sitemap.pm
index 884765c..8a39e8a 100644
--- a/lib/App/DocKnot/Spin/Sitemap.pm
+++ b/lib/App/DocKnot/Spin/Sitemap.pm
@@ -12,7 +12,7 @@
# Modules and declarations
##############################################################################
-package App::DocKnot::Spin::Sitemap 7.00;
+package App::DocKnot::Spin::Sitemap 7.01;
use 5.024;
use autodie;
diff --git a/lib/App/DocKnot/Spin/Thread.pm b/lib/App/DocKnot/Spin/Thread.pm
index 1d1ef52..089582b 100644
--- a/lib/App/DocKnot/Spin/Thread.pm
+++ b/lib/App/DocKnot/Spin/Thread.pm
@@ -9,7 +9,7 @@
# Modules and declarations
##############################################################################
-package App::DocKnot::Spin::Thread 7.00;
+package App::DocKnot::Spin::Thread 7.01;
use 5.024;
use autodie;
@@ -1333,7 +1333,7 @@ sub _cmd_size {
}
# Format the size using SI units.
- my @suffixes = qw(K M G T);
+ my @suffixes = qw(Ki Mi Gi Ti);
my $suffix = q{};
while ($size > 1024 && @suffixes) {
$size /= 1024;
diff --git a/lib/App/DocKnot/Spin/Versions.pm b/lib/App/DocKnot/Spin/Versions.pm
index 2b6f759..05537dd 100644
--- a/lib/App/DocKnot/Spin/Versions.pm
+++ b/lib/App/DocKnot/Spin/Versions.pm
@@ -12,7 +12,7 @@
# Modules and declarations
##############################################################################
-package App::DocKnot::Spin::Versions 7.00;
+package App::DocKnot::Spin::Versions 7.01;
use 5.024;
use autodie;
diff --git a/lib/App/DocKnot/Update.pm b/lib/App/DocKnot/Update.pm
index 4b43fba..6157910 100644
--- a/lib/App/DocKnot/Update.pm
+++ b/lib/App/DocKnot/Update.pm
@@ -9,7 +9,7 @@
# Modules and declarations
##############################################################################
-package App::DocKnot::Update 7.00;
+package App::DocKnot::Update 7.01;
use 5.024;
use autodie;
diff --git a/lib/App/DocKnot/Util.pm b/lib/App/DocKnot/Util.pm
index cffa4f5..f705ca7 100644
--- a/lib/App/DocKnot/Util.pm
+++ b/lib/App/DocKnot/Util.pm
@@ -9,7 +9,7 @@
# Modules and declarations
##############################################################################
-package App::DocKnot::Util 7.00;
+package App::DocKnot::Util 7.01;
use 5.024;
use autodie;
diff --git a/t/cli/generate.t b/t/cli/generate.t
index f3d37f3..7d4b766 100755
--- a/t/cli/generate.t
+++ b/t/cli/generate.t
@@ -29,15 +29,12 @@ BEGIN { use_ok('App::DocKnot::Command') }
my $docknot = App::DocKnot::Command->new();
isa_ok($docknot, 'App::DocKnot::Command');
-# Create a temporary directory for test output.
-my $tempdir = Path::Tiny->tempdir();
-
# Generate the package README file to a temporary file, read it into memory,
# and compare it to the actual README file. This duplicates part of the
# generate/self.t test, but via the command-line parser. Do this in a
# separate block so that $tempfile goes out of scope and will be cleaned up.
{
- my $tempfile = $tempdir->tempfile();
+ my $tempfile = Path::Tiny->tempfile();
$docknot->run('generate', 'readme', "$tempfile");
my $output = $tempfile->slurp_utf8();
is_file_contents($output, 'README', 'Generated README from argument list');
@@ -45,7 +42,7 @@ my $tempdir = Path::Tiny->tempdir();
# Do the same thing again, but using arguments from @ARGV.
{
- my $tempfile = $tempdir->tempfile();
+ my $tempfile = Path::Tiny->tempfile();
local @ARGV = ('generate', 'readme-md', "$tempfile");
$docknot->run();
my $output = $tempfile->slurp_utf8();
@@ -59,6 +56,7 @@ my $metadata_path = path('docs', 'docknot.yaml')->realpath();
# Generate all of the files using generate-all in a new temporary directory.
my $cwd = getcwd();
+my $tempdir = Path::Tiny->tempdir();
chdir($tempdir);
$docknot->run('generate-all', '-m', "$metadata_path");
my $output = path('README')->slurp_utf8();
diff --git a/t/data/generate/docknot/output/thread b/t/data/generate/docknot/output/thread
index 5f49a3e..8ef3cfa 100644
--- a/t/data/generate/docknot/output/thread
+++ b/t/data/generate/docknot/output/thread
@@ -32,7 +32,7 @@
\h2[Download]
\download[DocKnot][docknot]
- [devel/App-DocKnot-\version[docknot]]
+ [web/App-DocKnot-\version[docknot]]
\link[https://packages.debian.org/source/sid/docknot]
[Debian packages] \break
@@ -52,7 +52,7 @@
[GitHub] \break
\link[https://github.com/rra/docknot/issues]
[Bug tracker] \break
- \link[https://git.eyrie.org/?p=devel/docknot.git]
+ \link[https://git.eyrie.org/?p=web/docknot.git]
[Git repository] \break
\link[https://metacpan.org/release/App-DocKnot]
[MetaCPAN] \break
@@ -131,7 +131,7 @@ The distribution:
\table[][
\program[DocKnot][docknot]
- [devel/App-DocKnot-\version[docknot]]
+ [web/App-DocKnot-\version[docknot]]
]
An \link[https://archives.eyrie.org/software/ARCHIVE/App-DocKnot/]
@@ -149,10 +149,10 @@ DocKnot is maintained using the Git version control system. To check out
the current development tree, see
\link[https://github.com/rra/docknot][GitHub] or clone:
-\pre[ https://git.eyrie.org/git/devel/docknot.git]
+\pre[ https://git.eyrie.org/git/web/docknot.git]
Pull requests on GitHub are welcome. You can also
-\link[https://git.eyrie.org/?p=devel/docknot.git][browse the current
+\link[https://git.eyrie.org/?p=web/docknot.git][browse the current
development source].
\h2[Documentation]
diff --git a/t/data/regenerate-data b/t/data/regenerate-data
index f796f8f..ac93310 100755
--- a/t/data/regenerate-data
+++ b/t/data/regenerate-data
@@ -43,6 +43,10 @@ for my $package (@packages) {
}
}
+# Regenerate the README and README.md for DocKnot itself.
+my $docknot = App::DocKnot::Generate->new();
+$docknot->generate_all();
+
# The test of spinning a tree of files uses a reference to App::DocKnot's own
# POD documentation. Regenerate the expected output in case the POD has
# changed.
diff --git a/t/data/spin/output/usefor/index.html b/t/data/spin/output/usefor/index.html
index 964c216..be5cda5 100644
--- a/t/data/spin/output/usefor/index.html
+++ b/t/data/spin/output/usefor/index.html
@@ -88,7 +88,7 @@ interest:
</p>
<ul>
-<li class="packed"><a href="drafts/draft-ietf-usefor-useage-01.txt">Usenet Best Practice</a> (2KB)</li>
+<li class="packed"><a href="drafts/draft-ietf-usefor-useage-01.txt">Usenet Best Practice</a> (2KiB)</li>
<li class="packed"><a href="drafts/draft-ietf-usefor-message-id-01.txt">Recommendations for Generating Message IDs</a> (215B)</li>
<li class="packed"><a href="drafts/draft-ietf-usefor-posted-mailed-01.txt">Identification of Messages Delivered Via Both Mail and News</a> (215B)</li>
<li class="packed"><a href="drafts/draft-lindsey-usefor-signed-01.txt">Signed Headers in Mail and Netnews</a> (215B)</li>
diff --git a/t/docs/spdx-license.t b/t/docs/spdx-license.t
index 15ee7e0..0a0fae4 100755
--- a/t/docs/spdx-license.t
+++ b/t/docs/spdx-license.t
@@ -9,7 +9,7 @@
# The canonical version of this file is maintained in the rra-c-util package,
# which can be found at <https://www.eyrie.org/~eagle/software/rra-c-util/>.
#
-# Copyright 2018-2021 Russ Allbery <eagle@eyrie.org>
+# Copyright 2018-2022 Russ Allbery <eagle@eyrie.org>
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
@@ -121,7 +121,7 @@ sub check_file {
close($file) or BAIL_OUT("Cannot close $path");
# If there is a legacy license notice, report a failure regardless of file
- # size. Otherwise, skip files under 1KB. They can be rolled up into the
+ # size. Otherwise, skip files under 1KiB. They can be rolled up into the
# overall project license and the license notice may be a substantial
# portion of the file size.
if ($saw_legacy_notice) {
diff --git a/t/update/spin.t b/t/update/spin.t
index c692c80..d2bbc5a 100755
--- a/t/update/spin.t
+++ b/t/update/spin.t
@@ -46,20 +46,16 @@ $update->update_spin($tempdir);
# Check the resulting output.
my $expected = path('t', 'data', 'spin', 'update', 'output');
my $count = is_spin_output_tree("$tempdir", "$expected", 'Tree updated');
-my @changes = grep { m{ deleted | new [ ] file }xms } $repo->run('status');
-@changes = map { [split(q{ })] } sort(@changes);
-is_deeply(
- \@changes,
- [
- ['deleted:', 'module.rpod'],
- ['deleted:', 'readme.rpod'],
- ['deleted:', 'script.rpod'],
- ['new', 'file:', 'module.spin'],
- ['new', 'file:', 'readme.spin'],
- ['new', 'file:', 'script.spin'],
- ],
- 'Git operations',
+my @status = sort $repo->run('status', '-s');
+my @changes = (
+ 'A module.spin',
+ 'A readme.spin',
+ 'A script.spin',
+ 'D module.rpod',
+ 'D readme.rpod',
+ 'D script.rpod',
);
+is_deeply(\@status, \@changes, 'Git operations');
# Report the end of testing.
done_testing($count + 2);