commit:     95813829db1b5ed24e91076a36f43d9c34392c7d
Author:     Robin H. Johnson <robbat2 <AT> gentoo <DOT> org>
AuthorDate: Thu Oct 14 19:59:15 2021 +0000
Commit:     Robin H. Johnson <robbat2 <AT> gentoo <DOT> org>
CommitDate: Thu Oct 14 20:07:45 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=95813829

dev-ruby/httpclient: revbump w/ to use system certificates

httpclient bundled really old CA certificates: 6-year & 11-year old, and
used them by default, which broke LetsEncrypt consumers. Replace the
bundles with symlink to the system copy, which is kept up to date.

Closes: https://bugs.gentoo.org/818025
Signed-off-by: Robin H. Johnson <robbat2 <AT> gentoo.org>

 dev-ruby/httpclient/httpclient-2.8.3-r1.ebuild | 78 ++++++++++++++++++++++++++
 1 file changed, 78 insertions(+)

diff --git a/dev-ruby/httpclient/httpclient-2.8.3-r1.ebuild 
b/dev-ruby/httpclient/httpclient-2.8.3-r1.ebuild
new file mode 100644
index 00000000000..36a0fd386fb
--- /dev/null
+++ b/dev-ruby/httpclient/httpclient-2.8.3-r1.ebuild
@@ -0,0 +1,78 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+USE_RUBY="ruby26 ruby27 ruby30"
+
+RUBY_FAKEGEM_TASK_TEST="-Ilib test"
+RUBY_FAKEGEM_TASK_DOC="doc"
+
+RUBY_FAKEGEM_DOCDIR="doc"
+
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
+
+RUBY_FAKEGEM_GEMSPEC="httpclient.gemspec"
+
+inherit ruby-fakegem eapi8-dosym
+
+DESCRIPTION="'httpclient' gives something like the functionality of 
libwww-perl (LWP) in Ruby"
+HOMEPAGE="https://github.com/nahi/httpclient";
+SRC_URI="https://github.com/nahi/httpclient/archive/v${PV}.tar.gz -> ${P}.tgz"
+
+LICENSE="Ruby"
+SLOT="0"
+
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux 
~x86-linux ~ppc-macos ~x64-macos ~x64-solaris ~x86-solaris"
+IUSE=""
+
+ruby_add_rdepend "virtual/ruby-ssl"
+
+ruby_add_bdepend "doc? ( dev-ruby/rdoc )"
+ruby_add_bdepend "test? ( dev-ruby/test-unit dev-ruby/http-cookie )"
+
+all_ruby_prepare() {
+       rm Gemfile || die
+       sed -i -e '/[bB]undler/s:^:#:' Rakefile || die
+
+       # Fix documentation task
+       sed -i -e 's/README.txt/README.md/' Rakefile || die
+
+       # Remove mandatory CI reports since we don't need this for testing.
+       sed -i -e '/reporter/s:^:#:' Rakefile || die
+
+       # Remove mandatory simplecov dependency
+       sed -i -e '/[Ss]imple[Cc]ov/ s:^:#:' test/helper.rb || die
+
+       # Comment out test requiring network access that makes assumptions
+       # about the environment, bug 395155
+       sed -i -e '/test_async_error/,/^  end/ s:^:#:' test/test_httpclient.rb 
|| die
+
+       # Skip tests using rack-ntlm which is not packaged. Weirdly these
+       # only fail on jruby.
+       rm test/test_auth.rb || die
+
+       # Skip test failing due to hard-coded expired certificate
+       sed -i -e '/test_verification_without_httpclient/,/^  end/ s:^:#:' 
test/test_ssl.rb || die
+
+       # Skip test depending on obsolete and vulnerable SSLv3
+       sed -i -e '/test_no_sslv3/,/^  end/ s:^:#:' test/test_ssl.rb || die
+
+       # Do not use 11-year-old bundled certificates!
+       # fix this copy so it doesn't fail tests
+       ln -sf "${EPREFIX}"/etc/ssl/certs/ca-certificates.crt 
./dist_key/cacerts.pem
+       ln -sf "${EPREFIX}"/etc/ssl/certs/ca-certificates.crt 
./lib/httpclient/cacert.pem
+}
+
+each_ruby_test() {
+       ${RUBY} -Ilib:test:. -e 'gem "test-unit"; 
Dir["test/test_*.rb"].each{|f| require f}' || die
+}
+
+each_ruby_install() {
+       each_fakegem_install
+       # Do not use 11-year-old bundled certificates!
+       # fix this copy for production systems
+       # do not ship the cacert1024.pem at all anymore, nobody should use 
RSA1024 certs!
+       rm -f 
"${ED}/$(ruby_fakegem_gemsdir)/gems/${RUBY_FAKEGEM_NAME}-${RUBY_FAKEGEM_VERSION}/lib/httpclient/"{cacert.pem,cacert1024}.pem
+       dosym8 -r /etc/ssl/certs/ca-certificates.crt 
$(ruby_fakegem_gemsdir)/gems/${RUBY_FAKEGEM_NAME}-${RUBY_FAKEGEM_VERSION}/lib/httpclient/cacert.pem
+}

Reply via email to