Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package rubygem-ffi for openSUSE:Factory 
checked in at 2021-03-16 15:42:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-ffi (Old)
 and      /work/SRC/openSUSE:Factory/.rubygem-ffi.new.2401 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rubygem-ffi"

Tue Mar 16 15:42:32 2021 rev:38 rq:879044 version:1.15.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-ffi/rubygem-ffi.changes  2020-12-26 
21:11:40.913613834 +0100
+++ /work/SRC/openSUSE:Factory/.rubygem-ffi.new.2401/rubygem-ffi.changes        
2021-03-16 15:43:46.856977318 +0100
@@ -1,0 +2,24 @@
+Mon Mar 15 04:35:12 UTC 2021 - Manuel Schnitzer <mschnit...@suse.com>
+
+- updated to version 1.15.0
+
+  Fixed:
+  * Fix MSVC build
+  * Fix async callbacks in conjunction with fork(). #884
+
+  Added:
+  * Allow to pass callbacks in varargs. #885
+  * Name the threads for FFI callback dispatcher and async thread calls for 
easier debugging. #883
+    The name can be retrieved by Thread.name and is shown by 
Thread.list.inspect etc.
+    Even gdb shows the thread name on supported operating systems.
+  * Add types.conf for powerpc64le-linux
+  * Add types.conf for riscv64-linux
+  * More release automation of ffi gems
+
+  Changed:
+  * Switch from rubygems-tasks to bundler/gem_helper
+
+  Removed:
+  * Remove unused VariadicInvoker#init
+
+-------------------------------------------------------------------

Old:
----
  ffi-1.14.2.gem

New:
----
  ffi-1.15.0.gem

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ rubygem-ffi.spec ++++++
--- /var/tmp/diff_new_pack.vnc8nG/_old  2021-03-16 15:43:47.320978060 +0100
+++ /var/tmp/diff_new_pack.vnc8nG/_new  2021-03-16 15:43:47.320978060 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package rubygem-ffi
 #
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -24,7 +24,7 @@
 #
 
 Name:           rubygem-ffi
-Version:        1.14.2
+Version:        1.15.0
 Release:        0
 %define mod_name ffi
 %define mod_full_name %{mod_name}-%{version}

++++++ ffi-1.14.2.gem -> ffi-1.15.0.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/CHANGELOG.md new/CHANGELOG.md
--- old/CHANGELOG.md    2020-12-21 15:19:26.000000000 +0100
+++ new/CHANGELOG.md    2021-03-05 22:34:39.000000000 +0100
@@ -1,3 +1,26 @@
+1.15.0 / 2021-03-05
+-------------------
+
+Fixed:
+* Fix MSVC build
+* Fix async callbacks in conjunction with fork(). #884
+
+Added:
+* Allow to pass callbacks in varargs. #885
+* Name the threads for FFI callback dispatcher and async thread calls for 
easier debugging. #883
+  The name can be retrieved by Thread.name and is shown by Thread.list.inspect 
etc.
+  Even gdb shows the thread name on supported operating systems.
+* Add types.conf for powerpc64le-linux
+* Add types.conf for riscv64-linux
+* More release automation of ffi gems
+
+Changed:
+* Switch from rubygems-tasks to bundler/gem_helper
+
+Removed:
+* Remove unused VariadicInvoker#init
+
+
 1.14.2 / 2020-12-21
 -------------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Gemfile new/Gemfile
--- old/Gemfile 2020-12-21 15:19:26.000000000 +0100
+++ new/Gemfile 2021-03-05 22:34:39.000000000 +0100
@@ -5,10 +5,7 @@
   gem 'rake-compiler', '~> 1.0.3'
   gem 'rake-compiler-dock', '~> 1.0'
   gem 'rspec', '~> 3.0'
-  # irb is a dependency of rubygems-tasks 0.2.5.
-  # irb versions > 1.1.1 depend on reline,
-  # which sometimes causes 'bundle install' to fail on Ruby <= 2.4: 
https://github.com/rubygems/rubygems/issues/3463
-  gem 'rubygems-tasks', '>= 0.2', '< 0.2.5', :require => 'rubygems/tasks'
+  gem 'bundler', '~> 2.0'
 end
 
 group :doc do
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Rakefile new/Rakefile
--- old/Rakefile        2020-12-21 15:19:26.000000000 +0100
+++ new/Rakefile        2021-03-05 22:34:39.000000000 +0100
@@ -1,20 +1,17 @@
-require 'rubygems/tasks'
 require 'rbconfig'
-require 'rake/clean'
-require_relative "lib/ffi/version"
-
 require 'date'
 require 'fileutils'
 require 'rbconfig'
 require 'rspec/core/rake_task'
 require 'rubygems/package_task'
+require 'rake/extensiontask'
+require_relative "lib/ffi/version"
+require_relative "rakelib/ffi_gem_helper"
 
 BUILD_DIR = "build"
 BUILD_EXT_DIR = File.join(BUILD_DIR, "#{RbConfig::CONFIG['arch']}", 'ffi_c', 
RUBY_VERSION)
 
-def gem_spec
-  @gem_spec ||= Gem::Specification.load('ffi.gemspec')
-end
+gem_spec = Bundler.load_gemspec('ffi.gemspec')
 
 RSpec::Core::RakeTask.new(:spec => :compile) do |config|
   config.rspec_opts = YAML.load_file 'spec/spec.opts'
@@ -87,6 +84,10 @@
 
 task 'gem:java' => 'java:gem'
 
+FfiGemHelper.install_tasks
+# Register windows gems to be pushed to rubygems.org
+Bundler::GemHelper.instance.cross_platforms = %w[x86-mingw32 x64-mingw32]
+
 if RUBY_ENGINE == 'ruby' || RUBY_ENGINE == 'rbx'
   require 'rake/extensiontask'
   Rake::ExtensionTask.new('ffi_c', gem_spec) do |ext|
@@ -94,21 +95,11 @@
     # ext.lib_dir = BUILD_DIR                                 # put binaries 
into this folder.
     ext.tmp_dir = BUILD_DIR                                   # temporary 
folder used during compilation.
     ext.cross_compile = true                                  # enable cross 
compilation (requires cross compile toolchain)
-    ext.cross_platform = %w[i386-mingw32 x64-mingw32]                     # 
forces the Windows platform instead of the default one
+    ext.cross_platform = Bundler::GemHelper.instance.cross_platforms
     ext.cross_compiling do |spec|
       spec.files.reject! { |path| File.fnmatch?('ext/*', path) }
     end
-  end
-
-  # To reduce the gem file size strip mingw32 dlls before packaging
-  ENV['RUBY_CC_VERSION'].to_s.split(':').each do |ruby_version|
-    task "build/i386-mingw32/stage/lib/#{ruby_version[/^\d+\.\d+/]}/ffi_c.so" 
do |t|
-      sh "i686-w64-mingw32-strip -S 
build/i386-mingw32/stage/lib/#{ruby_version[/^\d+\.\d+/]}/ffi_c.so"
-    end
 
-    task "build/x64-mingw32/stage/lib/#{ruby_version[/^\d+\.\d+/]}/ffi_c.so" 
do |t|
-      sh "x86_64-w64-mingw32-strip -S 
build/x64-mingw32/stage/lib/#{ruby_version[/^\d+\.\d+/]}/ffi_c.so"
-    end
   end
 else
   task :compile do
@@ -116,6 +107,7 @@
   end
 end
 
+
 desc "build a windows gem without all the ceremony"
 task "gem:windows" do
   require "rake_compiler_dock"
@@ -132,7 +124,7 @@
 
 LIBFFI_GIT_FILES = `git --git-dir ext/ffi_c/libffi/.git ls-files 
-z`.split("\x0")
 
-# Generate files in gemspec but not in libffi's git repo by running autogen.sh
+# Generate files which are in the gemspec but not in libffi's git repo by 
running autogen.sh
 gem_spec.files.select do |f|
   f =~ /ext\/ffi_c\/libffi\/(.*)/ && !LIBFFI_GIT_FILES.include?($1)
 end.each do |f|
@@ -148,6 +140,11 @@
   end
 end
 
+# Make sure we have all gemspec files before packaging
+task :build => gem_spec.files
+task :gem => :build
+
+
 require_relative "lib/ffi/platform"
 types_conf = File.expand_path(File.join(FFI::Platform::CONF_DIR, 'types.conf'))
 logfile = File.join(File.dirname(__FILE__), 'types_log')
@@ -168,10 +165,6 @@
 desc "Create or update type information for platform #{FFI::Platform::NAME}"
 task :types_conf => types_conf
 
-Gem::Tasks.new do |t|
-  t.scm.tag.format = '%s'
-end
-
 begin
   require 'yard'
 
Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/ffi_c/Call.c new/ext/ffi_c/Call.c
--- old/ext/ffi_c/Call.c        2020-12-21 15:19:26.000000000 +0100
+++ new/ext/ffi_c/Call.c        2021-03-05 22:34:39.000000000 +0100
@@ -310,7 +310,6 @@
 
 
             case NATIVE_FUNCTION:
-            case NATIVE_CALLBACK:
                 if (callbackProc != Qnil) {
                     param->ptr = callback_param(callbackProc, 
callbackParameters[cbidx++]);
                 } else {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/ffi_c/Function.c new/ext/ffi_c/Function.c
--- old/ext/ffi_c/Function.c    2020-12-21 15:19:26.000000000 +0100
+++ new/ext/ffi_c/Function.c    2021-03-05 22:34:39.000000000 +0100
@@ -282,6 +282,17 @@
     return callback;
 }
 
+#if !defined(_WIN32) && defined(DEFER_ASYNC_CALLBACK)
+static void
+after_fork_callback(void)
+{
+    /* Ensure that a new dispatcher thread is started in a forked process */
+    async_cb_thread = Qnil;
+    pthread_mutex_init(&async_cb_mutex, NULL);
+    pthread_cond_init(&async_cb_cond, NULL);
+}
+#endif
+
 static VALUE
 function_init(VALUE self, VALUE rbFunctionInfo, VALUE rbProc)
 {
@@ -309,7 +320,16 @@
 
 #if defined(DEFER_ASYNC_CALLBACK)
         if (async_cb_thread == Qnil) {
+
+#if !defined(_WIN32)
+            if( pthread_atfork(NULL, NULL, after_fork_callback) ){
+                rb_warn("FFI: unable to register fork callback");
+            }
+#endif
+
             async_cb_thread = rb_thread_create(async_cb_event, NULL);
+            /* Name thread, for better debugging */
+            rb_funcall(async_cb_thread, rb_intern("name="), 1, 
rb_str_new2("FFI Callback Dispatcher"));
         }
 #endif
 
@@ -525,7 +545,9 @@
         rb_thread_call_without_gvl(async_cb_wait, &w, async_cb_stop, &w);
         if (w.cb != NULL) {
             /* Start up a new ruby thread to run the ruby callback */
-            rb_thread_create(async_cb_call, w.cb);
+            VALUE new_thread = rb_thread_create(async_cb_call, w.cb);
+            /* Name thread, for better debugging */
+            rb_funcall(new_thread, rb_intern("name="), 1, rb_str_new2("FFI 
Callback Runner"));
         }
     }
 
@@ -711,7 +733,6 @@
                 break;
 
             case NATIVE_FUNCTION:
-            case NATIVE_CALLBACK:
             case NATIVE_STRUCT:
                 param = rbffi_NativeValue_ToRuby(paramType, rbParamType, 
parameters[i]);
                 break;
@@ -787,7 +808,6 @@
             break;
 
         case NATIVE_FUNCTION:
-        case NATIVE_CALLBACK:
             if (TYPE(rbReturnValue) == T_DATA && 
rb_obj_is_kind_of(rbReturnValue, rbffi_PointerClass)) {
 
                 *((void **) retval) = ((AbstractMemory *) 
DATA_PTR(rbReturnValue))->address;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/ffi_c/Function.h new/ext/ffi_c/Function.h
--- old/ext/ffi_c/Function.h    2020-12-21 15:19:26.000000000 +0100
+++ new/ext/ffi_c/Function.h    2021-03-05 22:34:39.000000000 +0100
@@ -34,11 +34,7 @@
 extern "C" {
 #endif
 
-#ifndef _MSC_VER
 # include <stdbool.h>
-#else
-# include "win32/stdbool.h"
-#endif
 
 #include <ffi.h>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/ffi_c/MemoryPointer.h 
new/ext/ffi_c/MemoryPointer.h
--- old/ext/ffi_c/MemoryPointer.h       2020-12-21 15:19:26.000000000 +0100
+++ new/ext/ffi_c/MemoryPointer.h       2021-03-05 22:34:39.000000000 +0100
@@ -31,11 +31,7 @@
 #ifndef RBFFI_MEMORYPOINTER_H
 #define        RBFFI_MEMORYPOINTER_H
 
-#ifndef _MSC_VER
 # include <stdbool.h>
-#else
-# include "win32/stdbool.h"
-#endif
 #include <ruby.h>
 
 #ifdef __cplusplus
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/ffi_c/Pointer.h new/ext/ffi_c/Pointer.h
--- old/ext/ffi_c/Pointer.h     2020-12-21 15:19:26.000000000 +0100
+++ new/ext/ffi_c/Pointer.h     2021-03-05 22:34:39.000000000 +0100
@@ -30,11 +30,7 @@
 #ifndef RBFFI_POINTER_H
 #define        RBFFI_POINTER_H
 
-#ifndef _MSC_VER
 # include <stdbool.h>
-#else
-# include "win32/stdbool.h"
-#endif
 
 #ifdef __cplusplus
 extern "C" {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/ffi_c/StructLayout.c new/ext/ffi_c/StructLayout.c
--- old/ext/ffi_c/StructLayout.c        2020-12-21 15:19:26.000000000 +0100
+++ new/ext/ffi_c/StructLayout.c        2021-03-05 22:34:39.000000000 +0100
@@ -123,7 +123,6 @@
 
     switch (field->type->nativeType == NATIVE_MAPPED ? ((MappedType *) 
field->type)->type->nativeType : field->type->nativeType) {
         case NATIVE_FUNCTION:
-        case NATIVE_CALLBACK:
         case NATIVE_POINTER:
             field->referenceRequired = true;
             break;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/ffi_c/Types.c new/ext/ffi_c/Types.c
--- old/ext/ffi_c/Types.c       2020-12-21 15:19:26.000000000 +0100
+++ new/ext/ffi_c/Types.c       2021-03-05 22:34:39.000000000 +0100
@@ -85,10 +85,9 @@
             return rbffi_Pointer_NewInstance(*(void **) ptr);
         case NATIVE_BOOL:
             return ((unsigned char) *(ffi_arg *) ptr) ? Qtrue : Qfalse;
-        
-        case NATIVE_FUNCTION:
-        case NATIVE_CALLBACK: {
-            return *(void **) ptr != NULL 
+
+        case NATIVE_FUNCTION: {
+            return *(void **) ptr != NULL
                     ? rbffi_Function_NewInstance(rbType, 
rbffi_Pointer_NewInstance(*(void **) ptr))
                     : Qnil;
         }
@@ -116,15 +115,15 @@
 
             values[0] = rbffi_NativeValue_ToRuby(m->type, m->rbType, ptr);
             values[1] = Qnil;
-            
+
 
             rbReturnValue = rb_funcall2(m->rbConverter, id_from_native, 2, 
values);
             RB_GC_GUARD(values[0]);
             RB_GC_GUARD(rbType);
-            
+
             return rbReturnValue;
         }
-    
+
         default:
             rb_raise(rb_eRuntimeError, "Unknown type: %d", type->nativeType);
             return Qnil;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/ffi_c/Types.h new/ext/ffi_c/Types.h
--- old/ext/ffi_c/Types.h       2020-12-21 15:19:26.000000000 +0100
+++ new/ext/ffi_c/Types.h       2021-03-05 22:34:39.000000000 +0100
@@ -51,20 +51,19 @@
     NATIVE_FLOAT64,
     NATIVE_LONGDOUBLE,
     NATIVE_POINTER,
-    NATIVE_CALLBACK,
     NATIVE_FUNCTION,
     NATIVE_BUFFER_IN,
     NATIVE_BUFFER_OUT,
     NATIVE_BUFFER_INOUT,
     NATIVE_CHAR_ARRAY,
     NATIVE_BOOL,
-    
+
     /** An immutable string.  Nul terminated, but only copies in to the native 
function */
     NATIVE_STRING,
-    
+
     /** The function takes a variable number of arguments */
     NATIVE_VARARGS,
-    
+
     /** Struct-by-value param or result */
     NATIVE_STRUCT,
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/ffi_c/Variadic.c new/ext/ffi_c/Variadic.c
--- old/ext/ffi_c/Variadic.c    2020-12-21 15:19:26.000000000 +0100
+++ new/ext/ffi_c/Variadic.c    2021-03-05 22:34:39.000000000 +0100
@@ -168,7 +168,8 @@
     ffi_type* ffiReturnType;
     Type** paramTypes;
     VALUE* argv;
-    int paramCount = 0, fixedCount = 0, i;
+    VALUE* callbackParameters;
+    int paramCount = 0, fixedCount = 0, callbackCount = 0, i;
     ffi_status ffiStatus;
     rbffi_frame_t frame = { 0 };
 
@@ -182,6 +183,7 @@
     params = ALLOCA_N(FFIStorage, paramCount);
     ffiValues = ALLOCA_N(void*, paramCount);
     argv = ALLOCA_N(VALUE, paramCount);
+    callbackParameters = ALLOCA_N(VALUE, paramCount);
     retval = alloca(MAX(invoker->returnType->ffiType->size, FFI_SIZEOF_ARG));
 
     for (i = 0; i < paramCount; ++i) {
@@ -211,6 +213,14 @@
                 Data_Get_Struct(rbType, Type, paramTypes[i]);
                 break;
 
+            case NATIVE_FUNCTION:
+                if (!rb_obj_is_kind_of(rbType, rbffi_FunctionTypeClass)) {
+                    VALUE typeName = rb_funcall2(rbType, rb_intern("inspect"), 
0, NULL);
+                    rb_raise(rb_eTypeError, "Incorrect parameter type (%s)", 
RSTRING_PTR(typeName));
+                }
+                callbackParameters[callbackCount++] = rbType;
+                break;
+
             default:
                 break;
         }
@@ -248,7 +258,7 @@
     }
 
     rbffi_SetupCallParams(paramCount, argv, -1, paramTypes, params,
-        ffiValues, NULL, 0, invoker->rbEnums);
+        ffiValues, callbackParameters, callbackCount, invoker->rbEnums);
 
     rbffi_frame_push(&frame);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/ffi_c/libffi/Makefile.in 
new/ext/ffi_c/libffi/Makefile.in
--- old/ext/ffi_c/libffi/Makefile.in    2020-12-21 15:19:26.000000000 +0100
+++ new/ext/ffi_c/libffi/Makefile.in    2021-03-05 22:34:39.000000000 +0100
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16.2 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2020 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -305,8 +305,8 @@
   $(am__extra_recursive_targets)
 AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
        cscope distdir distdir-am dist dist-all distcheck
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \
-       fficonfig.h.in
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
+       $(LISP)fficonfig.h.in
 # Read a list of newline-separated strings from the standard input,
 # and print each of them once, without duplicates.  Input order is
 # *not* preserved.
@@ -1552,10 +1552,6 @@
        tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c 
>$(distdir).tar.xz
        $(am__post_remove_distdir)
 
-dist-zstd: distdir
-       tardir=$(distdir) && $(am__tar) | zstd -c 
$${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst
-       $(am__post_remove_distdir)
-
 dist-tarZ: distdir
        @echo WARNING: "Support for distribution archives compressed with" \
                       "legacy program 'compress' is deprecated." >&2
@@ -1598,8 +1594,6 @@
          eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
        *.zip*) \
          unzip $(distdir).zip ;;\
-       *.tar.zst*) \
-         zstd -dc $(distdir).tar.zst | $(am__untar) ;;\
        esac
        chmod -R a-w $(distdir)
        chmod u+w $(distdir)
@@ -2028,21 +2022,20 @@
        clean-generic clean-libtool clean-noinstLTLIBRARIES \
        clean-toolexeclibLTLIBRARIES cscope cscopelist-am ctags \
        ctags-am dist dist-all dist-bzip2 dist-gzip dist-hook \
-       dist-lzip dist-shar dist-tarZ dist-xz dist-zip dist-zstd \
-       distcheck distclean distclean-compile distclean-generic \
-       distclean-hdr distclean-libtool distclean-tags distcleancheck \
-       distdir distuninstallcheck dvi dvi-am html html-am info \
-       info-am install install-am install-data install-data-am \
-       install-dvi install-dvi-am install-exec install-exec-am \
-       install-html install-html-am install-info install-info-am \
-       install-man install-pdf install-pdf-am install-pkgconfigDATA \
-       install-ps install-ps-am install-strip \
-       install-toolexeclibLTLIBRARIES installcheck installcheck-am \
-       installdirs installdirs-am maintainer-clean \
-       maintainer-clean-generic mostlyclean mostlyclean-compile \
-       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-       tags tags-am uninstall uninstall-am uninstall-pkgconfigDATA \
-       uninstall-toolexeclibLTLIBRARIES
+       dist-lzip dist-shar dist-tarZ dist-xz dist-zip distcheck \
+       distclean distclean-compile distclean-generic distclean-hdr \
+       distclean-libtool distclean-tags distcleancheck distdir \
+       distuninstallcheck dvi dvi-am html html-am info info-am \
+       install install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-pdf install-pdf-am install-pkgconfigDATA install-ps \
+       install-ps-am install-strip install-toolexeclibLTLIBRARIES \
+       installcheck installcheck-am installdirs installdirs-am \
+       maintainer-clean maintainer-clean-generic mostlyclean \
+       mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+       pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+       uninstall-pkgconfigDATA uninstall-toolexeclibLTLIBRARIES
 
 .PRECIOUS: Makefile
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/ffi_c/libffi/configure 
new/ext/ffi_c/libffi/configure
--- old/ext/ffi_c/libffi/configure      2020-12-21 15:19:26.000000000 +0100
+++ new/ext/ffi_c/libffi/configure      2021-03-05 22:34:39.000000000 +0100
@@ -7174,8 +7174,11 @@
   test $ac_status = 0; }; then
     # Now try to grab the symbols.
     nlist=conftest.nm
-    $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | 
$lt_cv_sys_global_symbol_pipe > $nlist" >&5
-    if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> 
$nlist 2>&5 && test -s "$nlist"; then
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM 
conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
+  (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 
2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s "$nlist"; then
       # Try sorting and uniquifying the output.
       if sort "$nlist" | uniq > "$nlist"T; then
        mv -f "$nlist"T "$nlist"
@@ -9535,12 +9538,6 @@
        lt_prog_compiler_pic='-KPIC'
        lt_prog_compiler_static='-static'
         ;;
-      # flang / f18. f95 an alias for gfortran or flang on Debian
-      flang* | f18* | f95*)
-       lt_prog_compiler_wl='-Wl,'
-       lt_prog_compiler_pic='-fPIC'
-       lt_prog_compiler_static='-static'
-        ;;
       # icc used to be incompatible with GCC.
       # ICC 10 doesn't accept -KPIC any more.
       icc* | ifort*)
@@ -13483,7 +13480,7 @@
       # Commands to make compiler produce verbose output that lists
       # what "hidden" libraries, object files and flags are used when
       # linking a shared library.
-      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | 
$GREP -v "^Configured with:" | $GREP " \-L"'
+      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | 
$GREP -v "^Configured with:" | $GREP "\-L"'
 
     else
       GXX=no
@@ -13975,7 +13972,7 @@
             # explicitly linking system object files so we need to strip them
             # from the output so that they don't get included in the library
             # dependencies.
-            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v 
conftest.$objext 2>&1) | $EGREP " \-L"`; list= ; for z in $templist; do case $z 
in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; 
done; func_echo_all "$list"'
+            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v 
conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z 
in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; 
done; func_echo_all "$list"'
             ;;
           *)
             if test yes = "$GXX"; then
@@ -14040,7 +14037,7 @@
            # explicitly linking system object files so we need to strip them
            # from the output so that they don't get included in the library
            # dependencies.
-           output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v 
conftest.$objext 2>&1) | $GREP " \-L"`; list= ; for z in $templist; do case $z 
in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; 
done; func_echo_all "$list"'
+           output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v 
conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z 
in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; 
done; func_echo_all "$list"'
            ;;
           *)
            if test yes = "$GXX"; then
@@ -14379,7 +14376,7 @@
              # Commands to make compiler produce verbose output that lists
              # what "hidden" libraries, object files and flags are used when
              # linking a shared library.
-             output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 
2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
+             output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 
2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
 
            else
              # FIXME: insert proper C++ library support
@@ -14463,7 +14460,7 @@
                # Commands to make compiler produce verbose output that lists
                # what "hidden" libraries, object files and flags are used when
                # linking a shared library.
-               output_verbose_link_cmd='$CC -shared $CFLAGS -v 
conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
+               output_verbose_link_cmd='$CC -shared $CFLAGS -v 
conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
              else
                # g++ 2.7 appears to require '-G' NOT '-shared' on this
                # platform.
@@ -14474,7 +14471,7 @@
                # Commands to make compiler produce verbose output that lists
                # what "hidden" libraries, object files and flags are used when
                # linking a shared library.
-               output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 
2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
+               output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 
2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
              fi
 
              hardcode_libdir_flag_spec_CXX='$wl-R $wl$libdir'
@@ -21282,9 +21279,7 @@
     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "Something went wrong bootstrapping makefile fragments
-    for automatic dependency tracking.  If GNU make was not used, consider
-    re-running the configure script with MAKE=\"gmake\" (or whatever is
-    necessary).  You can also try re-running configure with the
+    for automatic dependency tracking.  Try re-running configure with the
     '--disable-dependency-tracking' option to at least be able to build
     the package (albeit without support for automatic dependency tracking).
 See \`config.log' for more details" "$LINENO" 5; }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/ffi_c/libffi/doc/Makefile.in 
new/ext/ffi_c/libffi/doc/Makefile.in
--- old/ext/ffi_c/libffi/doc/Makefile.in        2020-12-21 15:19:26.000000000 
+0100
+++ new/ext/ffi_c/libffi/doc/Makefile.in        2021-03-05 22:34:39.000000000 
+0100
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16.2 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2020 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/ffi_c/libffi/include/Makefile.in 
new/ext/ffi_c/libffi/include/Makefile.in
--- old/ext/ffi_c/libffi/include/Makefile.in    2020-12-21 15:19:26.000000000 
+0100
+++ new/ext/ffi_c/libffi/include/Makefile.in    2021-03-05 22:34:39.000000000 
+0100
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16.2 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2020 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/ffi_c/libffi/install-sh 
new/ext/ffi_c/libffi/install-sh
--- old/ext/ffi_c/libffi/install-sh     2020-12-21 15:19:26.000000000 +0100
+++ new/ext/ffi_c/libffi/install-sh     2021-03-05 22:34:39.000000000 +0100
@@ -451,18 +451,7 @@
     trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
 
     # Copy the file name to the temp name.
-    (umask $cp_umask &&
-     { test -z "$stripcmd" || {
-        # Create $dsttmp read-write so that cp doesn't create it read-only,
-        # which would cause strip to fail.
-        if test -z "$doit"; then
-          : >"$dsttmp" # No need to fork-exec 'touch'.
-        else
-          $doit touch "$dsttmp"
-        fi
-       }
-     } &&
-     $doit_exec $cpprog "$src" "$dsttmp") &&
+    (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
 
     # and set any options; do chmod last to preserve setuid bits.
     #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/ffi_c/libffi/man/Makefile.in 
new/ext/ffi_c/libffi/man/Makefile.in
--- old/ext/ffi_c/libffi/man/Makefile.in        2020-12-21 15:19:26.000000000 
+0100
+++ new/ext/ffi_c/libffi/man/Makefile.in        2021-03-05 22:34:39.000000000 
+0100
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16.2 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2020 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/ffi_c/libffi/missing new/ext/ffi_c/libffi/missing
--- old/ext/ffi_c/libffi/missing        2020-12-21 15:19:26.000000000 +0100
+++ new/ext/ffi_c/libffi/missing        2021-03-05 22:34:39.000000000 +0100
@@ -3,7 +3,7 @@
 
 scriptversion=2018-03-07.03; # UTC
 
-# Copyright (C) 1996-2020 Free Software Foundation, Inc.
+# Copyright (C) 1996-2018 Free Software Foundation, Inc.
 # Originally written by Fran,cois Pinard <pin...@iro.umontreal.ca>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/ffi_c/libffi/testsuite/Makefile.in 
new/ext/ffi_c/libffi/testsuite/Makefile.in
--- old/ext/ffi_c/libffi/testsuite/Makefile.in  2020-12-21 15:19:26.000000000 
+0100
+++ new/ext/ffi_c/libffi/testsuite/Makefile.in  2021-03-05 22:34:39.000000000 
+0100
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16.2 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2020 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/ffi/platform/powerpc64le-linux/types.conf 
new/lib/ffi/platform/powerpc64le-linux/types.conf
--- old/lib/ffi/platform/powerpc64le-linux/types.conf   1970-01-01 
01:00:00.000000000 +0100
+++ new/lib/ffi/platform/powerpc64le-linux/types.conf   2021-03-05 
22:34:39.000000000 +0100
@@ -0,0 +1,100 @@
+rbx.platform.typedef.*__caddr_t = char
+rbx.platform.typedef.*__qaddr_t = long
+rbx.platform.typedef.__blkcnt64_t = long
+rbx.platform.typedef.__blkcnt_t = long
+rbx.platform.typedef.__blksize_t = long
+rbx.platform.typedef.__clock_t = long
+rbx.platform.typedef.__clockid_t = int
+rbx.platform.typedef.__daddr_t = int
+rbx.platform.typedef.__dev_t = ulong
+rbx.platform.typedef.__fd_mask = long
+rbx.platform.typedef.__fsblkcnt64_t = ulong
+rbx.platform.typedef.__fsblkcnt_t = ulong
+rbx.platform.typedef.__fsfilcnt64_t = ulong
+rbx.platform.typedef.__fsfilcnt_t = ulong
+rbx.platform.typedef.__gid_t = uint
+rbx.platform.typedef.__id_t = uint
+rbx.platform.typedef.__ino64_t = ulong
+rbx.platform.typedef.__ino_t = ulong
+rbx.platform.typedef.__int16_t = short
+rbx.platform.typedef.__int32_t = int
+rbx.platform.typedef.__int64_t = long
+rbx.platform.typedef.__int8_t = char
+rbx.platform.typedef.__intptr_t = long
+rbx.platform.typedef.__key_t = int
+rbx.platform.typedef.__loff_t = long
+rbx.platform.typedef.__mode_t = uint
+rbx.platform.typedef.__nlink_t = ulong
+rbx.platform.typedef.__off64_t = long
+rbx.platform.typedef.__off_t = long
+rbx.platform.typedef.__pid_t = int
+rbx.platform.typedef.__priority_which_t = int
+rbx.platform.typedef.__quad_t = long
+rbx.platform.typedef.__rlim64_t = ulong
+rbx.platform.typedef.__rlim_t = ulong
+rbx.platform.typedef.__rlimit_resource_t = int
+rbx.platform.typedef.__rusage_who_t = int
+rbx.platform.typedef.__sig_atomic_t = int
+rbx.platform.typedef.__socklen_t = uint
+rbx.platform.typedef.__ssize_t = long
+rbx.platform.typedef.__suseconds_t = long
+rbx.platform.typedef.__swblk_t = long
+rbx.platform.typedef.__time_t = long
+rbx.platform.typedef.__timer_t = pointer
+rbx.platform.typedef.__u_char = uchar
+rbx.platform.typedef.__u_int = uint
+rbx.platform.typedef.__u_long = ulong
+rbx.platform.typedef.__u_quad_t = ulong
+rbx.platform.typedef.__u_short = ushort
+rbx.platform.typedef.__uid_t = uint
+rbx.platform.typedef.__uint16_t = ushort
+rbx.platform.typedef.__uint32_t = uint
+rbx.platform.typedef.__uint64_t = ulong
+rbx.platform.typedef.__uint8_t = uchar
+rbx.platform.typedef.__useconds_t = uint
+rbx.platform.typedef.blkcnt_t = long
+rbx.platform.typedef.clockid_t = int
+rbx.platform.typedef.daddr_t = int
+rbx.platform.typedef.dev_t = ulong
+rbx.platform.typedef.fd_mask = long
+rbx.platform.typedef.fsblkcnt_t = ulong
+rbx.platform.typedef.fsfilcnt_t = ulong
+rbx.platform.typedef.gid_t = uint
+rbx.platform.typedef.id_t = uint
+rbx.platform.typedef.ino_t = ulong
+rbx.platform.typedef.int16_t = short
+rbx.platform.typedef.int32_t = int
+rbx.platform.typedef.int64_t = long
+rbx.platform.typedef.int8_t = char
+rbx.platform.typedef.key_t = int
+rbx.platform.typedef.loff_t = long
+rbx.platform.typedef.mode_t = uint
+rbx.platform.typedef.nlink_t = ulong
+rbx.platform.typedef.off_t = long
+rbx.platform.typedef.pid_t = int
+rbx.platform.typedef.pthread_key_t = uint
+rbx.platform.typedef.pthread_once_t = int
+rbx.platform.typedef.pthread_t = ulong
+rbx.platform.typedef.quad_t = long
+rbx.platform.typedef.register_t = long
+rbx.platform.typedef.rlim_t = ulong
+rbx.platform.typedef.sa_family_t = ushort
+rbx.platform.typedef.size_t = ulong
+rbx.platform.typedef.socklen_t = uint
+rbx.platform.typedef.ssize_t = long
+rbx.platform.typedef.suseconds_t = long
+rbx.platform.typedef.time_t = long
+rbx.platform.typedef.timer_t = pointer
+rbx.platform.typedef.u_char = uchar
+rbx.platform.typedef.u_int = uint
+rbx.platform.typedef.u_int16_t = ushort
+rbx.platform.typedef.u_int32_t = uint
+rbx.platform.typedef.u_int64_t = ulong
+rbx.platform.typedef.u_int8_t = uchar
+rbx.platform.typedef.u_long = ulong
+rbx.platform.typedef.u_quad_t = ulong
+rbx.platform.typedef.u_short = ushort
+rbx.platform.typedef.uid_t = uint
+rbx.platform.typedef.uint = uint
+rbx.platform.typedef.ulong = ulong
+rbx.platform.typedef.ushort = ushort
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/ffi/platform/riscv64-linux/types.conf 
new/lib/ffi/platform/riscv64-linux/types.conf
--- old/lib/ffi/platform/riscv64-linux/types.conf       1970-01-01 
01:00:00.000000000 +0100
+++ new/lib/ffi/platform/riscv64-linux/types.conf       2021-03-05 
22:34:39.000000000 +0100
@@ -0,0 +1,104 @@
+rbx.platform.typedef.*__caddr_t = char
+rbx.platform.typedef.*__qaddr_t = long
+rbx.platform.typedef.__blkcnt64_t = long
+rbx.platform.typedef.__blkcnt_t = long
+rbx.platform.typedef.__blksize_t = int
+rbx.platform.typedef.__clock_t = long
+rbx.platform.typedef.__clockid_t = int
+rbx.platform.typedef.__daddr_t = int
+rbx.platform.typedef.__dev_t = ulong
+rbx.platform.typedef.__fd_mask = long
+rbx.platform.typedef.__fsblkcnt64_t = ulong
+rbx.platform.typedef.__fsblkcnt_t = ulong
+rbx.platform.typedef.__fsfilcnt64_t = ulong
+rbx.platform.typedef.__fsfilcnt_t = ulong
+rbx.platform.typedef.__fsword_t = long
+rbx.platform.typedef.__gid_t = uint
+rbx.platform.typedef.__id_t = uint
+rbx.platform.typedef.__ino64_t = ulong
+rbx.platform.typedef.__ino_t = ulong
+rbx.platform.typedef.__int16_t = short
+rbx.platform.typedef.__int32_t = int
+rbx.platform.typedef.__int64_t = long
+rbx.platform.typedef.__int8_t = char
+rbx.platform.typedef.__intptr_t = long
+rbx.platform.typedef.__key_t = int
+rbx.platform.typedef.__loff_t = long
+rbx.platform.typedef.__mode_t = uint
+rbx.platform.typedef.__nlink_t = uint
+rbx.platform.typedef.__off64_t = long
+rbx.platform.typedef.__off_t = long
+rbx.platform.typedef.__pid_t = int
+rbx.platform.typedef.__priority_which_t = int
+rbx.platform.typedef.__quad_t = long
+rbx.platform.typedef.__rlim64_t = ulong
+rbx.platform.typedef.__rlim_t = ulong
+rbx.platform.typedef.__rlimit_resource_t = int
+rbx.platform.typedef.__rusage_who_t = int
+rbx.platform.typedef.__sig_atomic_t = int
+rbx.platform.typedef.__socklen_t = uint
+rbx.platform.typedef.__ssize_t = long
+rbx.platform.typedef.__suseconds_t = long
+rbx.platform.typedef.__syscall_slong_t = long
+rbx.platform.typedef.__syscall_ulong_t = ulong
+rbx.platform.typedef.__time_t = long
+rbx.platform.typedef.__timer_t = pointer
+rbx.platform.typedef.__u_char = uchar
+rbx.platform.typedef.__u_int = uint
+rbx.platform.typedef.__u_long = ulong
+rbx.platform.typedef.__u_quad_t = ulong
+rbx.platform.typedef.__u_short = ushort
+rbx.platform.typedef.__uid_t = uint
+rbx.platform.typedef.__uint16_t = ushort
+rbx.platform.typedef.__uint32_t = uint
+rbx.platform.typedef.__uint64_t = ulong
+rbx.platform.typedef.__uint8_t = uchar
+rbx.platform.typedef.__useconds_t = uint
+rbx.platform.typedef.blkcnt_t = long
+rbx.platform.typedef.blksize_t = int
+rbx.platform.typedef.clock_t = long
+rbx.platform.typedef.clockid_t = int
+rbx.platform.typedef.daddr_t = int
+rbx.platform.typedef.dev_t = ulong
+rbx.platform.typedef.fd_mask = long
+rbx.platform.typedef.fsblkcnt_t = ulong
+rbx.platform.typedef.fsfilcnt_t = ulong
+rbx.platform.typedef.gid_t = uint
+rbx.platform.typedef.id_t = uint
+rbx.platform.typedef.ino_t = ulong
+rbx.platform.typedef.int16_t = short
+rbx.platform.typedef.int32_t = int
+rbx.platform.typedef.int64_t = long
+rbx.platform.typedef.int8_t = char
+rbx.platform.typedef.key_t = int
+rbx.platform.typedef.loff_t = long
+rbx.platform.typedef.mode_t = uint
+rbx.platform.typedef.nlink_t = uint
+rbx.platform.typedef.off_t = long
+rbx.platform.typedef.pid_t = int
+rbx.platform.typedef.pthread_key_t = uint
+rbx.platform.typedef.pthread_once_t = int
+rbx.platform.typedef.pthread_t = ulong
+rbx.platform.typedef.quad_t = long
+rbx.platform.typedef.register_t = long
+rbx.platform.typedef.rlim_t = ulong
+rbx.platform.typedef.sa_family_t = ushort
+rbx.platform.typedef.size_t = ulong
+rbx.platform.typedef.socklen_t = uint
+rbx.platform.typedef.ssize_t = long
+rbx.platform.typedef.suseconds_t = long
+rbx.platform.typedef.time_t = long
+rbx.platform.typedef.timer_t = pointer
+rbx.platform.typedef.u_char = uchar
+rbx.platform.typedef.u_int = uint
+rbx.platform.typedef.u_int16_t = ushort
+rbx.platform.typedef.u_int32_t = uint
+rbx.platform.typedef.u_int64_t = ulong
+rbx.platform.typedef.u_int8_t = uchar
+rbx.platform.typedef.u_long = ulong
+rbx.platform.typedef.u_quad_t = ulong
+rbx.platform.typedef.u_short = ushort
+rbx.platform.typedef.uid_t = uint
+rbx.platform.typedef.uint = uint
+rbx.platform.typedef.ulong = ulong
+rbx.platform.typedef.ushort = ushort
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/ffi/variadic.rb new/lib/ffi/variadic.rb
--- old/lib/ffi/variadic.rb     2020-12-21 15:19:26.000000000 +0100
+++ new/lib/ffi/variadic.rb     2021-03-05 22:34:39.000000000 +0100
@@ -32,15 +32,6 @@
 
 module FFI
   class VariadicInvoker
-    def init(arg_types, type_map)
-      @fixed = Array.new
-      @type_map = type_map
-      arg_types.each_with_index do |type, i|
-        @fixed << type unless type == Type::VARARGS
-      end
-    end
-
-
     def call(*args, &block)
       param_types = Array.new(@fixed)
       param_values = Array.new
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/ffi/version.rb new/lib/ffi/version.rb
--- old/lib/ffi/version.rb      2020-12-21 15:19:26.000000000 +0100
+++ new/lib/ffi/version.rb      2021-03-05 22:34:39.000000000 +0100
@@ -1,3 +1,3 @@
 module FFI
-  VERSION = '1.14.2'
+  VERSION = '1.15.0'
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata        2020-12-21 15:19:26.000000000 +0100
+++ new/metadata        2021-03-05 22:34:39.000000000 +0100
@@ -1,14 +1,14 @@
 --- !ruby/object:Gem::Specification
 name: ffi
 version: !ruby/object:Gem::Version
-  version: 1.14.2
+  version: 1.15.0
 platform: ruby
 authors:
 - Wayne Meissner
 autorequire: 
 bindir: bin
 cert_chain: []
-date: 2020-12-21 00:00:00.000000000 Z
+date: 2021-03-05 00:00:00.000000000 Z
 dependencies:
 - !ruby/object:Gem::Dependency
   name: rake
@@ -613,6 +613,8 @@
 - lib/ffi/platform/powerpc-linux/types.conf
 - lib/ffi/platform/powerpc-openbsd/types.conf
 - lib/ffi/platform/powerpc64-linux/types.conf
+- lib/ffi/platform/powerpc64le-linux/types.conf
+- lib/ffi/platform/riscv64-linux/types.conf
 - lib/ffi/platform/s390-linux/types.conf
 - lib/ffi/platform/s390x-linux/types.conf
 - lib/ffi/platform/sparc-linux/types.conf
@@ -646,6 +648,7 @@
 - lib/ffi/union.rb
 - lib/ffi/variadic.rb
 - lib/ffi/version.rb
+- rakelib/ffi_gem_helper.rb
 - samples/getlogin.rb
 - samples/getpid.rb
 - samples/gettimeofday.rb
@@ -680,7 +683,7 @@
     - !ruby/object:Gem::Version
       version: '0'
 requirements: []
-rubygems_version: 3.1.4
+rubygems_version: 3.2.3
 signing_key: 
 specification_version: 4
 summary: Ruby FFI
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rakelib/ffi_gem_helper.rb 
new/rakelib/ffi_gem_helper.rb
--- old/rakelib/ffi_gem_helper.rb       1970-01-01 01:00:00.000000000 +0100
+++ new/rakelib/ffi_gem_helper.rb       2021-03-05 22:34:39.000000000 +0100
@@ -0,0 +1,65 @@
+require 'bundler'
+require 'bundler/gem_helper'
+
+class FfiGemHelper < Bundler::GemHelper
+  attr_accessor :cross_platforms
+
+  def install
+    super
+
+    task "release:guard_clean" => ["release:update_history"]
+
+    task "release:update_history" do
+      update_history
+    end
+
+    task "release:rubygem_push" => ["gem:windows", "gem:java"]
+  end
+
+  def hfile
+    "CHANGELOG.md"
+  end
+
+  def headline
+    
'([^\w]*)(\d+\.\d+\.\d+(?:\.\w+)?)([^\w]+)([2Y][0Y][0-9Y][0-9Y]-[0-1M][0-9M]-[0-3D][0-9D])([^\w]*|$)'
+  end
+
+  def reldate
+    Time.now.strftime("%Y-%m-%d")
+  end
+
+  def update_history
+    hin = File.read(hfile)
+    hout = hin.sub(/#{headline}/) do
+      raise "#{hfile} isn't up-to-date for version #{version}" unless 
$2==version.to_s
+      $1 + $2 + $3 + reldate + $5
+    end
+    if hout != hin
+      Bundler.ui.confirm "Updating #{hfile} for release."
+      File.write(hfile, hout)
+      Rake::FileUtilsExt.sh "git", "commit", hfile, "-m", "Update release date 
in #{hfile}"
+    end
+  end
+
+  def tag_version
+    Bundler.ui.confirm "Tag release with annotation:"
+    m = File.read(hfile).match(/(?<annotation>#{headline}.*?)#{headline}/m) || 
raise("Unable to find release notes in #{hfile}")
+    Bundler.ui.info(m[:annotation].gsub(/^/, "    "))
+    IO.popen(["git", "tag", "--file=-", version_tag], "w") do |fd|
+      fd.write m[:annotation]
+    end
+    yield if block_given?
+  rescue
+    Bundler.ui.error "Untagging #{version_tag} due to error."
+    sh_with_code "git tag -d #{version_tag}"
+    raise
+  end
+
+  def rubygem_push(path)
+    cross_platforms.each do |ruby_platform|
+      super(path.gsub(/\.gem\z/, "-#{ruby_platform}.gem"))
+    end
+    super(path.gsub(/\.gem\z/, "-java.gem"))
+    super(path)
+  end
+end

Reply via email to