-
Notifications
You must be signed in to change notification settings - Fork 720
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
{lang}[foss/2020a] Julia v1.5.1 #11180
Conversation
I may rework this into a custom easyblock, it's a bit much in an easyconfig. Still need to look into support for installing Julia packages as extensions, which will involve an easyblock anyway... |
Test report by @boegel |
('cURL', '7.69.1'), | ||
('zlib', '1.2.11'), | ||
('SuiteSparse', '5.7.1', '-METIS-5.1.0'), | ||
] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we list deps we leave to Julia to do it's own thing with? Based on my incomplete, broken, attempt, I identified:
LLVM
OpenLibm
utf8proc
libuv
libgit2
p7zip
dSFMT
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We could, see https://github.com/JuliaLang/julia/blob/master/doc/build/build.md#required-build-tools-and-external-libraries (some are only needed on Windows)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We could probably could use these external as well if we want:
- OpenLibm & utf8proc: No patches (though this is more or less just Julia specific anyway)
- p7zip: Patches seem to CVE related, nothing julia specific
- libunwind: Patches seem to be ARM specific
- libgit2: Required patch to make ssh-agent problems non-fatal. Probably required, but I suppose it wouldn't hurt elsewhere, so we could possibly include that. It's been proposed for inclusion upstream (but without response from git devs).
Note: As Julia is transitioning more towards their BinaryBuilder tool where Julia modules can depend on pre-built "Artifacts", called "JLL"s, there is some potential conflict there if we try to control the versions to much and pulling in other libraries. Hard to say how it's all going to pan out.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Micket "libunwind: Patches seem to be ARM specific" is interesting. Could you expand on this?
We see Mesa and probably more stuff fail on arm due to libunwind: easybuilders/easybuild-easyblocks#2153. Is libunwind on arm something we can fix? I see arch and others ship it and use it for Mesa: https://archlinuxarm.org/packages/aarch64/mesa
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@terjekv This comment was just based on the patchset i found in julia: https://github.com/JuliaLang/julia/blob/master/deps/patches/ (loooks like a very very minor patch though). Also the yggdrasil package stuff: https://github.com/JuliaPackaging/Yggdrasil/tree/master/L/LibUnwind/bundled/patches. That's all i know.
('Python', '3.8.2'), | ||
('Perl', '5.30.2'), | ||
('pkg-config', '0.29.2'), | ||
('PCRE2', '10.34'), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is PCRE2 really a build dep? I suppose, maybe it statically links? But we use PCRE2 as a runtime dep in R for example.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I saw it listed in the Makefile
as a build dep.
('pkg-config', '0.29.2'), | ||
('PCRE2', '10.34'), | ||
('patchelf', '0.12'), | ||
] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In my incomplete attempt, I also marked gawk
as required as a builddep for some reason. Maybe?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Jup, that's listed as a required build dep, but I didn't include it here, we should.
('cURL', '7.69.1'), | ||
('zlib', '1.2.11'), | ||
('SuiteSparse', '5.7.1', '-METIS-5.1.0'), | ||
] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We could probably could use these external as well if we want:
- OpenLibm & utf8proc: No patches (though this is more or less just Julia specific anyway)
- p7zip: Patches seem to CVE related, nothing julia specific
- libunwind: Patches seem to be ARM specific
- libgit2: Required patch to make ssh-agent problems non-fatal. Probably required, but I suppose it wouldn't hurt elsewhere, so we could possibly include that. It's been proposed for inclusion upstream (but without response from git devs).
Note: As Julia is transitioning more towards their BinaryBuilder tool where Julia modules can depend on pre-built "Artifacts", called "JLL"s, there is some potential conflict there if we try to control the versions to much and pulling in other libraries. Hard to say how it's all going to pan out.
('zlib', '1.2.11'), | ||
('SuiteSparse', '5.7.1', '-METIS-5.1.0'), | ||
] | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add osdeps for libssh2 (and mbedtls?)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@boegel ping?
Here is an example of weird things that happen with Arpack and this Julia:
Note the
it in fact installs another OpenBLAS, in my case we have a GCCcore-9.3.0 Julia installed (https://github.com/ComputeCanada/easybuild-easyconfigs/blob/computecanada-master/easybuild/easyconfigs/j/Julia/Julia-1.5.2-GCCcore-9.3.0.eb) and it doesn't have this issue.. it still insists on downloading a new openblas library but it's now compatible with what Julia was compiled with in the first place. (Yes -- the issues with Julia are a bit like those with Conda, just to a somewhat lesser extend) |
Closing this PR, since it (only) uses deprecated toolchain versions, |
(created using
eb --new-pr
)