Projects
Mega:23.03
rubygem-childprocess
_service:tar_scm:Rewrite-unix-fork-reopen-to-be...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:tar_scm:Rewrite-unix-fork-reopen-to-be-compatible-with-ruby-.patch of Package rubygem-childprocess
From 975e87883a4f65966df59a5e757f03b66dd7e571 Mon Sep 17 00:00:00 2001 From: Hans de Graaff <hans@degraaff.org> Date: Mon, 29 Apr 2019 18:41:35 +0200 Subject: [PATCH] Rewrite unix fork reopen to be compatible with ruby 2.6 On ruby 2.6 the original code would fail specs: lib/childprocess/unix/fork_exec_process.rb:32:in `reopen': exclusive access mode is not supported (ArgumentError) The documentation for reopen shows that it has two ways to call it: reopen(other_IO) -> ios reopen(path, mode [,opt]) -> ios With ruby 2.4 and 2.5 calling reopen with a path and no mode seems to work fine, but with ruby 2.6 this triggers the spec failure. This commit splits the calls based on stdout/stderr availability so that both types of reopen calls can get the required parameters. This fixes the 2.6 specs while being backward compatible with ruby 2.4 and 2.5. --- lib/childprocess/unix/fork_exec_process.rb | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/childprocess/unix/fork_exec_process.rb b/lib/childprocess/unix/fork_exec_process.rb index 5ed2a79..cc7a850 100644 --- a/lib/childprocess/unix/fork_exec_process.rb +++ b/lib/childprocess/unix/fork_exec_process.rb @@ -29,8 +29,16 @@ module ChildProcess exec_r.close set_env - STDOUT.reopen(stdout || "/dev/null") - STDERR.reopen(stderr || "/dev/null") + if stdout + STDOUT.reopen(stdout) + else + STDOUT.reopen("/dev/null", "a+") + end + if stderr + STDERR.reopen(stderr) + else + STDERR.reopen("/dev/null", "a+") + end if duplex? STDIN.reopen(reader) -- 2.33.0
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2