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: sukanka
Last Packager: Rubo
Votes: 40
Popularity: 0.076448
First Submitted: 2015-08-15 09:33 (UTC)
Last Updated: 2023-09-19 12:20 (UTC)

Dependencies (2)

Required by (10)

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 .. 6 7 8 9 10 11 12 13 14 15 16 .. 26 Next › Last »

Hork commented on 2021-01-28 19:06 (UTC)

Not really, I created the tar bar exactly as the md instructed. However, the downloaded matlab folder does not have that file in the first place.

silverbluep commented on 2021-01-28 16:26 (UTC)

I assume this is a problem with the way you created the tar file; did you follow the instructions as exactly stated in the README provided by the repo? I would delete the one you have and recreate the needed files.

Hork commented on 2021-01-28 10:47 (UTC) (edited on 2021-01-28 10:49 (UTC) by Hork)

I straced that matlab/bin/glnxa64/install_unix, stat("/tmp/makepkg/matlab/src/matlab/sys/java/jre/glnxa64/jre/lib/security/jssecacerts", 0x7fffe1f6baf0) = -1 ENOENT (No such file or directory) is what I suspect wrong. Do you have this file in your downloaded matlab folder?

silverbluep commented on 2021-01-27 19:44 (UTC) (edited on 2021-01-27 19:47 (UTC) by silverbluep)

What is that installer? I can't help if you are not being specific. The installer for MATLAB does not print to stdout; and that's on mathworks nothing I can do. There should be some installer log somewhere; but I don't know where the installer puts it. Your problem is not due to python; because anything to do with python is printed on stdout when you run makepkg.

You don't need to do any chrooting; install dependencies, bring together the neccessary files and mimic the PKGBUILD steps (on your home directory; NOT on your main system.) Be sure to read the README.md in the repo, and make sure you are not using ANY aur helper.

Hork commented on 2021-01-27 17:30 (UTC)

That is the thing, I don't actually know whats wrong with that installer, it does not have any log. I don't even know how to debug this, I might need to do some chroot to mimic makepkg and go through build steps one by one.

silverbluep commented on 2021-01-26 19:55 (UTC) (edited on 2021-01-26 19:59 (UTC) by silverbluep)

that is not very specific; what issue are you having? Either way; make sure you rebuild the aur dependencies and jupyter-matlab_kernel-git again so that everything is using python 3.9 (you need to rebuild python-dependent aur packages again; even if their pkgbuild are not updated)

I built this package just fine; with the up to date versions of dependencies. And everything works. So curious as to what is not working.

Hork commented on 2021-01-26 18:39 (UTC)

I still have that python issue, with latest pkgbuild.

Andy2 commented on 2021-01-22 20:27 (UTC)

Hi,

I ran into the same Python issue and I "backported" the Python 3.8 faking for Python 3.9. Matlab installed and I was able to start a Matlab engine from an iPython shell, so I would suspect it works.

I even installed the Update 3 as root after Matlab told me I could do that from the little bell icon menu and it still works.

Patch:

diff --git a/PKGBUILD b/PKGBUILD
index b6a40eb..87f79b8 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -150,22 +150,53 @@ build() {
   #   cause the installation to be non-interactive
   "${srcdir}/${pkgname}/install" -inputFile "${srcdir}/${pkgname}/installer_input.txt"

+  # Create spoofing for Python API
+  # https://aur.archlinux.org/packages/matlab-engine-for-python/
+  cd "${srcdir}/build/extern/engines/python"
+  # Getting appropriate python version for spoofing
+  _matminor="$(find "${srcdir}/build/extern/engines/python" \
+    -name 'matlabengineforpython3*.so' |
+    sort |
+    sed 's|.*matlabengineforpython3_\([0-9]\)\.so|\1|g' |
+    tail -1)"
+  echo 'import sys' > "${srcdir}/sitecustomize.py"
+  echo "sys.version_info = (3, ${_matminor}, 0)" >> "${srcdir}/sitecustomize.py"
+
   # Build the python API
   cd "${srcdir}/build/extern/engines/python"
-  python setup.py build
+  PYTHONPATH="${srcdir}" python setup.py build
 }

 package() {
   # Package the python API
   cd "${srcdir}/build/extern/engines/python"
-  python setup.py install --root="${pkgdir}" --optimize 1 --skip-build
-  # Fix erronous referances in the _arch.txt files
+  PYTHONPATH="${srcdir}" python setup.py install --root="${pkgdir}" --optimize 1 --skip-build
+
+  # Spoofing trick to fool matlab into believing python 3.9 is supported
+  _matminor="$(find "${srcdir}/build/extern/engines/python" \
+    -name 'matlabengineforpython3*.so' |
+    sort |
+    sed 's|.*matlabengineforpython3_\([0-9]\)\.so|\1|g' |
+    tail -1)"
+  _prefix="$(python -c 'import sys; print(sys.prefix)')"
+  _pytminor="$(python -c 'import sys; print(sys.version_info.minor)')"
+
+  # Correct file names
+  if [[ "${_pytminor}" != "${_matminor}" ]]; then
+    mv "${pkgdir}/${_prefix}/lib/python3".{"${_matminor}","${_pytminor}"}
+    _egginfo="$(ls "${pkgdir}/${_prefix}/lib/python3.${_pytminor}/site-packages/"*"-py3.${_matminor}.egg-info")"
+    mv "${_egginfo}" "${_egginfo%py3."${_matminor}".egg-info}py3.${_pytminor}.egg-info"
+    sed -i "s|sys.version_info|(3, $_matminor, 0)|" \
+      "${pkgdir}/${_prefix}/lib/python3.${_pytminor}/site-packages/matlab/engine/__init__.py"
+  fi
+
+  # Fix erronous references in the _arch.txt files
   _prefix="$(python -c 'import sys; print(sys.prefix)')"
   errstr="${srcdir}/build/extern/engines/python/"
   trustr="${instdir}/extern/engines/python/"
   for _dir in \
     "${srcdir}/build/extern/engines/python/build/lib/matlab/engine" \
-    "${pkgdir}/${_prefix}/lib/python3.8/site-packages/matlab/engine" \
+    "${pkgdir}/${_prefix}/lib/python3.${_pytminor}/site-packages/matlab/engine" \
     ; do
     sed -i "s|${errstr}|${trustr}|" "${_dir}/_arch.txt"
   done

silverbluep commented on 2021-01-06 03:10 (UTC)

@hawath; when I last updated the package; gcc8 was not in AUR and I do not have any intention to package that. It seems gcc8 was submitted to AUR a month after I installed the package. I'll also change the gcc version when I fix the python issue.