From 584ccdb78ed5ab717fba1580345d0cc0788653dc Mon Sep 17 00:00:00 2001 From: Leonid Pliushch Date: Sun, 15 Mar 2020 23:27:05 +0200 Subject: [PATCH] ruby: update to 2.7.0 (#5025) * ruby: update to 2.7.0 * asciidoctor: bump ruby version --- packages/asciidoctor/build.sh | 4 +- packages/ruby/Makefile.in.patch | 5 +- packages/ruby/build.sh | 18 +++++-- packages/ruby/fix-paths.patch | 76 +++++++++++++++++---------- packages/ruby/lib-tmpdir.rb.patch | 30 ----------- packages/ruby/tool-rbinstall.rb.patch | 4 +- 6 files changed, 67 insertions(+), 70 deletions(-) delete mode 100644 packages/ruby/lib-tmpdir.rb.patch diff --git a/packages/asciidoctor/build.sh b/packages/asciidoctor/build.sh index 6e7c0f865..da9c08699 100644 --- a/packages/asciidoctor/build.sh +++ b/packages/asciidoctor/build.sh @@ -2,13 +2,13 @@ TERMUX_PKG_HOMEPAGE=https://asciidoctor.org/ TERMUX_PKG_DESCRIPTION="An implementation of AsciiDoc in Ruby" TERMUX_PKG_LICENSE="MIT" TERMUX_PKG_VERSION=2.0.10 -TERMUX_PKG_REVISION=1 +TERMUX_PKG_REVISION=2 TERMUX_PKG_DEPENDS="ruby" TERMUX_PKG_SKIP_SRC_EXTRACT=true TERMUX_PKG_BUILD_IN_SRC=true TERMUX_PKG_PLATFORM_INDEPENDENT=true -_RUBY_VERSION=2.6 +_RUBY_VERSION=2.7 termux_step_make_install() { local gemdir="$TERMUX_PREFIX/lib/ruby/gems/${_RUBY_VERSION}.0" diff --git a/packages/ruby/Makefile.in.patch b/packages/ruby/Makefile.in.patch index dfe202541..6dbe35a62 100644 --- a/packages/ruby/Makefile.in.patch +++ b/packages/ruby/Makefile.in.patch @@ -1,6 +1,5 @@ -diff -u -r ../ruby-2.3.0/Makefile.in ./Makefile.in ---- ../ruby-2.3.0/Makefile.in 2015-12-19 20:15:12.000000000 -0500 -+++ ./Makefile.in 2015-12-25 15:58:35.632836837 -0500 +--- a/template/Makefile.in ++++ b/template/Makefile.in @@ -240,7 +240,7 @@ $(LIBRUBY_SO): @-$(PRE_LIBRUBY_UPDATE) diff --git a/packages/ruby/build.sh b/packages/ruby/build.sh index 90e19c2bb..4b6c87e61 100644 --- a/packages/ruby/build.sh +++ b/packages/ruby/build.sh @@ -1,16 +1,16 @@ TERMUX_PKG_HOMEPAGE=https://www.ruby-lang.org/ TERMUX_PKG_DESCRIPTION="Dynamic programming language with a focus on simplicity and productivity" TERMUX_PKG_LICENSE="BSD 2-Clause" -_MAJOR_VERSION=2.6 -TERMUX_PKG_VERSION=${_MAJOR_VERSION}.5 +_MAJOR_VERSION=2.7 +TERMUX_PKG_VERSION=${_MAJOR_VERSION}.0 TERMUX_PKG_SRCURL=https://cache.ruby-lang.org/pub/ruby/${_MAJOR_VERSION}/ruby-${TERMUX_PKG_VERSION}.tar.xz -TERMUX_PKG_SHA256=d5d6da717fd48524596f9b78ac5a2eeb9691753da5c06923a6c31190abe01a62 +TERMUX_PKG_SHA256=27d350a52a02b53034ca0794efe518667d558f152656c2baaf08f3d0c8b02343 # libbffi is used by the fiddle extension module: -TERMUX_PKG_DEPENDS="libandroid-support, libffi, libgmp, readline, openssl, libyaml, zlib" +TERMUX_PKG_DEPENDS="gdbm, libandroid-support, libffi, libgmp, readline, openssl, libyaml, zlib" TERMUX_PKG_BREAKS="ruby-dev" TERMUX_PKG_REPLACES="ruby-dev" # Needed to fix compilation on android: -TERMUX_PKG_EXTRA_CONFIGURE_ARGS="ac_cv_func_setgroups=no ac_cv_func_setresuid=no ac_cv_func_setreuid=no --enable-rubygems" +TERMUX_PKG_EXTRA_CONFIGURE_ARGS="ac_cv_func_setgroups=no ac_cv_func_setresuid=no ac_cv_func_setreuid=no --enable-rubygems --with-coroutine=copy" # The gdbm module seems to be very little used: TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" --without-gdbm" # Do not link in libcrypt.so if available (now in disabled-packages): @@ -19,6 +19,14 @@ TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" ac_cv_lib_crypt_crypt=no" TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" rb_cv_type_deprecated=x" # getresuid(2) does not work on ChromeOS - https://github.com/termux/termux-app/issues/147: # TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" ac_cv_func_getresuid=no" +TERMUX_PKG_HOSTBUILD=true + +termux_step_host_build() { + "$TERMUX_PKG_SRCDIR/configure" --prefix=$TERMUX_PKG_HOSTBUILD_DIR/ruby-host + make -j $TERMUX_MAKE_PROCESSES + make install + export PATH=$TERMUX_PKG_HOSTBUILD_DIR/ruby-host/bin:$PATH +} termux_step_pre_configure() { if [ "$TERMUX_ARCH_BITS" = 32 ]; then diff --git a/packages/ruby/fix-paths.patch b/packages/ruby/fix-paths.patch index 8d3d790dd..62c724d0d 100644 --- a/packages/ruby/fix-paths.patch +++ b/packages/ruby/fix-paths.patch @@ -1,7 +1,7 @@ -diff -uNr ruby-2.4.2/addr2line.c ruby-2.4.2.mod/addr2line.c ---- ruby-2.4.2/addr2line.c 2016-10-18 18:09:08.000000000 +0300 -+++ ruby-2.4.2.mod/addr2line.c 2017-09-15 12:00:56.242805138 +0300 -@@ -451,7 +451,7 @@ +diff -uNr ruby-2.7.0/addr2line.c ruby-2.7.0.mod/addr2line.c +--- ruby-2.7.0/addr2line.c 2019-12-25 11:50:58.000000000 +0200 ++++ ruby-2.7.0.mod/addr2line.c 2020-03-12 19:27:05.419124297 +0200 +@@ -537,7 +537,7 @@ /* Ideally we should check 4 paths to follow gnu_debuglink, but we handle only one case for now as this format is used by some linux distributions. See GDB's info for detail. */ @@ -9,10 +9,10 @@ diff -uNr ruby-2.4.2/addr2line.c ruby-2.4.2.mod/addr2line.c + static const char global_debug_dir[] = "@TERMUX_PREFIX@/lib/debug"; const size_t global_debug_dir_len = sizeof(global_debug_dir) - 1; char *p; - -diff -uNr ruby-2.4.2/dln_find.c ruby-2.4.2.mod/dln_find.c ---- ruby-2.4.2/dln_find.c 2016-06-02 19:52:15.000000000 +0300 -+++ ruby-2.4.2.mod/dln_find.c 2017-09-15 12:00:28.522805158 +0300 + obj_info_t *o1 = *objp, *o2; +diff -uNr ruby-2.7.0/dln_find.c ruby-2.7.0.mod/dln_find.c +--- ruby-2.7.0/dln_find.c 2019-12-25 11:50:58.000000000 +0200 ++++ ruby-2.7.0.mod/dln_find.c 2020-03-12 19:27:05.419124297 +0200 @@ -72,6 +72,10 @@ if (!path) { @@ -24,9 +24,9 @@ diff -uNr ruby-2.4.2/dln_find.c ruby-2.4.2.mod/dln_find.c "/usr/local/bin" PATH_SEP "/usr/ucb" PATH_SEP "/usr/bin" PATH_SEP -diff -uNr ruby-2.4.2/lib/drb/gw.rb ruby-2.4.2.mod/lib/drb/gw.rb ---- ruby-2.4.2/lib/drb/gw.rb 2015-12-16 07:07:31.000000000 +0200 -+++ ruby-2.4.2.mod/lib/drb/gw.rb 2017-09-15 12:06:04.592804917 +0300 +diff -uNr ruby-2.7.0/lib/drb/gw.rb ruby-2.7.0.mod/lib/drb/gw.rb +--- ruby-2.7.0/lib/drb/gw.rb 2019-12-25 11:50:58.000000000 +0200 ++++ ruby-2.7.0.mod/lib/drb/gw.rb 2020-03-12 19:27:05.419124297 +0200 @@ -99,8 +99,8 @@ front = DRb::GW.new @@ -62,10 +62,10 @@ diff -uNr ruby-2.4.2/lib/drb/gw.rb ruby-2.4.2.mod/lib/drb/gw.rb puts "c->b" a = robj[:a] -diff -uNr ruby-2.4.2/lib/mkmf.rb ruby-2.4.2.mod/lib/mkmf.rb ---- ruby-2.4.2/lib/mkmf.rb 2017-09-15 11:42:55.362805911 +0300 -+++ ruby-2.4.2.mod/lib/mkmf.rb 2017-09-15 13:57:38.032800130 +0300 -@@ -1551,7 +1551,7 @@ +diff -uNr ruby-2.7.0/lib/mkmf.rb ruby-2.7.0.mod/lib/mkmf.rb +--- ruby-2.7.0/lib/mkmf.rb 2019-12-25 11:50:58.000000000 +0200 ++++ ruby-2.7.0.mod/lib/mkmf.rb 2020-03-12 19:27:05.420124301 +0200 +@@ -1580,7 +1580,7 @@ if path ||= ENV['PATH'] path = path.split(File::PATH_SEPARATOR) else @@ -74,19 +74,19 @@ diff -uNr ruby-2.4.2/lib/mkmf.rb ruby-2.4.2.mod/lib/mkmf.rb end file = nil path.each do |dir| -diff -uNr ruby-2.4.2/lib/resolv.rb ruby-2.4.2.mod/lib/resolv.rb ---- ruby-2.4.2/lib/resolv.rb 2016-11-24 01:57:30.000000000 +0200 -+++ ruby-2.4.2.mod/lib/resolv.rb 2017-09-15 13:49:49.152800465 +0300 -@@ -172,7 +172,7 @@ - require 'win32/resolv' - DefaultFileName = Win32::Resolv.get_hosts_path - rescue LoadError -- DefaultFileName = '/etc/hosts' -+ DefaultFileName = '@TERMUX_PREFIX@/etc/hosts' +diff -uNr ruby-2.7.0/lib/resolv.rb ruby-2.7.0.mod/lib/resolv.rb +--- ruby-2.7.0/lib/resolv.rb 2019-12-25 11:50:58.000000000 +0200 ++++ ruby-2.7.0.mod/lib/resolv.rb 2020-03-12 19:26:54.482079651 +0200 +@@ -173,7 +173,7 @@ + rescue LoadError + end end +- DefaultFileName ||= '/etc/hosts' ++ DefaultFileName ||= '@TERMUX_PREFIX@/etc/hosts' ## -@@ -957,7 +957,7 @@ + # Creates a new Resolv::Hosts, using +filename+ for its data source. +@@ -984,7 +984,7 @@ return { :nameserver => nameserver, :search => search, :ndots => ndots } end @@ -95,9 +95,29 @@ diff -uNr ruby-2.4.2/lib/resolv.rb ruby-2.4.2.mod/lib/resolv.rb if File.exist? filename config_hash = Config.parse_resolv_conf(filename) else -diff -uNr ruby-2.4.2/lib/webrick/config.rb ruby-2.4.2.mod/lib/webrick/config.rb ---- ruby-2.4.2/lib/webrick/config.rb 2016-12-07 14:59:48.000000000 +0200 -+++ ruby-2.4.2.mod/lib/webrick/config.rb 2017-09-15 12:03:02.402805048 +0300 +diff -uNr ruby-2.7.0/lib/tmpdir.rb ruby-2.7.0.mod/lib/tmpdir.rb +--- ruby-2.7.0/lib/tmpdir.rb 2019-12-25 11:50:58.000000000 +0200 ++++ ruby-2.7.0.mod/lib/tmpdir.rb 2020-03-12 19:25:44.986795866 +0200 +@@ -13,14 +13,14 @@ + + class Dir + +- @@systmpdir ||= defined?(Etc.systmpdir) ? Etc.systmpdir : '/tmp' ++ @@systmpdir ||= defined?(Etc.systmpdir) ? Etc.systmpdir : '@TERMUX_PREFIX@/tmp' + + ## + # Returns the operating system's temporary file path. + + def self.tmpdir + tmp = nil +- [ENV['TMPDIR'], ENV['TMP'], ENV['TEMP'], @@systmpdir, '/tmp', '.'].each do |dir| ++ [ENV['TMPDIR'], ENV['TMP'], ENV['TEMP'], @@systmpdir, '@TERMUX_PREFIX@/tmp', '.'].each do |dir| + next if !dir + dir = File.expand_path(dir) + if stat = File.stat(dir) and stat.directory? and stat.writable? and +diff -uNr ruby-2.7.0/lib/webrick/config.rb ruby-2.7.0.mod/lib/webrick/config.rb +--- ruby-2.7.0/lib/webrick/config.rb 2019-12-25 11:50:58.000000000 +0200 ++++ ruby-2.7.0.mod/lib/webrick/config.rb 2020-03-12 19:27:05.420124301 +0200 @@ -35,7 +35,7 @@ :Logger => nil, # default: WEBrick::Log.new :ServerSoftware => "WEBrick/#{WEBrick::VERSION} " + diff --git a/packages/ruby/lib-tmpdir.rb.patch b/packages/ruby/lib-tmpdir.rb.patch deleted file mode 100644 index 8934a7646..000000000 --- a/packages/ruby/lib-tmpdir.rb.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff -u -r ../ruby-2.4.0/lib/tmpdir.rb ./lib/tmpdir.rb ---- ../ruby-2.4.0/lib/tmpdir.rb 2016-02-26 03:11:14.000000000 +0100 -+++ ./lib/tmpdir.rb 2017-01-18 04:13:47.675833299 +0100 -@@ -13,7 +13,7 @@ - - class Dir - -- @@systmpdir ||= defined?(Etc.systmpdir) ? Etc.systmpdir : '/tmp' -+ @@systmpdir ||= defined?(Etc.systmpdir) ? Etc.systmpdir : '@TERMUX_PREFIX@/tmp' - - ## - # Returns the operating system's temporary file path. -@@ -23,7 +23,7 @@ - @@systmpdir.dup - else - tmp = nil -- [ENV['TMPDIR'], ENV['TMP'], ENV['TEMP'], @@systmpdir, '/tmp', '.'].each do |dir| -+ [ENV['TMPDIR'], ENV['TMP'], ENV['TEMP'], @@systmpdir, '@TERMUX_PREFIX@/tmp', '.'].each do |dir| - next if !dir - dir = File.expand_path(dir) - if stat = File.stat(dir) and stat.directory? and stat.writable? and -@@ -120,7 +120,7 @@ - - def create(basename, tmpdir=nil, max_try: nil, **opts) - if $SAFE > 0 and tmpdir.tainted? -- tmpdir = '/tmp' -+ tmpdir = '@TERMUX_PREFIX@/tmp' - else - tmpdir ||= tmpdir() - end diff --git a/packages/ruby/tool-rbinstall.rb.patch b/packages/ruby/tool-rbinstall.rb.patch index 879d337de..8daed46dd 100644 --- a/packages/ruby/tool-rbinstall.rb.patch +++ b/packages/ruby/tool-rbinstall.rb.patch @@ -5,7 +5,7 @@ def install_default_gem(dir, srcdir) - gem_dir = Gem.default_dir -+ gem_dir = "@TERMUX_PREFIX@/lib/ruby/gems/2.6.0" ++ gem_dir = "@TERMUX_PREFIX@/lib/ruby/gems/2.7.0" directories = Gem.ensure_gem_subdirectories(gem_dir, :mode => $dir_mode) prepare "default gems from #{dir}", gem_dir, directories @@ -14,7 +14,7 @@ install?(:ext, :comm, :gem, :'bundled-gems') do - gem_dir = Gem.default_dir -+ gem_dir = "@TERMUX_PREFIX@/lib/ruby/gems/2.6.0" ++ gem_dir = "@TERMUX_PREFIX@/lib/ruby/gems/2.7.0" directories = Gem.ensure_gem_subdirectories(gem_dir, :mode => $dir_mode) prepare "bundled gems", gem_dir, directories install_dir = with_destdir(gem_dir)