From 366828f0e7c75566d1a56029a4d8677aec1b4cea Mon Sep 17 00:00:00 2001 From: Luiz Angelo Daros de Luca Date: Mon, 30 Dec 2019 22:03:18 -0300 Subject: [PATCH] ruby: update to 2.7.1 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 --- lang/ruby/Makefile | 231 +++++++++++------- ...1_fix_isnan_isinf_finite_with_uclibc.patch | 86 ------- lang/ruby/patches/100-musl.patch | 24 ++ lang/ruby/ruby_find_pkgsdeps | 19 +- lang/ruby/ruby_missingfiles | 4 +- 5 files changed, 180 insertions(+), 184 deletions(-) delete mode 100644 lang/ruby/patches/001_fix_isnan_isinf_finite_with_uclibc.patch create mode 100644 lang/ruby/patches/100-musl.patch diff --git a/lang/ruby/Makefile b/lang/ruby/Makefile index 07bf5f5176..d6aa2c76f1 100644 --- a/lang/ruby/Makefile +++ b/lang/ruby/Makefile @@ -1,6 +1,6 @@ # # Copyright (C) 2006-2016 OpenWrt.org -# Copyright (C) 2017-2018 Luiz Angelo Daros de Luca +# Copyright (C) 2017-2020 Luiz Angelo Daros de Luca # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -11,15 +11,15 @@ 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 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 index 2919ae843f..0000000000 --- a/lang/ruby/patches/001_fix_isnan_isinf_finite_with_uclibc.patch +++ /dev/null @@ -1,86 +0,0 @@ -From 74f94b3e6ebf15b76f3b357e754095412b006e94 Mon Sep 17 00:00:00 2001 -From: nobu -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 ]) -+RUBY_REPLACE_FUNC([isinf], [@%:@include ]) -+RUBY_REPLACE_FUNC([isnan], [@%:@include ]) -+ - # 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 index 0000000000..ce6a338091 --- /dev/null +++ b/lang/ruby/patches/100-musl.patch @@ -0,0 +1,24 @@ +--- a/coroutine/copy/Context.h ++++ b/coroutine/copy/Context.h +@@ -13,6 +13,7 @@ + #include + #include + #include ++#include + + #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}) diff --git a/lang/ruby/ruby_find_pkgsdeps b/lang/ruby/ruby_find_pkgsdeps index a322c0d9cf..8210756c92 100644 --- a/lang/ruby/ruby_find_pkgsdeps +++ b/lang/ruby/ruby_find_pkgsdeps @@ -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 diff --git a/lang/ruby/ruby_missingfiles b/lang/ruby/ruby_missingfiles index 84880565c4..55dee779c0 100644 --- a/lang/ruby/ruby_missingfiles +++ b/lang/ruby/ruby_missingfiles @@ -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" \ -- 2.30.2