mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-16 23:03:40 +01:00
commit
cde85f3c77
7 changed files with 27 additions and 166 deletions
|
@ -2,16 +2,16 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "julia-bin";
|
||||
version = "1.8.3";
|
||||
version = "1.8.4";
|
||||
|
||||
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 = "sha256-M8Owk1b/qiXTMxw2RrHy1LCZROj5P8uZSVeAG4u/WKk=";
|
||||
sha256 = "sha256-8EJ6TXkQxH3Hwx9lun7Kr+27wOzrOcMgo3+jNZgAT9U=";
|
||||
};
|
||||
aarch64-linux = fetchurl {
|
||||
url = "https://julialang-s3.julialang.org/bin/linux/aarch64/${lib.versions.majorMinor version}/julia-${version}-linux-aarch64.tar.gz";
|
||||
sha256 = "sha256-2/+xNKQTtxLUqOHujmZepV7bCGVxmhutmXkSPWQzrMk=";
|
||||
sha256 = "sha256-3EeYwc6HaPo1ly6LFJyjqF/GnhB0tgmnKyz+1cSqcFA=";
|
||||
};
|
||||
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
|
||||
|
||||
|
|
|
@ -1,53 +1,29 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, fetchpatch
|
||||
, which
|
||||
, python3
|
||||
, gfortran
|
||||
, gcc
|
||||
, cmake
|
||||
, perl
|
||||
, gnum4
|
||||
, libwhich
|
||||
, libxml2
|
||||
, libunwind
|
||||
, curl
|
||||
, gmp
|
||||
, suitesparse
|
||||
, utf8proc
|
||||
, zlib
|
||||
, p7zip
|
||||
, ncurses
|
||||
, openssl
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "julia";
|
||||
version = "1.8.3";
|
||||
version = "1.8.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/JuliaLang/julia/releases/download/v${version}/julia-${version}-full.tar.gz";
|
||||
hash = "sha256-UraJWp1K0v422yYe6MTIzJISuDehL5MAL6r1N6IVH1A=";
|
||||
hash = "sha256-HNAyJixcQgSKeBm8zWhOhDu7j2bPn/VsMViB6kMfADM=";
|
||||
};
|
||||
|
||||
patches =
|
||||
let
|
||||
path = name: "https://raw.githubusercontent.com/archlinux/svntogit-community/6fd126d089d44fdc875c363488a7c7435a223cec/trunk/${name}";
|
||||
in
|
||||
[
|
||||
(fetchurl {
|
||||
url = path "julia-hardcoded-libs.patch";
|
||||
sha256 = "sha256-kppSpVA7bRohd0wXDs4Jgct9ocHnpbeiiSz7ElFom1U=";
|
||||
})
|
||||
(fetchurl {
|
||||
url = path "julia-libunwind-1.6.patch";
|
||||
sha256 = "sha256-zqMh9+Fjgd15XuINe9Xtpk+bRTwB0T6WCWLrJyOQfiQ=";
|
||||
})
|
||||
./patches/1.8/0001-skip-symlink-system-libraries.patch
|
||||
./patches/1.8/0002-skip-building-doc.patch
|
||||
./patches/1.8/0003-skip-failing-tests.patch
|
||||
./patches/1.8/0004-ignore-absolute-path-when-loading-library.patch
|
||||
];
|
||||
patches = [
|
||||
./patches/1.8/0001-skip-building-doc.patch
|
||||
./patches/1.8/0002-skip-failing-and-flaky-tests.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
which
|
||||
|
@ -56,56 +32,24 @@ stdenv.mkDerivation rec {
|
|||
cmake
|
||||
perl
|
||||
gnum4
|
||||
libwhich
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libxml2
|
||||
libunwind
|
||||
curl
|
||||
gmp
|
||||
utf8proc
|
||||
zlib
|
||||
p7zip
|
||||
openssl
|
||||
];
|
||||
|
||||
JULIA_RPATH = lib.makeLibraryPath (buildInputs ++ [ stdenv.cc.cc gfortran.cc ncurses ]);
|
||||
|
||||
dontUseCmakeConfigure = true;
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs .
|
||||
'';
|
||||
|
||||
LDFLAGS = "-Wl,-rpath,${JULIA_RPATH}";
|
||||
|
||||
makeFlags = [
|
||||
"prefix=$(out)"
|
||||
"USE_BINARYBUILDER=0"
|
||||
"USE_SYSTEM_CSL=1"
|
||||
"USE_SYSTEM_LLVM=0" # a patched version is required
|
||||
"USE_SYSTEM_LIBUNWIND=1"
|
||||
"USE_SYSTEM_PCRE=0" # version checks
|
||||
"USE_SYSTEM_LIBM=0"
|
||||
"USE_SYSTEM_OPENLIBM=0"
|
||||
"USE_SYSTEM_DSFMT=0" # not available in nixpkgs
|
||||
"USE_SYSTEM_LIBBLASTRAMPOLINE=0" # not available in nixpkgs
|
||||
"USE_SYSTEM_BLAS=0" # test failure
|
||||
"USE_SYSTEM_LAPACK=0" # test failure
|
||||
"USE_SYSTEM_GMP=1" # version checks, but bundled version fails build
|
||||
"USE_SYSTEM_MPFR=0" # version checks
|
||||
"USE_SYSTEM_LIBSUITESPARSE=0" # test failure
|
||||
"USE_SYSTEM_LIBUV=0" # a patched version is required
|
||||
"USE_SYSTEM_UTF8PROC=1"
|
||||
"USE_SYSTEM_MBEDTLS=0" # version checks
|
||||
"USE_SYSTEM_LIBSSH2=0" # version checks
|
||||
"USE_SYSTEM_NGHTTP2=0" # version checks
|
||||
"USE_SYSTEM_CURL=1"
|
||||
"USE_SYSTEM_LIBGIT2=0" # version checks
|
||||
"USE_SYSTEM_PATCHELF=1"
|
||||
"USE_SYSTEM_LIBWHICH=1"
|
||||
"USE_SYSTEM_ZLIB=1" # version checks, but the system zlib is used anyway
|
||||
"USE_SYSTEM_P7ZIP=1"
|
||||
# workaround for https://github.com/JuliaLang/julia/issues/47989
|
||||
"USE_INTEL_JITEVENTS=0"
|
||||
] ++ lib.optionals stdenv.isx86_64 [
|
||||
# https://github.com/JuliaCI/julia-buildbot/blob/master/master/inventory.py
|
||||
"JULIA_CPU_TARGET=generic;sandybridge,-xsaveopt,clone_all;haswell,-rdrnd,base(1)"
|
||||
|
@ -113,6 +57,13 @@ stdenv.mkDerivation rec {
|
|||
"JULIA_CPU_TERGET=generic;cortex-a57;thunderx2t99;armv8.2-a,crypto,fullfp16,lse,rdm"
|
||||
];
|
||||
|
||||
# remove forbidden reference to $TMPDIR
|
||||
preFixup = ''
|
||||
for file in libcurl.so libgmpxx.so; do
|
||||
patchelf --shrink-rpath --allowed-rpath-prefixes ${builtins.storeDir} "$out/lib/julia/$file"
|
||||
done
|
||||
'';
|
||||
|
||||
doInstallCheck = true;
|
||||
installCheckTarget = "testall";
|
||||
|
||||
|
@ -123,12 +74,6 @@ stdenv.mkDerivation rec {
|
|||
|
||||
dontStrip = true;
|
||||
|
||||
postFixup = ''
|
||||
for file in $out/bin/julia $out/lib/libjulia.so $out/lib/julia/libjulia-internal.so $out/lib/julia/libjulia-codegen.so; do
|
||||
patchelf --set-rpath "$out/lib:$out/lib/julia:${JULIA_RPATH}" $file
|
||||
done
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with lib; {
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
From ddf422a97973a1f4d2d4d32272396c7165580702 Mon Sep 17 00:00:00 2001
|
||||
From ce73c82ebadeb2e358e1a8e244eef723ffa96c76 Mon Sep 17 00:00:00 2001
|
||||
From: Nick Cao <nickcao@nichi.co>
|
||||
Date: Tue, 20 Sep 2022 18:42:31 +0800
|
||||
Subject: [PATCH 2/4] skip building doc
|
||||
Subject: [PATCH 1/2] skip building doc
|
||||
|
||||
---
|
||||
Makefile | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 57b595310..563be74c9 100644
|
||||
index 94df626014..418f6ff268 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -229,7 +229,7 @@ define stringreplace
|
|
@ -1,32 +0,0 @@
|
|||
From b2a58160fd194858267c433ae551f24840a0b3f4 Mon Sep 17 00:00:00 2001
|
||||
From: Nick Cao <nickcao@nichi.co>
|
||||
Date: Tue, 20 Sep 2022 18:42:08 +0800
|
||||
Subject: [PATCH 1/4] skip symlink system libraries
|
||||
|
||||
---
|
||||
base/Makefile | 2 --
|
||||
1 file changed, 2 deletions(-)
|
||||
|
||||
diff --git a/base/Makefile b/base/Makefile
|
||||
index 23a9c4011..12f92aa05 100644
|
||||
--- a/base/Makefile
|
||||
+++ b/base/Makefile
|
||||
@@ -181,7 +181,6 @@ $$(build_private_libdir)/$$(libname_$2):
|
||||
fi; \
|
||||
fi
|
||||
ifneq ($$(USE_SYSTEM_$1),0)
|
||||
-SYMLINK_SYSTEM_LIBRARIES += symlink_$2
|
||||
endif
|
||||
endef
|
||||
|
||||
@@ -265,7 +264,6 @@ $(build_private_libdir)/libLLVM.$(SHLIB_EXT):
|
||||
ln -sf "$$REALPATH" "$@"
|
||||
ifneq ($(USE_SYSTEM_LLVM),0)
|
||||
ifneq ($(USE_LLVM_SHLIB),0)
|
||||
-SYMLINK_SYSTEM_LIBRARIES += symlink_libLLVM
|
||||
endif
|
||||
endif
|
||||
|
||||
--
|
||||
2.38.1
|
||||
|
|
@ -1,14 +1,14 @@
|
|||
From f91c8c6364eb321dd5e66fa443472fca6bcda7d6 Mon Sep 17 00:00:00 2001
|
||||
From 0e1fe51ce93847ac3c4de49a003d9762b2f3d7c6 Mon Sep 17 00:00:00 2001
|
||||
From: Nick Cao <nickcao@nichi.co>
|
||||
Date: Tue, 20 Sep 2022 18:42:59 +0800
|
||||
Subject: [PATCH 3/4] skip failing tests
|
||||
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 24e137a5b..2b30ab392 100644
|
||||
index 24e137a5b1..e78f12da04 100644
|
||||
--- a/test/Makefile
|
||||
+++ b/test/Makefile
|
||||
@@ -23,7 +23,7 @@ default:
|
||||
|
@ -16,7 +16,7 @@ index 24e137a5b..2b30ab392 100644
|
|||
$(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 MozillaCACerts_jll --skip NetworkOptions --skip Zlib_jll --skip GMP_jll $@)
|
||||
+ $(call PRINT_JULIA, $(call spawn,$(JULIA_EXECUTABLE)) --check-bounds=yes --startup-file=no --depwarn=error ./runtests.jl --skip MozillaCACerts_jll --skip NetworkOptions --skip channels $@)
|
||||
|
||||
$(addprefix revise-, $(TESTS)): revise-% :
|
||||
@cd $(SRCDIR) && \
|
|
@ -1,25 +0,0 @@
|
|||
From ed596b33005a438109f0078ed0ba30ebe464b4b5 Mon Sep 17 00:00:00 2001
|
||||
From: Nick Cao <nickcao@nichi.co>
|
||||
Date: Tue, 20 Sep 2022 18:42:59 +0800
|
||||
Subject: [PATCH 3/4] skip failing and flaky tests
|
||||
|
||||
---
|
||||
test/Makefile | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/test/Makefile b/test/Makefile
|
||||
index 24e137a5b..553d9d095 100644
|
||||
--- a/test/Makefile
|
||||
+++ b/test/Makefile
|
||||
@@ -23,7 +23,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 MozillaCACerts_jll --skip NetworkOptions --skip Zlib_jll --skip GMP_jll --skip channels $@)
|
||||
|
||||
$(addprefix revise-, $(TESTS)): revise-% :
|
||||
@cd $(SRCDIR) && \
|
||||
--
|
||||
2.38.1
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
From 4bd87f2f3151ad07d311f7d33c2b890977aca93d Mon Sep 17 00:00:00 2001
|
||||
From: Nick Cao <nickcao@nichi.co>
|
||||
Date: Tue, 20 Sep 2022 18:43:15 +0800
|
||||
Subject: [PATCH 4/4] ignore absolute path when loading library
|
||||
|
||||
---
|
||||
cli/loader_lib.c | 4 +---
|
||||
1 file changed, 1 insertion(+), 3 deletions(-)
|
||||
|
||||
diff --git a/cli/loader_lib.c b/cli/loader_lib.c
|
||||
index 0301b6eed..5cbda61af 100644
|
||||
--- a/cli/loader_lib.c
|
||||
+++ b/cli/loader_lib.c
|
||||
@@ -50,9 +50,7 @@ static void * load_library(const char * rel_path, const char * src_dir, int err)
|
||||
#endif
|
||||
|
||||
char path[2*JL_PATH_MAX + 1] = {0};
|
||||
- strncat(path, src_dir, sizeof(path) - 1);
|
||||
- strncat(path, PATHSEPSTRING, sizeof(path) - 1);
|
||||
- strncat(path, rel_path, sizeof(path) - 1);
|
||||
+ strncat(path, basename, sizeof(path) - 1);
|
||||
|
||||
#if defined(_OS_WINDOWS_)
|
||||
wchar_t wpath[2*JL_PATH_MAX + 1] = {0};
|
||||
--
|
||||
2.38.1
|
||||
|
Loading…
Reference in a new issue