blob: c3d86cea82eed48b64ec4d0013277b393bf8747a (
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
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
|
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Contributor: Shiz <hi@shiz.me>
# Maintainer: Shiz <hi@shiz.me>
pkgname=julia
pkgver=0.6.2
# Keep in sync with deps/libuv.version.
_libuv_ver=d8ab1c6a33e77bf155facb54215dd8798e13825d
_llvm_ver=3.9
pkgrel=0
pkgdesc="A high-level, high-performance dynamic language for technical computing"
url="http://julialang.org"
# x86: no libunwind package
arch="x86_64"
license="MIT"
depends="arpack
dsfmt
fftw>=3.3
gmp>=5.0
libgit2>=0.21
mpfr3
openblas
openlibm
openspecfun>=0.4
pcre2>=10.0
suitesparse>=4.1
"
depends_dev="arpack-dev
curl-dev
dsfmt-dev
fftw-dev
gmp-dev
libgit2-dev
libssh2-dev
libunwind-dev
llvm$_llvm_ver-dev
mbedtls-dev
mpfr-dev
openblas-dev
openlibm-dev
openspecfun-dev
pcre2-dev
suitesparse-dev
utf8proc-dev>=2
"
makedepends="$depends_dev
bash
cmake
gfortran
linux-headers
libressl-dev
paxmark
perl
"
# FIXME: -tests should be noarch, but for unknown reason it fails on builder
# (arch-specific binaries are found)...
subpackages="$pkgname-tests $pkgname-doc $pkgname-dev $pkgname-dbg"
source="https://github.com/JuliaLang/julia/releases/download/v$pkgver/$pkgname-$pkgver.tar.gz
libuv-$_libuv_ver.tar.gz::https://api.github.com/repos/JuliaLang/libuv/tarball/$_libuv_ver
UnicodeData.txt-9.0.0::http://www.unicode.org/Public/9.0.0/ucd/UnicodeData.txt
find-syslibs
0001-hardened.patch
0002-verbose-build.patch
0003-no-clean-docs.patch
0005-fix-rpath-issues.patch
0008-ldconfig-compat.patch
fix-or-disable-broken-tests.patch
test-disable-tests-using-fake_pty.patch
test-libgit2-skip-SSL_CERT_FILE.patch
test-repl-disable-22176-20482.patch
makefile-dont-rebuild-docs.patch
"
builddir="$srcdir/$pkgname-$pkgver"
ldpath="/usr/lib/julia"
prepare() {
cd "$builddir"
# Julia needs patched libuv.
mkdir deps/srccache
cp "$srcdir"/libuv-$_libuv_ver.tar.gz deps/srccache
# Prevent fetching of unicode data.
cp "$srcdir"/UnicodeData.txt-9.0.0 doc/UnicodeData.txt
# Prevent fetching of bundled stuff in the build and package phase.
cat > deps/tools/jldownload <<-'EOF'
#!/bin/sh
echo "!!! Downloading of $2 to $1 disabled !!!"
echo "Abuild should not fetch any files in the build phase."
echo "Add all the needed files to the APKBUILD's source=."
exit 1
EOF
cat > Make.user <<-EOF
prefix=/usr
libexecdir=/usr/lib
sysconfdir=/etc
DESTDIR="$pkgdir"
LIBBLAS=-lopenblas
LIBBLASNAME=libopenblas
LIBLAPACK=-lopenblas
LIBLAPACKNAME=libopenblas
LLVM_CONFIG=/usr/lib/llvm$_llvm_ver/bin/llvm-config
LLVM_VER=$_llvm_ver
NO_GIT=1
USE_SYSTEM_LLVM=1
USE_SYSTEM_LIBUNWIND=1
USE_SYSTEM_PCRE=1
USE_SYSTEM_LIBM=1
USE_SYSTEM_OPENLIBM=1
USE_SYSTEM_OPENSPECFUN=1
USE_SYSTEM_DSFMT=1
USE_SYSTEM_BLAS=1
USE_SYSTEM_LAPACK=1
USE_SYSTEM_FFTW=1
USE_SYSTEM_GMP=1
USE_SYSTEM_MPFR=1
USE_SYSTEM_ARPACK=1
USE_SYSTEM_SUITESPARSE=1
USE_SYSTEM_LIBUV=0
USE_SYSTEM_UTF8PROC=1
USE_SYSTEM_MBEDTLS=1
USE_SYSTEM_LIBSSH2=1
USE_SYSTEM_CURL=1
USE_SYSTEM_LIBGIT2=1
USE_SYSTEM_PATCHELF=1
USE_LLVM_SHLIB=1
VERBOSE=1
EOF
# Pre-SSE2 CPU targets are not supported;
# create a generic 32-bit x86 binary.
if [ "$CARCH" = x86 ]; then
echo "MARCH=i686" >> Make.user
echo "JULIA_CPU_TARGET=pentium4" >> Make.user
else
echo "MARCH=${CARCH/_/-}" >> Make.user
fi
default_prepare
}
build() {
cd "$builddir"
# If debug is not built here, it is built during make install.
make release debug
}
check() {
cd "$builddir"
# TMPDIR=... is needed to prevent the tests from trying to write
# into /tmp, which will fail.
mkdir -p "$builddir"/tmp
TMPDIR="$builddir"/tmp make test
}
package() {
cd "$builddir"
make install
install -D "$srcdir"/find-syslibs "$pkgdir"/usr/share/julia/find-syslibs
# re-apply lost PaX markings
paxmark m "$pkgdir"/usr/bin/julia "$pkgdir"/usr/bin/julia-debug
rm -Rf "$pkgdir"/usr/share/julia/site
}
tests() {
pkgdesc="$pkgdesc (tests)"
replaces="$pkgname" # for backward compatibility
mkdir -p "$subpkgdir"/usr/share/julia
mv "$pkgdir"/usr/share/julia/test "$subpkgdir"/usr/share/julia
}
# Note: Julia builds somehow special debug binaries, so we need to bypass
# default_dbg and just copy them as-is.
dbg() {
pkgdesc="$pkgdesc (debug build)"
depends="$pkgname=$pkgver-r$pkgrel"
replaces="$pkgname-debug"
install -d "$subpkgdir"/usr/bin
mv "$pkgdir"/usr/bin/*-debug "$subpkgdir"/usr/bin/
install -d "$subpkgdir"/usr/lib/julia
mv "$pkgdir"/usr/lib/*[.-]debug* "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/julia/*[.-]debug* "$subpkgdir"/usr/lib/julia/
}
sha512sums="679050463ed5825d34c477bd44cd91cfecc7d1735a2f52cc70b509afd9883cb60902861643266ecac5ba6cbb03f8fcdd12fc2e87dc41b9ed0eef813fa40610f1 julia-0.6.2.tar.gz
272e3cc7b1290ef19cc941c3b3e6dd39dba7dcb26f0aea8e667c48c56288aa9266020504e0cc90074f02881521b3352079416f564c7eb24ab444326a8f04ca64 libuv-d8ab1c6a33e77bf155facb54215dd8798e13825d.tar.gz
43eaf66d9cb3748012b2dfd77da1b41f667c5c7602a56bea8186b796b215bde82d555d79ab053378c2222521396354dcce5cf23a78fa3b1456062c47771c8433 UnicodeData.txt-9.0.0
0283c7b0ff7dd99ae79f6ddac63513ce7d58ba31de506a3fee07af9b8882ddc275d0f9cb002381ba1e304bcacf252612fa16b21b85667422477e6b945b725899 find-syslibs
f812b05b7712975eaef0bf071dd2c1cd0b21c68b18d6a513878bb8fe877bfcadf9f4b9dd8cd27b6809378de5b250a010301e7a90169677d155ad2ba377e8b428 0001-hardened.patch
52bbaff51c7d0299e875294b43e23773bcdbe1bc7d02b670814d051bb4f1224bba507182944dc739adb07acd10d3d7f5a0ac7c270c28d3a760d36d90520a2f16 0002-verbose-build.patch
04ab09428c299ca1cc7f162d2344763d9b9136c209a6718df62689f421b4925af20a7b739513965dcbdcbf191577b15d48ece08d63c6db21f8742c02d56a2ea0 0003-no-clean-docs.patch
e1257c42b819bbdcdca74c7b912c1e0e43d6ba70c5e8625d6141bb2dcc49abbab5a8690046bf6cc14cb058b972a74cb60eea6162a48f280035f69154cd25d657 0005-fix-rpath-issues.patch
251b3b8f9d5292afbff5816f48f6595b61da95322f5fa137260cde5b0e578aa08c2b8fc28d8031cace306403637b21f80d30edca79978ae5493b170a0db7143c 0008-ldconfig-compat.patch
e989a1f39a68de3378cedd6d009ae07af1888eb7a39b2f18c2441c06b75305f0cff90d8bef28bb2d0d84422435713060ffe07f244994a2941d591c66ac1cb131 fix-or-disable-broken-tests.patch
8d4608dd90735ffdbdb04e1dc27fc9702624e45969ab379401d5b605cccf78dea9a79d713995358b552532ae938212ee0f032e5ce7e6c28edb30c49c02b58e7b test-disable-tests-using-fake_pty.patch
87267dd0402d8e70dd511bd79c7edfc3d1b5db7dbbdc9618832adb73ab7d34c6eed2c347fe74bf93757cc6b4f573ed7918d733b3bbf3653eab06f65a74428ff4 test-libgit2-skip-SSL_CERT_FILE.patch
fc5eef406d84b60fdf1c837aa1f5bd0e7a205c311853d0ae8b2b237e2eb750d7da2152632d866d372174918a3953746620f2bf130596ab2b027ca389a6816edd test-repl-disable-22176-20482.patch
98a25c49465771e72c1c0d114602c6937dbddac3e81255b310a0309083b4b365c35eb37f7a7c6128b3369dd1a071cc5c16c18aa9628dd355defd0fcb0f289706 makefile-dont-rebuild-docs.patch"
|