Public bug reported: Imported from Debian bug http://bugs.debian.org/1137597:
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 ** Affects: ruby3.3 (Ubuntu) Importance: Undecided Status: New ** Affects: ruby3.3 (Debian) Importance: Undecided Status: New ** Tags: ftbfs openssl-4.0 ** Bug watch added: Debian Bug tracker #1137597 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1137597 ** Changed in: ruby3.3 (Debian) Remote watch: None => Debian Bug tracker #1137597 ** Tags added: ftbfs openssl-4.0 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2154838 Title: ruby3.3: FTBFS with openssl 4.0 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/ruby3.3/+bug/2154838/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
