commit: d149f4de1fb4e9e5333da58988dd72a07f9930ef Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Tue Apr 11 04:41:38 2023 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Thu Apr 13 03:00:53 2023 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d149f4de
dev-ruby/domain_name: drop dev-ruby/unf dependency, enable ruby32 Signed-off-by: Sam James <sam <AT> gentoo.org> .../domain_name/domain_name-0.5.20190701-r2.ebuild | 50 ++++++++ .../files/domain_name-0.5.20190701-drop-unf.patch | 126 +++++++++++++++++++++ 2 files changed, 176 insertions(+) diff --git a/dev-ruby/domain_name/domain_name-0.5.20190701-r2.ebuild b/dev-ruby/domain_name/domain_name-0.5.20190701-r2.ebuild new file mode 100644 index 000000000000..507e95cdd339 --- /dev/null +++ b/dev-ruby/domain_name/domain_name-0.5.20190701-r2.ebuild @@ -0,0 +1,50 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +USE_RUBY="ruby27 ruby30 ruby31 ruby32" + +RUBY_FAKEGEM_RECIPE_TEST="none" +RUBY_FAKEGEM_TASK_DOC="" +RUBY_FAKEGEM_EXTRADOC="README.md" + +RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec" + +inherit ruby-fakegem + +DESCRIPTION="Domain Name manipulation library for Ruby" +HOMEPAGE="https://github.com/knu/ruby-domain_name" + +LICENSE="BSD-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-solaris" +IUSE="test" + +ruby_add_bdepend " + test? ( + >=dev-ruby/test-unit-2.5.5 + dev-ruby/shoulda + )" + +PATCHES=( + # Pending upstream and conceptually acked, unf is obsolete + # with > ruby22. + "${FILESDIR}"/${PN}-0.5.20190701-drop-unf.patch +) + +all_ruby_prepare() { + sed -i -e '/bundler/,/end/ d' test/helper.rb || die + rm Gemfile* || die + + # Remove development dependencies + sed -i -e '/dependency.*\(shoulda\|bundler\|jeweler\|rdoc\)/d' \ + ${RUBY_FAKEGEM_GEMSPEC} || die + + # Avoid dependency on git. + sed -i -e 's/`git ls-files`/""/' ${RUBY_FAKEGEM_GEMSPEC} || die +} + +each_ruby_test() { + ruby-ng_testrb-2 -Ilib:test test/test_*.rb +} diff --git a/dev-ruby/domain_name/files/domain_name-0.5.20190701-drop-unf.patch b/dev-ruby/domain_name/files/domain_name-0.5.20190701-drop-unf.patch new file mode 100644 index 000000000000..d9b6c4df65a5 --- /dev/null +++ b/dev-ruby/domain_name/files/domain_name-0.5.20190701-drop-unf.patch @@ -0,0 +1,126 @@ +https://github.com/knu/ruby-domain_name/pull/11 +(see also https://github.com/knu/ruby-domain_name/pull/22) + +From 28db4ddb42adb827fc54935a6308bae03d7e8e6c Mon Sep 17 00:00:00 2001 +From: tayler1 <mtay...@gmx.com> +Date: Sat, 4 Feb 2017 18:20:07 +0300 +Subject: [PATCH 1/3] Removed unf dependency for ruby > 2.2 + +--- a/domain_name.gemspec ++++ b/domain_name.gemspec +@@ -28,7 +28,7 @@ Suffix List. + "README.md" + ] + +- gem.add_runtime_dependency("unf", ["< 1.0.0", ">= 0.0.5"]) ++ gem.add_runtime_dependency("unf", ["< 1.0.0", ">= 0.0.5"]) if RUBY_VERSION < "2.2" + gem.add_development_dependency("test-unit", "~> 2.5.5") + gem.add_development_dependency("bundler", [">= 1.2.0"]) + gem.add_development_dependency("rake", [">= 0.9.2.2", *("< 11" if RUBY_VERSION < "1.9")]) +--- a/lib/domain_name.rb ++++ b/lib/domain_name.rb +@@ -8,7 +8,7 @@ + require 'domain_name/version' + require 'domain_name/punycode' + require 'domain_name/etld_data' +-require 'unf' ++require 'unf' if RUBY_VERSION < '2.2' + require 'ipaddr' + + # Represents a domain name ready for extracting its registered domain +@@ -286,7 +286,11 @@ class << self + # Normalizes a _domain_ using the Punycode algorithm as necessary. + # The result will be a downcased, ASCII-only string. + def normalize(domain) +- DomainName::Punycode.encode_hostname(domain.chomp(DOT).to_nfc).downcase ++ if RUBY_VERSION >= '2.2' ++ DomainName::Punycode.encode_hostname(domain.chomp(DOT).unicode_normalize).downcase ++ else ++ DomainName::Punycode.encode_hostname(domain.chomp(DOT).to_nfc).downcase ++ end + end + end + end +--- a/test/test_domain_name-punycode.rb ++++ b/test/test_domain_name-punycode.rb +@@ -91,7 +91,12 @@ class TestDomainName < Test::Unit::TestCase + '-> $1.00 <--'] + ].each { |title, cps, punycode| + assert_equal punycode, DomainName::Punycode.encode(cps.pack('U*')), title +- assert_equal cps.pack('U*').to_nfc, DomainName::Punycode.decode(punycode), title ++ cps_norm = if RUBY_VERSION >= '2.2' ++ cps.pack('U*').unicode_normalize ++ else ++ cps.pack('U*').to_nfc ++ end ++ assert_equal cps_norm, DomainName::Punycode.decode(punycode), title + } + end + end + +From 9d2912428799cd860d96c24d51292f2b03e857e2 Mon Sep 17 00:00:00 2001 +From: tayler1 <mtay...@gmx.com> +Date: Mon, 6 Feb 2017 01:46:03 +0300 +Subject: [PATCH 2/3] fix + +--- a/lib/domain_name.rb ++++ b/lib/domain_name.rb +@@ -8,8 +8,12 @@ + require 'domain_name/version' + require 'domain_name/punycode' + require 'domain_name/etld_data' +-require 'unf' if RUBY_VERSION < '2.2' + require 'ipaddr' ++if RUBY_VERSION < '2.2' ++ require 'unf' ++else ++ require 'unicode_normalize/normalize' ++end + + # Represents a domain name ready for extracting its registered domain + # and TLD. +@@ -285,11 +289,15 @@ def inspect + class << self + # Normalizes a _domain_ using the Punycode algorithm as necessary. + # The result will be a downcased, ASCII-only string. +- def normalize(domain) +- if RUBY_VERSION >= '2.2' +- DomainName::Punycode.encode_hostname(domain.chomp(DOT).unicode_normalize).downcase +- else +- DomainName::Punycode.encode_hostname(domain.chomp(DOT).to_nfc).downcase ++ if RUBY_VERSION >= '2.2' ++ def normalize(domain) ++ domain.chomp!(DOT) ++ DomainName::Punycode.encode_hostname(domain.unicode_normalize).downcase ++ end ++ else ++ def normalize(domain) ++ domain.chomp!(DOT) ++ DomainName::Punycode.encode_hostname(domain.to_nfc).downcase + end + end + end + +From 6d76a14ba3b7c42d4fd3f4fab30c0099ffc51c2b Mon Sep 17 00:00:00 2001 +From: tayler1 <mtay...@gmx.com> +Date: Mon, 6 Feb 2017 02:35:55 +0300 +Subject: [PATCH 3/3] Fix frozen string + +--- a/lib/domain_name.rb ++++ b/lib/domain_name.rb +@@ -291,13 +291,11 @@ class << self + # The result will be a downcased, ASCII-only string. + if RUBY_VERSION >= '2.2' + def normalize(domain) +- domain.chomp!(DOT) +- DomainName::Punycode.encode_hostname(domain.unicode_normalize).downcase ++ DomainName::Punycode.encode_hostname(domain.chomp(DOT).unicode_normalize).downcase + end + else + def normalize(domain) +- domain.chomp!(DOT) +- DomainName::Punycode.encode_hostname(domain.to_nfc).downcase ++ DomainName::Punycode.encode_hostname(domain.chomp(DOT).to_nfc).downcase + end + end + end