ruby: update to 2.7.1 11851/head
authorLuiz Angelo Daros de Luca <luizluca@gmail.com>
Tue, 31 Dec 2019 01:03:18 +0000 (22:03 -0300)
committerLuiz Angelo Daros de Luca <luizluca@gmail.com>
Tue, 14 Apr 2020 21:57:36 +0000 (18:57 -0300)
New subpackages (reflect of ongoing ruby gemification)
- ruby-benchmark (from ruby-debuglib)
- ruby-delegate (from ruby-misc)
- ruby-getoptlong (from ruby-misc)
- ruby-net-pop (from ruby-net)
- ruby-net-imap (from ruby-net)
- ruby-observer (from ruby-patterns, now gone)
- ruby-open3 (from ruby-misc)
- ruby-readline-ext (was ruby-readline, while ruby-readline now selects either
    ruby-readline-ext or ruby-reline)
- ruby-reline (alternative to ruby-readline-ext as pure ruby)
- ruby-singleton (from ruby-patterns, now gone)
- ruby-timeout (from ruby-multithread)

Dropped subpackages:
- ruby-cmath (gone in 2.7.0)
- ruby-e2mmap (gone in 2.7.0)
- ruby-patterns (splitted into ruby-observer, ruby-singleton)
- ruby-scanf (gone in 2.7.0)
- ruby-shell (gone in 2.7.0)
- ruby-sync (gone in 2.7.0)
- ruby-thwait (gone in 2.7.0)

Ruby 2.7.0 also dropped profile.rb and profiler.rb (they were in ruby-debuglib)

Patches changes:
- Dropped patch 001_fix_isnan_isinf_finite_with_uclibc.patch (now in release)
- Added 100-musl.patch, fixing mainly coroutine implementation selection

Helper scripts changes:
- ruby_missingfiles: do not ignore ruby-dev files
- ruby_find_pkgsdeps: better detect circular dependencies

Ruby 2.7.1 fixes these security issues:

* CVE-2020-10663: Unsafe Object Creation Vulnerability in JSON (Additional fix)
* CVE-2020-10933: Heap exposure vulnerability in the socket library

Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
lang/ruby/Makefile
lang/ruby/patches/001_fix_isnan_isinf_finite_with_uclibc.patch [deleted file]
lang/ruby/patches/100-musl.patch [new file with mode: 0644]
lang/ruby/ruby_find_pkgsdeps
lang/ruby/ruby_missingfiles

index 07bf5f51762eb3857361664d95cfef5181b30de3..d6aa2c76f168c9acb4786c1fa2954514c975f59a 100644 (file)
@@ -1,6 +1,6 @@
 #
 # Copyright (C) 2006-2016 OpenWrt.org
-# Copyright (C) 2017-2018 Luiz Angelo Daros de Luca <luizluca@gmail.com>
+# Copyright (C) 2017-2020 Luiz Angelo Daros de Luca <luizluca@gmail.com>
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ruby
-PKG_VERSION:=2.6.5
-PKG_RELEASE:=3
+PKG_VERSION:=2.7.1
+PKG_RELEASE:=1
 
 # First two numbes
 PKG_ABI_VERSION:=$(subst $(space),.,$(wordlist 1, 2, $(subst .,$(space),$(PKG_VERSION))))
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://cache.ruby-lang.org/pub/ruby/$(PKG_ABI_VERSION)/
-PKG_HASH:=d5d6da717fd48524596f9b78ac5a2eeb9691753da5c06923a6c31190abe01a62
+PKG_HASH:=b224f9844646cc92765df8288a46838511c1cec5b550d8874bd4686a904fcee7
 PKG_MAINTAINER:=Luiz Angelo Daros de Luca <luizluca@gmail.com>
 PKG_LICENSE:=BSD-2-Clause
 PKG_LICENSE_FILES:=COPYING
@@ -186,7 +186,7 @@ endef
 define Package/ruby-dev
 $(call Package/ruby/Default)
   TITLE+= (dev files)
-  DEPENDS:=+libruby
+  DEPENDS:=+libruby ruby
 endef
 define Package/ruby-dev/description
   Header files for compiling extension modules for the Ruby $(PKG_ABI_VERSION)
@@ -217,9 +217,15 @@ define Package/ruby-stdlib/install
        /bin/true
 endef
 
+define Package/ruby-benchmark/files
+/usr/lib/ruby/$(PKG_ABI_VERSION)/benchmark.rb
+/usr/lib/ruby/$(PKG_ABI_VERSION)/benchmark/
+/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/gems/benchmark-*/
+/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/specifications/default/benchmark-*.gemspec
+endef
+
 define Package/ruby-bigdecimal/files
 /usr/lib/ruby/$(PKG_ABI_VERSION)/*/bigdecimal.so
-/usr/lib/ruby/$(PKG_ABI_VERSION)/*/bigdecimal/
 /usr/lib/ruby/$(PKG_ABI_VERSION)/bigdecimal/
 /usr/lib/ruby/$(PKG_ABI_VERSION)/bigdecimal.rb
 /usr/lib/ruby/gems/$(PKG_ABI_VERSION)/specifications/default/bigdecimal-*.gemspec
@@ -233,16 +239,13 @@ define Package/ruby-bundler/files
 endef
 
 define Package/ruby-cgi/files
-/usr/lib/ruby/$(PKG_ABI_VERSION)/cgi
 /usr/lib/ruby/$(PKG_ABI_VERSION)/cgi.rb
+/usr/lib/ruby/$(PKG_ABI_VERSION)/cgi/
+/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/gems/cgi-*/
+/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/specifications/default/cgi-*.gemspec
 /usr/lib/ruby/$(PKG_ABI_VERSION)/*/cgi/escape.so
 endef
 
-define Package/ruby-cmath/files
-/usr/lib/ruby/$(PKG_ABI_VERSION)/cmath.rb
-/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/specifications/default/cmath-*.gemspec
-endef
-
 define Package/ruby-csv/files
 /usr/lib/ruby/$(PKG_ABI_VERSION)/csv.rb
 /usr/lib/ruby/$(PKG_ABI_VERSION)/csv/
@@ -266,25 +269,22 @@ define Package/ruby-dbm/files
 endef
 
 define Package/ruby-debuglib/files
-/usr/lib/ruby/$(PKG_ABI_VERSION)/profile.rb
-/usr/lib/ruby/$(PKG_ABI_VERSION)/profiler.rb
 /usr/lib/ruby/$(PKG_ABI_VERSION)/debug.rb
-/usr/lib/ruby/$(PKG_ABI_VERSION)/benchmark.rb
 /usr/lib/ruby/$(PKG_ABI_VERSION)/*/objspace.so
 endef
 
+define Package/ruby-delegate/files
+/usr/lib/ruby/$(PKG_ABI_VERSION)/delegate.rb
+/usr/lib/ruby/$(PKG_ABI_VERSION)/delegate/
+/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/gems/delegate-*/
+/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/specifications/default/delegate-*.gemspec
+endef
+
 define Package/ruby-did-you-mean/files
-/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/specifications/did_you_mean-*.gemspec
+/usr/lib/ruby/$(PKG_ABI_VERSION)/did_you_mean.rb
+/usr/lib/ruby/$(PKG_ABI_VERSION)/did_you_mean/
 /usr/lib/ruby/gems/$(PKG_ABI_VERSION)/gems/did_you_mean-*/
-endef
-define Package/ruby-did-you-mean/files-excluded
-/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/gems/did_you_mean-*/benchmark
-/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/gems/did_you_mean-*/doc
-/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/gems/did_you_mean-*/evaluation
-/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/gems/did_you_mean-*/test
-/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/gems/did_you_mean-*/*.md
-/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/gems/did_you_mean-*/*.txt
-/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/gems/did_you_mean-*/.travis.yml
+/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/specifications/default/did_you_mean-*.gemspec
 endef
 
 define Package/ruby-digest/description
@@ -324,12 +324,6 @@ define Package/ruby-enc/files
 /usr/lib/ruby/$(PKG_ABI_VERSION)/*/enc/euc_jp.so
 endef
 
-define Package/ruby-e2mmap/files
-/usr/lib/ruby/$(PKG_ABI_VERSION)/e2mmap.rb
-/usr/lib/ruby/$(PKG_ABI_VERSION)/e2mmap/
-/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/specifications/default/e2mmap-*.gemspec
-endef
-
 define Package/ruby-enc-extra/files
 /usr/lib/ruby/$(PKG_ABI_VERSION)/*/enc
 endef
@@ -369,7 +363,7 @@ endef
 
 define Package/ruby-fileutils/files
 /usr/lib/ruby/$(PKG_ABI_VERSION)/fileutils.rb
-/usr/lib/ruby/$(PKG_ABI_VERSION)/fileutils/
+/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/gems/fileutils-*/
 /usr/lib/ruby/gems/$(PKG_ABI_VERSION)/specifications/default/fileutils-*.gemspec
 endef
 
@@ -405,6 +399,12 @@ define Package/ruby-gems/install
        $(call RubyBuildPackage/install,gems,$(1))
 endef
 
+define Package/ruby-getoptlong/files
+/usr/lib/ruby/$(PKG_ABI_VERSION)/getoptlong.rb
+/usr/lib/ruby/$(PKG_ABI_VERSION)/getoptlong/
+/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/gems/getoptlong-*/
+/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/specifications/default/getoptlong-*.gemspec
+endef
 
 define Package/ruby-io-console/files
 /usr/lib/ruby/$(PKG_ABI_VERSION)/*/io/console.so
@@ -441,6 +441,7 @@ endef
 
 define Package/ruby-logger/files
 /usr/lib/ruby/$(PKG_ABI_VERSION)/logger.rb
+/usr/lib/ruby/$(PKG_ABI_VERSION)/logger/
 /usr/lib/ruby/$(PKG_ABI_VERSION)/syslog/logger.rb
 /usr/lib/ruby/$(PKG_ABI_VERSION)/*/syslog.so
 /usr/lib/ruby/gems/$(PKG_ABI_VERSION)/specifications/default/logger-*.gemspec
@@ -467,10 +468,7 @@ define Package/ruby-misc/files
 /usr/lib/ruby/$(PKG_ABI_VERSION)/abbrev.rb
 /usr/lib/ruby/$(PKG_ABI_VERSION)/base64.rb
 /usr/lib/ruby/$(PKG_ABI_VERSION)/coverage.rb
-/usr/lib/ruby/$(PKG_ABI_VERSION)/delegate.rb
 /usr/lib/ruby/$(PKG_ABI_VERSION)/expect.rb
-/usr/lib/ruby/$(PKG_ABI_VERSION)/getoptlong.rb
-/usr/lib/ruby/$(PKG_ABI_VERSION)/open3.rb
 /usr/lib/ruby/$(PKG_ABI_VERSION)/securerandom.rb
 /usr/lib/ruby/$(PKG_ABI_VERSION)/set.rb
 /usr/lib/ruby/$(PKG_ABI_VERSION)/shellwords.rb
@@ -489,7 +487,7 @@ endef
 
 define Package/ruby-multithread/files
 /usr/lib/ruby/$(PKG_ABI_VERSION)/monitor.rb
-/usr/lib/ruby/$(PKG_ABI_VERSION)/timeout.rb
+/usr/lib/ruby/$(PKG_ABI_VERSION)/*/monitor.so
 /usr/lib/ruby/$(PKG_ABI_VERSION)/*/io/wait.so
 /usr/lib/ruby/$(PKG_ABI_VERSION)/*/io/nonblock.so
 endef
@@ -503,6 +501,26 @@ define Package/ruby-net/files
 /usr/lib/ruby/$(PKG_ABI_VERSION)/open-uri.rb
 /usr/lib/ruby/$(PKG_ABI_VERSION)/net/*
 endef
+define Package/ruby-net/files-excluded
+/usr/lib/ruby/$(PKG_ABI_VERSION)/net/pop.rb
+/usr/lib/ruby/$(PKG_ABI_VERSION)/net/pop/*
+/usr/lib/ruby/$(PKG_ABI_VERSION)/net/smtp.rb
+/usr/lib/ruby/$(PKG_ABI_VERSION)/net/smtp/*
+endef
+
+define Package/ruby-net-pop/files
+/usr/lib/ruby/$(PKG_ABI_VERSION)/net/pop.rb
+/usr/lib/ruby/$(PKG_ABI_VERSION)/net/pop/
+/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/gems/net-pop-*/
+/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/specifications/default/net-pop-*.gemspec
+endef
+
+define Package/ruby-net-smtp/files
+/usr/lib/ruby/$(PKG_ABI_VERSION)/net/smtp.rb
+/usr/lib/ruby/$(PKG_ABI_VERSION)/net/smtp/
+/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/gems/net-smtp-*/
+/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/specifications/default/net-smtp-*.gemspec
+endef
 
 define Package/ruby-net-telnet/files
 /usr/lib/ruby/gems/$(PKG_ABI_VERSION)/specifications/net-telnet-*.gemspec
@@ -519,6 +537,20 @@ define Package/ruby-nkf/files
 /usr/lib/ruby/$(PKG_ABI_VERSION)/*/nkf.so
 endef
 
+define Package/ruby-observer/files
+/usr/lib/ruby/$(PKG_ABI_VERSION)/observer.rb
+/usr/lib/ruby/$(PKG_ABI_VERSION)/observer/
+/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/gems/observer-*/
+/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/specifications/default/observer-*.gemspec
+endef
+
+define Package/ruby-open3/files
+/usr/lib/ruby/$(PKG_ABI_VERSION)/open3.rb
+/usr/lib/ruby/$(PKG_ABI_VERSION)/open3/
+/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/gems/open3-*/
+/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/specifications/default/open3-*.gemspec
+endef
+
 define Package/ruby-openssl/files
 /usr/lib/ruby/$(PKG_ABI_VERSION)/openssl
 /usr/lib/ruby/$(PKG_ABI_VERSION)/openssl.rb
@@ -534,14 +566,10 @@ endef
 
 define Package/ruby-ostruct/files
 /usr/lib/ruby/$(PKG_ABI_VERSION)/ostruct.rb
+/usr/lib/ruby/$(PKG_ABI_VERSION)/ostruct/
 /usr/lib/ruby/gems/$(PKG_ABI_VERSION)/specifications/default/ostruct-*.gemspec
 endef
 
-define Package/ruby-patterns/files
-/usr/lib/ruby/$(PKG_ABI_VERSION)/observer.rb
-/usr/lib/ruby/$(PKG_ABI_VERSION)/singleton.rb
-endef
-
 define Package/ruby-powerassert/files
 /usr/lib/ruby/gems/$(PKG_ABI_VERSION)/specifications/power_assert-*.gemspec
 /usr/lib/ruby/gems/$(PKG_ABI_VERSION)/gems/power_assert-*
@@ -563,6 +591,9 @@ endef
 
 define Package/ruby-pstore/files
 /usr/lib/ruby/$(PKG_ABI_VERSION)/pstore.rb
+/usr/lib/ruby/$(PKG_ABI_VERSION)/pstore/
+/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/gems/pstore-*/
+/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/specifications/default/pstore-*.gemspec
 endef
 
 define Package/ruby-psych/files
@@ -573,8 +604,18 @@ define Package/ruby-psych/files
 endef
 
 define Package/ruby-racc/files
+/usr/lib/ruby/$(PKG_ABI_VERSION)/racc.rb
 /usr/lib/ruby/$(PKG_ABI_VERSION)/racc
 /usr/lib/ruby/$(PKG_ABI_VERSION)/*/racc/*.so
+/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/gems/racc-*/
+/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/specifications/default/racc-*.gemspec
+endef
+define Package/ruby-racc/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/racc $(1)/usr/bin/;
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/racc2y $(1)/usr/bin/;
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/y2racc $(1)/usr/bin/;
+       $(call RubyBuildPackage/install,racc,$(1))
 endef
 
 define Package/ruby-rake/files
@@ -602,11 +643,6 @@ define Package/ruby-rdoc/files
 /usr/lib/ruby/gems/$(PKG_ABI_VERSION)/gems/rdoc-*
 /usr/lib/ruby/gems/$(PKG_ABI_VERSION)/specifications/default/rdoc-*.gemspec
 endef
-define Package/ruby-rdoc/files-excluded
-/usr/lib/ruby/$(PKG_ABI_VERSION)/rdoc/test_case.rb
-/usr/lib/ruby/$(PKG_ABI_VERSION)/rdoc/markup/formatter_test_case.rb
-/usr/lib/ruby/$(PKG_ABI_VERSION)/rdoc/markup/text_formatter_test_case.rb
-endef
 define Package/ruby-rdoc/install
        $(INSTALL_DIR) $(1)/usr/bin
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/rdoc $(1)/usr/bin/
@@ -615,7 +651,22 @@ define Package/ruby-rdoc/install
 endef
 
 define Package/ruby-readline/files
+/usr/lib/ruby/$(PKG_ABI_VERSION)/readline.rb
+/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/gems/readline-0*
+/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/specifications/default/readline-0*.gemspec
+endef
+
+define Package/ruby-readline-ext/files
 /usr/lib/ruby/$(PKG_ABI_VERSION)/*/readline.so
+/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/gems/readline-ext-*
+/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/specifications/default/readline-ext-*.gemspec
+endef
+
+define Package/ruby-reline/files
+/usr/lib/ruby/$(PKG_ABI_VERSION)/reline.rb
+/usr/lib/ruby/$(PKG_ABI_VERSION)/reline
+/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/gems/reline-*
+/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/specifications/default/reline-*.gemspec
 endef
 
 define Package/ruby-rexml/files
@@ -639,20 +690,16 @@ define Package/ruby-rss/files
 /usr/lib/ruby/gems/$(PKG_ABI_VERSION)/specifications/default/rss-*.gemspec
 endef
 
-define Package/ruby-scanf/files
-/usr/lib/ruby/$(PKG_ABI_VERSION)/scanf.rb
-/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/specifications/default/scanf-*.gemspec
-endef
-
 define Package/ruby-sdbm/files
 /usr/lib/ruby/$(PKG_ABI_VERSION)/*/sdbm.so
 /usr/lib/ruby/gems/$(PKG_ABI_VERSION)/specifications/default/sdbm-*.gemspec
 endef
 
-define Package/ruby-shell/files
-/usr/lib/ruby/$(PKG_ABI_VERSION)/shell.rb
-/usr/lib/ruby/$(PKG_ABI_VERSION)/shell
-/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/specifications/default/shell-*.gemspec
+define Package/ruby-singleton/files
+/usr/lib/ruby/$(PKG_ABI_VERSION)/singleton.rb
+/usr/lib/ruby/$(PKG_ABI_VERSION)/singleton/
+/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/gems/singleton-*
+/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/specifications/default/singleton-*.gemspec
 endef
 
 define Package/ruby-socket/files
@@ -672,11 +719,6 @@ define Package/ruby-strscan/files
 /usr/lib/ruby/gems/$(PKG_ABI_VERSION)/specifications/default/strscan-*.gemspec
 endef
 
-define Package/ruby-sync/files
-/usr/lib/ruby/$(PKG_ABI_VERSION)/sync.rb
-/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/specifications/default/sync-*.gemspec
-endef
-
 define Package/ruby-testunit/files
 /usr/lib/ruby/gems/$(PKG_ABI_VERSION)/specifications/test-unit-*.gemspec
 /usr/lib/ruby/gems/$(PKG_ABI_VERSION)/gems/test-unit-*
@@ -692,10 +734,11 @@ define Package/ruby-time/files
 /usr/lib/ruby/$(PKG_ABI_VERSION)/time.rb
 endef
 
-define Package/ruby-thwait/files
-/usr/lib/ruby/$(PKG_ABI_VERSION)/thwait.rb
-/usr/lib/ruby/$(PKG_ABI_VERSION)/thwait/
-/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/specifications/default/thwait-*.gemspec
+define Package/ruby-timeout/files
+/usr/lib/ruby/$(PKG_ABI_VERSION)/timeout.rb
+/usr/lib/ruby/$(PKG_ABI_VERSION)/timeout/
+/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/gems/timeout-*
+/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/specifications/default/timeout-*.gemspec
 endef
 
 define Package/ruby-tracer/files
@@ -711,6 +754,8 @@ endef
 define Package/ruby-uri/files
 /usr/lib/ruby/$(PKG_ABI_VERSION)/uri.rb
 /usr/lib/ruby/$(PKG_ABI_VERSION)/uri
+/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/gems/uri-*/
+/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/specifications/default/uri-*.gemspec
 endef
 
 define Package/ruby-webrick/files
@@ -732,6 +777,8 @@ endef
 define Package/ruby-yaml/files
 /usr/lib/ruby/$(PKG_ABI_VERSION)/yaml
 /usr/lib/ruby/$(PKG_ABI_VERSION)/yaml.rb
+/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/gems/yaml-*/
+/usr/lib/ruby/gems/$(PKG_ABI_VERSION)/specifications/default/yaml-*.gemspec
 endef
 
 define Package/ruby-zlib/files
@@ -810,75 +857,79 @@ endef
 $(eval $(call BuildPackage,libruby))
 $(eval $(call BuildPackage,ruby))
 $(eval $(call BuildPackage,ruby-dev))
+$(eval $(call RubyBuildPackage,benchmark,Performance benchmarking library,))
 $(eval $(call RubyBuildPackage,bigdecimal,Arbitrary-precision decimal floating-point library,))
-$(eval $(call RubyBuildPackage,bundler,Manage dependencies,))
+$(eval $(call RubyBuildPackage,bundler,Manage dependencies,+ruby-irb +ruby-openssl +ruby-readline))
 $(eval $(call RubyBuildPackage,cgi,CGI support toolkit,+ruby-filelib +ruby-pstore +ruby-stringio))
-$(eval $(call RubyBuildPackage,cmath,Trigonometric and transcendental functions for complex numbers,))
 $(eval $(call RubyBuildPackage,csv,CSV Reading and Writing,+ruby-date +ruby-forwardable +ruby-misc +ruby-stringio +ruby-strscan))
 $(eval $(call RubyBuildPackage,date,Comparable module for handling dates,))
 $(eval $(call RubyBuildPackage,dbm,Wrapper for the UNIX-style Database Manager Library,+libdb47))
 $(eval $(call RubyBuildPackage,debuglib,debug library,+ruby-filelib +ruby-prettyprint +ruby-tracer))
+$(eval $(call RubyBuildPackage,delegate,lib to delegate method calls to an object,))
 $(eval $(call RubyBuildPackage,did-you-mean,did you mean? experience,+ruby-misc))
 $(eval $(call RubyBuildPackage,digest,Digest Library,+RUBY_DIGEST_USE_OPENSSL:libopenssl))
-$(eval $(call RubyBuildPackage,drb,distributed object system,+ruby-filelib +ruby-ipaddr +ruby-patterns))
-$(eval $(call RubyBuildPackage,e2mmap,custom exceptions with specific messages,))
+$(eval $(call RubyBuildPackage,drb,distributed object system,+ruby-filelib +ruby-ipaddr +ruby-observer +ruby-singleton))
 $(eval $(call RubyBuildPackage,enc,character re-coding library charset (small subset),))
 $(eval $(call RubyBuildPackage,enc-extra,character re-coding library charset (extra subset),+ruby-enc))
 $(eval $(call RubyBuildPackage,erb,(embedded interpreter),+ruby-cgi +ruby-strscan))
 $(eval $(call RubyBuildPackage,etc,Access info typically stored in /etc,))
 $(eval $(call RubyBuildPackage,fcntl,Loads constants defined in the OS fcntl.h C header file,))
 $(eval $(call RubyBuildPackage,fiddle,Libffi wrapper for Ruby,+libffi))
-$(eval $(call RubyBuildPackage,filelib,file utils library,+ruby-fileutils +ruby-misc))
-$(eval $(call RubyBuildPackage,fileutils,File utility methods for copying moving removing etc,+ruby-enc +ruby-etc +ruby-rbconfig))
+$(eval $(call RubyBuildPackage,filelib,file utils library,+ruby-fileutils))
+$(eval $(call RubyBuildPackage,fileutils,File utility methods for copying moving removing etc,+ruby-enc +ruby-etc +ruby-rbconfig +ruby-socket))
 $(eval $(call RubyBuildPackage,forwardable,delegation of methods to a object,))
 $(eval $(call RubyBuildPackage,gdbm,Ruby extension for GNU dbm,+libgdbm))
-$(eval $(call RubyBuildPackage,gems,gems packet management,))
+$(eval $(call RubyBuildPackage,gems,gems packet management,+ruby-net +ruby-open3 +ruby-rdoc))
+$(eval $(call RubyBuildPackage,getoptlong,implementation of getoptLong,))
 $(eval $(call RubyBuildPackage,io-console,Console interface,))
 $(eval $(call RubyBuildPackage,ipaddr,Set of methods to manipulate an IP address,+ruby-socket))
-$(eval $(call RubyBuildPackage,irb,(interactive shell),))
+$(eval $(call RubyBuildPackage,irb,(interactive shell),+ruby-gems +ruby-reline +ruby-tracer))
 $(eval $(call RubyBuildPackage,json,JSON Implementation for Ruby,+ruby-date +ruby-ostruct))
 $(eval $(call RubyBuildPackage,logger,logger and syslog library,+ruby-multithread))
-$(eval $(call RubyBuildPackage,matrix,implementation of Matrix and Vector classes,+ruby-e2mmap))
-$(eval $(call RubyBuildPackage,minitest,Gem minitest,+ruby-mutex_m))
-$(eval $(call RubyBuildPackage,misc,standard libraries subset (miscellaneous files),))
+$(eval $(call RubyBuildPackage,matrix,implementation of Matrix and Vector classes,))
+$(eval $(call RubyBuildPackage,minitest,Gem minitest,+ruby-gems +ruby-mutex_m))
+$(eval $(call RubyBuildPackage,misc,standard libraries subset (miscellaneous files),+ruby-delegate))
 $(eval $(call RubyBuildPackage,mkmf,makefile library,+ruby-filelib +ruby-optparse))
-$(eval $(call RubyBuildPackage,multithread,multithread library,+ruby-misc))
+$(eval $(call RubyBuildPackage,multithread,multithread library,))
 $(eval $(call RubyBuildPackage,mutex_m,extend objects to be handled like a Mutex,))
-$(eval $(call RubyBuildPackage,net,Network Protocols Library,+ruby-time +ruby-digest +ruby-filelib +ruby-socket +ruby-stringio +ruby-strscan +ruby-uri))
+$(eval $(call RubyBuildPackage,net,Network Protocols Library,+ruby-time +ruby-digest +ruby-filelib +ruby-stringio +ruby-strscan +ruby-uri))
+$(eval $(call RubyBuildPackage,net-pop,POP3 lib,+ruby-net +ruby-openssl))
+$(eval $(call RubyBuildPackage,net-smtp,SMTP lib,+ruby-net +ruby-openssl))
 $(eval $(call RubyBuildPackage,net-telnet,telnet client,+ruby-net))
 $(eval $(call RubyBuildPackage,nkf,Network Kanji Filter,+ruby-enc))
+$(eval $(call RubyBuildPackage,observer,Observer design pattern,))
+$(eval $(call RubyBuildPackage,open3,popen with stderr,))
 $(eval $(call RubyBuildPackage,openssl,SSL TLS and general purpose cryptography,+ruby-digest +ruby-enc +ruby-ipaddr +ruby-stringio +libopenssl))
 $(eval $(call RubyBuildPackage,ostruct,build custom data structures,))
 $(eval $(call RubyBuildPackage,optparse,command-line option analysis,+ruby-misc +ruby-time))
-$(eval $(call RubyBuildPackage,patterns,design patterns implementation,))
 $(eval $(call RubyBuildPackage,powerassert,Gem power_assert,+ruby-prettyprint +ruby-ripper))
 $(eval $(call RubyBuildPackage,prettyprint,PrettyPrint library,+ruby-etc))
-$(eval $(call RubyBuildPackage,prime,Prime numbers and factorization library,+ruby-forwardable +ruby-patterns))
+$(eval $(call RubyBuildPackage,prime,Prime numbers and factorization library,+ruby-forwardable +ruby-singleton))
 $(eval $(call RubyBuildPackage,pstore,file based persistence,+ruby-digest +ruby-enc))
 $(eval $(call RubyBuildPackage,psych,YAML parser and emitter,+ruby-bigdecimal +ruby-date +ruby-enc +ruby-stringio +ruby-strscan +libyaml))
-$(eval $(call RubyBuildPackage,racc,LALR parser generator,))
-$(eval $(call RubyBuildPackage,rake,Rake (make replacement),+ruby-fileutils +ruby-multithread +ruby-optparse +ruby-ostruct +ruby-patterns))
+$(eval $(call RubyBuildPackage,racc,LALR parser generator,+ruby-forwardable +ruby-optparse +ruby-rbconfig +ruby-stringio +ruby-strscan))
+$(eval $(call RubyBuildPackage,rake,Rake (make replacement),+ruby-fileutils +ruby-optparse +ruby-ostruct +ruby-singleton))
 $(eval $(call RubyBuildPackage,rbconfig,RbConfig,))
-$(eval $(call RubyBuildPackage,rdoc,RDoc produces HTML and command-line documentation for Ruby projects,+ruby-debuglib +ruby-did-you-mean +ruby-erb +ruby-json +ruby-racc +ruby-rake +ruby-ripper +ruby-yaml +ruby-zlib))
-$(eval $(call RubyBuildPackage,readline,support for readline,+libncurses +libreadline))
-$(eval $(call RubyBuildPackage,rexml,XML toolkit,+ruby-enc +ruby-forwardable +ruby-misc +ruby-stringio +ruby-strscan))
+$(eval $(call RubyBuildPackage,rdoc,RDoc produces HTML and command-line documentation for Ruby projects,+ruby-did-you-mean +ruby-erb +ruby-json +ruby-prettyprint +ruby-racc +ruby-rake +ruby-ripper +ruby-yaml +ruby-zlib))
+$(eval $(call RubyBuildPackage,readline,loads readline-ext(native) or reline(ruby),+ruby-reline))
+$(eval $(call RubyBuildPackage,readline-ext,support for native GNU readline,+libncurses +libreadline))
+$(eval $(call RubyBuildPackage,reline,alternative to readline-ext in pure ruby,+ruby-fiddle +ruby-filelib +ruby-forwardable +ruby-io-console))
+$(eval $(call RubyBuildPackage,rexml,XML toolkit,+ruby-enc +ruby-forwardable +ruby-misc +ruby-prettyprint +ruby-stringio +ruby-strscan))
 $(eval $(call RubyBuildPackage,rinda,Linda paradigm implementation,+ruby-drb +ruby-forwardable))
 $(eval $(call RubyBuildPackage,ripper,script parser,))
 $(eval $(call RubyBuildPackage,rss,RSS toolkit,+ruby-net +ruby-nkf +ruby-rexml))
-$(eval $(call RubyBuildPackage,scanf,Implementation of the C function scanf(3),))
 $(eval $(call RubyBuildPackage,sdbm,simple file-based key-value dbm implementation,))
-$(eval $(call RubyBuildPackage,shell,idiomatic Ruby interface,+ruby-e2mmap +ruby-forwardable +ruby-sync))
-$(eval $(call RubyBuildPackage,socket,socket support,+ruby-misc +ruby-multithread))
+$(eval $(call RubyBuildPackage,singleton,Singleton pattern,))
+$(eval $(call RubyBuildPackage,socket,socket support,+ruby-misc +ruby-multithread +ruby-timeout))
 $(eval $(call RubyBuildPackage,stringio,Pseudo `IO` class from/to `String`,))
 $(eval $(call RubyBuildPackage,strscan,Lexical scanning operations on a String,))
-$(eval $(call RubyBuildPackage,sync,two-phase lock with a counter,))
 $(eval $(call RubyBuildPackage,testunit,Gem test-unit,+ruby-csv +ruby-erb +ruby-optparse +ruby-powerassert +ruby-rexml +ruby-yaml))
 $(eval $(call RubyBuildPackage,time,Extends Time with additional methods for parsing and converting Times,+ruby-date))
-$(eval $(call RubyBuildPackage,thwait,Watches for termination of multiple threads,+ruby-e2mmap))
+$(eval $(call RubyBuildPackage,timeout,Auto-terminate potentially long-running operations,))
 $(eval $(call RubyBuildPackage,tracer,Outputs a source level execution trace of a Ruby program,))
 $(eval $(call RubyBuildPackage,unicodenormalize,String additions for Unicode normalization,+ruby-enc +ruby-enc-extra))
 $(eval $(call RubyBuildPackage,uri,library to handle URI,+ruby-enc))
-$(eval $(call RubyBuildPackage,webrick,HTTP server toolkit,+ruby-erb +ruby-net +ruby-patterns))
+$(eval $(call RubyBuildPackage,webrick,HTTP server toolkit,+ruby-erb +ruby-net +ruby-singleton))
 $(eval $(call RubyBuildPackage,xmlrpc,XML-RPC toolkit,+ruby-rexml +ruby-webrick))
 $(eval $(call RubyBuildPackage,yaml,YAML toolkit,+ruby-dbm +ruby-pstore +ruby-psych))
 $(eval $(call RubyBuildPackage,zlib,compression/decompression library interface,))
diff --git a/lang/ruby/patches/001_fix_isnan_isinf_finite_with_uclibc.patch b/lang/ruby/patches/001_fix_isnan_isinf_finite_with_uclibc.patch
deleted file mode 100644 (file)
index 2919ae8..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-From 74f94b3e6ebf15b76f3b357e754095412b006e94 Mon Sep 17 00:00:00 2001
-From: nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>
-Date: Fri, 8 Feb 2019 07:22:55 +0000
-Subject: [PATCH] configure.ac: check finite,isinf,isnan as macros first
-
-[ruby-core:91487] [Bug #15595]
-
-git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67036 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
----
- aclocal.m4                    |  1 +
- configure.ac                  | 13 ++++---------
- tool/m4/ruby_replace_funcs.m4 | 13 +++++++++++++
- 3 files changed, 18 insertions(+), 9 deletions(-)
- create mode 100644 tool/m4/ruby_replace_funcs.m4
-
---- a/aclocal.m4
-+++ b/aclocal.m4
-@@ -35,6 +35,7 @@ m4_include([tool/m4/ruby_func_attribute.
- m4_include([tool/m4/ruby_mingw32.m4])
- m4_include([tool/m4/ruby_prepend_option.m4])
- m4_include([tool/m4/ruby_prog_gnu_ld.m4])
-+m4_include([tool/m4/ruby_replace_funcs.m4])
- m4_include([tool/m4/ruby_replace_type.m4])
- m4_include([tool/m4/ruby_rm_recursive.m4])
- m4_include([tool/m4/ruby_setjmp_type.m4])
---- a/configure.ac
-+++ b/configure.ac
-@@ -946,9 +946,6 @@ main()
-               ac_cv_func_fsync=yes
-               ac_cv_func_seekdir=yes
-               ac_cv_func_telldir=yes
--              ac_cv_func_isinf=yes
--              ac_cv_func_isnan=yes
--              ac_cv_func_finite=yes
-               ac_cv_func_lchown=yes
-               ac_cv_func_link=yes
-               ac_cv_func_readlink=yes
-@@ -999,9 +996,6 @@ main()
- [netbsd*], [  LIBS="-lm $LIBS"
-               ],
- [dragonfly*], [       LIBS="-lm $LIBS"
--              # isinf() and isnan() are macros on DragonFly.
--              ac_cv_func_isinf=yes
--              ac_cv_func_isnan=yes
-               ],
- [aix*],[      LIBS="-lm $LIBS"
-               ac_cv_func_round=no
-@@ -1724,11 +1718,8 @@ AC_REPLACE_FUNCS(dup2)
- AC_REPLACE_FUNCS(erf)
- AC_REPLACE_FUNCS(explicit_bzero)
- AC_REPLACE_FUNCS(ffs)
--AC_REPLACE_FUNCS(finite)
- AC_REPLACE_FUNCS(flock)
- AC_REPLACE_FUNCS(hypot)
--AC_REPLACE_FUNCS(isinf)
--AC_REPLACE_FUNCS(isnan)
- AC_REPLACE_FUNCS(lgamma_r)
- AC_REPLACE_FUNCS(memmove)
- AC_REPLACE_FUNCS(nan)
-@@ -1741,6 +1732,10 @@ AC_REPLACE_FUNCS(strlcpy)
- AC_REPLACE_FUNCS(strstr)
- AC_REPLACE_FUNCS(tgamma)
-+RUBY_REPLACE_FUNC([finite], [@%:@include <math.h>])
-+RUBY_REPLACE_FUNC([isinf], [@%:@include <math.h>])
-+RUBY_REPLACE_FUNC([isnan], [@%:@include <math.h>])
-+
- # for missing/setproctitle.c
- AS_CASE(["$target_os"],
- [aix* | k*bsd*-gnu | kopensolaris*-gnu | linux* | darwin*], [AC_DEFINE(SPT_TYPE,SPT_REUSEARGV)],
---- /dev/null
-+++ b/tool/m4/ruby_replace_funcs.m4
-@@ -0,0 +1,13 @@
-+# -*- Autoconf -*-
-+dnl RUBY_REPLACE_FUNC [func] [included]
-+AC_DEFUN([RUBY_REPLACE_FUNC], [dnl
-+    AC_CHECK_DECL([$1],dnl
-+        [AC_DEFINE(AS_TR_CPP(HAVE_[$1]))],dnl
-+        [AC_REPLACE_FUNCS($1)],dnl
-+        [$2])dnl
-+])
-+
-+dnl RUBY_REPLACE_FUNCS [funcs] [included]
-+AC_DEFUN([RUBY_REPLACE_FUNCS] [dnl
-+    m4_map_args_w([$1], [RUBY_REPLACE_FUNC(], [), [$2]])dnl
-+])
diff --git a/lang/ruby/patches/100-musl.patch b/lang/ruby/patches/100-musl.patch
new file mode 100644 (file)
index 0000000..ce6a338
--- /dev/null
@@ -0,0 +1,24 @@
+--- a/coroutine/copy/Context.h
++++ b/coroutine/copy/Context.h
+@@ -13,6 +13,7 @@
+ #include <string.h>
+ #include <stdlib.h>
+ #include <alloca.h>
++#include <sys/types.h>
+ #define COROUTINE __attribute__((noreturn)) void
+--- a/configure.ac
++++ b/configure.ac
+@@ -2344,7 +2344,10 @@ AS_CASE([$rb_cv_coroutine], [yes|''], [
+             rb_cv_coroutine=copy
+         ],
+         [*], [
+-            rb_cv_coroutine=ucontext
++            AC_CHECK_FUNCS([getcontext swapcontext makecontext],
++                [rb_cv_coroutine=ucontext],
++                [rb_cv_coroutine=copy; break]
++            )
+         ]
+     )
+     AC_MSG_RESULT(${rb_cv_coroutine})
index a322c0d9cfc119bd443a129addfeee041eebc51b..8210756c9219de205b57c12aa0bed1e831b1d62e 100644 (file)
@@ -22,11 +22,12 @@ end
 
 require_regex=/^require ["']([^"']+)["'].*/
 require_regex_ignore=/^require ([a-zA-Z\$]|["']$|.*\/$)/
-require_ignore=%w{drb/invokemethod16 foo rubygems/defaults/operating_system win32console java Win32API
+require_ignore=%w{foo rubygems/defaults/operating_system win32console java Win32API
                   builder/xchar json/pure simplecov win32/sspi rdoc/markdown/literals_1_8 enumerator win32/resolv rbtree
-                  nqxml/streamingparser nqxml/treeparser xmlscan/parser xmlscan/scanner xmltreebuilder xml/parser xmlparser xml/encoding-ja xmlencoding-ja
+                  xmlscan/parser xmlscan/scanner xmltreebuilder xml/parser xmlparser xml/encoding-ja xmlencoding-ja
                   iconv uconv win32ole gettext/po_parser gettext/mo libxml psych.jar psych_jars jar-dependencies thread minitest/proveit
                bundler pry bcrypt net/http/pipeline capistrano/version rubygems/builder rubygems/format diff/lcs graphviz
+               win32api racc/cparse-jruby.jar profile profiler
        }
 
 builtin_enc=[
@@ -85,7 +86,7 @@ packages.each do
                                                next
                                        end
                                        if not require_regex =~ line
-                                               $stderr.puts "Unknown require: '#{line}' at file #{file}:#{lineno}"
+                                               puts "Unknown require: '#{line}' at file #{file}:#{lineno}"
                                                failed=true
                                        end
                                        require=line.gsub(require_regex,"\\1")
@@ -141,10 +142,12 @@ weak_dependency.merge!({
 "ruby-debuglib"=>["ruby-readline"],                            #debug.rb
 "ruby-drb"=>["ruby-openssl"],                                  #drb/ssl.rb
 "ruby-irb"=>["ruby-rdoc", "ruby-readline"],                    #irb/cmd/help.rb
-"ruby-gems"=>["ruby-openssl","ruby-io-console","ruby-webrick"], #rubygems/commands/cert_command.rb rubygems/user_interaction.rb rubygems/server.rb
+"ruby-gems"=>["ruby-openssl","ruby-io-console","ruby-webrick",  #rubygems/commands/cert_command.rb rubygems/user_interaction.rb rubygems/server.rb
+               "ruby-bundler"],                                #rubygems.rb
 "ruby-mkmf"=>["ruby-webrick"],                                         #un.rb
 "ruby-net"=>["ruby-openssl","ruby-io-console","ruby-zlib"],    #net/*.rb
 "ruby-optparse"=>["ruby-uri","ruby-datetime"],                 #optparse/date.rb optparse/uri.rb
+"ruby-racc"=>["ruby-gems"],                                    #/usr/bin/racc*
 "ruby-rake"=>["ruby-net","ruby-gems"],                         #rake/contrib/ftptools.rb /usr/bin/rake
 "ruby-rdoc"=>["ruby-gems","ruby-readline","ruby-webrick",      #/usr/bin/rdoc and others
               "ruby-io-console"],                              #rdoc/stats/normal.rb
@@ -198,11 +201,17 @@ begin
        package_dependencies.each do
                |(pkg,deps)|
                next if deps.empty?
+               deps.each {|dep| puts "#{pkg}: #{dep} also depends on #{pkg}" if package_dependencies[dep].include?(pkg) }
                deps_new = deps.collect {|dep| [dep] + package_dependencies[dep] }.inject([],:+).uniq.sort
                if not deps == deps_new
                        puts "#{pkg}: #{deps.join(",")}"
                        puts "#{pkg}: #{deps_new.join(",")}"
                        package_dependencies[pkg]=deps_new
+
+                       if deps_new.include?(pkg)
+                               $stderr.puts "#{pkg}: Circular dependency detected (#1)!"
+                               exit 1
+                       end
                        changed=true
                end
        end
@@ -218,7 +227,7 @@ puts "Checking for mutual dependencies..."
 package_dependencies.each do
        |(pkg,deps)|
        if deps.include? pkg
-               $stderr.puts "#{pkg}: Cycle dependency detected! "
+               $stderr.puts "#{pkg}: Circular dependency detected (#2)!"
                failed = true
        end
 end
index 84880565c49ce4361f20c88f271bc0f2fcf748b5..55dee779c0c0bf9579ae56461e71cd6384470ba0 100644 (file)
@@ -6,10 +6,8 @@
 function list_staging_files {
        cd "$1"; find \
                \( \( -name "root-*" -or -name "packages" -or -name "stamp" -or -name "pkginfo" -or -name "host" -or -name man \) -prune \) -or -true \
-               \( -path "*ruby*" -or -name "erb" -or -name "gem" -or -name "irb" -or -name "rake" -or -name "rdoc" -or -name "ri" -or -name "testrb" \) \
-               -not -path "*/usr/include/*" -not -path "*/usr/lib/pkgconfig/*" -not -path "*/usr/lib/lib*.a" \
+               \( -path "*ruby*" -or -name "erb" -or -name "gem" -or -name "irb" -or -name "rake" -or -name "rdoc" -or -name "ri" -or -name "testrb"  -or -name "racc" -or -name "racc2y" -or -name "y2racc" \) \
                -not -path "*/usr/lib/ruby/gems/*/cache/*" \
-               -not -path "*/usr/lib/libruby.so" \
                -not -name "*test_case.rb" \
                -not -name "*.rdoc" \
                -not -name "*.doc" \