Issue #19297 has been updated by rubyFeedback (robert heiler).
I would like to add to Vit Ondruch's suggestion, from another point
of view, so +1 from me here.
I currently have some issues with openssl/gnutls, on my linux machine
- I am in the process of trying to resolve it, but it requires of me
to slowly read up on how this all works and what not. Even the current
LFS/BLFS (Linux from scratch) instructions don't work for me. I can
not use ruby + gem to upload gems right now. But I do not know on my
other machine with slackware this all works fine - anyway, something
is wrong with my setup.
To my surprise, when I tried to compile the latest ruby, it tried to
download something near the end of the process - I think it was some
gem, or something. This then failed beause I could not use ruby for
any https-connection. The result was that I could not get a working
ruby binary.
I am not sure how I resolved it (ruby as-is works), but to me what
was surprising was that there was any (!) step that included
downloading ANYTHING from the world wide web, and the second surprise
was then that this step could fail. I never had that with older ruby
variants, so something seems to have changed in the setup upstream,
and I assume that the core team may not be aware of such "niche
problems" (like no internet connection, or only a faulty one).
So, from this point of view, I highly recommend and encourage what
Vit suggested - decreasing failure points makes sense, and not
having to depend on any external downloads should be the default,
in my opinion. (People should then be able to fix their problems
at a later time too, for instance, if it is in ext/ openssl, then
they could re-compile only these parts. Mandating a working
internet connection in order for ruby to work, appears awkward
to me - ruby should ideally work even without a working internet
connection. Perhaps we could one day define or re-define ruby
in a super-modular way starting via mruby, and then build "on
top" of that as a platform with addons/gems, as-is, customized
to any system, be it small, or large.)
There are also secondary aspects to consider, such as reproducible
builds, so I really want to +1 this suggestion in general.
(Evidently my use case is different from Vit's, but it is still
somewhat related to "require a working internet connection for
ruby to work". It is not always up to individuals to fix NOT
having a working internet connection).
----------------------------------------
Bug #19297: Don't download content from internet to execute Ruby test suite
https://bugs.ruby-lang.org/issues/19297#change-101815
* Author: vo.x (Vit Ondruch)
* Status: Open
* Priority: Normal
* ruby -v: ruby 3.2.0 (2022-12-25 revision a528908271) [x86_64-linux]
* Backport: 2.7: DONTNEED, 3.0: DONTNEED, 3.1: DONTNEED, 3.2: REQUIRED
----------------------------------------
Trying to build Ruby 3.2.0 for Fedora and execute its test suite via `make check` as we
always did [1], the test suite suddenly fails (while it was working with
commit:git|c5eefb7f37):
~~~
... snip ...
C-API Util function ruby_strtod
- converts a string to a double and returns the remaining string
- returns 0 and the full string if there's no numerical value
Finished in 45.737677 seconds
3827 files, 31635 examples, 177877 expectations, 0 failures, 0 errors, 0 tagged
./miniruby -I/builddir/build/BUILD/ruby-3.2.0/lib -I. -I.ext/common
/builddir/build/BUILD/ruby-3.2.0/tool/runruby.rb --extout=.ext -- --disable-gems -C
"/builddir/build/BUILD/ruby-3.2.0" bin/gem install --no-document \
--install-dir .bundle --conservative "bundler" "rake"
"rspec:~> 3" #"ruby-prof"
ERROR: Could not find a valid gem 'bundler' (>= 0), here is why:
Unable to download data from
https://rubygems.org/ - SocketError: Failed to open
TCP connection to rubygems.org:443 (getaddrinfo: Temporary failure in name resolution)
(
https://rubygems.org/specs.4.8.gz)
ERROR: Could not find a valid gem 'rspec' (~> 3), here is why:
Unable to download data from
https://rubygems.org/ - SocketError: Failed to open
TCP connection to rubygems.org:443 (getaddrinfo: Temporary failure in name resolution)
(
https://rubygems.org/specs.4.8.gz)
make: Leaving directory '/builddir/build/BUILD/ruby-3.2.0/redhat-linux-build'
make: *** [uncommon.mk:1464: yes-test-syntax-suggest-prepare] Error 2
~~~
This is obviously due to the test suite trying to download `rspec` from the internet,
while Fedora builders does not have internet access (and won't ever have for security
reasons). If I am not mistaken, this is caused by
commit:git|cae53842735237ccf71a13873fd0d1ae7f165582. Now
1) Can this be fixed?
2) Can the tarball be always self contained?
[1]:
https://src.fedoraproject.org/rpms/ruby/blob/631163e3b8a51ed610528181aabe0d…
--
https://bugs.ruby-lang.org/