diff options
Diffstat (limited to 'debian/patches/2003-workaround-qemu-vfork-command-not-found.patch')
-rw-r--r-- | debian/patches/2003-workaround-qemu-vfork-command-not-found.patch | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/debian/patches/2003-workaround-qemu-vfork-command-not-found.patch b/debian/patches/2003-workaround-qemu-vfork-command-not-found.patch new file mode 100644 index 0000000..d7f6424 --- /dev/null +++ b/debian/patches/2003-workaround-qemu-vfork-command-not-found.patch @@ -0,0 +1,19 @@ +Index: cargo/crates/cargo-test-macro/src/lib.rs +=================================================================== +--- cargo.orig/crates/cargo-test-macro/src/lib.rs ++++ cargo/crates/cargo-test-macro/src/lib.rs +@@ -223,6 +223,14 @@ fn has_command(command: &str) -> bool { + } + }; + if !output.status.success() { ++ // Debian specific patch, upstream wontfix: ++ // qemu has a faulty vfork where it fails to fail if a command is not ++ // found, with a unix_wait_status of 32512, or 0x7f00, 7f meaning ++ // exit code 127. See https://github.com/rust-lang/rust/issues/90825 ++ use std::os::unix::process::ExitStatusExt; ++ if output.status.into_raw() == 0x7f00 { ++ return false; ++ } + panic!( + "expected command `{}` to be runnable, got error {}:\n\ + stderr:{}\n\ |