Control: severity -1 important
Control: tags -1 fixed-upstream
On Sun, Mar 10, 2024 at 07:14:37PM +0100, Sebastian Ramacher wrote:
> Source: termrec
> Version: 0.19-2.1
> Severity: serious
> ./testsuite.at:21: rec test.cast && loadsave test.cast out.cast && cmp
> test.cast out.cast
> --- /dev/null 2024-02-28 22:20:30.000000000 +0000
> +++ /<<PKGBUILDDIR>>/tests/testsuite.dir/at-groups/5/stdout 2024-03-04
> 07:30:59.654414192 +0000
> @@ -0,0 +1 @@
> +test.cast out.cast differ: char 38, line 1
> ./testsuite.at:21: exit code was 1, expected 0
> 5. testsuite.at:20: 5. loading and saving asciicasts to/from memory
> (testsuite.at:20): FAILED (testsuite.at:21)
> 6. testsuite.at:23: testing loading and saving v1 asciicasts to/from memory
> ...
> ./testsuite.at:24: rec test.cast-v1 && loadsave test.cast-v1 out.cast-v1 &&
> cmp test.cast-v1 out.cast-v1
> --- /dev/null 2024-02-28 22:20:30.000000000 +0000
> +++ /<<PKGBUILDDIR>>/tests/testsuite.dir/at-groups/6/stdout 2024-03-04
> 07:30:59.730414550 +0000
> @@ -0,0 +1 @@
> +test.cast-v1 out.cast-v1 differ: char 41, line 1
> ./testsuite.at:24: exit code was 1, expected 0
> 6. testsuite.at:23: 6. loading and saving v1 asciicasts to/from memory
> (testsuite.at:23): FAILED (testsuite.at:24)
Caused by the 32->64 bit time_t transition. Alas, there's no portable way
to print time_t.
Fixed in upstream git.
As for the package, I followed a cunning plan to downgrade this bug: it's
no longer a regression (cuz no prev version in testing, or stable for that
matter), and a missing arch is allowed. Downgrading, thus.
The real fix is:
--- a/libtty/asciicast.c
+++ b/libtty/asciicast.c
@@ -487,7 +487,7 @@ void record_asciicast(FILE *f, void* state, const struct
timeval *tm, const char
fprintf(f, "{\"version\":%d, \"width\":%d, \"height\":%d",
as->version, vt->sx, vt->sy);
if (as->ts.tv_sec)
fprintf(f, ", \"timestamp\":%ld", as->ts.tv_sec);
fprintf(f, ", \"timestamp\":%lld", (long long int)as->ts.tv_sec);
if (as->version == 1)
fprintf(f, ", \"stdout\":[\n");
else
Meow!
--
⢀⣴⠾⠻⢶⣦⠀ The ill-thought conversion to time64_t will make us suffer from
⣾⠁⢠⠒⠀⣿⡁ the Y292B problem. So let's move the Epoch by 435451400064000000
⢿⡄⠘⠷⠚⠋⠀ and make it unsigned -- that'll almost double the range.
⠈⠳⣄⠀⠀⠀⠀