Dne 23. 12. 20 v 11:47 Vít Ondruch napsal(a):

Dne 23. 12. 20 v 11:06 Pavel Valena napsal(a):
----- Original Message -----
From: "Vít Ondruch" <vondruch@redhat.com>
To: ruby-sig@lists.fedoraproject.org
Sent: Tuesday, December 22, 2020 1:16:12 PM
Subject: Re: Ruby 3.0

Hi everybody,

Here is another snapshot build:

https://koji.fedoraproject.org/koji/taskinfo?taskID=58026964
Hello,

TL;DR: Build failures occuring with Ruby 3.0.
Important: please check the end of my email, even if your package does not fail.


Nice, thx a lot!



I've rebuilt ruby in my COPR, and with it the rubygem packages. I've analyzed changes needed / builds failing, as follows.
I've focused on packages, which depend on ruby-devel, and also some additional failures detected while doing mass test-rebuilds. Sucessful rebuilds are not mentioned.

You can look up the package build in pvalena/rubygems-testing COPR, f.e. for eventmachine:
   https://copr.fedorainfracloud.org/coprs/pvalena/rubygems-testing/package/rubygem-eventmachine/


This error message (in tests):
```
<internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require': /usr/lib64/gems/ruby/glib2-3.4.3/glib2.so: undefined symbol: rb_cData - /usr/lib64/gems/ruby/glib2-3.4.3/glib2.so (LoadError)
         from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
         from /usr/share/gems/gems/glib2-3.4.3/lib/glib2.rb:117:in `<top (required)>'
         from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
         from /usr/share/gems/gems/gobject-introspection-3.4.3/lib/gobject-introspection.rb:17:in `<top (required)>'
```
   rubygem-atk
   rubygem-gio2
   rubygem-gobject-introspection
   rubygem-gstreamer


Bootstrapping needed (I didn't have time to resolve the bootstrap for my test repo):
   rubygem-cairo
   rubygem-cairo-gobject
   rubygem-gdk3
   rubygem-pango
   rubygem-poppler
   rubygem-gdk_pixbuf2
   rubygem-goocanvas1
   rubygem-goocanvas
   rubygem-gtk2
   rubygem-gtk3
   rubygem-gtksourceview2
   rubygem-gtksourceview3
   rubygem-rsvg2
   rubygem-vte3
   rubygem-vte


Webrick needed (new package in review):
   rubygem-ethon
   rubygem-curb
   rubygem-httpclient
   rubygem-typhoeus
   rubygem-rack
   rubygem-jekyll
   rubygem-excon
   rubygem-rubygems-mirror
   rubygem-mechanize
   rubygem-yard


Test failure (inspection needed):
   rubygem-eventmachine
   rubygem-mysql2

```
NoMethodError: undefined method `encode' for URI:Module                                                │
```
   rubygem-sup


```
Error: test_range(Func): FrozenError: can't modify frozen Range: 0..0
```
   rubygem-ox


gem build issues (with extension):
   rubygem-posix-spawn
   rubygem-syck


```
TypeError: no implicit conversion of Hash into Integer
```
   rubygem-raindrops


https://src.fedoraproject.org/rpms/rubygem-ruby-libvirt/pull-request/2
   rubygem-ruby-libvirt


```
LoadError: cannot load such file -- rexml/
```
   rubygem-webrobots
   rubygem-selenium-webdriver
   rubygem-faraday
   rubygem-rest-client
   rubygem-mini_magick
   rubygem-webmock
   rubygem-crack
   rubygem-activesupport
   rubygem-cucumber-core
   rubygem-maruku
   rubygem-actionpack
   rubygem-actionmailbox
   rubygem-kramdown-parser-gfm


It would be helpful to open upstream tickets for these, because upstreams will need to cope with this as well. While ReXml is going to be available with all Ruby installations, it has to be mentioned in .gemspec files otherwise Bundler won't load it. Would you mind to check with upstreams prior we take any action?

And there are certainly upstream which are dealing with the issues already:

https://github.com/rails/rails/commit/f624ed09abba4a0bae64eb699c9fc2e3f9bdc2dc

In such cases we should cherry pick the patches rather then blindly adding the dependencies.




All changes are in private-ruby-3.0 branch.

I think I should be able to prepare one more snapshot tomorrow and that
should be it prior Ruby 3.0 release. This is the last change to upstream
your changes ;)
I'm preparing pull requests with changes on src.fedoraproject.org for some of the packages. Some of them are not created yet. Please check it before you start fixing the package yourself.

One question for the "sucessful" rebuilds, for all: should I create pull requests with the rebuild release bump?


I don't think it would help, because creating PRs now won't test the packages against Ruby 3.0 and at the time of mass rebuild, it would slow down the rebuild.


Vít



Benefits are:
   - Can be subsequently picked up, after merge (or "LGTM", with permissions granted to me), and automatically rebuilt by my script.
   - CI runs, either custom or at least simple-koji-ci. Also, you know it was pre-tested by me in COPR.
   - Less work for packagers.)

Which packages? (Failed packages included.)
   https://gist.github.com/pvalena/422c77868e929fe38c8bc325a765f8a8


BTW I have updated rubygem-bindex, so that should be fine and orphaned rubygem-debug_inspector, since we don't need it anymore (it used to be dependency of rubygem-web-console).


Vít



Generated using script:
   https://gist.github.com/pvalena/76560097815fe6544c9bc4905e6bf7a1
  
Regards,
Pavel


Vít


_______________________________________________
ruby-sig mailing list -- ruby-sig@lists.fedoraproject.org
To unsubscribe send an email to ruby-sig-leave@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

_______________________________________________
ruby-sig mailing list -- ruby-sig@lists.fedoraproject.org
To unsubscribe send an email to ruby-sig-leave@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