Ruby 2.5.0 (#2143)
authorCarl Hörberg <carl.hoerberg@gmail.com>
Sun, 22 Apr 2018 19:24:15 +0000 (21:24 +0200)
committerFredrik Fornwall <fredrik@fornwall.net>
Sun, 22 Apr 2018 19:24:15 +0000 (21:24 +0200)
* ruby: patching two cross compile bugs in ruby 2.5.0

* ruby 2.5.1

packages/ruby/build.sh
packages/ruby/configure.ac.patch [new file with mode: 0644]
packages/ruby/configure.in.patch [deleted file]
packages/ruby/configure.patch [new file with mode: 0644]
packages/ruby/fix-paths.patch
packages/ruby/lib-fileutils.rb.patch [new file with mode: 0644]
packages/ruby/process.c.patch
packages/ruby/template-configure-ext.mk.tmpl.patch [new file with mode: 0644]
packages/ruby/tool-rbinstall.rb.patch

index 58dc84b..c21164d 100644 (file)
@@ -1,8 +1,8 @@
 TERMUX_PKG_HOMEPAGE=https://www.ruby-lang.org/
 TERMUX_PKG_DESCRIPTION="Dynamic programming language with a focus on simplicity and productivity"
-_MAJOR_VERSION=2.4
-TERMUX_PKG_VERSION=${_MAJOR_VERSION}.3
-TERMUX_PKG_SHA256=23677d40bf3b7621ba64593c978df40b1e026d8653c74a0599f0ead78ed92b51
+_MAJOR_VERSION=2.5
+TERMUX_PKG_VERSION=${_MAJOR_VERSION}.1
+TERMUX_PKG_SHA256=886ac5eed41e3b5fc699be837b0087a6a5a3d10f464087560d2d21b3e71b754d
 TERMUX_PKG_SRCURL=https://cache.ruby-lang.org/pub/ruby/${_MAJOR_VERSION}/ruby-${TERMUX_PKG_VERSION}.tar.xz
 # libbffi is used by the fiddle extension module:
 TERMUX_PKG_DEPENDS="libandroid-support, libffi, libgmp, readline, openssl, libutil, libyaml"
diff --git a/packages/ruby/configure.ac.patch b/packages/ruby/configure.ac.patch
new file mode 100644 (file)
index 0000000..9e08f33
--- /dev/null
@@ -0,0 +1,21 @@
+--- /home/vagrant/ruby-2.5.0/configure.ac      2017-12-15 09:43:40.000000000 +0000
++++ src/configure.ac   2018-02-14 19:07:11.272257521 +0000
+@@ -742,7 +742,7 @@
+ rb_cv_warnflags="$warnflags"
+ AS_IF([test "$GCC:${warnflags+set}:no" = yes::no], [
+     AS_IF([test $gcc_major -ge 4], [
+-      extra_warning=-Werror=extra-tokens
++      extra_warning=
+     ], [
+       extra_warning=
+     ])
+@@ -765,9 +765,7 @@
+                -Werror=pointer-arith \
+                -Werror=write-strings \
+                -Werror=declaration-after-statement \
+-               -Werror=shorten-64-to-32 \
+                -Werror=implicit-function-declaration \
+-               -Werror=division-by-zero \
+                -Werror=deprecated-declarations \
+                -Werror=misleading-indentation \
+                -Wno-packed-bitfield-compat \
diff --git a/packages/ruby/configure.in.patch b/packages/ruby/configure.in.patch
deleted file mode 100644 (file)
index 255ac9d..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-Fix issues when compiling with clang (where cpp is provided by gcc
-in the standalone toolchain).
-
-diff -u -r ../ruby-2.3.1/configure.in ./configure.in
---- ../ruby-2.3.1/configure.in 2016-04-24 13:44:40.000000000 -0400
-+++ ./configure.in     2016-05-18 01:10:09.523385169 -0400
-@@ -799,7 +799,7 @@
- rb_cv_warnflags="$warnflags"
- if test "$GCC:${warnflags+set}:no" = yes::no; then
-     if test $gcc_major -ge 4; then
--      extra_warning=-Werror=extra-tokens
-+      extra_warning=
-     else
-       extra_warning=
-     fi
-@@ -813,9 +813,7 @@
-                -Werror=pointer-arith \
-                -Werror=write-strings \
-                -Werror=declaration-after-statement \
--               -Werror=shorten-64-to-32 \
-                -Werror=implicit-function-declaration \
--               -Werror=division-by-zero \
-                -Werror=deprecated-declarations \
-                -Wno-packed-bitfield-compat \
-                $extra_warning \
diff --git a/packages/ruby/configure.patch b/packages/ruby/configure.patch
new file mode 100644 (file)
index 0000000..76e68ed
--- /dev/null
@@ -0,0 +1,21 @@
+--- /home/vagrant/ruby-2.5.0/configure 2017-12-25 07:00:28.000000000 +0000
++++ src/configure      2018-02-14 19:06:28.742701948 +0000
+@@ -7434,7 +7434,7 @@
+     if test $gcc_major -ge 4; then :
+-      extra_warning=-Werror=extra-tokens
++      extra_warning=
+ else
+@@ -7464,9 +7464,7 @@
+                -Werror=pointer-arith \
+                -Werror=write-strings \
+                -Werror=declaration-after-statement \
+-               -Werror=shorten-64-to-32 \
+                -Werror=implicit-function-declaration \
+-               -Werror=division-by-zero \
+                -Werror=deprecated-declarations \
+                -Werror=misleading-indentation \
+                -Wno-packed-bitfield-compat \
index 50cf40b..ac934fd 100644 (file)
@@ -1,14 +1,14 @@
 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
-@@ -440,7 +440,7 @@
+@@ -451,7 +451,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. */
 -    static const char global_debug_dir[] = "/usr/lib/debug";
 +    static const char global_debug_dir[] = "@TERMUX_PREFIX@/lib/debug";
-     char *p, *subdir;
-     obj_info_t *o1 = *objp, *o2;
+     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
diff --git a/packages/ruby/lib-fileutils.rb.patch b/packages/ruby/lib-fileutils.rb.patch
new file mode 100644 (file)
index 0000000..56991b5
--- /dev/null
@@ -0,0 +1,13 @@
+--- /home/vagrant/ruby-2.5.0/lib/fileutils.rb  2017-12-22 08:00:10.000000000 +0000
++++ ./lib/fileutils.rb 2018-02-17 23:19:55.344655246 +0000
+@@ -744,8 +744,8 @@
+   #
+   def compare_stream(a, b)
+     bsize = fu_stream_blksize(a, b)
+-    sa = String.new(capacity: bsize)
+-    sb = String.new(capacity: bsize)
++    sa = String.new
++    sb = String.new
+     begin
+       a.read(bsize, sa)
+       b.read(bsize, sb)
index 93ea132..ffd099e 100644 (file)
@@ -1,7 +1,6 @@
-diff -u -r ../ruby-2.3.0/process.c ./process.c
---- ../ruby-2.3.0/process.c    2015-12-23 03:57:48.000000000 -0500
-+++ ./process.c        2015-12-25 15:40:56.370279634 -0500
-@@ -1227,9 +1227,9 @@
+--- /home/vagrant/ruby-2.5.0/process.c 2017-12-14 10:24:38.000000000 +0000
++++ src/process.c      2018-02-14 18:48:50.591627727 +0000
+@@ -1240,9 +1240,9 @@
      *argv = (char *)prog;
      *--argv = (char *)"sh";
      if (envp)
@@ -13,7 +12,7 @@ diff -u -r ../ruby-2.3.0/process.c ./process.c
  }
  
  #else
-@@ -1301,9 +1301,9 @@
+@@ -1310,9 +1310,9 @@
      }
  #else
      if (envp_str)
@@ -22,10 +21,10 @@ diff -u -r ../ruby-2.3.0/process.c ./process.c
      else
 -        execl("/bin/sh", "sh", "-c", str, (char *)NULL); /* async-signal-safe (since SUSv4) */
 +        execl("@TERMUX_PREFIX@/bin/sh", "sh", "-c", str, (char *)NULL); /* async-signal-safe (since SUSv4) */
- #endif
-     return -1;
  #endif        /* _WIN32 */
-@@ -1406,7 +1406,7 @@
+     return errno;
+ }
+@@ -1415,7 +1415,7 @@
      if (status == -1 && errno == ENOEXEC) {
        *argv = (char *)prog;
        *--argv = (char *)"sh";
@@ -34,7 +33,7 @@ diff -u -r ../ruby-2.3.0/process.c ./process.c
        after_exec();
        if (status == -1) errno = ENOEXEC;
      }
-@@ -1444,7 +1444,7 @@
+@@ -1453,7 +1453,7 @@
  
      char *shell = dln_find_exe_r("sh", 0, fbuf, sizeof(fbuf));
      before_exec();
diff --git a/packages/ruby/template-configure-ext.mk.tmpl.patch b/packages/ruby/template-configure-ext.mk.tmpl.patch
new file mode 100644 (file)
index 0000000..e573309
--- /dev/null
@@ -0,0 +1,11 @@
+--- /home/vagrant/ruby-2.5.0/template/configure-ext.mk.tmpl    2017-04-23 16:19:22.000000000 +0000
++++ ./template/configure-ext.mk.tmpl   2018-02-17 23:31:02.304445580 +0000
+@@ -24,7 +24,7 @@
+ MINIRUBY = <%=miniruby%>
+ SCRIPT_ARGS = <%=script_args%>
+ EXTMK_ARGS = $(SCRIPT_ARGS) --gnumake=$(gnumake) --extflags="$(EXTLDFLAGS)" \
+-         --make-flags='MINIRUBY=$(MINIRUBY)'
++         --make-flags="MINIRUBY='$(MINIRUBY)'"
+ all: exts gems
+ exts:
index 9549ff1..71a80d8 100644 (file)
@@ -1,21 +1,20 @@
-diff -u -r ../ruby-2.3.0/tool/rbinstall.rb ./tool/rbinstall.rb
---- ../ruby-2.3.0/tool/rbinstall.rb    2015-11-16 01:33:17.000000000 -0500
-+++ ./tool/rbinstall.rb        2015-12-25 15:43:04.756646343 -0500
-@@ -696,7 +696,7 @@
- # :startdoc:
-
- install?(:ext, :comm, :gem) do
+--- /home/vagrant/ruby-2.5.0/tool/rbinstall.rb 2017-10-30 05:45:20.000000000 +0000
++++ src/tool/rbinstall.rb      2018-02-14 18:53:42.498522407 +0000
+@@ -731,7 +731,7 @@
+ end
+ def install_default_gem(dir, srcdir)
 -  gem_dir = Gem.default_dir
-+  gem_dir = "@TERMUX_PREFIX@/lib/ruby/gems/2.4.0"
++  gem_dir = "@TERMUX_PREFIX@/lib/ruby/gems/2.5.0"
    directories = Gem.ensure_gem_subdirectories(gem_dir, :mode => $dir_mode)
-   prepare "default gems", gem_dir, directories
-
-@@ -732,7 +732,7 @@
+   prepare "default gems from #{dir}", gem_dir, directories
+@@ -765,7 +765,7 @@
  end
-
- install?(:ext, :comm, :gem) do
+ install?(:ext, :comm, :gem, :'bundled-gems') do
 -  gem_dir = Gem.default_dir
-+  gem_dir = "@TERMUX_PREFIX@/lib/ruby/gems/2.4.0"
++  gem_dir = "@TERMUX_PREFIX@/lib/ruby/gems/2.5.0"
    directories = Gem.ensure_gem_subdirectories(gem_dir, :mode => $dir_mode)
-   prepare "bundle gems", gem_dir, directories
+   prepare "bundled gems", gem_dir, directories
    install_dir = with_destdir(gem_dir)