summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans de Graaff <graaff@gentoo.org>2019-04-29 18:57:01 +0200
committerHans de Graaff <graaff@gentoo.org>2019-04-29 18:57:41 +0200
commit75430c8e80559509f1e08aacb36aa2dc3ba5746e (patch)
tree2c9fac7822ace616b87b85b36219979c55943cb6
parent449b0fd19ee57ef58023e8255ba0f97a400c9408 (diff)
downloadgentoo-75430c8e80559509f1e08aacb36aa2dc3ba5746e.tar.gz
gentoo-75430c8e80559509f1e08aacb36aa2dc3ba5746e.tar.xz
dev-ruby/childprocess: fix ruby26 compatibility
https://github.com/enkessler/childprocess/pull/149 Signed-off-by: Hans de Graaff <graaff@gentoo.org> Package-Manager: Portage-2.3.62, Repoman-2.3.11
-rw-r--r--dev-ruby/childprocess/childprocess-1.0.1-r1.ebuild43
-rw-r--r--dev-ruby/childprocess/files/childprocess-1.0.1-ruby26-reopen.patch23
2 files changed, 66 insertions, 0 deletions
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)