From: nobu@...
Date: 2014-10-13T11:23:13+00:00
Subject: [ruby-core:65666] [ruby-trunk - Bug #10372] [Open] Problem with relative paths in update-gems makefile rule (common.mk)

Issue #10372 has been updated by Nobuyoshi Nakada.

Description updated
Status changed from Closed to Open

Which version of ruby are you using to download the files?
Since 1.9, `-I` directories are expanded to absolute paths.

----------------------------------------
Bug #10372: Problem with relative paths in update-gems makefile rule (common.mk)
https://bugs.ruby-lang.org/issues/10372#change-49398

* Author: Martin D��rst
* Status: Open
* Priority: Normal
* Assignee: Nobuyoshi Nakada
* Category: build
* Target version: current: 2.2.0
* ruby -v: ruby 2.2.0dev (2014-09-27 trunk 47722) [x86_64-cygwin]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------
When I do
> make update-gems
I get the following error:

~~~
-e:1:in `require': cannot load such file -- downloader (LoadError)
uncommon.mk:1084: recipe for target 'update-gems' failed
make: *** [update-gems] Error 1
~~~

The reason for this seems to be a problem with relative paths.
The rule for update-gems in common.mk is as follows:

~~~makefile
update-gems: PHONY
	$(ECHO) Downloading bundled gem files...
	$(Q) $(RUNRUBY) -I$(srcdir)/tool -rdownloader -answ \
	    -C "$(srcdir)/gems" \
	    -e 'gem, ver = *$$F' \
	    -e 'gem = "#{gem}-#{ver}.gem"' \
	    -e 'Downloader::RubyGems.download(gem)' \
	    bundled_gems
~~~

`$(srcdir)` is just '.', and so './tool' gets added to the load path, but then -C "$(srcdir)/gems" changes to the gems subdirectory, from which './tool' doesn't point to the tool directory anymore.



-- 
https://bugs.ruby-lang.org/