From 87bfbed7b2dc76a487b7440d89e52058e19becba Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Wed, 25 Oct 2023 17:15:44 +0200 Subject: [PATCH] openssl: fix 05-test_rand As of OpenSSL v3.1.4, there is a pair of new test failures in 05-test_rand. The symptom looks like this: Engine "ossltest" set. ../../util/wrap.pl ../../apps/openssl.exe rand -engine ossltest -hex 16 => 0 not ok 4 - rand with ossltest: Check rand output is as expected # Failed test 'rand with ossltest: Check rand output is as expected' # at ../openssl-3.1.4/test/recipes/05-test_rand.t line 32. Engine "dasync" set. ../../util/wrap.pl ../../apps/openssl.exe rand -engine dasync -hex 16 => 0 not ok 5 - rand with dasync: Check rand output is of expected length The two failing tests both spawn an engine, which by virtue of being MINGW `.dll` files use CR/LF when printing to `stdout`. To accommodate for that, use the same "better chomp" as elsewhere in OpenSSL's source code. Signed-off-by: Johannes Schindelin --- .../0001-test_rand-use-the-better-chomp.patch | 39 +++++++++++++++++++ mingw-w64-openssl/PKGBUILD | 5 ++- 2 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 mingw-w64-openssl/0001-test_rand-use-the-better-chomp.patch diff --git a/mingw-w64-openssl/0001-test_rand-use-the-better-chomp.patch b/mingw-w64-openssl/0001-test_rand-use-the-better-chomp.patch new file mode 100644 index 0000000000000..d0a633bac021d --- /dev/null +++ b/mingw-w64-openssl/0001-test_rand-use-the-better-chomp.patch @@ -0,0 +1,39 @@ +From 820803594c31daa2c96921f2d7888c88b1edc97e Mon Sep 17 00:00:00 2001 +From: Johannes Schindelin +Date: Wed, 25 Oct 2023 17:10:17 +0200 +Subject: [PATCH] test_rand: use the "better chomp" + +Following in the footsteps of +https://github.com/openssl/openssl/commit/9ba96fbb2523cb12747c559c704c58bd8f9e7982 +(Perl's chop / chomp considered bad, use a regexp instead, 2016-02-11), +let's not use `chomp()` here because it would leave Carriage Returns in +place, making the test fail in the MINGW build on Windows. + +Signed-off-by: Johannes Schindelin +--- + test/recipes/05-test_rand.t | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/test/recipes/05-test_rand.t b/test/recipes/05-test_rand.t +index aa012c1..f2c1374 100644 +--- a/test/recipes/05-test_rand.t ++++ b/test/recipes/05-test_rand.t +@@ -28,13 +28,13 @@ SKIP: { + + @randdata = run(app(['openssl', 'rand', '-engine', 'ossltest', '-hex', '16' ]), + capture => 1, statusvar => \$success); +- chomp(@randdata); ++ $_ =~ s|\R+$|| for @randdata; + ok($success && $randdata[0] eq $expected, + "rand with ossltest: Check rand output is as expected"); + + @randdata = run(app(['openssl', 'rand', '-engine', 'dasync', '-hex', '16' ]), + capture => 1, statusvar => \$success); +- chomp(@randdata); ++ $_ =~ s|\R+$|| for @randdata; + ok($success && length($randdata[0]) == 32, + "rand with dasync: Check rand output is of expected length"); + } +-- +2.42.0.windows.2 + diff --git a/mingw-w64-openssl/PKGBUILD b/mingw-w64-openssl/PKGBUILD index 528e13cce3fae..3b987f6964b04 100644 --- a/mingw-w64-openssl/PKGBUILD +++ b/mingw-w64-openssl/PKGBUILD @@ -21,12 +21,14 @@ options=('!strip' '!buildflags') source=("https://www.openssl.org/source/openssl-${pkgver}.tar.gz"{,.asc} '001-support-aarch64.patch' '002-relocation.patch' + '0001-test_rand-use-the-better-chomp.patch' 'pathtools.c' 'pathtools.h') sha256sums=('840af5366ab9b522bde525826be3ef0fb0af81c6a9ebd84caa600fea1731eee3' 'SKIP' '21b96771b401442570e885c2d5689a359a91e86dcbf5511db3667202b6c1fa8a' '5628dd39ab0d3ce4afbb5207bab5d22766abc86a8875b48b6d4d3efd68550e68' + '56fcd20131ae0c563db18ae00c6ba3b95cd9cb1e9934548079284ba3f52ad250' '08209cbf1633fa92eae7e5d28f95f8df9d6184cc20fa878c99aec4709bb257fd' '965d3921ec4fdeec94a2718bc2c85ce5e1a00ea0e499330a554074a7ae15dfc6') @@ -54,7 +56,8 @@ prepare() { apply_patch_with_msg \ 001-support-aarch64.patch \ - 002-relocation.patch + 002-relocation.patch \ + 0001-test_rand-use-the-better-chomp.patch test ! -d "${startdir}/../mingw-w64-pathtools" || { cmp "${startdir}/../mingw-w64-pathtools/pathtools.c" "${srcdir}/pathtools.c" &&