Ruby 3.3
by Vít Ondruch
Hi,
It is again the time to look at where Ruby 3.3 development stands. So
here is PR with the changes:
https://src.fedoraproject.org/rpms/ruby/pull-request/159
and scratch build:
https://koji.fedoraproject.org/koji/taskinfo?taskID=106071236
You probably remember, that I used to create the PR from private branch.
However this time I have decided to create the PR from my fork. This
should allow me to force pushes, which should help me in doing rebases
and possibly extracting some changes into stable branches.
Now let me list some modifications in random order.
* `%gem_spec` macro with options:
https://src.fedoraproject.org/fork/vondruch/rpms/ruby/blob/77c580dfa85f92...
This is my initial version, just to enable to use this macro in
ruby.spec. I think I'll similarly modify all the related macros. While
they'll be more complex, their use in ruby.spec will outweigh that. And
I should add some documentation ...
BTW there are several possibilities in choosing how complex/flexible
this macro will be and I think this is one of the changes which could be
backported to Ruby 3.2. So feedback is appreciated. Looking at the
macro, this bit `%{?1:%{expand:%{%{1}_version}}}%{!?1:%{version}}` is
probably not very good idea for possible use in rubygem-*.gemspec.
* There is still problem with syntax-suggest test suite, which tries to
download some pieces from interned :/ However, I have replaced the
"revert" patches with custom patch disabling the syntax-suggest test
case in a hope that this will be easier to maintain. Those previous
patches weren't. Trying to modify them for Ruby 3.3 proved to be
problematic.
* I have reordered build dependencies a bit, trying to group them
* readline-devel was dropped, since upstream replaced readline-ext by reline
* Dependency on Rust is still optional and does not influence too much.
I don't think it even impacts `%files` section. That is still good.
* MJIT was replaced by RJIT. I have not tested functionality, but at
least it resolves some issues with misplaced files.
* For a while, since upstream migrated from minitest back to test-unit,
the skipped test were not easily identifiable. Luckily, I have
discovered `--show-skip` option, which lists the skipped tests. And
there are some issues to resolve, upstream as well as downstream. I have
yet to investigate them.
* Racc is now bundled gem instead of default gem. That means it will
live in ruby-bundled-gems. I don't think this should have impact on
anything. However, it made me realize, that we don't have `bundled`
provides for the bundled/default gems. This is a bit annoying, because
maintaining this list is PITA. I have to explore what improvements were
done in the generators area in RPM.
And this is mostly it. Please note that I did very little (or possibly
even less than that ;) ) testing. So be careful. And as always, looking
for your feedback here, in BZ, or PR.
Best,
Vít
3 months, 3 weeks
Considering to reset the Ruby 3.3 release back to -1
by Vít Ondruch
Hi,
Looking at the versions of subpackages, it seems that the only
concerning package is rubygem-power_assert, where the version has not
changed between Ruby 3.2 and Ruby 3.3. Otherwise all the versions were
bumped.
Looking closer at the power_assert, it seem that
1) The content is still the same, so having older version around should
not be a problem.
2) We have separate rubygem-power_assert, which has higher NVR in any case.
Therefore, I think it should be safe to reset the release back to -1. Is
there any concern or something I am missing?
Cheers,
Vít
4 months
Conflicting racc
by Vít Ondruch
I have just hit this issue:
~~~
Error: Transaction test error:
file /usr/lib64/gems/ruby/racc-1.7.3/racc/cparse.so from install of
ruby-bundled-gems-3.3.0~20231219git8e6f63df47-184.fc40.x86_64 conflicts
with file from package rubygem-racc-1.7.3-200.fc40.x86_64
file /usr/share/gems/specifications/racc-1.7.3.gemspec from install
of ruby-bundled-gems-3.3.0~20231219git8e6f63df47-184.fc40.x86_64
conflicts with file from package rubygem-racc-1.7.3-200.fc40.x86_64
~~~
The problem here is that racc is now bundled gem, where previously it
was default gem, therefore there is now this conflict. How are we going
to solve this? There are several options:
1) Make rubygem-racc subpackage of Ruby. We used to do this [1], but
with default gem, the situation was different.
2) Install default gems / our system gems into dedicated directory,
where they won't conflict. I was already proposing it elsewhere to
explore the `gem install --vendor` or I have proposed upstream to have
dedicated directories for default / bundled gems. Is it the right time
to do this?
3) Drop the independent rubygem-racc
Actually I am not sure how sever this situation is, because I have
explicitly installed rubygem-racc prior the ruby-default-gems get chance
to be installed. So maybe we still have some time to thing about it.
Thoughts?
Vít
[1]
https://src.fedoraproject.org/rpms/ruby/c/baf046a6a4d17fa309c9d20fa3db949...
4 months, 1 week
Current rubygem- packages rebuild failure against ruby 3.3
by Mamoru TASAKA
Hello, all:
With wonderful work by Vít and friends, again I tried to rebuild all rubygem-foo
packages on Fedora against ruby 3.3.0dev.
For the below failure reports,
https://github.com/ruby/ruby/commit/83ecdd1dce18246de631eb3b5d8308145bb269f5
is used.
Among ~455 packages, now 16 packages see build failure. Please check what is going,
thank you.
Regards,
Mamoru
1.
rubygem-actionview
https://copr.fedorainfracloud.org/coprs/mtasaka/rubygem-newruby-test-3-2/...
```
Failure:
RipperTrackerTest#test_finds_dependencies_with_extra_spaces [test/template/dependency_tracker_test.rb:191]:
--- expected
+++ actual
@@ -1 +1 @@
-["spaces/header", "spaces/form", "messages/message", "events/event", "comments/comment"]
+["spaces/header", "spaces/form", "messages/message", "comments/comment"]
```
Discussed on: https://src.fedoraproject.org/rpms/rubygem-actionview/pull-request/4
2.
rubygem-addressable
https://copr.fedorainfracloud.org/coprs/mtasaka/rubygem-newruby-test-3-2/...
Test suite segfaults constantly...
3.
rubygem-aruba
https://copr.fedorainfracloud.org/coprs/mtasaka/rubygem-newruby-test-3-2/...
Cucumber testsuite fails. Some test failures are due to removed irb/ext/save-history,
some are due to pry behaving badly? on ruby3.3 (not knowing in details), others I don't know.
Already reported https://github.com/cucumber/aruba/issues/910 , no response.
4.
rubygem-async_sinatra
https://copr.fedorainfracloud.org/coprs/mtasaka/rubygem-newruby-test-3-2/...
`test/test_async.rb:28:in `<main>': uninitialized constant MiniTest (NameError)`
Fixing this will perhaps be easy, leaving this to maintainer for now.
5.
rubygem-bootsnap
https://copr.fedorainfracloud.org/coprs/mtasaka/rubygem-newruby-test-3-2/...
```
1) Failure:
Bootsnap::KernelRequireTest#test_uses_the_same_duck_type_as_require [/builddir/build/BUILD/bootsnap-1.15.0/usr/share/gems/gems/bootsnap-1.15.0/test/load_path_cache/core_ext/kernel_require_test.rb:26]:
Expected #<Process::Status: pid 1413 exit 1> to be success?.
```
I don't know what this means. With ruby 7b8d472100 (around 2023-10-06) test was successful,
but with ruby 55c5ebe0a0 (around 2023-10-14) test test fails, not sure what ruby change caused
this.
6.
rubygem-byebug
https://copr.fedorainfracloud.org/coprs/mtasaka/rubygem-newruby-test-3-2/...
As discussed before, I don't expect that rubygem-byebug comes to work with ruby3.3.
Probably I am going to orphan this.
7.
rubygem-childprocess
https://copr.fedorainfracloud.org/coprs/mtasaka/rubygem-newruby-test-3-2/...
`Failure/Error: require 'rubygems/mock_gem_ui'`
This file is removed: https://github.com/ruby/ruby/commit/74772840430fc3fca3f5fb0ad585d9cc48f512fb
Need to address in childprocess side.
8.
rubygem-clockwork
https://copr.fedorainfracloud.org/coprs/mtasaka/rubygem-newruby-test-3-2/...
`<internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:128:in `require': cannot load such file -- mocha/setup (LoadError)`
This mocha issue is already fixed in https://github.com/Rykian/clockwork/pull/64/ .
Looks like in addition Minitest issue needs fixing.
9.
rubygem-curb
https://copr.fedorainfracloud.org/coprs/mtasaka/rubygem-newruby-test-3-2/...
```
Error: test_curlopt_stderr_with_file(TestCurbCurlEasy): Errno::ENOENT: No such file or directory @ rb_sysopen - /tmp/curb_test_curlopt_stderr20231028-3388-1r4xk0
/builddir/build/BUILD/curb-1.0.1/usr/share/gems/gems/curb-1.0.1/tests/tc_curl_easy.rb:30:in `read'
/builddir/build/BUILD/curb-1.0.1/usr/share/gems/gems/curb-1.0.1/tests/tc_curl_easy.rb:30:in `test_curlopt_stderr_with_file'
```
Well, successful on x86_64, failing on s390x. But even on s390x this was successful with
ruby 7b8d472100 (around 2023-10-06), seeing failure with ruby 55c5ebe0a0 (around 20231014).
10.
rubygem-power_assert
https://copr.fedorainfracloud.org/coprs/mtasaka/rubygem-newruby-test-3-2/...
%check needs BR: rubygem-byebug , which doesn't build.
Discussed on: https://github.com/ruby/power_assert/issues/47 , I may try to remove
byebug dependency myself.
11.
rubygem-puppet-lint
https://copr.fedorainfracloud.org/coprs/mtasaka/rubygem-newruby-test-3-2/...
```
No matching package to install: 'rubygem(rspec-collection_matchers) >= 1.0'
```
The above package is already retired.
12.
rubygem-railties
https://copr.fedorainfracloud.org/coprs/mtasaka/rubygem-newruby-test-3-2/...
```
Failure:
ApplicationTests::AssetsTest#test_precompile_shouldn't_use_the_digests_present_in_manifest.json [test/application/assets_test.rb:299]:
Expected "application-c56ef81d122dffa8b257b0546ba1b09bd2d8b97e4aef881de8db9f760b903af6.css" to not be equal to "application-c56ef81d122dffa8b257b0546ba1b09bd2d8b97e4aef881de8db9f760b903af6.css".
```
Not sure what this means.
13.
rubygem-ronn-ng
https://copr.fedorainfracloud.org/coprs/mtasaka/rubygem-newruby-test-3-2/...
```
Failure: test_angle_bracket_syntax_HTML(RonnTest):
--- /builddir/build/BUILD/ronn-ng-0.9.1/usr/share/gems/gems/ronn-ng-0.9.1/test/angle_bracket_syntax.html 2023-10-28 15:58:23.177074626 +0000
+++ /builddir/build/BUILD/ronn-ng-0.9.1/usr/share/gems/gems/ronn-ng-0.9.1/test/angle_bracket_syntax.html.wrong 2023-10-28 15:58:25.675101802 +0000
@@ -13,5 +13,5 @@
<p>or when <code><WORD></code> is enclosed in backticks.</p>
-<p>or when <var>WORD</var> has a <dot.> or <colon>.</colon></dot.></p>
+<p>or when <var>WORD</var> has a <dot.> or <foo:colon>.</foo:colon></dot.></p>
</div>
.
```
libxml2 2.11.5 compatibitily issue, discussed on https://github.com/apjanke/ronn-ng/issues/102 .
I think it is enough just to fix test suite as it is.
14.
rubygem-shoulda-matchers
https://copr.fedorainfracloud.org/coprs/mtasaka/rubygem-newruby-test-3-2/...
Lots of:
```
An error occurred while loading ./spec/unit/shoulda/matchers/action_controller/callback_matcher_spec.rb.
Failure/Error: require 'unit_spec_helper'
NoMethodError:
undefined method `tr' for an instance of Pathname
```
Not sure what this means.
15.
rubygem-stringex
https://copr.fedorainfracloud.org/coprs/mtasaka/rubygem-newruby-test-3-2/...
Also for this one, test suite segfaults constantly...
16.
rubygem-yard
https://copr.fedorainfracloud.org/coprs/mtasaka/rubygem-newruby-test-3-2/...
Many messages like:
```
1) YARD::Handlers::Ruby::YieldHandler only parses yield blocks in methods
Failure/Error: raise ProxyMethodError, "Proxy cannot call method ##{meth} on object '#{path}'"
```
Discussed on https://github.com/lsegal/yard/issues/1514 :
Most probably this is caused by https://github.com/ruby/ruby/commit/b5e23d3e3b5ff2f5328aa43a2392ebe7c951a222
ruby 3.3.0 now adds more checks for "yield" usage, not knowing how to fix on yard side myself.
4 months, 1 week
SPDX Status for Rubygems in Fedora as of 2023-12-14
by Jarek Prokop
Hi,
last SPDX status of this year, the next one will be generated in the
first weeks of 2024.
Regards,
Jarek Prokop
---
* Total rubygems in Fedora: 455
* Excluded gems:
rubygem-krb5-auth
rubygem-rgen
rubygem-net-irc
* Total rubygems checked: 450
* Fedora License field and gem2rpm license match and license-validate
succeeds: 289/450
* license-validate says they are OK SPDX, but licenses may or may not
match between Fedora and upstream: 375/450
* license-validate with converted conjunctions: 377/450
* Action required: 74/450
Packages that need to convert to valid SPDX:
rubygem-, fedora_license
rubygem-ansi, BSD
rubygem-aws-sigv4, ASL 2.0
rubygem-bcrypt, MIT and Public Domain and ISC
rubygem-bcrypt_pbkdf, MIT and BSD and ISC
rubygem-between_meals, ASL 2.0
rubygem-colorize, GPLv2
rubygem-contracts, BSD
rubygem-cookiejar, BSD
rubygem-daemons, MIT and (GPLv2+ or Ruby)
rubygem-dnsruby, ASL 2.0
rubygem-elasticsearch-transport,ASL 2.0
rubygem-eventmachine, GPLv2 or Ruby
rubygem-ffi, BSD
rubygem-gem2rpm, GPLv2+
rubygem-goocanvas, LGPLv2
rubygem-gtk2, LGPLv2
rubygem-gtksourceview2, LGPLv2
rubygem-haml, MIT and WTFPL
rubygem-hashery, BSD
rubygem-hashicorp-checkpoint, MPLv2.0
rubygem-hiera-vault, ASL 2.0
rubygem-highline, GPLv2 or Ruby or BSD
rubygem-hiredis, BSD
rubygem-hocon, ASL 2.0
rubygem-hrx, ASL 2.0
rubygem-httpclient, (Ruby or BSD) and Public Domain
rubygem-icaro, GPLv3
rubygem-idn, ASL 2.0 and LGPLv2+
rubygem-imagesize, GPLv2 or Ruby
rubygem-levenshtein, GPLv2
rubygem-log4r, LGPLv3
rubygem-logstash-event, ASL 2.0
rubygem-macaddr, Ruby or BSD
rubygem-marcel, MIT and ASL 2.0
rubygem-mixlib-cli, ASL 2.0
rubygem-mixlib-config, ASL 2.0
rubygem-mixlib-log, ASL 2.0
rubygem-mixlib-shellout, ASL 2.0
rubygem-mongo, ASL 2.0
rubygem-msgpack, ASL 2.0
rubygem-narray, BSD and Ruby
rubygem-ncursesw, LGPLv2+
rubygem-nifti, LGPLv3+
rubygem-open4, BSD or Ruby
rubygem-opennebula, ASL 2.0
rubygem-pathspec, ASL 2.0
rubygem-pdf-core, GPLv2 or GPLv3 or Ruby
rubygem-pdf-inspector, GPLv2 or GPLv3 or Ruby
rubygem-prawn, (GPLv2 or GPLv3 or Ruby) and APAFML
rubygem-prawn-icon, Ruby or GPLv2 or GPLv3
rubygem-prawn-table, Ruby or GPLv2 or GPLv3
rubygem-prawn-templates, Ruby or GPLv2 or GPLv3
rubygem-rack, MIT and BSD
rubygem-rchardet, LGPLv2
rubygem-rdoc, GPL-2.0 AND Ruby AND BSD-3-Clause AND
CC-BY-2.5 AND OFL-1.1-RFN
rubygem-rmail, BSD
rubygem-ruby-libvirt, LGPLv2+
rubygem-ruby-shadow, Public Domain
rubygem-rubyzip, Ruby or BSD
rubygem-sassc-rails, MIT and OFL
rubygem-scanf, BSD
rubygem-selenium-webdriver, ASL 2.0
rubygem-serialport, GPLv2
rubygem-sinatra-rabbit, ASL 2.0
rubygem-sugarjar, ASL 2.0
rubygem-sys-uname, ASL 2.0
rubygem-ttfunk, GPLv2 or GPLv3 or Ruby
rubygem-uuid, MIT or CC-BY-SA
rubygem-vault, MPLv2.0
rubygem-vte, LGPLv2
rubygem-webrick, Ruby and BSD-2-Clause
rubygem-websocket-driver, ASL 2.0
rubygem-xmlparser, GPLv2+ and ( Ruby or GPLv2+ or MIT ) and
( GPLv2+ or Artistic )
rubygem-xmlrpc, Ruby or BSD
Package author list:
package, owner(, other contributors)
rubygem-ansi: stevetraylen
rubygem-aws-sigv4: valtri
rubygem-bcrypt: vondruch, ruby-packagers-sig
rubygem-bcrypt_pbkdf: pvalena
rubygem-between_meals: dcavalca, filbranden, salimma
rubygem-colorize: ctria
rubygem-contracts: mtasaka, tdawson
rubygem-cookiejar: pvalena, ruby-packagers-sig
rubygem-daemons: sseago
rubygem-dnsruby: pwouters
rubygem-elasticsearch-transport: stevetraylen, sbonazzo
rubygem-eventmachine: vondruch, ruby-packagers-sig
rubygem-ffi: vondruch, ruby-packagers-sig, bkearney, tdawson
rubygem-gem2rpm: vondruch, ruby-packagers-sig
rubygem-goocanvas: mtasaka
rubygem-gtk2: mtasaka
rubygem-gtksourceview2: mtasaka
rubygem-haml: pvalena
rubygem-hashery: pvalena, ruby-packagers-sig
rubygem-hashicorp-checkpoint: pvalena, humaton
rubygem-hiera-vault: logic
rubygem-highline: tdawson
rubygem-hiredis: pvalena, tdawson
rubygem-hocon: stevetraylen
rubygem-hrx: leigh123linux, ruby-packagers-sig, tdawson, jcpunk
rubygem-httpclient: tdawson, brandfbb, maxamillion, rcallicotte
rubygem-icaro: aeperezt
rubygem-idn: spstarr, tdawson
rubygem-imagesize: mtasaka
rubygem-levenshtein: mtasaka
rubygem-log4r: vondruch, humaton
rubygem-logstash-event: valtri
rubygem-macaddr: valtri
rubygem-marcel: pvalena, ruby-packagers-sig
rubygem-mixlib-cli: jdunn
rubygem-mixlib-config: jdunn
rubygem-mixlib-log: dcavalca
rubygem-mixlib-shellout: jdunn
rubygem-mongo: tdawson
rubygem-msgpack: spredzy
rubygem-narray: besser82
rubygem-ncursesw: dcallagh
rubygem-nifti: ilgrad, neuro-sig
rubygem-open4: vondruch, tdawson
rubygem-opennebula: valtri
rubygem-pathspec: athoscr, ignatenkobrain
rubygem-pdf-core: vondruch, fale, pvalena, snecker, tdawson
rubygem-pdf-inspector: pvalena
rubygem-prawn: vondruch, fale, pvalena, tdawson, snecker
rubygem-prawn-icon: tripledes, evgeni, fale, snecker
rubygem-prawn-table: vondruch, fale, snecker
rubygem-prawn-templates: tripledes, evgeni, fale, snecker
rubygem-rack: pvalena, ruby-packagers-sig, vondruch, tdawson
rubygem-rchardet: stevetraylen
rubygem-rdoc: vondruch, ruby-packagers-sig
rubygem-rmail: dcallagh
rubygem-ruby-libvirt: vondruch, ruby-packagers-sig, clalance, tdawson
rubygem-ruby-shadow: terjeros, ignatenkobrain
rubygem-rubyzip: vondruch, ruby-packagers-sig
rubygem-sassc-rails: pvalena
rubygem-scanf: ekohl, brandfbb
rubygem-selenium-webdriver: vondruch, ruby-packagers-sig
rubygem-serialport: aeperezt
rubygem-sinatra-rabbit: athoscr
rubygem-sugarjar: jaymzh
rubygem-sys-uname: pvalena, tdawson
rubygem-ttfunk: vondruch, tdawson, snecker
rubygem-uuid: valtri
rubygem-vault: logic
rubygem-vte: mtasaka
rubygem-webrick: pvalena, ruby-packagers-sig, tdawson
rubygem-websocket-driver: vondruch, ruby-packagers-sig, pvalena, jaruga
rubygem-xmlparser: schwicke
rubygem-xmlrpc: pvalena
4 months, 2 weeks