mirror of
git://git.openembedded.org/meta-openembedded
synced 2026-01-01 13:58:06 +00:00
ruby: update to 1.9.3-194
I sent this to oe-core but was told that it's not the right place and was suggested to send here. Most of the 1.9.3 patches originate from ruby-1.9.3.194-10.1.fc17.src.rpm Signed-off-by: Jackie Huang <jackie.huang@windriver.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Eric Bénard <eric@eukrea.com>
This commit is contained in:
parent
14196a18a8
commit
d67152106e
|
|
@ -1,19 +1,26 @@
|
|||
DESCRIPTION = "Ruby is an interpreted scripting language \
|
||||
for quick and easy object-oriented programming."
|
||||
SUMMARY = "An interpreter of object-oriented scripting language"
|
||||
DESCRIPTION = "Ruby is an interpreted scripting language for quick \
|
||||
and easy object-oriented programming. It has many features to process \
|
||||
text files and to do system management tasks (as in Perl). \
|
||||
It is simple, straight-forward, and extensible. \
|
||||
"
|
||||
HOMEPAGE = "http://www.ruby-lang.org/"
|
||||
SECTION = "devel/ruby"
|
||||
LICENSE = "GPLv2 & LGPLv2+ & BSD"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=99f88e67b65504d289a0326c59f9c148 \
|
||||
file://LEGAL;md5=7d502ae3b621dc406b220dadddb72e16 \
|
||||
file://LGPL;md5=7fbc338309ac38fefcd64b04bb903e34 \
|
||||
LICENSE = "Ruby | BSD | GPLv2"
|
||||
LIC_FILES_CHKSUM = "\
|
||||
file://COPYING;md5=837b32593517ae48b9c3b5c87a5d288c \
|
||||
file://BSDL;md5=3949e007205deef714bd225e1ee4a8ea \
|
||||
file://GPL;md5=393a5ca445f6965873eca0259a17f833 \
|
||||
file://LEGAL;md5=e88686821918c0b6d2b1b8328116cec5 \
|
||||
"
|
||||
|
||||
DEPENDS = "ruby-native zlib openssl"
|
||||
DEPENDS = "ruby-native zlib openssl tcl"
|
||||
DEPENDS_virtclass-native = ""
|
||||
|
||||
INC_PR = "r0"
|
||||
INC_PR = "r1"
|
||||
|
||||
SHRT_VER = "${@bb.data.getVar('PV',d,1).split('.')[0]}.${@bb.data.getVar('PV',d,1).split('.')[1]}"
|
||||
SRC_URI = "ftp://ftp.ruby-lang.org/pub/ruby/${SHRT_VER}/ruby-${PV}.tar.gz \
|
||||
SRC_URI = "http://ftp.ruby-lang.org/pub/ruby/${SHRT_VER}/ruby-${PV}.tar.gz \
|
||||
file://extmk_run.patch \
|
||||
file://extmk.patch \
|
||||
"
|
||||
|
|
@ -22,8 +29,6 @@ S = "${WORKDIR}/ruby-${PV}"
|
|||
|
||||
inherit autotools
|
||||
|
||||
# fix building of socket extension
|
||||
EXTRA_OECONF = "--enable-wide-getaddrinfo"
|
||||
|
||||
# This snippet lets compiled extensions which rely on external libraries,
|
||||
# such as zlib, compile properly. If we don't do this, then when extmk.rb
|
||||
|
|
|
|||
|
|
@ -8,13 +8,11 @@ Without this the socket extension doesn't build correctly
|
|||
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
|
||||
---
|
||||
ext/socket/extconf.rb | 5 +++++
|
||||
1 files changed, 5 insertions(+), 0 deletions(-)
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/ext/socket/extconf.rb b/ext/socket/extconf.rb
|
||||
index ece6158..5fba46c 100644
|
||||
--- a/ext/socket/extconf.rb
|
||||
+++ b/ext/socket/extconf.rb
|
||||
@@ -222,6 +222,11 @@ main()
|
||||
@@ -356,6 +356,11 @@
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
EOF
|
||||
|
|
@ -23,9 +21,6 @@ index ece6158..5fba46c 100644
|
|||
+# everything is OK.
|
||||
+getaddr_info_ok = true
|
||||
+
|
||||
end
|
||||
if ipv6 and not getaddr_info_ok
|
||||
abort <<EOS
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
--- a/configure.in.orig 2011-10-18 08:56:21.587594685 +0200
|
||||
+++ b/configure.in 2011-10-18 08:56:59.751593321 +0200
|
||||
@@ -2935,6 +2935,8 @@
|
||||
configure_args=$ac_configure_args
|
||||
AC_SUBST(configure_args)dnl
|
||||
|
||||
+target_cpu=`echo $target_cpu | sed s/i.86/i386/`
|
||||
+
|
||||
if test "${universal_binary-no}" = yes ; then
|
||||
arch="universal-${target_os}"
|
||||
AC_CACHE_CHECK(whether __ARCHITECTURE__ is available, rb_cv_architecture_available,
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
--- ruby-1.9.3-p0/test/ruby/test_bignum.rb.orig 2011-11-10 09:52:59.101925465 +0100
|
||||
+++ ruby-1.9.3-p0/test/ruby/test_bignum.rb 2011-11-10 09:54:14.580798826 +0100
|
||||
@@ -378,7 +378,7 @@
|
||||
assert_equal(true, (2**32).even?)
|
||||
end
|
||||
|
||||
- def interrupt
|
||||
+ def assert_interrupt
|
||||
time = Time.now
|
||||
start_flag = false
|
||||
end_flag = false
|
||||
@@ -387,14 +387,16 @@
|
||||
yield
|
||||
end_flag = true
|
||||
end
|
||||
- sleep 1
|
||||
+ Thread.pass until start_flag
|
||||
thread.raise
|
||||
thread.join rescue nil
|
||||
- start_flag && !end_flag && Time.now - time < 10
|
||||
+ time = Time.now - time
|
||||
+ assert_equal([true, false], [start_flag, end_flag])
|
||||
+ assert_operator(time, :<, 10)
|
||||
end
|
||||
|
||||
def test_interrupt
|
||||
- assert(interrupt { (65536 ** 65536).to_s })
|
||||
+ assert_interrupt {(65536 ** 65536).to_s}
|
||||
end
|
||||
|
||||
def test_too_big_to_s
|
||||
|
|
@ -0,0 +1,86 @@
|
|||
From 279a693ce4ef3a887ce8d4fa59e0f2616a14d91a Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
||||
Date: Fri, 11 Nov 2011 13:14:45 +0100
|
||||
Subject: [PATCH] Allow to install RubyGems into custom location, outside of
|
||||
Ruby tree.
|
||||
|
||||
---
|
||||
configure.in | 8 ++++++++
|
||||
tool/mkconfig.rb | 1 +
|
||||
tool/rbinstall.rb | 9 +++++++++
|
||||
version.c | 4 ++++
|
||||
4 files changed, 22 insertions(+)
|
||||
|
||||
--- a/configure.in
|
||||
+++ b/configure.in
|
||||
@@ -2801,6 +2801,13 @@
|
||||
dir="${VENDOR_DIR}"
|
||||
done
|
||||
|
||||
+AC_ARG_WITH(rubygemsdir,
|
||||
+ AS_HELP_STRING([--with-rubygemsdir=DIR], [custom rubygems directory]),
|
||||
+ [rubygemsdir=$withval])
|
||||
+if test "$rubygemsdir" != ""; then
|
||||
+ AC_DEFINE_UNQUOTED(RUBYGEMS_DIR,"$rubygemsdir")
|
||||
+fi
|
||||
+
|
||||
if test "${LOAD_RELATIVE+set}"; then
|
||||
AC_DEFINE_UNQUOTED(LOAD_RELATIVE, $LOAD_RELATIVE)
|
||||
RUBY_EXEC_PREFIX=""
|
||||
@@ -2921,6 +2928,7 @@
|
||||
AC_SUBST(rubyhdrdir)dnl
|
||||
AC_SUBST(sitehdrdir)dnl
|
||||
AC_SUBST(vendorhdrdir)dnl
|
||||
+AC_SUBST(rubygemsdir)dnl
|
||||
|
||||
AC_ARG_WITH(opt-dir,
|
||||
AS_HELP_STRING([--with-opt-dir=DIR], [add optional headers and libraries DIR]))
|
||||
--- a/tool/mkconfig.rb
|
||||
+++ b/tool/mkconfig.rb
|
||||
@@ -78,6 +78,7 @@
|
||||
when /^RUBY_SO_NAME$/; next if $so_name
|
||||
when /^arch$/; if val.empty? then val = arch else arch = val end
|
||||
when /^sitearch/; val = '$(arch)' if val.empty?
|
||||
+ when /^rubygemsdir/; next if val.empty?
|
||||
end
|
||||
case val
|
||||
when /^\$\(ac_\w+\)$/; next
|
||||
--- a/tool/rbinstall.rb
|
||||
+++ b/tool/rbinstall.rb
|
||||
@@ -300,6 +300,7 @@
|
||||
sitearchlibdir = CONFIG["sitearchdir"]
|
||||
vendorlibdir = CONFIG["vendorlibdir"]
|
||||
vendorarchlibdir = CONFIG["vendorarchdir"]
|
||||
+rubygemsdir = CONFIG["rubygemsdir"]
|
||||
mandir = CONFIG["mandir"]
|
||||
capidir = CONFIG["docdir"]
|
||||
configure_args = Shellwords.shellwords(CONFIG["configure_args"])
|
||||
@@ -487,7 +488,15 @@
|
||||
install?(:local, :comm, :lib) do
|
||||
prepare "library scripts", rubylibdir
|
||||
noinst = %w[README* *.txt *.rdoc]
|
||||
+ noinst += %w[*ubygems.rb rubygems/ datadir.rb] if rubygemsdir
|
||||
install_recursive(File.join(srcdir, "lib"), rubylibdir, :no_install => noinst, :mode => $data_mode)
|
||||
+ if rubygemsdir
|
||||
+ noinst = %w[obsolete.rb]
|
||||
+ install_recursive(File.join(srcdir, "lib", "rubygems"), File.join(rubygemsdir, "rubygems"), :mode => $data_mode)
|
||||
+ install_recursive(File.join(srcdir, "lib", "rbconfig"), File.join(rubygemsdir, "rbconfig"), :no_install => noinst, :mode => $data_mode)
|
||||
+ install(File.join(srcdir, "lib", "ubygems.rb"), File.join(rubygemsdir, "ubygems.rb"), :mode => $data_mode)
|
||||
+ install(File.join(srcdir, "lib", "rubygems.rb"), File.join(rubygemsdir, "rubygems.rb"), :mode => $data_mode)
|
||||
+ end
|
||||
end
|
||||
|
||||
install?(:local, :arch, :lib) do
|
||||
--- a/version.c
|
||||
+++ b/version.c
|
||||
@@ -97,6 +97,10 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
+#ifdef RUBYGEMS_DIR
|
||||
+ RUBYGEMS_DIR "\0"
|
||||
+#endif
|
||||
+
|
||||
RUBY_LIB "\0"
|
||||
#ifdef RUBY_THIN_ARCHLIB
|
||||
RUBY_THIN_ARCHLIB "\0"
|
||||
|
|
@ -0,0 +1,149 @@
|
|||
From fa1a50ad10814f724b8713865dc222724cb955ab Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
||||
Date: Thu, 25 Aug 2011 14:33:51 +0200
|
||||
Subject: [PATCH] Allow to disable versioned paths.
|
||||
|
||||
---
|
||||
configure.in | 11 +++++++++++
|
||||
tool/mkconfig.rb | 9 ++++++---
|
||||
version.c | 10 ++++++++++
|
||||
3 files changed, 27 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/configure.in b/configure.in
|
||||
index e742e74..86cb68f 100644
|
||||
--- a/configure.in
|
||||
+++ b/configure.in
|
||||
@@ -2963,6 +2963,17 @@ else
|
||||
fi
|
||||
AC_SUBST(USE_RUBYGEMS)
|
||||
|
||||
+AC_ARG_ENABLE(versioned-paths,
|
||||
+ AS_HELP_STRING([--disable-versioned-paths], [disable paths with version number]),
|
||||
+ [enable_versioned_paths="$enableval"], [enable_versioned_paths=yes])
|
||||
+if test x"$enable_versioned_paths" = xno; then
|
||||
+ AC_DEFINE(DISABLE_VERSIONED_PATHS, 1)
|
||||
+ USE_VERSIONED_PATHS=NO
|
||||
+else
|
||||
+ USE_VERSIONED_PATHS=YES
|
||||
+fi
|
||||
+AC_SUBST(USE_VERSIONED_PATHS)
|
||||
+
|
||||
arch_hdrdir="${EXTOUT}/include/${arch}/ruby"
|
||||
AS_MKDIR_P("${arch_hdrdir}")
|
||||
config_h="${arch_hdrdir}/config.h"
|
||||
diff --git a/tool/mkconfig.rb b/tool/mkconfig.rb
|
||||
index a2221f0..47d8c8f 100755
|
||||
--- a/tool/mkconfig.rb
|
||||
+++ b/tool/mkconfig.rb
|
||||
@@ -42,6 +42,7 @@ v_others = []
|
||||
vars = {}
|
||||
continued_name = nil
|
||||
continued_line = nil
|
||||
+path_version = "/$(ruby_version)"
|
||||
File.foreach "config.status" do |line|
|
||||
next if /^#/ =~ line
|
||||
name = nil
|
||||
@@ -138,6 +139,8 @@ File.foreach "config.status" do |line|
|
||||
case name
|
||||
when "ruby_version"
|
||||
version = val[/\A"(.*)"\z/, 1]
|
||||
+ when /^USE_VERSIONED_PATHS$/
|
||||
+ path_version = nil if /NO/ =~ val
|
||||
end
|
||||
end
|
||||
# break if /^CEOF/
|
||||
@@ -203,15 +206,15 @@ end
|
||||
print(*v_fast)
|
||||
print(*v_others)
|
||||
print <<EOS
|
||||
- CONFIG["rubylibdir"] = "$(rubylibprefix)/$(ruby_version)"
|
||||
+ CONFIG["rubylibdir"] = "$(rubylibprefix)#{path_version}"
|
||||
CONFIG["archdir"] = "$(rubylibdir)/$(arch)"
|
||||
EOS
|
||||
print <<EOS unless v_disabled["sitedir"]
|
||||
- CONFIG["sitelibdir"] = "$(sitedir)/$(ruby_version)"
|
||||
+ CONFIG["sitelibdir"] = "$(sitedir)#{path_version}"
|
||||
CONFIG["sitearchdir"] = "$(sitelibdir)/$(sitearch)"
|
||||
EOS
|
||||
print <<EOS unless v_disabled["vendordir"]
|
||||
- CONFIG["vendorlibdir"] = "$(vendordir)/$(ruby_version)"
|
||||
+ CONFIG["vendorlibdir"] = "$(vendordir)#{path_version}"
|
||||
CONFIG["vendorarchdir"] = "$(vendorlibdir)/$(sitearch)"
|
||||
EOS
|
||||
print <<EOS
|
||||
diff --git a/version.c b/version.c
|
||||
index 59d4e5e..641dc33 100644
|
||||
--- a/version.c
|
||||
+++ b/version.c
|
||||
@@ -38,9 +38,15 @@
|
||||
#define RUBY_VENDOR_LIB RUBY_LIB_PREFIX"/vendor_ruby"
|
||||
#endif
|
||||
|
||||
+#ifdef DISABLE_VERSIONED_PATHS
|
||||
+#define RUBY_LIB RUBY_LIB_PREFIX
|
||||
+#define RUBY_SITE_LIB2 RUBY_SITE_LIB
|
||||
+#define RUBY_VENDOR_LIB2 RUBY_VENDOR_LIB
|
||||
+#else
|
||||
#define RUBY_LIB RUBY_LIB_PREFIX "/"RUBY_LIB_VERSION
|
||||
#define RUBY_SITE_LIB2 RUBY_SITE_LIB "/"RUBY_LIB_VERSION
|
||||
#define RUBY_VENDOR_LIB2 RUBY_VENDOR_LIB "/"RUBY_LIB_VERSION
|
||||
+#endif
|
||||
#define RUBY_ARCHLIB RUBY_LIB "/"RUBY_ARCH
|
||||
#define RUBY_SITE_ARCHLIB RUBY_SITE_LIB2 "/"RUBY_SITEARCH
|
||||
#define RUBY_VENDOR_ARCHLIB RUBY_VENDOR_LIB2 "/"RUBY_SITEARCH
|
||||
@@ -75,8 +81,10 @@ const char ruby_initial_load_paths[] =
|
||||
RUBY_SITE_THIN_ARCHLIB "\0"
|
||||
#endif
|
||||
RUBY_SITE_ARCHLIB "\0"
|
||||
+#ifndef DISABLE_VERSIONED_PATHS
|
||||
RUBY_SITE_LIB "\0"
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
#ifndef NO_RUBY_VENDOR_LIB
|
||||
RUBY_VENDOR_LIB2 "\0"
|
||||
@@ -84,8 +92,10 @@ const char ruby_initial_load_paths[] =
|
||||
RUBY_VENDOR_THIN_ARCHLIB "\0"
|
||||
#endif
|
||||
RUBY_VENDOR_ARCHLIB "\0"
|
||||
+#ifndef DISABLE_VERSIONED_PATHS
|
||||
RUBY_VENDOR_LIB "\0"
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
RUBY_LIB "\0"
|
||||
#ifdef RUBY_THIN_ARCHLIB
|
||||
--
|
||||
1.7.7.3
|
||||
diff --git a/lib/rdoc/ri/paths.rb b/lib/rdoc/ri/paths.rb
|
||||
index a3c65bf..0575730 100644
|
||||
--- a/lib/rdoc/ri/paths.rb
|
||||
+++ b/lib/rdoc/ri/paths.rb
|
||||
@@ -11,9 +11,9 @@ module RDoc::RI::Paths
|
||||
version = RbConfig::CONFIG['ruby_version']
|
||||
|
||||
base = if RbConfig::CONFIG.key? 'ridir' then
|
||||
- File.join RbConfig::CONFIG['ridir'], version
|
||||
+ File.join [RbConfig::CONFIG['ridir'], RbConfig::CONFIG['USE_VERSIONED_PATHS'] == 'YES' ? version : nil].compact
|
||||
else
|
||||
- File.join RbConfig::CONFIG['datadir'], 'ri', version
|
||||
+ File.join [RbConfig::CONFIG['datadir'], 'ri', RbConfig::CONFIG['USE_VERSIONED_PATHS'] == 'YES' ? version : nil].compact
|
||||
end
|
||||
|
||||
SYSDIR = File.join base, "system"
|
||||
diff --git a/tool/rbinstall.rb b/tool/rbinstall.rb
|
||||
index cec8c9f..fed14d2 100755
|
||||
--- a/tool/rbinstall.rb
|
||||
+++ b/tool/rbinstall.rb
|
||||
@@ -379,7 +379,7 @@ end
|
||||
|
||||
install?(:doc, :rdoc) do
|
||||
if $rdocdir
|
||||
- ridatadir = File.join(CONFIG['ridir'], CONFIG['ruby_version'], "system")
|
||||
+ ridatadir = File.join([CONFIG['ridir'], RbConfig::CONFIG['USE_VERSIONED_PATHS'] == 'YES' ? version : nil, "system"].compact)
|
||||
prepare "rdoc", ridatadir
|
||||
install_recursive($rdocdir, ridatadir, :mode => $data_mode)
|
||||
end
|
||||
--
|
||||
1.7.6
|
||||
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
diff -up ruby-1.9.3-p0/ext/tk/extconf.rb.orig ruby-1.9.3-p0/ext/tk/extconf.rb
|
||||
--- ruby-1.9.3-p0/ext/tk/extconf.rb.orig 2011-06-29 16:11:19.000000000 +0200
|
||||
+++ ruby-1.9.3-p0/ext/tk/extconf.rb 2011-10-18 16:15:59.406299659 +0200
|
||||
@@ -114,7 +114,7 @@ def is_macosx?
|
||||
end
|
||||
|
||||
def maybe_64bit?
|
||||
- /64|universal/ =~ RUBY_PLATFORM
|
||||
+ /64|universal|s390x/ =~ RUBY_PLATFORM
|
||||
end
|
||||
|
||||
def check_tcltk_version(version)
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
---
|
||||
Makefile.in | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/Makefile.in
|
||||
+++ b/Makefile.in
|
||||
@@ -210,7 +210,8 @@
|
||||
@$(RM) fake.rb fake-rbconfig.rb
|
||||
$(INSTALL_DATA) $(arch_hdrdir)/ruby/config.h $(XRUBY_RUBYHDRDIR)/$(arch)/ruby
|
||||
$(INSTALL_DATA) $(top_srcdir)/include/ruby/win32.h $(XRUBY_RUBYHDRDIR)/ruby
|
||||
- $(INSTALL_DATA) $(LIBRUBY) $(LIBRUBY_A) $(XRUBY_RUBYLIBDIR)/$(arch)
|
||||
+ $(INSTALL_DATA) $(LIBRUBY) $(XRUBY_RUBYLIBDIR)/$(arch)
|
||||
+ $(INSTALL_DATA) $(LIBRUBY_A) $(XRUBY_RUBYLIBDIR)/$(arch)
|
||||
$(INSTALL_PROGRAM) $(LIBRUBY_SO) $(XRUBY_RUBYLIBDIR)/$(arch)
|
||||
|
||||
Makefile: $(srcdir)/Makefile.in $(srcdir)/enc/Makefile.in
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
--- ruby-1.9.3-p0/lib/mkmf.rb.debug 2011-08-11 15:07:37.000000000 +0900
|
||||
+++ ruby-1.9.3-p0/lib/mkmf.rb 2012-01-29 21:34:17.000000000 +0900
|
||||
@@ -1638,7 +1638,7 @@
|
||||
SHELL = /bin/sh
|
||||
|
||||
# V=0 quiet, V=1 verbose. other values don't work.
|
||||
-V = 0
|
||||
+V = 1
|
||||
Q1 = $(V:1=)
|
||||
Q = $(Q1:0=@)
|
||||
n=$(NULLCMD)
|
||||
|
|
@ -0,0 +1,76 @@
|
|||
--- ruby-1.9.3-p0/lib/rubygems/uninstaller.rb.orig 2011-10-31 10:22:36.321579483 +0100
|
||||
+++ ruby-1.9.3-p0/lib/rubygems/uninstaller.rb 2011-10-31 10:34:25.563626119 +0100
|
||||
@@ -51,15 +51,14 @@
|
||||
@bin_dir = options[:bin_dir]
|
||||
@format_executable = options[:format_executable]
|
||||
|
||||
+ if options[:force]
|
||||
+ @force_all = true
|
||||
+ @force_ignore = true
|
||||
+ end
|
||||
+
|
||||
# only add user directory if install_dir is not set
|
||||
@user_install = false
|
||||
@user_install = options[:user_install] unless options[:install_dir]
|
||||
-
|
||||
- if @user_install then
|
||||
- Gem.use_paths Gem.user_dir, @gem_home
|
||||
- else
|
||||
- Gem.use_paths @gem_home
|
||||
- end
|
||||
end
|
||||
|
||||
##
|
||||
@@ -69,10 +68,24 @@
|
||||
def uninstall
|
||||
list = Gem::Specification.find_all_by_name(@gem, @version)
|
||||
|
||||
+ list, other_repo_specs = list.partition do |spec|
|
||||
+ @gem_home == spec.base_dir or
|
||||
+ (@user_install and spec.base_dir == Gem.user_dir)
|
||||
+ end
|
||||
+
|
||||
if list.empty? then
|
||||
- raise Gem::InstallError, "gem #{@gem.inspect} is not installed"
|
||||
+ raise Gem::InstallError, "gem #{@gem.inspect} is not installed" if
|
||||
+ other_repo_specs.empty?
|
||||
+
|
||||
+ other_repos = other_repo_specs.map { |spec| spec.base_dir }.uniq
|
||||
+
|
||||
+ message = ["#{@gem} is not installed in GEM_HOME, try:"]
|
||||
+ message.concat other_repos.map { |repo|
|
||||
+ "\tgem uninstall -i #{repo} #{@gem}"
|
||||
+ }
|
||||
|
||||
- elsif list.size > 1 and @force_all then
|
||||
+ raise Gem::InstallError, message.join("\n")
|
||||
+ elsif @force_all then
|
||||
remove_all list
|
||||
|
||||
elsif list.size > 1 then
|
||||
@@ -250,12 +263,10 @@
|
||||
msg << "\t#{spec.full_name}"
|
||||
|
||||
spec.dependent_gems.each do |dep_spec, dep, satlist|
|
||||
- msg <<
|
||||
- ("#{dep_spec.name}-#{dep_spec.version} depends on " +
|
||||
- "[#{dep.name} (#{dep.requirement})]")
|
||||
+ msg << "#{dep_spec.name}-#{dep_spec.version} depends on #{dep}"
|
||||
end
|
||||
|
||||
- msg << 'If you remove this gems, one or more dependencies will not be met.'
|
||||
+ msg << 'If you remove this gem, one or more dependencies will not be met.'
|
||||
msg << 'Continue with Uninstall?'
|
||||
return ask_yes_no(msg.join("\n"), true)
|
||||
end
|
||||
|
||||
--- ruby-1.9.3-p0/test/rubygems/test_gem_uninstaller.rb.orig 2011-11-03 08:58:31.411272176 +0100
|
||||
+++ ruby-1.9.3-p0/test/rubygems/test_gem_uninstaller.rb 2011-11-03 08:58:43.010272351 +0100
|
||||
@@ -225,7 +225,7 @@
|
||||
|
||||
uninstaller = Gem::Uninstaller.new('a')
|
||||
|
||||
- use_ui Gem::MockGemUi.new("2\n") do
|
||||
+ use_ui Gem::MockGemUi.new("2\ny\n") do
|
||||
uninstaller.uninstall
|
||||
end
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
diff --git a/test/webrick/test_cgi.rb b/test/webrick/test_cgi.rb
|
||||
index 1185316..0ef1b37 100644
|
||||
--- a/test/webrick/test_cgi.rb
|
||||
+++ b/test/webrick/test_cgi.rb
|
||||
@@ -14,6 +14,7 @@ class TestWEBrickCGI < Test::Unit::TestCase
|
||||
def req.meta_vars
|
||||
meta = super
|
||||
meta["RUBYLIB"] = $:.join(File::PATH_SEPARATOR)
|
||||
+ meta[RbConfig::CONFIG['LIBPATHENV']] = ENV[RbConfig::CONFIG['LIBPATHENV']]
|
||||
return meta
|
||||
end
|
||||
},
|
||||
diff --git a/test/webrick/test_filehandler.rb b/test/webrick/test_filehandler.rb
|
||||
index bcdb3df..f78ba5c 100644
|
||||
--- a/test/webrick/test_filehandler.rb
|
||||
+++ b/test/webrick/test_filehandler.rb
|
||||
@@ -252,6 +252,7 @@ class WEBrick::TestFileHandler < Test::Unit::TestCase
|
||||
def req.meta_vars
|
||||
meta = super
|
||||
meta["RUBYLIB"] = $:.join(File::PATH_SEPARATOR)
|
||||
+ meta[RbConfig::CONFIG['LIBPATHENV']] = ENV[RbConfig::CONFIG['LIBPATHENV']]
|
||||
return meta
|
||||
end
|
||||
},
|
||||
|
|
@ -0,0 +1,296 @@
|
|||
From 5a37a3489491a33f2e7011043fbbcd9a765e1777 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
||||
Date: Thu, 3 Nov 2011 16:43:05 +0100
|
||||
Subject: [PATCH 1/6] Add dedicate extensions folder into $LOAD_PATH.
|
||||
|
||||
---
|
||||
lib/rubygems/specification.rb | 37 ++++++++++++++++++++++++++++++-------
|
||||
1 files changed, 30 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/lib/rubygems/specification.rb b/lib/rubygems/specification.rb
|
||||
index 97db19e..263e7d3 100644
|
||||
--- a/lib/rubygems/specification.rb
|
||||
+++ b/lib/rubygems/specification.rb
|
||||
@@ -843,6 +843,12 @@ class Gem::Specification
|
||||
File.join full_gem_path, path
|
||||
end
|
||||
|
||||
+ unless extensions.empty?
|
||||
+ paths += require_paths.map do |path|
|
||||
+ File.join ext_dir, path
|
||||
+ end
|
||||
+ end
|
||||
+
|
||||
# gem directories must come after -I and ENV['RUBYLIB']
|
||||
insert_index = Gem.load_path_insert_index
|
||||
|
||||
@@ -954,16 +960,16 @@ class Gem::Specification
|
||||
|
||||
def contains_requirable_file? file
|
||||
root = full_gem_path
|
||||
+ ext = ext_dir
|
||||
+
|
||||
+ require_paths.any? do |lib|
|
||||
+ base = ["#{root}/#{lib}/#{file}"]
|
||||
+ base << "#{ext}/#{lib}/#{file}" unless extensions.empty?
|
||||
|
||||
- require_paths.each do |lib|
|
||||
- base = "#{root}/#{lib}/#{file}"
|
||||
- Gem.suffixes.each do |suf|
|
||||
- path = "#{base}#{suf}"
|
||||
- return true if File.file? path
|
||||
+ base.any? do |path|
|
||||
+ Gem.suffixes.any? { |suf| File.file? "#{path}#{suf}" }
|
||||
end
|
||||
end
|
||||
-
|
||||
- return false
|
||||
end
|
||||
|
||||
##
|
||||
@@ -1273,6 +1279,23 @@ class Gem::Specification
|
||||
end
|
||||
|
||||
##
|
||||
+ # Returns the full path to this spec's ext directory.
|
||||
+ # eg: /usr/local/lib/ruby/1.8/exts/mygem-1.0
|
||||
+
|
||||
+ def ext_dir
|
||||
+ @gem_dir ||= File.expand_path File.join(exts_dir, full_name)
|
||||
+ end
|
||||
+
|
||||
+ ##
|
||||
+ # Returns the full path to the exts directory containing this spec's
|
||||
+ # gem directory. eg: /usr/local/lib/ruby/1.8/exts
|
||||
+
|
||||
+ def exts_dir
|
||||
+ # TODO: this logic seems terribly broken, but tests fail if just base_dir
|
||||
+ @exts_dir ||= File.join(loaded_from && base_dir || Gem.dir, "exts")
|
||||
+ end
|
||||
+
|
||||
+ ##
|
||||
# Deprecated and ignored, defaults to true.
|
||||
#
|
||||
# Formerly used to indicate this gem was RDoc-capable.
|
||||
--
|
||||
1.7.7.3
|
||||
|
||||
|
||||
From 671e4285bf9db948bc5f054d7d3d931cdd7a17f8 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
||||
Date: Wed, 16 Nov 2011 13:26:48 +0100
|
||||
Subject: [PATCH 2/6] Use spec's ext dir for extension installation.
|
||||
|
||||
---
|
||||
lib/rubygems/installer.rb | 2 +-
|
||||
lib/rubygems/specification.rb | 7 +++----
|
||||
2 files changed, 4 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb
|
||||
index 74d803d..0063c7f 100644
|
||||
--- a/lib/rubygems/installer.rb
|
||||
+++ b/lib/rubygems/installer.rb
|
||||
@@ -499,7 +499,7 @@ TEXT
|
||||
def build_extensions
|
||||
return if spec.extensions.empty?
|
||||
say "Building native extensions. This could take a while..."
|
||||
- dest_path = File.join gem_dir, spec.require_paths.first
|
||||
+ dest_path = spec.ext_dir
|
||||
ran_rake = false # only run rake once
|
||||
|
||||
spec.extensions.each do |extension|
|
||||
diff --git a/lib/rubygems/specification.rb b/lib/rubygems/specification.rb
|
||||
index 263e7d3..d31b93b 100644
|
||||
--- a/lib/rubygems/specification.rb
|
||||
+++ b/lib/rubygems/specification.rb
|
||||
@@ -1283,16 +1283,15 @@ class Gem::Specification
|
||||
# eg: /usr/local/lib/ruby/1.8/exts/mygem-1.0
|
||||
|
||||
def ext_dir
|
||||
- @gem_dir ||= File.expand_path File.join(exts_dir, full_name)
|
||||
+ @ext_dir ||= File.join exts_dir, full_name, require_paths.first
|
||||
end
|
||||
|
||||
##
|
||||
# Returns the full path to the exts directory containing this spec's
|
||||
- # gem directory. eg: /usr/local/lib/ruby/1.8/exts
|
||||
+ # gem directory. eg: /usr/local/lib/ruby/1.8/gems
|
||||
|
||||
def exts_dir
|
||||
- # TODO: this logic seems terribly broken, but tests fail if just base_dir
|
||||
- @exts_dir ||= File.join(loaded_from && base_dir || Gem.dir, "exts")
|
||||
+ @exts_dir ||= gems_dir
|
||||
end
|
||||
|
||||
##
|
||||
--
|
||||
1.7.7.3
|
||||
|
||||
|
||||
From 11b4a0cbadd8b1d3320f838881aa60feb6f848e7 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
||||
Date: Wed, 16 Nov 2011 14:52:16 +0100
|
||||
Subject: [PATCH 3/6] Simplify the extending of $LOAD_PATH for binary gems.
|
||||
|
||||
---
|
||||
lib/rubygems/specification.rb | 11 +++++------
|
||||
1 files changed, 5 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/lib/rubygems/specification.rb b/lib/rubygems/specification.rb
|
||||
index d31b93b..e65ea2d 100644
|
||||
--- a/lib/rubygems/specification.rb
|
||||
+++ b/lib/rubygems/specification.rb
|
||||
@@ -843,11 +843,7 @@ class Gem::Specification
|
||||
File.join full_gem_path, path
|
||||
end
|
||||
|
||||
- unless extensions.empty?
|
||||
- paths += require_paths.map do |path|
|
||||
- File.join ext_dir, path
|
||||
- end
|
||||
- end
|
||||
+ paths << ext_dir unless extensions.empty? || paths.include?(ext_dir)
|
||||
|
||||
# gem directories must come after -I and ENV['RUBYLIB']
|
||||
insert_index = Gem.load_path_insert_index
|
||||
@@ -1291,7 +1287,10 @@ class Gem::Specification
|
||||
# gem directory. eg: /usr/local/lib/ruby/1.8/gems
|
||||
|
||||
def exts_dir
|
||||
- @exts_dir ||= gems_dir
|
||||
+ @exts_dir ||= begin
|
||||
+ dirs = Gem.default_dirs.detect {|location, paths| paths[:gem_dir] == base_dir}
|
||||
+ dirs ? File.join(dirs.last[:ext_dir], 'exts') : gems_dir
|
||||
+ end
|
||||
end
|
||||
|
||||
##
|
||||
--
|
||||
1.7.7.3
|
||||
|
||||
|
||||
From 5d46cd2b1ac9517a9cbcfa430261e62bb3a376b8 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
||||
Date: Fri, 9 Dec 2011 16:31:04 +0100
|
||||
Subject: [PATCH 4/6] Fix the binary extension search path construction.
|
||||
|
||||
---
|
||||
lib/rubygems/installer.rb | 2 +-
|
||||
lib/rubygems/specification.rb | 4 ++--
|
||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb
|
||||
index 0063c7f..83b8fd5 100644
|
||||
--- a/lib/rubygems/installer.rb
|
||||
+++ b/lib/rubygems/installer.rb
|
||||
@@ -499,7 +499,7 @@ TEXT
|
||||
def build_extensions
|
||||
return if spec.extensions.empty?
|
||||
say "Building native extensions. This could take a while..."
|
||||
- dest_path = spec.ext_dir
|
||||
+ dest_path = File.join spec.ext_dir, spec.require_paths.first
|
||||
ran_rake = false # only run rake once
|
||||
|
||||
spec.extensions.each do |extension|
|
||||
diff --git a/lib/rubygems/specification.rb b/lib/rubygems/specification.rb
|
||||
index e65ea2d..8be2ade 100644
|
||||
--- a/lib/rubygems/specification.rb
|
||||
+++ b/lib/rubygems/specification.rb
|
||||
@@ -843,7 +843,7 @@ class Gem::Specification
|
||||
File.join full_gem_path, path
|
||||
end
|
||||
|
||||
- paths << ext_dir unless extensions.empty? || paths.include?(ext_dir)
|
||||
+ paths << File.join(ext_dir, require_paths.first) unless extensions.empty? || (ext_dir == full_gem_path)
|
||||
|
||||
# gem directories must come after -I and ENV['RUBYLIB']
|
||||
insert_index = Gem.load_path_insert_index
|
||||
@@ -1279,7 +1279,7 @@ class Gem::Specification
|
||||
# eg: /usr/local/lib/ruby/1.8/exts/mygem-1.0
|
||||
|
||||
def ext_dir
|
||||
- @ext_dir ||= File.join exts_dir, full_name, require_paths.first
|
||||
+ @ext_dir ||= File.join exts_dir, full_name
|
||||
end
|
||||
|
||||
##
|
||||
--
|
||||
1.7.7.3
|
||||
|
||||
|
||||
From 6229583633802b45e5a3e5689ab9077347cd9ef7 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
||||
Date: Tue, 13 Dec 2011 12:14:54 +0100
|
||||
Subject: [PATCH 5/6] Remove binary extensions during uninstall.
|
||||
|
||||
---
|
||||
lib/rubygems/uninstaller.rb | 1 +
|
||||
1 files changed, 1 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/lib/rubygems/uninstaller.rb b/lib/rubygems/uninstaller.rb
|
||||
index cc32ea4..94d78e0 100644
|
||||
--- a/lib/rubygems/uninstaller.rb
|
||||
+++ b/lib/rubygems/uninstaller.rb
|
||||
@@ -213,6 +213,7 @@ class Gem::Uninstaller
|
||||
File.writable?(spec.base_dir)
|
||||
|
||||
FileUtils.rm_rf spec.full_gem_path
|
||||
+ FileUtils.rm_rf spec.ext_dir
|
||||
|
||||
# TODO: should this be moved to spec?... I vote eww (also exists in docmgr)
|
||||
old_platform_name = [spec.name,
|
||||
--
|
||||
1.7.7.3
|
||||
|
||||
|
||||
From bc40e1b9f60a9a04456e3504ffe6ee600b6da269 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
||||
Date: Tue, 13 Dec 2011 14:27:14 +0100
|
||||
Subject: [PATCH 6/6] Avoid dependency on customized operating_system.rb.
|
||||
|
||||
---
|
||||
lib/rubygems/defaults.rb | 11 +++++++++++
|
||||
lib/rubygems/specification.rb | 5 +----
|
||||
2 files changed, 12 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/lib/rubygems/defaults.rb b/lib/rubygems/defaults.rb
|
||||
index 20b4198..6d8711f 100644
|
||||
--- a/lib/rubygems/defaults.rb
|
||||
+++ b/lib/rubygems/defaults.rb
|
||||
@@ -87,6 +87,17 @@ module Gem
|
||||
end
|
||||
|
||||
##
|
||||
+ # Returns binary extensions dir for specified RubyGems base dir or nil
|
||||
+ # if such directory cannot be determined.
|
||||
+ #
|
||||
+ # By default, the binary extensions are located side by side with their
|
||||
+ # Ruby counterparts, therefore nil is returned
|
||||
+
|
||||
+ def self.default_ext_dir_for base_dir
|
||||
+ nil
|
||||
+ end
|
||||
+
|
||||
+ ##
|
||||
# The default system-wide source info cache directory
|
||||
|
||||
def self.default_system_source_cache_dir
|
||||
diff --git a/lib/rubygems/specification.rb b/lib/rubygems/specification.rb
|
||||
index 8be2ade..f54210a 100644
|
||||
--- a/lib/rubygems/specification.rb
|
||||
+++ b/lib/rubygems/specification.rb
|
||||
@@ -1287,10 +1287,7 @@ class Gem::Specification
|
||||
# gem directory. eg: /usr/local/lib/ruby/1.8/gems
|
||||
|
||||
def exts_dir
|
||||
- @exts_dir ||= begin
|
||||
- dirs = Gem.default_dirs.detect {|location, paths| paths[:gem_dir] == base_dir}
|
||||
- dirs ? File.join(dirs.last[:ext_dir], 'exts') : gems_dir
|
||||
- end
|
||||
+ @exts_dir ||= Gem.default_ext_dir_for(base_dir) || gems_dir
|
||||
end
|
||||
|
||||
##
|
||||
--
|
||||
1.7.7.3
|
||||
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
require ruby.inc
|
||||
PR = "${INC_PR}.0"
|
||||
|
||||
SRC_URI += "file://0001-socket-extconf-hardcode-wide-getaddr-info-test-outco.patch"
|
||||
|
||||
SRC_URI[md5sum] = "f446550dfde0d8162a6ed8d5a38b3ac2"
|
||||
SRC_URI[sha256sum] = "5883df5204de70762602ce885b18c8bf6c856d33298c35df9151031b2ce044a1"
|
||||
|
||||
FILES_${PN}-dbg += "${libdir}/ruby/1.8/*/.debug \
|
||||
${libdir}/ruby/1.8/*/*/.debug"
|
||||
BBCLASSEXTEND = "native"
|
||||
|
||||
50
meta-ruby/recipes-devtools/ruby/ruby_1.9.3-p194.bb
Normal file
50
meta-ruby/recipes-devtools/ruby/ruby_1.9.3-p194.bb
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
require ruby.inc
|
||||
PR = "${INC_PR}.0"
|
||||
|
||||
DEPENDS += "libyaml"
|
||||
|
||||
SRC_URI += "\
|
||||
file://0001-socket-extconf-hardcode-wide-getaddr-info-test-outco.patch \
|
||||
file://ruby-1.9.3-always-use-i386.patch \
|
||||
file://ruby-1.9.3-disable-versioned-paths.patch \
|
||||
file://ruby-1.9.3-fix-s390x-build.patch \
|
||||
file://ruby-1.9.3-rubygems-1.8.11-uninstaller.patch \
|
||||
file://ruby-1.9.3-webrick-test-fix.patch \
|
||||
file://ruby-1.9.3-bignum-test-fix.patch \
|
||||
file://ruby-1.9.3-custom-rubygems-location.patch \
|
||||
file://rubygems-1.8.11-binary-extensions.patch \
|
||||
file://ruby-1.9.3-mkmf-verbose.patch \
|
||||
file://ruby-1.9.3-install-cross.patch \
|
||||
"
|
||||
|
||||
SRC_URI[md5sum] = "bc0c715c69da4d1d8bd57069c19f6c0e"
|
||||
SRC_URI[sha256sum] = "46e2fa80be7efed51bd9cdc529d1fe22ebc7567ee0f91db4ab855438cf4bd8bb"
|
||||
|
||||
EXTRA_OECONF = "\
|
||||
--enable-wide-getaddrinfo \
|
||||
--with-rubygemsdir=${datadir}/rubygems \
|
||||
--disable-versioned-paths \
|
||||
--disable-rpath \
|
||||
--enable-shared \
|
||||
"
|
||||
|
||||
EXTRA_OEMAKE = " \
|
||||
LIBRUBYARG='-lruby-static' \
|
||||
"
|
||||
|
||||
do_install() {
|
||||
if [ ${PN} = "ruby" ]; then
|
||||
oe_runmake 'DESTDIR=${D}' install install-cross
|
||||
else
|
||||
oe_runmake 'DESTDIR=${D}' install
|
||||
fi
|
||||
}
|
||||
|
||||
FILES_${PN} += "${datadir}/rubygems \
|
||||
${datadir}/ri"
|
||||
|
||||
FILES_${PN}-dbg += "${libdir}/ruby/*/.debug \
|
||||
${libdir}/ruby/*/*/.debug \
|
||||
${libdir}/ruby/*/*/*/.debug"
|
||||
|
||||
BBCLASSEXTEND = "native"
|
||||
Loading…
Reference in New Issue
Block a user