Project

General

Profile

Actions

Bug #21462

closed

[ruby-head] bundler crashes because default gems (json, openssl, optparse) having bloated spec.files containing files from other gems

Added by ntkme (Natsuki Natsume) about 12 hours ago. Updated about 5 hours ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 3.5.0dev (2025-06-30T18:15:00Z master 99360e500d) +PRISM [arm64-darwin24]
[ruby-core:122632]

Description

This is causing ruby-dev-builder to fail in the past few days.

E.g. https://github.com/ruby/ruby-dev-builder/actions/runs/15981482361/job/45076664970

Minimum reproduction:

# Gemfile
source 'https://rubygems.org'
gem 'json', '2.2.0'
bundle
bundle exec bundle --version

Error message:

/opt/homebrew/Cellar/ruby/HEAD-99360e5/lib/ruby/3.5.0+2/bundler/runtime.rb:317:in 'Bundler::Runtime#check_for_activated_spec!': You have already activated json 2.12.2, but your Gemfile requires json 2.2.0. Since json is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports json as a default gem. (Gem::LoadError)

After manual inspection, I found that the default gem spec of json is broken, that it includes tons of files from other gems.

$ grep -a 's.files =' /opt/homebrew/Cellar/ruby/HEAD-99360e5/lib/ruby/gems/3.5.0+2/specifications/default/json-2.12.2.gemspec

  s.files = ["BSDL".freeze, "CHANGES.md".freeze, "COPYING".freeze, "LEGAL".freeze, "README.md".freeze, "ext/json/extconf.h".freeze, "ext/json/extconf.rb".freeze, "ext/json/fbuffer/fbuffer.h".freeze, "ext/json/generator/extconf.h".freeze, "ext/json/generator/extconf.rb".freeze, "ext/json/generator/generator.c".freeze, "ext/json/lib/json.rb".freeze, "ext/json/lib/json/add/bigdecimal.rb".freeze, "ext/json/lib/json/add/complex.rb".freeze, "ext/json/lib/json/add/core.rb".freeze, "ext/json/lib/json/add/date.rb".freeze, "ext/json/lib/json/add/date_time.rb".freeze, "ext/json/lib/json/add/exception.rb".freeze, "ext/json/lib/json/add/ostruct.rb".freeze, "ext/json/lib/json/add/range.rb".freeze, "ext/json/lib/json/add/rational.rb".freeze, "ext/json/lib/json/add/regexp.rb".freeze, "ext/json/lib/json/add/set.rb".freeze, "ext/json/lib/json/add/struct.rb".freeze, "ext/json/lib/json/add/symbol.rb".freeze, "ext/json/lib/json/add/time.rb".freeze, "ext/json/lib/json/common.rb".freeze, "ext/json/lib/json/ext.rb".freeze, "ext/json/lib/json/ext/generator/state.rb".freeze, "ext/json/lib/json/generic_object.rb".freeze, "ext/json/lib/json/version.rb".freeze, "ext/json/parser/extconf.h".freeze, "ext/json/parser/extconf.rb".freeze, "ext/json/parser/parser.c".freeze, "ext/json/simd/conf.rb".freeze, "ext/json/simd/simd.h".freeze, "ext/json/vendor/fpconv.c".freeze, "ext/json/vendor/jeaiii-ltoa.h".freeze, "json.gemspec".freeze, "lib/English.rb".freeze, "lib/bundled_gems.rb".freeze, "lib/bundler.rb".freeze, "lib/bundler/build_metadata.rb".freeze, "lib/bundler/capistrano.rb".freeze, "lib/bundler/checksum.rb".freeze, "lib/bundler/ci_detector.rb".freeze, "lib/bundler/cli.rb".freeze, "lib/bundler/cli/add.rb".freeze, "lib/bundler/cli/binstubs.rb".freeze, "lib/bundler/cli/cache.rb".freeze, "lib/bundler/cli/check.rb".freeze, "lib/bundler/cli/clean.rb".freeze, "lib/bundler/cli/common.rb".freeze, "lib/bundler/cli/config.rb".freeze, "lib/bundler/cli/console.rb".freeze, "lib/bundler/cli/doctor.rb".freeze, "lib/bundler/cli/doctor/diagnose.rb".freeze, "lib/bundler/cli/doctor/ssl.rb".freeze, "lib/bundler/cli/exec.rb".freeze, "lib/bundler/cli/fund.rb".freeze, "lib/bundler/cli/gem.rb".freeze, "lib/bundler/cli/info.rb".freeze, "lib/bundler/cli/init.rb".freeze, "lib/bundler/cli/inject.rb".freeze, "lib/bundler/cli/install.rb".freeze, "lib/bundler/cli/issue.rb".freeze, "lib/bundler/cli/list.rb".freeze, "lib/bundler/cli/lock.rb".freeze, "lib/bundler/cli/open.rb".freeze, "lib/bundler/cli/outdated.rb".freeze, "lib/bundler/cli/platform.rb".freeze, "lib/bundler/cli/plugin.rb".freeze, "lib/bundler/cli/pristine.rb".freeze, "lib/bundler/cli/remove.rb".freeze, "lib/bundler/cli/show.rb".freeze, "lib/bundler/cli/update.rb".freeze, "lib/bundler/cli/viz.rb".freeze, "lib/bundler/compact_index_client.rb".freeze, "lib/bundler/compact_index_client/cache.rb".freeze, "lib/bundler/compact_index_client/cache_file.rb".freeze, "lib/bundler/compact_index_client/parser.rb".freeze, "lib/bundler/compact_index_client/updater.rb".freeze, "lib/bundler/constants.rb".freeze, "lib/bundler/current_ruby.rb".freeze, "lib/bundler/definition.rb".freeze, "lib/bundler/dependency.rb".freeze, "lib/bundler/deployment.rb".freeze, "lib/bundler/deprecate.rb".freeze, "lib/bundler/digest.rb".freeze, "lib/bundler/dsl.rb".freeze, "lib/bundler/endpoint_specification.rb".freeze, "lib/bundler/env.rb".freeze, "lib/bundler/environment_preserver.rb".freeze, "lib/bundler/errors.rb".freeze, "lib/bundler/feature_flag.rb".freeze, "lib/bundler/fetcher.rb".freeze, "lib/bundler/fetcher/base.rb".freeze, "lib/bundler/fetcher/compact_index.rb".freeze, "lib/bundler/fetcher/dependency.rb".freeze, "lib/bundler/fetcher/downloader.rb".freeze, "lib/bundler/fetcher/gem_remote_fetcher.rb".freeze, "lib/bundler/fetcher/index.rb".freeze, "lib/bundler/force_platform.rb".freeze, "lib/bundler/friendly_errors.rb".freeze, "lib/bundler/gem_helper.rb".freeze, "lib/bundler/gem_tasks.rb".freeze, "lib/bundler/gem_version_promoter.rb".freeze, "lib/bundler/graph.rb".freeze, "lib/bundler/index.rb".freeze, "lib/bundler/injector.rb".freeze, "lib/bundler/inline.rb".freeze, "lib/bundler/installer.rb".freeze, "lib/bundler/installer/gem_installer.rb".freeze, "lib/bundler/installer/parallel_installer.rb".freeze, "lib/bundler/installer/standalone.rb".freeze, "lib/bundler/lazy_specification.rb".freeze, "lib/bundler/lockfile_generator.rb".freeze, "lib/bundler/lockfile_parser.rb".freeze, "lib/bundler/match_metadata.rb".freeze, "lib/bundler/match_platform.rb".freeze, "lib/bundler/match_remote_metadata.rb".freeze, "lib/bundler/materialization.rb".freeze, "lib/bundler/mirror.rb".freeze, "lib/bundler/plugin.rb".freeze, "lib/bundler/plugin/api.rb".freeze, "lib/bundler/plugin/api/source.rb".freeze, "lib/bundler/plugin/dsl.rb".freeze, "lib/bundler/plugin/events.rb".freeze, "lib/bundler/plugin/index.rb".freeze, "lib/bundler/plugin/installer.rb".freeze, "lib/bundler/plugin/installer/git.rb".freeze, "lib/bundler/plugin/installer/path.rb".freeze, "lib/bundler/plugin/installer/rubygems.rb".freeze, "lib/bundler/plugin/source_list.rb".freeze, "lib/bundler/process_lock.rb".freeze, "lib/bundler/remote_specification.rb".freeze, "lib/bundler/resolver.rb".freeze, "lib/bundler/resolver/base.rb".freeze, "lib/bundler/resolver/candidate.rb".freeze, "lib/bundler/resolver/incompatibility.rb".freeze, "lib/bundler/resolver/package.rb".freeze, "lib/bundler/resolver/root.rb".freeze, "lib/bundler/resolver/spec_group.rb".freeze, "lib/bundler/resolver/strategy.rb".freeze, "lib/bundler/retry.rb".freeze, "lib/bundler/ruby_dsl.rb".freeze, "lib/bundler/ruby_version.rb".freeze, "lib/bundler/rubygems_ext.rb".freeze, "lib/bundler/rubygems_gem_installer.rb".freeze, "lib/bundler/rubygems_integration.rb".freeze, "lib/bundler/runtime.rb".freeze, "lib/bundler/safe_marshal.rb".freeze, "lib/bundler/self_manager.rb".freeze, "lib/bundler/settings.rb".freeze, "lib/bundler/settings/validator.rb".freeze, "lib/bundler/setup.rb".freeze, "lib/bundler/shared_helpers.rb".freeze, "lib/bundler/similarity_detector.rb".freeze, "lib/bundler/source.rb".freeze, "lib/bundler/source/gemspec.rb".freeze, "lib/bundler/source/git.rb".freeze, "lib/bundler/source/git/git_proxy.rb".freeze, "lib/bundler/source/metadata.rb".freeze, "lib/bundler/source/path.rb".freeze, "lib/bundler/source/path/installer.rb".freeze, "lib/bundler/source/rubygems.rb".freeze, "lib/bundler/source/rubygems/remote.rb".freeze, "lib/bundler/source/rubygems_aggregate.rb".freeze, "lib/bundler/source_list.rb".freeze, "lib/bundler/source_map.rb".freeze, "lib/bundler/spec_set.rb".freeze, "lib/bundler/stub_specification.rb".freeze, "lib/bundler/ui.rb".freeze, "lib/bundler/ui/rg_proxy.rb".freeze, "lib/bundler/ui/shell.rb".freeze, "lib/bundler/ui/silent.rb".freeze, "lib/bundler/uri_credentials_filter.rb".freeze, "lib/bundler/uri_normalizer.rb".freeze, "lib/bundler/vendor/connection_pool/lib/connection_pool.rb".freeze, "lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb".freeze, "lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb".freeze, "lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb".freeze, "lib/bundler/vendor/fileutils/lib/fileutils.rb".freeze, "lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb".freeze, "lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb".freeze, "lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb".freeze, "lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb".freeze, "lib/bundler/vendor/pub_grub/lib/pub_grub.rb".freeze, "lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb".freeze, "lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb".freeze, "lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb".freeze, "lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb".freeze, "lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb".freeze, "lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb".freeze, "lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb".freeze, "lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb".freeze, "lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb".freeze, "lib/bundler/vendor/pub_grub/lib/pub_grub/strategy.rb".freeze, "lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb".freeze, "lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb".freeze, "lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb".freeze, "lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb".freeze, "lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb".freeze, "lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb".freeze, "lib/bundler/vendor/securerandom/lib/securerandom.rb".freeze, "lib/bundler/vendor/thor/lib/thor.rb".freeze, "lib/bundler/vendor/thor/lib/thor/actions.rb".freeze, "lib/bundler/vendor/thor/lib/thor/actions/create_file.rb".freeze, "lib/bundler/vendor/thor/lib/thor/actions/create_link.rb".freeze, "lib/bundler/vendor/thor/lib/thor/actions/directory.rb".freeze, "lib/bundler/vendor/thor/lib/thor/actions/empty_directory.rb".freeze, "lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb".freeze, "lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb".freeze, "lib/bundler/vendor/thor/lib/thor/base.rb".freeze, "lib/bundler/vendor/thor/lib/thor/command.rb".freeze, "lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb".freeze, "lib/bundler/vendor/thor/lib/thor/error.rb".freeze, "lib/bundler/vendor/thor/lib/thor/group.rb".freeze, "lib/bundler/vendor/thor/lib/thor/invocation.rb".freeze, "lib/bundler/vendor/thor/lib/thor/line_editor.rb".freeze, "lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb".freeze, "lib/bundler/vendor/thor/lib/thor/line_editor/readline.rb".freeze, "lib/bundler/vendor/thor/lib/thor/nested_context.rb".freeze, "lib/bundler/vendor/thor/lib/thor/parser.rb".freeze, "lib/bundler/vendor/thor/lib/thor/parser/argument.rb".freeze, "lib/bundler/vendor/thor/lib/thor/parser/arguments.rb".freeze, "lib/bundler/vendor/thor/lib/thor/parser/option.rb".freeze, "lib/bundler/vendor/thor/lib/thor/parser/options.rb".freeze, "lib/bundler/vendor/thor/lib/thor/rake_compat.rb".freeze, "lib/bundler/vendor/thor/lib/thor/runner.rb".freeze, "lib/bundler/vendor/thor/lib/thor/shell.rb".freeze, "lib/bundler/vendor/thor/lib/thor/shell/basic.rb".freeze, "lib/bundler/vendor/thor/lib/thor/shell/color.rb".freeze, "lib/bundler/vendor/thor/lib/thor/shell/column_printer.rb".freeze, "lib/bundler/vendor/thor/lib/thor/shell/html.rb".freeze, "lib/bundler/vendor/thor/lib/thor/shell/table_printer.rb".freeze, "lib/bundler/vendor/thor/lib/thor/shell/terminal.rb".freeze, "lib/bundler/vendor/thor/lib/thor/shell/wrapped_printer.rb".freeze, "lib/bundler/vendor/thor/lib/thor/util.rb".freeze, "lib/bundler/vendor/thor/lib/thor/version.rb".freeze, "lib/bundler/vendor/tsort/lib/tsort.rb".freeze, "lib/bundler/vendor/uri/lib/uri.rb".freeze, "lib/bundler/vendor/uri/lib/uri/common.rb".freeze, "lib/bundler/vendor/uri/lib/uri/file.rb".freeze, "lib/bundler/vendor/uri/lib/uri/ftp.rb".freeze, "lib/bundler/vendor/uri/lib/uri/generic.rb".freeze, "lib/bundler/vendor/uri/lib/uri/http.rb".freeze, "lib/bundler/vendor/uri/lib/uri/https.rb".freeze, "lib/bundler/vendor/uri/lib/uri/ldap.rb".freeze, "lib/bundler/vendor/uri/lib/uri/ldaps.rb".freeze, "lib/bundler/vendor/uri/lib/uri/mailto.rb".freeze, "lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb".freeze, "lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb".freeze, "lib/bundler/vendor/uri/lib/uri/version.rb".freeze, "lib/bundler/vendor/uri/lib/uri/ws.rb".freeze, "lib/bundler/vendor/uri/lib/uri/wss.rb".freeze, "lib/bundler/vendored_fileutils.rb".freeze, "lib/bundler/vendored_net_http.rb".freeze, "lib/bundler/vendored_persistent.rb".freeze, "lib/bundler/vendored_pub_grub.rb".freeze, "lib/bundler/vendored_securerandom.rb".freeze, "lib/bundler/vendored_thor.rb".freeze, "lib/bundler/vendored_timeout.rb".freeze, "lib/bundler/vendored_tsort.rb".freeze, "lib/bundler/vendored_uri.rb".freeze, "lib/bundler/version.rb".freeze, "lib/bundler/vlad.rb".freeze, "lib/bundler/worker.rb".freeze, "lib/bundler/yaml_serializer.rb".freeze, "lib/cgi.rb".freeze, "lib/cgi/escape.rb".freeze, "lib/cgi/util.rb".freeze, "lib/delegate.rb".freeze, "lib/did_you_mean.rb".freeze, "lib/did_you_mean/core_ext/name_error.rb".freeze, "lib/did_you_mean/experimental.rb".freeze, "lib/did_you_mean/formatter.rb".freeze, "lib/did_you_mean/formatters/plain_formatter.rb".freeze, "lib/did_you_mean/formatters/verbose_formatter.rb".freeze, "lib/did_you_mean/jaro_winkler.rb".freeze, "lib/did_you_mean/levenshtein.rb".freeze, "lib/did_you_mean/spell_checker.rb".freeze, "lib/did_you_mean/spell_checkers/key_error_checker.rb".freeze, "lib/did_you_mean/spell_checkers/method_name_checker.rb".freeze, "lib/did_you_mean/spell_checkers/name_error_checkers.rb".freeze, "lib/did_you_mean/spell_checkers/name_error_checkers/class_name_checker.rb".freeze, "lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb".freeze, "lib/did_you_mean/spell_checkers/null_checker.rb".freeze, "lib/did_you_mean/spell_checkers/pattern_key_name_checker.rb".freeze, "lib/did_you_mean/spell_checkers/require_path_checker.rb".freeze, "lib/did_you_mean/tree_spell_checker.rb".freeze, "lib/did_you_mean/verbose.rb".freeze, "lib/did_you_mean/version.rb".freeze, "lib/erb.rb".freeze, "lib/erb/compiler.rb".freeze, "lib/erb/def_method.rb".freeze, "lib/erb/util.rb".freeze, "lib/erb/version.rb".freeze, "lib/error_highlight.rb".freeze, "lib/error_highlight/base.rb".freeze, "lib/error_highlight/core_ext.rb".freeze, "lib/error_highlight/formatter.rb".freeze, "lib/error_highlight/version.rb".freeze, "lib/fileutils.rb".freeze, "lib/find.rb".freeze, "lib/forwardable.rb".freeze, "lib/forwardable/impl.rb".freeze, "lib/ipaddr.rb".freeze, "lib/mkmf.rb".freeze, "lib/net/http.rb".freeze, "lib/net/http/exceptions.rb".freeze, "lib/net/http/generic_request.rb".freeze, "lib/net/http/header.rb".freeze, "lib/net/http/proxy_delta.rb".freeze, "lib/net/http/request.rb".freeze, "lib/net/http/requests.rb".freeze, "lib/net/http/response.rb".freeze, "lib/net/http/responses.rb".freeze, "lib/net/http/status.rb".freeze, "lib/net/https.rb".freeze, "lib/net/protocol.rb".freeze, "lib/open-uri.rb".freeze, "lib/open3.rb".freeze, "lib/open3/version.rb".freeze, "lib/optionparser.rb".freeze, "lib/optparse.rb".freeze, "lib/optparse/ac.rb".freeze, "lib/optparse/date.rb".freeze, "lib/optparse/kwargs.rb".freeze, "lib/optparse/shellwords.rb".freeze, "lib/optparse/time.rb".freeze, "lib/optparse/uri.rb".freeze, "lib/optparse/version.rb".freeze, "lib/pp.rb".freeze, "lib/prettyprint.rb".freeze, "lib/prism.rb".freeze, "lib/prism/compiler.rb".freeze, "lib/prism/desugar_compiler.rb".freeze, "lib/prism/dispatcher.rb".freeze, "lib/prism/dsl.rb".freeze, "lib/prism/ffi.rb".freeze, "lib/prism/inspect_visitor.rb".freeze, "lib/prism/lex_compat.rb".freeze, "lib/prism/mutation_compiler.rb".freeze, "lib/prism/node.rb".freeze, "lib/prism/node_ext.rb".freeze, "lib/prism/pack.rb".freeze, "lib/prism/parse_result.rb".freeze, "lib/prism/parse_result/comments.rb".freeze, "lib/prism/parse_result/errors.rb".freeze, "lib/prism/parse_result/newlines.rb".freeze, "lib/prism/pattern.rb".freeze, "lib/prism/polyfill/append_as_bytes.rb".freeze, "lib/prism/polyfill/byteindex.rb".freeze, "lib/prism/polyfill/scan_byte.rb".freeze, "lib/prism/polyfill/unpack1.rb".freeze, "lib/prism/polyfill/warn.rb".freeze, "lib/prism/reflection.rb".freeze, "lib/prism/relocation.rb".freeze, "lib/prism/serialize.rb".freeze, "lib/prism/string_query.rb".freeze, "lib/prism/translation.rb".freeze, "lib/prism/translation/parser.rb".freeze, "lib/prism/translation/parser/builder.rb".freeze, "lib/prism/translation/parser/compiler.rb".freeze, "lib/prism/translation/parser/lexer.rb".freeze, "lib/prism/translation/parser33.rb".freeze, "lib/prism/translation/parser34.rb".freeze, "lib/prism/translation/parser35.rb".freeze, "lib/prism/translation/parser_current.rb".freeze, "lib/prism/translation/ripper.rb".freeze, "lib/prism/translation/ripper/sexp.rb".freeze, "lib/prism/translation/ripper/shim.rb".freeze, "lib/prism/translation/ruby_parser.rb".freeze, "lib/prism/visitor.rb".freeze, "lib/random/formatter.rb".freeze, "lib/resolv.rb".freeze, "lib/rubygems.rb".freeze, "lib/rubygems/available_set.rb".freeze, "lib/rubygems/basic_specification.rb".freeze, "lib/rubygems/bundler_integration.rb".freeze, "lib/rubygems/bundler_version_finder.rb".freeze, "lib/rubygems/ci_detector.rb".freeze, "lib/rubygems/command.rb".freeze, "lib/rubygems/command_manager.rb".freeze, "lib/rubygems/commands/build_command.rb".freeze, "lib/rubygems/commands/cert_command.rb".freeze, "lib/rubygems/commands/check_command.rb".freeze, "lib/rubygems/commands/cleanup_command.rb".freeze, "lib/rubygems/commands/contents_command.rb".freeze, "lib/rubygems/commands/dependency_command.rb".freeze, "lib/rubygems/commands/environment_command.rb".freeze, "lib/rubygems/commands/exec_command.rb".freeze, "lib/rubygems/commands/fetch_command.rb".freeze, "lib/rubygems/commands/generate_index_command.rb".freeze, "lib/rubygems/commands/help_command.rb".freeze, "lib/rubygems/commands/info_command.rb".freeze, "lib/rubygems/commands/install_command.rb".freeze, "lib/rubygems/commands/list_command.rb".freeze, "lib/rubygems/commands/lock_command.rb".freeze, "lib/rubygems/commands/mirror_command.rb".freeze, "lib/rubygems/commands/open_command.rb".freeze, "lib/rubygems/commands/outdated_command.rb".freeze, "lib/rubygems/commands/owner_command.rb".freeze, "lib/rubygems/commands/pristine_command.rb".freeze, "lib/rubygems/commands/push_command.rb".freeze, "lib/rubygems/commands/query_command.rb".freeze, "lib/rubygems/commands/rdoc_command.rb".freeze, "lib/rubygems/commands/rebuild_command.rb".freeze, "lib/rubygems/commands/search_command.rb".freeze, "lib/rubygems/commands/server_command.rb".freeze, "lib/rubygems/commands/setup_command.rb".freeze, "lib/rubygems/commands/signin_command.rb".freeze, "lib/rubygems/commands/signout_command.rb".freeze, "lib/rubygems/commands/sources_command.rb".freeze, "lib/rubygems/commands/specification_command.rb".freeze, "lib/rubygems/commands/stale_command.rb".freeze, "lib/rubygems/commands/uninstall_command.rb".freeze, "lib/rubygems/commands/unpack_command.rb".freeze, "lib/rubygems/commands/update_command.rb".freeze, "lib/rubygems/commands/which_command.rb".freeze, "lib/rubygems/commands/yank_command.rb".freeze, "lib/rubygems/compatibility.rb".freeze, "lib/rubygems/config_file.rb".freeze, "lib/rubygems/core_ext/kernel_gem.rb".freeze, "lib/rubygems/core_ext/kernel_require.rb".freeze, "lib/rubygems/core_ext/kernel_warn.rb".freeze, "lib/rubygems/core_ext/tcpsocket_init.rb".freeze, "lib/rubygems/defaults.rb".freeze, "lib/rubygems/dependency.rb".freeze, "lib/rubygems/dependency_installer.rb".freeze, "lib/rubygems/dependency_list.rb".freeze, "lib/rubygems/deprecate.rb".freeze, "lib/rubygems/doctor.rb".freeze, "lib/rubygems/errors.rb".freeze, "lib/rubygems/exceptions.rb".freeze, "lib/rubygems/ext.rb".freeze, "lib/rubygems/ext/build_error.rb".freeze, "lib/rubygems/ext/builder.rb".freeze, "lib/rubygems/ext/cargo_builder.rb".freeze, "lib/rubygems/ext/cargo_builder/link_flag_converter.rb".freeze, "lib/rubygems/ext/cmake_builder.rb".freeze, "lib/rubygems/ext/configure_builder.rb".freeze, "lib/rubygems/ext/ext_conf_builder.rb".freeze, "lib/rubygems/ext/rake_builder.rb".freeze, "lib/rubygems/gem_runner.rb".freeze, "lib/rubygems/gemcutter_utilities.rb".freeze, "lib/rubygems/gemcutter_utilities/webauthn_listener.rb".freeze, "lib/rubygems/gemcutter_utilities/webauthn_listener/response.rb".freeze, "lib/rubygems/gemcutter_utilities/webauthn_poller.rb".freeze, "lib/rubygems/gemspec_helpers.rb".freeze, "lib/rubygems/install_default_message.rb".freeze, "lib/rubygems/install_message.rb".freeze, "lib/rubygems/install_update_options.rb".freeze, "lib/rubygems/installer.rb".freeze, "lib/rubygems/installer_uninstaller_utils.rb".freeze, "lib/rubygems/local_remote_options.rb".freeze, "lib/rubygems/name_tuple.rb".freeze, "lib/rubygems/openssl.rb".freeze, "lib/rubygems/package.rb".freeze, "lib/rubygems/package/digest_io.rb".freeze, "lib/rubygems/package/file_source.rb".freeze, "lib/rubygems/package/io_source.rb".freeze, "lib/rubygems/package/old.rb".freeze, "lib/rubygems/package/source.rb".freeze, "lib/rubygems/package/tar_header.rb".freeze, "lib/rubygems/package/tar_reader.rb".freeze, "lib/rubygems/package/tar_reader/entry.rb".freeze, "lib/rubygems/package/tar_writer.rb".freeze, "lib/rubygems/package_task.rb".freeze, "lib/rubygems/path_support.rb".freeze, "lib/rubygems/platform.rb".freeze, "lib/rubygems/psych_tree.rb".freeze, "lib/rubygems/query_utils.rb".freeze, "lib/rubygems/rdoc.rb".freeze, "lib/rubygems/remote_fetcher.rb".freeze, "lib/rubygems/request.rb".freeze, "lib/rubygems/request/connection_pools.rb".freeze, "lib/rubygems/request/http_pool.rb".freeze, "lib/rubygems/request/https_pool.rb".freeze, "lib/rubygems/request_set.rb".freeze, "lib/rubygems/request_set/gem_dependency_api.rb".freeze, "lib/rubygems/request_set/lockfile.rb".freeze, "lib/rubygems/request_set/lockfile/parser.rb".freeze, "lib/rubygems/request_set/lockfile/tokenizer.rb".freeze, "lib/rubygems/requirement.rb".freeze, "lib/rubygems/resolver.rb".freeze, "lib/rubygems/resolver/activation_request.rb".freeze, "lib/rubygems/resolver/api_set.rb".freeze, "lib/rubygems/resolver/api_set/gem_parser.rb".freeze, "lib/rubygems/resolver/api_specification.rb".freeze, "lib/rubygems/resolver/best_set.rb".freeze, "lib/rubygems/resolver/composed_set.rb".freeze, "lib/rubygems/resolver/conflict.rb".freeze, "lib/rubygems/resolver/current_set.rb".freeze, "lib/rubygems/resolver/dependency_request.rb".freeze, "lib/rubygems/resolver/git_set.rb".freeze, "lib/rubygems/resolver/git_specification.rb".freeze, "lib/rubygems/resolver/index_set.rb".freeze, "lib/rubygems/resolver/index_specification.rb".freeze, "lib/rubygems/resolver/installed_specification.rb".freeze, "lib/rubygems/resolver/installer_set.rb".freeze, "lib/rubygems/resolver/local_specification.rb".freeze, "lib/rubygems/resolver/lock_set.rb".freeze, "lib/rubygems/resolver/lock_specification.rb".freeze, "lib/rubygems/resolver/requirement_list.rb".freeze, "lib/rubygems/resolver/set.rb".freeze, "lib/rubygems/resolver/source_set.rb".freeze, "lib/rubygems/resolver/spec_specification.rb".freeze, "lib/rubygems/resolver/specification.rb".freeze, "lib/rubygems/resolver/stats.rb".freeze, "lib/rubygems/resolver/vendor_set.rb".freeze, "lib/rubygems/resolver/vendor_specification.rb".freeze, "lib/rubygems/s3_uri_signer.rb".freeze, "lib/rubygems/safe_marshal.rb".freeze, "lib/rubygems/safe_marshal/elements.rb".freeze, "lib/rubygems/safe_marshal/reader.rb".freeze, "lib/rubygems/safe_marshal/visitors/stream_printer.rb".freeze, "lib/rubygems/safe_marshal/visitors/to_ruby.rb".freeze, "lib/rubygems/safe_marshal/visitors/visitor.rb".freeze, "lib/rubygems/safe_yaml.rb".freeze, "lib/rubygems/security.rb".freeze, "lib/rubygems/security/policies.rb".freeze, "lib/rubygems/security/policy.rb".freeze, "lib/rubygems/security/signer.rb".freeze, "lib/rubygems/security/trust_dir.rb".freeze, "lib/rubygems/security_option.rb".freeze, "lib/rubygems/source.rb".freeze, "lib/rubygems/source/git.rb".freeze, "lib/rubygems/source/installed.rb".freeze, "lib/rubygems/source/local.rb".freeze, "lib/rubygems/source/lock.rb".freeze, "lib/rubygems/source/specific_file.rb".freeze, "lib/rubygems/source/vendor.rb".freeze, "lib/rubygems/source_list.rb".freeze, "lib/rubygems/spec_fetcher.rb".freeze, "lib/rubygems/specification.rb".freeze, "lib/rubygems/specification_policy.rb".freeze, "lib/rubygems/specification_record.rb".freeze, "lib/rubygems/stub_specification.rb".freeze, "lib/rubygems/target_rbconfig.rb".freeze, "lib/rubygems/text.rb".freeze, "lib/rubygems/uninstaller.rb".freeze, "lib/rubygems/unknown_command_spell_checker.rb".freeze, "lib/rubygems/update_suggestion.rb".freeze, "lib/rubygems/uri.rb".freeze, "lib/rubygems/uri_formatter.rb".freeze, "lib/rubygems/user_interaction.rb".freeze, "lib/rubygems/util.rb".freeze, "lib/rubygems/util/licenses.rb".freeze, "lib/rubygems/util/list.rb".freeze, "lib/rubygems/validator.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/action.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/log.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/errors.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/gem_metadata.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/modules/specification_provider.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/modules/ui.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/resolution.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/resolver.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/state.rb".freeze, "lib/rubygems/vendor/net-http/lib/net/http.rb".freeze, "lib/rubygems/vendor/net-http/lib/net/http/exceptions.rb".freeze, "lib/rubygems/vendor/net-http/lib/net/http/generic_request.rb".freeze, "lib/rubygems/vendor/net-http/lib/net/http/header.rb".freeze, "lib/rubygems/vendor/net-http/lib/net/http/proxy_delta.rb".freeze, "lib/rubygems/vendor/net-http/lib/net/http/request.rb".freeze, "lib/rubygems/vendor/net-http/lib/net/http/requests.rb".freeze, "lib/rubygems/vendor/net-http/lib/net/http/response.rb".freeze, "lib/rubygems/vendor/net-http/lib/net/http/responses.rb".freeze, "lib/rubygems/vendor/net-http/lib/net/http/status.rb".freeze, "lib/rubygems/vendor/net-http/lib/net/https.rb".freeze, "lib/rubygems/vendor/net-protocol/lib/net/protocol.rb".freeze, "lib/rubygems/vendor/optparse/lib/optionparser.rb".freeze, "lib/rubygems/vendor/optparse/lib/optparse.rb".freeze, "lib/rubygems/vendor/optparse/lib/optparse/ac.rb".freeze, "lib/rubygems/vendor/optparse/lib/optparse/date.rb".freeze, "lib/rubygems/vendor/optparse/lib/optparse/kwargs.rb".freeze, "lib/rubygems/vendor/optparse/lib/optparse/shellwords.rb".freeze, "lib/rubygems/vendor/optparse/lib/optparse/time.rb".freeze, "lib/rubygems/vendor/optparse/lib/optparse/uri.rb".freeze, "lib/rubygems/vendor/optparse/lib/optparse/version.rb".freeze, "lib/rubygems/vendor/resolv/lib/resolv.rb".freeze, "lib/rubygems/vendor/securerandom/lib/securerandom.rb".freeze, "lib/rubygems/vendor/timeout/lib/timeout.rb".freeze, "lib/rubygems/vendor/tsort/lib/tsort.rb".freeze, "lib/rubygems/vendor/uri/lib/uri.rb".freeze, "lib/rubygems/vendor/uri/lib/uri/common.rb".freeze, "lib/rubygems/vendor/uri/lib/uri/file.rb".freeze, "lib/rubygems/vendor/uri/lib/uri/ftp.rb".freeze, "lib/rubygems/vendor/uri/lib/uri/generic.rb".freeze, "lib/rubygems/vendor/uri/lib/uri/http.rb".freeze, "lib/rubygems/vendor/uri/lib/uri/https.rb".freeze, "lib/rubygems/vendor/uri/lib/uri/ldap.rb".freeze, "lib/rubygems/vendor/uri/lib/uri/ldaps.rb".freeze, "lib/rubygems/vendor/uri/lib/uri/mailto.rb".freeze, "lib/rubygems/vendor/uri/lib/uri/rfc2396_parser.rb".freeze, "lib/rubygems/vendor/uri/lib/uri/rfc3986_parser.rb".freeze, "lib/rubygems/vendor/uri/lib/uri/version.rb".freeze, "lib/rubygems/vendor/uri/lib/uri/ws.rb".freeze, "lib/rubygems/vendor/uri/lib/uri/wss.rb".freeze, "lib/rubygems/vendored_molinillo.rb".freeze, "lib/rubygems/vendored_net_http.rb".freeze, "lib/rubygems/vendored_optparse.rb".freeze, "lib/rubygems/vendored_securerandom.rb".freeze, "lib/rubygems/vendored_timeout.rb".freeze, "lib/rubygems/vendored_tsort.rb".freeze, "lib/rubygems/version.rb".freeze, "lib/rubygems/version_option.rb".freeze, "lib/rubygems/yaml_serializer.rb".freeze, "lib/securerandom.rb".freeze, "lib/shellwords.rb".freeze, "lib/singleton.rb".freeze, "lib/syntax_suggest.rb".freeze, "lib/syntax_suggest/api.rb".freeze, "lib/syntax_suggest/around_block_scan.rb".freeze, "lib/syntax_suggest/block_expand.rb".freeze, "lib/syntax_suggest/capture/before_after_keyword_ends.rb".freeze, "lib/syntax_suggest/capture/falling_indent_lines.rb".freeze, "lib/syntax_suggest/capture_code_context.rb".freeze, "lib/syntax_suggest/clean_document.rb".freeze, "lib/syntax_suggest/cli.rb".freeze, "lib/syntax_suggest/code_block.rb".freeze, "lib/syntax_suggest/code_frontier.rb".freeze, "lib/syntax_suggest/code_line.rb".freeze, "lib/syntax_suggest/code_search.rb".freeze, "lib/syntax_suggest/core_ext.rb".freeze, "lib/syntax_suggest/display_code_with_line_numbers.rb".freeze, "lib/syntax_suggest/display_invalid_blocks.rb".freeze, "lib/syntax_suggest/explain_syntax.rb".freeze, "lib/syntax_suggest/left_right_lex_count.rb".freeze, "lib/syntax_suggest/lex_all.rb".freeze, "lib/syntax_suggest/lex_value.rb".freeze, "lib/syntax_suggest/mini_stringio.rb".freeze, "lib/syntax_suggest/parse_blocks_from_indent_line.rb".freeze, "lib/syntax_suggest/pathname_from_message.rb".freeze, "lib/syntax_suggest/priority_engulf_queue.rb".freeze, "lib/syntax_suggest/priority_queue.rb".freeze, "lib/syntax_suggest/ripper_errors.rb".freeze, "lib/syntax_suggest/scan_history.rb".freeze, "lib/syntax_suggest/unvisited_lines.rb".freeze, "lib/syntax_suggest/version.rb".freeze, "lib/tempfile.rb".freeze, "lib/time.rb".freeze, "lib/timeout.rb".freeze, "lib/tmpdir.rb".freeze, "lib/tsort.rb".freeze, "lib/un.rb".freeze, "lib/unicode_normalize/normalize.rb".freeze, "lib/unicode_normalize/tables.rb".freeze, "lib/uri.rb".freeze, "lib/uri/common.rb".freeze, "lib/uri/file.rb".freeze, "lib/uri/ftp.rb".freeze, "lib/uri/generic.rb".freeze, "lib/uri/http.rb".freeze, "lib/uri/https.rb".freeze, "lib/uri/ldap.rb".freeze, "lib/uri/ldaps.rb".freeze, "lib/uri/mailto.rb".freeze, "lib/uri/rfc2396_parser.rb".freeze, "lib/uri/rfc3986_parser.rb".freeze, "lib/uri/version.rb".freeze, "lib/uri/ws.rb".freeze, "lib/uri/wss.rb".freeze, "lib/weakref.rb".freeze, "lib/yaml.rb".freeze, "lib/yaml/dbm.rb".freeze, "lib/yaml/store.rb".freeze]

In addition, "json" is not the only gemspec that's broken. In total I found 3 of them to be broken:

  • json-2.12.2.gemspec
  • openssl-3.3.0.gemspec
  • optparse-0.7.0.dev.2.gemspec

The commonality among these gemspec is that they all have Dir["lib/**/*"] or some similar patterns, and due to the all default gems are installed in a single shared directory, the glob pattern is including files from other gems.


Related issues 1 (1 open0 closed)

Has duplicate Ruby - Misc #21458: Test 'make install'?OpenActions
Actions #1

Updated by ntkme (Natsuki Natsume) about 11 hours ago

  • ruby -v changed from ruby 2.6.10p210 (2022-04-12 revision 67958) [universal.arm64e-darwin24] to ruby 3.5.0dev (2025-06-30T18:15:00Z master 99360e500d) +PRISM [arm64-darwin24]
Actions #2

Updated by ntkme (Natsuki Natsume) about 11 hours ago

  • Subject changed from [ruby-head] bundler crashes because default gems having bloated spec.files containing files from other gems to [ruby-head] bundler crashes because default gems (json, openssl, optparse) having bloated spec.files containing files from other gems
Actions #5

Updated by hsbt (Hiroshi SHIBATA) about 5 hours ago

  • Has duplicate Misc #21458: Test 'make install'? added
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0