diff options
author | Hans de Graaff <graaff@gentoo.org> | 2024-08-12 11:29:52 +0200 |
---|---|---|
committer | Hans de Graaff <graaff@gentoo.org> | 2024-08-12 11:33:22 +0200 |
commit | 986366bb094939c4e2d8cf0067f1bd1ba24ca18e (patch) | |
tree | cdf510ffefcc8bacdde40225b965e89bd6422f8b /dev-lang | |
parent | dev-java/json: drop 20240205-r1 (diff) | |
download | gentoo-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.patch | 147 | ||||
-rw-r--r-- | dev-lang/ruby/files/3.2/013-test-rlimit-constants.patch | 147 | ||||
-rw-r--r-- | dev-lang/ruby/files/3.3/013-test-rlimit-constants.patch | 159 | ||||
-rw-r--r-- | dev-lang/ruby/ruby-3.1.6-r1.ebuild | 1 | ||||
-rw-r--r-- | dev-lang/ruby/ruby-3.2.5.ebuild | 1 | ||||
-rw-r--r-- | dev-lang/ruby/ruby-3.3.4-r1.ebuild | 1 |
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 |