[DRE-maint] Bug#888131: ruby-oj: FTBFS on ruby2.5: too many arguments to function 'rb_struct_ptr'

Chris West (Faux) debian at fau.xxx
Tue Jan 23 15:21:57 UTC 2018


Source: ruby-oj
Version: 2.17.4-1
Severity: important
User: debian-ruby at lists.debian.org
Usertags: ruby2.5

Dear Maintainer,

This package fails to build against ruby2.5. Soon, there will
be a transition to ruby2.5, and this package will FTBFS in sid.

There may be some details on the wiki about common problems:
https://wiki.debian.org/Teams/Ruby/Ruby25Transition

Build log excerpt:

current directory: /build/ruby-oj-2.17.4/ext/oj
make V=1 "DESTDIR="
make[1]: Entering directory '/build/ruby-oj-2.17.4/ext/oj'
...
gcc -I. -I/usr/include/x86_64-linux-gnu/ruby-2.5.0 -I/usr/include/ruby-2.5.0/ruby/backward -I/usr/include/ruby-2.5.0 -I. -Wdate-time -D_FORTIFY_SOURCE=2   -DRUBY_TYPE=ruby -DRUBY_RUBY -DRUBY_VERSION=2.5.0 -DRUBY_VERSION_MAJOR=2 -DRUBY_VERSION_MINOR=5 -DRUBY_VERSION_MICRO=0 -DHAS_RB_TIME_TIMESPEC=1 -DHAS_ENCODING_SUPPORT=1 -DHAS_NANO_TIME=1 -DHAS_IVAR_HELPERS=1 -DHAS_EXCEPTION_MAGIC=1 -DHAS_PROC_WITH_BLOCK=1 -DHAS_TOP_LEVEL_ST_H=0 -DNEEDS_RATIONAL=0 -DIS_WINDOWS=0 -DUSE_PTHREAD_MUTEX=1 -DUSE_RB_MUTEX=0 -DDATETIME_1_8=0 -DNO_TIME_ROUND_PAD=0 -DHAS_DATA_OBJECT_WRAP=1 -Wall -fPIC -g -O2 -fdebug-prefix-map=/build/ruby2.5-ed5dT1/ruby2.5-2.5.0=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC  -o dump.o -c dump.c
dump.c: In function 'dump_struct_obj':
dump.c:1880:2: warning: 'rb_struct_ptr' is deprecated [-Wdeprecated-declarations]
  for (i = (int)RSTRUCT_LEN(obj), vp = RSTRUCT_CONST_PTR(obj); 0 < i; i--, vp++) {
  ^~~
In file included from /usr/include/ruby-2.5.0/ruby/ruby.h:24:0,
                 from /usr/include/ruby-2.5.0/ruby.h:33,
                 from oj.h:43,
                 from dump.c:43:
/usr/include/ruby-2.5.0/ruby/backward.h:47:37: note: declared here
 DECLARE_DEPRECATED_INTERNAL_FEATURE(rb_struct_ptr);
                                     ^
/usr/include/x86_64-linux-gnu/ruby-2.5.0/ruby/config.h:129:52: note: in definition of macro 'NORETURN'
 #define NORETURN(x) __attribute__ ((__noreturn__)) x
                                                    ^
/usr/include/ruby-2.5.0/ruby/backward.h:39:14: note: in expansion of macro 'ERRORFUNC'
     NORETURN(ERRORFUNC(("deprecated internal function"), DEPRECATED(void func(void))))
              ^~~~~~~~~
/usr/include/ruby-2.5.0/ruby/backward.h:39:58: note: in expansion of macro 'DEPRECATED'
     NORETURN(ERRORFUNC(("deprecated internal function"), DEPRECATED(void func(void))))
                                                          ^~~~~~~~~~
/usr/include/ruby-2.5.0/ruby/backward.h:47:1: note: in expansion of macro 'DECLARE_DEPRECATED_INTERNAL_FEATURE'
 DECLARE_DEPRECATED_INTERNAL_FEATURE(rb_struct_ptr);
 ^
In file included from /usr/include/ruby-2.5.0/ruby.h:33:0,
                 from oj.h:43,
from dump.c:43:








/usr/include/ruby-2.5.0/ruby/ruby.h:1189:33: error: too many arguments to function 'rb_struct_ptr'
 #define RSTRUCT_PTR(st)         rb_struct_ptr(st)








^
dump.c:1878:47: note: in expansion of macro 'RSTRUCT_PTR'
 # define RSTRUCT_CONST_PTR(st) (const VALUE *)RSTRUCT_PTR(st)
                                               ^~~~~~~~~~~
dump.c:1880:39: note: in expansion of macro 'RSTRUCT_CONST_PTR'
  for (i = (int)RSTRUCT_LEN(obj), vp = RSTRUCT_CONST_PTR(obj); 0 < i; i--, vp++) {
                                       ^~~~~~~~~~~~~~~~~
In file included from /usr/include/ruby-2.5.0/ruby/ruby.h:24:0,
                 from /usr/include/ruby-2.5.0/ruby.h:33,
                 from oj.h:43,
                 from dump.c:43:
/usr/include/ruby-2.5.0/ruby/backward.h:47:37: note: declared here
 DECLARE_DEPRECATED_INTERNAL_FEATURE(rb_struct_ptr);
                                     ^
/usr/include/x86_64-linux-gnu/ruby-2.5.0/ruby/config.h:129:52: note: in definition of macro 'NORETURN'
 #define NORETURN(x) __attribute__ ((__noreturn__)) x
                                                    ^
/usr/include/ruby-2.5.0/ruby/backward.h:39:14: note: in expansion of macro 'ERRORFUNC'
     NORETURN(ERRORFUNC(("deprecated internal function"), DEPRECATED(void func(void))))
              ^~~~~~~~~
/usr/include/ruby-2.5.0/ruby/backward.h:39:58: note: in expansion of macro 'DEPRECATED'
     NORETURN(ERRORFUNC(("deprecated internal function"), DEPRECATED(void func(void))))
                                                          ^~~~~~~~~~
/usr/include/ruby-2.5.0/ruby/backward.h:47:1: note: in expansion of macro 'DECLARE_DEPRECATED_INTERNAL_FEATURE'
 DECLARE_DEPRECATED_INTERNAL_FEATURE(rb_struct_ptr);
 ^
dump.c:1878:32: error: invalid use of void expression
 # define RSTRUCT_CONST_PTR(st) (const VALUE *)RSTRUCT_PTR(st)
                                ^
dump.c:1880:39: note: in expansion of macro 'RSTRUCT_CONST_PTR'
  for (i = (int)RSTRUCT_LEN(obj), vp = RSTRUCT_CONST_PTR(obj); 0 < i; i--, vp++) {
                                       ^~~~~~~~~~~~~~~~~
Makefile:242: recipe for target 'dump.o' failed
make[1]: Leaving directory '/build/ruby-oj-2.17.4/ext/oj'
make[1]: *** [dump.o] Error 1
/usr/lib/ruby/2.5.0/rubygems/ext/builder.rb:92:in `run': make failed, exit code 2 (Gem::InstallError)
	from /usr/lib/ruby/2.5.0/rubygems/ext/builder.rb:52:in `block in make'
	from /usr/lib/ruby/2.5.0/rubygems/ext/builder.rb:44:in `each'
	from /usr/lib/ruby/2.5.0/rubygems/ext/builder.rb:44:in `make'
	from /usr/lib/ruby/2.5.0/rubygems/ext/ext_conf_builder.rb:61:in `block in build'
	from /usr/lib/ruby/2.5.0/tempfile.rb:295:in `open'
	from /usr/lib/ruby/2.5.0/rubygems/ext/ext_conf_builder.rb:30:in `build'
	from /usr/lib/ruby/vendor_ruby/gem2deb/extension_builder.rb:76:in `block in build_and_install'
	from /usr/lib/ruby/vendor_ruby/gem2deb/extension_builder.rb:70:in `chdir'
	from /usr/lib/ruby/vendor_ruby/gem2deb/extension_builder.rb:70:in `build_and_install'
	from /usr/lib/ruby/vendor_ruby/gem2deb/extension_builder.rb:108:in `block in build_all_extensions'
	from /usr/lib/ruby/vendor_ruby/gem2deb/extension_builder.rb:105:in `each'
	from /usr/lib/ruby/vendor_ruby/gem2deb/extension_builder.rb:105:in `build_all_extensions'
	from /usr/lib/ruby/vendor_ruby/gem2deb/extension_builder.rb:121:in `<main>'
/usr/lib/ruby/vendor_ruby/gem2deb.rb:56:in `run': /usr/bin/ruby2.5 /usr/lib/ruby/vendor_ruby/gem2deb/extension_builder.rb /build/ruby-oj-2.17.4 debian/ruby-oj (Gem2Deb::CommandFailed)
	from /usr/lib/ruby/vendor_ruby/gem2deb.rb:67:in `run_ruby'
	from /usr/lib/ruby/vendor_ruby/gem2deb/installer.rb:37:in `block in install_files_and_build_extensions'
	from /usr/lib/ruby/vendor_ruby/gem2deb/installer.rb:34:in `each'
	from /usr/lib/ruby/vendor_ruby/gem2deb/installer.rb:34:in `install_files_and_build_extensions'
	from /usr/lib/ruby/vendor_ruby/gem2deb/dh_ruby.rb:84:in `block in install'
	from /usr/lib/ruby/vendor_ruby/gem2deb/dh_ruby.rb:82:in `each'
	from /usr/lib/ruby/vendor_ruby/gem2deb/dh_ruby.rb:82:in `install'
	from /usr/bin/dh_ruby:94:in `<main>'
dh_auto_install: dh_ruby --install /build/ruby-oj-2.17.4/debian/ruby-oj returned exit code 1
make: *** [binary] Error 1
debian/rules:15: recipe for target 'binary' failed
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2

Full build log:
https://rbuild.fau.xxx/2018-01-23/ruby-oj.log

Please fix it!

Cheers,
Chris.



More information about the Pkg-ruby-extras-maintainers mailing list