blob: be3626d53b5732afeb4f6c747ce7498e2e14a837 (
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
|
# Maintainer: Marco Rubin <marco.rubin@protonmail.com>
# Maintainer: sukanka <su975853527[AT]gmail.com>
# Contributor: Batuhan Baserdem <lastname dot firstname at gmail>
pkgbase=matlab
pkgname=(matlab)
pkgrel=2
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=('findutils' 'gendesk' 'icoutils' 'python')
provides=('matlab-bin' 'matlab' 'python-matlabengine')
source=(
'local://matlab.tar'
'local://matlab.fik'
'local://matlab.lic'
)
b2sums=(SKIP SKIP SKIP)
# Example list of products for a partial install. Check the README for details.
# Leave empty for a full installation.
_products=(
"MATLAB"
"Simulink"
)
_release='R2022b'
_instdir=usr/local/MATLAB/R2022b
pkgver() {
cat "${srcdir}/${pkgbase}/VersionInfo.xml" | sed --quiet 's|\s*<version>\(.*\)</version>\s*|\1|p'
}
prepare() {
msg2 "Release from tarball: ${_release}"
msg2 "Modifying installer settings..."
_fik=$(grep -o '[0-9-]*' "${srcdir}/matlab.fik")
_set="${srcdir}/${pkgbase}/installer_input.txt"
sed -i "s|^# destinationFolder=|destinationFolder=${srcdir}/build|" "${_set}"
sed -i "s|^# fileInstallationKey=|fileInstallationKey=${_fik}|" "${_set}"
sed -i "s|^# agreeToLicense=|agreeToLicense=yes|" "${_set}"
sed -i "s|^# outputFile=|outputFile=${srcdir}/../install.log|" "${_set}"
sed -i "s|improveMATLAB=yes|improveMATLAB=no|" "${_set}"
sed -i "s|^# licensePath=|licensePath=${srcdir}/matlab.lic|" "${_set}"
# Install specified products if _products is non-empty.
if [ "${#_products[@]}" -gt '0' ]; then
for _prod in "${_products[@]}"; do
sed -i 's|^#\(product.'"${_prod}"'\)$|\1|' "${_set}"
done
fi
msg2 "Generating desktop file..."
gendesk -f -n \
--pkgname "${pkgbase}" \
--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 "${pkgbase}" \
--exec 'matlab'
}
build() {
msg2 "Running original installer..."
# -inputFile makes the installation non-interactive.
"${srcdir}/${pkgbase}/install" -inputFile "${srcdir}/${pkgbase}/installer_input.txt"
}
package_matlab() {
msg2 "Moving files from build area to package area directly to save space..."
install -dm755 "$(dirname "${pkgdir}/${_instdir}")"
mv "${srcdir}/build" "${pkgdir}/${_instdir}"
msg2 "Installing license..."
install -Dm644 "${srcdir}/${pkgbase}/license_agreement.txt" \
"${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
msg2 "Symlinking executables..."
install -dm755 "${pkgdir}/usr/bin/"
for _executable in deploytool matlab mbuild activate_matlab.sh; do
ln -s "/${_instdir}/bin/${_executable}" "${pkgdir}/usr/bin/${_executable}"
done
# This would otherwise conflict with mixtex.
ln -s "/${_instdir}/bin/mex" "${pkgdir}/usr/bin/mex-${pkgbase}"
# This would otherwise conflict with Mathematica.
ln -s "/${_instdir}/bin/mcc" "${pkgdir}/usr/bin/mcc-${pkgbase}"
# Allow external software to find the MATLAB linter binary.
ln -s "/${_instdir}/bin/glnxa64/mlint" "${pkgdir}/usr/bin/mlint"
msg2 "Installing desktop files..."
install -Dm644 "${srcdir}/${pkgbase}.desktop" \
"${pkgdir}/usr/share/applications/${pkgbase}.desktop"
install -Dm644 "${srcdir}/${pkgbase}/bin/glnxa64/cef_resources/matlab_icon.png" \
"$pkgdir/usr/share/pixmaps/$pkgbase.png"
msg2 "Linking mex options to ancient libraries..."
_sysdir="bin/glnxa64/mexopts"
mkdir -p "${pkgdir}/${_instdir}/backup/${_sysdir}"
cp "${pkgdir}/${_instdir}/${_sysdir}/gcc_glnxa64.xml" \
"${pkgdir}/${_instdir}/backup/${_sysdir}/"
sed -i "s/gcc/${gccexc}/g" "${pkgdir}/${_instdir}/${_sysdir}/gcc_glnxa64.xml"
cp "${pkgdir}/${_instdir}/${_sysdir}/g++_glnxa64.xml" \
"${pkgdir}/${_instdir}/backup/${_sysdir}/"
sed -i "s/g++/${gppexc}/g" "${pkgdir}/${_instdir}/${_sysdir}/g++_glnxa64.xml"
cp "${pkgdir}/${_instdir}/${_sysdir}/gfortran.xml" \
"${pkgdir}/${_instdir}/backup/${_sysdir}/"
sed -i "s/gfortran/${gfortranexc}/g" "${pkgdir}/${_instdir}/${_sysdir}/gfortran.xml"
cp "${pkgdir}/${_instdir}/${_sysdir}/gfortran6.xml" \
"${pkgdir}/${_instdir}/backup/${_sysdir}/"
sed -i "s/gfortran/${gfortranexc}/g" "${pkgdir}/${_instdir}/${_sysdir}/gfortran6.xml"
msg2 "Removing unused libraries..."
# <MATLABROOT>/sys/os/glnxa64/README.libstdc++
_sysdir="sys/os/glnxa64"
install -dm755 "${pkgdir}/${_instdir}/backup/${_sysdir}"
mv "${pkgdir}/${_instdir}/${_sysdir}/"{libstdc++.so.*,libgcc_s.so.*,libgfortran.so.*,libquadmath.so.*} \
"${pkgdir}/${_instdir}/backup/${_sysdir}/"
mv "${pkgdir}/${_instdir}"/bin/glnxa64/libfreetype.so.* \
"${pkgdir}/${_instdir}"/backup/bin/glnxa64/
}
|