public inbox for cygwin-apps@cygwin.com
 help / color / mirror / Atom feed
* [ITA] ruby 3.2.2
@ 2023-04-19 22:42 Daisuke Fujimura
  2023-04-20  3:28 ` Marco Atzeri
  2023-06-08 14:38 ` [GOLDSTAR] " Jon Turney
  0 siblings, 2 replies; 18+ messages in thread
From: Daisuke Fujimura @ 2023-04-19 22:42 UTC (permalink / raw)
  To: cygwin-apps

[-- Attachment #1: Type: text/plain, Size: 214 bytes --]

Hello,

====

Cygportfile:
- https://cygwin.com/git-cygwin-packages/?p=git/cygwin-packages/playground.git;a=shortlog;h=refs/heads/ruby

Packages, logs:
- https://github.com/cygwin/scallywag/actions/runs/4743191979

[-- Attachment #2: ruby.cygport.diff --]
[-- Type: application/octet-stream, Size: 6647 bytes --]

--- cygport-ruby/ruby.cygport	2023-04-20 05:03:44
+++ playground/ruby.cygport	2023-04-19 22:52:50
@@ -1,5 +1,5 @@
 NAME="ruby"
-VERSION=2.6.4
+VERSION=3.2.2
 RELEASE=1
 CATEGORY="Interpreters Ruby"
 SUMMARY="Interpreted object-oriented scripting language"
@@ -7,39 +7,42 @@
 object-oriented programming.  It has many features to process text files and
 to do system management tasks (as in Perl).  It is simple, straight-forward,
 and extensible."
-HOMEPAGE="http://www.ruby-lang.org/"
-SRC_URI="https://cache.ruby-lang.org/pub/ruby/${VERSION%.*}/ruby-${VERSION}.tar.bz2"
+HOMEPAGE="https://www.ruby-lang.org/"
+SRC_URI="https://cache.ruby-lang.org/pub/ruby/${VERSION%.*}/ruby-${VERSION}.tar.gz"
 PATCH_URI="
 	fedora/ruby-2.3.0-ruby_version.patch
 	fedora/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch
 	fedora/ruby-2.1.0-Enable-configuration-of-archlibdir.patch
 	fedora/ruby-2.1.0-always-use-i386.patch
 	fedora/ruby-2.1.0-custom-rubygems-location.patch
-	fedora/ruby-1.9.3-mkmf-verbose.patch
-	fedora/ruby-2.2.3-Generate-preludes-using-miniruby.patch
-	fedora/ruby-2.6.0-config-support-include-directive.patch
-	fedora/ruby-2.6.0-use-larger-keys-for-SSL-tests.patch
-	2.0.0-cygwin-configure.patch
+	fedora/ruby-2.7.0-Initialize-ABRT-hook.patch
+	fedora/ruby-3.1.0-Don-t-query-RubyVM-FrozenCore-for-class-path.patch
+	fedora/ruby-2.7.1-Timeout-the-test_bug_reporter_add-witout-raising-err.patch
+	fedora/ruby-3.2.0-Revert-Fix-test-syntax-suggest-order.patch
+	fedora/ruby-3.2.0-Revert-Test-syntax_suggest-by-make-check.patch
 	2.0.0-cygwin-rubygems.patch
 	2.0.0-pkgconfig-version.patch
 	2.5.1-win32-resolv.patch
 "
+LICENSE="Ruby"
 
+BUILD_REQUIRES="libcrypt-devel libffi-devel libgmp-devel libreadline-devel libssl-devel libyaml-devel rubygems zlib-devel"
+
 PKG_NAMES="${NAME} ${NAME}-devel ${NAME}-doc ${NAME}-tcltk"
-ruby_REQUIRES="rubygems ruby-did_you_mean ca-certificates"
-ruby_OBSOLETES="ruby-bigdecimal ruby-bundler ruby-io-console ruby-json ruby-psych"
+ruby_REQUIRES="ca-certificates"
+ruby_OBSOLETES="ruby-bigdecimal ruby-bundler ruby-io-console ruby-json ruby-psych ruby-racc"
 ruby_CONTENTS="
-	--exclude=capi
 	usr/bin/bundle*
 	usr/bin/cygruby*.dll
 	usr/bin/erb
 	usr/bin/irb
+	usr/bin/racc
 	usr/bin/ruby.exe
+	usr/bin/rubyw.exe
 	usr/lib/ruby/
 	usr/share/doc/
-	usr/share/gems/specifications/default/
+	usr/share/gems/
 	usr/share/man/man1/*
-	usr/share/man/man5/*
 	usr/share/ruby/
 	var/lib/rebase/
 "
@@ -49,14 +52,16 @@
 	usr/lib/libruby*.dll.a
 	usr/lib/pkgconfig/ruby*.pc
 "
-ruby_doc_OBSOLETES="ruby-bigdecimal-doc ruby-bundler-doc ruby-io-console-doc ruby-json-doc ruby-psych-doc"
+ruby_doc_OBSOLETES="ruby-bigdecimal-doc ruby-bundler-doc ruby-io-console-doc ruby-json-doc ruby-psych-doc ruby-racc-doc"
 ruby_doc_CONTENTS="usr/share/ri/"
 ruby_tcltk_SUMMARY="Obsolete package"
 ruby_tcltk_REQUIRES="ruby-tk"
-ruby_debuginfo_OBSOLETES="ruby-bigdecimal-debuginfo ruby-io-console-debuginfo ruby-json-debuginfo ruby-psych-debuginfo"
+ruby_debuginfo_OBSOLETES="ruby-bigdecimal-debuginfo ruby-io-console-debuginfo ruby-json-debuginfo ruby-psych-debuginfo ruby-racc-debuginfo"
 
-DIFF_EXCLUDES=".document revision.h"
+DIFF_EXCLUDES="install-sh"
 
+export RUBYOPT="-I/usr/share/rubygems"
+
 src_compile() {
 	local ruby_version=${VERSION%.*}
 
@@ -83,9 +88,10 @@
 	cygmake
 }
 
+# https://bugs.ruby-lang.org/issues/15465
 src_test() {
 	cd ${B}
-	make test
+#	make test
 }
 
 src_install() {
@@ -101,6 +107,9 @@
 		-e 's|/$(ruby_version)||g' \
 		${D}${rbarchdir}/rbconfig.rb
 
+	# move gems to rbgemdir
+	mv -f ${D}/usr/share/ruby/${ruby_version}/gems ${D}${rbgemdir}
+
 	# the libraries are in default locations so no need for gem wrappers
 	mv -f ${D}${rbgemdir}/gems/*/exe/* ${D}/usr/bin/
 
@@ -109,18 +118,34 @@
 	# rubygems
 	rm -f  ${D}/usr/bin/gem
 	rm -fr ${D}/usr/share/rubygems/
-	# bundler: certs
-	rm -fr ${D}${rblibdir}/bundler/ssl_certs/
-	# did_you_mean (since 2.3)
-	rm -fr ${D}${rbgemdir}/gems/did_you_mean-*
-	rm -f  ${D}${rbgemdir}/specifications/did_you_mean-*.gemspec
+
+	# debug
+	rm -f  ${D}/usr/bin/rdbg
+	rm -fr ${D}${rbgemdir}/extensions/*/${ruby_version}.0/debug-*
+	rm -fr ${D}${rbgemdir}/gems/debug-*
+	rm -f  ${D}${rbgemdir}/specifications/debug-*.gemspec
 	# minitest
 	rm -fr ${D}${rbgemdir}/gems/minitest-*
 	rm -f  ${D}${rbgemdir}/specifications/minitest-*.gemspec
-	# net-telnet (since 2.3)
-	rm -fr ${D}${rbgemdir}/gems/net-telnet-*
-	rm -f  ${D}${rbgemdir}/specifications/net-telnet-*.gemspec
-	# power_assert (since 2.3)
+	# matrix
+	rm -fr ${D}${rbgemdir}/gems/matrix-*
+	rm -f  ${D}${rbgemdir}/specifications/matrix-*.gemspec
+	# net-ftp
+	rm -fr ${D}${rbgemdir}/gems/net-ftp-*
+	rm -f  ${D}${rbgemdir}/specifications/net-ftp-*.gemspec
+	# net-imap
+	rm -fr ${D}${rbgemdir}/gems/net-imap-*
+	rm -f  ${D}${rbgemdir}/specifications/net-imap-*.gemspec
+	# net-pop
+	rm -fr ${D}${rbgemdir}/gems/net-pop-*
+	rm -f  ${D}${rbgemdir}/specifications/net-pop-*.gemspec
+	# net-smtp
+	rm -fr ${D}${rbgemdir}/gems/net-smtp-*
+	rm -f  ${D}${rbgemdir}/specifications/net-smtp-*.gemspec
+	# prime
+	rm -fr ${D}${rbgemdir}/gems/prime-*
+	rm -f  ${D}${rbgemdir}/specifications/prime-*.gemspec
+	# power_assert
 	rm -fr ${D}${rbgemdir}/gems/power_assert-*
 	rm -f  ${D}${rbgemdir}/specifications/power_assert-*.gemspec
 	# rake
@@ -128,18 +153,31 @@
 	rm -f  ${D}/usr/share/man/man1/rake.*
 	rm -fr ${D}${rbgemdir}/gems/rake-*
 	rm -f  ${D}${rbgemdir}/specifications/rake-*.gemspec
+	# rbs
+	rm -f  ${D}/usr/bin/rbs
+	rm -fr ${D}${rbgemdir}/extensions/*/${ruby_version}.0/rbs-*
+	rm -fr ${D}${rbgemdir}/gems/rbs-*
+	rm -f  ${D}${rbgemdir}/specifications/rbs-*.gemspec
+	# rss
+	rm -fr ${D}${rbgemdir}/gems/rss-*
+	rm -f  ${D}${rbgemdir}/specifications/rss-*.gemspec
+	# rexml
+	rm -fr ${D}${rbgemdir}/gems/rexml-*
+	rm -f  ${D}${rbgemdir}/specifications/rexml-*.gemspec
+	# test-unit
+	rm -fr ${D}${rbgemdir}/gems/test-unit-*
+	rm -f  ${D}${rbgemdir}/specifications/test-unit-*.gemspec
+	# typeprof
+	rm -f  ${D}/usr/bin/typeprof
+	rm -fr ${D}${rbgemdir}/gems/typeprof-*
+	rm -f  ${D}${rbgemdir}/specifications/typeprof-*.gemspec
+
 	# rdoc
 	rm -f ${D}/usr/bin/{rdoc,ri}
 	rm -f ${D}/usr/share/man/man1/ri.*
 	rm -fr ${D}${rblibdir}/rdoc*
 	rm -fr ${D}${rbgemdir}/gems/rdoc-*
 	rm -f  ${D}${rbgemdir}/specifications/default/rdoc-*.gemspec
-	# test-unit
-	rm -fr ${D}${rbgemdir}/gems/test-unit-*
-	rm -f  ${D}${rbgemdir}/specifications/test-unit-*
-	# xmlrpc (since 2.4)
-	rm -fr ${D}${rbgemdir}/gems/xmlrpc-*
-	rm -f  ${D}${rbgemdir}/specifications/xmlrpc-*.gemspec
 
 	rm -f ${D}/usr/lib/libruby*-static.a
 	dosym libruby${ruby_version//\./}0.dll.a /usr/lib/libruby.dll.a

[-- Attachment #3: ruby.submodule.diff --]
[-- Type: application/octet-stream, Size: 217 bytes --]

diff --git a/fedora b/fedora
index 54db23e..9e39fd2 160000
--- a/fedora
+++ b/fedora
@@ -1 +1 @@
-Subproject commit 54db23e127d850dd63ecfc0e625d5b1a34f272fb
+Subproject commit 9e39fd242a58a5ab286d5da0d54130a669c8a9ec

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [ITA] ruby 3.2.2
  2023-04-19 22:42 [ITA] ruby 3.2.2 Daisuke Fujimura
@ 2023-04-20  3:28 ` Marco Atzeri
  2023-04-20 10:50   ` Jon Turney
  2023-06-08 14:38 ` [GOLDSTAR] " Jon Turney
  1 sibling, 1 reply; 18+ messages in thread
From: Marco Atzeri @ 2023-04-20  3:28 UTC (permalink / raw)
  To: cygwin-apps

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
> 
> Packages, logs:
> - https://github.com/cygwin/scallywag/actions/runs/4743191979


all yours

Are you planning to adopt also the ruby-* sub-packages ?

Regards
Marco

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [ITA] ruby 3.2.2
  2023-04-20  3:28 ` Marco Atzeri
@ 2023-04-20 10:50   ` Jon Turney
  2023-04-20 16:13     ` Jon Turney
  0 siblings, 1 reply; 18+ messages in thread
From: Jon Turney @ 2023-04-20 10:50 UTC (permalink / raw)
  To: Daisuke Fujimura, cygwin-apps

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
>>
>> 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.


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [ITA] ruby 3.2.2
  2023-04-20 10:50   ` Jon Turney
@ 2023-04-20 16:13     ` Jon Turney
  2023-04-21 19:36       ` Daisuke Fujimura
  0 siblings, 1 reply; 18+ messages in thread
From: Jon Turney @ 2023-04-20 16:13 UTC (permalink / raw)
  To: cygwin-apps, Daisuke Fujimura

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

(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.


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [ITA] ruby 3.2.2
  2023-04-20 16:13     ` Jon Turney
@ 2023-04-21 19:36       ` Daisuke Fujimura
  2023-04-21 20:06         ` Jon Turney
  0 siblings, 1 reply; 18+ messages in thread
From: Daisuke Fujimura @ 2023-04-21 19:36 UTC (permalink / raw)
  To: cygwin-apps

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`.
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
3. Rebuild `ruby-*` subpackages.
    - The new cygport adds `depends: ruby_26` to the hint.
    - (Question) Does a gem that has no dependencies on `cygruby*.dll`
need to rebuild?
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.


On Fri, Apr 21, 2023 at 1:13 AM Jon Turney <jon.turney@dronecode.org.uk> 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
>
> (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.
>

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [ITA] ruby 3.2.2
  2023-04-21 19:36       ` Daisuke Fujimura
@ 2023-04-21 20:06         ` Jon Turney
  2023-04-22 12:04           ` Daisuke Fujimura
  0 siblings, 1 reply; 18+ messages in thread
From: Jon Turney @ 2023-04-21 20:06 UTC (permalink / raw)
  To: Daisuke Fujimura, cygwin-apps

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.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [ITA] ruby 3.2.2
  2023-04-21 20:06         ` Jon Turney
@ 2023-04-22 12:04           ` Daisuke Fujimura
  2023-04-23 13:35             ` Jon Turney
  0 siblings, 1 reply; 18+ messages in thread
From: Daisuke Fujimura @ 2023-04-22 12:04 UTC (permalink / raw)
  To: cygwin-apps

[-- Attachment #1: Type: text/plain, Size: 5214 bytes --]

> >>>> 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 <jon.turney@dronecode.org.uk> 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.

[-- Attachment #2: pkg_info.cygpart.diff --]
[-- Type: application/octet-stream, Size: 1831 bytes --]

diff --git a/lib/pkg_info.cygpart b/lib/pkg_info.cygpart
index b9022d73..37cfa676 100644
--- a/lib/pkg_info.cygpart
+++ b/lib/pkg_info.cygpart
@@ -81,7 +81,7 @@ __list_deps() {
 	local mldep mldir mllib
 	local phpdep phpmoddir pldep pldirs plver
 	local pydep pydirs pyexts pyscr pysite pyver
-	local rbdep rbdirs gemdir gemextdir gemspecdir
+	local rbdep rbdirs rbver gemdir gemextdir gemspecdir
 	local tcldep tclpkgs vapidep vapidir
 	local tcgcclibdir tcgccsysroot
 	local dlltool="dlltool"
@@ -599,6 +599,19 @@ for suffix, mode, type in imp.get_suffixes(): print(suffix)')
 		done
 	fi
 
+	rbver=( $(find "${@//^_^/ }" -path "usr/*/ruby/vendor_ruby/[0-9].[0-9]/*" \
+	        | sed -E 's!usr/.*/ruby/vendor_ruby/([0-9]).([0-9])/.*!ruby_\1\2!' \
+	        | sort -ru) )
+	if [ "${#rbver[@]}" -gt 1 ]
+	then
+		warning "More than one targeted Ruby version: ${rbver[*]},"
+		warning "using only the latest as dependency: ${rbver[0]}."
+	fi
+	if [ "${#rbver[@]}" -gt 0 ] && [ "${PN}" != "ruby" ]
+	then
+		echo "${rbver[0]}"
+	fi
+
 	if [ $(find "${@//^_^/ }" -path 'usr/share/doc/*' -prune \
 		${deps_prune} \
 		-o -path 'usr/share/help/*' -prune \
@@ -637,6 +650,7 @@ for suffix, mode, type in imp.get_suffixes(): print(suffix)')
 	alldeps+=" "$(find "${@//^_^/ }" -type l | xargs -r readlink -f)
 
 	# add perl5_0xy requirement if linked with cygperl5_xy.dll
+	# add ruby_xy requirement if linked with cygrubyxy0.dll
 	for dll in $(echo ${alldeps} | tr \\n ' ' ) ; do
 	    case "${dll##*/}" in
 		cygperl5_[0-9][0-9].dll)
@@ -644,6 +658,11 @@ for suffix, mode, type in imp.get_suffixes(): print(suffix)')
 		    plver="${plver%%.dll}"
 		    echo "perl5_0${plver}"
 		    ;;
+		cygruby[0-9][0-9]0.dll)
+		    rbver="${dll##*cygruby}"
+		    rbver="${rbver%%0.dll}"
+		    echo "ruby_${rbver}"
+		    ;;
 	    esac
 	done
 

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [ITA] ruby 3.2.2
  2023-04-22 12:04           ` Daisuke Fujimura
@ 2023-04-23 13:35             ` Jon Turney
  2023-04-23 23:44               ` Daisuke Fujimura
  0 siblings, 1 reply; 18+ messages in thread
From: Jon Turney @ 2023-04-23 13:35 UTC (permalink / raw)
  To: Daisuke Fujimura, cygwin-apps

On 22/04/2023 13:04, Daisuke Fujimura via Cygwin-apps wrote:
>>>>>> 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.

That looks like almost exactly what's needed.

Thank you very much for that!

>>>       - 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?

This is what I get for not trying these things.  I think nesting the 
substitution like that isn't valid in bash, so maybe:

SOVERSION=${VERSION%.*}
ruby_PROVIDES="ruby_${SOVERSION//./}"

actually works?


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [ITA] ruby 3.2.2
  2023-04-23 13:35             ` Jon Turney
@ 2023-04-23 23:44               ` Daisuke Fujimura
  2023-04-24 20:10                 ` Jon Turney
  0 siblings, 1 reply; 18+ messages in thread
From: Daisuke Fujimura @ 2023-04-23 23:44 UTC (permalink / raw)
  To: cygwin-apps

> This is what I get for not trying these things.  I think nesting the
> substitution like that isn't valid in bash, so maybe:
>
> SOVERSION=${VERSION%.*}
> ruby_PROVIDES="ruby_${SOVERSION//./}"
>
> actually works?

It worked. Thank you very much.

```
$ cygport ruby.cygport vars ruby_PROVIDES
declare -- ruby_PROVIDES="ruby_32"
```

- https://cygwin.com/cgit/cygwin-packages/playground/commit/?id=9b448625c2166d5c7310c295bfa4328d24ac5444
- https://github.com/cygwin/scallywag/actions/runs/4780609520/jobs/8498537391


I think I can release ruby-3.2.2-1 without applying the cygport patch,
but is there any problem if I deploy it?

(The cygport patch should not be needed until someone rebuilds the
ruby-* subpackages.)


On Sun, Apr 23, 2023 at 10:35 PM Jon Turney <jon.turney@dronecode.org.uk> wrote:
>
> On 22/04/2023 13:04, Daisuke Fujimura via Cygwin-apps wrote:
> >>>>>> 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.
>
> That looks like almost exactly what's needed.
>
> Thank you very much for that!
>
> >>>       - 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?
>
> This is what I get for not trying these things.  I think nesting the
> substitution like that isn't valid in bash, so maybe:
>
> SOVERSION=${VERSION%.*}
> ruby_PROVIDES="ruby_${SOVERSION//./}"
>
> actually works?
>

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [ITA] ruby 3.2.2
  2023-04-23 23:44               ` Daisuke Fujimura
@ 2023-04-24 20:10                 ` Jon Turney
  2023-04-25  9:56                   ` Daisuke Fujimura
  0 siblings, 1 reply; 18+ messages in thread
From: Jon Turney @ 2023-04-24 20:10 UTC (permalink / raw)
  To: Daisuke Fujimura, cygwin-apps

On 24/04/2023 00:44, Daisuke Fujimura via Cygwin-apps wrote:
>> This is what I get for not trying these things.  I think nesting the
>> substitution like that isn't valid in bash, so maybe:
>>
>> SOVERSION=${VERSION%.*}
>> ruby_PROVIDES="ruby_${SOVERSION//./}"
>>
>> actually works?
> 
> It worked. Thank you very much.
> 
> ```
> $ cygport ruby.cygport vars ruby_PROVIDES
> declare -- ruby_PROVIDES="ruby_32"
> ```
> 
> - https://cygwin.com/cgit/cygwin-packages/playground/commit/?id=9b448625c2166d5c7310c295bfa4328d24ac5444
> - https://github.com/cygwin/scallywag/actions/runs/4780609520/jobs/8498537391
> 
> 
> I think I can release ruby-3.2.2-1 without applying the cygport patch,
> but is there any problem if I deploy it?

I don't think so. Please, go ahead and deploy.

> (The cygport patch should not be needed until someone rebuilds the
> ruby-* subpackages.)

Right. Hopefully I'll get around around to doing a cygport release with 
that change this week.


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [ITA] ruby 3.2.2
  2023-04-24 20:10                 ` Jon Turney
@ 2023-04-25  9:56                   ` Daisuke Fujimura
  2023-04-25 13:52                     ` Jon Turney
  0 siblings, 1 reply; 18+ messages in thread
From: Daisuke Fujimura @ 2023-04-25  9:56 UTC (permalink / raw)
  To: cygwin-apps

> I don't think so. Please, go ahead and deploy.

I tried to deploy twice, but it failed.

First attempt:
- https://github.com/cygwin/scallywag/actions/runs/4791077183

```
ERROR: package 'ruby-tcltk' version '3.2.2-1' has empty install tar
file, but it's not in ['virtual', '_obsolete'] category
ERROR: error while validating merged x86_64 packages for Daisuke Fujimura
SUMMARY: 2 ERROR(s)
```

I fixed it according to the error message.
- https://cygwin.com/cgit/cygwin-packages/ruby/commit/?id=e1bc357d4ca0423b5ec92aaeb3846adf7351efa3


Second attempt:
- https://github.com/cygwin/scallywag/actions/runs/4791758304

```
ERROR: package 'ruby-caca' version '0.99.beta19-4' depends: 'ruby_23',
but nothing satisfies that
ERROR: package 'ruby-marisa' version '0.2.4-2' depends: 'ruby_23', but
nothing satisfies that
ERROR: package 'ruby-marisa' version '0.2.4-3' depends: 'ruby_23', but
nothing satisfies that
ERROR: package 'ruby-openbabel' version '2.3.2-6' depends: 'ruby_23',
but nothing satisfies that
ERROR: package 'ruby-openbabel' version '2.3.2-5' depends: 'ruby_23',
but nothing satisfies that
ERROR: package 'ruby-openwsman' version '2.6.3-3' depends: 'ruby_23',
but nothing satisfies that
ERROR: package 'ruby-openwsman' version '2.6.3-2' depends: 'ruby_23',
but nothing satisfies that
ERROR: package 'ruby-xapian' version '1.2.24-1' depends: 'ruby_23',
but nothing satisfies that
ERROR: package 'ruby-xapian' version '1.4.5-1' depends: 'ruby_23', but
nothing satisfies that
ERROR: package 'ruby-zinnia' version '0.06-8' depends: 'ruby_23', but
nothing satisfies that
ERROR: package 'ruby-zinnia' version '0.06-9' depends: 'ruby_23', but
nothing satisfies that
ERROR: package 'subversion-ruby' version '1.11.1-1' depends:
'ruby_23', but nothing satisfies that
ERROR: x86_64 package set has errors after removing stale packages
ERROR: error while evaluating stale packages for Daisuke Fujimura
SUMMARY: 14 ERROR(s)
```

When I deployed ruby-3.2.2, ruby-2.3.6 (which provides ruby_23) was
moved to the vault, resulting in some ruby-* subpackages being unable
to satisfy the dependency of ruby_23.

To resolve this, the following methods are being considered:

- Do not move ruby-2.3.6 to the vault (I cannot do this myself).
- Rebuild the subpackages.
- Any other methods?

Is there anything I can do to deploy ruby-3.2.2?


On Tue, Apr 25, 2023 at 5:10 AM Jon Turney <jon.turney@dronecode.org.uk> wrote:
>
> On 24/04/2023 00:44, Daisuke Fujimura via Cygwin-apps wrote:
> >> This is what I get for not trying these things.  I think nesting the
> >> substitution like that isn't valid in bash, so maybe:
> >>
> >> SOVERSION=${VERSION%.*}
> >> ruby_PROVIDES="ruby_${SOVERSION//./}"
> >>
> >> actually works?
> >
> > It worked. Thank you very much.
> >
> > ```
> > $ cygport ruby.cygport vars ruby_PROVIDES
> > declare -- ruby_PROVIDES="ruby_32"
> > ```
> >
> > - https://cygwin.com/cgit/cygwin-packages/playground/commit/?id=9b448625c2166d5c7310c295bfa4328d24ac5444
> > - https://github.com/cygwin/scallywag/actions/runs/4780609520/jobs/8498537391
> >
> >
> > I think I can release ruby-3.2.2-1 without applying the cygport patch,
> > but is there any problem if I deploy it?
>
> I don't think so. Please, go ahead and deploy.
>
> > (The cygport patch should not be needed until someone rebuilds the
> > ruby-* subpackages.)
>
> Right. Hopefully I'll get around around to doing a cygport release with
> that change this week.
>

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [ITA] ruby 3.2.2
  2023-04-25  9:56                   ` Daisuke Fujimura
@ 2023-04-25 13:52                     ` Jon Turney
  2023-04-25 21:10                       ` Daisuke Fujimura
  0 siblings, 1 reply; 18+ messages in thread
From: Jon Turney @ 2023-04-25 13:52 UTC (permalink / raw)
  To: Daisuke Fujimura, cygwin-apps

On 25/04/2023 10:56, Daisuke Fujimura via Cygwin-apps wrote:
>> I don't think so. Please, go ahead and deploy.
> 
> I tried to deploy twice, but it failed.
> 
> First attempt:
> - https://github.com/cygwin/scallywag/actions/runs/4791077183
> 
> ```
> ERROR: package 'ruby-tcltk' version '3.2.2-1' has empty install tar
> file, but it's not in ['virtual', '_obsolete'] category
> ERROR: error while validating merged x86_64 packages for Daisuke Fujimura
> SUMMARY: 2 ERROR(s)
> ```
> 
> I fixed it according to the error message.
> - https://cygwin.com/cgit/cygwin-packages/ruby/commit/?id=e1bc357d4ca0423b5ec92aaeb3846adf7351efa3
> 

Thanks.

If you subsequently adopt the ruby-tk package, please remember to add 
ruby_tk_OBSOLETES="ruby-tcltk" there (as that's the preferred way to 
record obsoletions nowadays)

> Second attempt:
> - https://github.com/cygwin/scallywag/actions/runs/4791758304
> 
> ```
> ERROR: package 'ruby-caca' version '0.99.beta19-4' depends: 'ruby_23',
> but nothing satisfies that
> ERROR: package 'ruby-marisa' version '0.2.4-2' depends: 'ruby_23', but
> nothing satisfies that
> ERROR: package 'ruby-marisa' version '0.2.4-3' depends: 'ruby_23', but
> nothing satisfies that
> ERROR: package 'ruby-openbabel' version '2.3.2-6' depends: 'ruby_23',
> but nothing satisfies that
> ERROR: package 'ruby-openbabel' version '2.3.2-5' depends: 'ruby_23',
> but nothing satisfies that
> ERROR: package 'ruby-openwsman' version '2.6.3-3' depends: 'ruby_23',
> but nothing satisfies that
> ERROR: package 'ruby-openwsman' version '2.6.3-2' depends: 'ruby_23',
> but nothing satisfies that
> ERROR: package 'ruby-xapian' version '1.2.24-1' depends: 'ruby_23',
> but nothing satisfies that
> ERROR: package 'ruby-xapian' version '1.4.5-1' depends: 'ruby_23', but
> nothing satisfies that
> ERROR: package 'ruby-zinnia' version '0.06-8' depends: 'ruby_23', but
> nothing satisfies that
> ERROR: package 'ruby-zinnia' version '0.06-9' depends: 'ruby_23', but
> nothing satisfies that
> ERROR: package 'subversion-ruby' version '1.11.1-1' depends:
> 'ruby_23', but nothing satisfies that
> ERROR: x86_64 package set has errors after removing stale packages
> ERROR: error while evaluating stale packages for Daisuke Fujimura
> SUMMARY: 14 ERROR(s)
> ```
> 
> When I deployed ruby-3.2.2, ruby-2.3.6 (which provides ruby_23) was
> moved to the vault, resulting in some ruby-* subpackages being unable
> to satisfy the dependency of ruby_23.
> 
> To resolve this, the following methods are being considered:
> 
> - Do not move ruby-2.3.6 to the vault (I cannot do this myself).
> - Rebuild the subpackages.
> - Any other methods?

Yeah, calm needs to learn how to deal with this scenario better.

Probably what should actually happen here is that these packages get 
expired at the same time that the last thing providing ruby_23 gets 
expired (as they can no longer be installed and thus keeping them is a 
bit pointless)

> Is there anything I can do to deploy ruby-3.2.2?

I applied my usual workaround (which is adding 'ruby_23' to an internal 
list of things which are allowed to not be provided), and set the job to 
rerun, which seems to have succeeded.


Apologies for the inconvenience, and thanks again for updating ruby!


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [ITA] ruby 3.2.2
  2023-04-25 13:52                     ` Jon Turney
@ 2023-04-25 21:10                       ` Daisuke Fujimura
  2023-04-25 22:13                         ` Jon Turney
  0 siblings, 1 reply; 18+ messages in thread
From: Daisuke Fujimura @ 2023-04-25 21:10 UTC (permalink / raw)
  To: cygwin-apps

Thank you for your response.

Following the announcement of the previous update, I would like to
note that the binaries need to be recompiled.
- https://www.mail-archive.com/cygwin-announce@cygwin.com/msg08753.html

> I applied my usual workaround (which is adding 'ruby_23' to an internal
> list of things which are allowed to not be provided), and set the job to
> rerun, which seems to have succeeded.

Does this mean adding `ruby_23` to `depend2` in some packages in setup.ini?

I would like to know more about the specifications of setup.ini. Is
there any documentation available somewhere?


On Tue, Apr 25, 2023 at 10:52 PM Jon Turney <jon.turney@dronecode.org.uk> wrote:
>
> On 25/04/2023 10:56, Daisuke Fujimura via Cygwin-apps wrote:
> >> I don't think so. Please, go ahead and deploy.
> >
> > I tried to deploy twice, but it failed.
> >
> > First attempt:
> > - https://github.com/cygwin/scallywag/actions/runs/4791077183
> >
> > ```
> > ERROR: package 'ruby-tcltk' version '3.2.2-1' has empty install tar
> > file, but it's not in ['virtual', '_obsolete'] category
> > ERROR: error while validating merged x86_64 packages for Daisuke Fujimura
> > SUMMARY: 2 ERROR(s)
> > ```
> >
> > I fixed it according to the error message.
> > - https://cygwin.com/cgit/cygwin-packages/ruby/commit/?id=e1bc357d4ca0423b5ec92aaeb3846adf7351efa3
> >
>
> Thanks.
>
> If you subsequently adopt the ruby-tk package, please remember to add
> ruby_tk_OBSOLETES="ruby-tcltk" there (as that's the preferred way to
> record obsoletions nowadays)
>
> > Second attempt:
> > - https://github.com/cygwin/scallywag/actions/runs/4791758304
> >
> > ```
> > ERROR: package 'ruby-caca' version '0.99.beta19-4' depends: 'ruby_23',
> > but nothing satisfies that
> > ERROR: package 'ruby-marisa' version '0.2.4-2' depends: 'ruby_23', but
> > nothing satisfies that
> > ERROR: package 'ruby-marisa' version '0.2.4-3' depends: 'ruby_23', but
> > nothing satisfies that
> > ERROR: package 'ruby-openbabel' version '2.3.2-6' depends: 'ruby_23',
> > but nothing satisfies that
> > ERROR: package 'ruby-openbabel' version '2.3.2-5' depends: 'ruby_23',
> > but nothing satisfies that
> > ERROR: package 'ruby-openwsman' version '2.6.3-3' depends: 'ruby_23',
> > but nothing satisfies that
> > ERROR: package 'ruby-openwsman' version '2.6.3-2' depends: 'ruby_23',
> > but nothing satisfies that
> > ERROR: package 'ruby-xapian' version '1.2.24-1' depends: 'ruby_23',
> > but nothing satisfies that
> > ERROR: package 'ruby-xapian' version '1.4.5-1' depends: 'ruby_23', but
> > nothing satisfies that
> > ERROR: package 'ruby-zinnia' version '0.06-8' depends: 'ruby_23', but
> > nothing satisfies that
> > ERROR: package 'ruby-zinnia' version '0.06-9' depends: 'ruby_23', but
> > nothing satisfies that
> > ERROR: package 'subversion-ruby' version '1.11.1-1' depends:
> > 'ruby_23', but nothing satisfies that
> > ERROR: x86_64 package set has errors after removing stale packages
> > ERROR: error while evaluating stale packages for Daisuke Fujimura
> > SUMMARY: 14 ERROR(s)
> > ```
> >
> > When I deployed ruby-3.2.2, ruby-2.3.6 (which provides ruby_23) was
> > moved to the vault, resulting in some ruby-* subpackages being unable
> > to satisfy the dependency of ruby_23.
> >
> > To resolve this, the following methods are being considered:
> >
> > - Do not move ruby-2.3.6 to the vault (I cannot do this myself).
> > - Rebuild the subpackages.
> > - Any other methods?
>
> Yeah, calm needs to learn how to deal with this scenario better.
>
> Probably what should actually happen here is that these packages get
> expired at the same time that the last thing providing ruby_23 gets
> expired (as they can no longer be installed and thus keeping them is a
> bit pointless)
>
> > Is there anything I can do to deploy ruby-3.2.2?
>
> I applied my usual workaround (which is adding 'ruby_23' to an internal
> list of things which are allowed to not be provided), and set the job to
> rerun, which seems to have succeeded.
>
>
> Apologies for the inconvenience, and thanks again for updating ruby!
>

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [ITA] ruby 3.2.2
  2023-04-25 21:10                       ` Daisuke Fujimura
@ 2023-04-25 22:13                         ` Jon Turney
  2023-04-25 22:37                           ` Daisuke Fujimura
  0 siblings, 1 reply; 18+ messages in thread
From: Jon Turney @ 2023-04-25 22:13 UTC (permalink / raw)
  To: Daisuke Fujimura, cygwin-apps

On 25/04/2023 22:10, Daisuke Fujimura via Cygwin-apps wrote:
> Thank you for your response.
> 
> Following the announcement of the previous update, I would like to
> note that the binaries need to be recompiled.
> - https://www.mail-archive.com/cygwin-announce-rDBXBDvO6BXQT0dZR+AlfA@public.gmane.org/msg08753.html

Yeah, I'm not quite sure what that statement means. It's not literally 
"every single binary in cygwin"

I don't really know enough about ruby be sure how to interpret it. 
There's some subset of packages which need rebuilding (as discussed 
below), and maybe any locally installed gems which have binaries?

>> I applied my usual workaround (which is adding 'ruby_23' to an internal
>> list of things which are allowed to not be provided), and set the job to
>> rerun, which seems to have succeeded.
> 
> Does this mean adding `ruby_23` to `depend2` in some packages in setup.ini?

Not really.

The failure was a consequence of that. As previously mentioned, using 
some special tools, I've retroactively added appropriate ruby_xy 
requires: in the .hint files for existing packages which:

* install into /usr/lib/ruby/vendor_ruby/x.y/
* install into /usr/lib/gems/ruby/x.y/
* contain executable files linked to cygrubyxy0.dll because they embed a 
ruby interpreter (which seems to be just kross-ruby, kf5-kross-ruby and 
weechat-ruby)

> I would like to know more about the specifications of setup.ini. Is
> there any documentation available somewhere?

Sure, the documentation is at:

https://sourceware.org/cygwin-apps/setup.ini.html

Feel free to ask if you have further questions not covered by that.


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [ITA] ruby 3.2.2
  2023-04-25 22:13                         ` Jon Turney
@ 2023-04-25 22:37                           ` Daisuke Fujimura
  0 siblings, 0 replies; 18+ messages in thread
From: Daisuke Fujimura @ 2023-04-25 22:37 UTC (permalink / raw)
  To: cygwin-apps

> Yeah, I'm not quite sure what that statement means. It's not literally
> "every single binary in cygwin"
>
> I don't really know enough about ruby be sure how to interpret it.
> There's some subset of packages which need rebuilding (as discussed
> below), and maybe any locally installed gems which have binaries?

As you pointed out, the sub-packages and gems installed locally using
the gem command that depend on cygruby*0.dll will be subject to
recompilation.

I apologize for the insufficient explanation.


On Wed, Apr 26, 2023 at 7:13 AM Jon Turney <jon.turney@dronecode.org.uk> wrote:
>
> On 25/04/2023 22:10, Daisuke Fujimura via Cygwin-apps wrote:
> > Thank you for your response.
> >
> > Following the announcement of the previous update, I would like to
> > note that the binaries need to be recompiled.
> > - https://www.mail-archive.com/cygwin-announce-rDBXBDvO6BXQT0dZR+AlfA@public.gmane.org/msg08753.html
>
> Yeah, I'm not quite sure what that statement means. It's not literally
> "every single binary in cygwin"
>
> I don't really know enough about ruby be sure how to interpret it.
> There's some subset of packages which need rebuilding (as discussed
> below), and maybe any locally installed gems which have binaries?
>
> >> I applied my usual workaround (which is adding 'ruby_23' to an internal
> >> list of things which are allowed to not be provided), and set the job to
> >> rerun, which seems to have succeeded.
> >
> > Does this mean adding `ruby_23` to `depend2` in some packages in setup.ini?
>
> Not really.
>
> The failure was a consequence of that. As previously mentioned, using
> some special tools, I've retroactively added appropriate ruby_xy
> requires: in the .hint files for existing packages which:
>
> * install into /usr/lib/ruby/vendor_ruby/x.y/
> * install into /usr/lib/gems/ruby/x.y/
> * contain executable files linked to cygrubyxy0.dll because they embed a
> ruby interpreter (which seems to be just kross-ruby, kf5-kross-ruby and
> weechat-ruby)
>
> > I would like to know more about the specifications of setup.ini. Is
> > there any documentation available somewhere?
>
> Sure, the documentation is at:
>
> https://sourceware.org/cygwin-apps/setup.ini.html
>
> Feel free to ask if you have further questions not covered by that.
>

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [GOLDSTAR] Re: [ITA] ruby 3.2.2
  2023-04-19 22:42 [ITA] ruby 3.2.2 Daisuke Fujimura
  2023-04-20  3:28 ` Marco Atzeri
@ 2023-06-08 14:38 ` Jon Turney
  2023-06-13 15:04   ` Andrew Schulman
  1 sibling, 1 reply; 18+ messages in thread
From: Jon Turney @ 2023-06-08 14:38 UTC (permalink / raw)
  To: cygwin-apps; +Cc: Schulman, Andrew

On 19/04/2023 23: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
> 
> Packages, logs:
> - https://github.com/cygwin/scallywag/actions/runs/4743191979
	
According to our rules, Fujimura-san deserves one of our literally 
priceless gold stars for adopting Ruby.

... and several more, arranged into a tasteful tiara or something, for 
adopting and updating various ruby language packages.




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [GOLDSTAR] Re: [ITA] ruby 3.2.2
  2023-06-08 14:38 ` [GOLDSTAR] " Jon Turney
@ 2023-06-13 15:04   ` Andrew Schulman
  2023-06-13 23:24     ` Daisuke Fujimura
  0 siblings, 1 reply; 18+ messages in thread
From: Andrew Schulman @ 2023-06-13 15:04 UTC (permalink / raw)
  To: cygwin-apps

> On 19/04/2023 23: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
> > 
> > Packages, logs:
> > - https://github.com/cygwin/scallywag/actions/runs/4743191979
> 	
> According to our rules, Fujimura-san deserves one of our literally 
> priceless gold stars for adopting Ruby.
> 
> ... and several more, arranged into a tasteful tiara or something, for 
> adopting and updating various ruby language packages.

Awarded! https://cygwin.com/goldstars/#DF


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [GOLDSTAR] Re: [ITA] ruby 3.2.2
  2023-06-13 15:04   ` Andrew Schulman
@ 2023-06-13 23:24     ` Daisuke Fujimura
  0 siblings, 0 replies; 18+ messages in thread
From: Daisuke Fujimura @ 2023-06-13 23:24 UTC (permalink / raw)
  To: cygwin-apps

Thank you. I am deeply grateful and happy to receive this award.

On Wed, Jun 14, 2023 at 12:05 AM Andrew Schulman via Cygwin-apps
<cygwin-apps@cygwin.com> wrote:
>
> > On 19/04/2023 23: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
> > >
> > > Packages, logs:
> > > - https://github.com/cygwin/scallywag/actions/runs/4743191979
> >
> > According to our rules, Fujimura-san deserves one of our literally
> > priceless gold stars for adopting Ruby.
> >
> > ... and several more, arranged into a tasteful tiara or something, for
> > adopting and updating various ruby language packages.
>
> Awarded! https://cygwin.com/goldstars/#DF
>

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2023-06-13 23:24 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-04-19 22:42 [ITA] ruby 3.2.2 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
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

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).