Gentoo Archives: gentoo-commits

From: "Robin H. Johnson" <robbat2@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-ruby/httpclient/
Date: Thu, 14 Oct 2021 20:07:52
Message-Id: 1634242065.95813829db1b5ed24e91076a36f43d9c34392c7d.robbat2@gentoo
1 commit: 95813829db1b5ed24e91076a36f43d9c34392c7d
2 Author: Robin H. Johnson <robbat2 <AT> gentoo <DOT> org>
3 AuthorDate: Thu Oct 14 19:59:15 2021 +0000
4 Commit: Robin H. Johnson <robbat2 <AT> gentoo <DOT> org>
5 CommitDate: Thu Oct 14 20:07:45 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=95813829
7
8 dev-ruby/httpclient: revbump w/ to use system certificates
9
10 httpclient bundled really old CA certificates: 6-year & 11-year old, and
11 used them by default, which broke LetsEncrypt consumers. Replace the
12 bundles with symlink to the system copy, which is kept up to date.
13
14 Closes: https://bugs.gentoo.org/818025
15 Signed-off-by: Robin H. Johnson <robbat2 <AT> gentoo.org>
16
17 dev-ruby/httpclient/httpclient-2.8.3-r1.ebuild | 78 ++++++++++++++++++++++++++
18 1 file changed, 78 insertions(+)
19
20 diff --git a/dev-ruby/httpclient/httpclient-2.8.3-r1.ebuild b/dev-ruby/httpclient/httpclient-2.8.3-r1.ebuild
21 new file mode 100644
22 index 00000000000..36a0fd386fb
23 --- /dev/null
24 +++ b/dev-ruby/httpclient/httpclient-2.8.3-r1.ebuild
25 @@ -0,0 +1,78 @@
26 +# Copyright 1999-2021 Gentoo Authors
27 +# Distributed under the terms of the GNU General Public License v2
28 +
29 +EAPI=5
30 +
31 +USE_RUBY="ruby26 ruby27 ruby30"
32 +
33 +RUBY_FAKEGEM_TASK_TEST="-Ilib test"
34 +RUBY_FAKEGEM_TASK_DOC="doc"
35 +
36 +RUBY_FAKEGEM_DOCDIR="doc"
37 +
38 +RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
39 +
40 +RUBY_FAKEGEM_GEMSPEC="httpclient.gemspec"
41 +
42 +inherit ruby-fakegem eapi8-dosym
43 +
44 +DESCRIPTION="'httpclient' gives something like the functionality of libwww-perl (LWP) in Ruby"
45 +HOMEPAGE="https://github.com/nahi/httpclient"
46 +SRC_URI="https://github.com/nahi/httpclient/archive/v${PV}.tar.gz -> ${P}.tgz"
47 +
48 +LICENSE="Ruby"
49 +SLOT="0"
50 +
51 +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris ~x86-solaris"
52 +IUSE=""
53 +
54 +ruby_add_rdepend "virtual/ruby-ssl"
55 +
56 +ruby_add_bdepend "doc? ( dev-ruby/rdoc )"
57 +ruby_add_bdepend "test? ( dev-ruby/test-unit dev-ruby/http-cookie )"
58 +
59 +all_ruby_prepare() {
60 + rm Gemfile || die
61 + sed -i -e '/[bB]undler/s:^:#:' Rakefile || die
62 +
63 + # Fix documentation task
64 + sed -i -e 's/README.txt/README.md/' Rakefile || die
65 +
66 + # Remove mandatory CI reports since we don't need this for testing.
67 + sed -i -e '/reporter/s:^:#:' Rakefile || die
68 +
69 + # Remove mandatory simplecov dependency
70 + sed -i -e '/[Ss]imple[Cc]ov/ s:^:#:' test/helper.rb || die
71 +
72 + # Comment out test requiring network access that makes assumptions
73 + # about the environment, bug 395155
74 + sed -i -e '/test_async_error/,/^ end/ s:^:#:' test/test_httpclient.rb || die
75 +
76 + # Skip tests using rack-ntlm which is not packaged. Weirdly these
77 + # only fail on jruby.
78 + rm test/test_auth.rb || die
79 +
80 + # Skip test failing due to hard-coded expired certificate
81 + sed -i -e '/test_verification_without_httpclient/,/^ end/ s:^:#:' test/test_ssl.rb || die
82 +
83 + # Skip test depending on obsolete and vulnerable SSLv3
84 + sed -i -e '/test_no_sslv3/,/^ end/ s:^:#:' test/test_ssl.rb || die
85 +
86 + # Do not use 11-year-old bundled certificates!
87 + # fix this copy so it doesn't fail tests
88 + ln -sf "${EPREFIX}"/etc/ssl/certs/ca-certificates.crt ./dist_key/cacerts.pem
89 + ln -sf "${EPREFIX}"/etc/ssl/certs/ca-certificates.crt ./lib/httpclient/cacert.pem
90 +}
91 +
92 +each_ruby_test() {
93 + ${RUBY} -Ilib:test:. -e 'gem "test-unit"; Dir["test/test_*.rb"].each{|f| require f}' || die
94 +}
95 +
96 +each_ruby_install() {
97 + each_fakegem_install
98 + # Do not use 11-year-old bundled certificates!
99 + # fix this copy for production systems
100 + # do not ship the cacert1024.pem at all anymore, nobody should use RSA1024 certs!
101 + rm -f "${ED}/$(ruby_fakegem_gemsdir)/gems/${RUBY_FAKEGEM_NAME}-${RUBY_FAKEGEM_VERSION}/lib/httpclient/"{cacert.pem,cacert1024}.pem
102 + dosym8 -r /etc/ssl/certs/ca-certificates.crt $(ruby_fakegem_gemsdir)/gems/${RUBY_FAKEGEM_NAME}-${RUBY_FAKEGEM_VERSION}/lib/httpclient/cacert.pem
103 +}