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

Reply via email to