[DRE-maint] Bug#1084360: ruby-devise-two-factor: FTBFS: failing tests
Santiago Vila
sanvila at debian.org
Mon Oct 7 09:40:54 BST 2024
Package: src:ruby-devise-two-factor
Version: 4.0.2-1
Severity: serious
Tags: ftbfs
Dear maintainer:
During a rebuild of all packages in unstable, your package failed to build:
--------------------------------------------------------------------------------
[...]
debian/rules build
dh build --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
fakeroot debian/rules binary
dh binary --buildsystem=ruby --with ruby
dh_testroot -O--buildsystem=ruby
dh_prep -O--buildsystem=ruby
dh_auto_install --destdir=debian/ruby-devise-two-factor/ -O--buildsystem=ruby
dh_ruby --install /<<PKGBUILDDIR>>/debian/ruby-devise-two-factor
┌──────────────────────────────────────────────────────────────────────────────┐
│ Install files │
└──────────────────────────────────────────────────────────────────────────────┘
install -d /<<PKGBUILDDIR>>/debian/ruby-devise-two-factor/usr/lib/ruby/vendor_ruby
install -D -m644 /<<PKGBUILDDIR>>/lib/devise-two-factor.rb /<<PKGBUILDDIR>>/debian/ruby-devise-two-factor/usr/lib/ruby/vendor_ruby/devise-two-factor.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/devise_two_factor/models/two_factor_authenticatable.rb /<<PKGBUILDDIR>>/debian/ruby-devise-two-factor/usr/lib/ruby/vendor_ruby/devise_two_factor/models/two_factor_authenticatable.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/devise_two_factor/models/two_factor_backupable.rb /<<PKGBUILDDIR>>/debian/ruby-devise-two-factor/usr/lib/ruby/vendor_ruby/devise_two_factor/models/two_factor_backupable.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/devise_two_factor/models.rb /<<PKGBUILDDIR>>/debian/ruby-devise-two-factor/usr/lib/ruby/vendor_ruby/devise_two_factor/models.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/devise_two_factor/spec_helpers/two_factor_authenticatable_shared_examples.rb /<<PKGBUILDDIR>>/debian/ruby-devise-two-factor/usr/lib/ruby/vendor_ruby/devise_two_factor/spec_helpers/two_factor_authenticatable_shared_examples.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/devise_two_factor/spec_helpers/two_factor_backupable_shared_examples.rb /<<PKGBUILDDIR>>/debian/ruby-devise-two-factor/usr/lib/ruby/vendor_ruby/devise_two_factor/spec_helpers/two_factor_backupable_shared_examples.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/devise_two_factor/spec_helpers.rb /<<PKGBUILDDIR>>/debian/ruby-devise-two-factor/usr/lib/ruby/vendor_ruby/devise_two_factor/spec_helpers.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/devise_two_factor/strategies/two_factor_authenticatable.rb /<<PKGBUILDDIR>>/debian/ruby-devise-two-factor/usr/lib/ruby/vendor_ruby/devise_two_factor/strategies/two_factor_authenticatable.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/devise_two_factor/strategies/two_factor_backupable.rb /<<PKGBUILDDIR>>/debian/ruby-devise-two-factor/usr/lib/ruby/vendor_ruby/devise_two_factor/strategies/two_factor_backupable.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/devise_two_factor/strategies.rb /<<PKGBUILDDIR>>/debian/ruby-devise-two-factor/usr/lib/ruby/vendor_ruby/devise_two_factor/strategies.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/devise_two_factor/version.rb /<<PKGBUILDDIR>>/debian/ruby-devise-two-factor/usr/lib/ruby/vendor_ruby/devise_two_factor/version.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/generators/devise_two_factor/devise_two_factor_generator.rb /<<PKGBUILDDIR>>/debian/ruby-devise-two-factor/usr/lib/ruby/vendor_ruby/generators/devise_two_factor/devise_two_factor_generator.rb
┌──────────────────────────────────────────────────────────────────────────────┐
│ Install Rubygems integration metadata │
└──────────────────────────────────────────────────────────────────────────────┘
generating gemspec at /<<PKGBUILDDIR>>/debian/ruby-devise-two-factor/usr/share/rubygems-integration/all/specifications/devise-two-factor-4.0.2.gemspec
dh_installchangelogs -pruby-devise-two-factor /<<PKGBUILDDIR>>/CHANGELOG.md upstream
/usr/bin/ruby3.1 /usr/bin/gem2deb-test-runner
┌──────────────────────────────────────────────────────────────────────────────┐
│ Checking Rubygems dependency resolution on ruby3.1 │
└──────────────────────────────────────────────────────────────────────────────┘
RUBYLIB=/<<PKGBUILDDIR>>/debian/ruby-devise-two-factor/usr/lib/ruby/vendor_ruby:. GEM_PATH=/<<PKGBUILDDIR>>/debian/ruby-devise-two-factor/usr/share/rubygems-integration/all:/<<PKGBUILDDIR>>/debian/.debhelper/generated/_source/home/.local/share/gem/ruby/3.1.0:/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 -e gem\ \"devise-two-factor\"
/usr/lib/ruby/vendor_ruby/rubygems/specification.rb:1477:in `rescue in block in activate_dependencies': Could not find 'attr_encrypted' (>= 1.3, < 4, != 2) among 133 total gem(s) (Gem::MissingSpecError)
Checked in 'GEM_PATH=/<<PKGBUILDDIR>>/debian/ruby-devise-two-factor/usr/share/rubygems-integration/all:/<<PKGBUILDDIR>>/debian/.debhelper/generated/_source/home/.local/share/gem/ruby/3.1.0:/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' at: /<<PKGBUILDDIR>>/debian/ruby-devise-two-factor/usr/share/rubygems-integration/all/specifications/devise-two-factor-4.0.2.gemspec, execute `gem env` for more information
from /usr/lib/ruby/vendor_ruby/rubygems/specification.rb:1474:in `block in activate_dependencies'
from /usr/lib/ruby/vendor_ruby/rubygems/specification.rb:1463:in `each'
from /usr/lib/ruby/vendor_ruby/rubygems/specification.rb:1463:in `activate_dependencies'
from /usr/lib/ruby/vendor_ruby/rubygems/specification.rb:1445:in `activate'
from /usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_gem.rb:63:in `block in gem'
from /usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_gem.rb:63:in `synchronize'
from /usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_gem.rb:63:in `gem'
from -e:1:in `<main>'
/usr/lib/ruby/vendor_ruby/rubygems/dependency.rb:317:in `to_specs': Could not find 'attr_encrypted' (>= 1.3, < 4, != 2) - did find: [attr_encrypted-4.1.0] (Gem::MissingSpecVersionError)
Checked in 'GEM_PATH=/<<PKGBUILDDIR>>/debian/ruby-devise-two-factor/usr/share/rubygems-integration/all:/<<PKGBUILDDIR>>/debian/.debhelper/generated/_source/home/.local/share/gem/ruby/3.1.0:/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' , execute `gem env` for more information
from /usr/lib/ruby/vendor_ruby/rubygems/specification.rb:1475:in `block in activate_dependencies'
from /usr/lib/ruby/vendor_ruby/rubygems/specification.rb:1463:in `each'
from /usr/lib/ruby/vendor_ruby/rubygems/specification.rb:1463:in `activate_dependencies'
from /usr/lib/ruby/vendor_ruby/rubygems/specification.rb:1445:in `activate'
from /usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_gem.rb:63:in `block in gem'
from /usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_gem.rb:63:in `synchronize'
from /usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_gem.rb:63:in `gem'
from -e:1:in `<main>'
abbrev (default: 0.1.0)
actionpack (6.1.7.3)
actionview (6.1.7.3)
activemodel (6.1.7.3)
activesupport (6.1.7.3)
attr_encrypted (4.1.0)
base64 (default: 0.1.1)
bcrypt (3.1.18)
benchmark (default: 0.2.0)
bigdecimal (default: 3.1.1)
builder (3.2.4)
bundler (default: 2.3.7)
cgi (default: 0.3.5)
concurrent-ruby (1.2.3)
concurrent-ruby-edge (0.7.0)
crass (1.0.6)
csv (default: 3.2.2)
date (default: 3.2.2)
debug (1.4.0)
delegate (default: 0.2.0)
devise (4.9.3)
did_you_mean (default: 1.6.1)
diff-lcs (1.5.1)
digest (default: 3.1.0)
drb (default: 2.1.0)
encryptor (3.0.0)
english (default: 0.7.1)
erb (default: 2.2.3)
error_highlight (default: 0.3.0)
erubi (1.12.0)
etc (default: 1.3.0)
faker (2.21.0)
fcntl (default: 1.0.1)
fiddle (default: 1.1.0)
fileutils (default: 1.6.0)
find (default: 0.1.1)
forwardable (default: 1.3.2)
getoptlong (default: 0.1.1)
i18n (1.14.5)
io-console (default: 0.5.11)
io-nonblock (default: 0.1.0)
io-wait (default: 0.2.1)
ipaddr (default: 1.2.4)
irb (default: 1.4.1)
json (default: 2.6.1)
logger (default: 1.5.0)
loofah (2.22.0)
matrix (0.4.2)
method_source (1.0.0)
mini_portile2 (2.8.5)
minitest (5.15.0)
mutex_m (default: 0.1.1)
net-ftp (0.1.3)
net-http (default: 0.2.0)
net-imap (0.2.3)
net-pop (0.1.1)
net-protocol (default: 0.1.2)
net-smtp (0.3.1)
net-telnet (0.2.0)
nkf (default: 0.1.1)
nokogiri (1.16.4)
observer (default: 0.1.1)
open-uri (default: 0.2.0)
open3 (default: 0.1.1)
openssl (default: 3.0.1)
optparse (default: 0.2.0)
orm_adapter (0.5.0)
ostruct (default: 0.5.2)
pathname (default: 0.2.0)
pkg-config (1.5.6)
power_assert (2.0.1)
pp (default: 0.3.0)
prettyprint (default: 0.1.1)
prime (0.1.2)
pstore (default: 0.1.1)
psych (default: 4.0.3)
racc (1.6.2, default: 1.6.0)
rack (2.2.7)
rack-test (2.1.0)
rails-deprecated_sanitizer (1.0.4)
rails-dom-testing (2.0.3)
rails-html-sanitizer (1.4.4)
railties (6.1.7.3)
rake (13.2.1, 13.0.6)
rbs (2.1.0)
rdoc (default: 6.4.0)
readline (default: 0.0.3)
readline-ext (default: 0.1.4)
reline (default: 0.3.0)
resolv (default: 0.2.1)
resolv-replace (default: 0.1.0)
responders (3.0.1)
rexml (3.2.5)
rinda (default: 0.1.1)
rotp (6.2.0)
rspec (3.13.0)
rspec-core (3.13.0)
rspec-expectations (3.13.0)
rspec-mocks (3.13.0)
rspec-support (3.13.1)
rss (0.2.9)
ruby2_keywords (default: 0.0.5)
rubygems-update (3.4.20)
sdbm (1.0.0)
securerandom (default: 0.1.1)
set (default: 1.0.2)
shellwords (default: 0.1.0)
singleton (default: 0.1.1)
stringio (default: 3.0.1)
strscan (default: 3.0.1)
syslog (default: 0.1.0)
tempfile (default: 0.1.2)
test-unit (3.5.3)
thor (1.3.1)
time (default: 0.2.0)
timecop (0.9.10)
timeout (default: 0.2.0)
tmpdir (default: 0.1.2)
tsort (default: 0.1.0)
typeprof (0.21.2)
tzinfo (2.0.6)
un (default: 0.2.0)
uri (default: 0.11.0)
warden (1.2.8)
weakref (default: 0.1.1)
webrick (1.8.1)
xmlrpc (0.3.3)
yaml (default: 0.2.0)
zeitwerk (2.6.8)
zlib (default: 2.1.1)
┌──────────────────────────────────────────────────────────────────────────────┐
│ Run tests for ruby3.1 from debian/ruby-tests.rake │
└──────────────────────────────────────────────────────────────────────────────┘
RUBYLIB=/<<PKGBUILDDIR>>/debian/ruby-devise-two-factor/usr/lib/ruby/vendor_ruby:. GEM_PATH=/<<PKGBUILDDIR>>/debian/ruby-devise-two-factor/usr/share/rubygems-integration/all:/<<PKGBUILDDIR>>/debian/.debhelper/generated/_source/home/.local/share/gem/ruby/3.1.0:/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 -S rake --rakelibdir /gem2deb-nonexistent -f debian/ruby-tests.rake
/usr/bin/ruby3.1 -I/usr/share/rubygems-integration/all/gems/rspec-support-3.13.1/lib:/usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/exe/rspec --pattern ./spec/\*\*/\*_spec.rb --format documentation
Randomized with seed 10782
Devise::Models::TwoFactorAuthenticatable
When included in a class
otp_secret options
should be of the mode (FAILED - 1)
should be of the key (FAILED - 2)
should be of the mode (FAILED - 3)
behaves like two_factor_authenticatable
#otp_provisioning_uri
should return uri with issuer option
should return uri with specified account
#otp_secret
stores the encrypted otp_secret
stores an iv for otp_secret
stores a salt for otp_secret
should be of the configured length
#validate_and_consume_otp!
validates a precisely correct OTP
validates an OTP within the allowed drift
validates a precisely correct OTP with whitespace
fails a nil OTP value
does not validate an OTP above the allowed drift
does not validate an OTP below the allowed drift
with a stored consumed_timestep
given a valid OTP used multiple times within the allowed drift
after the otp interval
fails to validate
given a valid OTP used multiple times within the allowed drift after a subsequent login
after the otp interval
fails to validate
given a previously valid OTP within the allowed drift
fails to validate
given a precisely correct OTP
fails to validate
required_fields
should have the attr_encrypted fields for otp_secret
Devise::Models::TwoFactorAuthenticatable
When clean_up_passwords is called
password_confirmation should be nill
otp_attempt should be nill
Devise::Models::TwoFactorAuthenticatable
When included in a class
behaves like two_factor_authenticatable
#otp_secret
stores a salt for otp_secret
should be of the configured length
stores an iv for otp_secret
stores the encrypted otp_secret
required_fields
should have the attr_encrypted fields for otp_secret
#otp_provisioning_uri
should return uri with specified account
should return uri with issuer option
#validate_and_consume_otp!
validates an OTP within the allowed drift
validates a precisely correct OTP
fails a nil OTP value
does not validate an OTP above the allowed drift
does not validate an OTP below the allowed drift
validates a precisely correct OTP with whitespace
with a stored consumed_timestep
given a previously valid OTP within the allowed drift
fails to validate
given a valid OTP used multiple times within the allowed drift
after the otp interval
fails to validate
given a precisely correct OTP
fails to validate
given a valid OTP used multiple times within the allowed drift after a subsequent login
after the otp interval
fails to validate
Devise::Models::TwoFactorBackupable
When included in a class
behaves like two_factor_backupable
#generate_otp_backup_codes!
with existing recovery codes
invalidates the existing recovery codes
with no existing recovery codes
generates the correct number of new recovery codes
generates recovery codes of the correct length
generates distinct recovery codes
stores the codes as BCrypt hashes
#invalidate_otp_backup_code!
given an invalid recovery code
returns false
given a valid recovery code
invalidates that recovery code
does not invalidate the other recovery codes
returns true
required_fields
has the attr_encrypted fields for otp_backup_codes
Failures:
1) Devise::Models::TwoFactorAuthenticatable When included in a class otp_secret options should be of the mode
Failure/Error: expect(subject.encrypted_attributes[:otp_secret][:mode]).to eq(:per_attribute_iv_and_salt)
NoMethodError:
undefined method `encrypted_attributes' for #<TwoFactorAuthenticatableWithCustomizeAttrEncryptedDouble:0x00007fa542beb038>
expect(subject.encrypted_attributes[:otp_secret][:mode]).to eq(:per_attribute_iv_and_salt)
^^^^^^^^^^^^^^^^^^^^^
Did you mean? encrypted_otp_secret_salt=
# ./spec/devise/models/two_factor_authenticatable_spec.rb:71:in `block (4 levels) in <top (required)>'
2) Devise::Models::TwoFactorAuthenticatable When included in a class otp_secret options should be of the key
Failure/Error: expect(subject.encrypted_attributes[:otp_secret][:key]).to eq('test-key'*8)
NoMethodError:
undefined method `encrypted_attributes' for #<TwoFactorAuthenticatableWithCustomizeAttrEncryptedDouble:0x00007fa53e3b1420>
expect(subject.encrypted_attributes[:otp_secret][:key]).to eq('test-key'*8)
^^^^^^^^^^^^^^^^^^^^^
Did you mean? encrypted_otp_secret_salt=
# ./spec/devise/models/two_factor_authenticatable_spec.rb:67:in `block (4 levels) in <top (required)>'
3) Devise::Models::TwoFactorAuthenticatable When included in a class otp_secret options should be of the mode
Failure/Error: expect(subject.encrypted_attributes[:otp_secret][:algorithm]).to eq('aes-256-cbc')
NoMethodError:
undefined method `encrypted_attributes' for #<TwoFactorAuthenticatableWithCustomizeAttrEncryptedDouble:0x00007fa53e3db220>
expect(subject.encrypted_attributes[:otp_secret][:algorithm]).to eq('aes-256-cbc')
^^^^^^^^^^^^^^^^^^^^^
Did you mean? encrypted_otp_secret_salt=
# ./spec/devise/models/two_factor_authenticatable_spec.rb:75:in `block (4 levels) in <top (required)>'
Finished in 14.62 seconds (files took 0.58701 seconds to load)
49 examples, 3 failures
Failed examples:
rspec ./spec/devise/models/two_factor_authenticatable_spec.rb:70 # Devise::Models::TwoFactorAuthenticatable When included in a class otp_secret options should be of the mode
rspec ./spec/devise/models/two_factor_authenticatable_spec.rb:66 # Devise::Models::TwoFactorAuthenticatable When included in a class otp_secret options should be of the key
rspec ./spec/devise/models/two_factor_authenticatable_spec.rb:74 # Devise::Models::TwoFactorAuthenticatable When included in a class otp_secret options should be of the mode
Randomized with seed 10782
/usr/bin/ruby3.1 -I/usr/share/rubygems-integration/all/gems/rspec-support-3.13.1/lib:/usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/exe/rspec --pattern ./spec/\*\*/\*_spec.rb --format documentation failed
ERROR: Test "ruby3.1" failed. Exiting.
dh_auto_install: error: dh_ruby --install /<<PKGBUILDDIR>>/debian/ruby-devise-two-factor returned exit code 1
make: *** [debian/rules:18: binary] Error 25
dpkg-buildpackage: error: fakeroot debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------
The above is just how the build ends and not necessarily the most relevant part.
If required, the full build log is available here:
https://people.debian.org/~sanvila/build-logs/202410/
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 could not 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 affects, so that this is still visible in the BTS web
page for this package.
Thanks.
More information about the Pkg-ruby-extras-maintainers
mailing list