Skip to content

Conversation

@planetmija
Copy link

...figuration and version-specific executable names

The executable names have changed for Mathematica 14. I asked Claude Sonnet 4.5 to modify the script using the installer output below. I also added an option to specify the licence file via the environment variable EB_MATHEMATICA_LICENSE_SERVER.

It's 100% AI, but it works and looks OK to me. Feel free to make changes.

----------------------------------------------------------------------------------------------------------------------------
                                                  Wolfram 14.2 Installer 
----------------------------------------------------------------------------------------------------------------------------

Copyright (c) 1988-2025 Wolfram Research, Inc. All rights reserved.

WARNING: Wolfram is protected by copyright law and international treaties. Unauthorized reproduction or distribution
may result in severe civil and criminal penalties and will be prosecuted to the maximum extent possible under law.

Enter the installation directory, or press ENTER to select /usr/local/Wolfram/Wolfram/14.2:
> /tmp/ma/14

Create directory (y/n)?
> y

Now installing...

[*************************************************************************************************************************]

Type the directory path in which the Wolfram script(s) will be created, or press ENTER to select /usr/local/bin:
> /tmp/ma/14/bin

Create directory (y/n)?
> y


WolframScript allows Wolfram Language code to be run from the command line and from self-executing script files. It is
always available from /tmp/ma/14/Executables/wolframscript. WolframScript system integration makes the wolframscript binary
accessible from any terminal, and allows .wls script files to be executed by double-clicking them in the file manager.

NOTE: Because you are not logged in with root privileges, you cannot install the optional WolframScript system
integration at this time.  To do this after installation, run

    rpm -Uvh "/tmp/ma/14/SystemFiles/Installation/wolframscript-1.13-20250307871.x86_64.rpm"

as root.

		 Extracting installer ...

**************************************************|100%

--------------------------------------------------------------------------------
          Wolfram Language 14.2 English Documentation 14.2 Installer 
--------------------------------------------------------------------------------

Copyright (c) 1988-2024 Wolfram Research, Inc. All rights reserved.

WARNING: Wolfram Language 14.2 English Documentation is protected by copyright
law and international treaties. Unauthorized reproduction or distribution
may result in severe civil and criminal penalties and will be prosecuted to
the maximum extent possible under law.

You are not logged in with root privilege. Only the current user of this
computer will be able to use this software.

Y


The selected directory, /home/.../.Wolfram/Documentation/14.2/en-us,
contains files and/or directories that may be overwritten during
installation. If you have any files you wish to keep in this directory,
you should exit the installer and move the files to a separate directory
before continuing.

Now installing...

[*****************************************************************************]

…figuration and version-specific executable names
@planetmija
Copy link
Author

I checked the older versions on another cluster and obtained the following results. wolfram --version works for versions 12.2.1 to 14.2.1. Alternatively, one could switch to wolframnb --version for v14.2.1.

My cluster v14.2.1:

~> ll /opt/eb/genoa/software/Mathematica/14.2.1/bin/
math -> /opt/eb/genoa/software/Mathematica/14.2.1/Executables/math*
MathKernel -> /opt/eb/genoa/software/Mathematica/14.2.1/Executables/MathKernel*
mcc -> /opt/eb/genoa/software/Mathematica/14.2.1/Executables/mcc*
wolfram -> /opt/eb/genoa/software/Mathematica/14.2.1/Executables/wolfram*
WolframKernel -> /opt/eb/genoa/software/Mathematica/14.2.1/Executables/WolframKernel*
wolframnb -> /opt/eb/genoa/software/Mathematica/14.2.1/Executables/wolframnb*
WolframNB -> /opt/eb/genoa/software/Mathematica/14.2.1/Executables/WolframNB*

~> ls /opt/eb/genoa/software/Mathematica/14.2.1/Executables/
math*  MathKernel*  mcc*  wolfram*  WolframKernel*  wolframnb*  WolframNB*  wolframscript@

~> wolfram --version
Wolfram 14.2.1 Kernel for Linux x86 (64-bit)
Copyright 1988-2025 Wolfram Research, Inc.

In[1]:=

~> wolframnb --version
14.2.1 for Linux x86 (64-bit)

v14.0 on other cluster:

$ ll /opt/bwhpc/fr/math/mathematica/14.0/bin/
MathKernel -> /opt/bwhpc/fr/math/mathematica/14.0/Executables/MathKernel
Mathematica -> /opt/bwhpc/fr/math/mathematica/14.0/Executables/Mathematica
WolframKernel -> /opt/bwhpc/fr/math/mathematica/14.0/Executables/WolframKernel
math -> /opt/bwhpc/fr/math/mathematica/14.0/Executables/math
mathematica -> /opt/bwhpc/fr/math/mathematica/14.0/Executables/mathematica
mcc -> /opt/bwhpc/fr/math/mathematica/14.0/Executables/mcc
wolfram -> /opt/bwhpc/fr/math/mathematica/14.0/Executables/wolfram

$ ls /opt/bwhpc/fr/math/mathematica/14.0/Executables/           
MathKernel  Mathematica  WolframKernel  math  mathematica  mcc  wolfram  wolframscript

$ wolfram --version
Mathematica 14.0.0 Kernel for Linux x86 (64-bit)
Copyright 1988-2023 Wolfram Research, Inc.

In[1]:=

$ mathematica --version
14.0

v12.1.1:

$ ll /opt/bwhpc/fr/math/mathematica/12.1.1/bin/
total 8
MathKernel -> /opt/bwhpc/fr/math/mathematica/12.1/Executables/MathKernel
Mathematica -> /opt/bwhpc/fr/math/mathematica/12.1/Executables/Mathematica
WolframKernel -> /opt/bwhpc/fr/math/mathematica/12.1/Executables/WolframKernel
math -> /opt/bwhpc/fr/math/mathematica/12.1/Executables/math
mathematica -> /opt/bwhpc/fr/math/mathematica/12.1/Executables/mathematica
mcc -> /opt/bwhpc/fr/math/mathematica/12.1/Executables/mcc
wolfram -> /opt/bwhpc/fr/math/mathematica/12.1/Executables/wolfram
wolframscript -> /opt/bwhpc/fr/math/mathematica/12.1/SystemFiles/Kernel/Binaries/Linux-x86-64/wolframscript

$ ls /opt/bwhpc/fr/math/mathematica/12.1/Executables/
MathKernel  Mathematica  WolframKernel  math  mathematica  mcc  wolfram  wolframscript

$wolfram --version
Mathematica 12.1.1 Kernel for Linux x86 (64-bit)
Copyright 1988-2020 Wolfram Research, Inc.

In[1]:=

$ mathematica --version
12.1

Micket
Micket previously approved these changes Nov 15, 2025
Copy link
Contributor

@Micket Micket left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@Micket
Copy link
Contributor

Micket commented Nov 16, 2025

Test report by @Micket

Overview of tested easyconfigs (in order)

Build succeeded for 0 out of 1 (1 easyconfigs in total)
vera-icelake-build - Linux Rocky Linux 9.6, x86_64, Intel(R) Xeon(R) Silver 4316 CPU @ 2.30GHz, Python 3.9.21
See https://gist.github.com/Micket/883313d186e8b56d14bce008cf910bb7 for a full test report.

@Micket
Copy link
Contributor

Micket commented Nov 16, 2025

hrm.. how annoying, my university is only providing m with the iso file for sources, and the layout and everything is different.

@Micket
Copy link
Contributor

Micket commented Nov 18, 2025

sorry i forgot about old #3707
I want to merge that with those changes. There is a lot of overlap, but could you please rebase the necessary license stuff on top of develop again with that merged?

Micket
Micket previously approved these changes Nov 18, 2025
Copy link
Contributor

@Micket Micket left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm, i managed to do the merge from the github ui

@Micket Micket added this to the next release (5.2.0?) milestone Nov 18, 2025
@Micket
Copy link
Contributor

Micket commented Nov 18, 2025

@sassy-crick you have mathematica? My source for install material only has the iso files so I can't test this easyblock.
Can you please upload a test report, e.g.

EB_MATHEMATICA_LICENSE_SERVER=math.lic.somewhere.com
eb --upload-test-report --include-easyblock-from-pr 3991 --rebuild --prefix /tmp Mathematica-14.2.0.eb 

should work with license server.

@boegel boegel changed the title feat(mathematica.py): Improve easyblock to support license server con… Improve Mathematica easyblock to support license server configuration and version-specific executable names Nov 19, 2025
@arielzn
Copy link

arielzn commented Nov 19, 2025

@Micket i've installed before v14.2.1 fine from easybuilders/easybuild-easyconfigs#22823 using #3707 eblock as it's now with wolframnb --version and specifying the license_server option via a hook.

i've tried test report using this eblock, without our hook and passing the var for license as:

export EB_MATHEMATICA_LICENSE_SERVER=our.lic.server
eb --upload-test-report --include-easyblocks-from-pr 3991 --rebuild --prefix /tmp --from-pr 22823  Mathematica-14.2.1.eb 

and it failed

1050 == 2025-11-19 17:10:42,671 build_log.py:226 ERROR EasyBuild encountered an error (at easybuild/ssm/software/EasyBuild/5.1.2/lib/python3.9/site-packages/easybuild/base/exceptions.py:126 in __init__): Failed to update /home/ulb/operations/alozano/eblocal/software/Mathematica/14.2     .1/Configuration/Licensing/mathpass with license server info: [Errno 2] No such file or directory: '/home/ulb/operations/alozano/eblocal/software/Mathematica/14.2.1/Configuration/Licensing/mathpass' (at easybuild/easyblocks/mathematica.py:132 in install_step)                   

it seems passing via the env var is not working

@arielzn
Copy link

arielzn commented Nov 19, 2025

mm, i'm getting the same error with the combination that worked before, using #3707 and the hook

@planetmija
Copy link
Author

planetmija commented Nov 19, 2025

Unfortunately this merge breaks it for me as well.

== Summary:
   * [FAILED]  math/mathematica/14.2.1
ERROR: Installation of Mathematica-14.2.1.eb failed: "Failed to isolate install script using 'Wolfram_14.2.1_LIN.sh': []"

My file is still called 'Mathematica_14.2.1_LINUX.sh'. Was there a name change?

@planetmija
Copy link
Author

Actually both is wrong:
https://reference.wolfram.com/language/tutorial/InstallingWolfram.html#3911374

You should change it to:

        if LooseVersion(self.version) >= LooseVersion("14.1"):
            install_script_glob = 'Wolfram_%s_BNDL_LIN.sh' % (self.version)

I could push the change if you want.

@planetmija
Copy link
Author

planetmija commented Nov 19, 2025

There was also a typo caused by the merge, which I have now corrected.

You could try this:

# new binary name and checksum:
# sources = ['Wolfram_%(version)s_BNDL_LIN.sh']
# checksums = ['0dc65b7adaf9c0ede2fc391c860a6c5b74461df6b53ec940e1f2be6d143af018']

eb --include-easyblocks-from-pr 3991 --rebuild --prefix /tmp/eb/ --from-pr 24575 Mathematica-14.2.1.eb

Edit: Info removed, see comment below.

@planetmija
Copy link
Author

planetmija commented Nov 19, 2025

Edit: Log not uploaded first time.
easybuild-Mathematica-14.2.1-20251119.185451.log

OK, I can confirm that these versions work with v14.2.1 (--include-easyblocks-from-pr 3991 --from-pr 24575):

~> echo $EB_MATHEMATICA_LICENSE_SERVER
our.lic.server

~> eb --include-easyblocks-from-pr 3991 --rebuild --prefix /tmp/eb/ --from-pr 24575 Mathematica-14.2.1.eb
== Temporary log file in case of crash /tmp/eb-0bg0r0jk/easybuild-4v56sqqk.log
== easyblock mathematica.py included from PR #3991
[easybuild-Mathematica-14.2.1-20251119.185451.log](https://github.com/user-attachments/files/23634657/easybuild-Mathematica-14.2.1-20251119.185451.log)
== processing EasyBuild easyconfig /tmp/eb-0bg0r0jk/files_pr24575/m/Mathematica/Mathematica-14.2.1.eb
== building and installing math/mathematica/14.2.1...
  >> installation prefix: /tmp/eb/software/Mathematica/14.2.1
== fetching files and verifying checksums...
  >> sources:
  >> /tmp/eb/sources/m/Mathematica/Wolfram_14.2.1_BNDL_LIN.sh [SHA256: 0dc65b7adaf9c0ede2fc391c860a6c5b74461df6b53ec940e1f2be6d143af018]
== ... (took 7 secs)
== creating build dir, resetting environment...
  >> build dir: /tmp/eb/build/Mathematica/14.2.1/system-system
== ... (took < 1 sec)
== unpacking...
== ... (took 2 secs)
== patching...
== ... (took < 1 sec)
== preparing...
== ... (took < 1 sec)
== configuring...
== ... (took < 1 sec)
== building...
== ... (took < 1 sec)
== testing...
== ... (took < 1 sec)
== installing...
  >> running interactive shell command:
	./Wolfram_14.2.1_BNDL_LIN.sh
	[started at: 2025-11-19 18:47:15]
	[working dir: /tmp/eb/build/Mathematica/14.2.1/system-system]
	[output and state saved to /tmp/eb-0bg0r0jk/run-shell-cmd-output/Wolfram_1421_BNDL_LINsh-smjqwnx8]
  >> command completed: exit 0, ran in 00h07m31s
== ... (took 7 mins 33 secs)
== taking care of extensions...
== ... (took < 1 sec)
== restore after iterating...
== ... (took < 1 sec)
== postprocessing...
== ... (took < 1 sec)
== sanity checking...
  >> file 'bin/math' found: OK
  >> file 'bin/wolfram' found: OK
  >> file 'Executables/wolframscript' found: OK
  >> (non-empty) directory 'AddOns' found: OK
  >> (non-empty) directory 'Configuration' found: OK
  >> (non-empty) directory 'Documentation' found: OK
  >> (non-empty) directory 'Executables' found: OK
  >> (non-empty) directory 'SystemFiles' found: OK
  >> loading modules: math/mathematica/14.2.1...
  >> running command 'wolframnb --version' ...
  >> result for command 'wolframnb --version': OK
== ... (took < 1 sec)
== cleaning up...
== ... (took < 1 sec)
== creating module...
  >> generating module file @ /tmp/eb/modules/all/math/mathematica/14.2.1.lua
== ... (took < 1 sec)
== permissions...
== ... (took 1 secs)
== packaging...
== ... (took < 1 sec)
== COMPLETED: Installation ended successfully (took 7 mins 48 secs)
== Results of the build can be found in the log file(s) /tmp/eb/software/Mathematica/14.2.1/easybuild/easybuild-Mathematica-14.2.1-20251119.185451.log
== Build succeeded for 1 out of 1
== Summary:
   * [SUCCESS] math/mathematica/14.2.1
== Temporary log file(s) /tmp/eb-0bg0r0jk/easybuild-4v56sqqk.log* have been removed.
== Temporary directory /tmp/eb-0bg0r0jk has been removed.

@arielzn
Copy link

arielzn commented Nov 19, 2025

Actually both is wrong: https://reference.wolfram.com/language/tutorial/InstallingWolfram.html#3911374

You should change it to:

        if LooseVersion(self.version) >= LooseVersion("14.1"):
            install_script_glob = 'Wolfram_%s_BNDL_LIN.sh' % (self.version)

I could push the change if you want.

actually it seems that is a matter of downloading the file with the documentation included or not.
and it seems they renamed the "BNDL" files we get right now, by going to:

Screenshot From 2025-11-19 20-36-10

if I choose Direct File Download for "Wolfram + Documentation" I get the Wolfram_<version>_LIN_Bndl.sh file .

either for 14.3.0, 14.2.1 or 14.1.0 as they show on the guide.

if I choose instead Direct File Download for "Wolfram (Web Documentation Only)" I get the Wolfram_<version>_LIN.sh file.

I don't know if we should prefer the latter as the download is smaller ?

what a mess anyway, could you check on your side if you download now you get also the file with the Bndl string moved to the end?

@Micket
Copy link
Contributor

Micket commented Nov 20, 2025

Lets just use the sources[0] instead? That should be the script to run, no matter the version, bundle or not.

@planetmija
Copy link
Author

planetmija commented Nov 20, 2025

Lets just use the sources[0] instead? That should be the script to run, no matter the version, bundle or not.

If it is that easy, then yes!

What's really annoying is that the documentation says Wolfram_%s_BNDL_LIN.sh, but it can be Wolfram_%s_LIN_Bndl.sh or Wolfram_%s_LIN.sh, as well. I get the software directly from the university and the file was called 'Mathematica_14.2.1_LINUX.sh'. So, I have no idea which version it is and will probably have the wrong checksum.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants