diff --git a/pkgs/development/compilers/julia/default.nix b/pkgs/development/compilers/julia/default.nix index becbd64ea55b..27200143fb26 100644 --- a/pkgs/development/compilers/julia/default.nix +++ b/pkgs/development/compilers/julia/default.nix @@ -1,4 +1,4 @@ -{ callPackage }: +{ callPackage, fetchpatch }: let juliaWithPackages = callPackage ../../julia-modules { }; @@ -39,6 +39,17 @@ in }; }) { }); + julia_111-bin = wrapJulia (callPackage + (import ./generic-bin.nix { + version = "1.11.0"; + sha256 = { + x86_64-linux = "bcf815553fda2ed7910524c8caa189c8e8191a40a799dd8b5fbed0d9dd6b882c"; + aarch64-linux = "66b9195b4c6b85403834dca9ef4fcae75f15be906bb3bb2c48eccb780ab810a1"; + x86_64-darwin = "e001d80b53cb9637402633f6cf50cbf2d83d4de03c4093783b8878265996e33d"; + aarch64-darwin = "c25ae0c87a418555e40167e07524824659656cb60bac9d1e4a5d50d887abe560"; + }; + }) + { }); julia_19 = wrapJulia (callPackage (import ./generic.nix { version = "1.9.4"; @@ -57,4 +68,19 @@ in ]; }) { }); + julia_111 = wrapJulia (callPackage + (import ./generic.nix { + version = "1.11.0"; + hash = "sha256-jXd4DNBEhOIfnDgFvmsb1WppvL5srt8kheiZIF2FyHQ="; + patches = [ + ./patches/1.11/0002-skip-failing-and-flaky-tests.patch + # [build] avoid libedit linkage and align libccalllazy* SONAMEs + # https://github.com/JuliaLang/julia/pull/55968 + (fetchpatch { + url = "https://github.com/JuliaLang/julia/commit/77c5875b3cbe85e7fb0bb5a7e796809c901ede95.patch"; + hash = "sha256-wDAB3VVI6JfOyyFbAktdAe2Im/HbAciq9yFI4HIpWvY="; + }) + ]; + }) + { }); } diff --git a/pkgs/development/compilers/julia/generic-bin.nix b/pkgs/development/compilers/julia/generic-bin.nix index fd78e6113850..aee994bc8edb 100644 --- a/pkgs/development/compilers/julia/generic-bin.nix +++ b/pkgs/development/compilers/julia/generic-bin.nix @@ -24,6 +24,11 @@ let "REPL" # Test flaky "ccall" + ] ++ lib.optionals (lib.versionAtLeast version "1.11") [ + # Test flaky + # https://github.com/JuliaLang/julia/issues/54280 + "loading" + "cmdlineargs" ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ # Test flaky on ofborg "FileWatching" @@ -83,6 +88,17 @@ stdenv.mkDerivation { runHook postInstall ''; + # Align libccalllazy* SONAMEs + # https://github.com/JuliaLang/julia/pull/55968 + preFixup = lib.optionalString (version == "1.11.0" && stdenv.hostPlatform.isLinux) '' + patchelf "$out/lib/julia/libccalllazyfoo.so" \ + --set-soname libccalllazyfoo.so \ + --replace-needed ccalllazybar.so libccalllazybar.so + patchelf "$out/lib/julia/libccalllazybar.so" \ + --set-soname libccalllazybar.so \ + --replace-needed ccalllazyfoo.so libccalllazyfoo.so + ''; + # Breaks backtraces, etc. dontStrip = true; diff --git a/pkgs/development/compilers/julia/patches/1.11/0002-skip-failing-and-flaky-tests.patch b/pkgs/development/compilers/julia/patches/1.11/0002-skip-failing-and-flaky-tests.patch new file mode 100644 index 000000000000..3577e6e71e15 --- /dev/null +++ b/pkgs/development/compilers/julia/patches/1.11/0002-skip-failing-and-flaky-tests.patch @@ -0,0 +1,25 @@ +From 9da2f2596db9f4f1a61825d82d9b8c3f3b2e99aa Mon Sep 17 00:00:00 2001 +From: Nick Cao +Date: Wed, 10 Jan 2024 20:58:20 -0500 +Subject: [PATCH 2/2] skip failing and flaky tests + +--- + test/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/test/Makefile b/test/Makefile +index 88dbe5b2b4..a2a7a55e20 100644 +--- a/test/Makefile ++++ b/test/Makefile +@@ -28,7 +28,7 @@ default: + + $(TESTS): + @cd $(SRCDIR) && \ +- $(call PRINT_JULIA, $(call spawn,$(JULIA_EXECUTABLE)) --check-bounds=yes --startup-file=no --depwarn=error ./runtests.jl $@) ++ $(call PRINT_JULIA, $(call spawn,$(JULIA_EXECUTABLE)) --check-bounds=yes --startup-file=no --depwarn=error ./runtests.jl --skip NetworkOptions REPL channels FileWatching ccall loading cmdlineargs $@) + + $(addprefix revise-, $(TESTS)): revise-% : + @cd $(SRCDIR) && \ +-- +2.43.0 + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d91fa9593ee5..870bebc0fa98 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15181,6 +15181,7 @@ with pkgs; julia_16-bin julia_19-bin julia_110-bin + julia_111-bin julia_19 julia_110;