[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