[DRE-maint] Bug#1137053: ruby-fastimage: FTBFS in bookworm

Santiago Vila sanvila at debian.org
Tue May 19 00:19:24 BST 2026


Package: src:ruby-fastimage
Version: 2.2.1-1
Severity: serious
Control: fixed -1 2.4.0-1
Tags: ftbfs bookworm

Dear maintainer:

During a rebuild of all packages in bookworm, this package failed to build.

[ Note: The bug is marked as fixed with the version in trixie/forky/sid, but
  packages in bookworm must still build in bookworm ].

Below you will find the last part of the build log (probably the most
relevant part, but not necessarily). If required, the full build log
is available here:

https://people.debian.org/~sanvila/build-logs/bookworm/

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you cannot reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:ruby-fastimage, so that this is still
visible in the BTS web page for this package.

Thanks.

--------------------------------------------------------------------------------
[...]
 debian/rules clean
dh clean --buildsystem=ruby --with ruby
   dh_auto_clean -O--buildsystem=ruby
	dh_ruby --clean
W: XS-Ruby-Versions is deprecated, and will be ignored
   dh_autoreconf_clean -O--buildsystem=ruby
   dh_clean -O--buildsystem=ruby
 debian/rules binary
dh binary --buildsystem=ruby --with ruby
   dh_update_autotools_config -O--buildsystem=ruby
   dh_autoreconf -O--buildsystem=ruby
   dh_auto_configure -O--buildsystem=ruby
	dh_ruby --configure
   dh_auto_build -O--buildsystem=ruby
	dh_ruby --build
   dh_auto_test -O--buildsystem=ruby
	dh_ruby --test
   create-stamp debian/debhelper-build-stamp
   dh_testroot -O--buildsystem=ruby
   dh_prep -O--buildsystem=ruby
   dh_auto_install --destdir=debian/ruby-fastimage/ -O--buildsystem=ruby
	dh_ruby --install /<<PKGBUILDDIR>>/debian/ruby-fastimage

┌──────────────────────────────────────────────────────────────────────────────┐
│ Install files                                                                │
└──────────────────────────────────────────────────────────────────────────────┘

install -d /<<PKGBUILDDIR>>/debian/ruby-fastimage/usr/lib/ruby/vendor_ruby
install -D -m644 /<<PKGBUILDDIR>>/lib/fastimage.rb /<<PKGBUILDDIR>>/debian/ruby-fastimage/usr/lib/ruby/vendor_ruby/fastimage.rb

┌──────────────────────────────────────────────────────────────────────────────┐
│ Install Rubygems integration metadata                                        │
└──────────────────────────────────────────────────────────────────────────────┘

generating gemspec at /<<PKGBUILDDIR>>/debian/ruby-fastimage/usr/share/rubygems-integration/all/specifications/fastimage-2.2.1.gemspec
/usr/bin/ruby3.1 /usr/bin/gem2deb-test-runner

┌──────────────────────────────────────────────────────────────────────────────┐
│ Run tests for ruby3.1 from debian/ruby-test-files.yaml                       │
└──────────────────────────────────────────────────────────────────────────────┘

RUBYLIB=/<<PKGBUILDDIR>>/debian/ruby-fastimage/usr/lib/ruby/vendor_ruby:. GEM_PATH=/<<PKGBUILDDIR>>/debian/ruby-fastimage/usr/share/rubygems-integration/all:/var/lib/gems/3.1.0:/usr/local/lib/ruby/gems/3.1.0:/usr/lib/ruby/gems/3.1.0:/usr/lib/x86_64-linux-gnu/ruby/gems/3.1.0:/usr/share/rubygems-integration/3.1.0:/usr/share/rubygems-integration/all:/usr/lib/x86_64-linux-gnu/rubygems-integration/3.1.0 ruby3.1 -ryaml -e YAML.load_file\(\"debian/ruby-test-files.yaml\"\).each\ \{\ \|f\|\ require\ f\ \}
Loaded suite -e
Started
.....................F
===============================================================================
Failure: test_should_raise_when_asked_to_when_timeout_occurs(FastImageTest)
/<<PKGBUILDDIR>>/test/test.rb:136:in `test_should_raise_when_asked_to_when_timeout_occurs'
     133:   end
     134: 
     135:   def test_should_raise_when_asked_to_when_timeout_occurs
  => 136:     assert_raises(FastImage::ImageFetchFailure) do
     137:       FastImage.size("http://example.com/does_not_exist", :timeout=>0.001, :raise_on_failure=>true)
     138:     end
     139:   end

<FastImage::ImageFetchFailure> expected but was
<IOError(<closed stream>)
/usr/lib/ruby/3.1.0/socket.rb:456:in `__write_nonblock'
/usr/lib/ruby/3.1.0/socket.rb:456:in `write_nonblock'
/usr/lib/ruby/3.1.0/net/protocol.rb:279:in `block in write0'
/usr/lib/ruby/3.1.0/net/protocol.rb:277:in `each'
/usr/lib/ruby/3.1.0/net/protocol.rb:277:in `each_with_index'
/usr/lib/ruby/3.1.0/net/protocol.rb:277:in `write0'
/usr/lib/ruby/3.1.0/net/protocol.rb:250:in `block in write'
/usr/lib/ruby/3.1.0/net/protocol.rb:267:in `writing'
/usr/lib/ruby/3.1.0/net/protocol.rb:249:in `write'
/usr/lib/ruby/3.1.0/net/http/generic_request.rb:333:in `write_header'
/usr/lib/ruby/3.1.0/net/http/generic_request.rb:129:in `exec'
/usr/lib/ruby/3.1.0/net/http.rb:1568:in `block in transport_request'
/usr/lib/ruby/3.1.0/net/http.rb:1566:in `catch'
/usr/lib/ruby/3.1.0/net/http.rb:1566:in `transport_request'
/usr/lib/ruby/3.1.0/net/http.rb:1539:in `request'
/usr/lib/ruby/vendor_ruby/fake_web/ext/net_http.rb:39:in `request_with_fakeweb'
/usr/lib/ruby/3.1.0/net/http.rb:1532:in `block in request'
/usr/lib/ruby/3.1.0/net/http.rb:966:in `start'
/usr/lib/ruby/3.1.0/net/http.rb:1530:in `request'
/usr/lib/ruby/vendor_ruby/fake_web/ext/net_http.rb:39:in `request_with_fakeweb'
/usr/lib/ruby/3.1.0/net/http.rb:1440:in `request_get'
/<<PKGBUILDDIR>>/lib/fastimage.rb:295:in `fetch_using_http_from_parsed_uri'
/<<PKGBUILDDIR>>/lib/fastimage.rb:277:in `fetch_using_http'
/<<PKGBUILDDIR>>/lib/fastimage.rb:241:in `initialize'
/<<PKGBUILDDIR>>/lib/fastimage.rb:137:in `new'
/<<PKGBUILDDIR>>/lib/fastimage.rb:137:in `size'
/<<PKGBUILDDIR>>/test/test.rb:137:in `block in test_should_raise_when_asked_to_when_timeout_occurs'
/usr/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/assertions.rb:1869:in `block (2 levels) in _assert_raise'
/usr/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/assertions.rb:55:in `block in assert_block'
/usr/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/assertions.rb:1821:in `_wrap_assertion'
/usr/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/assertions.rb:54:in `assert_block'
/usr/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/assertions.rb:1867:in `block in _assert_raise'
/usr/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/assertions.rb:1826:in `_wrap_assertion'
/usr/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/assertions.rb:1853:in `_assert_raise'
/usr/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/assertions.rb:287:in `assert_raise'
/<<PKGBUILDDIR>>/test/test.rb:136:in `test_should_raise_when_asked_to_when_timeout_occurs'
/usr/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/testcase.rb:871:in `run_test'
/usr/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/testcase.rb:566:in `block (2 levels) in run'
/usr/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/fixture.rb:276:in `block in create_fixtures_runner'
/usr/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/fixture.rb:276:in `block in create_fixtures_runner'
/usr/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/fixture.rb:257:in `run_fixture'
/usr/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/fixture.rb:292:in `run_setup'
/usr/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/testcase.rb:564:in `block in run'
/usr/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/testcase.rb:563:in `catch'
/usr/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/testcase.rb:563:in `run'
/usr/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/testsuite.rb:124:in `run_test'
/usr/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/testsuite.rb:53:in `run'
/usr/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/testsuite.rb:124:in `run_test'
/usr/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/testsuite.rb:53:in `run'
/usr/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/ui/testrunnermediator.rb:67:in `run_suite'
/usr/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/ui/testrunnermediator.rb:45:in `block (2 levels) in run'
/usr/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/ui/testrunnermediator.rb:102:in `with_listener'
/usr/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/ui/testrunnermediator.rb:41:in `block in run'
/usr/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/ui/testrunnermediator.rb:39:in `catch'
/usr/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/ui/testrunnermediator.rb:39:in `run'
/usr/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/ui/testrunner.rb:40:in `start_mediator'
/usr/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/ui/testrunner.rb:25:in `start'
/usr/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/ui/testrunnerutilities.rb:24:in `run'
/usr/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/autorunner.rb:458:in `block in run'
/usr/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/autorunner.rb:514:in `change_work_directory'
/usr/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/autorunner.rb:457:in `run'
/usr/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/autorunner.rb:66:in `run'
/usr/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit.rb:518:in `block (2 levels) in <top (required)>'
>
===============================================================================
...................E
===============================================================================
Error: test_should_return_nil_if_timeout_occurs(FastImageTest): IOError: closed stream
/usr/lib/ruby/3.1.0/socket.rb:456:in `__write_nonblock'
/usr/lib/ruby/3.1.0/socket.rb:456:in `write_nonblock'
/usr/lib/ruby/3.1.0/net/protocol.rb:279:in `block in write0'
/usr/lib/ruby/3.1.0/net/protocol.rb:277:in `each'
/usr/lib/ruby/3.1.0/net/protocol.rb:277:in `each_with_index'
/usr/lib/ruby/3.1.0/net/protocol.rb:277:in `write0'
/usr/lib/ruby/3.1.0/net/protocol.rb:250:in `block in write'
/usr/lib/ruby/3.1.0/net/protocol.rb:267:in `writing'
/usr/lib/ruby/3.1.0/net/protocol.rb:249:in `write'
/usr/lib/ruby/3.1.0/net/http/generic_request.rb:333:in `write_header'
/usr/lib/ruby/3.1.0/net/http/generic_request.rb:129:in `exec'
/usr/lib/ruby/3.1.0/net/http.rb:1568:in `block in transport_request'
/usr/lib/ruby/3.1.0/net/http.rb:1566:in `catch'
/usr/lib/ruby/3.1.0/net/http.rb:1566:in `transport_request'
/usr/lib/ruby/3.1.0/net/http.rb:1539:in `request'
/usr/lib/ruby/vendor_ruby/fake_web/ext/net_http.rb:39:in `request_with_fakeweb'
/usr/lib/ruby/3.1.0/net/http.rb:1532:in `block in request'
/usr/lib/ruby/3.1.0/net/http.rb:966:in `start'
/usr/lib/ruby/3.1.0/net/http.rb:1530:in `request'
/usr/lib/ruby/vendor_ruby/fake_web/ext/net_http.rb:39:in `request_with_fakeweb'
/usr/lib/ruby/3.1.0/net/http.rb:1440:in `request_get'
/<<PKGBUILDDIR>>/lib/fastimage.rb:295:in `fetch_using_http_from_parsed_uri'
/<<PKGBUILDDIR>>/lib/fastimage.rb:277:in `fetch_using_http'
/<<PKGBUILDDIR>>/lib/fastimage.rb:241:in `initialize'
/<<PKGBUILDDIR>>/lib/fastimage.rb:137:in `new'
/<<PKGBUILDDIR>>/lib/fastimage.rb:137:in `size'
/<<PKGBUILDDIR>>/test/test.rb:126:in `test_should_return_nil_if_timeout_occurs'
     123:   end
     124: 
     125:   def test_should_return_nil_if_timeout_occurs
  => 126:     assert_nil FastImage.size("http://example.com/does_not_exist", :timeout=>0.001)
     127:   end
     128: 
     129:   def test_should_raise_when_asked_to_when_size_cannot_be_found
===============================================================================
........
Finished in 0.303394703 seconds.
-------------------------------------------------------------------------------
50 tests, 593 assertions, 1 failures, 1 errors, 0 pendings, 0 omissions, 0 notifications
96% passed
-------------------------------------------------------------------------------
164.80 tests/s, 1954.55 assertions/s
ERROR: Test "ruby3.1" failed. Exiting.
dh_auto_install: error: dh_ruby --install /<<PKGBUILDDIR>>/debian/ruby-fastimage returned exit code 1
make: *** [debian/rules:15: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------



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