summaryrefslogtreecommitdiff
path: root/libre/ruby
diff options
context:
space:
mode:
Diffstat (limited to 'libre/ruby')
-rw-r--r--libre/ruby/PKGBUILD94
-rw-r--r--libre/ruby/gemrc5
-rw-r--r--libre/ruby/json-1.8.1.gembin0 -> 124416 bytes
-rw-r--r--libre/ruby/libre.patch319
-rw-r--r--libre/ruby/ruby.install22
5 files changed, 440 insertions, 0 deletions
diff --git a/libre/ruby/PKGBUILD b/libre/ruby/PKGBUILD
new file mode 100644
index 000000000..1910090ff
--- /dev/null
+++ b/libre/ruby/PKGBUILD
@@ -0,0 +1,94 @@
+# Maintainer (Arch): Thomas Dziedzic <gostrc@gmail.com>
+# Contributor (Arch): Allan McRae <allan@archlinux.org>
+# Contributor (Arch): John Proctor <jproctor@prium.net>
+# Contributor (Arch): Jeramy Rutley <jrutley@gmail.com>
+# Maintainer: Daniel Milewski <niitotantei@riseup.net>
+# Maintainer: André Silva <emulatorman@parabola.nu>
+
+pkgname=(ruby ruby-docs)
+pkgver=2.2.1
+_jsonver=1.8.1
+pkgrel=1.parabola1
+arch=(i686 x86_64)
+url='http://www.ruby-lang.org/en/'
+license=(BSD custom)
+makedepends=(gdbm openssl libffi doxygen graphviz libyaml ttf-dejavu tk)
+options=(!emptydirs)
+mksource=(http://cache.ruby-lang.org/pub/ruby/${pkgver:0:3}/ruby-${pkgver}.tar.xz
+ https://github.com/flori/json/archive/v${_jsonver}.tar.gz
+ json-${_jsonver}.gem
+ libre.patch)
+source=(https://repo.parabola.nu/other/ruby-libre/ruby-libre-${pkgver}.tar.xz
+ gemrc)
+mksha1sums=('31bbdb17237863bd26b3aa32c613fe42c95ccd60'
+ '043ed2df4b0ce2174c9c020ffcb4ec31f9fde560'
+ '2cd288d00c5211e4c9d9338080b30af65cbb143a'
+ '66e71a368eb174976fd23af9f9bca4faa4462273')
+sha1sums=('8a47cbc1a07270c1c7c7edd612da466bd1dcab59'
+ 'de4b760b7e2cd9af88ca67536ce37b950f1ee514')
+
+mksource() {
+ rm -rv ruby-${pkgver}/ext/json
+ rm -rv ruby-${pkgver}/test/json
+
+ rm -rv json-${_jsonver}/ext
+
+ cp -v json-${_jsonver}.gem ruby-${pkgver}/gems
+
+ patch -Np0 -i libre.patch
+}
+
+build() {
+ cd ruby-${pkgver}
+
+ PKG_CONFIG=/usr/bin/pkg-config ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --sharedstatedir=/var/lib \
+ --libexecdir=/usr/lib/ruby \
+ --enable-shared \
+ --disable-rpath \
+ --with-dbm-type=gdbm_compat
+
+ make
+}
+
+check() {
+ cd ruby-${pkgver}
+
+ make test
+}
+
+package_ruby() {
+ pkgdesc='An object-oriented language for quick and easy programming, with free variant of json gem'
+ depends=(gdbm openssl libffi libyaml gmp zlib)
+ optdepends=(
+ 'ruby-docs: Ruby documentation'
+ 'tk: for Ruby/TK'
+ )
+ provides=(rubygems rake)
+ conflicts=(rake)
+ backup=(etc/gemrc)
+ install=ruby.install
+
+ cd ruby-${pkgver}
+
+ make DESTDIR="${pkgdir}" install-nodoc
+
+ install -D -m644 ${srcdir}/gemrc "${pkgdir}/etc/gemrc"
+
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/ruby/LICENSE"
+ install -D -m644 BSDL "${pkgdir}/usr/share/licenses/ruby/BSDL"
+}
+
+package_ruby-docs() {
+ pkgdesc='Documentation files for ruby'
+
+ cd ruby-${pkgver}
+
+ make DESTDIR="${pkgdir}" install-doc install-capi
+
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/ruby-docs/LICENSE"
+ install -D -m644 BSDL "${pkgdir}/usr/share/licenses/ruby-docs/BSDL"
+}
diff --git a/libre/ruby/gemrc b/libre/ruby/gemrc
new file mode 100644
index 000000000..3d11de1ec
--- /dev/null
+++ b/libre/ruby/gemrc
@@ -0,0 +1,5 @@
+# Read about the gemrc format at http://docs.rubygems.org/read/chapter/11
+
+# --user-install is used to install to $HOME/.gem/ by default since we want to separate
+# pacman installed gems and gem installed gems
+gem: --user-install
diff --git a/libre/ruby/json-1.8.1.gem b/libre/ruby/json-1.8.1.gem
new file mode 100644
index 000000000..6c1362988
--- /dev/null
+++ b/libre/ruby/json-1.8.1.gem
Binary files differ
diff --git a/libre/ruby/libre.patch b/libre/ruby/libre.patch
new file mode 100644
index 000000000..aea91b9ad
--- /dev/null
+++ b/libre/ruby/libre.patch
@@ -0,0 +1,319 @@
+diff -Nur json-1.8.1.orig/json.gemspec json-1.8.1/json.gemspec
+--- json-1.8.1.orig/json.gemspec 2015-02-23 12:54:11.994572025 +0100
++++ json-1.8.1/json.gemspec 2015-02-23 19:37:45.962313149 +0100
+@@ -8,11 +8,10 @@
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
+ s.authors = ["Florian Frank"]
+ s.date = "2013-10-17"
+- s.description = "This is a JSON implementation as a Ruby extension in C."
++ s.description = "This is a JSON implementation in pure Ruby."
+ s.email = "flori@ping.de"
+- s.extensions = ["ext/json/ext/generator/extconf.rb", "ext/json/ext/parser/extconf.rb"]
+ s.extra_rdoc_files = ["README.rdoc"]
+- s.files = [".gitignore", ".travis.yml", "CHANGES", "COPYING", "COPYING-json-jruby", "GPL", "Gemfile", "README-json-jruby.markdown", "README.rdoc", "Rakefile", "TODO", "VERSION", "data/example.json", "data/index.html", "data/prototype.js", "diagrams/.keep", "ext/json/ext/fbuffer/fbuffer.h", "ext/json/ext/generator/depend", "ext/json/ext/generator/extconf.rb", "ext/json/ext/generator/generator.c", "ext/json/ext/generator/generator.h", "ext/json/ext/parser/depend", "ext/json/ext/parser/extconf.rb", "ext/json/ext/parser/parser.c", "ext/json/ext/parser/parser.h", "ext/json/ext/parser/parser.rl", "install.rb", "java/src/json/ext/ByteListTranscoder.java", "java/src/json/ext/Generator.java", "java/src/json/ext/GeneratorMethods.java", "java/src/json/ext/GeneratorService.java", "java/src/json/ext/GeneratorState.java", "java/src/json/ext/OptionsReader.java", "java/src/json/ext/Parser.java", "java/src/json/ext/Parser.rl", "java/src/json/ext/ParserService.java", "java/src/json/ext/RuntimeInfo.java", "java/src/json/ext/StringDecoder.java", "java/src/json/ext/StringEncoder.java", "java/src/json/ext/Utils.java", "json-java.gemspec", "json.gemspec", "json_pure.gemspec", "lib/json.rb", "lib/json/add/bigdecimal.rb", "lib/json/add/complex.rb", "lib/json/add/core.rb", "lib/json/add/date.rb", "lib/json/add/date_time.rb", "lib/json/add/exception.rb", "lib/json/add/ostruct.rb", "lib/json/add/range.rb", "lib/json/add/rational.rb", "lib/json/add/regexp.rb", "lib/json/add/struct.rb", "lib/json/add/symbol.rb", "lib/json/add/time.rb", "lib/json/common.rb", "lib/json/ext.rb", "lib/json/ext/.keep", "lib/json/generic_object.rb", "lib/json/pure.rb", "lib/json/pure/generator.rb", "lib/json/pure/parser.rb", "lib/json/version.rb", "tests/fixtures/fail1.json", "tests/fixtures/fail10.json", "tests/fixtures/fail11.json", "tests/fixtures/fail12.json", "tests/fixtures/fail13.json", "tests/fixtures/fail14.json", "tests/fixtures/fail18.json", "tests/fixtures/fail19.json", "tests/fixtures/fail2.json", "tests/fixtures/fail20.json", "tests/fixtures/fail21.json", "tests/fixtures/fail22.json", "tests/fixtures/fail23.json", "tests/fixtures/fail24.json", "tests/fixtures/fail25.json", "tests/fixtures/fail27.json", "tests/fixtures/fail28.json", "tests/fixtures/fail3.json", "tests/fixtures/fail4.json", "tests/fixtures/fail5.json", "tests/fixtures/fail6.json", "tests/fixtures/fail7.json", "tests/fixtures/fail8.json", "tests/fixtures/fail9.json", "tests/fixtures/pass1.json", "tests/fixtures/pass15.json", "tests/fixtures/pass16.json", "tests/fixtures/pass17.json", "tests/fixtures/pass2.json", "tests/fixtures/pass26.json", "tests/fixtures/pass3.json", "tests/setup_variant.rb", "tests/test_json.rb", "tests/test_json_addition.rb", "tests/test_json_encoding.rb", "tests/test_json_fixtures.rb", "tests/test_json_generate.rb", "tests/test_json_generic_object.rb", "tests/test_json_string_matching.rb", "tests/test_json_unicode.rb", "tools/fuzz.rb", "tools/server.rb", "./tests/test_json.rb", "./tests/test_json_addition.rb", "./tests/test_json_encoding.rb", "./tests/test_json_fixtures.rb", "./tests/test_json_generate.rb", "./tests/test_json_generic_object.rb", "./tests/test_json_string_matching.rb", "./tests/test_json_unicode.rb"]
++ s.files = [".gitignore", ".travis.yml", "CHANGES", "COPYING", "COPYING-json-jruby", "GPL", "Gemfile", "README-json-jruby.markdown", "README.rdoc", "Rakefile", "TODO", "VERSION", "data/example.json", "data/index.html", "data/prototype.js", "diagrams/.keep", "install.rb", "java/src/json/ext/ByteListTranscoder.java", "java/src/json/ext/Generator.java", "java/src/json/ext/GeneratorMethods.java", "java/src/json/ext/GeneratorService.java", "java/src/json/ext/GeneratorState.java", "java/src/json/ext/OptionsReader.java", "java/src/json/ext/Parser.java", "java/src/json/ext/Parser.rl", "java/src/json/ext/ParserService.java", "java/src/json/ext/RuntimeInfo.java", "java/src/json/ext/StringDecoder.java", "java/src/json/ext/StringEncoder.java", "java/src/json/ext/Utils.java", "json-java.gemspec", "json.gemspec", "json_pure.gemspec", "lib/json.rb", "lib/json/add/bigdecimal.rb", "lib/json/add/complex.rb", "lib/json/add/core.rb", "lib/json/add/date.rb", "lib/json/add/date_time.rb", "lib/json/add/exception.rb", "lib/json/add/ostruct.rb", "lib/json/add/range.rb", "lib/json/add/rational.rb", "lib/json/add/regexp.rb", "lib/json/add/struct.rb", "lib/json/add/symbol.rb", "lib/json/add/time.rb", "lib/json/common.rb", "lib/json/ext.rb", "lib/json/ext/.keep", "lib/json/generic_object.rb", "lib/json/pure.rb", "lib/json/pure/generator.rb", "lib/json/pure/parser.rb", "lib/json/version.rb", "tests/fixtures/fail1.json", "tests/fixtures/fail10.json", "tests/fixtures/fail11.json", "tests/fixtures/fail12.json", "tests/fixtures/fail13.json", "tests/fixtures/fail14.json", "tests/fixtures/fail18.json", "tests/fixtures/fail19.json", "tests/fixtures/fail2.json", "tests/fixtures/fail20.json", "tests/fixtures/fail21.json", "tests/fixtures/fail22.json", "tests/fixtures/fail23.json", "tests/fixtures/fail24.json", "tests/fixtures/fail25.json", "tests/fixtures/fail27.json", "tests/fixtures/fail28.json", "tests/fixtures/fail3.json", "tests/fixtures/fail4.json", "tests/fixtures/fail5.json", "tests/fixtures/fail6.json", "tests/fixtures/fail7.json", "tests/fixtures/fail8.json", "tests/fixtures/fail9.json", "tests/fixtures/pass1.json", "tests/fixtures/pass15.json", "tests/fixtures/pass16.json", "tests/fixtures/pass17.json", "tests/fixtures/pass2.json", "tests/fixtures/pass26.json", "tests/fixtures/pass3.json", "tests/setup_variant.rb", "tests/test_json.rb", "tests/test_json_addition.rb", "tests/test_json_encoding.rb", "tests/test_json_fixtures.rb", "tests/test_json_generate.rb", "tests/test_json_generic_object.rb", "tests/test_json_string_matching.rb", "tests/test_json_unicode.rb", "tools/fuzz.rb", "tools/server.rb", "./tests/test_json.rb", "./tests/test_json_addition.rb", "./tests/test_json_encoding.rb", "./tests/test_json_fixtures.rb", "./tests/test_json_generate.rb", "./tests/test_json_generic_object.rb", "./tests/test_json_string_matching.rb", "./tests/test_json_unicode.rb"]
+ s.homepage = "http://flori.github.com/json"
+ s.licenses = ["Ruby"]
+ s.rdoc_options = ["--title", "JSON implemention for Ruby", "--main", "README.rdoc"]
+diff -Nur json-1.8.1.orig/json_pure.gemspec json-1.8.1/json_pure.gemspec
+--- json-1.8.1.orig/json_pure.gemspec 2015-02-23 12:54:11.994572025 +0100
++++ json-1.8.1/json_pure.gemspec 2015-02-23 19:35:30.316391313 +0100
+@@ -11,7 +11,7 @@
+ s.description = "This is a JSON implementation in pure Ruby."
+ s.email = "flori@ping.de"
+ s.extra_rdoc_files = ["README.rdoc"]
+- s.files = [".gitignore", ".travis.yml", "CHANGES", "COPYING", "COPYING-json-jruby", "GPL", "Gemfile", "README-json-jruby.markdown", "README.rdoc", "Rakefile", "TODO", "VERSION", "data/example.json", "data/index.html", "data/prototype.js", "diagrams/.keep", "ext/json/ext/fbuffer/fbuffer.h", "ext/json/ext/generator/depend", "ext/json/ext/generator/extconf.rb", "ext/json/ext/generator/generator.c", "ext/json/ext/generator/generator.h", "ext/json/ext/parser/depend", "ext/json/ext/parser/extconf.rb", "ext/json/ext/parser/parser.c", "ext/json/ext/parser/parser.h", "ext/json/ext/parser/parser.rl", "install.rb", "java/src/json/ext/ByteListTranscoder.java", "java/src/json/ext/Generator.java", "java/src/json/ext/GeneratorMethods.java", "java/src/json/ext/GeneratorService.java", "java/src/json/ext/GeneratorState.java", "java/src/json/ext/OptionsReader.java", "java/src/json/ext/Parser.java", "java/src/json/ext/Parser.rl", "java/src/json/ext/ParserService.java", "java/src/json/ext/RuntimeInfo.java", "java/src/json/ext/StringDecoder.java", "java/src/json/ext/StringEncoder.java", "java/src/json/ext/Utils.java", "json-java.gemspec", "json.gemspec", "json_pure.gemspec", "lib/json.rb", "lib/json/add/bigdecimal.rb", "lib/json/add/complex.rb", "lib/json/add/core.rb", "lib/json/add/date.rb", "lib/json/add/date_time.rb", "lib/json/add/exception.rb", "lib/json/add/ostruct.rb", "lib/json/add/range.rb", "lib/json/add/rational.rb", "lib/json/add/regexp.rb", "lib/json/add/struct.rb", "lib/json/add/symbol.rb", "lib/json/add/time.rb", "lib/json/common.rb", "lib/json/ext.rb", "lib/json/ext/.keep", "lib/json/generic_object.rb", "lib/json/pure.rb", "lib/json/pure/generator.rb", "lib/json/pure/parser.rb", "lib/json/version.rb", "tests/fixtures/fail1.json", "tests/fixtures/fail10.json", "tests/fixtures/fail11.json", "tests/fixtures/fail12.json", "tests/fixtures/fail13.json", "tests/fixtures/fail14.json", "tests/fixtures/fail18.json", "tests/fixtures/fail19.json", "tests/fixtures/fail2.json", "tests/fixtures/fail20.json", "tests/fixtures/fail21.json", "tests/fixtures/fail22.json", "tests/fixtures/fail23.json", "tests/fixtures/fail24.json", "tests/fixtures/fail25.json", "tests/fixtures/fail27.json", "tests/fixtures/fail28.json", "tests/fixtures/fail3.json", "tests/fixtures/fail4.json", "tests/fixtures/fail5.json", "tests/fixtures/fail6.json", "tests/fixtures/fail7.json", "tests/fixtures/fail8.json", "tests/fixtures/fail9.json", "tests/fixtures/pass1.json", "tests/fixtures/pass15.json", "tests/fixtures/pass16.json", "tests/fixtures/pass17.json", "tests/fixtures/pass2.json", "tests/fixtures/pass26.json", "tests/fixtures/pass3.json", "tests/setup_variant.rb", "tests/test_json.rb", "tests/test_json_addition.rb", "tests/test_json_encoding.rb", "tests/test_json_fixtures.rb", "tests/test_json_generate.rb", "tests/test_json_generic_object.rb", "tests/test_json_string_matching.rb", "tests/test_json_unicode.rb", "tools/fuzz.rb", "tools/server.rb", "./tests/test_json.rb", "./tests/test_json_addition.rb", "./tests/test_json_encoding.rb", "./tests/test_json_fixtures.rb", "./tests/test_json_generate.rb", "./tests/test_json_generic_object.rb", "./tests/test_json_string_matching.rb", "./tests/test_json_unicode.rb"]
++ s.files = [".gitignore", ".travis.yml", "CHANGES", "COPYING", "COPYING-json-jruby", "GPL", "Gemfile", "README-json-jruby.markdown", "README.rdoc", "Rakefile", "TODO", "VERSION", "data/example.json", "data/index.html", "data/prototype.js", "diagrams/.keep", "install.rb", "java/src/json/ext/ByteListTranscoder.java", "java/src/json/ext/Generator.java", "java/src/json/ext/GeneratorMethods.java", "java/src/json/ext/GeneratorService.java", "java/src/json/ext/GeneratorState.java", "java/src/json/ext/OptionsReader.java", "java/src/json/ext/Parser.java", "java/src/json/ext/Parser.rl", "java/src/json/ext/ParserService.java", "java/src/json/ext/RuntimeInfo.java", "java/src/json/ext/StringDecoder.java", "java/src/json/ext/StringEncoder.java", "java/src/json/ext/Utils.java", "json-java.gemspec", "json.gemspec", "json_pure.gemspec", "lib/json.rb", "lib/json/add/bigdecimal.rb", "lib/json/add/complex.rb", "lib/json/add/core.rb", "lib/json/add/date.rb", "lib/json/add/date_time.rb", "lib/json/add/exception.rb", "lib/json/add/ostruct.rb", "lib/json/add/range.rb", "lib/json/add/rational.rb", "lib/json/add/regexp.rb", "lib/json/add/struct.rb", "lib/json/add/symbol.rb", "lib/json/add/time.rb", "lib/json/common.rb", "lib/json/ext.rb", "lib/json/ext/.keep", "lib/json/generic_object.rb", "lib/json/pure.rb", "lib/json/pure/generator.rb", "lib/json/pure/parser.rb", "lib/json/version.rb", "tests/fixtures/fail1.json", "tests/fixtures/fail10.json", "tests/fixtures/fail11.json", "tests/fixtures/fail12.json", "tests/fixtures/fail13.json", "tests/fixtures/fail14.json", "tests/fixtures/fail18.json", "tests/fixtures/fail19.json", "tests/fixtures/fail2.json", "tests/fixtures/fail20.json", "tests/fixtures/fail21.json", "tests/fixtures/fail22.json", "tests/fixtures/fail23.json", "tests/fixtures/fail24.json", "tests/fixtures/fail25.json", "tests/fixtures/fail27.json", "tests/fixtures/fail28.json", "tests/fixtures/fail3.json", "tests/fixtures/fail4.json", "tests/fixtures/fail5.json", "tests/fixtures/fail6.json", "tests/fixtures/fail7.json", "tests/fixtures/fail8.json", "tests/fixtures/fail9.json", "tests/fixtures/pass1.json", "tests/fixtures/pass15.json", "tests/fixtures/pass16.json", "tests/fixtures/pass17.json", "tests/fixtures/pass2.json", "tests/fixtures/pass26.json", "tests/fixtures/pass3.json", "tests/setup_variant.rb", "tests/test_json.rb", "tests/test_json_addition.rb", "tests/test_json_encoding.rb", "tests/test_json_fixtures.rb", "tests/test_json_generate.rb", "tests/test_json_generic_object.rb", "tests/test_json_string_matching.rb", "tests/test_json_unicode.rb", "tools/fuzz.rb", "tools/server.rb", "./tests/test_json.rb", "./tests/test_json_addition.rb", "./tests/test_json_encoding.rb", "./tests/test_json_fixtures.rb", "./tests/test_json_generate.rb", "./tests/test_json_generic_object.rb", "./tests/test_json_string_matching.rb", "./tests/test_json_unicode.rb"]
+ s.homepage = "http://flori.github.com/json"
+ s.licenses = ["Ruby"]
+ s.rdoc_options = ["--title", "JSON implemention for ruby", "--main", "README.rdoc"]
+diff -Nur json-1.8.1.orig/lib/json/ext.rb json-1.8.1/lib/json/ext.rb
+--- json-1.8.1.orig/lib/json/ext.rb 2015-02-23 12:52:09.528940268 +0100
++++ json-1.8.1/lib/json/ext.rb 2015-02-23 18:42:16.798987287 +0100
+@@ -5,16 +5,18 @@
+ end
+ end
+ require 'json/common'
++require 'json/pure/parser'
++require 'json/pure/generator'
+
+ module JSON
+ # This module holds all the modules/classes that implement JSON's
+- # functionality as C extensions.
++ # functionality in pure ruby.
++ Ext = Pure
++
+ module Ext
+- require 'json/ext/parser'
+- require 'json/ext/generator'
+- $DEBUG and warn "Using Ext extension for JSON."
+- JSON.parser = Parser
+- JSON.generator = Generator
++ $DEBUG and warn "Using Pure library for JSON."
++ JSON.parser = Pure::Parser
++ JSON.generator = Pure::Generator
+ end
+
+ JSON_LOADED = true unless defined?(::JSON::JSON_LOADED)
+diff -Nur json-1.8.1.orig/lib/json.rb json-1.8.1/lib/json.rb
+--- json-1.8.1.orig/lib/json.rb 2015-02-23 12:52:09.528940268 +0100
++++ json-1.8.1/lib/json.rb 2015-02-23 18:35:44.611444858 +0100
+@@ -54,9 +54,5 @@
+ module JSON
+ require 'json/version'
+
+- begin
+- require 'json/ext'
+- rescue LoadError
+- require 'json/pure'
+- end
++ require 'json/pure'
+ end
+diff -Nur json-1.8.1.orig/Rakefile json-1.8.1/Rakefile
+--- json-1.8.1.orig/Rakefile 2015-02-23 12:52:09.522273476 +0100
++++ json-1.8.1/Rakefile 2015-02-24 13:28:31.162031258 +0100
+@@ -14,8 +14,7 @@
+ require 'rake/clean'
+ CLOBBER.include 'doc', 'Gemfile.lock'
+ CLEAN.include FileList['diagrams/*.*'], 'doc', 'coverage', 'tmp',
+- FileList["ext/**/{Makefile,mkmf.log}"], 'build', 'dist', FileList['**/*.rbc'],
+- FileList["{ext,lib}/**/*.{so,bundle,#{CONFIG['DLEXT']},o,obj,pdb,lib,manifest,exp,def,jar,class,dSYM}"],
++ FileList["lib/**/*.{bundle,pdb,lib,manifest,exp,def,jar,class,dSYM}"],
+ FileList['java/src/**/*.class']
+
+ require 'rake/testtask'
+@@ -34,15 +33,6 @@
+ PKG_VERSION = File.read('VERSION').chomp
+ PKG_FILES = FileList[`git ls-files`.split(/\n/)]
+
+-EXT_ROOT_DIR = 'ext/json/ext'
+-EXT_PARSER_DIR = "#{EXT_ROOT_DIR}/parser"
+-EXT_PARSER_DL = "#{EXT_PARSER_DIR}/parser.#{CONFIG['DLEXT']}"
+-RAGEL_PATH = "#{EXT_PARSER_DIR}/parser.rl"
+-EXT_PARSER_SRC = "#{EXT_PARSER_DIR}/parser.c"
+-EXT_GENERATOR_DIR = "#{EXT_ROOT_DIR}/generator"
+-EXT_GENERATOR_DL = "#{EXT_GENERATOR_DIR}/generator.#{CONFIG['DLEXT']}"
+-EXT_GENERATOR_SRC = "#{EXT_GENERATOR_DIR}/generator.c"
+-
+ JAVA_DIR = "java/src/json/ext"
+ JAVA_RAGEL_PATH = "#{JAVA_DIR}/Parser.rl"
+ JAVA_PARSER_SRC = "#{JAVA_DIR}/Parser.java"
+@@ -59,20 +49,8 @@
+ ruby 'install.rb'
+ end
+
+-task :install_ext_really do
+- sitearchdir = CONFIG["sitearchdir"]
+- cd 'ext' do
+- for file in Dir["json/ext/*.#{CONFIG['DLEXT']}"]
+- d = File.join(sitearchdir, file)
+- mkdir_p File.dirname(d)
+- install(file, d)
+- end
+- warn " *** Installed EXT ruby library."
+- end
+-end
+-
+ desc "Installing library (extension)"
+-task :install_ext => [ :compile, :install_pure, :install_ext_really ]
++task :install_ext => [ :compile, :install_pure ]
+
+ desc "Installing library (extension)"
+ task :install => :install_ext
+@@ -118,12 +96,10 @@
+ s.name = 'json'
+ s.version = PKG_VERSION
+ s.summary = PKG_TITLE
+- s.description = "This is a JSON implementation as a Ruby extension in C."
++ s.description = "This is a JSON implementation in pure Ruby."
+
+ s.files = PKG_FILES
+
+- s.extensions = FileList['ext/**/extconf.rb']
+-
+ s.require_path = 'lib'
+ s.add_development_dependency 'permutation'
+ s.add_development_dependency 'sdoc', '~>0.3.16'
+@@ -312,96 +288,21 @@
+ task :release => :build
+ else
+ desc "Compiling extension"
+- task :compile => [ EXT_PARSER_DL, EXT_GENERATOR_DL ]
+-
+- file EXT_PARSER_DL => EXT_PARSER_SRC do
+- cd EXT_PARSER_DIR do
+- ruby 'extconf.rb'
+- sh MAKE
+- end
+- cp "#{EXT_PARSER_DIR}/parser.#{CONFIG['DLEXT']}", EXT_ROOT_DIR
+- end
+-
+- file EXT_GENERATOR_DL => EXT_GENERATOR_SRC do
+- cd EXT_GENERATOR_DIR do
+- ruby 'extconf.rb'
+- sh MAKE
+- end
+- cp "#{EXT_GENERATOR_DIR}/generator.#{CONFIG['DLEXT']}", EXT_ROOT_DIR
+- end
++ task :compile
+
+ desc "Testing library (extension)"
+- task :test_ext => [ :compile, :do_test_ext ]
+-
+- UndocumentedTestTask.new do |t|
+- t.name = 'do_test_ext'
+- t.libs << 'ext' << 'lib'
+- t.test_files = FileList['tests/test_*.rb']
+- t.verbose = true
+- t.options = '-v'
+- end
++ task :test_ext => :test_pure
+
+ desc "Create RDOC documentation"
+- task :doc => [ :version, EXT_PARSER_SRC ] do
+- sh "sdoc -o doc -t '#{PKG_TITLE}' -m README.rdoc README.rdoc lib/json.rb #{FileList['lib/json/**/*.rb']} #{EXT_PARSER_SRC} #{EXT_GENERATOR_SRC}"
+- end
+-
+- desc "Generate parser with ragel"
+- task :ragel => EXT_PARSER_SRC
+-
+- desc "Delete the ragel generated C source"
+- task :ragel_clean do
+- rm_rf EXT_PARSER_SRC
++ task :doc => :version do
++ sh "sdoc -o doc -t '#{PKG_TITLE}' -m README.rdoc README.rdoc lib/json.rb #{FileList['lib/json/**/*.rb']}"
+ end
+
+ desc "Update the tags file"
+ task :tags do
+- system 'ctags', *Dir['**/*.{rb,c,h,java}']
+- end
+-
+- file EXT_PARSER_SRC => RAGEL_PATH do
+- cd EXT_PARSER_DIR do
+- if RAGEL_CODEGEN == 'ragel'
+- sh "ragel parser.rl -G2 -o parser.c"
+- else
+- sh "ragel -x parser.rl | #{RAGEL_CODEGEN} -G2"
+- end
+- src = File.read("parser.c").gsub(/[ \t]+$/, '')
+- File.open("parser.c", "w") {|f| f.print src}
+- end
+- end
+-
+- desc "Generate diagrams of ragel parser (ps)"
+- task :ragel_dot_ps do
+- root = 'diagrams'
+- specs = []
+- File.new(RAGEL_PATH).grep(/^\s*machine\s*(\S+);\s*$/) { specs << $1 }
+- for s in specs
+- if RAGEL_DOTGEN == 'ragel'
+- sh "ragel #{RAGEL_PATH} -S#{s} -p -V | dot -Tps -o#{root}/#{s}.ps"
+- else
+- sh "ragel -x #{RAGEL_PATH} -S#{s} | #{RAGEL_DOTGEN} -p|dot -Tps -o#{root}/#{s}.ps"
+- end
+- end
+- end
+-
+- desc "Generate diagrams of ragel parser (png)"
+- task :ragel_dot_png do
+- root = 'diagrams'
+- specs = []
+- File.new(RAGEL_PATH).grep(/^\s*machine\s*(\S+);\s*$/) { specs << $1 }
+- for s in specs
+- if RAGEL_DOTGEN == 'ragel'
+- sh "ragel #{RAGEL_PATH} -S#{s} -p -V | dot -Tpng -o#{root}/#{s}.png"
+- else
+- sh "ragel -x #{RAGEL_PATH} -S#{s} | #{RAGEL_DOTGEN} -p|dot -Tpng -o#{root}/#{s}.png"
+- end
+- end
++ system 'ctags', *Dir['**/*.{rb,java}']
+ end
+
+- desc "Generate diagrams of ragel parser"
+- task :ragel_dot => [ :ragel_dot_png, :ragel_dot_ps ]
+-
+ desc "Build all gems and archives for a new release of json and json_pure."
+ task :build => [ :clean, :gemspec, :package ]
+
+diff -Nur ruby-2.2.1.orig/common.mk ruby-2.2.1/common.mk
+--- ruby-2.2.1.orig/common.mk 2014-12-24 03:56:32.000000000 +0100
++++ ruby-2.2.1/common.mk 2015-02-25 11:22:17.000768687 +0100
+@@ -14,7 +14,7 @@
+
+ RUBYLIB = $(PATH_SEPARATOR)
+ RUBYOPT = -
+-RUN_OPTS = --disable-gems
++RUN_OPTS = --disable-gems -I$(srcdir)/../json-1.8.1/lib
+
+ SPEC_GIT_BASE = git://github.com/nurse
+ MSPEC_GIT_URL = $(SPEC_GIT_BASE)/mspec.git
+@@ -738,8 +738,6 @@
+
+ srcs-ext: $(EXT_SRCS)
+
+-srcs-extra: $(srcdir)/ext/json/parser/parser.c
+-
+ LIB_SRCS = $(srcdir)/lib/unicode_normalize/tables.rb
+
+ srcs-lib: $(LIB_SRCS)
+@@ -826,11 +824,6 @@
+ top_srcdir=../.. srcdir=. \
+ RUBY="$(BASERUBY)" PATH_SEPARATOR="$(PATH_SEPARATOR)"
+
+-$(srcdir)/ext/json/parser/parser.c: $(srcdir)/ext/json/parser/parser.rl
+- $(ECHO) generating $@
+- $(Q) $(CHDIR) $(@D) && $(exec) $(MAKE) -f prereq.mk $(MFLAGS) \
+- Q=$(Q) ECHO=$(ECHO) top_srcdir=../../.. srcdir=. VPATH=../../.. BASERUBY="$(BASERUBY)"
+-
+ $(srcdir)/ext/rbconfig/sizeof/sizes.c: $(srcdir)/ext/rbconfig/sizeof/depend \
+ $(srcdir)/tool/generic_erb.rb $(srcdir)/template/sizes.c.tmpl $(srcdir)/configure.in
+ $(ECHO) generating $@
+diff -Nur ruby-2.2.1.orig/defs/default_gems ruby-2.2.1/defs/default_gems
+--- ruby-2.2.1.orig/defs/default_gems 2014-07-15 05:43:04.000000000 +0200
++++ ruby-2.2.1/defs/default_gems 2015-02-20 11:59:51.350361114 +0100
+@@ -1,4 +1,3 @@
+ # gem base directory versioning file [executable files under bin]
+ rake lib/rake lib/rake.rb [rake]
+ rdoc lib/rdoc lib/rdoc.rb [rdoc ri]
+-json ext/json ext/json/lib/json/version.rb
+diff -Nur ruby-2.2.1.orig/ext/.document ruby-2.2.1/ext/.document
+--- ruby-2.2.1.orig/ext/.document 2014-08-02 16:55:36.000000000 +0200
++++ ruby-2.2.1/ext/.document 2015-02-20 12:01:52.622203345 +0100
+@@ -35,9 +35,6 @@
+ io/nonblock/nonblock.c
+ io/wait/lib
+ io/wait/wait.c
+-json/ext/generator/generator.c
+-json/ext/parser/parser.c
+-json/lib
+ mathn/complex/complex.c
+ mathn/rational/rational.c
+ nkf/lib
+diff -Nur ruby-2.2.1.orig/gems/bundled_gems ruby-2.2.1/gems/bundled_gems
+--- ruby-2.2.1.orig/gems/bundled_gems 2014-12-12 14:00:15.000000000 +0100
++++ ruby-2.2.1/gems/bundled_gems 2015-02-25 11:22:54.678004585 +0100
+@@ -1,3 +1,4 @@
+ power_assert 0.2.2
+ test-unit 3.0.8
+ minitest 5.4.3
++json 1.8.1
+diff -Nur ruby-2.2.1.orig/test/ruby/test_module.rb ruby-2.2.1/test/ruby/test_module.rb
+--- ruby-2.2.1.orig/test/ruby/test_module.rb 2014-11-18 02:38:50.000000000 +0100
++++ ruby-2.2.1/test/ruby/test_module.rb 2015-02-20 12:18:38.270980662 +0100
+@@ -202,7 +202,6 @@
+
+ ancestors = Object.ancestors
+ mixins = ancestors - [Object, Kernel, BasicObject]
+- mixins << JSON::Ext::Generator::GeneratorMethods::String if defined?(JSON::Ext::Generator::GeneratorMethods::String)
+ assert_equal([Object, Kernel, BasicObject], ancestors - mixins)
+ assert_equal([String, Comparable, Object, Kernel, BasicObject], String.ancestors - mixins)
+ end
+@@ -436,7 +435,6 @@
+ assert_equal([Mixin], User.included_modules)
+
+ mixins = Object.included_modules - [Kernel]
+- mixins << JSON::Ext::Generator::GeneratorMethods::String if defined?(JSON::Ext::Generator::GeneratorMethods::String)
+ assert_equal([Kernel], Object.included_modules - mixins)
+ assert_equal([Comparable, Kernel], String.included_modules - mixins)
+ end
diff --git a/libre/ruby/ruby.install b/libre/ruby/ruby.install
new file mode 100644
index 000000000..ce78e96ec
--- /dev/null
+++ b/libre/ruby/ruby.install
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+print_gem_default_target() {
+ echo 'The default location of gem installs is $HOME/.gem/ruby'
+ echo 'Add the following line to your PATH if you plan to install using gem'
+ echo '$(ruby -rubygems -e "puts Gem.user_dir")/bin'
+ echo 'If you want to install to the system wide location, you must either:'
+ echo 'edit /etc/gemrc or run gem with the --no-user-install flag.'
+}
+
+# arg 1: the new package version
+post_install() {
+ print_gem_default_target
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ if [ "$(vercmp $2 1.9.3_p125-4)" -lt 0 ]; then
+ print_gem_default_target
+ fi
+}