Summary: | =dev-ruby/bundler-2.1.2: /var/tmp/portage/dev-ruby/bundler-2.1.2/temp/environment: line 1038: rdoc: command not found | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Thomas Sachau <tommy> |
Component: | Current packages | Assignee: | Gentoo Ruby Team <ruby> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | alexey+gentoo, begdory4, chris.burroughs, dschridde+gentoobugs, esigra, frares, gem, gentoo, gentoo, gentoo, gotyaoi, jeff.gazso, johannes.geiss, johannes.hirte, leio, michel, mkresch, mplichta, orodruinlair, pacho, randy, sandino, v10lator, vityokster, wgh, whissi |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
See Also: | https://bugs.gentoo.org/show_bug.cgi?id=849695 | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | build.log |
Description
Thomas Sachau
2019-12-29 11:50:56 UTC
I confirm the issue. I have 68 packages to be update and bundler is the 1st package in the list. Any idea to do the update and/or to avoid the rebuild of bundler with ruby27 flag ? Have the same issue, compiles fine with USE=-doc ruby27 must be selected after an upgrade (eselect ruby) Same issue here. (In reply to Johannes Hirte from comment #3) > ruby27 must be selected after an upgrade (eselect ruby) This is happening *during* an upgrade on a system that had ruby 2.5 only, with 2.6 and 2.7 masked. When unmasking 2.7 and doing a @world update, this package fails to build. Same here. Building with "USE=-doc" works fine. I had the same problem. I have only "ruby25" and "ruby26" installed. Using "eselect" to set "ruby26" and run emerge to install "bundler" again works. thanks for suggestion, same in 01/2021 dev-ruby/bundler-2.1.4::gentoo * bundler-2.1.4.gem BLAKE2B SHA512 size ;-) ... [ ok ] >>> Unpacking source... * Running unpack phase for all ... * Unpacking .gem file... ... [ ok ] * Uncompressing metadata ... [ ok ] * Unpacking data.tar.gz ... [ ok ] >>> Source unpacked in /var/tmp/portage/dev-ruby/bundler-2.1.4/work >>> Preparing source in /var/tmp/portage/dev-ruby/bundler-2.1.4/work ... * Running prepare phase for all ... * Running prepare phase for all ... * Running source copy phase for ruby26 ... >>> Source prepared. >>> Configuring source in /var/tmp/portage/dev-ruby/bundler-2.1.4/work ... >>> Source configured. >>> Compiling source in /var/tmp/portage/dev-ruby/bundler-2.1.4/work ... * Running compile phase for all ... /var/tmp/portage/dev-ruby/bundler-2.1.4/temp/environment: line 700: rdoc: command not found # eselect ruby list Available Ruby profiles: [1] ruby25 * [2] ruby26 (with Rubygems) cori / # eselect ruby set 2 Successfully switched to profile: ruby26 and it worked, thanks See also #744493, duplicating this one. Now as link to bug #744493. And how does this relate to bug #584906, bug #607450, bug #654308, bug #677104 and bug #728320? # eselect ruby set 2 as referring to [1] ruby25 [2] ruby26 (with Rubygems) * didn't work, also claims "rdoc" missing. Trying "USE=-doc" it builds successfully. As to some others above, switching (eselect) from ruby25 to ruby26 worked for me. switching from ruby25 to rub26 also solved this for me *** Bug 744493 has been marked as a duplicate of this bug. *** (In reply to Marc Elser from comment #14) > switching from ruby25 to rub26 also solved this for me #MeToo The issue is that dev-ruby/bundler is trying to build documentation with dev-ruby/rdoc, but rdoc's ruby version is higher than the version of /usr/bin/ruby during ruby upgrade. rdoc doesn't exist for old ruby anymore. bundler should use the version of ruby that has rdoc. I resolved by adding to /etc/portage/make.conf: RUBY_TARGETS="ruby26 ruby27" Based on what was listed in eselect ruby list (In reply to greymeister from comment #18) > I resolved by adding to /etc/portage/make.conf: > > RUBY_TARGETS="ruby26 ruby27" > > Based on what was listed in > > eselect ruby list This is not a correct fix; ruby26 is going away, and you adding RUBY_TARGETS to make.conf undoes that. You will run into problems when 2.6 is removed from the repo unless you fix your system correctly. You should normally not need to specify RUBY_TARGETS at all; if you do, you will need to monitor future changes to the gentoo repo and keep the entry up to date yourself. A correct workaround is mentioned elsewhere in this thread: use eselect to pick the newer ruby, complete the world update, and allow depclean to remove the old ruby. When this bug is fixed properly, you won't need to do that anymore. A proper fix would probably be something akin to the python-exec system (except for ruby). Fiddling with ruby version is only a one-off workaround. A permanent workaround is to remove doc USE flag from dev-ruby/bundler. But, we need a proper fix. I can confirm that dev-ruby/bundler looks for a wrong command, >>> Compiling source in /var/tmp/portage/dev-ruby/bundler-2.1.4/work ... * Running compile phase for ruby27 ... [ ok ] * Running compile phase for all ... /var/tmp/portage/dev-ruby/bundler-2.1.4/temp/environment: line 677: rdoc: command not found ~ % eix dev-ruby/rdoc [I] dev-ruby/rdoc Available versions: 6.3.2^t ~6.3.3^t ~6.3.3-r1^t ~6.4.0^t {doc test RUBY_TARGETS="ruby26 ruby27 ruby30 ruby31"} Installed versions: 6.3.2^t(15:05:24 06/06/22)(-doc -test RUBY_TARGETS="ruby27 -ruby26 -ruby30") Homepage: https://github.com/ruby/rdoc/ Description: An extended version of the RDoc library from Ruby 1.8 ~ % eix dev-ruby/bundler [I] dev-ruby/bundler Available versions: (2) 2.1.4^t ~2.2.18^t ~2.2.24^t ~2.2.25^t ~2.2.29^t ~2.2.31^t ~2.2.33^t ~2.3.8^t {(+)doc test RUBY_TARGETS="ruby26 ruby27 ruby30 ruby31"} Installed versions: 2.1.4(2)^t(00:40:17 19/10/21)(doc -test RUBY_TARGETS="ruby26 ruby27") Homepage: https://github.com/carlhuda/bundler Description: An easy way to vendor gem dependencies This command can’t exist (In reply to amano.kenji from comment #20) > Fiddling with ruby version is only a one-off workaround. > > A permanent workaround is to remove doc USE flag from dev-ruby/bundler. > > But, we need a proper fix. This also works, thanks. In my case, the 'rdoc' was a broken symlink in /usr/bin pointing to rdoc26, which did not exist (any longer?), only rdoc27 and rdoc-2 existed. Updated the link to point to rdoc27 and the emerge update worked. Note that my eselect ruby was ruby26. The rdoc27 and rdoc-2 are both ruby27 scripts, so it seems the rdoc26 got removed too early. After --depclean I notice that the ruby26 gets removed and eselect ruby updates to ruby27. So something in that update is removing the rdoc26 too early. The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=81a7a20fb3c4d6262f0ff6c9f5e47e3c1ac41ebb commit 81a7a20fb3c4d6262f0ff6c9f5e47e3c1ac41ebb Author: Hans de Graaff <graaff@gentoo.org> AuthorDate: 2022-07-18 13:28:56 +0000 Commit: Hans de Graaff <graaff@gentoo.org> CommitDate: 2022-07-18 13:32:22 +0000 dev-ruby/bundler: drop default for doc USE flag Starting with bundler 2.2.0 the internal help pages are now bundled and don't require the doc USE flag to create. This removes the need to make it a default USE flag. This should make upgrading with standard USE flags much easier. Closes: https://bugs.gentoo.org/704164 Closes: https://bugs.gentoo.org/849695 Signed-off-by: Hans de Graaff <graaff@gentoo.org> dev-ruby/bundler/bundler-2.2.33-r1.ebuild | 30 ++++++++++++++++++++++++++++++ dev-ruby/bundler/bundler-2.3.8-r1.ebuild | 30 ++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) |