Package Details: matlab 9.14.0.2337262-1

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
Upstream URL: https://www.mathworks.com
Keywords: computation matlab numerical visualization
Licenses: custom
Provides: matlab-bin
Submitter: ido
Maintainer: None
Last Packager: Rubo
Votes: 40
Popularity: 0.000567
First Submitted: 2015-08-15 09:33 (UTC)
Last Updated: 2023-09-19 12:20 (UTC)

Dependencies (2)

Required by (11)

Sources (3)

Pinned Comments

Rubo commented on 2022-09-25 13:31 (UTC) (edited on 2022-09-25 13:32 (UTC) by Rubo)

Hi, I'm tackling the problem with the add-ons installation, where the installer can't write to /usr/local/MATLAB/R2022b. I think we should avoid manual chmods or chowns, as it would be easy to mess up with the permissions, so I created a matlab group with rwx permissions, which owns the tree starting at /usr/local/MATLAB/R2022b. The PKGBUILD sets up the correct permissions, so after installing MATLAB, you should just add yourself to that group, re-login and then you should be able to install add-ons. So far I'm able to start the installer, download the add-on archive, but when I get to Performing post-installation tasks. This may take a few minutes..., an error occurs, and the installer logs End - Unsuccessful Exception: java.lang.InterruptedException without further information.

If anyone wants to help me resolve this issue, here is the repo: https://github.com/Rubo3/matlab-aur/tree/addons.

Rubo commented on 2022-09-16 13:52 (UTC) (edited on 2022-09-16 20:26 (UTC) by Rubo)

I updated the PKGBUILD to MATLAB R2022b. Sorry it took so long. Here are the main changes:

  • The dependencies have been updated according to namcap (thanks @sukanka), and are now managed via the matlab-meta meta package, now it's really easy to play around with them, as you don't have to rebuild the entire MATLAB package (thanks @bbaserdem). I still don't know the exact dependencies needed by MATLAB, as I don't use all its toolkits and whatnots. As always, please tell me if you find something.
  • The MATLAB installer now outputs its logs in install.log, under the same directory of the PKGBUILD, so that you can check whether something went wrong even if it didn't fail (e.g. when you need a new license or installation key because the major version changed).
  • I moved python-matlabengine to its own repo, which is built from upstream and works for the latest MATLAB versions. Currently it supports Python 3.9 and 3.10. If you have other needs, you can find the installation instructions here. Since the source files are still provided in your local MATLAB installation under $_instdir/extern/engines/python, building it and packaging it here was really just a convenience. I would like to know how many users of this PKGBUILD really need to spoof their Python version, so that we can reason about putting back that extra logic in the other PKGBUILD.
  • I also removed the Mesa workaround and the optional compilers, are they still needed?

silverbluep commented on 2020-09-21 16:39 (UTC) (edited on 2021-02-03 18:13 (UTC) by silverbluep)

READ THE README FILE IN THE REPO. NO AUR HELPERS SUPPORTED. ONLY ARCHLINUX AS OS IS SUPPORTED. YOU SHOULD BE BUILDING THIS PACKAGE USING MAKEPKG, NOTHING ELSE WILL BE SUPPORTED. Please only post issues here AFTER you followed the README.md. located at the root of this repo: https://aur.archlinux.org/cgit/aur.git/tree/README.md?h=matlab Due to a lot of comments; my spam filter is removing AUR notifications which keeps me from responding timely to issues in packaging, please don't post if you don't do some troubleshooting yourself. If your skill level is not up to troubleshooting (or following simple instructions as laid out by the readme), just install matlab locally, without using this package.

  • This PKGBUILD is NOT a minimal installation; as it has (hard) dependencies to gcc8 to force MATLAB to use system libraries. While generally not required; this PKGBUILD is trying to make MATLAB work with the system rather than with the mathworks-provided binaries. Currently it also does the python integration so that jupyter can be used with it.
  • This will only work with 2020b version; and will not work with earlier (or later) versions.
  • This PKGBUILD DOES NOT DOWNLOAD MATLAB FOR YOU. The EULA prevents redistribution of the software. Read the README.md file contained in the PKGBUILD repo. This is essentially a script to integrate an existing matlab installer with your archlinux system; it does NOT come with any software from Mathworks. You most likely cannot build this package using an AUR helper; you NEED to manually provide files; and to get the files you need a valid MATLAB licence. The process of fetching the files is described in detail in the README.md in the repo. (You can use any valid credentials to install the package using this PKGBUILD; including a licence file that does not match the machine; but you will need to reactivate matlab by using activate_matlab.sh with root privileges.)
  • Current users; please help me test and trim the dependencies list, and submit your personal fixes for issues if you have them so they can be added to the PKGBUILD. (Cuda related contributions; if needed would be good as I don't have nvidia GPU's to test compatibility.)
  • To use jupyter with matlab; you also need jupyter-matlab_kernel(-git).

Latest Comments

« First ‹ Previous 1 .. 8 9 10 11 12 13 14 15 16 17 18 .. 26 Next › Last »

jimmy_979 commented on 2020-12-03 11:21 (UTC)

Can I use license.dat file instead of license.lic?

kyak commented on 2020-10-02 08:56 (UTC)

@daniel_shub you can request a trial version of MATLAB here: https://www.mathworks.com/campaigns/products/trials.html

daniel_shub commented on 2020-09-30 16:32 (UTC)

@bbaserdem as you say, running my example check function from within the PKGBUILD is difficult because of potential differences in the hardware on the build machine and the target machine and it probably would not tell you much about how MATLAB will behave on the target machine. Running the check on the build machine also would require activating MATLAB on the build machine which introduces other problems. That is why I did not include the check function originally when I created the package.

I think having an additional script that tests the MATLAB installation on the target machine is probably the way to go. This way a system administrator who is asked to install MATLAB on the target machine can be reasonably confident that the software works on the target hardware even if they do not understand MATLAB. Of course this is extra work but it would resolve questions like the one by @rellieberman. I wish I had a newer version of MATLAB so that I would not have been forced to neglect the package for all those years and could help out with writing a test function, because as I think everybody realizes, getting MATLAB to work in Arch is tricky.

silverbluep commented on 2020-09-30 15:58 (UTC) (edited on 2020-09-30 16:03 (UTC) by silverbluep)

The activation and licensing completely is disengaged from the PKGBUILD. You have to do that manually yourself; which I documented in the README.md. If you install the created package on a machine that is different than the licensed one, you won't be able to run the package. And as long as you don't redistribute (and that is fully on you; not the AUR) the built package; you are compliant with the EULA. Just to be 100% sure; you need to remove the matlab tar.zst from the pacman cache; but you won't go to jail if you don't do that.

There are absolutely no files distributed through the AUR; this is just an installation script. This PKGBUILD is not a matlab installation hack; it's a matlab-pacman integration at best; and fixes some behavioral issues for you. This is not meant to be portable due to how the EULA works; you are not supposed to port it anywhere. However; what you can do is you can run this package on some computer B; but prepare the outlying package to be installed on computer A. As long as you keep your copies to yourself; you are fully within the EULA. Robustness wise; this is the recommended installation procedure from the MATLAB website regarding installing without an active internet connection so that I don't agree with; it's the proper way to do so.

The check function is a good suggestion for things like compatible python version and whatnot, I'll see what I can come up with based on your suggestion. Hardware tests would not be good practice; as there is no guarantee that the computer that will run the built package is the same as the one doing the packaging; not to mention the makepkg user usually does not have access to hardware interfaces. Not to mention not all hardware will support every feature (can't run gpu array on one of my PC's, hardware acceleration and audio is disabled on my server, not everyone wants all the features, etc.

Maintenance wise; I have seen this package neglected over the past few years. While i'm working at the lab I'm in (for another year) and while I actively use Arch as my desktop distribution; I am planning on maintaining this package and won't share maintenance with someone else unless I can trust them. But I will most likely maintain it for another year, a year and a half at most, and then pass it on to someone with motivation to provide.

daniel_shub commented on 2020-09-30 15:11 (UTC)

I think the package would benefit from a check function or an extra script that checks the installation. When I originally created the PKGBUILD, I toyed with including the following

checkdepends=(xorg-fonts-100dpi cuda)
check () {
  _matlab_cmd="/bin/matlab -nodesktop -nosplash -r"
  LC_ALL=C $matlab_cmd "version -java, exit" | grep Java
  LC_ALL=C $matlab_cmd "opengl info; exit" | grep Software
  LC_ALL=C $matlab_cmd "x=rand(10, 'single'); g=gpuArray(x); Success=isequal(gather(g), x), exit"  | sed -ne '/Success =/,$p'
  LC_ALL=C $matlab_cmd "doc doc; pause; exit"
  LC_ALL=C $matlab_cmd "xlabel('BIG FONT', 'FontSize', 42); ylabel('small font', 'FontSize', 12); pause; exit" > /dev/null
  LC_ALL=C $matlab_cmd "bench, pause; exit" > /dev/null
  LC_ALL=C $matlab_cmd "load handel; sound(y, Fs); pause(length(y)/Fs); exit" > /dev/null
}

but dealing with the licensing and activation in makepkg did not seem robust or portable, and probably violates the MATLAB ELUA. That said, I did manually run those tests (along with namcap) on my machine before updating the PKGBUILD to make sure it worked. I would incrementally add dependencies until the package would pass those tests.

Most of the above script is documented in the MATLAB Arch wiki and covers most of my MATLAB use cases. I just looked at the wiki now and it seems like a more complete check/test function would include tests for the compiler(s), serial port, static TLS issues, addon manager (this is apparently where the libselinux package is needed), live script, and webcam support. I do not have a license for newer versions of MATLAB, so can no longer maintain the package or really help with the tests.

silverbluep commented on 2020-09-30 14:52 (UTC)

I'll run it myself once it's OK for me to do so (when i'm not actively using matlab and free time) In the meantime; anyone wishing to skip libselinux installation can try removing from the dependency array for now.

rellieberman commented on 2020-09-30 14:17 (UTC)

Thanks for the quick response. I would just point out that the installer ran fine on my system without libselinux. Is there anything I could test to help make sure it works?

(I installed very few of matlabs components so maybe it's needed for some other component. but again installer worked fine)

silverbluep commented on 2020-09-30 14:04 (UTC) (edited on 2020-09-30 14:07 (UTC) by silverbluep)

libselinux is needed to run the installer; it's just the library component and is NOT selinux. You don't need to set it up. It is also listed as a dependency in the docker build images. I can double check if everything works fine without libselinux for 2020b and remove it if it doesnt break (less aur dependencies, the better); but previously with 2020a on arch; the installer would not run without libselinux which was confounding as there was no documentation on that dependence and installer. (Their official supported distro is Ubuntu; and I assume Ubuntu has libselinux by default)

Even if the main binary does not need it; you need to run the installer yourself at least once; so i consider that as a dependency.

rellieberman commented on 2020-09-30 13:57 (UTC) (edited on 2020-09-30 13:57 (UTC) by rellieberman)

Hi, thanks for this package :)

Does anyone know why libselinux is a dependency? I have just installed this package without the selinux dependency and all seems to be working fine. Seem like quite an overhead to have to install selinux just to run matlab.

silverbluep commented on 2020-09-29 21:43 (UTC)

@ruy16109 thanks for bringing attention. I replaced the name with mcc-matlab so it should not happen. If you can confirm it works fine that would be great.