blob: 1a6718f5ccb4e4389ba259541c50d6e21312914d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
# $Id: PKGBUILD 102937 2013-12-24 15:23:39Z arcanis $
# Maintainer: Evgeniy Alekseev <arcanis.arch at gmail dot com>
# Contributor: Daniel Wallace <danielwallace at gtmanfred dot com>
# Contributor: Antonio Rojas <nqn1976 at gmail dot com>
# Contributor: Thomas Dziedzic <gostrc at gmail dot com>
# Contributor: Osman Ugus <ugus11 at yahoo dot com>
# Contributor: Stefan Husmann <stefan-husmann at t-online dot de>
# 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:
|