Dne 19. 11. 20 v 18:22 Vít Ondruch napsal(a):

Dne 19. 11. 20 v 16:52 Jun Aruga napsal(a):
This kind of commits does not make me happy :( While the intention is
good, they don't take into consideration any distribution. It is
tailored to the old fashion way of "download tarball & configure & make
& make install", everything runs on single machine :/

Does anybody have a tip how to convince upstream, that this does not
scale? Does anybody want to ask upstream to revert this commit on my behalf?


I have opened this upstream ticket:

https://bugs.ruby-lang.org/issues/17337


Vít


The solution is like this?

This commit's comment explains "AC_PROG_CXX sets $CXX to "g++" when it
purposefully finds that there is _no_ g++".
But for the implementation, the condition " there is no g++" is not considered.
I think reporting there is a mismatch between the explanation and
implementation, convinces the upstream.

So, we just need to add the condition "there is no g++".
In the case of Mamoru, there is g++ possibly on the environment. So,
he can avoid unset CXX.
https://github.com/ruby/ruby/commit/50b18e81295ad2d45975e4d8ea1e0c7e85140b97

```
$ git diff
diff --git a/configure.ac b/configure.ac
index 4e4a52f066..ecc70846d8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -190,7 +190,7 @@ AC_CHECK_TOOLS([STRIP],   [gstrip strip], [:])
  AS_IF([test ! $rb_test_CFLAGS], [AS_UNSET(CFLAGS)]); AS_UNSET(rb_test_CFLAGS)
  AS_IF([test ! $rb_test_CXXFLAGS], [AS_UNSET(CXXFLAGS)]);
AS_UNSET(rb_save_CXXFLAGS)

-AS_IF([test "${CXX}" = "g++" -a -z "${GXX}"], [
+AS_IF([test "${CXX}" = "g++" -a -z "${GXX}" && ! command -v g++ > /dev/null], [       # AC_PROG_CXX sets $CXX to "g++" when it purposefully finds that there is       # _no_ g++.  This brain-damaged design must be worked around.  Thankfully,
      # similar thing doesn't happen for AC_PROG_CC.
```


This is not about fixing this specific case. This is more about the Ruby upstream misconception that the system configuration is static and it is the same when Ruby is build as when the extensions are installed. This is generally not true. So even if g++ was available during Ruby build, it might not be available during Eventmachine installation or vice versa.

In this case, the system used to build Ruby is completely different machine then the system where Eventmachine is build. The similar issue would be when user installed the Eventmachine via `gem install`. And it falls to the same category as [1].


Vít



[1] https://bugzilla.redhat.com/show_bug.cgi?id=1284684

_______________________________________________
ruby-sig mailing list -- ruby-sig@lists.fedoraproject.org
To unsubscribe send an email to ruby-sig-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/ruby-sig@lists.fedoraproject.org

Attachment: OpenPGP_signature
Description: OpenPGP digital signature

_______________________________________________
ruby-sig mailing list -- ruby-sig@lists.fedoraproject.org
To unsubscribe send an email to ruby-sig-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/ruby-sig@lists.fedoraproject.org

Reply via email to