In Ruby 3.0, sdbm has been removed from the standard library[1]. However, some packages, such as the bsfilter package, will fail at startup without the sdbm library, LP: #1972040 .
The ruby-sdbm package does not exist in Jammy, only in Kinetic. Therefore, backporting ruby-sdbm from kinetic to jammy and relying on ruby-sdbm on the bsfilter side seems to solve the problem.
$ sudo apt install bsfilter
$ bsfilter
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require': cannot load such file -- sdbm (LoadError)
Did you mean? dbm
from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
from /usr/bin/bsfilter:3106:in `get_options'
from /usr/bin/bsfilter:3262:in `setup'
from /usr/bin/bsfilter:3413:in `<main>'
[Where problems could occur]
The ruby-sdbm package does not exist in Jammy, I do not believe that any regression will occur.
[Impact]
In Ruby 3.0, sdbm has been removed from the standard library[1]. However, some packages, such as the bsfilter package, will fail at startup without the sdbm library, LP: #1972040 .
The ruby-sdbm package does not exist in Jammy, only in Kinetic. Therefore, backporting ruby-sdbm from kinetic to jammy and relying on ruby-sdbm on the bsfilter side seems to solve the problem.
[1] https:/ /www.ruby- lang.org/ en/news/ 2020/12/ 25/ruby- 3-0-0-released/
[Test Plan]
How to reproduce the bug.
$ sudo apt install bsfilter /usr/lib/ ruby/vendor_ ruby/rubygems/ core_ext/ kernel_ require. rb>:85: in `require': cannot load such file -- sdbm (LoadError) /usr/lib/ ruby/vendor_ ruby/rubygems/ core_ext/ kernel_ require. rb>:85: in `require' bsfilter: 3106:in `get_options' bsfilter: 3262:in `setup' bsfilter: 3413:in `<main>'
$ bsfilter
<internal:
Did you mean? dbm
from <internal:
from /usr/bin/
from /usr/bin/
from /usr/bin/
[Where problems could occur]
The ruby-sdbm package does not exist in Jammy, I do not believe that any regression will occur.