summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans de Graaff <graaff@gentoo.org>2024-08-12 11:29:52 +0200
committerHans de Graaff <graaff@gentoo.org>2024-08-12 11:33:22 +0200
commit986366bb094939c4e2d8cf0067f1bd1ba24ca18e (patch)
treecdf510ffefcc8bacdde40225b965e89bd6422f8b /dev-lang
parentdev-java/json: drop 20240205-r1 (diff)
downloadgentoo-986366bb094939c4e2d8cf0067f1bd1ba24ca18e.tar.gz
gentoo-986366bb094939c4e2d8cf0067f1bd1ba24ca18e.tar.bz2
gentoo-986366bb094939c4e2d8cf0067f1bd1ba24ca18e.zip
dev-lang/ruby: backport RLIMIT spec fixes
Thanks to matoro for working with upstream to make this spec work on all arches. Closes: https://bugs.gentoo.org/936157 Signed-off-by: Hans de Graaff <graaff@gentoo.org>
Diffstat (limited to 'dev-lang')
-rw-r--r--dev-lang/ruby/files/3.1/013-test-rlimit-constants.patch147
-rw-r--r--dev-lang/ruby/files/3.2/013-test-rlimit-constants.patch147
-rw-r--r--dev-lang/ruby/files/3.3/013-test-rlimit-constants.patch159
-rw-r--r--dev-lang/ruby/ruby-3.1.6-r1.ebuild1
-rw-r--r--dev-lang/ruby/ruby-3.2.5.ebuild1
-rw-r--r--dev-lang/ruby/ruby-3.3.4-r1.ebuild1
6 files changed, 456 insertions, 0 deletions
diff --git a/dev-lang/ruby/files/3.1/013-test-rlimit-constants.patch b/dev-lang/ruby/files/3.1/013-test-rlimit-constants.patch
new file mode 100644
index 000000000000..998c839808aa
--- /dev/null
+++ b/dev-lang/ruby/files/3.1/013-test-rlimit-constants.patch
@@ -0,0 +1,147 @@
+From bea20365f43ee115ea6219c7113647eed3d9e342 Mon Sep 17 00:00:00 2001
+From: matoro <matoro@users.noreply.github.com>
+Date: Wed, 7 Aug 2024 13:15:00 -0400
+Subject: [PATCH] Replace specific constant tests with just type checks
+
+As detailed in the attached issue, these constants can and do vary e.g.
+between architectures on Linux. Hardcoding and asserting that they are
+equal to specific values pretty much defeats the purpose of building
+these in at compile time. Instead, simply assert that they exist and
+are integers.
+
+Fixes: https://github.com/ruby/spec/issues/1150
+---
+ core/process/constants_spec.rb | 116 ++++++++++++++++++++-------------
+ 1 file changed, 69 insertions(+), 47 deletions(-)
+
+diff --git a/core/process/constants_spec.rb b/core/process/constants_spec.rb
+index 616c54b8e..57cacadef 100644
+--- a/spec/ruby/core/process/constants_spec.rb
++++ b/spec/ruby/core/process/constants_spec.rb
+@@ -2,64 +2,81 @@
+
+ describe "Process::Constants" do
+ platform_is :darwin, :netbsd, :freebsd do
+- it "has the correct constant values on BSD-like systems" do
+- Process::WNOHANG.should == 1
+- Process::WUNTRACED.should == 2
+- Process::PRIO_PROCESS.should == 0
+- Process::PRIO_PGRP.should == 1
+- Process::PRIO_USER.should == 2
+- Process::RLIM_INFINITY.should == 9223372036854775807
+- Process::RLIMIT_CPU.should == 0
+- Process::RLIMIT_FSIZE.should == 1
+- Process::RLIMIT_DATA.should == 2
+- Process::RLIMIT_STACK.should == 3
+- Process::RLIMIT_CORE.should == 4
+- Process::RLIMIT_RSS.should == 5
+- Process::RLIMIT_MEMLOCK.should == 6
+- Process::RLIMIT_NPROC.should == 7
+- Process::RLIMIT_NOFILE.should == 8
++ it "are all present on BSD-like systems" do
++ %i[
++ WNOHANG
++ WUNTRACED
++ PRIO_PROCESS
++ PRIO_PGRP
++ PRIO_USER
++ RLIM_INFINITY
++ RLIMIT_CPU
++ RLIMIT_FSIZE
++ RLIMIT_DATA
++ RLIMIT_STACK
++ RLIMIT_CORE
++ RLIMIT_RSS
++ RLIMIT_MEMLOCK
++ RLIMIT_NPROC
++ RLIMIT_NOFILE
++ ].each do |const|
++ Process.const_defined?(const).should be_true
++ Process.const_get(const).should be_an_instance_of(Integer)
++ end
+ end
+ end
+
+ platform_is :darwin do
+- it "has the correct constant values on Darwin" do
+- Process::RLIM_SAVED_MAX.should == 9223372036854775807
+- Process::RLIM_SAVED_CUR.should == 9223372036854775807
+- Process::RLIMIT_AS.should == 5
++ it "are all present on Darwin" do
++ %i[
++ RLIM_SAVED_MAX
++ RLIM_SAVED_CUR
++ RLIMIT_AS
++ ].each do |const|
++ Process.const_defined?(const).should be_true
++ Process.const_get(const).should be_an_instance_of(Integer)
++ end
+ end
+ end
+
+ platform_is :linux do
+- it "has the correct constant values on Linux" do
+- Process::WNOHANG.should == 1
+- Process::WUNTRACED.should == 2
+- Process::PRIO_PROCESS.should == 0
+- Process::PRIO_PGRP.should == 1
+- Process::PRIO_USER.should == 2
+- Process::RLIMIT_CPU.should == 0
+- Process::RLIMIT_FSIZE.should == 1
+- Process::RLIMIT_DATA.should == 2
+- Process::RLIMIT_STACK.should == 3
+- Process::RLIMIT_CORE.should == 4
+- Process::RLIMIT_RSS.should == 5
+- Process::RLIMIT_NPROC.should == 6
+- Process::RLIMIT_NOFILE.should == 7
+- Process::RLIMIT_MEMLOCK.should == 8
+- Process::RLIMIT_AS.should == 9
+-
+- # These values appear to change according to the platform.
+- values = [4294967295, 9223372036854775807, 18446744073709551615]
+- values.include?(Process::RLIM_INFINITY).should be_true
+- values.include?(Process::RLIM_SAVED_MAX).should be_true
+- values.include?(Process::RLIM_SAVED_CUR).should be_true
++ it "are all present on Linux" do
++ %i[
++ WNOHANG
++ WUNTRACED
++ PRIO_PROCESS
++ PRIO_PGRP
++ PRIO_USER
++ RLIMIT_CPU
++ RLIMIT_FSIZE
++ RLIMIT_DATA
++ RLIMIT_STACK
++ RLIMIT_CORE
++ RLIMIT_RSS
++ RLIMIT_NPROC
++ RLIMIT_NOFILE
++ RLIMIT_MEMLOCK
++ RLIMIT_AS
++ RLIM_INFINITY
++ RLIM_SAVED_MAX
++ RLIM_SAVED_CUR
++ ].each do |const|
++ Process.const_defined?(const).should be_true
++ Process.const_get(const).should be_an_instance_of(Integer)
++ end
+ end
+ end
+
+ platform_is :netbsd, :freebsd do
+- it "Process::RLIMIT_SBSIZE" do
+- Process::RLIMIT_SBSIZE.should == 9 # FIXME: what's it equal?
+- Process::RLIMIT_AS.should == 10
++ it "are all present on NetBSD and FreeBSD" do
++ %i[
++ RLIMIT_SBSIZE
++ RLIMIT_AS
++ ].each do |const|
++ Process.const_defined?(const).should be_true
++ Process.const_get(const).should be_an_instance_of(Integer)
++ end
+ end
+ end
+
+
diff --git a/dev-lang/ruby/files/3.2/013-test-rlimit-constants.patch b/dev-lang/ruby/files/3.2/013-test-rlimit-constants.patch
new file mode 100644
index 000000000000..998c839808aa
--- /dev/null
+++ b/dev-lang/ruby/files/3.2/013-test-rlimit-constants.patch
@@ -0,0 +1,147 @@
+From bea20365f43ee115ea6219c7113647eed3d9e342 Mon Sep 17 00:00:00 2001
+From: matoro <matoro@users.noreply.github.com>
+Date: Wed, 7 Aug 2024 13:15:00 -0400
+Subject: [PATCH] Replace specific constant tests with just type checks
+
+As detailed in the attached issue, these constants can and do vary e.g.
+between architectures on Linux. Hardcoding and asserting that they are
+equal to specific values pretty much defeats the purpose of building
+these in at compile time. Instead, simply assert that they exist and
+are integers.
+
+Fixes: https://github.com/ruby/spec/issues/1150
+---
+ core/process/constants_spec.rb | 116 ++++++++++++++++++++-------------
+ 1 file changed, 69 insertions(+), 47 deletions(-)
+
+diff --git a/core/process/constants_spec.rb b/core/process/constants_spec.rb
+index 616c54b8e..57cacadef 100644
+--- a/spec/ruby/core/process/constants_spec.rb
++++ b/spec/ruby/core/process/constants_spec.rb
+@@ -2,64 +2,81 @@
+
+ describe "Process::Constants" do
+ platform_is :darwin, :netbsd, :freebsd do
+- it "has the correct constant values on BSD-like systems" do
+- Process::WNOHANG.should == 1
+- Process::WUNTRACED.should == 2
+- Process::PRIO_PROCESS.should == 0
+- Process::PRIO_PGRP.should == 1
+- Process::PRIO_USER.should == 2
+- Process::RLIM_INFINITY.should == 9223372036854775807
+- Process::RLIMIT_CPU.should == 0
+- Process::RLIMIT_FSIZE.should == 1
+- Process::RLIMIT_DATA.should == 2
+- Process::RLIMIT_STACK.should == 3
+- Process::RLIMIT_CORE.should == 4
+- Process::RLIMIT_RSS.should == 5
+- Process::RLIMIT_MEMLOCK.should == 6
+- Process::RLIMIT_NPROC.should == 7
+- Process::RLIMIT_NOFILE.should == 8
++ it "are all present on BSD-like systems" do
++ %i[
++ WNOHANG
++ WUNTRACED
++ PRIO_PROCESS
++ PRIO_PGRP
++ PRIO_USER
++ RLIM_INFINITY
++ RLIMIT_CPU
++ RLIMIT_FSIZE
++ RLIMIT_DATA
++ RLIMIT_STACK
++ RLIMIT_CORE
++ RLIMIT_RSS
++ RLIMIT_MEMLOCK
++ RLIMIT_NPROC
++ RLIMIT_NOFILE
++ ].each do |const|
++ Process.const_defined?(const).should be_true
++ Process.const_get(const).should be_an_instance_of(Integer)
++ end
+ end
+ end
+
+ platform_is :darwin do
+- it "has the correct constant values on Darwin" do
+- Process::RLIM_SAVED_MAX.should == 9223372036854775807
+- Process::RLIM_SAVED_CUR.should == 9223372036854775807
+- Process::RLIMIT_AS.should == 5
++ it "are all present on Darwin" do
++ %i[
++ RLIM_SAVED_MAX
++ RLIM_SAVED_CUR
++ RLIMIT_AS
++ ].each do |const|
++ Process.const_defined?(const).should be_true
++ Process.const_get(const).should be_an_instance_of(Integer)
++ end
+ end
+ end
+
+ platform_is :linux do
+- it "has the correct constant values on Linux" do
+- Process::WNOHANG.should == 1
+- Process::WUNTRACED.should == 2
+- Process::PRIO_PROCESS.should == 0
+- Process::PRIO_PGRP.should == 1
+- Process::PRIO_USER.should == 2
+- Process::RLIMIT_CPU.should == 0
+- Process::RLIMIT_FSIZE.should == 1
+- Process::RLIMIT_DATA.should == 2
+- Process::RLIMIT_STACK.should == 3
+- Process::RLIMIT_CORE.should == 4
+- Process::RLIMIT_RSS.should == 5
+- Process::RLIMIT_NPROC.should == 6
+- Process::RLIMIT_NOFILE.should == 7
+- Process::RLIMIT_MEMLOCK.should == 8
+- Process::RLIMIT_AS.should == 9
+-
+- # These values appear to change according to the platform.
+- values = [4294967295, 9223372036854775807, 18446744073709551615]
+- values.include?(Process::RLIM_INFINITY).should be_true
+- values.include?(Process::RLIM_SAVED_MAX).should be_true
+- values.include?(Process::RLIM_SAVED_CUR).should be_true
++ it "are all present on Linux" do
++ %i[
++ WNOHANG
++ WUNTRACED
++ PRIO_PROCESS
++ PRIO_PGRP
++ PRIO_USER
++ RLIMIT_CPU
++ RLIMIT_FSIZE
++ RLIMIT_DATA
++ RLIMIT_STACK
++ RLIMIT_CORE
++ RLIMIT_RSS
++ RLIMIT_NPROC
++ RLIMIT_NOFILE
++ RLIMIT_MEMLOCK
++ RLIMIT_AS
++ RLIM_INFINITY
++ RLIM_SAVED_MAX
++ RLIM_SAVED_CUR
++ ].each do |const|
++ Process.const_defined?(const).should be_true
++ Process.const_get(const).should be_an_instance_of(Integer)
++ end
+ end
+ end
+
+ platform_is :netbsd, :freebsd do
+- it "Process::RLIMIT_SBSIZE" do
+- Process::RLIMIT_SBSIZE.should == 9 # FIXME: what's it equal?
+- Process::RLIMIT_AS.should == 10
++ it "are all present on NetBSD and FreeBSD" do
++ %i[
++ RLIMIT_SBSIZE
++ RLIMIT_AS
++ ].each do |const|
++ Process.const_defined?(const).should be_true
++ Process.const_get(const).should be_an_instance_of(Integer)
++ end
+ end
+ end
+
+
diff --git a/dev-lang/ruby/files/3.3/013-test-rlimit-constants.patch b/dev-lang/ruby/files/3.3/013-test-rlimit-constants.patch
new file mode 100644
index 000000000000..c3790b13152b
--- /dev/null
+++ b/dev-lang/ruby/files/3.3/013-test-rlimit-constants.patch
@@ -0,0 +1,159 @@
+From bea20365f43ee115ea6219c7113647eed3d9e342 Mon Sep 17 00:00:00 2001
+From: matoro <matoro@users.noreply.github.com>
+Date: Wed, 7 Aug 2024 13:15:00 -0400
+Subject: [PATCH] Replace specific constant tests with just type checks
+
+As detailed in the attached issue, these constants can and do vary e.g.
+between architectures on Linux. Hardcoding and asserting that they are
+equal to specific values pretty much defeats the purpose of building
+these in at compile time. Instead, simply assert that they exist and
+are integers.
+
+Fixes: https://github.com/ruby/spec/issues/1150
+---
+ core/process/constants_spec.rb | 116 ++++++++++++++++++++-------------
+ 1 file changed, 69 insertions(+), 47 deletions(-)
+
+diff --git a/core/process/constants_spec.rb b/core/process/constants_spec.rb
+index 616c54b8e..57cacadef 100644
+--- a/spec/ruby/core/process/constants_spec.rb
++++ b/spec/ruby/core/process/constants_spec.rb
+@@ -2,69 +2,91 @@
+
+ describe "Process::Constants" do
+ platform_is :darwin, :netbsd, :freebsd do
+- it "has the correct constant values on BSD-like systems" do
+- Process::WNOHANG.should == 1
+- Process::WUNTRACED.should == 2
+- Process::PRIO_PROCESS.should == 0
+- Process::PRIO_PGRP.should == 1
+- Process::PRIO_USER.should == 2
+- Process::RLIM_INFINITY.should == 9223372036854775807
+- Process::RLIMIT_CPU.should == 0
+- Process::RLIMIT_FSIZE.should == 1
+- Process::RLIMIT_DATA.should == 2
+- Process::RLIMIT_STACK.should == 3
+- Process::RLIMIT_CORE.should == 4
+- Process::RLIMIT_RSS.should == 5
+- Process::RLIMIT_MEMLOCK.should == 6
+- Process::RLIMIT_NPROC.should == 7
+- Process::RLIMIT_NOFILE.should == 8
++ it "are all present on BSD-like systems" do
++ %i[
++ WNOHANG
++ WUNTRACED
++ PRIO_PROCESS
++ PRIO_PGRP
++ PRIO_USER
++ RLIM_INFINITY
++ RLIMIT_CPU
++ RLIMIT_FSIZE
++ RLIMIT_DATA
++ RLIMIT_STACK
++ RLIMIT_CORE
++ RLIMIT_RSS
++ RLIMIT_MEMLOCK
++ RLIMIT_NPROC
++ RLIMIT_NOFILE
++ ].each do |const|
++ Process.const_defined?(const).should be_true
++ Process.const_get(const).should be_an_instance_of(Integer)
++ end
+ end
+ end
+
+ platform_is :darwin do
+- it "has the correct constant values on Darwin" do
+- Process::RLIM_SAVED_MAX.should == 9223372036854775807
+- Process::RLIM_SAVED_CUR.should == 9223372036854775807
+- Process::RLIMIT_AS.should == 5
++ it "are all present on Darwin" do
++ %i[
++ RLIM_SAVED_MAX
++ RLIM_SAVED_CUR
++ RLIMIT_AS
++ ].each do |const|
++ Process.const_defined?(const).should be_true
++ Process.const_get(const).should be_an_instance_of(Integer)
++ end
+ end
+ end
+
+ platform_is :linux do
+- it "has the correct constant values on Linux" do
+- Process::WNOHANG.should == 1
+- Process::WUNTRACED.should == 2
+- Process::PRIO_PROCESS.should == 0
+- Process::PRIO_PGRP.should == 1
+- Process::PRIO_USER.should == 2
+- Process::RLIMIT_CPU.should == 0
+- Process::RLIMIT_FSIZE.should == 1
+- Process::RLIMIT_DATA.should == 2
+- Process::RLIMIT_STACK.should == 3
+- Process::RLIMIT_CORE.should == 4
+- Process::RLIMIT_RSS.should == 5
+- Process::RLIMIT_NPROC.should == 6
+- Process::RLIMIT_NOFILE.should == 7
+- Process::RLIMIT_MEMLOCK.should == 8
+- Process::RLIMIT_AS.should == 9
+-
+- # These values appear to change according to the platform.
+- values = [4294967295, 9223372036854775807, 18446744073709551615]
+- values.include?(Process::RLIM_INFINITY).should be_true
+- values.include?(Process::RLIM_SAVED_MAX).should be_true
+- values.include?(Process::RLIM_SAVED_CUR).should be_true
++ it "are all present on Linux" do
++ %i[
++ WNOHANG
++ WUNTRACED
++ PRIO_PROCESS
++ PRIO_PGRP
++ PRIO_USER
++ RLIMIT_CPU
++ RLIMIT_FSIZE
++ RLIMIT_DATA
++ RLIMIT_STACK
++ RLIMIT_CORE
++ RLIMIT_RSS
++ RLIMIT_NPROC
++ RLIMIT_NOFILE
++ RLIMIT_MEMLOCK
++ RLIMIT_AS
++ RLIM_INFINITY
++ RLIM_SAVED_MAX
++ RLIM_SAVED_CUR
++ ].each do |const|
++ Process.const_defined?(const).should be_true
++ Process.const_get(const).should be_an_instance_of(Integer)
++ end
+ end
+ end
+
+ platform_is :netbsd, :freebsd do
+- it "has the correct constant values on NetBSD and FreeBSD" do
+- Process::RLIMIT_SBSIZE.should == 9 # FIXME: what's it equal?
+- Process::RLIMIT_AS.should == 10
++ it "are all present on NetBSD and FreeBSD" do
++ %i[
++ RLIMIT_SBSIZE
++ RLIMIT_AS
++ ].each do |const|
++ Process.const_defined?(const).should be_true
++ Process.const_get(const).should be_an_instance_of(Integer)
++ end
+ end
+ end
+
+ platform_is :freebsd do
+- it "has the correct constant values on FreeBSD" do
+- Process::RLIMIT_NPTS.should == 11
++ it "are all present on FreeBSD" do
++ %i[
++ RLIMIT_NPTS
++ ].each do |const|
++ Process.const_defined?(const).should be_true
++ Process.const_get(const).should be_an_instance_of(Integer)
++ end
+ end
+ end
+
diff --git a/dev-lang/ruby/ruby-3.1.6-r1.ebuild b/dev-lang/ruby/ruby-3.1.6-r1.ebuild
index 358461b38718..6e7d945488c0 100644
--- a/dev-lang/ruby/ruby-3.1.6-r1.ebuild
+++ b/dev-lang/ruby/ruby-3.1.6-r1.ebuild
@@ -72,6 +72,7 @@ PDEPEND="
src_prepare() {
eapply "${FILESDIR}"/"${SLOT}"/011*.patch
eapply "${FILESDIR}"/"${SLOT}"/012*.patch
+ eapply "${FILESDIR}"/"${SLOT}"/013*.patch
eapply "${FILESDIR}"/"${SLOT}"/020*.patch
eapply "${FILESDIR}"/"${SLOT}"/902*.patch
diff --git a/dev-lang/ruby/ruby-3.2.5.ebuild b/dev-lang/ruby/ruby-3.2.5.ebuild
index 567f50286b60..cbd46d6f96c4 100644
--- a/dev-lang/ruby/ruby-3.2.5.ebuild
+++ b/dev-lang/ruby/ruby-3.2.5.ebuild
@@ -79,6 +79,7 @@ PDEPEND="
src_prepare() {
eapply "${FILESDIR}"/"${SLOT}"/010*.patch
eapply "${FILESDIR}"/"${SLOT}"/011*.patch
+ eapply "${FILESDIR}"/"${SLOT}"/013*.patch
eapply "${FILESDIR}"/"${SLOT}"/902*.patch
if use elibc_musl ; then
diff --git a/dev-lang/ruby/ruby-3.3.4-r1.ebuild b/dev-lang/ruby/ruby-3.3.4-r1.ebuild
index e96e95a64f16..0ef34173c25d 100644
--- a/dev-lang/ruby/ruby-3.3.4-r1.ebuild
+++ b/dev-lang/ruby/ruby-3.3.4-r1.ebuild
@@ -79,6 +79,7 @@ PDEPEND="
src_prepare() {
eapply "${FILESDIR}"/"${SLOT}"/010*.patch
+ eapply "${FILESDIR}"/"${SLOT}"/013*.patch
eapply "${FILESDIR}"/"${SLOT}"/902*.patch
if use elibc_musl ; then