--- /dev/null
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+USE_RUBY="ruby24 ruby25 ruby26"
+
+RUBY_FAKEGEM_RECIPE_TEST="rspec3"
+
+RUBY_FAKEGEM_RECIPE_DOC="rdoc"
+RUBY_FAKEGEM_EXTRADOC="README.md"
+
+RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
+
+inherit ruby-fakegem
+
+DESCRIPTION="Solution for controlling external programs running in the background"
+HOMEPAGE="https://github.com/jarib/childprocess"
+
+LICENSE="MIT"
+SLOT="2"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sparc ~x86"
+IUSE=""
+
+ruby_add_rdepend ">=dev-ruby/ffi-1.0.11"
+
+all_ruby_prepare() {
+ eapply "${FILESDIR}/${P}-ruby26-reopen.patch"
+
+ # Remove bundler support
+ rm Gemfile || die
+ sed -i -e "/[Bb]undler/d" Rakefile || die
+ sed -i -e "/[Cc]overalls/d" spec/spec_helper.rb || die
+ sed -i -e 's/git ls-files/find/' ${RUBY_FAKEGEM_GEMSPEC} || die
+}
+
+each_ruby_prepare() {
+ sed -i -e "s:'ruby':'"${RUBY}"':" spec/childprocess_spec.rb || die
+}
+
+each_ruby_test() {
+ RUBYLIB=lib RSPEC_VERSION=3 ruby-ng_rspec
+}
--- /dev/null
+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)