Bug 1464502 - bundler install - rb-inotify (~> 0.9, >= 0.9.7) not satisfied by installed rubygem-rb-inotify-0.9.7-1.fc25.noarch ??
Summary: bundler install - rb-inotify (~> 0.9, >= 0.9.7) not satisfied by installed ru...
Keywords:
Status: CLOSED CANTFIX
Alias: None
Product: Fedora
Classification: Fedora
Component: rubygem-bundler
Version: 25
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Vít Ondruch
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2017-06-23 15:15 UTC by Alan Jenkins
Modified: 2017-06-26 09:47 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2017-06-23 15:32:35 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Alan Jenkins 2017-06-23 15:15:51 UTC
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):

rubygem-bundler-1.12.5-1.fc25.noarch
rubygem-listen-3.1.5-1.fc25.noarch
rubygem-rb-inotify-0.9.7-1.fc25.noarch

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

GEM
  remote: https://rubygems.org/
  specs:
    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 15:32:35 UTC
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 15:59:57 UTC
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 09:47:20 UTC
(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.