summaryrefslogtreecommitdiff
path: root/community/sage-mathematics
diff options
context:
space:
mode:
Diffstat (limited to 'community/sage-mathematics')
-rw-r--r--community/sage-mathematics/PKGBUILD108
-rw-r--r--community/sage-mathematics/SAGE-notebook.desktop19
-rw-r--r--community/sage-mathematics/sage-mathematics.install60
-rw-r--r--community/sage-mathematics/sage.service8
4 files changed, 195 insertions, 0 deletions
diff --git a/community/sage-mathematics/PKGBUILD b/community/sage-mathematics/PKGBUILD
new file mode 100644
index 000000000..c4ddb2d10
--- /dev/null
+++ b/community/sage-mathematics/PKGBUILD
@@ -0,0 +1,108 @@
+# $Id: PKGBUILD 93777 2013-07-10 07:27:17Z bpiotrowski $
+# Maintainer: Daniel Wallace <danielwallace at gtmanfred dot com>
+# Contributor: Antonio Rojas < nqn1976 @ gmail.com >
+# Contributor: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Osman Ugus <ugus11@yahoo.com>
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+# Special thanks to Nareto for moving the compile from the .install to the PKGBUILD
+
+pkgname=sage-mathematics
+pkgver=5.10
+pkgrel=1
+pkgdesc='SAGE: Open Source Mathematics Software, a viable free alternative to Magma, Maple, Mathematica, and Matlab.'
+url='http://www.sagemath.org'
+arch=('i686' 'x86_64')
+license=('GPL')
+#depends=('xz' 'java-environment=7' 'desktop-file-utils' 'libxmu' 'libtiff' 'sqlite' 'libjpeg-turbo')
+depends=('desktop-file-utils')
+makedepends=('gcc-fortran' 'freetype2')
+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')
+install="${pkgname}.install"
+source=("http://sage.math.washington.edu/home/release/sage-${pkgver}/sage-${pkgver}.tar"
+ 'SAGE-notebook.desktop'
+ 'sage.service')
+
+build() {
+ cd sage-${pkgver}
+
+ # fix "missing sage.all error" during build
+ unset CFLAGS
+ unset CXXFLAGS
+
+ # fix build errors
+ unset LDFLAGS
+
+ # enable multiple threads while building, is this really needed? check if uses MAKEFLAGS
+ 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
+ mkdir "$srcdir/buiild"
+ 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}
+
+ # 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
+
+ desktop-file-install ${srcdir}/SAGE-notebook.desktop \
+ --dir ${pkgdir}/usr/share/applications
+
+ # create link to main binary
+ install -d ${pkgdir}/usr/bin
+ ln -s /opt/sage/sage ${pkgdir}/usr/bin/sage
+
+ # 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
+
+ # install a systemd user unit
+ install -Dm755 $srcdir/sage.service $pkgdir/usr/lib/systemd/user/sage.service
+}
+
+# vim :set ts=2 sw=2 et:
+md5sums=('bfca3afc9030e63c7e7200287ee0135e'
+ 'b82f94383829eee26648feb977e2d89b'
+ '985da1c1d1dcdc3ea9aa73035cb7996b')
diff --git a/community/sage-mathematics/SAGE-notebook.desktop b/community/sage-mathematics/SAGE-notebook.desktop
new file mode 100644
index 000000000..e3c1d4d7f
--- /dev/null
+++ b/community/sage-mathematics/SAGE-notebook.desktop
@@ -0,0 +1,19 @@
+[Desktop Entry]
+Version=1.0
+Name=SAGE
+Comment=SAGE NOTEBOOK
+Comment[en_US]=SAGE NOTEBOOK
+Exec=/opt/sage/sage -notebook
+GenericName=
+GenericName[de]=
+Icon=/opt/sage/devel/ext-main/notebook/images/sageicon.png
+MimeType=
+Name[de]=SAGE
+StartupNotify=true
+Terminal=true
+Type=Application
+Categories=Science;Math;
+X-DCOP-ServiceType=
+X-KDE-SubstituteUID=false
+X-KDE-Username=
+GenericName[en_US]=
diff --git a/community/sage-mathematics/sage-mathematics.install b/community/sage-mathematics/sage-mathematics.install
new file mode 100644
index 000000000..3da751689
--- /dev/null
+++ b/community/sage-mathematics/sage-mathematics.install
@@ -0,0 +1,60 @@
+post_install() {
+ cd /opt/sage
+ update-desktop-database -q
+
+ # set HOME because when sage updates its sage_root (after being moved) it will write files to ~/.sage with root ownership
+ # the files it writes to ~/.sage can be safely ignored
+ HOME=/tmp ./sage -c
+
+ # add sagemath user for the daemon
+ useradd -r -c 'Sage daemon' -d /opt/sage -s /bin/false sagemath
+
+ # Update LaTeX db to point to SageTeX
+ if [ -f /usr/bin/texhash ]; then
+ /usr/bin/texhash /usr/share/texmf
+ else
+ echo 'Warning: could not find /usr/bin/texhash'
+ echo 'SageTeX has been installed but you need to run:'
+ echo '# texhash /usr/share/texmf'
+ echo 'So that LaTeX will be able to find it.'
+ fi
+
+echo '
+ ___
+/ (_) o |
+\__ _ _ __ |
+/ / |/ | | / \_| | |
+\___/ | |_/|/\__/ \_/|/o
+ /| /|
+ \| \|
+ ________________________________
+< sage-mathematics, I mean, MOO! >
+ --------------------------------
+ \ ^__^
+ \ (oo)\_______
+ (__)\ )\/\
+ ||----w |
+ || ||
+'
+
+}
+
+post_upgrade() {
+ post_install $1
+ echo "There is now a user session unit included to run a sage notebook as your user."
+ echo "The wiki includes a guide on starting systemd user sessions"
+}
+
+post_remove() {
+ # Update LaTeX db to remove SageTeX entries
+ update-desktop-database -q
+ if [ -f /usr/bin/texhash ]; then
+ /usr/bin/texhash /usr/share/texmf
+ fi
+
+ # remove the sagemath daemon user
+ userdel sagemath
+
+ # clean up left overs
+ rm -rf /opt/sage
+}
diff --git a/community/sage-mathematics/sage.service b/community/sage-mathematics/sage.service
new file mode 100644
index 000000000..d999414de
--- /dev/null
+++ b/community/sage-mathematics/sage.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=A free open-source mathematics software system
+
+[Service]
+ExecStart=/opt/sage/sage -n
+
+[Install]
+WantedBy=default.target