# $Id: PKGBUILD 102937 2013-12-24 15:23:39Z arcanis $ # Maintainer: Evgeniy Alekseev # Contributor: Daniel Wallace # Contributor: Antonio Rojas # Contributor: Thomas Dziedzic # Contributor: Osman Ugus # Contributor: Stefan Husmann # Special thanks to Nareto for moving the compile from the .install to the PKGBUILD pkgname=sage-mathematics pkgver=6.0 pkgrel=2 pkgdesc="SAGE: Open Source Mathematics Software, a viable free alternative to Magma, Maple, Mathematica, and Matlab" arch=('i686' 'x86_64') url="http://www.sagemath.org" license=('GPL') #depends=('desktop-file-utils' 'java-environment=7' 'libjpeg-turbo' 'libtiff' 'libxmu' 'sqlite' 'xz') depends=('freetype2>=2.3.5') makedepends=('gcc-fortran' 'gendesk' 'desktop-file-utils') 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' 'ffmpeg: to show animations' 'cairo: R plots') source=("http://sage.math.washington.edu/home/release/sage-${pkgver}/sage-${pkgver}.tar" "fix-pil.patch" "sage.service") install="${pkgname}.install" md5sums=('da1bacf90fc291e736aaa71431e8874e' 'de54cb818d74c070a524fc3fd5208b2c' '985da1c1d1dcdc3ea9aa73035cb7996b') prepare() { # create *.desktop file gendesk -n \ --pkgname="sage-notebook" \ --pkgdesc="sage notebook" \ --name="sage" \ --exec="/opt/sage/sage -notebook" \ --terminal=true \ --categories="Science;Math" \ --custom="StartupNotify=true X-DCOP-ServiceType= X-KDE-SubstituteUID=false X-KDE-Username=" # create DOT_SAGE directory if [[ -d ${srcdir}/build ]]; then rm -rf "${srcdir}/build" fi mkdir "${srcdir}/build" # according to FS#34769 # NOTE: there is an error in pil build (freetype/fterrors.h not found) cd "${srcdir}/sage-${pkgver}/upstream/" tar xjfv pil-1.1.6.tar.bz2 rm -r pil-1.1.6.tar.bz2 patch -p0 -i "${srcdir}/fix-pil.patch" tar cjvf pil-1.1.6.tar.bz2 pil-1.1.6 rm -rf pil-1.1.6 # fix checksums SUMS=$(md5sum pil-1.1.6.tar.bz2 | awk '{print $1}') sed "s/md5=[0-9a-f]\{32\}/md5=${SUMS}/" -i "${srcdir}/sage-${pkgver}/build/pkgs/pil/checksums.ini" SUMS=$(sha1sum pil-1.1.6.tar.bz2 | awk '{print $1}') sed "s/sha1=[0-9a-f]\{40\}/sha1=${SUMS}/" -i "${srcdir}/sage-${pkgver}/build/pkgs/pil/checksums.ini" SUMS=$(cksum pil-1.1.6.tar.bz2 | awk '{print $1}') sed "s/cksum=[0-9a-f]\{10\}/cksum=${SUMS}/" -i "${srcdir}/sage-${pkgver}/build/pkgs/pil/checksums.ini" # disable freetype build rm -rf freetype-* sed -i -e 's/FREETYPE/#FREETYPE/' "${srcdir}/sage-${pkgver}/build/install" } build() { cd "sage-${pkgver}" # fix "missing sage.all error" during build unset CFLAGS unset CXXFLAGS # fix build errors unset LDFLAGS export MAKE="make -j$(nproc)" # use archlinux's fortran rather then the one that ships with sage to compile sage's fortran export FC=/usr/bin/gfortran # disable building with debugging support export SAGE_DEBUG='no' # enable fat binaries (disables processor specific optimizations) # comment out if you're only building it for yourself export SAGE_FAT_BINARY='yes' # can't write to root in a clean chroot export DOT_SAGE="${srcdir}/build" # singular is broken export CPP='/usr/bin/cpp' # only build sage, no documents #make build make ./sage --bdist "${pkgver}" } << COMMENT check() { cd "sage-${pkgver}" make test # uncomment if we want to run all the tests (warning: very long) #make ptestlong } COMMENT package() { cd "sage-${pkgver}" # cp because make install is experimental and will corrupt the install install -d "${pkgdir}/opt/sage" cp -dpr --no-preserve=ownership dist/sage-"${pkgver}-$CARCH-Linux/"* "${pkgdir}/opt/sage/" # move SageTeX files to more appropriate directory install -d "${pkgdir}/usr/share" mv "${pkgdir}/opt/sage/local/share/texmf" "${pkgdir}/usr/share" # remove build logs rm -f "${pkgdir}/opt/sage/*.log" rm -rf "${pkgdir}/opt/sage/spkg/logs" # 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" # according to FS#37090 # install scripts install -d "${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 ln -s "/opt/sage/sage" "${pkgdir}/usr/bin/sage" # 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.7.2-py2.7.egg/sagenb/data/sage/images/icon128x128.png" \ "${pkgdir}/usr/share/pixmaps/SAGE-notebook.png" } # vim :set ts=2 sw=2 et: