barman: patch out subprocess wrapper
This patches the command wrapper to prevent it from executing subprocesses via sys.executable. This is intended to ensure that the subprocess is using the same Python interpreter as the superprocess. However, in this case the barman script has been wrapped as a shell script, which is not executable as Python. Since our wrapper script already ensures a consistent version of Python, this internal wrapping is unnecessary, and so we patch it to execute the command directly. Fixes #135238
This commit is contained in:
parent
08e93dbc37
commit
a05a338df5
|
@ -13,6 +13,10 @@ python3Packages.buildPythonApplication rec {
|
|||
sha256 = "sha256-WLKtra1kNxvm4iO3NEhMNCSioHL9I8GIgkbtu95IyTQ=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./unwrap-subprocess.patch
|
||||
];
|
||||
|
||||
checkInputs = with python3Packages; [
|
||||
mock
|
||||
python-snappy
|
||||
|
|
30
pkgs/tools/misc/barman/unwrap-subprocess.patch
Normal file
30
pkgs/tools/misc/barman/unwrap-subprocess.patch
Normal file
|
@ -0,0 +1,30 @@
|
|||
--- a/barman/command_wrappers.py
|
||||
+++ b/barman/command_wrappers.py
|
||||
@@ -1144,5 +1144,5 @@
|
||||
# * pass the current configuration file with -c
|
||||
# * set it quiet with -q
|
||||
- self.command = [sys.executable, command, "-c", config, "-q", subcommand]
|
||||
+ self.command = [command, "-c", config, "-q", subcommand]
|
||||
self.keep_descriptors = keep_descriptors
|
||||
# Handle args for the sub-command (like the server name)
|
||||
|
||||
--- a/tests/test_command_wrappers.py
|
||||
+++ a/tests/test_command_wrappers.py
|
||||
@@ -1595,5 +1595,4 @@
|
||||
)
|
||||
assert subprocess.command == [
|
||||
- sys.executable,
|
||||
sys.argv[0],
|
||||
"-c",
|
||||
@@ -1622,5 +1621,4 @@
|
||||
)
|
||||
assert subprocess.command == [
|
||||
- sys.executable,
|
||||
"path/to/barman",
|
||||
"-c",
|
||||
@@ -1644,5 +1642,4 @@
|
||||
|
||||
command = [
|
||||
- sys.executable,
|
||||
"path/to/barman",
|
||||
"-c",
|
Loading…
Reference in a new issue