Skip to content

Commit

Permalink
dev-ruby/childprocess: fix ruby26 compatibility
Browse files Browse the repository at this point in the history
enkessler/childprocess#149

Signed-off-by: Hans de Graaff <[email protected]>
Package-Manager: Portage-2.3.62, Repoman-2.3.11
  • Loading branch information
graaff committed Apr 29, 2019
1 parent 449b0fd commit 75430c8
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 0 deletions.
43 changes: 43 additions & 0 deletions dev-ruby/childprocess/childprocess-1.0.1-r1.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# 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
}
23 changes: 23 additions & 0 deletions dev-ruby/childprocess/files/childprocess-1.0.1-ruby26-reopen.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
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)

0 comments on commit 75430c8

Please sign in to comment.