Package Details: matlab-gcc13 1:R2025b+25.2.0.2998904-2

Git Clone URL: https://aur.archlinux.org/matlab.git (read-only, click to copy)
Package Base: matlab
Description: A high-level language for numerical computation and visualization (GCC13 runtime dependency)
Upstream URL: https://www.mathworks.com/products/matlab.html
Keywords: computation matlab numerical visualization
Licenses: custom:MATLAB EULA
Conflicts: matlab-gcc, matlab-r2025b-gcc
Provides: matlab-gcc, matlab-gcc-release, matlab-gcc-version, matlab-r2025b-gcc
Submitter: ido
Maintainer: vitaliikuzhdin
Last Packager: vitaliikuzhdin
Votes: 41
Popularity: 0.098341
First Submitted: 2015-08-15 09:33 (UTC)
Last Updated: 2025-09-27 20:52 (UTC)

Dependencies (6)

Required by (1)

  • matlab (requires matlab-gcc) (optional)

Sources (1)

Pinned Comments

vitaliikuzhdin commented on 2025-07-16 13:12 (UTC) (edited on 2025-08-05 20:05 (UTC) by vitaliikuzhdin)

TODO:

  1. Figure out the users and permissions. Currently, /opt/MATLAB/${_release} has 777 permissions, which is obviously undesired. It might be better to create a user group and require users to manually add themselves to it for security reasons.

  2. Improve the installer. For example, the current inotify watcher spams stdout and does not account for the end of the download/installation or the width of the terminal, which results in flaky output.

  3. Figure out the dependencies. The list of Debian/RHEL dependencies is public, but it includes some seemingly unneeded packages. This might be because they are required by dependent products/add-ons. Additionally, the current logic for removing bundled dependencies should probably be rewritten. Maintaining an exhaustive list for a single release is very difficult, and these components change without notice. Moreover, the current approach may go against the Arch KISS philosophy. Ideally, we should remove only the problematic components like Qt, XCB, libtiff, gcc-libs, fontconfig, etc.

  4. Add auto-discovery for packages written for MATLAB. My plan was to use /usr/lib/MATLAB/${_release} for release-specific modules and /usr/lib/MATLAB/common for shared (mostly architecture-independent) packages. However, load order matters, and "common" modules need to specify which releases they are compatible with. This means we need to implement our own logic for discovering and loading these, likely via hooks, shell scripts, and configuration files (perhaps TOML could work?).

  5. Fix the Python components. python-matlabengine does install the Python components built against the version of Python shipped by Arch. However, some proprietary CPython components are not included and are built against ancient Python versions. This likely requires version spoofing or some alternative approach.

  6. Write and upload packages for previous MATLAB releases. It is entirely possible to have multiple releases installed simultaneously. I have a few of these packages myself, but they are drafts and not suitable for upload to the AUR.

  7. Write and upload packages for MATLAB-dependent add-ons and products. When installing MATLAB required user intervention for source access, it was acceptable to break reproducibility and manually specify required products for installation. Now that we use MPM, it would be better to separate products into individual packages. These packages would install themselves and their dependencies into a specific location, then use appdata to install only the component's files. The problem is that MATLAB often includes conflicting files that need to be combined or overwritten. Obviously, we can't allow that, so a hook must be implemented to, for example, combine *.combine@matlab-simulink and replace *.replace@matlab-documentation files with backups. Needless to say, this is challenging to implement, so the previous approach (having users specify the product list) might still be preferred.

  8. Write and upload the matlab-runtime package. I have a draft, but the problem with this package is that it installs the runtime for every available product. Ideally, for source-built packages, we would want to makedepend on matlab-$product and depend on matlab-$product-runtime. However, this is not possible without splitting the runtime packages, which poses the challenges described above. I’ll try my best to revisit this sometime later.

vitaliikuzhdin commented on 2025-07-16 12:55 (UTC)

@aoneko, @Reexys, please read the post-installation instructions. If you've lost them, you can find the same information here.

Latest Comments

« First ‹ Previous 1 .. 15 16 17 18 19 20 21 22 23 24 25 .. 29 Next › Last »

hottea commented on 2018-10-04 03:16 (UTC)

@bbaserdem Hey, if you're license administrator, you could download the product via installer with download only option, see here for detail. A typical matlab tarball look like this:

matlab
├── activate.ini
├── archives/
├── bin/
├── etc/
├── help/
├── install
├── installer_input.txt
├── install_guide.pdf
├── java/
├── license_agreement.txt
├── licenses/
├── patents.txt
├── readme.txt
├── sys/
├── trademarks.txt
├── ui/
└── version.txt

Matlab products locate in archives directory.

silverbluep commented on 2018-10-01 16:50 (UTC)

I was wondering if anyone had any issues installing R2018b. I'm trying to create the tar file using the installer, but it looks like the toolboxes are installed somewhere i dont know. I used to install to a directory called faux, and cancelled the moment toolboxes finished, then merged the two directories. (Not working this time around, Im getting missisng file warnings on the installer)

I tried looking for guides regarding creating the tar but nada. Can anyone help out? (And maybe we can include instructions in PKGBUILD how to properly create tar from the installer?)

PanSi21 commented on 2018-09-29 16:54 (UTC)

:: Parsing SRCINFO (1/2): ncurses5-compat-libs :: Parsing SRCINFO (2/2): matlab ==> Creazione del pacchetto: ncurses5-compat-libs 6.1-1 (sab 29 set 2018 20:53:51 CEST) ==> Download dei sorgenti in corso... -> È stato trovato ncurses-6.1.tar.gz -> È stato trovato ncurses-6.1.tar.gz.sig ==> Validazione di source file con md5sums... ncurses-6.1.tar.gz ... Verificato ncurses-6.1.tar.gz.sig ... Ignorato ==> Validazione delle firme dei sorgenti con gpg in corso... ncurses-6.1.tar.gz ... Verificato ==> Pulizia in corso... ==> Creazione del pacchetto: matlab 9.4.0.813654-1 (sab 29 set 2018 20:53:51 CEST) ==> Download dei sorgenti in corso... -> Download di matlab.tar in corso... curl: (3) Invalid file://hostname/, expected localhost or 127.0.0.1 or none ==> ERRORE: Impossibile scaricare file://matlab.tar L'operazione sta per essere interrotta... Error downloading sources: matlab

hottea commented on 2018-08-16 12:41 (UTC)

@petronny If gcc6 is not listed as dep, then we should not modify mex opts in ${MATLAB}/bin/glnxa64/mexopts/LANG_glnxa64.xml. And gcc6 in AUR is gcc 6.4, not gcc 6.3 which is officially supported by MathWorks.

hottea commented on 2018-08-16 08:30 (UTC)

@petronny matlab.lic is available in your account center in MathWorks website. If you don't have one, then you could/should not install matlab.

petronny commented on 2018-08-15 10:42 (UTC) (edited on 2018-08-15 10:42 (UTC) by petronny)

1

For non-network installations, installation from a purchased DVD for example, nowhere will provide this matlab.lic file to users.

Current PKGBUILD requires that users have to run touch matlab.lic to generate a meaningless file before running makepkg.

2

Okay, there are 2 solutions,

  1. you could keep them and set gcc6 as a optional dependency.
  2. you could remove them and set gcc6 as a dependency.

Now gcc6 is removed from the official repositories.
It makes the current way, which is the solution 1, is acceptable now. So you can keep them.

3

Yes, you should set mex options by the way suggested by the wiki pages.

daniel_shub commented on 2018-08-14 15:32 (UTC)

@hottea I think it is a bad idea to include the license file(s) in the PKGBUILD and perform automated activation. License files are really complicated. You can have per user license files and per machine license files. A single installation of MATLAB can have multiple license files. For network installation, a license file is/was required, but for non-network installations, you don't/didn't need a license file. When I first wrote the PKGBUILD I used the license file for building a network installation, but did not include it in the package.

Activation is really stupid, as far as I could determine all it does is download the license file and copy it to the required directory 9it probably tell TMW lots of stuff also).

hottea commented on 2018-08-14 12:44 (UTC) (edited on 2018-08-14 12:45 (UTC) by hottea)

@petronny emm, you could update the PKGBUILD file. 1. I don't quite understand your point, user just need to provide matlab.lic in the same dir with PKGBUILD, and run makepkg.

2, 3. As for mex, should I remove the unused library files, and set mex opt? According to wiki page, matlab doesn't seem to respect the ${MATLAB}/bin/mexopts.sh customization. Instead it uses ${MATLAB}/bin/glnxa64/mexopts/LANG_glnxa64.xml file.

petronny commented on 2018-08-14 03:53 (UTC)

@hottea

1

You didn't answer me directly. Why matlab.lic is added as source for non-network installations? How could these users even get this file to run makepkg?

2
-  ## 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}

See $MATLABROOT/sys/os/glnxa64/README.libstdc++ and you will know why they are removed by @greyltc and me.

3

About mex. See @daniel_shub 's comment.
You should set the recommended compilers since you have listed gcc6 as an optional dependency for mex in PKGBUILD.

4

I guess it's not clear enough for @a36233

petronny commented on 2018-08-14 03:42 (UTC)

@daniel_shub

1
-  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

He removed the binaries.

2

Some of use are packaging and then distributing via a local (or non-local) repository (MATLAB restrictive EULA be damned)

I agree that including PKGEXT in the PKGBUILD is bad style. But it is acceptable for matlab since it cannot be re-distributed.