public inbox for cygwin-apps@cygwin.com
 help / color / mirror / Atom feed
From: Jon Turney <jon.turney@dronecode.org.uk>
To: Daisuke Fujimura <booleanlabel@gmail.com>,
	"cygwin-apps@cygwin.com" <cygwin-apps@cygwin.com>
Subject: Re: [ITA] ruby 3.2.2
Date: Fri, 21 Apr 2023 21:06:42 +0100	[thread overview]
Message-ID: <f7c299bc-31c0-f481-d737-da44a050383e@dronecode.org.uk> (raw)
In-Reply-To: <CAA3frXQ3qHFfMdRukM56WRqVsqGWx=-_2efhkbrsCq-K6pbSwA@mail.gmail.com>

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.

  reply	other threads:[~2023-04-21 20:06 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-19 22:42 Daisuke Fujimura
2023-04-20  3:28 ` Marco Atzeri
2023-04-20 10:50   ` Jon Turney
2023-04-20 16:13     ` Jon Turney
2023-04-21 19:36       ` Daisuke Fujimura
2023-04-21 20:06         ` Jon Turney [this message]
2023-04-22 12:04           ` Daisuke Fujimura
2023-04-23 13:35             ` Jon Turney
2023-04-23 23:44               ` Daisuke Fujimura
2023-04-24 20:10                 ` Jon Turney
2023-04-25  9:56                   ` Daisuke Fujimura
2023-04-25 13:52                     ` Jon Turney
2023-04-25 21:10                       ` Daisuke Fujimura
2023-04-25 22:13                         ` Jon Turney
2023-04-25 22:37                           ` Daisuke Fujimura
2023-06-08 14:38 ` [GOLDSTAR] " Jon Turney
2023-06-13 15:04   ` Andrew Schulman
2023-06-13 23:24     ` Daisuke Fujimura

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=f7c299bc-31c0-f481-d737-da44a050383e@dronecode.org.uk \
    --to=jon.turney@dronecode.org.uk \
    --cc=booleanlabel@gmail.com \
    --cc=cygwin-apps@cygwin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).