[arch-commits] Commit in ruby/trunk (2 files)

Thomas Dziedzic td123 at nymeria.archlinux.org
Fri Jan 10 19:35:22 UTC 2014


    Date: Friday, January 10, 2014 @ 20:35:22
  Author: td123
Revision: 203425

upgpkg: ruby 2.1.0-2

remove ruby/tk support because it is broken, add patch to fix installing gem from file without dependencies

Added:
  ruby/trunk/0001-Fix-installing-gem-from-file-without-dependencies.patch
Modified:
  ruby/trunk/PKGBUILD

--------------------------------------------------------------+
 0001-Fix-installing-gem-from-file-without-dependencies.patch |   84 ++++++++++
 PKGBUILD                                                     |   19 +-
 2 files changed, 97 insertions(+), 6 deletions(-)

Added: 0001-Fix-installing-gem-from-file-without-dependencies.patch
===================================================================
--- 0001-Fix-installing-gem-from-file-without-dependencies.patch	                        (rev 0)
+++ 0001-Fix-installing-gem-from-file-without-dependencies.patch	2014-01-10 19:35:22 UTC (rev 203425)
@@ -0,0 +1,84 @@
+From f5bbf838c8b13369a61c6756355305388df5824f Mon Sep 17 00:00:00 2001
+From: Tim Moore <tmoore at incrementalism.net>
+Date: Tue, 31 Dec 2013 17:39:45 +1100
+Subject: [PATCH] Fix installing gem from file without dependencies.
+
+Commit 9437ccc fixed the ability to install remote gems that was accidentally
+broken by d97fba1, but in the process accidentally broke installing from local
+files.
+
+This also changes the order to check for local first, to avoid unnecessary
+network requests in the case where the gem is local.
+
+Closes #760.
+---
+ lib/rubygems/commands/install_command.rb           | 20 ++++++++++++--------
+ test/rubygems/test_gem_commands_install_command.rb | 14 ++++++++++++++
+ 2 files changed, 26 insertions(+), 8 deletions(-)
+
+diff --git a/lib/rubygems/commands/install_command.rb b/lib/rubygems/commands/install_command.rb
+index 4485eb1..8219eef 100644
+--- a/lib/rubygems/commands/install_command.rb
++++ b/lib/rubygems/commands/install_command.rb
+@@ -228,7 +228,18 @@ to write the specification by hand.  For example:
+   def install_gem_without_dependencies name, req # :nodoc:
+     gem = nil
+ 
+-    if remote? then
++    if local? then
++      if name =~ /\.gem$/ and File.file? name then
++        source = Gem::Source::SpecificFile.new name
++        spec = source.spec
++      else
++        source = Gem::Source::Local.new
++        spec = source.find_gem name, req
++      end
++      gem = source.download spec if spec
++    end
++
++    if remote? and not gem then
+       dependency = Gem::Dependency.new name, req
+       dependency.prerelease = options[:prerelease]
+ 
+@@ -236,13 +247,6 @@ to write the specification by hand.  For example:
+       gem = fetcher.download_to_cache dependency
+     end
+ 
+-    if local? and not gem then
+-      source = Gem::Source::Local.new
+-      spec = source.find_gem name, req
+-
+-      gem = source.download spec
+-    end
+-
+     inst = Gem::Installer.new gem, options
+     inst.install
+ 
+diff --git a/test/rubygems/test_gem_commands_install_command.rb b/test/rubygems/test_gem_commands_install_command.rb
+index 76ea6b4..a5917c0 100644
+--- a/test/rubygems/test_gem_commands_install_command.rb
++++ b/test/rubygems/test_gem_commands_install_command.rb
+@@ -560,6 +560,20 @@ ERROR:  Possible alternatives: non_existent_with_hint
+     assert_equal %w[a-2], @cmd.installed_specs.map { |spec| spec.full_name }
+   end
+ 
++  def test_install_gem_ignore_dependencies_specific_file
++    spec = quick_spec 'a', 2
++
++    util_build_gem spec
++
++    FileUtils.mv spec.cache_file, @tempdir
++
++    @cmd.options[:ignore_dependencies] = true
++
++    @cmd.install_gem File.join(@tempdir, spec.file_name), nil
++
++    assert_equal %w[a-2], @cmd.installed_specs.map { |spec| spec.full_name }
++  end
++
+   def test_parses_requirement_from_gemname
+     spec_fetcher do |fetcher|
+       fetcher.gem 'a', 2
+-- 
+1.8.5.2
+

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2014-01-10 18:45:02 UTC (rev 203424)
+++ PKGBUILD	2014-01-10 19:35:22 UTC (rev 203425)
@@ -5,20 +5,28 @@
 
 pkgname=('ruby' 'ruby-docs')
 pkgver=2.1.0
-pkgrel=1
+pkgrel=2
 arch=('i686' 'x86_64')
 url='http://www.ruby-lang.org/en/'
 license=('BSD' 'custom')
-makedepends=('gdbm' 'openssl' 'tk' 'libffi' 'doxygen' 'graphviz' 'libyaml')
+# disable ruby tk since 1.9.3 it has caused a segfault on require 'tk'
+# https://bugs.ruby-lang.org/issues/8000
+# wait for upstream to start supporting tk 8.6
+makedepends=('gdbm' 'openssl' 'libffi' 'doxygen' 'graphviz' 'libyaml') # 'tk'
 options=('!emptydirs' '!makeflags' 'staticlibs')
 source=("http://cache.ruby-lang.org/pub/ruby/ruby-${pkgver}.tar.bz2"
-        'gemrc')
+        'gemrc'
+        '0001-Fix-installing-gem-from-file-without-dependencies.patch')
 md5sums=('1546eeb763ac7754365664be763a1e8f'
-         '6fb8e7a09955e0f64be3158fb4a27e7a')
+         '6fb8e7a09955e0f64be3158fb4a27e7a'
+         '61a1507f260866805fc6451c14733b25')
 
 build() {
   cd ruby-${pkgver}
 
+  # fixes https://github.com/rubygems/rubygems/issues/760
+  patch -Np1 -i ${srcdir}/0001-Fix-installing-gem-from-file-without-dependencies.patch
+
   PKG_CONFIG=/usr/bin/pkg-config ./configure \
     --prefix=/usr \
     --sysconfdir=/etc \
@@ -38,8 +46,7 @@
 package_ruby() {
   pkgdesc='An object-oriented language for quick and easy programming'
   depends=('gdbm' 'openssl' 'libffi' 'libyaml')
-  optdepends=('tk: for Ruby/TK'
-              'ruby-docs: Ruby documentation')
+  optdepends=('ruby-docs: Ruby documentation') # 'tk: for Ruby/TK'
   provides=('rubygems' 'rake')
   conflicts=('rake')
   backup=('etc/gemrc')




More information about the arch-commits mailing list