On Thu, Sep 24, 2026 at 07:28:00PM +0100, Pádraig Brady wrote:
> On 24/09/2026 15:52, Collin Funk wrote:
> > Thomas Klausner <[email protected]> writes:
> >
> > > Hi!
> > >
> > > I'm currently updating the coreutils package in pkgsrc to 9.12 and see
> > > three test failures on NetBSD 11.99.8/x86_64.
> > >
> > > FAIL: tests/date/date
> > > =====================
> > >
> > > "my" variable $date masks earlier declaration in same scope at
> > > ./tests/date/date.pl line 501.
> > > date.pl: test rfc822-1: stderr mismatch, comparing rfc822-1.2 (expected)
> > > and rfc822-1.E (actual)
> > > --- rfc822-1.2 2026-09-24 13:57:52.719028798 +0000
> > > +++ rfc822-1.E 2026-09-24 13:57:52.720761652 +0000
> > > @@ -0,0 +1,5 @@
> > > +Setting LC_CTYPE to 'de_DE' failed setlocale(3)
> > > +Setting LC_MESSAGES to 'de_DE' failed setlocale(3)
> > > +Setting LC_MONETARY to 'de_DE' failed setlocale(3)
> > > +Setting LC_NUMERIC to 'de_DE' failed setlocale(3)
> > > +Setting LC_TIME to 'de_DE' failed setlocale(3)
> > > FAIL tests/date/date.pl (exit status: 1)
>
> We can probably work around that one with:
>
> diff --git a/tests/date/date.pl b/tests/date/date.pl
> index 40d92e01e..ef911d289 100755
> --- a/tests/date/date.pl
> +++ b/tests/date/date.pl
> @@ -173,9 +173,9 @@ my @Tests =
>
> # test for RFC-822 conformance
> ['rfc822-1', "-R -d '$d1'", {OUT=>"Sun, 19 Jan 1997 08:17:48 +0000"},
> - # Solaris 5.9's /bin/sh emits this diagnostic to stderr
> - # if you don't have support for the named locale.
> - {ERR_SUBST => q!s/^couldn't set locale correctly\n//!},
> + # Solaris 5.9's /bin/sh can emit "couldn't set locale"
> + # NetBSD 12 sh can emit "setlocale failed"
> + {ERR_SUBST => q!s/.*(?:couldn't set locale|failed setlocale).*\n//!},
> {ENV => 'LC_ALL=de_DE TZ=UTC0'}],
>
> # Relative seconds, with time. fixed in 2.0j
With that patch, the test failure is gone.
> > >
> > > FAIL: tests/stat/stat-birthtime
> > > ===============================
> > >
> > > FAIL tests/stat/stat-birthtime.sh (exit status: 1)
>
> Not enough info to debug this.
> Does it happen every time?
Yes.
> make TESTS=tests/stat/stat-birthtime.sh SUBDIRS=. check
Fails every time.
Manual test:
# touch a || fail=1
# btime=$(stat --format %W a) || fail=1
# atime=$(stat --format %X a) || fail=1
# ctime=$(stat --format %Z a) || fail=1
# mtime=$(stat --format %Y a) || fail=1
# echo $btime $atime $ctime $mtime
1790285360 1790285360 1790285360 1790285360
(wait a bit)
# touch a || fail=1
# btime=$(stat --format %W a) || fail=1
# atime=$(stat --format %X a) || fail=1
# ctime=$(stat --format %Z a) || fail=1
# mtime=$(stat --format %Y a) || fail=1
# echo $btime $atime $ctime $mtime
1790285360 1790285451 1790285360 1790285451
So ... mtime changed and it should according to the test?
> > >
> > > FAIL: tests/tail/pipe-f2
> > > ========================
> > >
> > > --- exp 2026-09-24 13:59:23.409667156 +0000
> > > +++ out 2026-09-24 13:59:23.409820394 +0000
> > > @@ -1 +0,0 @@
> > > -1
> > > kill: pid 7773: No such process
> > > FAIL tests/tail/pipe-f2.sh (exit status: 1)
> > >
> > > I'll attach the full test log.
> >
> > It has been a while since I looked at pipe-f2.sh, but I remember coming
> > to the conclusion that it was a NetBSD bug [1]. I never managed to
> > create a simple reproduction to report, and feel a bit bad just sending
> > over a long test case and asking them to fix it for me.
>
> Hmm NetBSD doesn't use inotify, so it's tail_forever() might
> not flush output before blocking in the the single fifo case.
> Thomas does this help at all?
>
> diff --git a/src/tail.c b/src/tail.c
> index 2ca27e835..4f144a60f 100644
> --- a/src/tail.c
> +++ b/src/tail.c
> @@ -1177,6 +1177,10 @@ tail_forever (struct File_spec *f, int n_files, double
> sleep_interval)
>
> static bool debugged;
>
> + /* Flush initial output as we might block reading a FIFO. */
> + if (fflush (stdout) < 0)
> + write_error ();
> +
> while (true)
> {
> /* Use blocking I/O as an optimization, when it's easy. */
>
Here too -- with the patch the test failure is gone.
Thank you!
Thomas