Package: ruby3.3
Version: 3.3.8-2
Severity: normal
Tags: sid
control: affects -1 src:openssl
User: [email protected]
Usertags: openssl-4.0
OpenSSL 4.0 is in experimental. This package fails to build against it:
| x86_64-linux-gnu-gcc -I. -I../../.ext/include/x86_64-linux-gnu
-I../.././include -I../.././ext/openssl -DRUBY_EXTCONF_H=\"extconf.h\"
-Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -g -O2
-Werror=implicit-function-declaration
-ffile-prefix-map=/build/reproducible-path/ruby3.3-3.3.8=.
-fstack-protector-strong -fstack-clash-protection -Wformat
-Werror=format-security -fcf-protection -fPIC -o ossl_asn1.o -c ossl_asn1.c
| ossl_asn1.c: In function ‘asn1time_to_time’:
| ossl_asn1.c:28:17: error: invalid use of incomplete typedef ‘ASN1_TIME’
{aka ‘const struct asn1_string_st’}
| 28 | switch (time->type) {
| | ^~
| ossl_asn1.c:30:42: error: invalid use of incomplete typedef ‘ASN1_TIME’
{aka ‘const struct asn1_string_st’}
| 30 | count = sscanf((const char *)time->data,
"%2d%2d%2d%2d%2d%2dZ",
| | ^~
| ossl_asn1.c:38:25: error: invalid use of incomplete typedef ‘ASN1_TIME’
{aka ‘const struct asn1_string_st’}
| 38 | time->data);
| | ^~
| ossl_asn1.c:47:42: error: invalid use of incomplete typedef ‘ASN1_TIME’
{aka ‘const struct asn1_string_st’}
| 47 | count = sscanf((const char *)time->data,
"%4d%2d%2d%2d%2d%2dZ",
| | ^~
| ossl_asn1.c:55:29: error: invalid use of incomplete typedef ‘ASN1_TIME’
{aka ‘const struct asn1_string_st’}
| 55 | time->data);
| | ^~
| In file included from ../.././include/ruby/internal/value_type.h:30,
| from ../.././include/ruby/internal/fl_type.h:38,
| from ../.././include/ruby/internal/core/rstring.h:30,
| from ../.././include/ruby/internal/arithmetic/char.h:29,
| from ../.././include/ruby/internal/arithmetic.h:24,
| from ../.././include/ruby/ruby.h:28,
| from ../.././include/ruby.h:38,
| from ossl.h:16,
| from ossl_asn1.c:10:
| ossl_asn1.c: In function ‘asn1str_to_str’:
| ossl_asn1.c:100:40: error: invalid use of incomplete typedef
‘ASN1_STRING’ {aka ‘const struct asn1_string_st’}
| 100 | return rb_str_new((const char *)str->data, str->length);
| | ^~
| ../.././include/ruby/internal/constant_p.h:33:55: note: in definition of
macro ‘RBIMPL_CONSTANT_P’
| 33 | # define RBIMPL_CONSTANT_P(expr) __builtin_constant_p(expr)
| | ^~~~
| ossl_asn1.c:100:12: note: in expansion of macro ‘rb_str_new’
| 100 | return rb_str_new((const char *)str->data, str->length);
| | ^~~~~~~~~~
| ossl_asn1.c:100:51: error: invalid use of incomplete typedef
‘ASN1_STRING’ {aka ‘const struct asn1_string_st’}
| 100 | return rb_str_new((const char *)str->data, str->length);
| | ^~
| ../.././include/ruby/internal/constant_p.h:33:55: note: in definition of
macro ‘RBIMPL_CONSTANT_P’
| 33 | # define RBIMPL_CONSTANT_P(expr) __builtin_constant_p(expr)
| | ^~~~
| ossl_asn1.c:100:12: note: in expansion of macro ‘rb_str_new’
| 100 | return rb_str_new((const char *)str->data, str->length);
| | ^~~~~~~~~~
| In file included from ../.././include/ruby/intern.h:56,
| from ../.././include/ruby/ruby.h:194:
| ossl_asn1.c:100:40: error: invalid use of incomplete typedef
‘ASN1_STRING’ {aka ‘const struct asn1_string_st’}
| 100 | return rb_str_new((const char *)str->data, str->length);
| | ^~
| ../.././include/ruby/internal/intern/string.h:1502:21: note: in definition of
macro ‘rb_str_new’
| 1502 | rb_str_new) ((str), (len)))
| | ^~~
| ossl_asn1.c:100:51: error: invalid use of incomplete typedef
‘ASN1_STRING’ {aka ‘const struct asn1_string_st’}
| 100 | return rb_str_new((const char *)str->data, str->length);
| | ^~
| ../.././include/ruby/internal/intern/string.h:1502:28: note: in definition of
macro ‘rb_str_new’
| 1502 | rb_str_new) ((str), (len)))
| | ^~~
| ossl_asn1.c: In function ‘asn1integer_to_num’:
| ossl_asn1.c:115:11: error: invalid use of incomplete typedef
‘ASN1_INTEGER’ {aka ‘const struct asn1_string_st’}
| 115 | if (ai->type == V_ASN1_ENUMERATED)
| | ^~
| ossl_asn1.c: In function ‘obj_to_asn1bstr’:
| ossl_asn1.c:224:9: error: invalid use of incomplete typedef
‘ASN1_BIT_STRING’ {aka ‘struct asn1_string_st’}
| 224 | bstr->flags &= ~(ASN1_STRING_FLAG_BITS_LEFT|0x07); /* clear */
| | ^~
| ossl_asn1.c:224:22: error: ‘ASN1_STRING_FLAG_BITS_LEFT’ undeclared (first
use in this function)
| 224 | bstr->flags &= ~(ASN1_STRING_FLAG_BITS_LEFT|0x07); /* clear */
| | ^~~~~~~~~~~~~~~~~~~~~~~~~~
| ossl_asn1.c:224:22: note: each undeclared identifier is reported only once
for each function it appears in
| ossl_asn1.c:225:9: error: invalid use of incomplete typedef
‘ASN1_BIT_STRING’ {aka ‘struct asn1_string_st’}
| 225 | bstr->flags |= ASN1_STRING_FLAG_BITS_LEFT | unused_bits;
| | ^~
| ossl_asn1.c: In function ‘decode_bstr’:
| ossl_asn1.c:359:15: error: invalid use of incomplete typedef
‘ASN1_BIT_STRING’ {aka ‘struct asn1_string_st’}
| 359 | len = bstr->length;
| | ^~
| ossl_asn1.c:361:12: error: invalid use of incomplete typedef
‘ASN1_BIT_STRING’ {aka ‘struct asn1_string_st’}
| 361 | if(bstr->flags & ASN1_STRING_FLAG_BITS_LEFT)
| | ^~
| ossl_asn1.c:361:22: error: ‘ASN1_STRING_FLAG_BITS_LEFT’ undeclared (first
use in this function)
| 361 | if(bstr->flags & ASN1_STRING_FLAG_BITS_LEFT)
| | ^~~~~~~~~~~~~~~~~~~~~~~~~~
| ossl_asn1.c:362:28: error: invalid use of incomplete typedef
‘ASN1_BIT_STRING’ {aka ‘struct asn1_string_st’}
| 362 | *unused_bits = bstr->flags & 0x07;
| | ^~
| ossl_asn1.c:363:40: error: invalid use of incomplete typedef
‘ASN1_BIT_STRING’ {aka ‘struct asn1_string_st’}
| 363 | ret = rb_str_new((const char *)bstr->data, len);
| | ^~
| ../.././include/ruby/internal/constant_p.h:33:55: note: in definition of
macro ‘RBIMPL_CONSTANT_P’
| 33 | # define RBIMPL_CONSTANT_P(expr) __builtin_constant_p(expr)
| | ^~~~
| ossl_asn1.c:363:11: note: in expansion of macro ‘rb_str_new’
| 363 | ret = rb_str_new((const char *)bstr->data, len);
| | ^~~~~~~~~~
| ossl_asn1.c:363:40: error: invalid use of incomplete typedef
‘ASN1_BIT_STRING’ {aka ‘struct asn1_string_st’}
| 363 | ret = rb_str_new((const char *)bstr->data, len);
| | ^~
| ../.././include/ruby/internal/intern/string.h:1502:21: note: in definition of
macro ‘rb_str_new’
| 1502 | rb_str_new) ((str), (len)))
| | ^~~
| make[4]: *** [Makefile:326: ossl_asn1.o] Error 1
| make[4]: Leaving directory
'/build/reproducible-path/ruby3.3-3.3.8/ext/openssl'
Full buildlog
https://breakpoint.cc/openssl-rebuild/logs-4/attempted/ruby3.3_3.3.8-2_amd64-2026-04-19T08:07:31Z
It appears to be fixed upstrea, judging by
https://bugs.ruby-lang.org/projects/ruby-master/repository/git/revisions/b41b143018b5f4a2ef0a474d5b93f06fcfef539b
https://bugs.ruby-lang.org/projects/ruby-master/repository/git/revisions/de1d14c0caea84baa106a356cc4c85ee3d38faca
https://bugs.ruby-lang.org/projects/ruby-master/repository/git/revisions/f5f9fe243535d19af6a7e78ccd456f75fe990ac1
but I did not verify.
Sebastian