Skip to content
This repository has been archived by the owner on Feb 19, 2025. It is now read-only.

Commit

Permalink
Update to version 9.4.0.813654 (R2018a)
Browse files Browse the repository at this point in the history
* Supported compiler has been updated to gcc 6.3, though one use higer
version of gcc
* Update products list
* Automatic activative right after installation
* Use system's libstdc++ & libfreetype
* Change installation directory to `/opt/matlab`
  • Loading branch information
hubutui committed Jul 22, 2018
1 parent 1942fe9 commit 7eaf02b
Showing 1 changed file with 154 additions and 152 deletions.
306 changes: 154 additions & 152 deletions PKGBUILD
Original file line number Diff line number Diff line change
@@ -1,12 +1,20 @@
# Maintainer: Grey Christoforo <first name at last name dot net>
# Maintainer: Darcy Hu <hot123tea123@gmail.com>

## This PKGBUILD creates an Arch Linux package for the proprietary MATLAB application. A license from The MathWorks is needed in order to both build the package and to run MATLAB once the package is installed. In order to build the package the user must supply a plain text file installation key and the software. For network installations, in addition to the file installation key, a license file needs to be used for the installation. The tar archive file can be generated from an ISO downloaded from The MathWorks, generated from the official DVD, or created by using the interactive installer to download the toolboxes (installation can be made to a temporary directory and canceled once the toolboxes are downloaded). The contents of the tar archive must include: ./archives/ ./bin/ ./etc/ ./help/ ./java/ /sys ./activate.ini ./install ./installer_input.txt
## This PKGBUILD creates an Arch Linux package for the proprietary MATLAB application.
## In order to build the package the user must supply a plain text file installation key as file `matlab.fik`, the license file as `matlab.lic`, the software tarball as `matlab.tar`.
## To perform a network install set $_networkinstall to true.

## The default installation behavior is to install all licensed products whether or not they are available in the tar file. To install only a subset of licensed products either provide a $_products array or set $_partialinstall and remove unwanted entries from the provided $_products array. To perform a network install set $_networkinstall.
_networkinstall=false

# partial install
_partialinstall=false

pkgname=matlab
pkgver=9.3.0.713579
pkgrel=2
# install dir
_instdir="/opt/${pkgname}"
pkgver=9.4.0.813654
pkgrel=1
pkgdesc='A high-level language for numerical computation and visualization'
arch=('x86_64')
url='http://www.mathworks.com'
Expand All @@ -22,171 +30,165 @@ depends=('gconf'
'libxtst'
'ncurses5-compat-libs'
'nss'
'gcc5'
'portaudio'
'python2'
'qt5-svg'
'qt5-webkit'
'qt5-websockets'
'qt5-x11extras'
'xerces-c')
optdepends=('gcc49: For MEX support')
optdepends=('gcc6: For MEX support')

source=("file://matlab.tar"
"file://matlab.fik")
"file://matlab.fik"
"file://matlab.lic"
"matlab.png::https://upload.wikimedia.org/wikipedia/commons/2/21/Matlab_Logo.png")
md5sums=('SKIP'
'SKIP')
'SKIP'
'SKIP'
'cf28632239db6e02bc09bcca6bf5360f')
PKGEXT='.pkg.tar'

#_networkinstall=true

## For network installations, apparently, a license file needs to be used for the installation.
if [ ! -z ${_networkinstall+isSet} ]; then
source+=("file://license.dat")
md5sums+=('SKIP')
fi

prepare() {
msg2 'Creating desktop file'
gendesk -f -n --pkgname "${pkgname}" --pkgdesc "${pkgdesc}" --categories "Development;Education;Science;Mathematics;IDE" > /dev/null
sed -i "/^Exec=/ s,$, -desktop," "${srcdir}/${pkgname}.desktop"

msg2 'Extracting file installation key'
_fik=$(grep -o [0-9-]* ${pkgname}.fik)

msg2 'Modifying the installer settings'
sed -i "s,^# destinationFolder=,destinationFolder=${pkgdir}/opt/tmw/${pkgname}/," "${srcdir}/installer_input.txt"
sed -i "s,^# agreeToLicense=,agreeToLicense=yes," "${srcdir}/installer_input.txt"
sed -i "s,^# mode=,mode=silent," "${srcdir}/installer_input.txt"
sed -i "s,^# fileInstallationKey=,fileInstallationKey=${_fik}," "${srcdir}/installer_input.txt"
if [ ! -z ${_networkinstall+isSet} ]; then
sed -i "s,^# licensePath=,licensePath=${srcdir}/license.dat," "${srcdir}/installer_input.txt"
fi
if [ ! -z ${_products+isSet} ]; then
msg2 'Building a package with a subset of the licensed products.'
for _product in "${_products[@]}"; do
sed -i "/^#product.${_product}$/ s/^#//" "${srcdir}/installer_input.txt"
done
fi
# using system's libstdc++
# using system's libfreetype for CJK font
msg2 'Creating desktop file'
gendesk -f -n --pkgname "${pkgname}" \
--pkgdesc "${pkgdesc}" \
--categories "Development;Education;Science;Mathematics;IDE" \
--exec 'env LD_PRELOAD=/usr/lib/libfreetype.so.6:/usr/lib/libstdc++.so.6 /opt/matlab/bin/matlab -desktop'

msg2 'Extracting file installation key'
_fik=$(grep -o [0-9-]* ${pkgname}.fik)

msg2 'Modifying the installer settings'
sed -i "s,^# destinationFolder=,destinationFolder=${pkgdir}/${_instdir}," "${srcdir}/${pkgname}/installer_input.txt"
sed -i "s,^# agreeToLicense=,agreeToLicense=yes," "${srcdir}/${pkgname}/installer_input.txt"
sed -i "s,^# mode=,mode=silent," "${srcdir}/${pkgname}/installer_input.txt"
sed -i "s,^# fileInstallationKey=,fileInstallationKey=${_fik}," "${srcdir}/${pkgname}/installer_input.txt"

if ${_networkinstall}; then
sed -i "s,^# licensePath=,licensePath=${srcdir}/matlab.lic," "${srcdir}/${pkgname}/installer_input.txt"
else
sed -i "s,^# activationPropertiesFile=,activationPropertiesFile=${srcdir}/${pkgname}/activate.ini," "${srcdir}/${pkgname}/installer_input.txt"
sed -i "s,^activateCommand=,activateCommand=activateOffline," "${srcdir}/${pkgname}/activate.ini"
sed -i "s,^licenseFile=,licenseFile=${srcdir}/matlab.lic," "${srcdir}/${pkgname}/activate.ini"
fi

if [ ! -z ${_products+isSet} ]; then
msg2 'Building a package with a subset of the licensed products.'
for _product in "${_products[@]}"; do
sed -i "/^#product.${_product}$/ s/^#//" "${srcdir}/${pkgname}/installer_input.txt"
done
fi
}

package() {
msg2 'Starting MATLAB installer'
"${srcdir}/install" -t -inputFile "${srcdir}/installer_input.txt" -mode silent &> /dev/null

msg2 'Installing license'
install -D -m644 "${pkgdir}/opt/tmw/${pkgname}/license_agreement.txt" "${pkgdir}/usr/share/licenses/tmw/${pkgname}/LICENSE"

msg2 'Creating links for license.dat'
mv "${pkgdir}/opt/tmw/${pkgname}/licenses" "${pkgdir}/opt/tmw/${pkgname}/licenses.bak"
ln -s "/etc/tmw/${pkgname}/licenses/" "${pkgdir}/opt/tmw/${pkgname}/licenses"

msg2 'Creating links for executables'
install -d -m755 "${pkgdir}/usr/bin/"
for _executable in deploytool matlab mbuild mcc mex; do
ln -s "/opt/tmw/${pkgname}/bin/${_executable}" "${pkgdir}/usr/bin/${_executable}"
done

msg2 'Installing desktop files'
install -D -m644 "${pkgname}.desktop" "${pkgdir}/usr/share/applications/${pkgname}.desktop"
install -D -m644 "${pkgdir}/opt/tmw/${pkgname}/help/matlab/matlab_env/matlab_desktop_icon.png" "${pkgdir}/usr/share/pixmaps/${pkgname}.png"

msg2 'Configuring mex options'
sed -i "s#CC='gcc'#CC='gcc-4.7'#g" "${pkgdir}/opt/tmw/${pkgname}/bin/mexopts.sh"
sed -i "s#CXX='g++'#CXX='g++-4.7'#g" "${pkgdir}/opt/tmw/${pkgname}/bin/mexopts.sh"
sed -i "s#FC='gfortran'#FC='gfortran-4.7'#g" "${pkgdir}/opt/tmw/${pkgname}/bin/mexopts.sh"
msg2 'Starting MATLAB installer'
"${srcdir}/${pkgname}/install" -inputFile "${srcdir}/${pkgname}/installer_input.txt"

## See $MATLABROOT/sys/os/glnxa64/README.libstdc++
msg2 'Removing unused library files'
rm ${pkgdir}/opt/tmw/${pkgname}/sys/os/glnxa64/{libstdc++.so.6.0.20,libstdc++.so.6,libgcc_s.so.1,libgfortran.so.3.0.0,libgfortran.so.3,libquadmath.so.0.0.0,libquadmath.so.0}
msg2 'Installing license'
install -D -m644 "${srcdir}/${pkgname}/license_agreement.txt" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"

# make sure MATLAB can find libgfortran.so.3
sed -i 's,LD_LIBRARY_PATH="`eval echo $LD_LIBRARY_PATH`",LD_LIBRARY_PATH="`eval echo $LD_LIBRARY_PATH`:/usr/lib/gcc/x86_64-pc-linux-gnu/5.5.0",g' "${pkgdir}/opt/tmw/matlab/bin/matlab"
msg2 'Installing desktop files'
install -D -m644 "${pkgname}.desktop" "${pkgdir}/usr/share/applications/${pkgname}.desktop"
install -D -m644 "${srcdir}/${pkgname}.png" "${pkgdir}/usr/share/pixmaps/${pkgname}.png"
}

if [ ! -z ${_partialinstall+isSet} ] && [ -z ${_products+isSet} ]; then
_products=(
"Aerospace_Blockset"
"Aerospace_Toolbox"
"Antenna_Toolbox"
"Bioinformatics_Toolbox"
"Communications_System_Toolbox"
"Computer_Vision_System_Toolbox"
"Control_System_Toolbox"
"Curve_Fitting_Toolbox"
"DO_Qualification_Kit"
"DSP_System_Toolbox"
"Data_Acquisition_Toolbox"
"Database_Toolbox"
"Datafeed_Toolbox"
"Econometrics_Toolbox"
"Embedded_Coder"
"Filter_Design_HDL_Coder"
"Financial_Instruments_Toolbox"
"Financial_Toolbox"
"Fixed_Point_Designer"
"Fuzzy_Logic_Toolbox"
"Gauges_Blockset"
"Global_Optimization_Toolbox"
"HDL_Coder"
"HDL_Verifier"
"IEC_Certification_Kit"
"Image_Acquisition_Toolbox"
"Image_Processing_Toolbox"
"Instrument_Control_Toolbox"
"LTE_System_Toolbox"
"MATLAB"
"MATLAB_Coder"
"MATLAB_Compiler"
"MATLAB_Compiler_SDK"
"MATLAB_Distributed_Computing_Server"
"MATLAB_Production_Server"
"MATLAB_Report_Generator"
"Mapping_Toolbox"
"Model_Predictive_Control_Toolbox"
"Model_Based_Calibration_Toolbox"
"Neural_Network_Toolbox"
"OPC_Toolbox"
"Optimization_Toolbox"
"Parallel_Computing_Toolbox"
"Partial_Differential_Equation_Toolbox"
"Phased_Array_System_Toolbox"
"Polyspace_Bug_Finder"
"Polyspace_Code_Prover"
"RF_Toolbox"
"Robotics_System_Toolbox"
"Robust_Control_Toolbox"
"Signal_Processing_Toolbox"
"SimBiology"
"SimDriveline"
"SimElectronics"
"SimEvents"
"SimHydraulics"
"SimMechanics"
"SimPowerSystems"
"SimRF"
"Simscape"
"Simulink"
"Simulink_3D_Animation"
"Simulink_Code_Inspector"
"Simulink_Coder"
"Simulink_Control_Design"
"Simulink_Design_Optimization"
"Simulink_Design_Verifier"
"Simulink_Desktop_Real_Time"
"Simulink_PLC_Coder"
"Simulink_Real_Time"
"Simulink_Report_Generator"
"Simulink_Test"
"Simulink_Verification_and_Validation"
"Spreadsheet_Link_EX"
"Stateflow"
"Statistics_and_Machine_Learning_Toolbox"
"Symbolic_Math_Toolbox"
"System_Identification_Toolbox"
"SystemTest"
"Trading_Toolbox"
"Vehicle_Network_Toolbox"
"Vision_HDL_Toolbox"
"Wavelet_Toolbox"
)
if ${_partialinstall} && [ -z ${_products+isSet} ]; then
_products=(
"Aerospace_Blockset"
"Aerospace_Toolbox"
"Antenna_Toolbox"
"Audio_System_Toolbox"
"Automated_Driving_System_Toolbox"
"Bioinformatics_Toolbox"
"Communications_System_Toolbox"
"Computer_Vision_System_Toolbox"
"Control_System_Toolbox"
"Curve_Fitting_Toolbox"
"DO_Qualification_Kit"
"DSP_System_Toolbox"
"Data_Acquisition_Toolbox"
"Database_Toolbox"
"Datafeed_Toolbox"
"Econometrics_Toolbox"
"Embedded_Coder"
"Filter_Design_HDL_Coder"
"Financial_Instruments_Toolbox"
"Financial_Toolbox"
"Fixed_Point_Designer"
"Fuzzy_Logic_Toolbox"
"GPU_Coder"
"Global_Optimization_Toolbox"
"HDL_Coder"
"HDL_Verifier"
"IEC_Certification_Kit"
"Image_Acquisition_Toolbox"
"Image_Processing_Toolbox"
"Instrument_Control_Toolbox"
"LTE_HDL_Toolbox"
"LTE_System_Toolbox"
"MATLAB"
"MATLAB_Coder"
"MATLAB_Compiler"
"MATLAB_Compiler_SDK"
"MATLAB_Distributed_Computing_Server"
"MATLAB_Production_Server"
"MATLAB_Report_Generator"
"Mapping_Toolbox"
"Model_Predictive_Control_Toolbox"
"Model_Based_Calibration_Toolbox"
"Neural_Network_Toolbox"
"OPC_Toolbox"
"Optimization_Toolbox"
"Parallel_Computing_Toolbox"
"Partial_Differential_Equation_Toolbox"
"Phased_Array_System_Toolbox"
"Polyspace_Bug_Finder"
"Polyspace_Code_Prover"
"Powertrain_Blockset"
"Predictive_Maintenance_Toolbox"
"RF_Blockset"
"RF_Toolbox"
"Risk_Management_Toolbox"
"Robotics_System_Toolbox"
"Robust_Control_Toolbox"
"Signal_Processing_Toolbox"
"SimBiology"
"SimEvents"
"Simscape"
"Simscape_Driveline"
"Simscape_Electronics"
"Simscape_Fluids"
"Simscape_Multibody"
"Simscape_Power_Systems"
"Simulink"
"Simulink_3D_Animation"
"Simulink_Check"
"Simulink_Code_Inspector"
"Simulink_Coder"
"Simulink_Control_Design"
"Simulink_Coverage"
"Simulink_Design_Optimization"
"Simulink_Design_Verifier"
"Simulink_Desktop_Real_Time"
"Simulink_PLC_Coder"
"Simulink_Real_Time"
"Simulink_Report_Generator"
"Simulink_Requirements"
"Simulink_Test"
"Spreadsheet_Link"
"Stateflow"
"Statistics_and_Machine_Learning_Toolbox"
"Symbolic_Math_Toolbox"
"System_Identification_Toolbox"
"Text_Analytics_Toolbox"
"Trading_Toolbox"
"Vehicle_Dynamics_Blockset"
"Vehicle_Network_Toolbox"
"Vision_HDL_Toolbox"
"WLAN_System_Toolbox"
"Wavelet_Toolbox"
)
fi

0 comments on commit 7eaf02b

Please sign in to comment.