Skip to content

native extensions gems "is missing extensions" blocker #320

@capripot

Description

@capripot

I'm trying to compile my project on my M2 mac, but I encounter an issue when it comes to building native extensions for gems.

Configuration summary for ruby version 3.3.7

   * Installation prefix: /Users/capripot/.tebako/o/s
   * exec prefix:         ${prefix}
   * arch:                arm64-darwin24
   * site arch:           ${arch}
   * RUBY_BASE_NAME:      ruby
   * enable shared:       no
   * ruby lib prefix:     ${libdir}/${RUBY_BASE_NAME}
   * site libraries path: ${rubylibprefix}/${sitearch}
   * vendor path:         ${rubylibprefix}/vendor_ruby
   * target OS:           darwin24
   * compiler:            clang
   * with thread:         pthread
   * with coroutine:      arm64
   * enable shared libs:  no
   * dynamic library ext: bundle
   * CFLAGS:              -fPIC -I/Users/capripot/.tebako/deps/include \
                          -I/opt/homebrew/var/rbenv/versions/3.3.7/lib/ruby/\
                          gems/3.3.0/gems/tebako-0.13.4/include \
                          -Wno-incompatible-pointer-types -fdeclspec \
                          -I/opt/homebrew/opt/openssl@3/include \
                          -I/opt/homebrew/opt/zlib/include \
                          -I/opt/homebrew/include ${optflags} ${debugflags} \
                          ${warnflags}
   * LDFLAGS:             -L. -L/Users/capripot/.tebako/deps/lib \
                          -L/Users/capripot/.tebako/o \
                          -L/opt/homebrew/opt/openssl@3/lib \
                          -L/opt/homebrew/opt/zlib/lib  -L/opt/homebrew/lib \
                          -fstack-protector-strong
   * DLDFLAGS:            -L/Users/capripot/.tebako/deps/lib \
                          -L/Users/capripot/.tebako/o \
                          -L/opt/homebrew/opt/openssl@3/lib \
                          -L/opt/homebrew/opt/zlib/lib  -L/opt/homebrew/lib \
                          -Wl,-undefined,dynamic_lookup
   * optflags:            -O3 -fno-fast-math
   * debugflags:          -ggdb3
   * warnflags:           -Wall -Wextra -Wextra-tokens \
                          -Wdeprecated-declarations -Wdivision-by-zero \
                          -Wdiv-by-zero -Wimplicit-function-declaration \
                          -Wimplicit-int -Wpointer-arith -Wshorten-64-to-32 \
                          -Wwrite-strings -Wold-style-definition \
                          -Wmissing-noreturn -Wno-cast-function-type \
                          -Wno-constant-logical-operand -Wno-long-long \
                          -Wno-missing-field-initializers \
                          -Wno-overlength-strings -Wno-parentheses-equality \
                          -Wno-self-assign -Wno-tautological-compare \
                          -Wno-unused-parameter -Wno-unused-value \
                          -Wunused-variable -Wmisleading-indentation -Wundef
   * strip command:       strip -A -n
   * install doc:         no
   * YJIT support:        no
   * RJIT support:        yes
   * man page type:       doc
   * static-linked-ext:   yes
   * BASERUBY -v:         ruby 3.3.7 (2025-01-15 revision be31f993d7) \
                          [arm64-darwin24]

---
-- Running pass1a script
   ... patching /Users/capripot/.tebako/deps/src/_ruby_3.3.7/gem_prelude.rb
-- Running stash script
   ... building toolchain Ruby
   ... @ make -j12
   ... @ make install -j12
   ... saving pristine Ruby environment to /Users/capripot/.tebako/deps/stash_3.3.7
-- Running pass2 script
   ... patching /Users/capripot/.tebako/deps/src/_ruby_3.3.7/template/Makefile.in
   ... patching /Users/capripot/.tebako/deps/src/_ruby_3.3.7/tool/mkconfig.rb
   ... patching /Users/capripot/.tebako/deps/src/_ruby_3.3.7/dir.c
   ... patching /Users/capripot/.tebako/deps/src/_ruby_3.3.7/dln.c
   ... patching /Users/capripot/.tebako/deps/src/_ruby_3.3.7/io.c
   ... patching /Users/capripot/.tebako/deps/src/_ruby_3.3.7/main.c
   ... patching /Users/capripot/.tebako/deps/src/_ruby_3.3.7/file.c
   ... patching /Users/capripot/.tebako/deps/src/_ruby_3.3.7/util.c
   ... patching /Users/capripot/.tebako/deps/src/_ruby_3.3.7/common.mk
   ... patching /Users/capripot/.tebako/deps/src/_ruby_3.3.7/config.status
[ 78%] No install step for '_ruby_3.3.7'
[ 84%] Completed '_ruby_3.3.7'
[ 84%] Built target _ruby_3.3.7
Tebako setup has been verified
[ 84%] Built target setup
-- Running init script
   ... creating packaging environment at /Users/capripot/.tebako/o/s
-- Running deploy script
   ... using lockfile at /Users/capripot/Developer/src/corporate.io/gem_name/./Gemfile.lock
   ... installing tebako-runtime gem
   ... @ /Users/capripot/.tebako/o/s/bin/gem install tebako-runtime --no-document --install-dir /Users/capripot/.tebako/o/s/lib/ruby/gems/3.3.0 --bindir /Users/capripot/.tebako/o/s/bin
   ... installing bundler gem version 2.6.9
   ... @ /Users/capripot/.tebako/o/s/bin/gem install bundler -v 2.6.9 --no-document --install-dir /Users/capripot/.tebako/o/s/lib/ruby/gems/3.3.0 --bindir /Users/capripot/.tebako/o/s/bin
   ... collecting gem from gemspec /Users/capripot/Developer/src/corporate.io/gem_name/./gem_name.gemspec and Gemfile
   ... @ /Users/capripot/.tebako/o/s/bin/bundle _2.6.9_ config set --local build.ffi --disable-system-libffi
   ... @ /Users/capripot/.tebako/o/s/bin/bundle _2.6.9_ config set --local build.nokogiri --no-use-system-libraries
   ... @ /Users/capripot/.tebako/o/s/bin/bundle _2.6.9_ config set --local force_ruby_platform false
   *** It may take a long time for a big project. It takes REALLY long time on Windows ***
   ... @ /Users/capripot/.tebako/o/s/bin/bundle _2.6.9_ install --jobs=12
deploy script failed: Failed to run /Users/capripot/.tebako/o/s/bin/bundle _2.6.9_ install --jobs=12 (pid 63884 exit 5):
 Source locally installed gems is ignoring #<Bundler::StubSpecification name=stackprof version=0.2.27 platform=ruby> because it is missing extensions
Source locally installed gems is ignoring #<Bundler::StubSpecification name=racc version=1.8.1 platform=ruby> because it is missing extensions
Source locally installed gems is ignoring #<Bundler::StubSpecification name=prism version=1.4.0 platform=ruby> because it is missing extensions
Source locally installed gems is ignoring #<Bundler::StubSpecification name=oj version=3.16.11 platform=ruby> because it is missing extensions
Source locally installed gems is ignoring #<Bundler::StubSpecification name=nokogiri version=1.15.7 platform=ruby> because it is missing extensions
Source locally installed gems is ignoring #<Bundler::StubSpecification name=murmurhash3 version=0.1.7 platform=ruby> because it is missing extensions
Source locally installed gems is ignoring #<Bundler::StubSpecification name=llhttp-ffi version=0.5.1 platform=ruby> because it is missing extensions
Source locally installed gems is ignoring #<Bundler::StubSpecification name=json version=2.12.2 platform=ruby> because it is missing extensions
Source locally installed gems is ignoring #<Bundler::StubSpecification name=ffi version=1.16.3 platform=ruby> because it is missing extensions
Source locally installed gems is ignoring #<Bundler::StubSpecification name=ed25519 version=1.3.0 platform=ruby> because it is missing extensions
Source locally installed gems is ignoring #<Bundler::StubSpecification name=curb version=1.0.9 platform=ruby> because it is missing extensions
Source locally installed gems is ignoring #<Bundler::StubSpecification name=byebug version=11.1.3 platform=ruby> because it is missing extensions
Source locally installed gems is ignoring #<Bundler::StubSpecification name=bigdecimal version=3.2.2 platform=ruby> because it is missing extensions
Source locally installed gems is ignoring #<Bundler::StubSpecification name=stackprof version=0.2.27 platform=ruby> because it is missing extensions
Source locally installed gems is ignoring #<Bundler::StubSpecification name=racc version=1.8.1 platform=ruby> because it is missing extensions
Source locally installed gems is ignoring #<Bundler::StubSpecification name=prism version=1.4.0 platform=ruby> because it is missing extensions
Source locally installed gems is ignoring #<Bundler::StubSpecification name=oj version=3.16.11 platform=ruby> because it is missing extensions
Source locally installed gems is ignoring #<Bundler::StubSpecification name=nokogiri version=1.15.7 platform=ruby> because it is missing extensions
Source locally installed gems is ignoring #<Bundler::StubSpecification name=murmurhash3 version=0.1.7 platform=ruby> because it is missing extensions
Source locally installed gems is ignoring #<Bundler::StubSpecification name=llhttp-ffi version=0.5.1 platform=ruby> because it is missing extensions
Source locally installed gems is ignoring #<Bundler::StubSpecification name=json version=2.12.2 platform=ruby> because it is missing extensions
Source locally installed gems is ignoring #<Bundler::StubSpecification name=ffi version=1.16.3 platform=ruby> because it is missing extensions
Source locally installed gems is ignoring #<Bundler::StubSpecification name=ed25519 version=1.3.0 platform=ruby> because it is missing extensions
Source locally installed gems is ignoring #<Bundler::StubSpecification name=curb version=1.0.9 platform=ruby> because it is missing extensions
Source locally installed gems is ignoring #<Bundler::StubSpecification name=byebug version=11.1.3 platform=ruby> because it is missing extensions
Source locally installed gems is ignoring #<Bundler::StubSpecification name=bigdecimal version=3.2.2 platform=ruby> because it is missing extensions

It bundles fine in my local rbenv environment.

My tebako config:

options:
  "entry-point": "exe/executable"
  root: "./"
  Ruby: 3.3.7
  output: "bin/macos/executable"
  # Enable development mode for relaxed cache checks during build
  devmode: true

Would you know what approach I should take to resolve this by any chance?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions