summaryrefslogtreecommitdiff
path: root/libre/sagemath/PKGBUILD
diff options
context:
space:
mode:
authorOmar Vega Ramos <ovruni@gnu.org.pe>2015-07-16 14:21:34 -0500
committerOmar Vega Ramos <ovruni@gnu.org.pe>2015-07-16 14:21:34 -0500
commit7a24dbb2f6dca9e0c30f75c3c9b12d81c41bd984 (patch)
tree95c21b175d249070039a7eaa2ab8b8a2b2a6aa27 /libre/sagemath/PKGBUILD
parent5c9e07c02b8174ddb3782bfd24c58451654bfe5a (diff)
sagemath: add new package to [libre]
Diffstat (limited to 'libre/sagemath/PKGBUILD')
-rw-r--r--libre/sagemath/PKGBUILD169
1 files changed, 169 insertions, 0 deletions
diff --git a/libre/sagemath/PKGBUILD b/libre/sagemath/PKGBUILD
new file mode 100644
index 000000000..485f89544
--- /dev/null
+++ b/libre/sagemath/PKGBUILD
@@ -0,0 +1,169 @@
+# $Id: PKGBUILD 118896 2014-09-13 07:12:02Z arcanis $
+# Maintainer (Arch): Evgeniy Alekseev <arcanis.arch at gmail dot com>
+# Maintainer (Arch): Antonio Rojas <arojas@archlinux.org>
+# Contributor (Arch): Daniel Wallace <danielwallace at gtmanfred dot com>
+# Contributor (Arch): Thomas Dziedzic <gostrc at gmail dot com>
+# Contributor (Arch): Osman Ugus <ugus11 at yahoo dot com>
+# Contributor (Arch): Stefan Husmann <stefan-husmann at t-online dot de>
+# Special thanks to Nareto for moving the compile from the .install to the PKGBUILD
+# Maintainer: Omar Vega Ramos <ovruni@gnu.org.pe>
+
+pkgname=sagemath
+pkgver=6.7
+pkgrel=3.parabola1
+pkgdesc="Open Source Mathematics Software, free alternative to Magma, Maple, Mathematica, and Matlab, without nonfree nauty recommendation"
+arch=('i686' 'x86_64')
+url="http://www.sagemath.org"
+license=('GPL')
+depends=('ipython2' 'ppl' 'glpk' 'mpfi' 'palp' 'polybori' 'singular' 'libcliquer' 'maxima-ecl' 'gfan' 'sympow' 'tachyon' 'python2-rpy2'
+ 'python2-matplotlib' 'python2-scipy' 'python2-sympy' 'python2-networkx' 'libgap' 'gap' 'flintqs' 'lcalc' 'lrcalc'
+ 'eclib' 'gmp-ecm' 'zn_poly' 'gd' 'python2-cvxopt' 'pynac' 'linbox' 'gsl' 'rubiks' 'pari-galdata' 'pari-seadata-small'
+ 'sage-data-combinatorial_designs' 'sage-data-elliptic_curves' 'sage-data-graphs' 'sage-data-polytopes_db' 'sage-data-conway_polynomials')
+optdepends=('cython2: to compile cython code' 'jmol: 3D plots' 'sage-notebook: Browser-based (flask) notebook interface'
+ 'sagemath-doc: Documentation and inline help' 'sagemath-src: source files needed to build cython code'
+ 'ipython2-notebook: IPython notebook interface' 'mathjax: IPython notebook interface'
+ 'coin-or-cbc: COIN backend for numerical computations'
+ 'buckygen: for generating fullerene graphs' 'plantri: for generating some classes of graphs' 'benzene: for generating fusenes and benzenoids'
+ 'libfes: exhaustive search of solutions for boolean polynomial systems' 'modular_decomposition: modular decomposition of graphs'
+ 'lrs: Algorithms for linear reverse search used in game theory and for computing volume of polytopes' 'imagemagick: to show animations'
+ 'coxeter3: Coxeter groups implementation' 'cryptominisat: SAT solver' 'arb: floating-point ball arithmetic')
+makedepends=('cython2-devel' 'boost' 'scons' 'ratpoints' 'symmetrica' 'fflas-ffpack' 'python2-jinja' 'coin-or-cbc'
+ 'mcqd' 'libfes' 'coxeter3' 'cryptominisat' 'arb' 'modular_decomposition' 'bliss-graphs')
+conflicts=('sage-mathematics')
+replaces=('sage-mathematics')
+provides=('sage-mathematics')
+source=("$pkgname-$pkgver.tar.gz::https://github.com/sagemath/sage/archive/$pkgver.tar.gz"
+# "http://www.sagemath.org/packages/upstream/pexpect/pexpect-2.0.tar.bz2"
+"http://mirrors.mit.edu/sage/spkg/upstream/pexpect/pexpect-2.0.tar.bz2"
+'anal.h' 'package.patch' 'c_lib.patch' 'env.patch' 'paths.patch' 'clean.patch' 'skip-check.patch'
+'pexpect-env.patch' 'pexpect-del.patch' 'fes02.patch' 'ntl9.patch')
+md5sums=('df744e882a4b25b42dd8347e202cd497'
+ 'd9a3e113ed147dcee8f89962a8dccd43'
+ 'a906a180d198186a39820b0a2f9a9c63'
+ '0eb5ac1537aac93bd67a2925c0cfd84d'
+ 'c452558d3496b07be472dad57195d45d'
+ '3fc9a5bb250896533365c30c2b926e3c'
+ '020bdb34b6fc0f2c9f46341bdb79937a'
+ '46c212a3a6713b0f78c370c7186d0982'
+ '5947a420a0b1483f0cbc74c76895789b'
+ 'a83a3b1bc7fcb7cbf752a83a8311fc42'
+ 'f333939ea6c41377b66407c81016cee4'
+ '506944613082ba7f5b34360939ca90eb'
+ '308abbb1a49db9b8f0e088aff69567ff')
+
+prepare(){
+ cd sage-$pkgver
+
+# Arch-specific patches
+# assume all optional packages are installed
+ patch -p0 -i "$srcdir"/package.patch
+# don't assume Sage is already available (Fedora)
+ patch -p0 -i "$srcdir"/c_lib.patch
+# find L.h header
+ sed -e 's|libLfunction|Lfunction|' -i src/module_list.py
+# don't try to link against libpng 1.2
+ sed -e 's|png12|png|' -i src/module_list.py
+# set env variables
+ patch -p0 -i "$srcdir"/env.patch
+# fix paths in python imports
+ patch -p0 -i "$srcdir"/paths.patch
+# fix cython linking
+ sed -e "s| atlas(),||" -i src/sage/misc/cython.py
+# don't try to remove installed files
+ patch -p0 -i "$srcdir"/clean.patch
+# skip checking build status
+ patch -p0 -i "$srcdir"/skip-check.patch
+# supress warning about GAP install dir
+ sed -e "s|gapdir = os.path.join(SAGE_LOCAL, 'gap', 'latest')|gapdir = '/usr/lib/gap'|" -i src/sage/libs/gap/util.pyx
+# fix Cremona database detection
+ sed -e "s|is_package_installed('database_cremona_ellcurve')|os.path.exists('/usr/share/sage/cremona/cremona.db')|" \
+ -i src/sage/databases/cremona.py
+# fix IPython kernel path
+ sed -e "s|os.path.join(SAGE_ROOT, 'sage')|'/usr/bin/sage'|" -i src/sage/repl/ipython_kernel/install.py
+# find bliss headers
+ sed -e 's|graph.hh|bliss/graph.hh|' -i src/sage/graphs/bliss.pyx
+# Rename class to fix conflicts with NTL
+ sed -e 's|WrappedPtr|SageWrappedPtr|' -i src/sage/libs/polybori/decl.pxd -i src/sage/libs/polybori/pb_wrap.h
+
+# Upstream patches
+# fix build against libfes 0.2 http://trac.sagemath.org/ticket/15209
+ patch -p0 -i "$srcdir"/fes02.patch
+# fix build aginst NTL 9 (Fedora)
+ patch -p0 -i "$srcdir"/ntl9.patch
+
+# use python2
+ sed -e 's|#!/usr/bin/env python|#!/usr/bin/env python2|' -e 's|exec python|exec python2|' -i src/bin/*
+ sed -e 's|cython %s %s|cython2 %s %s|' -e 's|python setup.py|python2 setup.py|' -i src/sage/misc/cython.py
+ sed -e 's|exec ipython|exec ipython2|' -e 's|cygdb|cygdb2|' -i src/bin/sage
+ sed -e "s|'cython'|'cython2'|" -i src/bin/sage-cython
+ sed -e 's|python -c|python2 -c|' -i src/Makefile
+
+# copy required private PARI header
+ mkdir -p src/pari
+ cp "$srcdir"/anal.h src/pari/anal.h
+
+# remove developer interface
+ rm -r src/sage/dev
+
+ cd "$srcdir"/pexpect-2.0
+# fix env in pexpect
+ patch -p1 -i "$srcdir"/pexpect-env.patch
+# hide exceptions in pexpect
+ patch -p1 -i "$srcdir"/pexpect-del.patch
+}
+
+
+build() {
+ cd sage-$pkgver/src
+
+ export SAGE_LOCAL="/usr"
+ export SAGE_SRC="$PWD"
+ export CC=gcc
+
+ pushd c_lib
+ CXX=g++ UNAME=Linux SAGE64=auto scons
+ popd
+
+ make sage/libs/pari/auto_gen.pxi
+ make sage/ext/interpreters/__init__.py
+
+ python2 setup.py build
+
+# build pexpect
+ pushd "$srcdir"/pexpect-2.0
+ python2 setup.py build
+ popd
+}
+
+package() {
+ cd sage-$pkgver/src
+
+ export SAGE_ROOT="/usr"
+ export SAGE_LOCAL="$SAGE_ROOT"
+ export SAGE_SRC="$PWD"
+
+ python2 setup.py install --root="$pkgdir" --optimize=1
+
+ mkdir -p "$pkgdir"/usr/{bin,lib}
+ cp c_lib/libcsage.so "$pkgdir"/usr/lib
+ cp bin/sage "$pkgdir"/usr/bin
+ for _i in arch-env banner cachegrind callgrind cleaner coverage coverageall CSI CSI-helper.py cython env eval grep grepdoc inline-fortran ipython \
+ massif maxima.lisp native-execute notebook num-threads.py omega open preparse python rst2sws rst2txt run run-cython runtests startuptime.py \
+ sws2rst valgrind version.sh
+ do
+ cp bin/sage-$_i "$pkgdir"/usr/bin
+ done
+ cp bin/math-readline "$pkgdir"/usr/bin
+
+ mkdir -p "$pkgdir"/usr/share/sage
+ cp -r ext "$pkgdir"/usr/share/sage
+
+# Create SAGE_SRC, needed for the notebook
+ mkdir "$pkgdir"/usr/share/sage/src
+
+# Install Sage's own pexpect
+ cd "$srcdir"/pexpect-2.0
+ python2 setup.py install --root="$pkgdir" --optimize=1
+ mkdir -p "$pkgdir"/usr/lib/sage/site-packages/
+ mv "$pkgdir"/usr/lib/python2.7/site-packages/pexpect* "$pkgdir"/usr/lib/sage/site-packages/
+}