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

Reply via email to