Bug #21855
closedBundle `win32-registry` or implement it without `fiddle`
Description
win32-registry (a default gem), is currently implemented via fiddle (a bundled gem). This makes it impossible to use under bundler without adding fiddle to the gemfile.
In the past it has lead to issues like https://bugs.ruby-lang.org/issues/21645. It was solved by simply not using win32-registry anymore in resolv and implementing it via C (https://github.com/ruby/resolv/pull/110), although the overarching issue is still present. There is also a report for this for rubygems https://github.com/ruby/rubygems/issues/9277. This should be solved by updating the vendored resolv version I think.
Still, the dependecy relation between win32-registry and fiddle is pretty incompatible. A default gem can't depend on a bundled gem without breaking dependency resolution.
To solve this it would have to be implemented without using fiddle, similar to how resolv did it. But now that resolv doesn't use win32-registry, I don't think anything in ruby uses it anymore. So moving it to a bundled gem could also be a solution without rewriting the whole thing.
Here is an issue about this in the win32-registry repo: https://github.com/ruby/win32-registry/issues/11
Updated by Earlopain (Earlopain _) 21 days ago
- Related to Bug #21645: Can't `require "resolve"` on Windows under Bundler without warnings added
Updated by Earlopain (Earlopain _) 21 days ago
- Related to Feature #20775: Gemify win32-registry, win32-sspi and win32-resolv added
Updated by Earlopain (Earlopain _) 21 days ago
- Related to Feature #20309: Bundled gems for Ruby 3.5 added
Updated by larskanis (Lars Kanis) 18 days ago
I recommended to make win32-registry a bundled gem in #20775, but maybe it was forgotten to that time. I still think this would be the best solution.
Updated by hsbt (Hiroshi SHIBATA) 7 days ago
- Status changed from Open to Assigned
No one opposed it at devmeeting. I will ask usa and handle to extract that as bundled gems at Ruby 4.1.
Updated by larskanis (Lars Kanis) 3 days ago
Updated by hsbt (Hiroshi SHIBATA) about 11 hours ago
@usa (Usaku NAKAMURA) has no objection for that. I will merge https://bugs.ruby-lang.org/issues/21855#note-6 and handle related works.
Updated by larskanis (Lars Kanis) about 11 hours ago
- Status changed from Assigned to Closed
Applied in changeset git|f01f66ca249405ec125ba864e48e51944cc51c6f.
Move win32-registry from default to bundled gems
Because win32-registry needs fiddle and fiddle is a bundled gem.
[Bug #21855]
Updated by hsbt (Hiroshi SHIBATA) about 11 hours ago
- Assignee set to hsbt (Hiroshi SHIBATA)