diff options
author | Jakub Jirutka <jakub@jirutka.cz> | 2017-03-29 00:42:51 +0200 |
---|---|---|
committer | Jakub Jirutka <jakub@jirutka.cz> | 2017-03-29 00:42:51 +0200 |
commit | fdcff37daafb24149348e4b531117d15c48ca3ec (patch) | |
tree | 79711e0e3a3163d4373a9292a2604a04e24fac20 /community/ruby-mathematical | |
parent | 0d42953156ad36105b7f484bd96b25fe2be8dd0e (diff) | |
download | aports-fdcff37daafb24149348e4b531117d15c48ca3ec.tar.bz2 aports-fdcff37daafb24149348e4b531117d15c48ca3ec.tar.xz |
community/ruby-mathematical: move from testing
Diffstat (limited to 'community/ruby-mathematical')
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] + |