|
Bugzilla – Full Text Bug Listing |
| Summary: | YaST2 doesn't detect missing gems needed for some functionality | ||
|---|---|---|---|
| Product: | [openSUSE] openSUSE Distribution | Reporter: | Marko Haas <markohaas> |
| Component: | YaST2 | Assignee: | E-mail List <yast2-maintainers> |
| Status: | RESOLVED INVALID | QA Contact: | Jiri Srain <jsrain> |
| Severity: | Minor | ||
| Priority: | P5 - None | ||
| Version: | 13.2 | ||
| Target Milestone: | --- | ||
| Hardware: | All | ||
| OS: | openSUSE 13.2 | ||
| Whiteboard: | |||
| Found By: | --- | Services Priority: | |
| Business Priority: | Blocker: | --- | |
| Marketing QA Status: | --- | IT Deployment: | --- |
| Attachments: | Yast2 log while missing gettext and dbus gems | ||
Removing the gems outside RPM is a very bad idea, the system in inconsistent state and seriously broken. Do not remove the gems installed as RPMs, use rpm or zypper for that if you want to remove them. (But that can lead to YaST removal in the end...) Thank you for reviewing my bug report. Of course you're absolutely correct, Ladislav: issuing »gem uninstall --all« is a bad idea on an openSUSE system because it introduces inconsistencies. I know this now. My point, though, was to document the behavior for any other rubyists falsely assuming that all gems on a system are theirs exclusively; hence my proposal to safeguard YaST against these very inconsistencies, by making sure these gems are being kept installed at all times. |
Created attachment 657076 [details] Yast2 log while missing gettext and dbus gems After removing all ruby gems (sudo gem uninstall --all) in order to have a clean slate and start from scratch, YaST fails to launch its modules/clients. Cause: * missing gem rubygem-fast_gettext * missing gem rubygem-ruby-dbus While virtually everything in YaST is dependent on the package rubygem-fast_gettext, the dependence on rubygem-ruby-dbus is more subtle: for example, »Software Management« will work without rubygem-ruby-dbus while »Boot Loader« won't. Software Management's dependency solver will still consider the missing gems as installed because they had been uninstalled via the »gem« command, not via YaST/zypper. (Maybe ruby coders other than me had this happen after issuing »gem uninstall --all« and, after a while, wondered why YaST was broken, not making the connection between gems and YaST.) Proposed solutions: Short-term, force a reinstall of both gems (e.g. choose »update unconditionally« in the context menu of the gem package in Software Management); YaST will launch its modules again. Long-term, have YaST not depend on rubygems at all (roughly analogous to static linking?). Alternatively have YaST check for the existence of crucual gems explicitely and have it fail early, instead of making a module throw »Internal error« later on (see attached YaST2/y2log-5.gz, lines 51692 to 51706: despite missing the dbus gem, Y2Ruby continues to try and load modules). Some modules do already warn about missing packages: for example, »Samba Server« offers to install the cups package if it's missing. I think notifying about missing gems and offering to install them would be a good thing for YaST to do.