Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mailcatcher: Could not find daemons-1.3.1 in any of the sources (Bundler::GemNotFound) #85989

Closed
gtgteq opened this issue Apr 25, 2020 · 8 comments · Fixed by #110703
Closed
Labels
0.kind: bug Something is broken 6.topic: ruby

Comments

@gtgteq
Copy link
Contributor

gtgteq commented Apr 25, 2020

Describe the bug
mailcatcher do not run.

To Reproduce

$ nix-shell -p mailcatcher
...
$ mailcatcher
Traceback (most recent call last):
        9: from /nix/store/mqhb1j757yyffaxk6axkfrayck26507b-mailcatcher-0.7.1/bin/mailcatcher:18:in `<main>'
        8: from /nix/store/hindv16l90d7i4n3hk5l1x73nj068kyp-bundler-2.1.4/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler.rb:149:in `setup'
        7: from /nix/store/hindv16l90d7i4n3hk5l1x73nj068kyp-bundler-2.1.4/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/runtime.rb:20:in `setup'
        6: from /nix/store/hindv16l90d7i4n3hk5l1x73nj068kyp-bundler-2.1.4/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/runtime.rb:101:in `block in definition_method'
        5: from /nix/store/hindv16l90d7i4n3hk5l1x73nj068kyp-bundler-2.1.4/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/definition.rb:226:in `requested_specs'
        4: from /nix/store/hindv16l90d7i4n3hk5l1x73nj068kyp-bundler-2.1.4/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/definition.rb:237:in `specs_for'
        3: from /nix/store/hindv16l90d7i4n3hk5l1x73nj068kyp-bundler-2.1.4/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/definition.rb:170:in `specs'
        2: from /nix/store/hindv16l90d7i4n3hk5l1x73nj068kyp-bundler-2.1.4/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/spec_set.rb:80:in `materialize'
        1: from /nix/store/hindv16l90d7i4n3hk5l1x73nj068kyp-bundler-2.1.4/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/spec_set.rb:80:in `map!'
/nix/store/hindv16l90d7i4n3hk5l1x73nj068kyp-bundler-2.1.4/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/spec_set.rb:86:in `block in materialize': Could not find daemons-1.3.1 in any of the sources (Bundler::GemNotFound)

Notify maintainers

@zarelit @nicknovitski

Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.

 - system: `"x86_64-linux"`
 - host os: `Linux 4.19.116, NixOS, 20.09pre222138.b3c3a0bd183 (Nightingale)`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.3.4`
 - channels(root): `"nixos-20.09pre222138.b3c3a0bd183"`
 - channels(gtgteq): `""`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

Maintainer information:

# a list of nixpkgs attributes affected by the problem
attribute:
# a list of nixos modules affected by the problem
module:
- services.mailcatcher
@gtgteq gtgteq added the 0.kind: bug Something is broken label Apr 25, 2020
@gtgteq
Copy link
Contributor Author

gtgteq commented Apr 28, 2020

metasploit meets the same error.

Could not find rake-13.0.1 in any of the sources (Bundler::GemNotFound)

@jdelStrother
Copy link
Contributor

jdelStrother commented May 1, 2020

I think I might have the same issue with solargraph:

$ nix run -f channel:nixpkgs-20.03-darwin solargraph -c solargraph -h
Traceback (most recent call last):
	9: from /nix/store/r76fa0d6fbl3pfqqgrwv7br5vvk7mmlc-solargraph-0.38.0/bin/solargraph:18:in `<main>'
	8: from /nix/store/hkrwdzy7k6kasddlh1ylggn40zdmyrk2-bundler-2.1.4/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler.rb:149:in `setup'
	7: from /nix/store/hkrwdzy7k6kasddlh1ylggn40zdmyrk2-bundler-2.1.4/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/runtime.rb:20:in `setup'
	6: from /nix/store/hkrwdzy7k6kasddlh1ylggn40zdmyrk2-bundler-2.1.4/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/runtime.rb:101:in `block in definition_method'
	5: from /nix/store/hkrwdzy7k6kasddlh1ylggn40zdmyrk2-bundler-2.1.4/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/definition.rb:226:in `requested_specs'
	4: from /nix/store/hkrwdzy7k6kasddlh1ylggn40zdmyrk2-bundler-2.1.4/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/definition.rb:237:in `specs_for'
	3: from /nix/store/hkrwdzy7k6kasddlh1ylggn40zdmyrk2-bundler-2.1.4/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/definition.rb:170:in `specs'
	2: from /nix/store/hkrwdzy7k6kasddlh1ylggn40zdmyrk2-bundler-2.1.4/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/spec_set.rb:80:in `materialize'
	1: from /nix/store/hkrwdzy7k6kasddlh1ylggn40zdmyrk2-bundler-2.1.4/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/spec_set.rb:80:in `map!'
/nix/store/hkrwdzy7k6kasddlh1ylggn40zdmyrk2-bundler-2.1.4/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/spec_set.rb:86:in `block in materialize': Could not find jaro_winkler-1.5.4 in any of the sources (Bundler::GemNotFound)

The same command from nixpkgs-19.09 seems fine:

$ nix run -f channel:nixpkgs-19.09-darwin solargraph -c solargraph -h
Commands:
  solargraph --version, -v            # Print the version
  solargraph available-cores          # List available documentation versions
  solargraph bundle                   # Generate documentation for bundled gems
  solargraph clear                    # Delete the cached documentation
  solargraph config [DIRECTORY]       # Create or overwrite a default configuration file
  solargraph download-core [VERSION]  # Download core documentation
  solargraph help [COMMAND]           # Describe available commands or one specific command
  solargraph list-cores               # List the local documentation versions
  solargraph rdoc GEM [VERSION]       # Use RDoc to cache documentation
  solargraph reporters                # Get a list of diagnostics reporters
  solargraph scan                     # Test the workspace for problems
  solargraph socket                   # Run a Solargraph socket server
  solargraph stdio                    # Run a Solargraph stdio server
  solargraph typecheck [FILE]         # Run the type checker
  solargraph uncache GEM [...GEM]     # Delete cached gem documentation

Possibly due to the bundler changes in #81442 ?


EDIT: Hm. But in a docker container (lnl7/nix:2020-03-07), nix run -f channel:nixos-20.03 solargraph -c solargraph -h runs fine. Something in my environment? Or darwin weirdness?

$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-darwin"`
 - host os: `Darwin 18.7.0, macOS 10.14.6`
 - multi-user?: `no`
 - sandbox: `no`
 - version: `nix-env (Nix) 2.3.4`
 - channels(jon): `"nixpkgs-20.09pre221814.10100a97c89"`
 - nixpkgs: `/Users/jon/.nix-defexpr/channels/nixpkgs

@alypeng
Copy link
Contributor

alypeng commented Jul 25, 2020

I had a similar issue and I found that my global bundler config was the problem.

# ~/.bundle/config

---
BUNDLE_PATH: "vendor/bundle"

#81442 changed the generated binstubs so that the BUNDLE_PATH environment variable is no longer set which I think means that bundler will now use BUNDLE_PATH from the global config if it exists.

diff --git a/pkgs/development/ruby-modules/bundled-common/gen-bin-stubs.rb b/pkgs/development/ruby-modules/bundled-common/gen-bin-stubs.rb
index add5db56d1d..1dfeaadf650 100644
--- a/pkgs/development/ruby-modules/bundled-common/gen-bin-stubs.rb
+++ b/pkgs/development/ruby-modules/bundled-common/gen-bin-stubs.rb
@@ -32,7 +32,7 @@ paths.each do |path|
 #

 ENV["BUNDLE_GEMFILE"] = #{gemfile.dump}
-ENV["BUNDLE_PATH"] = #{bundle_path.dump}
+ENV.delete 'BUNDLE_PATH'
 ENV['BUNDLE_FROZEN'] = '1'

 $LOAD_PATH.unshift #{bundler_path.dump} + "/lib"

This seems to result in bundler looking for gems in the wrong location.

A possible workaround is to set BUNDLE_PATH using an environment variable instead of using the global config since this value will be unset by the generated binstubs but will still have an effect when bundler is used from somewhere else.

There is also the BUNDLE_IGNORE_CONFIG environment variable which causes bundler to ignore all configuration but that might have other unwanted effects.

@stale
Copy link

stale bot commented Jan 21, 2021

I marked this as stale due to inactivity. → More info

@stale stale bot added the 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md label Jan 21, 2021
@zarelit
Copy link
Member

zarelit commented Jan 22, 2021

@gtgteq Do you still experience the issue? nixos tests of the service are passing and I'm unable to replicate on the current nixpkgs or even in commit b3c3a0bd183

@stale stale bot removed the 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md label Jan 22, 2021
@gtgteq
Copy link
Contributor Author

gtgteq commented Jan 23, 2021

@zarelit Yes. mailcatcher and metasploit don't run. I'm in nixos-unstable 21.03pre265130.f217c0ea7c1.

@gtgteq
Copy link
Contributor Author

gtgteq commented Jan 23, 2021

I removed BUNDLE_PATH in ~/.bundle/config then both programs run fine.

@nicknovitski
Copy link
Contributor

Hopefully #110703 or a similar change will get merged and prevent these problems. I've seen a few issues like this get reported.

marsam pushed a commit that referenced this issue Jul 31, 2021
Change will make packaged ruby application ignore the user-wide bundle
configuration.

Fix #85989
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
0.kind: bug Something is broken 6.topic: ruby
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants