Issue #14002 has been updated by jeremyevans0 (Jeremy Evans).


vo.x (Vit Ondruch) wrote:
> If nothing else, this was never the case.

It is true that this changed in 2.4, I consider it a bugfix.  RUBY_PROGRAM_VERSION should be "#{MAJOR}.#{MINOR}.#{TEENY}".

> Reading this [1], I am inclined to interpret it as that the TEENY should not change ....
> 
> [1]: https://bugs.ruby-lang.org/projects/ruby/wiki/ReleaseEngineering

Here's what it says:

~~~
Format: X.Y.Z
X: major version; increased when incompatible change which can”Ēt be released in MINOR
Y: minor version; increased every christmas, may be API incompatible (always ABI incompatible)
Z: teeny; security or bug fix which maintains API compatibility
~~~

I'm not sure how that could be more clear that ruby 2.4.2 has major 2, minor 4, teeny 2 and ruby 2.4.1 has major 2, minor 4, teeny 1.

Note that it says API compatibility is maintained in teeny releases, but there is no mention of maintaining ABI compatibility.  It guarantees ABI breakage between minor versions, but it doesn't specify ABI compatibility for teeny versions, so teeny versions are allowed to break ABI (and frequently do, at least until the branch enters security maintenance phase).

----------------------------------------
Bug #14002: libruby soname is changing in Ruby 2.4.x while it should always be libruby.so.2.4.0
https://bugs.ruby-lang.org/issues/14002#change-67162

* Author: vo.x (Vit Ondruch)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.4.2p198 (2017-09-14 revision 59899) [x86_64-linux]
* Backport: 2.3: UNKNOWN, 2.4: REQUIRED
----------------------------------------
Since the Ruby 2.4.x keeps ABI compatibility with Ruby 2.4.0 (I hope at least), the so name should keep the libruby.so.2.4.0 during the whole Ruby 2.4 lifetime. This always used to be true, while in Ruby 2.4, the soname is surprisingly changing (and it affects Fedora users [1]).

Actually this is not just about the soname, the RbConfig::CONFIG["TEENY"] value is impacted by this as well. This was always "0" since the patch releases were abandoned. But now it changes.

I tried to revert r53566, r53500 and r5347 but apparently, this was not enough :/


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



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

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>