@kyak,
This is a strong claim to make. You should better be in contact with MathWorks support regarding your error:
I thought that as the expert on MATLAB who clearly understands MATLAB and knows what they are talking about, you would know that you are supposed to also submit OS info in the support ticket, which will immediately make the case invalid since Arch is unsupported.
You clearly don't understand that MATLAB, in fact, downloads a bunch of libraries and executable files and runs them as part of so called "MATLAB Service Host". This thing also updates itself (which is what probably happened). So no, the client sides changes, and does that without your intervention.
I clearly said SYSTEM updates?.. I did not update my system, so the breakage is not related to SYSTEM updates. Does that not make sense? I am well aware of the libraries MATLAB stores in $HOME
, the package even instructs you to patch one of them. And yes, I did play around with those.
But please refrain from doing this unless you know what you doing (which you don't).
I thank you for your immense input, and please refrain from commenting on any of my packages in such a tone ever again!
Pinned Comments
vitaliikuzhdin commented on 2025-09-30 19:38 (UTC)
After spending a few days trying to find the root cause, I have gathered the following points:
The breakage is not related to client-side system updates. Everything was working on 2025-09-27, but on 2025-09-28, with no changes to the system or the license, it stopped working.
The breakage is not related to client-side package updates. I downgraded to a cached
R2025a
release and encountered the same error. I also tried generating packages and manually installing older releases (R2025a
,R2024b
,R2024a
, ...) and all of them failed with the same error. Some of the older releases do not have ABI mismatch problems, which rules those out.The breakage is not related to
gnutls
,libstdc++
,libtiff
, or any other previously known issues, includingexecstack
. I tested different versions of these libraries and different package releases, and the problem remained.The breakage does not crash the application or the license server. In the past, MATLAB would crash and provide a stack trace and other details. This time it simply exits with an error code and no (public) instructions for fixing it.
The breakage behaves exactly like a damaged license server. Previously, the package broke after an update due to
execstack
issues, which required manually patching the license server library. That only worked when patched after installation and activation. When I attempted to patch it automatically in thePKGBUILD
, I received the same error seen now.Based on this, it appears MathWorks is now blocking unsupported operating systems through a license server check. This looks like another case of DRM causing unnecessary problems. For now, Arch users may need to use VMs, containers,
systemd-nspawn
, or other workarounds to make it run. If the next release (R2026a
) is also broken, it will be reasonable to assume this will never work legally, and I will request that this package be deleted. It was a good run, and I thank everyone who contributed.vitaliikuzhdin commented on 2025-07-16 13:12 (UTC) (edited on 2025-08-05 20:05 (UTC) by vitaliikuzhdin)
TODO:
Figure out the users and permissions. Currently,
/opt/MATLAB/${_release}
has777
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.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.
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.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?).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.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.
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.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 tomakedepend
onmatlab-$product
anddepend
onmatlab-$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.