Add patch to fix Perl 5.38

This commit is contained in:
Richard W.M. Jones 2023-07-13 12:05:26 +01:00
parent 9c9ed7bb59
commit 97ad256c11
17 changed files with 55 additions and 15 deletions

View File

@ -1,7 +1,7 @@
From d2e335b2d05e68c1fc7ed9b507fd5cafc172a112 Mon Sep 17 00:00:00 2001 From d2e335b2d05e68c1fc7ed9b507fd5cafc172a112 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 13 Jun 2023 20:11:34 +0100 Date: Tue, 13 Jun 2023 20:11:34 +0100
Subject: [PATCH 01/15] tests/test-tar-info*: Remove bogus test requires of Subject: [PATCH 01/16] tests/test-tar-info*: Remove bogus test requires of
guestfish guestfish
These tests don't need guestfish so don't test for it. These tests don't need guestfish so don't test for it.

View File

@ -1,7 +1,7 @@
From eb44ca26a84c369a7908f19517c0a2f8f621d57f Mon Sep 17 00:00:00 2001 From eb44ca26a84c369a7908f19517c0a2f8f621d57f Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 13 Jun 2023 20:25:40 +0100 Date: Tue, 13 Jun 2023 20:25:40 +0100
Subject: [PATCH 02/15] tar: Document the optional tar option in --help output Subject: [PATCH 02/16] tar: Document the optional tar option in --help output
and synopsis and synopsis
Fixes: commit 05b49f89dccb0ca3fd0919e9502c54dbcadf0b73 Fixes: commit 05b49f89dccb0ca3fd0919e9502c54dbcadf0b73

View File

@ -1,7 +1,7 @@
From ae3fb4def811f5bc42563128e8fae0a4288584d1 Mon Sep 17 00:00:00 2001 From ae3fb4def811f5bc42563128e8fae0a4288584d1 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 13 Jun 2023 20:01:05 +0100 Date: Tue, 13 Jun 2023 20:01:05 +0100
Subject: [PATCH 03/15] tar: Implement tar-limit Subject: [PATCH 03/16] tar: Implement tar-limit
This can be used to ensure that the tar filter does not read This can be used to ensure that the tar filter does not read
indefinite amounts of input when opening the tar file. indefinite amounts of input when opening the tar file.

View File

@ -1,7 +1,7 @@
From 35db543e38293808e910b291ff26b17284640ec9 Mon Sep 17 00:00:00 2001 From 35db543e38293808e910b291ff26b17284640ec9 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Mon, 19 Jun 2023 13:53:09 +0100 Date: Mon, 19 Jun 2023 13:53:09 +0100
Subject: [PATCH 04/15] xz: Fix error message to refer to xz-max-block Subject: [PATCH 04/16] xz: Fix error message to refer to xz-max-block
parameter parameter
In the original xz plugin the parameter was called "maxblock", but In the original xz plugin the parameter was called "maxblock", but

View File

@ -1,7 +1,7 @@
From 4398b1871f8832109fcdbe25c70a1dd341ed5bd4 Mon Sep 17 00:00:00 2001 From 4398b1871f8832109fcdbe25c70a1dd341ed5bd4 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Wed, 21 Jun 2023 13:05:22 +0100 Date: Wed, 21 Jun 2023 13:05:22 +0100
Subject: [PATCH 05/15] configure: Recommend using -g with OCAMLOPTFLAGS Subject: [PATCH 05/16] configure: Recommend using -g with OCAMLOPTFLAGS
--- ---
configure.ac | 4 ++-- configure.ac | 4 ++--

View File

@ -1,7 +1,7 @@
From b53b78e542fe8e49ce5c670e8ddc9d2be66f73cc Mon Sep 17 00:00:00 2001 From b53b78e542fe8e49ce5c670e8ddc9d2be66f73cc Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Wed, 21 Jun 2023 18:47:40 +0100 Date: Wed, 21 Jun 2023 18:47:40 +0100
Subject: [PATCH 06/15] tests/test_ocaml_plugin.ml: Print a message when test Subject: [PATCH 06/16] tests/test_ocaml_plugin.ml: Print a message when test
plugin initializes plugin initializes
It's useful to have a message which is printed as the top level It's useful to have a message which is printed as the top level

View File

@ -1,7 +1,7 @@
From b778c56443e11817d4974dcab5356e2d4065980b Mon Sep 17 00:00:00 2001 From b778c56443e11817d4974dcab5356e2d4065980b Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Wed, 21 Jun 2023 18:56:58 +0100 Date: Wed, 21 Jun 2023 18:56:58 +0100
Subject: [PATCH 07/15] ocaml: Add -I +unix before using unix.cmxa Subject: [PATCH 07/16] ocaml: Add -I +unix before using unix.cmxa
In OCaml 5.0 you will see this warning: In OCaml 5.0 you will see this warning:

View File

@ -1,7 +1,7 @@
From f8b761c62f177176dfe154a95824576eef740827 Mon Sep 17 00:00:00 2001 From f8b761c62f177176dfe154a95824576eef740827 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Wed, 21 Jun 2023 19:07:00 +0100 Date: Wed, 21 Jun 2023 19:07:00 +0100
Subject: [PATCH 08/15] ocaml: Replace caml_leave_blocking_section with Subject: [PATCH 08/16] ocaml: Replace caml_leave_blocking_section with
caml_acquire_runtime_system caml_acquire_runtime_system
Replace: Replace:

View File

@ -1,7 +1,7 @@
From f4d5f179c9be6db3c39bc0752e36f262c3f87716 Mon Sep 17 00:00:00 2001 From f4d5f179c9be6db3c39bc0752e36f262c3f87716 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Wed, 21 Jun 2023 20:15:46 +0100 Date: Wed, 21 Jun 2023 20:15:46 +0100
Subject: [PATCH 09/15] ocaml: Always unregister the global root and free the Subject: [PATCH 09/16] ocaml: Always unregister the global root and free the
handle handle
If the OCaml code did not provide a close method, we would never call If the OCaml code did not provide a close method, we would never call

View File

@ -1,7 +1,7 @@
From 9d4b87e0338d45456c0506fd2c25b80f7ef6b1e1 Mon Sep 17 00:00:00 2001 From 9d4b87e0338d45456c0506fd2c25b80f7ef6b1e1 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Wed, 21 Jun 2023 20:18:58 +0100 Date: Wed, 21 Jun 2023 20:18:58 +0100
Subject: [PATCH 10/15] ocaml: Fix thread registration for OCaml 5 Subject: [PATCH 10/16] ocaml: Fix thread registration for OCaml 5
OCaml 5 is strict about registering threads before calling OCaml heap OCaml 5 is strict about registering threads before calling OCaml heap
functions, and will abort the program with this error if you don't do functions, and will abort the program with this error if you don't do

View File

@ -1,7 +1,7 @@
From c78266258709e2cbe6f0e869c866d09ad72c072c Mon Sep 17 00:00:00 2001 From c78266258709e2cbe6f0e869c866d09ad72c072c Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 22 Jun 2023 10:33:31 +0100 Date: Thu, 22 Jun 2023 10:33:31 +0100
Subject: [PATCH 11/15] tests/test-cc-ocaml.sh: Use nbdkit -v option to help Subject: [PATCH 11/16] tests/test-cc-ocaml.sh: Use nbdkit -v option to help
with debugging with debugging
--- ---

View File

@ -1,7 +1,7 @@
From d968c4858847388e515bc1ef84ff4479c18a414d Mon Sep 17 00:00:00 2001 From d968c4858847388e515bc1ef84ff4479c18a414d Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 22 Jun 2023 10:44:10 +0100 Date: Thu, 22 Jun 2023 10:44:10 +0100
Subject: [PATCH 12/15] tests: Replace $SRCDIR with $abs_top_srcdir Subject: [PATCH 12/16] tests: Replace $SRCDIR with $abs_top_srcdir
functions.sh defines $abs_top_srcdir so there's no need to use $SRCDIR functions.sh defines $abs_top_srcdir so there's no need to use $SRCDIR
in any test scripts. in any test scripts.

View File

@ -1,7 +1,7 @@
From 92ae65f93d8ebeb09500552d7ebfc1e8149ded6f Mon Sep 17 00:00:00 2001 From 92ae65f93d8ebeb09500552d7ebfc1e8149ded6f Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 22 Jun 2023 10:48:51 +0100 Date: Thu, 22 Jun 2023 10:48:51 +0100
Subject: [PATCH 13/15] tests/test-read-password*: Remove use of $SRCDIR Subject: [PATCH 13/16] tests/test-read-password*: Remove use of $SRCDIR
These tests required exporting $abs_top_srcdir so that the plugin These tests required exporting $abs_top_srcdir so that the plugin
(which is a C script) can use it. (which is a C script) can use it.

View File

@ -1,7 +1,7 @@
From 2e3dcb2a720e4258b54d04ffd081c5159783df8e Mon Sep 17 00:00:00 2001 From 2e3dcb2a720e4258b54d04ffd081c5159783df8e Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 22 Jun 2023 10:50:17 +0100 Date: Thu, 22 Jun 2023 10:50:17 +0100
Subject: [PATCH 14/15] tests: Stop setting $SRCDIR for tests Subject: [PATCH 14/16] tests: Stop setting $SRCDIR for tests
Since no tests use this variable any longer we can stop setting it. Since no tests use this variable any longer we can stop setting it.

View File

@ -1,7 +1,7 @@
From 3e4c1b79a72970c17cb42b21070e61ec634a38bb Mon Sep 17 00:00:00 2001 From 3e4c1b79a72970c17cb42b21070e61ec634a38bb Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 22 Jun 2023 11:15:27 +0100 Date: Thu, 22 Jun 2023 11:15:27 +0100
Subject: [PATCH 15/15] tests: Explicitly add -L../plugins/ocaml/.libs to find Subject: [PATCH 15/16] tests: Explicitly add -L../plugins/ocaml/.libs to find
-lnbdkitocaml -lnbdkitocaml
The actual libnbdkitocaml.so library is located in The actual libnbdkitocaml.so library is located in

View File

@ -0,0 +1,39 @@
From 495708e9d1b396ff450df15d5789b4f6c51f6ebc Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 13 Jul 2023 11:50:02 +0100
Subject: [PATCH 16/16] perl: Call PERL_SET_CONTEXT from .open method
This appears to be necessary with Perl 5.38.
---
plugins/perl/perl.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/plugins/perl/perl.c b/plugins/perl/perl.c
index d3b7cede2..1d8d0c2b4 100644
--- a/plugins/perl/perl.c
+++ b/plugins/perl/perl.c
@@ -339,6 +339,21 @@ perl_open (int readonly)
SV *sv;
dSP;
+ /*
+ * From perlembed(1):
+ *
+ * "PERL_SET_CONTEXT(interp) should also be called whenever "interp"
+ * is used by a thread that did not create it (using either
+ * perl_alloc(), or the more esoteric perl_clone())."
+ *
+ * Since we may be called here from a new thread created within
+ * nbdkit, do this. This is necessary since Perl 5.38. It didn't
+ * seem to make a difference with earlier Perl, but doesn't break
+ * them either.
+ */
+
+ PERL_SET_CONTEXT (my_perl);
+
/* We check in perl_config that this callback is defined. */
ENTER;
SAVETMPS;
--
2.41.0

View File

@ -95,6 +95,7 @@ Patch: 0012-tests-Replace-SRCDIR-with-abs_top_srcdir.patch
Patch: 0013-tests-test-read-password-Remove-use-of-SRCDIR.patch Patch: 0013-tests-test-read-password-Remove-use-of-SRCDIR.patch
Patch: 0014-tests-Stop-setting-SRCDIR-for-tests.patch Patch: 0014-tests-Stop-setting-SRCDIR-for-tests.patch
Patch: 0015-tests-Explicitly-add-L.-plugins-ocaml-.libs-to-find-.patch Patch: 0015-tests-Explicitly-add-L.-plugins-ocaml-.libs-to-find-.patch
Patch: 0016-perl-Call-PERL_SET_CONTEXT-from-.open-method.patch
BuildRequires: make BuildRequires: make
%if 0%{patches_touch_autotools} %if 0%{patches_touch_autotools}