diff options
Diffstat (limited to 'dev-ruby/duktape-rb')
-rw-r--r-- | dev-ruby/duktape-rb/Manifest | 5 | ||||
-rw-r--r-- | dev-ruby/duktape-rb/duktape-rb-2.3.0.0-r2.ebuild | 51 | ||||
-rw-r--r-- | dev-ruby/duktape-rb/files/duktape-rb-2.3.0.0_duktape-2.5.0-tests.patch | 28 | ||||
-rw-r--r-- | dev-ruby/duktape-rb/files/duktape-rb-2.3.0.0_use-system-duktape.patch | 79 | ||||
-rw-r--r-- | dev-ruby/duktape-rb/metadata.xml | 15 |
5 files changed, 178 insertions, 0 deletions
diff --git a/dev-ruby/duktape-rb/Manifest b/dev-ruby/duktape-rb/Manifest new file mode 100644 index 000000000000..cbe2da03a345 --- /dev/null +++ b/dev-ruby/duktape-rb/Manifest @@ -0,0 +1,5 @@ +AUX duktape-rb-2.3.0.0_duktape-2.5.0-tests.patch 677 BLAKE2B 74224d6c929cafc5d61566ff9bcd69f4279d1e14e3029e9af2396c4e7c1c280bba5bc8ed7a9751c8f9596cb26414d0ee893e346480ed3b780db602eb40169425 SHA512 3754e03340c2cbed7f9b264c718c4b39d7115b7c7d6d9ce6980bb04a0f426bc626019edb132f34ae031fb53be6c6aacca71137b1c46fda879dd285e4f920249b +AUX duktape-rb-2.3.0.0_use-system-duktape.patch 1860 BLAKE2B 479457cc1782a43ea217ac65dc20f41bfd8ca75dcdf7b77403b144514b590989a98eba01b3f0687e49b81cbb9a096bebb7e0034a0c09dcae36def12d10ea8e13 SHA512 567b9d3b41a413703e64e9167c683a5fb60af13a97426aa03ffe4a38ca6f810fad54ee29269157698c70c762329b3e889b7bed72420700764a478c9047abd4ef +DIST duktape-rb-2.3.0.0.tar.gz 1356464 BLAKE2B be7362ddbe6860bcb12c8f8909f66ae525585e628f7be2317b07eb07960f8f25e503dbc89e713e57144cc8108751ac856aa73a16cbd58502e928acf9e116247c SHA512 af4fd45387c3f40cd24bf3c879ef4e0d7efd43ca24f0cb866bf869db7fa9f4add9b60122c0dcfbce5491cdd7479b1414637fa1054078216b9f57fa426feb0154 +EBUILD duktape-rb-2.3.0.0-r2.ebuild 1088 BLAKE2B 399ef457a21cbf2951ffbb6c7f3f79fbba8f57959b203e071bc54489ce9774185654da6d337f890357f7fbc08a0a8a07ff939c37c8b2129c4028e0a547bdbb8a SHA512 68d60258bc35d50b3739b852371e8ea24f8cad7a224201baa542b84adbe9870a438e1ef2b406de80f0f506eb2cc48210471e7a94c2b6c084c31162b480bbe838 +MISC metadata.xml 456 BLAKE2B 68d38aee7b4f05acc971cfce3dfd8df7be680a45fa0f304a37f829096a3987130855b048c082887f38ce023615eccbbe9a9a83be27103c354c614b8fabc9f08f SHA512 25e7ef6ee7433b73deedbe4a7cdada16b57000a9f02b9a834a228f604624b310d41aba9cdcb11e7989079034181e4143b1e98d320572430c9152c4ba9583fee1 diff --git a/dev-ruby/duktape-rb/duktape-rb-2.3.0.0-r2.ebuild b/dev-ruby/duktape-rb/duktape-rb-2.3.0.0-r2.ebuild new file mode 100644 index 000000000000..ae7052fef742 --- /dev/null +++ b/dev-ruby/duktape-rb/duktape-rb-2.3.0.0-r2.ebuild @@ -0,0 +1,51 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +USE_RUBY="ruby25 ruby26 ruby27" + +RUBY_FAKEGEM_GEMSPEC="duktape.gemspec" +RUBY_FAKEGEM_NAME="duktape" + +inherit ruby-fakegem + +MY_PN=${PN/-/\.} +MY_P=${MY_PN}-${PV} + +DESCRIPTION="Ruby bindings to the Duktape JavaScript interpeter" +HOMEPAGE="https://github.com/judofyr/duktape.rb" +SRC_URI="https://github.com/judofyr/${MY_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ppc" + +COMMON_DEPEND="dev-lang/duktape:=" +DEPEND+="${COMMON_DEPEND}" +RDEPEND+="${COMMON_DEPEND}" + +ruby_add_bdepend " + dev-ruby/pkg-config + dev-ruby/rake-compiler + dev-ruby/sdoc +" + +PATCHES=( + "${FILESDIR}"/${PN}-2.3.0.0_duktape-2.5.0-tests.patch + "${FILESDIR}"/${PN}-2.3.0.0_use-system-duktape.patch +) + +RUBY_S=${MY_P} + +all_ruby_prepare() { + rm ext/duktape/duktape.{c,h} ext/duktape/duk_config.h || die "Failed to remove bundled duktape" +} + +each_ruby_configure() { + ${RUBY} -C ext/duktape extconf.rb || die "extconf.rb failed" +} + +each_ruby_compile() { + ${RUBY} -S rake compile +} diff --git a/dev-ruby/duktape-rb/files/duktape-rb-2.3.0.0_duktape-2.5.0-tests.patch b/dev-ruby/duktape-rb/files/duktape-rb-2.3.0.0_duktape-2.5.0-tests.patch new file mode 100644 index 000000000000..20228c480da8 --- /dev/null +++ b/dev-ruby/duktape-rb/files/duktape-rb-2.3.0.0_duktape-2.5.0-tests.patch @@ -0,0 +1,28 @@ +The parse-error message asserted by two of the tests has changed since +duktape-2.3.0, it is now + +# encoding: ASCII-8BIT +parse error (line 1, end of input) + +This should hopefully cover both cases. + +--- a/test/test_duktape.rb ++++ b/test/test_duktape.rb +@@ -102,7 +102,7 @@ + @ctx.eval_string('{') + end + +- assert_equal "parse error (line 1)", err.message ++ assert_match /parse error [(]line 1/, err.message + end + + def test_type_error +@@ -160,7 +160,7 @@ + @ctx.exec_string('{') + end + +- assert_equal "parse error (line 1)", err.message ++ assert_match /parse error [(]line 1/, err.message + end + + def test_type_error diff --git a/dev-ruby/duktape-rb/files/duktape-rb-2.3.0.0_use-system-duktape.patch b/dev-ruby/duktape-rb/files/duktape-rb-2.3.0.0_use-system-duktape.patch new file mode 100644 index 000000000000..9f35293c9e81 --- /dev/null +++ b/dev-ruby/duktape-rb/files/duktape-rb-2.3.0.0_use-system-duktape.patch @@ -0,0 +1,79 @@ +--- a/MANIFEST.txt ++++ b/MANIFEST.txt +@@ -1,9 +1,6 @@ + README.md + CHANGELOG.md +-ext/duktape/duktape.c +-ext/duktape/duktape.h + ext/duktape/duktape_ext.c +-ext/duktape/duk_config.h + ext/duktape/extconf.rb + lib/duktape/version.rb + lib/duktape.rb +--- a/ext/duktape/extconf.rb ++++ b/ext/duktape/extconf.rb +@@ -1,6 +1,64 @@ + require 'mkmf' + require 'zlib' + ++# ++# functions ++# ++ ++def package_config pkg, options={} ++ package = pkg_config(pkg) ++ return package if package ++ ++ begin ++ require 'rubygems' ++ gem 'pkg-config', (gem_ver='~> 1.1') ++ require 'pkg-config' and message("Using pkg-config gem version #{PKGConfig::VERSION}\n") ++ rescue LoadError ++ message "pkg-config could not be used to find #{pkg}\nPlease install either `pkg-config` or the pkg-config gem per\n\n gem install pkg-config -v #{gem_ver.inspect}\n\n" ++ else ++ return nil unless PKGConfig.have_package(pkg) ++ ++ cflags = PKGConfig.cflags(pkg) ++ ldflags = PKGConfig.libs_only_L(pkg) ++ libs = PKGConfig.libs_only_l(pkg) ++ ++ Logging::message "PKGConfig package configuration for %s\n", pkg ++ Logging::message "cflags: %s\nldflags: %s\nlibs: %s\n\n", cflags, ldflags, libs ++ ++ [cflags, ldflags, libs] ++ end ++end ++ ++def duktape_try_compile ++ try_compile "int main() {return 0;}", "", {werror: true} ++end ++ ++def add_cflags(flags) ++ print "checking if the C compiler accepts #{flags}... " ++ with_cflags("#{$CFLAGS} #{flags}") do ++ if duktape_try_compile ++ puts 'yes' ++ true ++ else ++ puts 'no' ++ false ++ end ++ end ++end ++ ++# ++# main ++# ++ ++if ENV['CC'] ++ RbConfig::CONFIG['CC'] = RbConfig::MAKEFILE_CONFIG['CC'] = ENV['CC'] ++end ++$LIBS << " #{ENV["LIBS"]}" ++$LDFLAGS << " #{ENV["LDFLAGS"]}" ++add_cflags(ENV["CFLAGS"]) ++ ++package_config('duktape') ++ + $CFLAGS += ' -std=c99' + have_func 'rb_sym2str' + create_makefile 'duktape_ext' diff --git a/dev-ruby/duktape-rb/metadata.xml b/dev-ruby/duktape-rb/metadata.xml new file mode 100644 index 000000000000..9e38302f85b5 --- /dev/null +++ b/dev-ruby/duktape-rb/metadata.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>marecki@gentoo.org</email> + <name>Marek Szuba</name> + </maintainer> + <maintainer type="project"> + <email>ruby@gentoo.org</email> + <name>Gentoo Ruby Project</name> + </maintainer> + <upstream> + <remote-id type="github">judofyr/duktape.rb</remote-id> + </upstream> +</pkgmetadata> |