Ruby 2.2
by Vít Ondruch
Hi everybody,
Since Ruby 2.2 is going to be released during Christmas and -preview1
release is imminent (this Wednesday?), it is probably time to start
looking into its packaging. So here is the updated .spec file [1] and
scratch build [2], which can be finally build on all platforms. Sorry,
no Copr for you, since Ruby's build fails there due to old RHEL kernel :/.
What has changed from packaging point of view? Luckily, not much, but
here are a few bullets which comes to my mind:
* RPM 4.12 introduces new %load function, which is used to load RPM
macros during RPM build. This allowed to drop my custom RPM macro [3].
On the other hand, you'll be able to build the Ruby only on F21+
(luckily, you should be able to build SRPM everywhere).
* The RubyGems filesystem was not explicit enough, so there might be
something accidentally packages. This is now more explicit, so we should
be safer.
* Ruby now ships with MiniTest and Test::Unit. The very good news is
that they are installed so far as a regular gems. This means that you
have to always specify them in your Gemfile, if you are using Bundler,
but this is generally step in good direction. I hope that upstream will
not change their mind :) Due to this change, we have new subpackages
rubygem-test-unit (and rubygem-power_assert, which is now Test::Unit's
dependency). No more %{_bindir}/testrb (but nobody is using it these
days anyway, right? ;)
* Some prevailing test failures were resolved, some others introduced,
but hopefully they'll get resolved prior stable release.
Generally, I'd say that not much has changed since 2.1, which is good news.
Please test the packaging if you can and let me know about any issues
you encountered.
Also, if you have any other suggestions about Ruby packaging in general,
what we could improve etc, this is probably good time to share. It seems
that OpenSUSE guys are improving their packaging, so you might want to
get some inspiration there [4, 5, 6] ;)
Vít
[1] http://pkgs.fedoraproject.org/cgit/ruby.git/log/?h=private-ruby-2.2
[2] http://koji.fedoraproject.org/koji/taskinfo?taskID=7578843
[3]
http://pkgs.fedoraproject.org/cgit/ruby.git/commit/?h=private-ruby-2.2&id...
[4] https://build.opensuse.org/package/show/home:darix:ruby/ruby-common
[5] https://build.opensuse.org/package/show/home:darix:ruby/ruby2.2
[6] https://github.com/openSUSE/gem2rpm/commits/master
2 months, 2 weeks
rubygem-openssl is going to be bundled in Ruby
by Vít Ondruch
Hi,
Following the bundling of Racc [1] and did_you_mean [2], I am forced to
bundle also OpenSSL. This is due to the StdLib symlinks together with
`require_relative` [3] causing double loading issues, e.g.:
~~~
$ ruby --disable-gems -e 'require "openssl"; require "openssl/digest"'
/usr/share/ruby/openssl/digest.rb:45: warning: already initialized
constant OpenSSL::Digest::MD4
/usr/share/gems/gems/openssl-2.2.0/lib/openssl/digest.rb:45:
warning: previous definition of MD4 was here
/usr/share/ruby/openssl/digest.rb:45: warning: already initialized
constant OpenSSL::Digest::MD5
/usr/share/gems/gems/openssl-2.2.0/lib/openssl/digest.rb:45:
warning: previous definition of MD5 was here
/usr/share/ruby/openssl/digest.rb:45: warning: already initialized
constant OpenSSL::Digest::RIPEMD160
/usr/share/gems/gems/openssl-2.2.0/lib/openssl/digest.rb:45:
warning: previous definition of RIPEMD160 was here
/usr/share/ruby/openssl/digest.rb:45: warning: already initialized
constant OpenSSL::Digest::SHA1
/usr/share/gems/gems/openssl-2.2.0/lib/openssl/digest.rb:45:
warning: previous definition of SHA1 was here
/usr/share/ruby/openssl/digest.rb:45: warning: already initialized
constant OpenSSL::Digest::SHA224
/usr/share/gems/gems/openssl-2.2.0/lib/openssl/digest.rb:45:
warning: previous definition of SHA224 was here
/usr/share/ruby/openssl/digest.rb:45: warning: already initialized
constant OpenSSL::Digest::SHA256
/usr/share/gems/gems/openssl-2.2.0/lib/openssl/digest.rb:45:
warning: previous definition of SHA256 was here
/usr/share/ruby/openssl/digest.rb:45: warning: already initialized
constant OpenSSL::Digest::SHA384
/usr/share/gems/gems/openssl-2.2.0/lib/openssl/digest.rb:45:
warning: previous definition of SHA384 was here
/usr/share/ruby/openssl/digest.rb:45: warning: already initialized
constant OpenSSL::Digest::SHA512
/usr/share/gems/gems/openssl-2.2.0/lib/openssl/digest.rb:45:
warning: previous definition of SHA512 was here
/usr/share/ruby/openssl/digest.rb:52:in `<class:Digest>':
superclass mismatch for class Digest (TypeError)
from /usr/share/ruby/openssl/digest.rb:16:in `<module:OpenSSL>'
from /usr/share/ruby/openssl/digest.rb:15:in `<top (required)>'
from -e:1:in `require'
from -e:1:in `<main>'
~~~
This is the reason why rubygem-net-ssh is broken ATM [4]. Not sure if
upstream is really able to resolve the double loading issue [5]. While I
could revert the [3] to resolve the original state, we would need to
maintain this patch for the foreseeable future. Therefore it is probably
better to keep openssl bundled. This at least will provide experience
closer to upstream.
Vít
[1]
https://src.fedoraproject.org/rpms/ruby/c/baf046a6a4d17fa309c9d20fa3db949...
[2]
https://src.fedoraproject.org/rpms/ruby/c/ca69f778a9169c7ff172d2cc9c9d31c...
[3]
https://github.com/ruby/openssl/commit/74e03b588f58bcac007d7145c3bb6c4754...
[4] https://koschei.fedoraproject.org/package/rubygem-net-ssh
[5] https://bugs.ruby-lang.org/issues/16978#note-11
2 years, 10 months
Ruby 3.0 - Mass rebuild
by Vít Ondruch
Hi everybody,
So here we go. I have asked for side tag for Ruby 3.0 rebuild:
~~~
$ fedpkg request-side-tag
Side tag 'f34-build-side-35577' (id 35577) created.
Use 'fedpkg build --target=f34-build-side-35577' to use it.
Use 'koji wait-repo f34-build-side-35577' to wait for the build repo to
be generated.
~~~
and Ruby 3.0 is already built there as you can see at:
https://koji.fedoraproject.org/koji/builds?inherited=0&tagID=35577&order=...
or using:
~~~
$ koji list-tagged f34-build-side-35577
~~~
Now this is a list of packages, which very likely needs rebuild:
~~~
$ dnf repoquery --disablerepo=* --enablerepo=rawhide
--enablerepo=rawhide-source --arch=src --whatrequires 'ruby-devel' |
sort | uniq
~~~
You can take the package and just fire rebuild, but please ensure that
you are using f34-build-side-35577 build target, i.e. the build command
should look like:
~~~
$ fedpkg build --target f34-build-side-35577
~~~
Please be careful, because if you, by a chance, omit the
f34-build-side-35577 target, you'll be building against Ruby 2.7 which
is not what you want.
If you won't do it by yourself, I'll be rebuilding all packages after I
am finished with my packages. I'll be using fermig [1] to help me with
that. If you don't want me to touch your packages for whatever reason,
please let me know.
As always, any help/testing/feedback is welcome.
Vít
[1] https://github.com/fedora-ruby/fermig
2 years, 10 months
Ruby 3.0 change proposal
by Vít Ondruch
Hi Rubyists,
The release of Ruby 3.0 is coming close and to be ready for rebuild
after Christmas, I have submitted the Ruby 3.0 change proposal [1]. It
is already in `ChangeReadyForWrangler` state, since I don't expect any
controversy. But anyway, please review and let me know if you have any
concerns.
Vít
[1] https://fedoraproject.org/wiki/Changes/Ruby_3.0
2 years, 11 months