[SRU] libruby2.7 provides ruby-bundler library but its binary is missing
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
ruby2.7 (Ubuntu) |
Fix Released
|
High
|
Lucas Kanashiro | ||
Focal |
Fix Released
|
High
|
Lucas Kanashiro |
Bug Description
[ Impact ]
Users who are used to call 'bundle' are not able to do it installing just libruby2.7. ruby-bundler was marked as provided by libruby2.7 in version 2.7.0-5.
ruby2.7 binary package provides 'bundle2.7' executable which could be symlinked to 'bundle', however, it would be conceptually wrong to mark ruby-bundler as provided by libruby2.7 and its binary be shipped in ruby2.7. Moreover, we would need to handle the case where ruby-bundler binary package is installed because it also provides 'bundle'.
The simplest solution here is make libruby2.7 does not provide ruby-bundler at all, and always force users to install ruby-bundler binary package.
[ Test Case ]
Try to install libruby2.7 in a Focal system and try to call 'bundle'.
$ lxc launch ubuntu-daily:focal ruby-does-
$ lxc shell ruby-does-
# apt install -y libruby2.7
# bundle
Command 'bundle' not found, but can be installed with:
apt install ruby-bundler
Since ruby-bundler is provided by libruby2.7 its binary must be already available to the user at this point.
[ Regression Potential ]
This change should not affect users heavily since it was introduced recently and most of them are not relying on it yet. However, there is a chance of someone preparing a ruby package/custom script and removing the dependency on ruby-bundler since it is now provided by libruby2.7, those packages/scripts will fail during build time or runtime.
[ Original description ]
In version 2.7.0-5, libruby2.7 became a provider of a bunch of libraries builtin to the standard
library, including ruby-bundler. The issue here is that ruby-bundler binary package ships the library and binary (called 'bundle') and libruby2.7 does not ship the binary just the library files.
This bug was reported here in Debian:
https:/
And it was already fixed in version 2.7.0-7:
https:/
The solution is to make libruby2.7 stop providing ruby-bundler for now. This fix should be synced into Groovy and SRUed to Focal.
Related branches
- Lucas Kanashiro (community): Approve
- Christian Ehrhardt (community): Needs Fixing
-
Diff: 27 lines (+7/-1)2 files modifieddebian/changelog (+7/-0)
debian/control (+0/-1)
Changed in ruby2.7 (Ubuntu): | |
assignee: | nobody → Lucas Kanashiro (lucaskanashiro) |
importance: | Undecided → High |
status: | New → In Progress |
Changed in ruby2.7 (Ubuntu Focal): | |
assignee: | nobody → Lucas Kanashiro (lucaskanashiro) |
importance: | Undecided → High |
status: | New → In Progress |
description: | updated |
tags: | added: verification-done verification-done-focal |
tags: |
added: verification-done verification-done-focal removed: verification-needed verification-needed-focal |
Here is a PPA with the proposed solution for Focal:
https:/ /launchpad. net/~lucaskanas hiro/+archive/ ubuntu/ focal-ruby2. 7-lp1876912/ +packages
Verifying if the test case mentioned in the description has the expected behavior:
$ lxc launch ubuntu-daily:focal ruby-does- not-provide- bundler not-provide- bundler iro/focal- ruby2.7- lp1876912
$ lxc shell ruby-does-
# add-apt-repository -y ppa:lucaskanash
# apt install -y libruby2.7
# bundle
Command 'bundle' not found, but can be installed with:
apt install ruby-bundler
As expected libruby2.7 does not provide ruby-bundler anymore, so users willing to use it need to install ruby-bundler binary package.