]>
Commit | Line | Data |
---|---|---|
c0484a8d ER |
1 | From b5e9dc3683cb085aa57e7b12c35a4f21b2cc1482 Mon Sep 17 00:00:00 2001 |
2 | From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com> | |
3 | Date: Fri, 11 Nov 2011 13:14:45 +0100 | |
4 | Subject: [PATCH] Allow to install RubyGems into custom location, outside of | |
5 | Ruby tree. | |
6 | ||
7 | --- | |
8 | configure.in | 8 ++++++++ | |
9 | tool/rbinstall.rb | 9 +++++++++ | |
10 | version.c | 4 ++++ | |
11 | 3 files changed, 21 insertions(+) | |
12 | ||
13 | diff --git a/configure.in b/configure.in | |
14 | index 1627d12..e064b2b 100644 | |
15 | --- a/configure.in | |
16 | +++ b/configure.in | |
17 | @@ -3349,6 +3349,13 @@ AC_ARG_WITH(vendorarchdir, | |
18 | [vendorarchdir=$withval], | |
19 | [vendorarchdir=${multiarch+'${rubysitearchprefix}/vendor_ruby/${ruby_version}'}${multiarch-'${vendorlibdir}/${sitearch}'}]) | |
20 | ||
21 | +AC_ARG_WITH(rubygemsdir, | |
22 | + AS_HELP_STRING([--with-rubygemsdir=DIR], [custom rubygems directory]), | |
23 | + [rubygemsdir=$withval]) | |
24 | +if test "$rubygemsdir" != ""; then | |
25 | + AC_DEFINE_UNQUOTED(RUBYGEMS_DIR,"$rubygemsdir" !<verconf>!) | |
26 | +fi | |
27 | + | |
28 | unexpand_shvar rubylibprefix exec_prefix libdir RUBY_BASE_NAME | |
29 | unexpand_shvar rubyarchprefix exec_prefix libdir arch RUBY_BASE_NAME archlibdir rubylibprefix | |
30 | unexpand_shvar rubysitearchprefix exec_prefix libdir sitearch arch RUBY_BASE_NAME archlibdir sitearchlibdir rubylibprefix | |
31 | @@ -3415,6 +3422,7 @@ AC_SUBST(sitearchdir)dnl | |
32 | AC_SUBST(vendordir)dnl | |
33 | AC_SUBST(vendorlibdir)dnl | |
34 | AC_SUBST(vendorarchdir)dnl | |
35 | +AC_SUBST(rubygemsdir)dnl | |
36 | ||
37 | configure_args=$ac_configure_args | |
38 | AC_SUBST(configure_args)dnl | |
39 | diff --git a/tool/rbinstall.rb b/tool/rbinstall.rb | |
40 | index 92e54c6..c72dfb6 100755 | |
41 | --- a/tool/rbinstall.rb | |
42 | +++ b/tool/rbinstall.rb | |
43 | @@ -313,6 +313,7 @@ sitelibdir = CONFIG["sitelibdir"] | |
44 | sitearchlibdir = CONFIG["sitearchdir"] | |
45 | vendorlibdir = CONFIG["vendorlibdir"] | |
46 | vendorarchlibdir = CONFIG["vendorarchdir"] | |
47 | +rubygemsdir = CONFIG["rubygemsdir"] | |
48 | mandir = CONFIG["mandir", true] | |
49 | docdir = CONFIG["docdir", true] | |
50 | configure_args = Shellwords.shellwords(CONFIG["configure_args"]) | |
51 | @@ -500,7 +501,15 @@ end | |
52 | install?(:local, :comm, :lib) do | |
53 | prepare "library scripts", rubylibdir | |
54 | noinst = %w[README* *.txt *.rdoc *.gemspec] | |
55 | + noinst += %w[*ubygems.rb rubygems/ datadir.rb] if rubygemsdir | |
56 | install_recursive(File.join(srcdir, "lib"), rubylibdir, :no_install => noinst, :mode => $data_mode) | |
57 | + if rubygemsdir | |
58 | + noinst = %w[obsolete.rb] | |
59 | + install_recursive(File.join(srcdir, "lib", "rubygems"), File.join(rubygemsdir, "rubygems"), :mode => $data_mode) | |
60 | + install_recursive(File.join(srcdir, "lib", "rbconfig"), File.join(rubygemsdir, "rbconfig"), :no_install => noinst, :mode => $data_mode) | |
61 | + install(File.join(srcdir, "lib", "ubygems.rb"), File.join(rubygemsdir, "ubygems.rb"), :mode => $data_mode) | |
62 | + install(File.join(srcdir, "lib", "rubygems.rb"), File.join(rubygemsdir, "rubygems.rb"), :mode => $data_mode) | |
63 | + end | |
64 | end | |
65 | ||
66 | install?(:local, :arch, :lib) do | |
67 | diff --git a/version.c b/version.c | |
68 | index 54c4513..d76100b 100644 | |
69 | --- a/version.c | |
70 | +++ b/version.c | |
71 | @@ -99,6 +99,10 @@ const char ruby_initial_load_paths[] = | |
72 | #endif | |
73 | #endif | |
74 | ||
75 | +#ifdef RUBYGEMS_DIR | |
76 | + RUBYGEMS_DIR "\0" | |
77 | +#endif | |
78 | + | |
79 | RUBY_LIB "\0" | |
80 | #ifdef RUBY_THINARCH | |
81 | RUBY_ARCH_LIB_FOR(RUBY_THINARCH) "\0" | |
82 | -- | |
83 | 1.8.1.2 | |
84 |