Bug 1464502 - bundler install - rb-inotify (~> 0.9, >= 0.9.7) not satisfied by installed rubygem-rb-inotify-0.9.7-1.fc25.noarch ??
bundler install - rb-inotify (~> 0.9, >= 0.9.7) not satisfied by installed ru...
Product: Fedora
Classification: Fedora
Component: rubygem-bundler (Show other bugs)
Unspecified Unspecified
unspecified Severity unspecified
: ---
: ---
Assigned To: Vít Ondruch
Fedora Extras Quality Assurance
Depends On:
  Show dependency treegraph
Reported: 2017-06-23 11:15 EDT by Alan Jenkins
Modified: 2017-06-26 05:47 EDT (History)
4 users (show)

See Also:
Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2017-06-23 11:32:35 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Alan Jenkins 2017-06-23 11:15:51 EDT
Description of problem:

Trying to start a fresh jekyll project, the user is asked to run `bundle install`.  But, it does not use the installed rubygem-rb-inotify and instead downloads it from the internet.  This does not make sense, the only reason `bundle install` was required was to install the minima theme.

Version-Release number of selected component (if applicable):


How reproducible: always

Steps to Reproduce:
1. dnf install rubygem-jekyll
2. jekyll new testblog
3. cd testblog
4. bundle exec jekyll serve
5. run `bundle install` if suggested

Actual results:

$ bundle exec jekyll serve
Could not find gem 'minima' in any of the gem sources listed in your Gemfile or available on this machine.
Run `bundle install` to install missing gems.

$ bundle install
Fetching gem metadata from https://rubygems.org/
Fetching version metadata from https://rubygems.org/
Fetching dependency metadata from https://rubygems.org/
Resolving dependencies...
Using colorator 1.1.0
Installing ffi 1.9.18 with native extensions
Using forwardable-extended 2.6.0
Installing sass 3.4.24
Using kramdown 1.13.2
Installing liquid 3.0.6
Using mercenary 0.3.6
Using rouge 1.11.1
Using safe_yaml 1.0.4
Installing minima 2.0.0
Using bundler 1.12.5
Installing rb-inotify 0.9.10
Using pathutil 0.14.0
Using jekyll-sass-converter 1.5.0
Using listen 3.1.5
Using jekyll-watch 1.5.0
Using jekyll 3.2.1
Bundle complete! 2 Gemfile dependencies, 17 gems now installed.
Use `bundle show [gemname]` to see where a bundled gem is installed.

Expected results:

bundler should not have installed rb-notify, when the jekyll RPM had already pulled in rubygem-rb-inotify-0.9.7-1.fc25.noarch.  See below.

Either this is a bug in bundler, or there is some issue with the rubygem packaging which I can't find.

Additional info:

Look in the Gemfile (below), and you see that

1. the only gem with a dependency on rb-inotify is `listen`.
2. `listen` requires `rb-inotify (~> 0.9, >= 0.9.7)`

$ gem list | grep rb-inotify
rb-inotify (0.9.10, 0.9.7)

$ cat Gemfile.lock

  remote: https://rubygems.org/
    colorator (1.1.0)
    ffi (1.9.18)
    forwardable-extended (2.6.0)
    jekyll (3.2.1)
      colorator (~> 1.0)
      jekyll-sass-converter (~> 1.0)
      jekyll-watch (~> 1.1)
      kramdown (~> 1.3)
      liquid (~> 3.0)
      mercenary (~> 0.3.3)
      pathutil (~> 0.9)
      rouge (~> 1.7)
      safe_yaml (~> 1.0)
    jekyll-sass-converter (1.5.0)
      sass (~> 3.4)
    jekyll-watch (1.5.0)
      listen (~> 3.0)
    kramdown (1.13.2)
    liquid (3.0.6)
    listen (3.1.5)
      rb-inotify (~> 0.9, >= 0.9.7)
    mercenary (0.3.6)
    minima (2.0.0)
    pathutil (0.14.0)
      forwardable-extended (~> 2.6)
    rb-inotify (0.9.10)
      ffi (>= 0.5.0, < 2)
    rouge (1.11.1)
    safe_yaml (1.0.4)
    sass (3.4.24)
Comment 1 Vít Ondruch 2017-06-23 11:32:35 EDT
Well, this is misfeature of Bundler. I guess that following steps should help you to move forward:

1) dnf install rubygem-jekyll
2) gem install minima
3) jekyll new testblog
4) cd testblog
5) bundle install --local

We have tried several times to convince upstream, that it should prefer the already installed packages, but we always failed :/

I am closing this now and hope that the workaround helps you. But feel free to reopen in case I was wrong.
Comment 2 Alan Jenkins 2017-06-23 11:59:57 EDT
Hi, thanks for engaging.

The non-obvious part is how it's happy to use jekyll, jekyll-watch, and listen, but then balks at rb-inotify.

That workaround doesn't work, but I don't want to complain about that.  It seems more a bug in rubygem-jekyll, that we have it packaged, but none of the themes that you would need to actually use it are packaged.

Resolving dependencies...
Bundler could not find compatible versions for gem "jekyll":
  In Gemfile:
    jekyll (= 3.2.1)

    minima was resolved to 2.1.1, which depends on
      jekyll (~> 3.3)
Comment 3 Vít Ondruch 2017-06-26 05:47:20 EDT
(In reply to Alan Jenkins from comment #2)
> Resolving dependencies...
> Bundler could not find compatible versions for gem "jekyll":
>   In Gemfile:
>     jekyll (= 3.2.1)
>     minima was resolved to 2.1.1, which depends on
>       jekyll (~> 3.3)

Ok, so the most recent minima requires more recent jekyll. Two options here:

1) Specify the version of minima compatible with Jekyll package in Fedora:
  a) "gem install minima -v 2.0.0"
  b) Restrict the minima version in the Gemfile
2) Ask rubygem-jekyll maintainers to update the Jekyll package in Fedora.

Note You need to log in before you can comment on or make changes to this bug.