commit:     75430c8e80559509f1e08aacb36aa2dc3ba5746e
Author:     Hans de Graaff <graaff <AT> gentoo <DOT> org>
AuthorDate: Mon Apr 29 16:57:01 2019 +0000
Commit:     Hans de Graaff <graaff <AT> gentoo <DOT> org>
CommitDate: Mon Apr 29 16:57:41 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=75430c8e

dev-ruby/childprocess: fix ruby26 compatibility

https://github.com/enkessler/childprocess/pull/149

Signed-off-by: Hans de Graaff <graaff <AT> gentoo.org>
Package-Manager: Portage-2.3.62, Repoman-2.3.11

 dev-ruby/childprocess/childprocess-1.0.1-r1.ebuild | 43 ++++++++++++++++++++++
 .../files/childprocess-1.0.1-ruby26-reopen.patch   | 23 ++++++++++++
 2 files changed, 66 insertions(+)

diff --git a/dev-ruby/childprocess/childprocess-1.0.1-r1.ebuild 
b/dev-ruby/childprocess/childprocess-1.0.1-r1.ebuild
new file mode 100644
index 00000000000..31146115840
--- /dev/null
+++ b/dev-ruby/childprocess/childprocess-1.0.1-r1.ebuild
@@ -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
+}

diff --git a/dev-ruby/childprocess/files/childprocess-1.0.1-ruby26-reopen.patch 
b/dev-ruby/childprocess/files/childprocess-1.0.1-ruby26-reopen.patch
new file mode 100644
index 00000000000..11f94421829
--- /dev/null
+++ b/dev-ruby/childprocess/files/childprocess-1.0.1-ruby26-reopen.patch
@@ -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)

Reply via email to