> >>>> Are you planning to adopt also the ruby-* sub-packages ? I intend to do that. > > 2. Modify cygport and release it. > > - Add code to detect dependencies on `ruby_xy`. > > - It is similar to the process for `perl5_xy0`. > > - https://github.com/cygwin/cygport/blob/0.36.2/lib/pkg_info.cygpart#L442 > > - https://github.com/cygwin/cygport/blob/0.36.2/lib/pkg_info.cygpart#L639 > > Yes. > > I'm not asking you to do this work though, unless you really feel like it :) Please review the attached diff. > > - Add `ruby_PROVIDES="ruby_${${VERSION%.*}//./}"` to ruby.cygport. ``` /tmp/cygport-ruby/ruby.cygport: line 49: ${${VERSION%.*}//./}: bad substitution ``` Is the warning being displayed because $VERSION (=3.2.2) starts with a number? On Sat, Apr 22, 2023 at 5:06 AM Jon Turney wrote: > > On 21/04/2023 20:36, Daisuke Fujimura via Cygwin-apps wrote: > > Thank you for your review. > > > > Based on your review, I understand that the following steps are necessary. > > > > Could you please let me know if it is correct? > > > > 1. Release `ruby-2.6.4-2`. > > - Add `ruby_PROVIDES="ruby_${${VERSION%.*}//./}"` to ruby.cygport. > > - The value of this variable will be `ruby_26`. > > - `provides: ruby_26` is added to `ruby-2.6.4-2.hint`. > > This isn't needed. I've retroactively modified the existing 2.6.4-1 and > 2.6.3-1 packages to have this provide. > > > 2. Modify cygport and release it. > > - Add code to detect dependencies on `ruby_xy`. > > - It is similar to the process for `perl5_xy0`. > > - https://github.com/cygwin/cygport/blob/0.36.2/lib/pkg_info.cygpart#L442 > > - https://github.com/cygwin/cygport/blob/0.36.2/lib/pkg_info.cygpart#L639 > > Yes. > > I'm not asking you to do this work though, unless you really feel like it :) > > > 3. Rebuild `ruby-*` subpackages. > > Again, this isn't needed as I can retroactively modify existing packages. > > > - The new cygport adds `depends: ruby_26` to the hint. > > I've retroactively added this to the packages listed below, which > install into /usr/lib/ruby/vendor_ruby/2.6/ a .so linked to cygruby260.dll: > > > - (Question) Does a gem that has no dependencies on `cygruby*.dll` > > need to rebuild? > > I don't really know enough about ruby to answer that question, but > I don't think so. > > > 4. Release `ruby-3.2.2-1`. > > - The value of `provides` becomes `ruby_32`. > > - Packages that depend on `ruby_26` will no longer be installable. > > 5. Rebuild `ruby-*` subpackages. > > - The rebuild adds `depends: ruby_32` to the hint. > > Yes. > > The idea is that this will ensures that packages which are installed > together will work together, going forwards. > > > On Fri, Apr 21, 2023 at 1:13 AM Jon Turney wrote: > >> On 20/04/2023 11:50, Jon Turney via Cygwin-apps wrote: > >>> On 20/04/2023 04:28, Marco Atzeri via Cygwin-apps wrote: > >>>> On 20.04.2023 00:42, Daisuke Fujimura via Cygwin-apps wrote: > >>>>> Hello, > >>>>> > >>>>> ==== > >>>>> > >>>>> Cygportfile: > >>>>> - > >>>>> https://cygwin.com/git-cygwin-packages/?p=git/cygwin-packages/playground.git;a=shortlog;h=refs/heads/ruby > >>>>> > >> > >> Looks fine. Thanks very much for updating this! > >> > >>>>> Packages, logs: > >>>>> - https://github.com/cygwin/scallywag/actions/runs/4743191979 > >>>> > >>>> > >>>> all yours > >>>> > >>>> Are you planning to adopt also the ruby-* sub-packages ? > >>>> > >>>> Regards > >>>> Marco > >>> > >>> I have a concern about how this changes a soversioned dll inside the > >>> package (from cygruby260.dll to cygruby320.dll) > >>> > >>> I don't know if there's anything linked against this DLL (perhaps ruby > >>> bindings provided by other packages) which will get broken? > >>> > >>> Please hold off on uploading this until I have a chance to look into > >>> that issue a bit more. > >> It seems we have a handful of ruby binding packages, which install a .so > >> file into /usr/lib/ruby/vendor_ruby/2.6/ which is linked against > >> cygruby260.dll: > >> > >> ruby-gv > >> ruby-marisa > >> ruby-openbabel > >> ruby-openwsman > >> ruby-solv > >> ruby-xapian > >> ruby-zinnia > >> subversion-ruby > > ruby-caca also belongs on this list, but the ruby binding hasn't been > rebuilt since ruby 2.3.0 > > Additionally, there are some packages which install a .so into > /usr/lib/gems/ruby/2.6/, which probably need similar treatment? > > >> (There might also be some other packages which link with that dll to > >> embed the ruby interpreter or something, but those are harder for me to > >> identify quickly...) > >> > >> I think this can be handled in the same way as perl, i.e. add something > >> like "ruby_PROVIDES=ruby_${${VERSION%.*}//./}" to ruby.cygport, and add > >> a mechanism to cygport to make the binding packages have an additional > >> dependency on that provide. > >> > >> I'll look into retroactively adding this to the existing ruby 2.6.x > >> packages, to prevent non-working combinations of packages getting installed.