blob: 523a31750bbbe8f91522ed78fb4e885ada31fbe0 (
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
|
# Maintainer: Marco Rubin <marco.rubin@protonmail.com>
# Maintainer: sukanka <su975853527[AT]gmail.com>
# Contributor: Batuhan Baserdem <lastname dot firstname at gmail>
pkgname=matlab
pkgrel=3
pkgver=9.13.0.2049777
pkgdesc='A high-level language for numerical computation and visualization'
arch=(x86_64)
url='https://www.mathworks.com'
license=(custom)
depends=(matlab-meta)
makedepends=('gendesk')
provides=('matlab' 'matlab-bin')
source=('local://matlab.tar' 'local://matlab.fik' 'local://matlab.lic')
b2sums=(SKIP SKIP SKIP)
# Example list of products for a partial install. Leave empty for a full installation.
_products=(
'MATLAB'
'Simulink'
)
pkgver() {
cat "$srcdir/matlab/VersionInfo.xml" | sed --quiet 's|\s*<version>\(.*\)</version>\s*|\1|p'
}
prepare() {
msg2 "Modifying installer settings..."
_fik=$(grep -o '[0-9-]*' "$srcdir/matlab.fik")
_options="$srcdir/matlab/installer_input.txt"
sed -i "s|^# destinationFolder=|destinationFolder=$srcdir/build|" "$_options"
sed -i "s|^# fileInstallationKey=|fileInstallationKey=$_fik|" "$_options"
sed -i "s|^# agreeToLicense=|agreeToLicense=yes|" "$_options"
sed -i "s|^# outputFile=|outputFile=$srcdir/../install.log|" "$_options"
sed -i "s|improveMATLAB=yes|improveMATLAB=no|" "$_options"
sed -i "s|^# licensePath=|licensePath=$srcdir/matlab.lic|" "$_options"
# Install specified products if _products is non-empty.
if [ "${#_products[@]}" -gt '0' ]; then
for _prod in "${_products[@]}"; do
sed -i 's|^#\(product.'"$_prod"'\)$|\1|' "$_options"
done
fi
}
build() {
msg2 "Running original installer..."
# -inputFile makes the installation non-interactive.
"$srcdir/matlab/install" -inputFile "$srcdir/matlab/installer_input.txt"
}
package() {
_release="$(cat "$srcdir/matlab/VersionInfo.xml" \
| sed --quiet 's|\s*<release>\(.*\)</release>\s*|\1|p')"
_instdir=usr/local/MATLAB/$_release
install -dm755 "$(dirname "$pkgdir/$_instdir")"
msg2 "Moving files from build area to package area directly to save space..."
mv "$srcdir/build" "$pkgdir/$_instdir"
msg2 "Installing license..."
install -Dm644 "$srcdir/matlab/license_agreement.txt" \
"$pkgdir/usr/share/licenses/matlab/LICENSE"
msg2 "Generating desktop file..."
gendesk -f -n \
--pkgname 'matlab' \
--pkgdesc "$pkgdesc" \
--name "MATLAB $_release" \
--genericname 'MATLAB' \
--comment 'Programming and numeric computing platform' \
--categories 'Development;Education;Science;Mathematics;IDE' \
--mimetypes 'application/x-matlab-data;text/x-matlab' \
--icon 'matlab' \
--exec 'matlab'
msg2 "Installing desktop files..."
install -Dm644 "$srcdir/matlab.desktop" \
"$pkgdir/usr/share/applications/matlab.desktop"
install -Dm644 "$srcdir/matlab/bin/glnxa64/cef_resources/matlab_icon.png" \
"$pkgdir/usr/share/pixmaps/matlab.png"
msg2 "Symlinking executables..."
install -dm755 "$pkgdir/usr/bin/"
for _exe in deploytool matlab mbuild activate_matlab.sh; do
ln -s "/$_instdir/bin/$_exe" "$pkgdir/usr/bin/$_exe"
done
# This would otherwise conflict with mixtex.
ln -s "/$_instdir/bin/mex" "$pkgdir/usr/bin/mex-matlab"
# This would otherwise conflict with Mathematica.
ln -s "/$_instdir/bin/mcc" "$pkgdir/usr/bin/mcc-matlab"
# Allow external software to find the MATLAB linter binary.
ln -s "/$_instdir/bin/glnxa64/mlint" "$pkgdir/usr/bin/mlint"
msg2 "Forcing MATLAB to use system libraries..."
_srcdir="$pkgdir/$_instdir/bin/glnxa64"
_dstdir="$pkgdir/$_instdir/backup/bin/glnxa64"
install -dm755 "$_dstdir"
mv "$_srcdir"/libfreetype.so.* "$_dstdir"
mv "$_srcdir"/libtiff.so.* "$_dstdir"
_srcdir="$pkgdir/$_instdir/bin/glnxa64/mexopts"
_dstdir="$pkgdir/$_instdir/backup/bin/glnxa64/mexopts"
install -dm755 "$_dstdir"
install -Dm644 "$_srcdir/gcc_glnxa64.xml" "$_dstdir"
install -Dm644 "$_srcdir/g++_glnxa64.xml" "$_dstdir"
install -Dm644 "$_srcdir/gfortran.xml" "$_dstdir"
install -Dm644 "$_srcdir/gfortran6.xml" "$_dstdir"
sed -i "s/gcc/gcc-10/g" "$_srcdir/gcc_glnxa64.xml"
sed -i "s/g++/g++-10/g" "$_srcdir/g++_glnxa64.xml"
sed -i "s/gfortran/gfortran-10/g" "$_srcdir/gfortran.xml"
sed -i "s/gfortran/gfortran-10/g" "$_srcdir/gfortran6.xml"
_srcdir="$pkgdir/$_instdir/sys/os/glnxa64"
_dstdir="$pkgdir/$_instdir/backup/sys/os/glnxa64"
install -dm755 "$_dstdir"
# These are obsolete libraries
mv "$_srcdir"/libstdc++.so.* "$_dstdir"
mv "$_srcdir"/libgcc_s.so.* "$_dstdir"
mv "$_srcdir"/libgfortran.so.* "$_dstdir"
mv "$_srcdir"/libquadmath.so.* "$_dstdir"
}
|