From 5dd88defd7f4a8482ad22e71e72ebd7740b85fd2 Mon Sep 17 00:00:00 2001 From: Sam James Date: Tue, 28 Sep 2021 20:30:32 +0100 Subject: dev-ruby/eventmachine: skip fewer tests, backport OpenSSL 1.1.1 fixes While I'd prefer to not mess with SSL patches where possible, on balance, it's worth using these here: - They're upstream patches; - They're being used in production by Fedora and Debian (in stable too); - This is the lesser evil given that tests fail with latest OpenSSL (hence we can't really judge if things are working) and, in the best case, at runtime, this will fallback to older SSL/TLS versions. Bug: https://bugs.gentoo.org/765253 Closes: https://bugs.gentoo.org/723818 Closes: https://bugs.gentoo.org/759250 Fixes: f05cc0db4473e05d408574c23a494ce903173e8d Signed-off-by: Sam James --- dev-ruby/eventmachine/Manifest | 1 + dev-ruby/eventmachine/eventmachine-1.2.7-r2.ebuild | 79 -------------------- dev-ruby/eventmachine/eventmachine-1.2.7-r3.ebuild | 85 ++++++++++++++++++++++ 3 files changed, 86 insertions(+), 79 deletions(-) delete mode 100644 dev-ruby/eventmachine/eventmachine-1.2.7-r2.ebuild create mode 100644 dev-ruby/eventmachine/eventmachine-1.2.7-r3.ebuild (limited to 'dev-ruby/eventmachine') diff --git a/dev-ruby/eventmachine/Manifest b/dev-ruby/eventmachine/Manifest index bcec3e811ea8..81c0d1ad05ae 100644 --- a/dev-ruby/eventmachine/Manifest +++ b/dev-ruby/eventmachine/Manifest @@ -1 +1,2 @@ +DIST eventmachine-1.2.7-openssl-patches.tar.bz2 14837 BLAKE2B 5f3280c053bd67c97db53814db3bbfd9bb3047d0fdae3972494a88bc9062e0f20b5684da8ba4264299a4fd5b0c159ad0d006fe78f6f1e8c0e9cdb531d98e3017 SHA512 9294ae918a51c2e7db098add3e793a2a57e40b223b7ee7113664245b5584af7b7bb180cf1dd83d0c30a316b6598a0a4507b953603c95482c42738099d33419d0 DIST eventmachine-1.2.7.tar.gz 246402 BLAKE2B 3eee1e5fbb367c03e3d801cb705a0f95b7bbb461885f04820f57421019a3d61eecabe71309981eec35168395eb6d98a8c675bd0fb225497de511f2ce09a5df92 SHA512 768ec084903dce4c737cf564fce7886a3e7e5b7d4a89c2baea3e998130c53dc00488eaa2d8e9b0133d9e4d8fffbde80c3025403881486a7968c2d84425cc1f50 diff --git a/dev-ruby/eventmachine/eventmachine-1.2.7-r2.ebuild b/dev-ruby/eventmachine/eventmachine-1.2.7-r2.ebuild deleted file mode 100644 index d3b2c9b344d9..000000000000 --- a/dev-ruby/eventmachine/eventmachine-1.2.7-r2.ebuild +++ /dev/null @@ -1,79 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -USE_RUBY="ruby26 ruby27" - -RUBY_FAKEGEM_RECIPE_DOC="rdoc" -RUBY_FAKEGEM_DOCDIR="rdoc" -RUBY_FAKEGEM_EXTRADOC="docs/*.md CHANGELOG.md README.md" - -RUBY_FAKEGEM_GEMSPEC="eventmachine.gemspec" - -RUBY_FAKEGEM_EXTENSIONS=(ext/extconf.rb ext/fastfilereader/extconf.rb) -RUBY_FAKEGEM_EXTRAINSTALL=(examples) - -inherit ruby-fakegem - -DESCRIPTION="EventMachine is a fast, simple event-processing library for Ruby programs" -HOMEPAGE="https://github.com/eventmachine/eventmachine" -SRC_URI="https://github.com/eventmachine/eventmachine/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="|| ( GPL-2 Ruby )" -SLOT="0" -KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris ~x86-solaris" -IUSE="test" -RESTRICT="!test? ( test )" - -DEPEND="${DEPEND} - dev-libs/openssl:0" -RDEPEND="${RDEPEND} - dev-libs/openssl:0=" - -ruby_add_bdepend "test? ( dev-ruby/test-unit:2 )" - -all_ruby_prepare() { - # Remove package tasks to avoid dependency on rake-compiler. - rm rakelib/package.rake || die - - sed -i -e '/git ls-files/d' ${RUBY_FAKEGEM_GEMSPEC} || die - # Remove the resolver tests since they require network access and - # the localhost test fails with an IPv6 localhost. - rm tests/test_resolver.rb || die - - # Needs a tty - rm tests/test_kb.rb || die - - # Avoid tests that require network access - sed -e '/test_bind_connect/,/^ end/ s:^:#:' \ - -e '/test_invalid_address_bind_connect_src/,/^ end/ s:^:#:' \ - -e '/test_invalid_address_bind_connect_dst/,/^ end/ s:^:#:' \ - -i tests/test_basic.rb || die - # Avoid tests for insecure SSL versions that may not be available - sed -e '/test_any_to_v3/,/^ end/ s:^:#:' \ - -e '/test_v3_/,/^ end/ s:^:#:' \ - -e '/test_tlsv1_required_with_external_client/aomit "sslv3"' \ - -e '/test_any_to_any/,/^ end/ s:^:#:' \ - -e '/test_case_insensitivity/,/^ end/ s:^:#:' \ - -e '/test_default_to_default/,/^ end/ s:^:#:' \ - -i tests/test_ssl_protocols.rb || die - # Those also want network - sed -e '/test_ipv6_udp_local_server/,/^ end/ s:^:#:' \ - -e '/test_ipv6_tcp_local_server/,/^ end/ s:^:#:' \ - -i tests/test_ipv6.rb || die - - rm tests/test_{sock_opt,ssl_verify,ssl_methods,ssl_dhparam,ssl_ecdh_curve,idle_connection}.rb || die - - # Avoid test that deliberately triggers a C++ exception which causes - # a SEGFAULT. This does not appear to happen upstream (on travis). - rm tests/test_exc.rb || die -} - -each_ruby_test() { - ${RUBY} -Ilib -S testrb-2 tests/test_*.rb || die -} - -all_ruby_install() { - all_fakegem_install -} diff --git a/dev-ruby/eventmachine/eventmachine-1.2.7-r3.ebuild b/dev-ruby/eventmachine/eventmachine-1.2.7-r3.ebuild new file mode 100644 index 000000000000..ce7cdf3ce6ad --- /dev/null +++ b/dev-ruby/eventmachine/eventmachine-1.2.7-r3.ebuild @@ -0,0 +1,85 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +USE_RUBY="ruby26 ruby27" + +RUBY_FAKEGEM_RECIPE_DOC="rdoc" +RUBY_FAKEGEM_DOCDIR="rdoc" +RUBY_FAKEGEM_EXTRADOC="docs/*.md CHANGELOG.md README.md" + +RUBY_FAKEGEM_GEMSPEC="eventmachine.gemspec" + +RUBY_FAKEGEM_EXTENSIONS=(ext/extconf.rb ext/fastfilereader/extconf.rb) +RUBY_FAKEGEM_EXTRAINSTALL=(examples) + +inherit ruby-fakegem + +DESCRIPTION="EventMachine is a fast, simple event-processing library for Ruby programs" +HOMEPAGE="https://github.com/eventmachine/eventmachine" +SRC_URI="https://github.com/eventmachine/eventmachine/archive/v${PV}.tar.gz -> ${P}.tar.gz" +# Collection of upstream patches to fix compatibility with newer OpenSSL +SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-openssl-patches.tar.bz2" + +LICENSE="|| ( GPL-2 Ruby )" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris ~x86-solaris" +IUSE="test" +RESTRICT="!test? ( test )" + +DEPEND="${DEPEND} + dev-libs/openssl:0=" +RDEPEND="${RDEPEND} + dev-libs/openssl:0=" + +ruby_add_bdepend "test? ( dev-ruby/test-unit:2 )" + +PATCHES=( + # Collection of upstream patches (rebased by Fedora, thanks!) to + # fix (mostly test) compatibility with >= OpenSSL 1.1.1. + "${WORKDIR}"/all/patches/ +) + +all_ruby_prepare() { + # Remove package tasks to avoid dependency on rake-compiler. + rm rakelib/package.rake || die + + sed -i -e '/git ls-files/d' ${RUBY_FAKEGEM_GEMSPEC} || die + # Remove the resolver tests since they require network access and + # the localhost test fails with an IPv6 localhost. + rm tests/test_resolver.rb || die + + # Needs a tty + rm tests/test_kb.rb || die + + # Avoid tests that require network access + sed -e '/test_bind_connect/,/^ end/ s:^:#:' \ + -e '/test_invalid_address_bind_connect_src/,/^ end/ s:^:#:' \ + -e '/test_invalid_address_bind_connect_dst/,/^ end/ s:^:#:' \ + -i tests/test_basic.rb || die + sed -e '/test_ipv6_udp_local_server/,/^ end/ s:^:#:' \ + -e '/test_ipv6_tcp_local_server/,/^ end/ s:^:#:' \ + -i tests/test_ipv6.rb || die + sed -e '/test_for_real/,/^ end/ s:^:#:' -i tests/test_pending_connect_timeout.rb || die + sed -e '/test_connect_timeout/,/^ end/ s:^:#:' -i tests/test_unbind_reason.rb || die + sed -e '/test_cookie/,/^ end/ s:^:#:' \ + -e '/test_http_client/,/^ end/ s:^:#:' \ + -e '/test_version_1_0/,/^ end/ s:^:#:' \ + -i tests/test_httpclient.rb || die + sed -e '/test_get/,/^ end/ s:^:#:' \ + -e '/test_https_get/,/^ end/ s:^:#:' \ + -i tests/test_httpclient2.rb || die + + # Avoid test that deliberately triggers a C++ exception which causes + # a SEGFAULT. This does not appear to happen upstream (on travis). + rm tests/test_exc.rb || die +} + +each_ruby_test() { + ${RUBY} -Ilib -S testrb-2 tests/test_*.rb || die +} + +all_ruby_install() { + all_fakegem_install +} -- cgit v1.2.3-65-gdbad