core/sage-mathematics/PKGBUILD

115 lines
3.7 KiB
Bash
Raw Normal View History

2013-03-24 08:34:14 +08:00
# Maintainer: Manu
2014-10-09 03:04:21 +08:00
# Contributor: AlmAck
pkgname=sage-mathematics
2014-10-09 03:04:21 +08:00
pkgver=6.3
pkgrel=1
2013-03-24 08:34:14 +08:00
pkgdesc='SAGE: Open Source Mathematics Software, a viable free alternative to Magma, Maple, Mathematica, and Matlab.'
url='http://www.sagemath.org'
2013-03-24 08:34:14 +08:00
arch=('x86_64')
license=('GPL')
2014-10-09 03:04:21 +08:00
depends=('freetype2' 'libatomic_ops')
makedepends=('gcc-fortran' 'python2')
2013-03-24 08:34:14 +08:00
optdepends=('imagemagick: some plotting functionality benefits from it'
'texlive-core: some plotting functionality benefits from it, also to use SageTeX'
'openssh: to use the notebook in secure mode'
2014-10-09 03:04:21 +08:00
'ffmpeg: to show animations'
'cairo: R plots')
2013-03-24 08:34:14 +08:00
options=('!makeflags')
install="${pkgname}.install"
2014-10-09 03:04:21 +08:00
source=("http://mirror.switch.ch/mirror/sagemath/src/sage-${pkgver}.tar.gz"
'sage.service'
'sage-notebook.desktop')
md5sums=('668f080be70ffea8d67592ca00d161eb'
'985da1c1d1dcdc3ea9aa73035cb7996b'
'1c3e69dcf7bd5f6e9e092eb90e27fecb')
prepare() {
# create DOT_SAGE directory
if [[ -d ${srcdir}/build ]]; then
rm -rf "${srcdir}/build"
fi
mkdir "${srcdir}/build"
# according to FS#34769
sed -e 's/FREETYPE/#FREETYPE/' -i "${srcdir}/sage-${pkgver}/build/install"
sed -e 's/READLINE/#READLINE/' -i "${srcdir}/sage-${pkgver}/build/install"
}
2012-04-26 13:31:30 +08:00
build() {
2013-03-24 08:34:14 +08:00
cd sage-${pkgver}
2014-10-09 03:04:21 +08:00
# disable default makepkg flags (needed for singular and libgap)
unset CFLAGS
unset CXXFLAGS
2013-03-24 08:34:14 +08:00
unset LDFLAGS
2014-10-09 03:04:21 +08:00
## flags
2013-03-24 08:34:14 +08:00
# enable multiple threads while building, is this really needed? check if uses MAKEFLAGS
export SAGE_BUILD_THREADS=$(lscpu | awk '/^CPU\(s\):/ { print $2 }')
export MAKE="make -j${SAGE_BUILD_THREADS}"
2014-10-09 03:04:21 +08:00
# do not build own gcc
export SAGE_INSTALL_GCC='no'
# disable debug
2011-06-23 12:02:26 +08:00
export SAGE_DEBUG='no'
2014-10-09 03:04:21 +08:00
# enable fat binaries
2013-03-24 08:34:14 +08:00
export SAGE_FAT_BINARY='yes'
# can't write to root in a clean chroot
2014-10-09 03:04:21 +08:00
export DOT_SAGE="${srcdir}/build"
# singular is broken
export CPP='/usr/bin/cpp'
# use chakra's fortran rather then the one that ships with sage to compile sage's fortran
export FC='/usr/bin/gfortran'
export SAGE64='yes'
2011-06-23 12:02:26 +08:00
2013-03-24 08:34:14 +08:00
make
}
package() {
2013-03-24 08:34:14 +08:00
cd sage-${pkgver}
2014-10-09 03:04:21 +08:00
# remove build logs
rm -f *.log
rm -rf "${srcdir}/sage-${pkgver}/"{logs,upstream}
# cp because make install is experimental and will corrupt the install
2014-10-09 03:04:21 +08:00
install -dm755 "${pkgdir}/opt/sage"
cp -r * "${pkgdir}/opt/sage/"
2013-03-24 08:34:14 +08:00
# move SageTeX files to more appropriate directory
install -d ${pkgdir}/usr/share
mv ${pkgdir}/opt/sage/local/share/texmf \
${pkgdir}/usr/share
2011-06-23 12:02:26 +08:00
2014-10-09 03:04:21 +08:00
# according to FS#37090
# install scripts
install -dm755 "${pkgdir}/usr/bin"
./sage -c "install_scripts('${pkgdir}/usr/bin', ignore_existing=True)"
# rename scripts to avoid conflicts
for ITEM in $(ls "${pkgdir}/usr/bin"); do
mv "${pkgdir}/usr/bin/${ITEM}" "${pkgdir}/usr/bin/sage-${ITEM}"
done
2011-06-23 12:02:26 +08:00
# create link to main binary
2014-10-09 03:04:21 +08:00
ln -s "/opt/sage/sage" "${pkgdir}/usr/bin/sage"
# FIXME fix bad mtime
cd "${pkgdir}/opt/sage/local/lib/python2.7"
find . -name '*.py' -exec sh -c "rm {}c 2> /dev/null && python2 -m compileall {}" \;
# install a systemd user unit
install -Dm644 "${srcdir}/sage.service" "${pkgdir}/usr/lib/systemd/user/sage.service"
# install *.desktop and icon files
install -Dm644 "${srcdir}/sage-notebook.desktop" \
"${pkgdir}/usr/share/applications/sage-notebook.desktop"
install -Dm644 "${pkgdir}/opt/sage/local/lib/python2.7/site-packages/sagenb-0.10.8.2-py2.7.egg/sagenb/data/sage/images/icon48x48.png" \
"${pkgdir}/usr/share/pixmaps/sage-notebook.png"
2011-06-23 12:02:26 +08:00
# remove build logs
2013-03-24 08:34:14 +08:00
rm -f ${pkgdir}/opt/sage/*.log
rm -rf ${pkgdir}/opt/sage/spkg/logs
2013-03-24 08:34:14 +08:00
# remove source packages, since they are rarely needed, they are 300mb in size (compressed)
rm -f ${pkgdir}/opt/sage/spkg/base/*spkg
rm -f ${pkgdir}/opt/sage/spkg/standard/*spkg
}