aboutsummaryrefslogtreecommitdiffstats
path: root/community/ruby-mathematical
diff options
context:
space:
mode:
authorJakub Jirutka <jakub@jirutka.cz>2017-03-29 00:42:51 +0200
committerJakub Jirutka <jakub@jirutka.cz>2017-03-29 00:42:51 +0200
commitfdcff37daafb24149348e4b531117d15c48ca3ec (patch)
tree79711e0e3a3163d4373a9292a2604a04e24fac20 /community/ruby-mathematical
parent0d42953156ad36105b7f484bd96b25fe2be8dd0e (diff)
downloadaports-fdcff37daafb24149348e4b531117d15c48ca3ec.tar.bz2
aports-fdcff37daafb24149348e4b531117d15c48ca3ec.tar.xz
community/ruby-mathematical: move from testing
Diffstat (limited to 'community/ruby-mathematical')
-rw-r--r--community/ruby-mathematical/APKBUILD78
-rw-r--r--community/ruby-mathematical/disable-test-assert-failing-on-32bit.patch17
-rw-r--r--community/ruby-mathematical/disable-unstable-delimiter-test.patch13
-rw-r--r--community/ruby-mathematical/fix-extconf.patch60
-rw-r--r--community/ruby-mathematical/use-system-mtex2mml-fixtures.patch11
-rw-r--r--community/ruby-mathematical/use-system-mtex2mml.patch59
6 files changed, 238 insertions, 0 deletions
diff --git a/community/ruby-mathematical/APKBUILD b/community/ruby-mathematical/APKBUILD
new file mode 100644
index 0000000000..9ce9184bf0
--- /dev/null
+++ b/community/ruby-mathematical/APKBUILD
@@ -0,0 +1,78 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=ruby-mathematical
+_gemname=${pkgname#ruby-}
+pkgver=1.6.0
+pkgrel=1
+pkgdesc="Convert mathematical equations to SVGs, PNGs, or MathML"
+url="https://www.gjtorikian.com/mathematical/"
+arch="all"
+license="MIT"
+depends="ruby ruby-enum"
+makedepends="cmake lasem-dev mtex2mml-dev ruby-dev"
+checkdepends="mtex2mml-fixtures ruby-io-console ruby-irb ruby-minitest
+ ruby-nokogiri ruby-rake"
+source="$pkgname-$pkgver.tar.gz::https://github.com/gjtorikian/$_gemname/archive/v$pkgver.tar.gz
+ use-system-mtex2mml.patch
+ fix-extconf.patch
+ use-system-mtex2mml-fixtures.patch
+ disable-test-assert-failing-on-32bit.patch
+ disable-unstable-delimiter-test.patch"
+builddir="$srcdir/$_gemname-$pkgver"
+
+prepare() {
+ default_prepare
+
+ # Don't load bundler, it messes with GEM_PATH.
+ sed -i "/^require\s*[\"']bundler\/setup/d" test/test_helper.rb
+}
+
+build() {
+ cd "$builddir"
+
+ gem build $_gemname.gemspec
+ gem install --local \
+ --install-dir dist \
+ --ignore-dependencies \
+ --no-document \
+ --verbose \
+ $_gemname -- \
+ --use-system-lasem \
+ --use-system-mtex2MML
+}
+
+check() {
+ local dev_deps
+ cd "$builddir"
+
+ # Install missing development dependencies needed and used only for running
+ # tests. We can't install them easily with bundler, because there's
+ # no way how to force it to NOT update already satisifed dependencies.
+ # We can't install them directly with gem either, because there's no
+ # way how to force it to instally only dependencies, not the gem itself.
+ dev_deps=$(gem install --explain --development --minimal-deps $_gemname-$pkgver.gem \
+ | head -n -1 | sed -En 's/-([^-]+)$/:\1/p')
+ gem install --instal-dir=.gem --conservative $dev_deps
+
+ GEM_PATH='dist:.gem' ruby -S rake test
+}
+
+package() {
+ local gemdir="$pkgdir/$(ruby -rubygems -e 'puts Gem.default_dir')"
+ cd "$builddir"/dist
+
+ mkdir -p "$gemdir"
+ cp -r extensions gems specifications "$gemdir"/
+
+ # Remove unnecessary files and rubbish...
+ find "$gemdir"/extensions/ -name mkmf.log -delete
+ cd "$gemdir"/gems/$_gemname-$pkgver
+ rm -r ext/ test/ Rakefile *.md *.txt || true
+}
+
+sha512sums="3af398f5fe30b0feec52ddf1b0bcc06185a66aac115995e3d8ccf3c452c93786a482e55eb4bdb1823a8627753ba61a86e7f50bf4d3a125ab7c7055f7a36a708b ruby-mathematical-1.6.0.tar.gz
+3a5cd16d26db53415c5d047a4ddec398872bdead1eb60f65629f5680487de9d6a1d1ffad528a1a97da47aabd4696bdee06da9792e0b0d0fed95c4fae7af96492 use-system-mtex2mml.patch
+47ca73d585f322e98b580544c812f7d7d71f43cba21784a80438fb250952b156d18254ca4a885828e8d76f8b897165f23ef74772ff2e54d12edc58b10c8bcb99 fix-extconf.patch
+35c691b2006e6c0bac26ebb0adac5ffa99fbc37100c94d5978508b91b3df84544e4fc8fa38b5de01ae0fcc644c1eeb97b6129f59b4488b467c1ded468277c400 use-system-mtex2mml-fixtures.patch
+7d94779a665a4e055d2aed822568f5de9581af85e96cbb218b139627eaa103bb5338f61738cf3b4e82dcbfc4ad857f8ea80564655543176431b8b0ea8c7ccb93 disable-test-assert-failing-on-32bit.patch
+396708b20db0c91df9434b548796b97fb707f6eed612226e73557830572e73bc0b2932ffbe809b83e09de434420189bdb825f5ef742897eaf2ad92ba5024e204 disable-unstable-delimiter-test.patch"
diff --git a/community/ruby-mathematical/disable-test-assert-failing-on-32bit.patch b/community/ruby-mathematical/disable-test-assert-failing-on-32bit.patch
new file mode 100644
index 0000000000..29576ed992
--- /dev/null
+++ b/community/ruby-mathematical/disable-test-assert-failing-on-32bit.patch
@@ -0,0 +1,17 @@
+Remove assert that fails on 32 bit arch.
+
+Upstream-Issue: https://github.com/gjtorikian/mathematical/issues/72
+--- a/test/mathematical/maliciousness_test.rb
++++ b/test/mathematical/maliciousness_test.rb
+@@ -57,11 +57,6 @@
+ output = render.render '$a \ne b$'
+ assert_equal output[:data], '$a \ne b$'
+ assert_equal output[:exception].class, Mathematical::MaxsizeError
+-
+- assert_raises RangeError do
+- render = Mathematical.new({ :maxsize => 4_294_967_295 }) # unsigned long max
+- render.render('$a \ne b$')
+- end
+ end
+
+ def test_it_does_not_blow_up_on_bad_input
diff --git a/community/ruby-mathematical/disable-unstable-delimiter-test.patch b/community/ruby-mathematical/disable-unstable-delimiter-test.patch
new file mode 100644
index 0000000000..83e6ff948f
--- /dev/null
+++ b/community/ruby-mathematical/disable-unstable-delimiter-test.patch
@@ -0,0 +1,13 @@
+Disable unstable delimiter test
+
+Upstream-Issue: https://github.com/gjtorikian/mathematical/issues/73
+--- a/test/mathematical/delimiters_test.rb
++++ b/test/mathematical/delimiters_test.rb
+@@ -46,6 +46,7 @@
+ end
+
+ def test_mixed
++ skip 'Disabled, because it randomly fails (#73)'
+ render = Mathematical.new(:delimiter => [:brackets, :double], :format => :mathml)
+
+ fixture_tex = "\\[\\alpha\\] $$\\beta$$"
diff --git a/community/ruby-mathematical/fix-extconf.patch b/community/ruby-mathematical/fix-extconf.patch
new file mode 100644
index 0000000000..a73b39989b
--- /dev/null
+++ b/community/ruby-mathematical/fix-extconf.patch
@@ -0,0 +1,60 @@
+From 7ff0cd468ae877eb3de3bff0931b768560849d6f Mon Sep 17 00:00:00 2001
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Sat, 25 Mar 2017 01:14:41 +0100
+Subject: [PATCH] Do not add -llasem and -lmtex2MML to $LIBS when pkg_config is used
+
+pkg-config provides correct arguments to the linker.
+
+It seems that the lasem library is named differently on various
+systems. Unmodified lasem 0.5.0 installs library named
+liblasm-0.6.so.5.0.0 (and symlink liblasm.so), so linker fails when
+ -llasm is passed.
+
+Upstream-Issue: https://github.com/gjtorikian/mathematical/pull/71
+---
+ ext/mathematical/extconf.rb | 17 ++++++++++++++---
+ 1 file changed, 14 insertions(+), 3 deletions(-)
+
+diff --git a/ext/mathematical/extconf.rb b/ext/mathematical/extconf.rb
+index 04993aa..b6cf5bf 100644
+--- a/ext/mathematical/extconf.rb
++++ b/ext/mathematical/extconf.rb
+@@ -69,8 +69,14 @@ if !using_system_mtex2mml?
+ end
+ FileUtils.mkdir_p(MTEX2MML_LIB_DIR)
+ FileUtils.cp_r(File.join(MTEX2MML_BUILD_DIR, 'libmtex2MML.a'), MTEX2MML_LIB_DIR)
++ $LIBS << ' -lmtex2MML'
+ else
+- dir_config('mtex2MML').any? || pkg_config('libmtex2MML') || system('dpkg -s libmtex2MML >/dev/null')
++ if dir_config('mtex2MML').any? || system('dpkg -s libmtex2MML >/dev/null')
++ $LIBS << ' -lmtex2MML'
++ else
++ # NOTE: pkg_config implicitly adds right -l argument for the linker.
++ pkg_config('libmtex2MML') || pkg_config('mtex2MML')
++ end
+ end
+
+ if !using_system_lasem?
+@@ -82,8 +88,14 @@ if !using_system_lasem?
+ end
+ FileUtils.mkdir_p(LASEM_LIB_DIR)
+ FileUtils.cp_r(File.join(LASEM_BUILD_DIR, "liblasem.#{SHARED_EXT}"), LASEM_LIB_DIR)
++ $LIBS << '-llasem'
+ else
+- dir_config('lasem').any? || pkg_config('liblasem') || system('dpkg -s liblasem >/dev/null')
++ if dir_config('lasem').any? || system('dpkg -s liblasem >/dev/null')
++ $LIBS << '-llasem'
++ else
++ # NOTE: pkg_config implicitly adds right -l argument for the linker.
++ pkg_config('liblasem') || pkg_config('lasem')
++ end
+ end
+
+ LIB_DIRS = [MTEX2MML_LIB_DIR, LASEM_LIB_DIR]
+@@ -96,6 +108,5 @@ find_header('mtex2MML.h', MTEX2MML_SRC_DIR)
+ flag = ENV['TRAVIS'] ? '-O0' : '-O2'
+ $LDFLAGS << " #{`pkg-config --static --libs glib-2.0 gdk-pixbuf-2.0 cairo pango`.chomp}"
+ $CFLAGS << " #{flag} #{`pkg-config --cflags glib-2.0 gdk-pixbuf-2.0 cairo pango`.chomp}"
+-$LIBS << ' -lmtex2MML -llasem'
+
+ create_makefile('mathematical/mathematical')
diff --git a/community/ruby-mathematical/use-system-mtex2mml-fixtures.patch b/community/ruby-mathematical/use-system-mtex2mml-fixtures.patch
new file mode 100644
index 0000000000..76621f1f8e
--- /dev/null
+++ b/community/ruby-mathematical/use-system-mtex2mml-fixtures.patch
@@ -0,0 +1,11 @@
+--- a/test/test_helper.rb
++++ b/test/test_helper.rb
+@@ -6,7 +6,7 @@
+ require 'pp'
+ require 'pry-byebug'
+
+-MTEX2MML_FIXTURES_DIR = File.join('ext', 'mathematical', 'mtex2MML', 'tests', 'fixtures')
++MTEX2MML_FIXTURES_DIR = '/usr/share/mtex2MML/fixtures'
+ MATHJAX_TEST_DIR = File.join(MTEX2MML_FIXTURES_DIR, 'MathJax')
+ MATHJAX_TEX_DIR = File.join(MATHJAX_TEST_DIR, 'LaTeXToMathML-tex')
+ TRAVIS_OSX = ENV['TRAVIS'] && ENV['TRAVIS_OS_NAME'] == 'osx'
diff --git a/community/ruby-mathematical/use-system-mtex2mml.patch b/community/ruby-mathematical/use-system-mtex2mml.patch
new file mode 100644
index 0000000000..8cfbf99aad
--- /dev/null
+++ b/community/ruby-mathematical/use-system-mtex2mml.patch
@@ -0,0 +1,59 @@
+From 9810816577a18e844fd21eb0f7fa73b1e5e71b8a Mon Sep 17 00:00:00 2001
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Sat, 25 Mar 2017 01:10:36 +0100
+Subject: [PATCH] Allow to compile against system-provided mtex2MML
+
+I'm writing package for Alpine Linux and want to compile mathematical
+against system-provided mtex2MML instead of bundled one.
+
+Upstream-Issue: https://github.com/gjtorikian/mathematical/pull/71
+---
+ ext/mathematical/extconf.rb | 21 ++++++++++++++-------
+ 1 file changed, 14 insertions(+), 7 deletions(-)
+
+diff --git a/ext/mathematical/extconf.rb b/ext/mathematical/extconf.rb
+index eb6a8d8..04993aa 100644
+--- a/ext/mathematical/extconf.rb
++++ b/ext/mathematical/extconf.rb
+@@ -21,6 +21,10 @@ def using_system_lasem?
+ arg_config('--use-system-lasem', !!ENV['MATHEMATICAL_USE_SYSTEM_LASEM'])
+ end
+
++def using_system_mtex2mml?
++ arg_config('--use-system-mtex2MML', !!ENV['MATHEMATICAL_USE_SYSTEM_MTEX2MML'])
++end
++
+ ROOT_TMP = File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'tmp'))
+
+ LASEM_DIR = File.expand_path(File.join(File.dirname(__FILE__), 'lasem'))
+@@ -57,10 +61,16 @@ end
+ clean_dir(MTEX2MML_BUILD_DIR)
+ clean_dir(LASEM_BUILD_DIR)
+
+-# build mtex2MML library
+-Dir.chdir(MTEX2MML_BUILD_DIR) do
+- system 'cmake ..'
+- system 'make libmtex2MML_static'
++if !using_system_mtex2mml?
++ # build mtex2MML library
++ Dir.chdir(MTEX2MML_BUILD_DIR) do
++ system 'cmake ..'
++ system 'make libmtex2MML_static'
++ end
++ FileUtils.mkdir_p(MTEX2MML_LIB_DIR)
++ FileUtils.cp_r(File.join(MTEX2MML_BUILD_DIR, 'libmtex2MML.a'), MTEX2MML_LIB_DIR)
++else
++ dir_config('mtex2MML').any? || pkg_config('libmtex2MML') || system('dpkg -s libmtex2MML >/dev/null')
+ end
+
+ if !using_system_lasem?
+@@ -76,9 +86,6 @@ else
+ dir_config('lasem').any? || pkg_config('liblasem') || system('dpkg -s liblasem >/dev/null')
+ end
+
+-FileUtils.mkdir_p(MTEX2MML_LIB_DIR)
+-FileUtils.cp_r(File.join(MTEX2MML_BUILD_DIR, 'libmtex2MML.a'), MTEX2MML_LIB_DIR)
+-
+ LIB_DIRS = [MTEX2MML_LIB_DIR, LASEM_LIB_DIR]
+ HEADER_DIRS = [MTEX2MML_SRC_DIR, LASEM_SRC_DIR]
+