[DRE-maint] Bug#1137054: ruby-grape: FTBFS in bookworm
Santiago Vila
sanvila at debian.org
Tue May 19 00:19:26 BST 2026
Package: src:ruby-grape
Version: 1.6.2-3
Severity: serious
Tags: ftbfs bookworm
Dear maintainer:
During a rebuild of all packages in bookworm, this package failed to build.
[ Note: I can't mark the bug as fixed in trixie because it does not exist
in trixie anymore, 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-grape, so that this is still
visible in the BTS web page for this package.
Thanks.
--------------------------------------------------------------------------------
[...]
debian/rules clean
dh clean --buildsystem=ruby --with ruby
debian/rules override_dh_auto_clean
make[1]: Entering directory '/<<PKGBUILDDIR>>'
dh_auto_clean
dh_ruby --clean
rm -rf coverage
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
dh_autoreconf_clean -O--buildsystem=ruby
dh_clean -O--buildsystem=ruby
debian/rules binary
dh binary --buildsystem=ruby --with ruby
[... snipped ...]
chooses default
with a range of values
allows a single value inside of the range
allows an array of values inside of the range
rejects a single value outside the range
rejects an array of values if any of them are outside the range
exclusive excepts
[DEPRECATION] The values validator except option is deprecated. Use the except validator instead.
allows any other value outside excepts
[DEPRECATION] The values validator except option is deprecated. Use the except validator instead.
allows any other value outside excepts when type is included
[DEPRECATION] The values validator except option is deprecated. Use the except validator instead.
rejects values that matches except
[DEPRECATION] The values validator except option is deprecated. Use the except validator instead.
rejects an array of values if any of them matches except
exclusive excepts with lambda
[DEPRECATION] The values validator except option is deprecated. Use the except validator instead.
allows any other value outside excepts when type is included
[DEPRECATION] The values validator except option is deprecated. Use the except validator instead.
allows any other value outside excepts
[DEPRECATION] The values validator except option is deprecated. Use the except validator instead.
rejects values that matches except
exclusive excepts with lambda and coercion
[DEPRECATION] The values validator except option is deprecated. Use the except validator instead.
allows any other value outside excepts
[DEPRECATION] The values validator except option is deprecated. Use the except validator instead.
rejects values that matches except
with mixed values and excepts
[DEPRECATION] The values validator except option is deprecated. Use the except validator instead.
allows value, but not in except
[DEPRECATION] The values validator except option is deprecated. Use the except validator instead.
rejects except
[DEPRECATION] The values validator except option is deprecated. Use the except validator instead.
rejects outside except and outside value
custom validation using proc
[DEPRECATION] The values validator proc option is deprecated. The lambda expression can now be assigned directly to values.
accepts a single valid value
[DEPRECATION] The values validator proc option is deprecated. The lambda expression can now be assigned directly to values.
accepts multiple valid values
[DEPRECATION] The values validator proc option is deprecated. The lambda expression can now be assigned directly to values.
rejects a single invalid value
[DEPRECATION] The values validator proc option is deprecated. The lambda expression can now be assigned directly to values.
rejects an invalid value among valid ones
[DEPRECATION] The values validator proc option is deprecated. The lambda expression can now be assigned directly to values.
uses supplied message
Grape::Validations
params
optional
validates when params is present
doesn't validate when param not present
adds to declared parameters
optional using Grape::Entity documentation
adds entity documentation to declared params
works when field_a and field_b are not present
works when field_a is present
works when field_b is present
required
errors when param not present
doesn't throw a missing param when param is present
adds to declared parameters
works when required field is present but nil
requires with nested params
validates correctly in deep nested params
requires :all using Grape::Entity documentation
adds entity documentation to declared params
errors when required_field is not present
works when required_field is present
requires :none using Grape::Entity documentation
adds entity documentation to declared params
errors when required_field is not present
works when required_field is present
requires :all or :none but except a non-existent field using Grape::Entity documentation
requires :all
adds only the entity documentation to declared params, nothing more
requires :none
adds only the entity documentation to declared params, nothing more
required with an Array block
errors when param not present
errors when param is not an Array
doesn't throw a missing param when param is present
doesn't throw a missing param when param is present but empty
adds to declared parameters
required with an Array and a Hash block
does not output index [0] for Hash types
required with a Hash block
errors when param not present
errors when nested param not present
errors when param is not a Hash
doesn't throw a missing param when param is present
adds to declared parameters
hash with a required param with validation
errors when param is not a Hash
works when all params match
group
errors when param not present
doesn't throw a missing param when param is present
adds to declared parameters
group params with nested params which has a type
errors when group param is invalid
custom validator for a Hash
which is optional
doesn't throw an error if the validation passes
errors if the validation fails
which is required
doesn't throw an error if the validation passes
errors if the validation fails
validation within arrays
can handle new scopes within child elements
errors when a parameter is not present
errors when a parameter is not present in array within array
handle errors for all array elements
safely handles empty arrays and blank parameters
errors when param is not an Array
with block param
requires defaults to Array type
optional defaults to Array type
group defaults to Array type
validation within arrays with JSON
can handle new scopes within child elements
errors when a parameter is not present
safely handles empty arrays and blank parameters
optional with an Array block
doesn't throw a missing param when the group isn't present
doesn't throw a missing param when both group and param are given
errors when group is present, but required param is not
errors when param is present but isn't an Array
adds to declared parameters
nested optional Array blocks
does no internal validations if the outer group is blank
does internal validations if the outer group is present
handles deep nesting
handles validation within arrays
adds to declared parameters
exactly_one_of
at_least_one_of
all_or_none_of
Issue occurs whenever:
* param structure with at least three levels
* 1st level item is a required Array that has >1 entry with an optional item present and >1 entry with an optional item missing
* 2nd level is an optional Array or Hash
* 3rd level is a required item (can be any type)
* additional levels do not effect the issue from occuring
example based off actual real world use case
simplest example using Array -> Array -> Hash -> String
simplest example using Array -> Hash -> String
correctly indexes invalida data
multiple levels of optional and requires settings
with valid data
with invalid data
multiple validation errors
throws the validation errors
custom validation
when using optional with a custom validator
validates when param is present
skips validation when parameter isn't present
validates with custom validator when param present and incorrect type
when using requires with a custom validator
validates when param is present
validates when param is not present
nested namespaces
the parent namespace uses the validator
the nested namespace inherits the custom validator
peer namespaces does not have the validator
namespaces nested in peers should also not have the validator
when nested, specifying a route should clear out the validations for deeper nested params
when using options on param
validates param with custom validator with options
named
can be defined
in helpers
in helper module which kind of Grape::DSL::Helpers::BaseHelper
can be included in usual params
by #use
by #use with multiple params
with block
returns defaults
overrides default value for order
overrides default value for order_by
fails with invalid value
documentation
can be included with a hash
all or none
optional params
with a custom validation message
errors when any one is present
works when all params are present
works when none are present
mutually exclusive
optional params
errors when two or more are present
with custom validation message
errors when two or more are present
more than one set of mutually exclusive params
errors for all sets
with a custom validation message
errors for all sets
in a group
works when only one from the set is present
errors when more than one from the set is present
mutually exclusive params inside Hash group
invalidates if request param is invalid type
exactly one of
params
errors when none are present
succeeds when one is present
errors when two or more are present
with a custom validation message
errors when none are present
succeeds when one is present
errors when two or more are present
nested params
errors when none are present
succeeds when one is present
errors when two or more are present
at least one of
params
errors when none are present
does not error when one is present
does not error when two are present
with a custom validation message
errors when none are present
does not error when one is present
does not error when two are present
nested params
errors when none are present
does not error when one is present
does not error when two are present
in a group
works when only one from the set is present
errors when no parameter from the set is present
errors when more than one from the set is present
does not falsely think the param is there if it is provided outside the block
Grape
/<<PKGBUILDDIR>>/lib/grape/eager_load.rb:20: warning: possibly useless use of :: in void context
eager_load!
compile!
JSON
uses multi_json (PENDING: Temporarily skipped with xit)
MultiXml
uses multi_xml
Pending: (Failures listed here are expected and do not affect your suite's status)
1) JSON uses multi_json
# Temporarily skipped with xit
# ./spec/integration/multi_json/json_spec.rb:6
Failures:
1) Rack::Sendfile when calling sendfile contains Sendfile headers
Failure/Error: expect(headers).to include('X-Accel-Redirect')
expected {"Cache-Control" => "no-cache", "Content-Type" => "application/json"} to include "X-Accel-Redirect"
Diff:
@@ -1,2 +1,3 @@
-["X-Accel-Redirect"]
+"Cache-Control" => "no-cache",
+"Content-Type" => "application/json",
# ./spec/grape/integration/rack_sendfile_spec.rb:36:in `block (3 levels) in <top (required)>'
Finished in 3.05 seconds (files took 0.78411 seconds to load)
2108 examples, 1 failure, 1 pending
Failed examples:
rspec ./spec/grape/integration/rack_sendfile_spec.rb:34 # Rack::Sendfile when calling sendfile contains Sendfile headers
[33m[Coveralls] Outside the CI environment, not sending data.[0m
Stopped processing SimpleCov as a previous error not related to SimpleCov has been detected
/usr/bin/ruby3.1 -I/usr/share/rubygems-integration/all/gems/ [too-long-redacted] b --format documentation failed
ERROR: Test "ruby3.1" failed. Exiting.
dh_auto_install: error: dh_ruby --install /<<PKGBUILDDIR>>/debian/ruby-grape returned exit code 1
make: *** [debian/rules:7: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------
More information about the Pkg-ruby-extras-maintainers
mailing list