From 763a62f83b4847b52b2f72598f54b2ef8ae07f87 Mon Sep 17 00:00:00 2001 From: André Fabian Silva Delgado Date: Wed, 4 Mar 2015 22:00:24 -0200 Subject: ruby: add new package to [libre] to solve freedom issue #674 -> https://labs.parabola.nu/issues/674 --- libre/ruby/PKGBUILD | 94 ++++++++++++++ libre/ruby/gemrc | 5 + libre/ruby/json-1.8.1.gem | Bin 0 -> 124416 bytes libre/ruby/libre.patch | 319 ++++++++++++++++++++++++++++++++++++++++++++++ libre/ruby/ruby.install | 22 ++++ 5 files changed, 440 insertions(+) create mode 100644 libre/ruby/PKGBUILD create mode 100644 libre/ruby/gemrc create mode 100644 libre/ruby/json-1.8.1.gem create mode 100644 libre/ruby/libre.patch create mode 100644 libre/ruby/ruby.install 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 +# Contributor (Arch): Allan McRae +# Contributor (Arch): John Proctor +# Contributor (Arch): Jeramy Rutley +# Maintainer: Daniel Milewski +# Maintainer: André Silva + +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 Binary files /dev/null and b/libre/ruby/json-1.8.1.gem 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 +} -- cgit v1.2.3