Ruby 2.4 was released during Christmas and the upcoming Ruby 2.5
development is advancing, so I continue in the tradition and I got
r58319 packaged for testing. The updated .spec file is available in
dist-git private-ruby-2.5 branch and here is the scratch build:
One thing I'd like to point out that upstream is working on gemification
of StdLib. The question ATM is what the result will be. Hence, there is
one big TODO in the .spec file . The question if each of the gems
should be unbundled or not. The future will tell hopefully.
RPM 4.14 has enhanced dependency generators, which allows to use "with"
operator . This comes handy, if you want to restrict the dependency
to range of versions. E.g. if the gem you package depends on "foo ~>
1.0", this expands to range "foo >= 1.0" and "foo < 2".
Previously, the generator would generate this dependencies:
Requires: foo >= 1.0
Requires: foo < 2
Unfortunately, this does not really provide expected results. This in
reality allows RPM to install any version of foo (and as far as I
remember, we had this issue with rubygem-minitest in Ruby on Rails). But
since RPM 4.14, this can be expressed as:
Requires: (foo >= 1.0 with foo < 2)
This require properly limits the versions.
To benefit from this, I prepared update of the dependency generator,
which should use the "with" operator and represent the gem dependencies
Another thing which was not handled really well were conflict
dependencies. E.g. your gem might depend on "foo [~> 1.0, != 1.2.1]",
where version 1.2.1 is problematic for some reasons.
Up to now, this was expanded into something like "foo < 1.2.1" and "foo
> 1.2.2", but again, this does not represent the conflict properly.
Therefore I'm going to introduce conflict generator, which will
autogenerate "Conflicts: foo = 1.2.1".
You can check the changes here:
I would also appreciate, if you can test the generators. The scratch
build is available here:
Thx for your testing and feedback.
PS: There are also some other chnages, as the GMP library enabled and
dropped the ldconfig scriptlets (therefore the package is not compatible