#1123650 schleuder installation fails

#1123650#5
Date:
2025-12-19 11:25:47 UTC
From:
To:
Schleuder installation fails due to dependency issues:

*** schleuder.yml (Y/I/N/O/D/Z) [default=N] ?
Ignoring bcrypt-3.1.20 because its extensions are not built. Try: gem pristine bcrypt --version 3.1.20
Ignoring charlock_holmes-0.7.9 because its extensions are not built. Try: gem pristine charlock_holmes --version 0.7.9
Ignoring debug-1.9.2 because its extensions are not built. Try: gem pristine debug --version 1.9.2
Ignoring ffi-1.17.0 because its extensions are not built. Try: gem pristine ffi --version 1.17.0
Ignoring nio4r-2.7.3 because its extensions are not built. Try: gem pristine nio4r --version 2.7.3
Ignoring puma-6.6.0 because its extensions are not built. Try: gem pristine puma --version 6.6.0
Ignoring racc-1.7.3 because its extensions are not built. Try: gem pristine racc --version 1.7.3
Ignoring rbs-3.4.0 because its extensions are not built. Try: gem pristine rbs --version 3.4.0
Ignoring sdbm-1.0.0 because its extensions are not built. Try: gem pristine sdbm --version 1.0.0
Ignoring sqlite3-1.7.3 because its extensions are not built. Try: gem pristine sqlite3 --version 1.7.3
Ignoring thin-1.8.2 because its extensions are not built. Try: gem pristine thin --version 1.8.2
rake aborted!
LoadError: cannot load such file -- ffi_c (LoadError)
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
/usr/share/rubygems-integration/all/gems/ethon-0.16.0/lib/ethon.rb:3:in `<top (required)>'
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
/usr/share/rubygems-integration/all/gems/typhoeus-1.4.0/lib/typhoeus.rb:2:in `<top (required)>'
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:160:in `require'
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:160:in `rescue in require'
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:149:in `require'
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'

Caused by:
LoadError: cannot load such file -- 3.3/ffi_c (LoadError)
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
/usr/share/rubygems-integration/all/gems/ethon-0.16.0/lib/ethon.rb:3:in `<top (required)>'
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
/usr/share/rubygems-integration/all/gems/typhoeus-1.4.0/lib/typhoeus.rb:2:in `<top (required)>'
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:160:in `require'
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:160:in `rescue in require'
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:149:in `require'
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'

Caused by:
LoadError: cannot load such file -- typhoeus (LoadError)
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
(See full trace by running task with --trace)
dpkg: error processing package schleuder (--configure):
 installed schleuder package post-installation script subprocess returned error exit status 1

#1123650#10
Date:
2025-12-19 12:40:42 UTC
From:
To:
Further debugging info:

* run `apt install --reinstall` against each of the broken build
dependencies
* run `apt install ruby-dev`
* run `gem pristine --all`

This gets rid of the first few the errors, but bumps up against a
different error when trying to rebuild the `ruby-ffi` gem:


ERROR:  While executing gem ... (Gem::Package::FormatError)
     No such file or directory @ rb_sysopen -
/usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0/cache/ffi-1.17.0.gem
root@fum:/etc/schleuder# ls
/usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0/cache/ffi-1.17.0.gem
ls: cannot access
'/usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0/cache/ffi-1.17.0.gem':
No such file or directory
root@fum:/etc/schleuder# ls
/usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0/cache/f*
/usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0/cache/ffi-1.17.0-x86_64-linux-musl.gem
root@fum:/etc/schleuder#


Where did that `musl` come from?

#1123650#15
Date:
2025-12-19 14:27:33 UTC
From:
To:
Further news:

I had to install several build dependencies to fix the ruby-ffi and
ruby-sqlite3 gems:

```
apt install build-essential pkg-config libsqlite3-dev
gem pristine --all
```

This appears to be a ruby ecosystem packaging issue rather than specific
to schleuder. See e.g.:

* https://lists.debian.org/debian-ruby/2025/04/msg00022.html
*
https://stackoverflow.com/questions/75077888/package-configuration-not-found-despite-sqlite3-being-installed

After this, installing schleuder threw a different error:

```
ArgumentError: Unknown migration version "7.1"; expected one of "4.2",
"5.0", "5.1", "5.2", "6.0", "6.1" (ArgumentError)

            raise ArgumentError, "Unknown migration version
#{version.inspect}; expected one of #{versions.sort.join(', ')}"

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/share/rubygems-integration/all/gems/activerecord-6.1.7.3/lib/active_record/migration/compatibility.rb:11:in
`find'
/usr/share/rubygems-integration/all/gems/activerecord-6.1.7.3/lib/active_record/migration.rb:567:in
`[]'
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in
`require'
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in
`require'
```

This is because schleuder's debian packaging requires any version of
activerecord, but upstream schleuder v5.0.1 specifically depends on
activerecord >=7.1.

After upgrading to the latest version of ruby-activerecord, schleuder
finally installs.

A

#1123650#20
Date:
2025-12-21 10:41:24 UTC
From:
To:
More ruby dependency hell, now preventing schleuder-api-daemon from
starting up:

Dec 21 10:37:27 fum systemd[1]: Started schleuder-api-daemon.service -
Schleuder API daemon.
Dec 21 10:37:28 fum schleuder-api-daemon[2958612]:
/usr/lib/ruby/vendor_ruby/rubygems/specification.rb:2248:in
`raise_if_conflicts': Unable to activate thin-1.8.2, because rack-3.1.18
conflicts with rack (>= 1, < 3) (Gem::ConflictError)
Dec 21 10:37:28 fum schleuder-api-daemon[2958612]:         from
/usr/lib/ruby/vendor_ruby/rubygems/specification.rb:1379:in `activate'
Dec 21 10:37:28 fum schleuder-api-daemon[2958612]:         from
/usr/lib/ruby/vendor_ruby/rubygems.rb:211:in `rescue in try_activate'
Dec 21 10:37:28 fum schleuder-api-daemon[2958612]:         from
/usr/lib/ruby/vendor_ruby/rubygems.rb:204:in `try_activate'
Dec 21 10:37:28 fum schleuder-api-daemon[2958612]:         from
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:153:in
`rescue in require'
Dec 21 10:37:28 fum schleuder-api-daemon[2958612]:         from
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:149:in
`require'
Dec 21 10:37:28 fum schleuder-api-daemon[2958612]:         from
/usr/lib/ruby/vendor_ruby/schleuder-api-daemon.rb:10:in `<top (required)>'
Dec 21 10:37:28 fum schleuder-api-daemon[2958612]:         from
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in
`require'
Dec 21 10:37:28 fum schleuder-api-daemon[2958612]:         from
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in
`require'
Dec 21 10:37:28 fum schleuder-api-daemon[2958612]:         from
/usr/bin/schleuder-api-daemon:4:in `<main>'
Dec 21 10:37:28 fum schleuder-api-daemon[2958612]:
/usr/lib/ruby/vendor_ruby/rubygems/specification.rb:2248:in
`raise_if_conflicts': Unable to activate thin-1.8.2, because rack-3.1.18
conflicts with rack (>= 1, < 3) (Gem::ConflictError)
Dec 21 10:37:28 fum schleuder-api-daemon[2958612]:         from
/usr/lib/ruby/vendor_ruby/rubygems/specification.rb:1379:in `activate'
Dec 21 10:37:28 fum schleuder-api-daemon[2958612]:         from
/usr/lib/ruby/vendor_ruby/rubygems.rb:205:in `try_activate'
Dec 21 10:37:28 fum schleuder-api-daemon[2958612]:         from
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:153:in
`rescue in require'
Dec 21 10:37:28 fum schleuder-api-daemon[2958612]:         from
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:149:in
`require'
Dec 21 10:37:28 fum schleuder-api-daemon[2958612]:         from
/usr/lib/ruby/vendor_ruby/schleuder-api-daemon.rb:10:in `<top (required)>'
Dec 21 10:37:28 fum schleuder-api-daemon[2958612]:         from
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in
`require'
Dec 21 10:37:28 fum schleuder-api-daemon[2958612]:         from
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in
`require'
Dec 21 10:37:28 fum schleuder-api-daemon[2958612]:         from
/usr/bin/schleuder-api-daemon:4:in `<main>'
Dec 21 10:37:28 fum schleuder-api-daemon[2958612]:
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in
`require': cannot load such file -- thin (LoadError)
Dec 21 10:37:28 fum schleuder-api-daemon[2958612]:         from
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in
`require'
Dec 21 10:37:28 fum schleuder-api-daemon[2958612]:         from
/usr/lib/ruby/vendor_ruby/schleuder-api-daemon.rb:10:in `<top (required)>'
Dec 21 10:37:28 fum schleuder-api-daemon[2958612]:         from
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in
`require'
Dec 21 10:37:28 fum schleuder-api-daemon[2958612]:         from
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in
`require'
Dec 21 10:37:28 fum schleuder-api-daemon[2958612]:         from
/usr/bin/schleuder-api-daemon:4:in `<main>'
Dec 21 10:37:28 fum systemd[1]: schleuder-api-daemon.service: Main
process exited, code=exited, status=1/FAILURE
Dec 21 10:37:28 fum systemd[1]: schleuder-api-daemon.service: Failed
with result 'exit-code'.

#1123650#25
Date:
2025-12-21 11:11:47 UTC
From:
To:
This seems to be because:

* schleuder depends directly on both thin~>1 and sinatra>=3.1
* thin 1.8.2 depends on rack < 3
* trixie ships with sinatra 4.1.1, which depends on rack >= 3
* conflict

I attempted to fix this by forcibly downgrading sinatra and rack:

```
apt install ruby-sinatra=3.0.5-3 ruby-rack=2.2.13-1~deb12u1
ruby-rack-protection=3.0.5-3
```

This however forcibly removed schleuder. On reinstalling schleuder,
sinatra and rack were upgraded to the conflicting versions again:

```
root@fum:/etc/schleuder# apt install schleuder
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
   ruby-rack ruby-rack-protection ruby-rack-session ruby-rackup
ruby-sinatra ruby-sinatra-contrib
The following NEW packages will be installed:
   ruby-rack-session ruby-rackup ruby-sinatra-contrib schleuder
The following packages will be upgraded:
   ruby-rack ruby-rack-protection ruby-sinatra
3 upgraded, 4 newly installed, 0 to remove and 586 not upgraded.
Need to get 0 B/439 kB of archives.
After this operation, 597 kB of additional disk space will be used.
Do you want to continue? [Y/n]
(Reading database ... 74323 files and directories currently installed.)
Preparing to unpack .../0-ruby-rack-protection_4.1.1-5_all.deb ...
Unpacking ruby-rack-protection (4.1.1-5) over (3.0.5-3) ...
Preparing to unpack .../1-ruby-sinatra_4.1.1-5_all.deb ...
Unpacking ruby-sinatra (4.1.1-5) over (3.0.5-3) ...
Preparing to unpack .../2-ruby-rack_3.1.18-1~deb13u1_all.deb ...
Unpacking ruby-rack (3.1.18-1~deb13u1) over (2.2.13-1~deb12u1) ...
Selecting previously unselected package ruby-rack-session.
Preparing to unpack .../3-ruby-rack-session_2.1.1-0.1_all.deb ...
Unpacking ruby-rack-session (2.1.1-0.1) ...
Selecting previously unselected package ruby-rackup.
Preparing to unpack .../4-ruby-rackup_2.1.0-4_all.deb ...
Unpacking ruby-rackup (2.1.0-4) ...
Selecting previously unselected package ruby-sinatra-contrib.
Preparing to unpack .../5-ruby-sinatra-contrib_4.1.1-5_all.deb ...
Unpacking ruby-sinatra-contrib (4.1.1-5) ...
Selecting previously unselected package schleuder.
Preparing to unpack .../6-schleuder_5.0.1-2_all.deb ...
Unpacking schleuder (5.0.1-2) ...
Setting up ruby-rack (3.1.18-1~deb13u1) ...
Setting up ruby-rack-session (2.1.1-0.1) ...
Setting up ruby-rack-protection (4.1.1-5) ...
Setting up ruby-rackup (2.1.0-4) ...
Setting up ruby-sinatra (4.1.1-5) ...
Setting up ruby-sinatra-contrib (4.1.1-5) ...
Setting up schleuder (5.0.1-2) ...
```

And schleuder-api-daemon refuses to start up again.

Schleuder is therefore technically uninstallable due to a gem dependency
conflict, although some basic functions do work because they do not
depend on thin.

#1123650#30
Date:
2025-12-21 12:13:39 UTC
From:
To:
I tried on a clean VM and schleuder installs correctly.

It looks like your system has packages from different Debian releases,
and also has packages installed manually with `gem`.

Is your system fully updated with regards to stable?

Are there other Ruby applications installed? Any of them using `gem
install`, `bundler` etc?

Please provide the output of `gem list`

Please provide the output of `find /usr/ -name \*.gem`

#1123650#35
Date:
2025-12-22 10:26:46 UTC
From:
To:
Hi, Antonio. Thanks for looking into this.

Does schleuder-api-daemon start up?

No, I'm currently upgrading it gradually because of past problems when
upgrading parts of my mail-handling stack, which caused me to have to
revert, painfully. Even so, I would have hoped that schleuder would fail
any dependency requirements at install time, not runtime.
some cruft over the years. I did run `go dependency -R` and noted that a
few gems were orphaned, possibly from previous experimentation.

If I try to `apt remove ruby` it tells me:

```
The following packages will be REMOVED:
   libruby libruby3.1 libruby3.3 puma rake ruby ruby-activemodel
ruby-activerecord ruby-activesupport ruby-bcrypt ruby-charlock-holmes
ruby-dev ruby-ethon ruby-eventmachine ruby-ffi ruby-gpgme
   ruby-mail ruby-mime-types ruby-mini-mime ruby-nio4r ruby-rack
ruby-rack-protection ruby-rack-session ruby-rackup ruby-rubygems
ruby-sdbm ruby-sinatra ruby-sinatra-contrib ruby-sqlite3 ruby-thor
   ruby-tilt ruby-typhoeus ruby3.3 ruby3.3-dev schleuder schleuder-cli
thin unhide.rb
```

Of those, the only one that I recall manually installing is unhide.rb,
which is used by rkhunter. It is already at the latest version though.

root@fum:/etc/schleuder# gem list

*** LOCAL GEMS ***

abbrev (default: 0.1.2)
activemodel (7.2.2.1)
activerecord (7.2.2.1)
activesupport (7.2.2.1)
base64 (default: 0.2.0)
bcrypt (3.1.20)
benchmark (default: 0.3.0)
bigdecimal (default: 3.1.5)
bundler (default: 2.5.22)
cgi (default: 0.4.2)
charlock_holmes (0.7.9)
concurrent-ruby (1.3.5)
concurrent-ruby-edge (0.7.2)
connection_pool (2.4.1)
csv (3.3.4, default: 3.2.8)
daemons (1.4.1)
date (default: 3.3.4)
debug (1.9.2)
delegate (default: 0.3.1)
did_you_mean (1.6.3)
digest (default: 3.1.1)
drb (default: 2.2.0)
english (default: 0.8.0)
erb (default: 4.0.3)
error_highlight (default: 0.6.0)
etc (default: 1.4.3)
ethon (0.16.0)
eventmachine (1.3.0.dev.1)
fcntl (default: 1.1.0)
ffi (1.17.0)
fiddle (default: 1.1.2)
fileutils (default: 1.7.2)
find (default: 0.2.0)
forwardable (default: 1.3.3)
getoptlong (default: 0.2.1)
gpgme (2.0.23)
i18n (1.14.7)
io-console (default: 0.7.1)
io-nonblock (default: 0.3.0)
io-wait (default: 0.3.1)
ipaddr (default: 1.2.6)
irb (default: 1.13.1)
json (default: 2.7.2)
logger (default: 1.6.0)
mail (2.8.1)
matrix (0.4.2)
mime-types (3.6.0)
mime-types-data (3.2024.0206)
mini_mime (1.1.5)
mini_portile2 (2.8.7)
minitest (5.20.0)
multi_json (1.15.0)
mustermann (3.0.0)
mutex_m (default: 0.2.0)
net-ftp (0.3.4)
net-http (default: 0.4.1)
net-imap (0.4.19)
net-pop (0.1.2)
net-protocol (default: 0.2.2)
net-smtp (0.5.1)
net-telnet (0.2.0)
nio4r (2.7.3)
nkf (default: 0.1.3)
observer (default: 0.1.2)
open-uri (default: 0.4.1)
open3 (default: 0.2.1)
openssl (default: 3.2.0)
optparse (default: 0.4.0)
ostruct (default: 0.6.0)
pathname (default: 0.3.0)
power_assert (2.0.3)
pp (default: 0.5.0)
prettyprint (default: 0.2.0)
prime (0.1.2)
prism (default: 0.19.0)
pstore (default: 0.1.3)
psych (default: 5.1.2)
puma (6.6.0)
racc (1.7.3)
rack (3.1.18)
rack-protection (4.1.1)
rack-session (2.1.1)
rackup (2.1.0)
rake (13.1.0, 13.0.6)
rbs (3.4.0)
rdoc (default: 6.6.3.1)
readline (default: 0.0.4)
reline (default: 0.5.10)
resolv (default: 0.3.0)
resolv-replace (default: 0.1.1)
rexml (3.3.9)
rinda (default: 0.2.0)
rss (0.3.1)
ruby2_keywords (0.0.5)
rubygems-update (3.6.7)
schleuder (5.0.1)
schleuder-cli (0.1.0)
sdbm (1.0.0)
securerandom (default: 0.3.1)
set (default: 1.1.0)
shellwords (default: 0.2.0)
sinatra (4.1.1)
sinatra-contrib (4.1.1)
singleton (default: 0.2.0)
sqlite3 (1.7.3)
stringio (default: 3.1.1)
strscan (default: 3.0.9)
syntax_suggest (default: 2.0.1)
syslog (default: 0.1.2)
tempfile (default: 0.2.1)
test-unit (3.6.1)
thin (1.8.2)
thor (1.3.2)
tilt (2.4.0)
time (default: 0.3.0)
timeout (default: 0.4.1)
tmpdir (default: 0.2.0)
tsort (default: 0.2.0)
typeprof (0.21.9)
typhoeus (1.4.0)
tzinfo (2.0.6)
un (default: 0.3.0)
uri (default: 0.13.2)
weakref (default: 0.1.3)
webrick (1.9.1)
xmlrpc (0.3.3)
yaml (default: 0.3.0)
zeitwerk (2.6.8)
zlib (default: 3.1.1)
root@fum:/etc/schleuder# find /usr -name '*.gem'
/usr/share/rubygems-integration/3.3.0/cache/gpgme-2.0.23.gem
/usr/share/rubygems-integration/all/gems/rubygems-update-3.3.15/test/rubygems/packages/ill-formatted-platform-1.0.0.10.gem
/usr/share/rubygems-integration/all/gems/rubygems-update-3.3.15/test/rubygems/packages/ascii_binder-0.1.10.1.gem
/usr/share/rubygems-integration/all/cache/mail-2.7.1.gem
/usr/share/rubygems-integration/all/cache/net-telnet-0.2.0.gem
/usr/share/rubygems-integration/all/cache/concurrent-ruby-1.1.6.gem
/usr/share/rubygems-integration/all/cache/rack-session-2.1.1.gem
/usr/share/rubygems-integration/all/cache/rake-13.0.6.gem
/usr/share/rubygems-integration/all/cache/mustermann-3.0.0.gem
/usr/share/rubygems-integration/all/cache/mini_portile2-2.8.7.gem
/usr/share/rubygems-integration/all/cache/concurrent-ruby-edge-0.6.0.gem
/usr/share/rubygems-integration/all/cache/activerecord-6.1.7.3.gem
/usr/share/rubygems-integration/all/cache/mime-types-3.6.0.gem
/usr/share/rubygems-integration/all/cache/ethon-0.16.0.gem
/usr/share/rubygems-integration/all/cache/rack-protection-4.1.1.gem
/usr/share/rubygems-integration/all/cache/sinatra-contrib-4.1.1.gem
/usr/share/rubygems-integration/all/cache/csv-3.3.4.gem
/usr/share/rubygems-integration/all/cache/pkg-config-1.5.9.gem
/usr/share/rubygems-integration/all/cache/rubygems-update-3.3.15.gem
/usr/share/rubygems-integration/all/cache/i18n-1.10.0.gem
/usr/share/rubygems-integration/all/cache/did_you_mean-1.6.3.gem
/usr/share/rubygems-integration/all/cache/sinatra-4.1.1.gem
/usr/share/rubygems-integration/all/cache/activemodel-6.1.7.3.gem
/usr/share/rubygems-integration/all/cache/multi_json-1.14.1.gem
/usr/share/rubygems-integration/all/cache/daemons-1.4.1.gem
/usr/share/rubygems-integration/all/cache/mini_mime-1.1.1.gem
/usr/share/rubygems-integration/all/cache/activesupport-6.1.7.3.gem
/usr/share/rubygems-integration/all/cache/mime-types-data-3.2024.0206.gem
/usr/share/rubygems-integration/all/cache/ruby2_keywords-0.0.5.gem
/usr/share/rubygems-integration/all/cache/rackup-2.1.0.gem
/usr/share/rubygems-integration/all/cache/rack-3.1.18.gem
/usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0/cache/bcrypt-3.1.20.gem
/usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0/cache/thin-1.8.2.gem
/usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0/cache/puma-6.6.0.gem
/usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0/cache/ffi-1.17.0.gem
/usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0/cache/sdbm-1.0.0.gem
/usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0/cache/charlock_holmes-0.7.9.gem
/usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0/cache/sqlite3-1.7.3.gem
/usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0/cache/ffi-1.17.0-x86_64-linux-musl.gem
/usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0/cache/nio4r-2.7.3.gem
/usr/lib/ruby/gems/3.3.0/cache/net-imap-0.4.19.gem
/usr/lib/ruby/gems/3.3.0/cache/net-pop-0.1.2.gem
/usr/lib/ruby/gems/3.3.0/cache/rss-0.3.1.gem
/usr/lib/ruby/gems/3.3.0/cache/minitest-5.20.0.gem
/usr/lib/ruby/gems/3.3.0/cache/racc-1.7.3.gem
/usr/lib/ruby/gems/3.3.0/cache/net-smtp-0.5.1.gem
/usr/lib/ruby/gems/3.3.0/cache/debug-1.9.2.gem
/usr/lib/ruby/gems/3.3.0/cache/rbs-3.4.0.gem
/usr/lib/ruby/gems/3.3.0/cache/matrix-0.4.2.gem
/usr/lib/ruby/gems/3.3.0/cache/rexml-3.3.9.gem
/usr/lib/ruby/gems/3.3.0/cache/prime-0.1.2.gem
/usr/lib/ruby/gems/3.3.0/cache/net-ftp-0.3.4.gem
/usr/lib/ruby/gems/3.3.0/cache/rake-13.1.0.gem
/usr/lib/ruby/gems/3.3.0/cache/power_assert-2.0.3.gem
root@fum:/etc/schleuder#

#1123650#40
Date:
2025-12-22 11:13:46 UTC
From:
To:
Sure it does.

This is part of your problem. Partially-upgraded systems are not really
supported by Debian. Even though we *try* to specify versioned
dependencies that force the required upgrades, the number of different
configurations in a partially-upgraded system is infinite and it's
impossible to catch all cases.

You cannot remove ruby and still expect schleuder to work at all. :)

Those should not be a problem.

This is the other half of your problem. Debian packages do not ship
*.gem files; this means these were all installed manually and could
cause dependency problems. Having gems installed is not a problem in
itself, but if you install arbitrary versions, those can cause conflicts
with the Debian packages, which were tested together in the specific
versions shipped in a Debian release. When you combine these with a
half-upgraded system, there are a huge number of things that can go
wrong.

I suggest you:

- remove all gems. you want to basically:
  - remove /var/lib/gems/3.3.0/* (but not /var/lib/gems/3.3.0 itself)
  - remove everything under the following directories that are not
    installed by a Debian package:
    - /usr/share/rubygems-integration
    - /usr/lib/x86_64-linux-gnu/rubygems-integration
    - /usr/lib/ruby/gems/3.3.0
- fully upgrade your system to Debian stable

With that done, schleuder should just work.

#1123650#45
Date:
2025-12-22 11:52:34 UTC
From:
To:
Surely it should still be possible to accurately transcribe upstream
dependencies into the debian/control file?

I was listing all the packages that apt thinks depend on ruby. I didn't
type "yes" and actually remove ruby, I'm not a *complete* idiot. :)

You'll notice that these are cached gems; they were most likely created
by running `gem pristine` to fix the earlier issues. I have never
manually installed a gem on this machine.

Everything *not* installed by some debian package? That sounds painful.
Is there a tool for that?

I'll try this in the new year, when I'll have time to deal with the
knock-on breakage.

Thanks again,
A

#1123650#50
Date:
2025-12-22 12:14:37 UTC
From:
To:
It is, but upstream dependency metadata is not perfect either.

cruft-ng

#1123650#55
Date:
2026-01-12 17:00:19 UTC
From:
To:
It seems the root cause was that the copy of thin 1.8.2 that was
installed on my machine required ruby-rack <3 at runtime, but after
force-reinstalling the same .deb it now permits ruby-rack <4, which
fixed the issue. It seems at some point the runtime dependencies of thin
1.8.2 were bumped and either the version number wasn't incremented or
the stale dependencies were cached.

Thanks for the help,
A