Closed renich closed 1 week ago
If one tries to force 1.8.2, then one get's this error:
$ cat Gemfile
source 'https://rubygems.org'
# Server requirements
gem 'thin', '>= 1.8.2'
# Optional JSON codec (faster performance)
gem 'oj'
# Project requirements
gem 'rake'
# Component requirements
gem 'base64'
gem 'dm-aggregates'
gem 'dm-constraints'
gem 'dm-core'
gem 'dm-migrations'
gem 'dm-sqlite-adapter'
gem 'dm-timestamps'
gem 'dm-types'
gem 'dm-validations'
gem 'redis'
gem 'slim'
gem 'tilt'
# Padrino
gem 'padrino', '>= 0.16.0.pre3'
# additional stuff
gem 'rss'
$ bundle
Fetching gem metadata from https://rubygems.org/.........
Resolving dependencies...
Could not find compatible versions
Because padrino >= 0.16.0.pre3 depends on padrino-core = 0.16.0.pre3
and padrino-core >= 0.16.0.pre2 depends on sinatra ~> 4,
padrino >= 0.16.0.pre3 requires sinatra ~> 4.
And because sinatra >= 4.0.0 depends on rack >= 3.0.0, < 4
and thin >= 1.7.0 depends on rack >= 1, < 3,
padrino >= 0.16.0.pre3 is incompatible with thin >= 1.7.0.
So, because Gemfile depends on thin >= 1.8.2
and Gemfile depends on padrino >= 0.16.0.pre3,
version solving has failed.
Another note. If I remove versions from the gemfile, I get padrino 0.15.3 and thin 1.8.2. In that case, it builds, but it fails to run:
$ bundle update
Fetching gem metadata from https://rubygems.org/.........
Resolving dependencies...
Fetching rake 13.2.1
Installing rake 13.2.1
Fetching public_suffix 6.0.1
Fetching base64 0.2.0
Fetching bcrypt 3.1.20
Fetching bigdecimal 3.1.8
Fetching concurrent-ruby 1.3.4
Fetching connection_pool 2.4.1
Fetching daemons 1.4.1
Fetching date 3.4.0
Fetching fastercsv 1.5.5
Fetching json 1.8.6
Fetching multi_json 1.15.0
Fetching stringex 1.5.1
Fetching uuidtools 2.2.0
Fetching eventmachine 1.2.7
Fetching logger 1.6.1
Fetching mini_mime 1.1.5
Installing public_suffix 6.0.1
Fetching timeout 0.4.1
Installing base64 0.2.0
Fetching mime-types-data 3.2024.1001
Installing bcrypt 3.1.20 with native extensions
Installing bigdecimal 3.1.8 with native extensions
Installing concurrent-ruby 1.3.4
Fetching moneta 1.1.1
Installing connection_pool 2.4.1
Fetching ruby2_keywords 0.0.5
Installing daemons 1.4.1
Fetching ostruct 0.6.0
Installing date 3.4.0 with native extensions
Installing fastercsv 1.5.5
Fetching padrino-support 0.15.3
Installing json 1.8.6 with native extensions
Fetching rack 2.2.10
Installing multi_json 1.15.0
Fetching tilt 2.4.0
Installing stringex 1.5.1
Fetching thor 1.3.2
Installing uuidtools 2.2.0
Fetching rexml 3.3.9
Installing eventmachine 1.2.7 with native extensions
Installing logger 1.6.1
Fetching temple 0.10.3
Installing mini_mime 1.1.5
Fetching addressable 2.8.7
Installing timeout 0.4.1
Fetching i18n 1.14.6
Installing mime-types-data 3.2024.1001
Fetching redis-client 0.22.2
Installing moneta 1.1.1
Fetching bcrypt-ruby 3.1.5
Installing ruby2_keywords 0.0.5
Fetching net-protocol 0.2.2
Installing ostruct 0.6.0
Fetching mime-types 3.6.0
Installing padrino-support 0.15.3
Fetching mustermann 3.0.3
Installing rack 2.2.10
Fetching rack-protection 3.2.0
Installing tilt 2.4.0
Installing thor 1.3.2
Installing rexml 3.3.9
Fetching rss 0.3.1
Installing temple 0.10.3
Fetching slim 5.2.1
Installing addressable 2.8.7
Fetching data_objects 0.10.17
Fetching dm-core 1.2.1
Installing i18n 1.14.6
Fetching padrino-helpers 0.15.3
Installing redis-client 0.22.2
Fetching redis 5.3.0
Installing bcrypt-ruby 3.1.5
Installing net-protocol 0.2.2
Fetching net-pop 0.1.2
Fetching net-smtp 0.5.0
Installing mime-types 3.6.0
Installing mustermann 3.0.3
Installing rack-protection 3.2.0
Fetching sinatra 3.2.0
Installing rss 0.3.1
Installing slim 5.2.1
Installing data_objects 0.10.17
Fetching do_sqlite3 0.10.17
Fetching net-imap 0.5.0
Installing dm-core 1.2.1
Fetching dm-aggregates 1.2.0
Fetching dm-constraints 1.2.0
Fetching dm-do-adapter 1.2.0
Fetching dm-migrations 1.2.0
Fetching dm-timestamps 1.2.0
Fetching dm-types 1.2.2
Fetching dm-validations 1.2.0
Installing padrino-helpers 0.15.3
Installing redis 5.3.0
Installing net-pop 0.1.2
Installing net-smtp 0.5.0
Installing sinatra 3.2.0
Fetching padrino-core 0.15.3
Installing do_sqlite3 0.10.17 with native extensions
Installing net-imap 0.5.0
Fetching mail 2.8.1
Installing dm-aggregates 1.2.0
Installing dm-constraints 1.2.0
Installing dm-do-adapter 1.2.0
Installing dm-migrations 1.2.0
Installing dm-timestamps 1.2.0
Installing dm-types 1.2.2
Installing dm-validations 1.2.0
Installing padrino-core 0.15.3
Fetching padrino-admin 0.15.3
Fetching padrino-cache 0.15.3
Fetching padrino-gen 0.15.3
Installing mail 2.8.1
Fetching padrino-mailer 0.15.3
Installing padrino-admin 0.15.3
Installing padrino-cache 0.15.3
Installing padrino-gen 0.15.3
Installing padrino-mailer 0.15.3
Fetching padrino 0.15.3
Installing padrino 0.15.3
Fetching dm-sqlite-adapter 1.2.0
Installing dm-sqlite-adapter 1.2.0
Fetching oj 3.16.7
Installing oj 3.16.7 with native extensions
Fetching thin 1.8.2
Installing thin 1.8.2 with native extensions
Bundle updated!
Post-install message from bcrypt-ruby:
#######################################################
The bcrypt-ruby gem has changed its name to just bcrypt. Instead of
installing `bcrypt-ruby`, you should install `bcrypt`. Please update your
dependencies accordingly.
#######################################################
Post-install message from i18n:
PSA: I18n will be dropping support for Ruby < 3.2 in the next major release (April 2025), due to Ruby's end of life for 3.1 and below (https://endoflife.date/ruby). Please upgrade to Ruby 3.2 or newer by April 2025 to continue using future versions of this gem.
1 installed gem you directly depend on is looking for funding.
Run `bundle fund` for details
$ bundle exec thin start
2024-11-05 11:30:45 -0600 Using rack adapter
bundler: failed to load command: thin (/srv/www/padrino/evalinux.com/default/vendor/bundle/ruby/3.3.0/bin/thin)
/usr/share/gems/gems/abrt-0.4.0/lib/abrt.rb:8: warning: syslog was loaded from the standard library, but will no longer be part of the default gems starting from Ruby 3.4.0.
You can add syslog to your Gemfile or gemspec to silence this warning.
/srv/www/padrino/evalinux.com/default/vendor/bundle/ruby/3.3.0/gems/padrino-core-0.15.3/lib/padrino-core/router.rb:61:in `initialize': wrong number of arguments (given 3, expected 1..2) (ArgumentError)
match = Regexp.new("^#{Regexp.quote(path).gsub('/', '/+')}(.*)", nil, 'n')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
from /srv/www/padrino/evalinux.com/default/vendor/bundle/ruby/3.3.0/gems/padrino-core-0.15.3/lib/padrino-core/router.rb:61:in `new'
from /srv/www/padrino/evalinux.com/default/vendor/bundle/ruby/3.3.0/gems/padrino-core-0.15.3/lib/padrino-core/router.rb:61:in `map'
from /srv/www/padrino/evalinux.com/default/vendor/bundle/ruby/3.3.0/gems/padrino-core-0.15.3/lib/padrino-core/mounter.rb:116:in `map_onto'
from /srv/www/padrino/evalinux.com/default/vendor/bundle/ruby/3.3.0/gems/padrino-core-0.15.3/lib/padrino-core.rb:74:in `block in application'
from /srv/www/padrino/evalinux.com/default/vendor/bundle/ruby/3.3.0/gems/padrino-core-0.15.3/lib/padrino-core.rb:74:in `each'
from /srv/www/padrino/evalinux.com/default/vendor/bundle/ruby/3.3.0/gems/padrino-core-0.15.3/lib/padrino-core.rb:74:in `application'
from /srv/www/padrino/evalinux.com/default/config.ru:7:in `block in <main>'
from /srv/www/padrino/evalinux.com/default/vendor/bundle/ruby/3.3.0/gems/rack-2.2.10/lib/rack/builder.rb:125:in `instance_eval'
from /srv/www/padrino/evalinux.com/default/vendor/bundle/ruby/3.3.0/gems/rack-2.2.10/lib/rack/builder.rb:125:in `initialize'
from /srv/www/padrino/evalinux.com/default/config.ru:1:in `new'
from /srv/www/padrino/evalinux.com/default/config.ru:1:in `<main>'
from /srv/www/padrino/evalinux.com/default/vendor/bundle/ruby/3.3.0/gems/thin-1.8.2/lib/rack/adapter/loader.rb:33:in `eval'
from /srv/www/padrino/evalinux.com/default/vendor/bundle/ruby/3.3.0/gems/thin-1.8.2/lib/rack/adapter/loader.rb:33:in `load'
from /srv/www/padrino/evalinux.com/default/vendor/bundle/ruby/3.3.0/gems/thin-1.8.2/lib/rack/adapter/loader.rb:42:in `for'
from /srv/www/padrino/evalinux.com/default/vendor/bundle/ruby/3.3.0/gems/thin-1.8.2/lib/thin/controllers/controller.rb:170:in `load_adapter'
from /srv/www/padrino/evalinux.com/default/vendor/bundle/ruby/3.3.0/gems/thin-1.8.2/lib/thin/controllers/controller.rb:74:in `start'
from /srv/www/padrino/evalinux.com/default/vendor/bundle/ruby/3.3.0/gems/thin-1.8.2/lib/thin/runner.rb:203:in `run_command'
from /srv/www/padrino/evalinux.com/default/vendor/bundle/ruby/3.3.0/gems/thin-1.8.2/lib/thin/runner.rb:159:in `run!'
from /srv/www/padrino/evalinux.com/default/vendor/bundle/ruby/3.3.0/gems/thin-1.8.2/bin/thin:6:in `<top (required)>'
from /srv/www/padrino/evalinux.com/default/vendor/bundle/ruby/3.3.0/bin/thin:25:in `load'
from /srv/www/padrino/evalinux.com/default/vendor/bundle/ruby/3.3.0/bin/thin:25:in `<top (required)>'
from /usr/share/gems/gems/bundler-2.5.16/lib/bundler/cli/exec.rb:58:in `load'
from /usr/share/gems/gems/bundler-2.5.16/lib/bundler/cli/exec.rb:58:in `kernel_load'
from /usr/share/gems/gems/bundler-2.5.16/lib/bundler/cli/exec.rb:23:in `run'
from /usr/share/gems/gems/bundler-2.5.16/lib/bundler/cli.rb:455:in `exec'
from /usr/share/gems/gems/bundler-2.5.16/lib/bundler/vendor/thor/lib/thor/command.rb:28:in `run'
from /usr/share/gems/gems/bundler-2.5.16/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
from /usr/share/gems/gems/bundler-2.5.16/lib/bundler/vendor/thor/lib/thor.rb:527:in `dispatch'
from /usr/share/gems/gems/bundler-2.5.16/lib/bundler/cli.rb:35:in `dispatch'
from /usr/share/gems/gems/bundler-2.5.16/lib/bundler/vendor/thor/lib/thor/base.rb:584:in `start'
from /usr/share/gems/gems/bundler-2.5.16/lib/bundler/cli.rb:29:in `start'
from /usr/share/gems/gems/bundler-2.5.16/exe/bundle:28:in `block in <top (required)>'
from /usr/share/gems/gems/bundler-2.5.16/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
from /usr/share/gems/gems/bundler-2.5.16/exe/bundle:20:in `<top (required)>'
from /usr/bin/bundle:25:in `load'
from /usr/bin/bundle:25:in `<main>'
And, finally, this happens on a brand new project as well:
$ padrino version
Padrino v. 0.15.3
$ padrino generate project testapp
create
create .gitignore
create config.ru
create config/apps.rb
create config/boot.rb
create public/favicon.ico
create public/images
create public/javascripts
create public/stylesheets
create .components
create app
create app/app.rb
create app/controllers
create app/helpers
create app/views
create app/views/layouts
append config/apps.rb
create Gemfile
create Rakefile
create exe/testapp
create tmp
create tmp/.keep
create log
create log/.keep
skipping orm component...
skipping test component...
skipping mock component...
skipping script component...
skipping renderer component...
skipping stylesheet component...
identical .components
force .components
force .components
=================================================================
testapp is ready for development!
=================================================================
$ cd ./testapp
$ bundle --binstubs
=================================================================
$ cd testapp/
$ bundle binstubs --all
Fetching gem metadata from https://rubygems.org/.........
Resolving dependencies...
Bundle complete! 2 Gemfile dependencies, 33 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
$ bundle exec thin start
bundler: failed to load command: thin (/home/renich/bin/thin)
/usr/share/gems/gems/abrt-0.4.0/lib/abrt.rb:8: warning: syslog was loaded from the standard library, but will no longer be part of the default gems starting from Ruby 3.4.0.
You can add syslog to your Gemfile or gemspec to silence this warning.
/usr/share/gems/gems/bundler-2.5.16/lib/bundler/rubygems_integration.rb:265:in `block in replace_bin_path': can't find executable thin for gem thin. thin is not currently included in the bundle, perhaps you meant to add it to your Gemfile? (Gem::Exception)
from /usr/share/gems/gems/bundler-2.5.16/lib/bundler/rubygems_integration.rb:293:in `block in replace_bin_path'
from /home/renich/bin/thin:25:in `<top (required)>'
from /usr/share/gems/gems/bundler-2.5.16/lib/bundler/cli/exec.rb:58:in `load'
from /usr/share/gems/gems/bundler-2.5.16/lib/bundler/cli/exec.rb:58:in `kernel_load'
from /usr/share/gems/gems/bundler-2.5.16/lib/bundler/cli/exec.rb:23:in `run'
from /usr/share/gems/gems/bundler-2.5.16/lib/bundler/cli.rb:455:in `exec'
from /usr/share/gems/gems/bundler-2.5.16/lib/bundler/vendor/thor/lib/thor/command.rb:28:in `run'
from /usr/share/gems/gems/bundler-2.5.16/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
from /usr/share/gems/gems/bundler-2.5.16/lib/bundler/vendor/thor/lib/thor.rb:527:in `dispatch'
from /usr/share/gems/gems/bundler-2.5.16/lib/bundler/cli.rb:35:in `dispatch'
from /usr/share/gems/gems/bundler-2.5.16/lib/bundler/vendor/thor/lib/thor/base.rb:584:in `start'
from /usr/share/gems/gems/bundler-2.5.16/lib/bundler/cli.rb:29:in `start'
from /usr/share/gems/gems/bundler-2.5.16/exe/bundle:28:in `block in <top (required)>'
from /usr/share/gems/gems/bundler-2.5.16/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
from /usr/share/gems/gems/bundler-2.5.16/exe/bundle:20:in `<top (required)>'
from /usr/bin/bundle:25:in `load'
from /usr/bin/bundle:25:in `<main>'
With padrino 0.16.0.pre3 is a bit different. It asks for 'syslog' to be installed and thin 1.6.2 fails to build.
$ gem install -v '0.16.0.pre3' padrino
Successfully installed padrino-0.16.0.pre3
1 gem installed
$ padrino version
Padrino v. 0.16.0.pre3
$ padrino generate project testapp
create
create .gitignore
create config.ru
create config/apps.rb
create config/boot.rb
create public/favicon.ico
create public/images
create public/javascripts
create public/stylesheets
create .components
create app
create app/app.rb
create app/controllers
create app/helpers
create app/views
create app/views/layouts
append config/apps.rb
create Gemfile
create Rakefile
create exe/testapp
create tmp
create tmp/.keep
create log
create log/.keep
skipping orm component...
skipping test component...
skipping mock component...
skipping script component...
skipping renderer component...
skipping stylesheet component...
identical .components
force .components
force .components
=================================================================
testapp is ready for development!
=================================================================
$ cd ./testapp
$ bundle --binstubs
=================================================================
$ cd testapp/
$ cat << EOF > Gemfile
source 'https://rubygems.org'
gem 'oj'
gem 'padrino', '0.16.0.pre3'
gem 'rake'
gem 'syslog'
gem 'thin'
EOF
$ bundle binstubs --all
Resolving dependencies...
Could not find compatible versions
Because every version of thin depends on rack >= 1, < 3
and sinatra >= 4.0.0 depends on rack >= 3.0.0, < 4,
every version of thin is incompatible with sinatra >= 4.0.0.
And because padrino-core >= 0.16.0.pre3 depends on sinatra ~> 4
and every version of padrino depends on padrino-core = 0.16.0.pre3,
every version of thin is incompatible with padrino >= 0.
So, because Gemfile depends on padrino = 0.16.0.pre3
and Gemfile depends on thin >= 0,
version solving has failed.
$ bundle update
Fetching gem metadata from https://rubygems.org/.........
Resolving dependencies...
Installing thin 1.6.2 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: /home/renich/.local/share/gem/ruby/gems/thin-1.6.2/ext/thin_parser
/usr/bin/ruby -I/usr/share/rubygems extconf.rb
checking for main() in -lc... yes
creating Makefile
current directory: /home/renich/.local/share/gem/ruby/gems/thin-1.6.2/ext/thin_parser
make DESTDIR\= sitearchdir\=./.gem.20241105-39476-guh0ud sitelibdir\=./.gem.20241105-39476-guh0ud clean
rm -f
rm -fr thin_parser.so false parser.o thin.o *.bak mkmf.log .*.time
current directory: /home/renich/.local/share/gem/ruby/gems/thin-1.6.2/ext/thin_parser
make DESTDIR\= sitearchdir\=./.gem.20241105-39476-guh0ud sitelibdir\=./.gem.20241105-39476-guh0ud
gcc -I. -I/usr/include -I/usr/include/ruby/backward -I/usr/include -I. -fPIC -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security
-Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=x86-64
-mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fPIC -m64 -o parser.o -c parser.c
parser.c:31:18: warning: ‘http_parser_en_main’ defined but not used [-Wunused-const-variable=]
31 | static const int http_parser_en_main = 1;
| ^~~~~~~~~~~~~~~~~~~
gcc -I. -I/usr/include -I/usr/include/ruby/backward -I/usr/include -I. -fPIC -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security
-Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=x86-64
-mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fPIC -m64 -o thin.o -c thin.c
thin.c: In function ‘Thin_HttpParser_alloc’:
thin.c:242:3: error: implicit declaration of function ‘thin_http_parser_init’; did you mean ‘http_parser_init’? [-Wimplicit-function-declaration]
242 | thin_http_parser_init(hp);
| ^~~~~~~~~~~~~~~~~~~~~
| http_parser_init
thin.c: In function ‘Thin_HttpParser_finish’:
thin.c:294:3: error: implicit declaration of function ‘thin_http_parser_finish’; did you mean ‘Thin_HttpParser_finish’? [-Wimplicit-function-declaration]
294 | thin_http_parser_finish(http);
| ^~~~~~~~~~~~~~~~~~~~~~~
| Thin_HttpParser_finish
thin.c:296:10: error: implicit declaration of function ‘thin_http_parser_is_finished’; did you mean ‘http_parser_is_finished’? [-Wimplicit-function-declaration]
296 | return thin_http_parser_is_finished(http) ? Qtrue : Qfalse;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
| http_parser_is_finished
thin.c: In function ‘Thin_HttpParser_execute’:
thin.c:334:5: error: implicit declaration of function ‘thin_http_parser_execute’; did you mean ‘Thin_HttpParser_execute’? [-Wimplicit-function-declaration]
334 | thin_http_parser_execute(http, dptr, dlen, from);
| ^~~~~~~~~~~~~~~~~~~~~~~~
| Thin_HttpParser_execute
thin.c:338:8: error: implicit declaration of function ‘thin_http_parser_has_error’; did you mean ‘http_parser_has_error’? [-Wimplicit-function-declaration]
338 | if(thin_http_parser_has_error(http)) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
| http_parser_has_error
make: *** [Makefile:249: thin.o] Error 1
make failed, exit code 2
Gem files will remain installed in /home/renich/.local/share/gem/ruby/gems/thin-1.6.2 for inspection.
Results logged to /home/renich/.local/share/gem/ruby/extensions/x86_64-linux/3.3.0/thin-1.6.2/gem_make.out
/usr/share/rubygems/rubygems/ext/builder.rb:125:in `run'
/usr/share/rubygems/rubygems/ext/builder.rb:51:in `block in make'
/usr/share/rubygems/rubygems/ext/builder.rb:43:in `each'
/usr/share/rubygems/rubygems/ext/builder.rb:43:in `make'
/usr/share/rubygems/rubygems/ext/ext_conf_builder.rb:42:in `build'
/usr/share/rubygems/rubygems/ext/builder.rb:193:in `build_extension'
/usr/share/rubygems/rubygems/ext/builder.rb:227:in `block in build_extensions'
/usr/share/rubygems/rubygems/ext/builder.rb:224:in `each'
/usr/share/rubygems/rubygems/ext/builder.rb:224:in `build_extensions'
/usr/share/rubygems/rubygems/installer.rb:855:in `build_extensions'
/usr/share/gems/gems/bundler-2.5.16/lib/bundler/rubygems_gem_installer.rb:109:in `build_extensions'
/usr/share/gems/gems/bundler-2.5.16/lib/bundler/rubygems_gem_installer.rb:28:in `install'
/usr/share/gems/gems/bundler-2.5.16/lib/bundler/source/rubygems.rb:205:in `install'
/usr/share/gems/gems/bundler-2.5.16/lib/bundler/installer/gem_installer.rb:54:in `install'
/usr/share/gems/gems/bundler-2.5.16/lib/bundler/installer/gem_installer.rb:16:in `install_from_spec'
/usr/share/gems/gems/bundler-2.5.16/lib/bundler/installer/parallel_installer.rb:132:in `do_install'
/usr/share/gems/gems/bundler-2.5.16/lib/bundler/installer/parallel_installer.rb:123:in `block in worker_pool'
/usr/share/gems/gems/bundler-2.5.16/lib/bundler/worker.rb:62:in `apply_func'
/usr/share/gems/gems/bundler-2.5.16/lib/bundler/worker.rb:57:in `block in process_queue'
<internal:kernel>:187:in `loop'
/usr/share/gems/gems/bundler-2.5.16/lib/bundler/worker.rb:54:in `process_queue'
/usr/share/gems/gems/bundler-2.5.16/lib/bundler/worker.rb:90:in `block (2 levels) in create_threads'
An error occurred while installing thin (1.6.2), and Bundler cannot continue.
In Gemfile:
thin
Hi @renich, thank you for this. However, I don't see this as an issue with Fedora 41 specifically. I am having the same issues on macOS Sequoia (v 15.1). The problem is that : in order to bundle with ruby 3.x, you need thin 1.8.2 and padrino 0.16.X. However, these 2 create a dependency issue. down the dependency line padrino 0.16.X indirectly depends on rack >= 3 and thin 1.8.2 depends on rack < 3. Using a lower version of thin or padrino will yield ruby 3.X issues. So there are 3 options you can go for :
1 - The easiest way is to use padrino 0.15.3 + thin 1.8.2 + ruby 2.X 2 - Wait for thin to have compatibility for rack >= 3 3 - Maybe ask @olleolleolle if it makes sense to backport ruby 3 support to padrino 0.15.X ? (literally cherry picking #2277 )
I'm grateful for the work done here. I wouldn't be able to ask for a backport. I'll have to wait until thin decides to support rack >=3. I cannot downgrade to Ruby 2.x for many reasons.
Thank you, @chaymaeBZ.
@olleolleolle or @nesquena can you mark this as closed? This depends on https://github.com/macournoyer/thin/pull/399 as solution, so it's outside our scope
Thanks @chaymaeBZ
Do you want to request a feature or report a bug?
A bug
What is the current behavior?
If one tries to install padrino using a Gemfile like:
Will yield the following result:
IMHO, the problem seems to be the thin 1.6.2 dependency. They don't support ruby 3.2 until v1.8.2: https://github.com/macournoyer/thin/blob/master/CHANGELOG#L2
What is the expected behavior?
It should build successfully.
Which versions of Ruby, Padrino, Sinatra, Rack, OS are you using? Did this work in previous versions?
ruby: 3.3.5 sinatra: 4.0.0 rack: 4.0.0 OS: Fedora 41