julia: init julia_10-bin at 1.0.5

Almost as clean as it could be, but was forced to set `LD_LIBRARY_PATH`
to work around a `Libdl` failure that is unique to v1.0.x.
This commit is contained in:
Pontus Stenetorp 2021-04-27 14:39:21 +00:00
parent 351f9114b0
commit 8949ae188a
No known key found for this signature in database
GPG key ID: D430287500E6483C
3 changed files with 163 additions and 1 deletions

View file

@ -0,0 +1,72 @@
{ autoPatchelfHook, fetchurl, lib, makeWrapper, openssl, stdenv }:
stdenv.mkDerivation rec {
pname = "julia-bin";
version = "1.0.5";
src = {
x86_64-linux = fetchurl {
url = "https://julialang-s3.julialang.org/bin/linux/x64/${lib.versions.majorMinor version}/julia-${version}-linux-x86_64.tar.gz";
sha256 = "00vbszpjmz47nqy19v83xa463ajhzwanjyg5mvcfp9kvfw9xdvcx";
};
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
# Julias source files are in different locations for source and binary
# releases. Thus we temporarily create symlinks to allow us to share patches
# with source releases.
prePatch = ''
ln -s share/julia/stdlib/v${lib.versions.majorMinor version} stdlib
ln -s share/julia/test
'';
patches = [
# Source release Nix patch(es) relevant for binary releases as well.
./patches/1.0-bin/0002-nix-Skip-tests-that-require-network-access.patch
];
postPatch = ''
# Revert symlink hack.
rm stdlib test
'';
buildInputs = [ makeWrapper ];
nativeBuildInputs = [ autoPatchelfHook ];
installPhase = ''
runHook preInstall
cp -r . $out
# Setting `LD_LIBRARY_PATH` resolves `Libdl` failures. Not sure why this is
# only necessary on v1.0.x and a cleaner solution is welcome, but after
# staring at `strace` for a few hours this is as clean as I could make it.
wrapProgram $out/bin/julia \
--suffix LD_LIBRARY_PATH : $out/lib
runHook postInstall
'';
# Breaks backtraces, etc.
dontStrip = true;
doInstallCheck = true;
installCheckInputs = [ openssl ];
preInstallCheck = ''
# Some tests require read/write access to $HOME.
export HOME="$TMPDIR"
'';
installCheckPhase = ''
runHook preInstallCheck
# Command lifted from `test/Makefile`.
$out/bin/julia \
--check-bounds=yes \
--startup-file=no \
--depwarn=error \
$out/share/julia/test/runtests.jl
runHook postInstallCheck
'';
meta = {
description = "High-level, high-performance dynamic language for technical computing";
homepage = "https://julialang.org";
# Bundled and linked with various GPL code, although Julia itself is MIT.
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ ninjin raskin ];
platforms = [ "x86_64-linux" ];
};
}

View file

@ -0,0 +1,87 @@
From 4954b99efae367da49412edd31a7bd832ec62c69 Mon Sep 17 00:00:00 2001
From: Pontus Stenetorp <pontus@stenetorp.se>
Date: Mon, 15 Mar 2021 05:55:18 +0000
Subject: [PATCH 2/3] nix: Skip tests that require network access
Necessary as the Nix build sandbox does not permit network access.
---
stdlib/Sockets/test/runtests.jl | 40 ++++++++++++++++-----------------
test/file.jl | 4 ++--
2 files changed, 22 insertions(+), 22 deletions(-)
diff --git a/stdlib/Sockets/test/runtests.jl b/stdlib/Sockets/test/runtests.jl
index 6145f87616..9cc7a001e5 100644
--- a/stdlib/Sockets/test/runtests.jl
+++ b/stdlib/Sockets/test/runtests.jl
@@ -151,33 +151,33 @@ defaultport = rand(2000:4000)
end
@testset "getnameinfo on some unroutable IP addresses (RFC 5737)" begin
- @test getnameinfo(ip"192.0.2.1") == "192.0.2.1"
- @test getnameinfo(ip"198.51.100.1") == "198.51.100.1"
- @test getnameinfo(ip"203.0.113.1") == "203.0.113.1"
- @test getnameinfo(ip"0.1.1.1") == "0.1.1.1"
- @test getnameinfo(ip"::ffff:0.1.1.1") == "::ffff:0.1.1.1"
- @test getnameinfo(ip"::ffff:192.0.2.1") == "::ffff:192.0.2.1"
- @test getnameinfo(ip"2001:db8::1") == "2001:db8::1"
+ @test_skip getnameinfo(ip"192.0.2.1") == "192.0.2.1"
+ @test_skip getnameinfo(ip"198.51.100.1") == "198.51.100.1"
+ @test_skip getnameinfo(ip"203.0.113.1") == "203.0.113.1"
+ @test_skip getnameinfo(ip"0.1.1.1") == "0.1.1.1"
+ @test_skip getnameinfo(ip"::ffff:0.1.1.1") == "::ffff:0.1.1.1"
+ @test_skip getnameinfo(ip"::ffff:192.0.2.1") == "::ffff:192.0.2.1"
+ @test_skip getnameinfo(ip"2001:db8::1") == "2001:db8::1"
end
@testset "getnameinfo on some valid IP addresses" begin
@test !isempty(getnameinfo(ip"::")::String)
- @test !isempty(getnameinfo(ip"0.0.0.0")::String)
- @test !isempty(getnameinfo(ip"10.1.0.0")::String)
- @test !isempty(getnameinfo(ip"10.1.0.255")::String)
- @test !isempty(getnameinfo(ip"10.1.255.1")::String)
- @test !isempty(getnameinfo(ip"255.255.255.255")::String)
- @test !isempty(getnameinfo(ip"255.255.255.0")::String)
- @test !isempty(getnameinfo(ip"192.168.0.1")::String)
- @test !isempty(getnameinfo(ip"::1")::String)
+ @test_skip !isempty(getnameinfo(ip"0.0.0.0")::String)
+ @test_skip !isempty(getnameinfo(ip"10.1.0.0")::String)
+ @test_skip !isempty(getnameinfo(ip"10.1.0.255")::String)
+ @test_skip !isempty(getnameinfo(ip"10.1.255.1")::String)
+ @test_skip !isempty(getnameinfo(ip"255.255.255.255")::String)
+ @test_skip !isempty(getnameinfo(ip"255.255.255.0")::String)
+ @test_skip !isempty(getnameinfo(ip"192.168.0.1")::String)
+ @test_skip !isempty(getnameinfo(ip"::1")::String)
end
@testset "getaddrinfo" begin
- let localhost = getnameinfo(ip"127.0.0.1")::String
- @test !isempty(localhost) && localhost != "127.0.0.1"
- @test !isempty(getalladdrinfo(localhost)::Vector{IPAddr})
- @test getaddrinfo(localhost, IPv4)::IPv4 != ip"0.0.0.0"
- @test try
+ let localhost = getnameinfo(ip"::")::String
+ @test_skip !isempty(localhost) && localhost != "127.0.0.1"
+ @test_skip !isempty(getalladdrinfo(localhost)::Vector{IPAddr})
+ @test_skip getaddrinfo(localhost, IPv4)::IPv4 != ip"0.0.0.0"
+ @test_skip try
getaddrinfo(localhost, IPv6)::IPv6 != ip"::"
catch ex
isa(ex, Sockets.DNSError) && ex.code == Base.UV_EAI_NONAME && ex.host == localhost
diff --git a/test/file.jl b/test/file.jl
index e86476f975..579276f82c 100644
--- a/test/file.jl
+++ b/test/file.jl
@@ -874,8 +874,8 @@ if !Sys.iswindows() || (Sys.windows_version() >= Sys.WINDOWS_VISTA_VER)
else
@test_throws ErrorException symlink(file, "ba\0d")
end
-@test_throws ArgumentError download("good", "ba\0d")
-@test_throws ArgumentError download("ba\0d", "good")
+@test_skip @test_throws ArgumentError download("good", "ba\0d")
+@test_skip @test_throws ArgumentError download("ba\0d", "good")
###################
# walkdir #
--
2.29.3

View file

@ -11113,9 +11113,12 @@ in
julia-stable = julia_15;
julia = julia-lts;
julia_10-bin = callPackage ../development/compilers/julia/1.0-bin.nix { };
julia_16-bin = callPackage ../development/compilers/julia/1.6-bin.nix { };
julia-stable-bin = julia_16-bin;
julia-lts-bin = julia_10-bin;
julia-stable-bin = julia_16-bin;
julia-bin = julia-lts-bin;
jwasm = callPackage ../development/compilers/jwasm { };