summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dev-lang/julia/Manifest3
-rw-r--r--dev-lang/julia/files/julia-1.6.0-fix-system-csl.patch271
-rw-r--r--dev-lang/julia/julia-1.6.0.ebuild103
3 files changed, 303 insertions, 74 deletions
diff --git a/dev-lang/julia/Manifest b/dev-lang/julia/Manifest
index 2fafe21372a2..50b10817aa4b 100644
--- a/dev-lang/julia/Manifest
+++ b/dev-lang/julia/Manifest
@@ -1,16 +1,13 @@
DIST julia-1.5.2.tar.gz 6945862 BLAKE2B 9dd9f83fb9ae251f66ae65e14a252b662c3c7d6f92638d91ef6e286032020052e1812f2891270854e0ddeda474afff55c8f87d300550503c1093f4c5e0a51959 SHA512 aa177d03bbde4f368dd2fb14f64d21130531616bcd544af7babbb7fb7c9ee5ea7528c756e10f78468aaffebbcbc6f48e92397c1c13dc3f130b64a82e478f43dc
DIST julia-1.5.3.tar.gz 6949901 BLAKE2B 08f8496980a9bbb9effc0c72cb6b7a5ce1dbd1774735caa366ddc1bb5404117111c624a639f6eb48360061f9fc597a7b37dff24f8555f03ebc4a22524cbeb3b8 SHA512 9e644a64fd6e2caf0390a2bc470084406c078244e65b70a2e3b031d5806c1dff780273ccccfe4bccfd8c03778b7d3a44de7a84bd13f3512afe6864efa5a730fc
DIST julia-1.6.0.tar.gz 7711314 BLAKE2B 135862347a7f3a954acb8d8e17350fbdda84b4813d8498b862e107836a0d29d6e70a26c39c0c29655e6348a5a3afd5b4d7e9824cb88c9e8d31c4515468f46d5b SHA512 41dea60c08882a8f8f9024eb2285c30dbbc68e2256ed6afd5bf956a1828239128b2f39b4ce733a438eafe3b2324ff06dec5c1eb7c9b0f838b2daa972f587d909
-DIST julia-Pkg-05fa7f93f73afdabd251247d03144de9f7b36b50.tar.gz 388550 BLAKE2B ec248dbd06a25014905b55cbd6ca55ef245d09b15d4a9b78ec98fd6fe59b318047914698ece8ef85b6a161f115a227ee5346c5f1698bcb74174bca77dbde9968 SHA512 8f1660e55bd8730ab816109fe802edd14c2ab46aed0db7f04e520b371a9f7296c3ab85d42af64174b0989fa55bb089b1450dcee28e67dbb996471235dbba35c1
DIST julia-Pkg-49908bffe83790bc7cf3c5d46faf3667f8902ad4.tar.gz 389738 BLAKE2B 1ed9201badf0a1db5142e0566bfe085b364e4681670937ac5fa53c15312ff8eb29d5e783b75fe3f4f379b041ba38c66ce94962fa7d98fcfd0b7b49acd1749d69 SHA512 a85aa80b3080794a8e3ae5ce54856e63457c461659c12fde5dde1b5ec33176ea06af49ee516d01ccd7b78d8358de2fe0ffcd5c6a6d5a5088cdcd76a0133780eb
DIST julia-UnicodeData-13.0.0.txt 1851767 BLAKE2B 72bbcf352f2f6a004abb3f351fe5da160e83644feea8de0ca154b5a1aa78f36cb04b252d0c7b64a5eeca388e600b2875bb76bc2746ee799a1a6eff97c1fe8b06 SHA512 1a4a662e2ab33469976bf5f91aa6933ed9b73f6d4179a2daffb349e1869d7d6cfa885b164e82d15dcdad7458cd451c81add58d875eb0c70de854589dc97b2055
DIST julia-dsfmt-2.2.3.tar.gz 291773 BLAKE2B 6ffae90494d72527920c80fc0fb005da1c7b84f8a03a7ecb0789434c0fff97359e5098e85431896dffccc7d5148c414e847aaba5feef648b8788421a466ff65e SHA512 6d8ddcd01aab3f9039f4f0288a8af53e290cc2f293ed8c4a8c9f3b3f12398e7eedfce8016117b425766ba89c61c86c13b3e420035b5f9bf91315b8b814c03662
-DIST julia-dsfmt-2.2.4.tar.gz 4984255 BLAKE2B 6119445d93cb45faab28dfb52a18c07cd5703b243b3cddde35fff7a5e948fa8788dfe8428ae8e0a52604f91ac07fe7b3bb0f6c438ef93b5257b42baee9dfdec5 SHA512 fe84e986cbf198172340adfac0436b08f087643eca3f1ceccacde146cbfd8c41e3eb0dfbb062f7ca5f462db13c386abd7c269bc0cbefc9a0ecf97a8a8870a2e4
DIST julia-libuv-1fcc6d66f9df74189c74d3d390f02202bb7db953.tar.gz 1590342 BLAKE2B eca658f74421587aec78cb38f5a712033afb072e6425a6ce28fd5d4bac61e41cacbd5a850c1f2b29c386b944d1d9c4f16b7d090f7d2dd6b963b5dbc94ae18981 SHA512 70b0c738a60b4e476750b7de8d120e735359e2c36fcb3a8a38628a0ae326210ed3b15d793dfd5443d7aa5603e83e7d99f567aa4c1696846d950df9f83648669c
DIST julia-libuv-35b1504507a7a4168caae3d78db54d1121b121e1.tar.gz 1577394 BLAKE2B 8ab36f781619f710a64ddc6cf257a4c2f6d27ac22e33ed6f184902d0c6cc3a3941254e0a825071fcd57f869e3ccc5eaf71856539cf6b484358d5aafe383000a9 SHA512 5932e9105346e952fd0f51f79898e5b9c993261ec1558408437647ab3b3ce282562f1e0a16db5704cb66e7aa7a4c6a75dd7f0da498a98b1b6af48da88b4869f0
DIST julia-libuv-fb3e3364c33ae48c827f6b103e05c3f0e78b79a9.tar.gz 1643008 BLAKE2B b2a121e0b94cd1f5d40e292fc2356e8940bf8dfe1e6a200b50caf60def1982b705d1d42dd234e9e8b0aa70439bf34a5bce71761424623cbfcd20c9131ce09c25 SHA512 29947c236aef8931be4767df1cd8404ee9b036ee107b31cbce6fad9a97743df57d068b15bc4bd00320b9b81cd879258a9ec9dc675853e424ccdb8d6bdd226240
DIST julia-libwhich-81e9723c0273d78493dc8c8ed570f68d9ce7e89e.tar.gz 4183 BLAKE2B c932e23b1b476d3fd16cf6f451efd5fc6d9c1ec2c53e8ac086340a100817d9b30dae3eff50b284a42c09b2bbae30b9e2fd38b2881f8cbf4974a89f3bd0c87599 SHA512 6fb77b715d70d9bc95a8546c3bf97bd3677c7ea344b88bb5bc3bbfac9dceabe8a8cde7a0f64dec884cde802e4a3000e30837d3f824b5a9242348c4fe061526a3
DIST julia-utf8proc-0890a538bf8238cded9be0c81171f57e43f2c755.tar.gz 155521 BLAKE2B 32dc1a8fb641e89057d317e579f1802b7f7dfbdbea7f91c01b282b9a88c2fc6143743d5e45f46d6d465857cfe1b28bd39e9a0da19e80516536c57cb62b139d27 SHA512 95d6dba2bbdfc5003f6d21fd02c926c7db9661895010041aacee55fa11dc2524bcffaa90965e2a9a8f2a9e49e93ec7572d6a4de6d5d9f9e075b787537864ea20
-DIST julia-utf8proc-3203baa7374d67132384e2830b2183c92351bffc.tar.gz 182914 BLAKE2B 73ebddea183a5993528b1671d365520bea5087e169c79dde33d225cd19af6daa43624acf1afa52da1fd22cd155819e0497830740d70387d10a94de0397c1f5c0 SHA512 912d51e5c2daf80865e862daba2971e3a77b224d40179225d5908385d2f7f543a92cd2d9b6cecacfab185d8bd8f2732cad7a9d217f25f1e10a77083fda74f0b5
DIST llvm-11.0.1.src.tar.xz 38914796 BLAKE2B ccdec0632c9cf5fae8e6947c266136e04dc8c609e2ca9c1efb1205767d9181301e0de14601d11e2f27ec0ebc0749858a5f1089d8a40a9ae3f22582cbf6abef6e SHA512 b42c67ef88e09dd94171f85cdf49a421a15cfc82ff715c7ce6de22f98cefbe6c7cdf6bf4af7ca017d56ecf6aa3e36df3d823a78cf2dd5312de4301b54b43dbe8
DIST llvm-9.0.1.src.tar.xz 33035112 BLAKE2B 5ae7ac42507cb14983eec0785dfc9b9c788cae75d5493ddf6734da55d3733cc90e35634aa39aa536654d4b68c3ccb7c2f989746f21c634c8989a57d9d32a15b2 SHA512 bfb6960a4dd1e18f4005f324f478a781c69e8ec7c20569d9b243fcb9372dc7733b254f26c683373537990cc9c109c78eaf0f65449629ee17caca1bce9b9ccccd
diff --git a/dev-lang/julia/files/julia-1.6.0-fix-system-csl.patch b/dev-lang/julia/files/julia-1.6.0-fix-system-csl.patch
new file mode 100644
index 000000000000..90a097197bff
--- /dev/null
+++ b/dev-lang/julia/files/julia-1.6.0-fix-system-csl.patch
@@ -0,0 +1,271 @@
+From 71d7a8a8c12b72bfa362ae955d2ce4dfbdf5b8ba Mon Sep 17 00:00:00 2001
+From: Elliot Saba <staticfloat@gmail.com>
+Date: Fri, 26 Mar 2021 18:40:07 +0000
+Subject: [PATCH 1/2] [build] Add `symlink_system_library` calls for CSL
+
+We differentiate between a `USE_BINARYBUILDER_CSL=0` configuration
+(where we copy the CSL libraries into the Julia build tree) versus a
+`USE_SYSTEM_CSL=1` configuration (where we symlink them in a manner
+similar to other system libararies)
+---
+ Make.inc | 23 +++++++++++++-
+ base/Makefile | 88 ++++++++++++++++++++++++++++++---------------------
+ deps/csl.mk | 40 ++++++++---------------
+ 3 files changed, 87 insertions(+), 64 deletions(-)
+
+diff --git a/Make.inc b/Make.inc
+index 519720a861ed7..7cba05806e684 100644
+--- a/Make.inc
++++ b/Make.inc
+@@ -596,6 +596,21 @@ else
+ SHLIB_EXT := so
+ endif
+
++ifeq ($(OS),WINNT)
++define versioned_libname
++$$(if $(2),$(1)-$(2).$(SHLIB_EXT),$(1).$(SHLIB_EXT))
++endef
++else ifeq ($(OS),Darwin)
++define versioned_libname
++$$(if $(2),$(1).$(2).$(SHLIB_EXT),$(1).$(SHLIB_EXT))
++endef
++else
++define versioned_libname
++$$(if $(2),$(1).$(SHLIB_EXT).$(2),$(1).$(SHLIB_EXT))
++endef
++endif
++
++
+ ifeq ($(SHLIB_EXT), so)
+ define SONAME_FLAGS
+ -Wl,-soname=$1
+@@ -1147,6 +1162,8 @@ BB_TRIPLET_LIBGFORTRAN := $(subst $(SPACE),-,$(filter-out cxx%,$(subst -,$(SPACE
+ BB_TRIPLET_CXXABI := $(subst $(SPACE),-,$(filter-out libgfortran%,$(subst -,$(SPACE),$(BB_TRIPLET_LIBGFORTRAN_CXXABI))))
+ BB_TRIPLET := $(subst $(SPACE),-,$(filter-out cxx%,$(filter-out libgfortran%,$(subst -,$(SPACE),$(BB_TRIPLET_LIBGFORTRAN_CXXABI)))))
+
++LIBGFORTRAN_VERSION := $(subst libgfortran,,$(filter libgfortran%,$(subst -,$(SPACE),$(BB_TRIPLET_LIBGFORTRAN))))
++
+ # This is the set of projects that BinaryBuilder dependencies are hooked up for.
+ BB_PROJECTS := BLASTRAMPOLINE OPENBLAS LLVM SUITESPARSE OPENLIBM GMP MBEDTLS LIBSSH2 NGHTTP2 MPFR CURL LIBGIT2 PCRE LIBUV LIBUNWIND DSFMT OBJCONV ZLIB P7ZIP CSL
+ define SET_BB_DEFAULT
+@@ -1479,8 +1496,12 @@ ifneq ($(findstring $(OS),Linux FreeBSD),)
+ LIBGCC_NAME := libgcc_s.$(SHLIB_EXT).1
+ endif
+
+-
++# USE_SYSTEM_CSL causes it to get symlinked into build_private_shlibdir
++ifeq ($(USE_SYSTEM_CSL),1)
++LIBGCC_BUILD_DEPLIB := $(call dep_lib_path,$(build_libdir),$(build_private_shlibdir)/$(LIBGCC_NAME))
++else
+ LIBGCC_BUILD_DEPLIB := $(call dep_lib_path,$(build_libdir),$(build_shlibdir)/$(LIBGCC_NAME))
++endif
+ LIBGCC_INSTALL_DEPLIB := $(call dep_lib_path,$(libdir),$(private_shlibdir)/$(LIBGCC_NAME))
+
+ # USE_SYSTEM_LIBM and USE_SYSTEM_OPENLIBM causes it to get symlinked into build_private_shlibdir
+diff --git a/base/Makefile b/base/Makefile
+index e024e546f94d3..2bef6aab7f1f4 100644
+--- a/base/Makefile
++++ b/base/Makefile
+@@ -169,53 +169,69 @@ endif
+ # echo "$$P"
+
+ define symlink_system_library
+-symlink_$1: $$(build_private_libdir)/$1.$$(SHLIB_EXT)
+-$$(build_private_libdir)/$1.$$(SHLIB_EXT):
+- REALPATH=`$$(call spawn,$$(build_depsbindir)/libwhich) -p $$(notdir $$@)` && \
+- $$(call resolve_path,REALPATH) && \
+- [ -e "$$$$REALPATH" ] && \
+- ([ ! -e "$$@" ] || rm "$$@") && \
+- echo ln -sf "$$$$REALPATH" "$$@" && \
+- ln -sf "$$$$REALPATH" "$$@"
+-ifneq ($2,)
+-ifneq ($$(USE_SYSTEM_$2),0)
+-SYMLINK_SYSTEM_LIBRARIES += symlink_$1
+-endif
++libname_$2 := $$(notdir $(call versioned_libname,$2,$3))
++libpath_$2 := $$(shell $$(call spawn,$$(build_depsbindir)/libwhich) -p $$(libname_$2) 2>/dev/null)
++symlink_$2: $$(build_private_libdir)/$$(libname_$2)
++$$(build_private_libdir)/$$(libname_$2):
++ @if [ -e "$$(libpath_$2)" ]; then \
++ REALPATH=$$(libpath_$2); \
++ $$(call resolve_path,REALPATH) && \
++ [ -e "$$$$REALPATH" ] && \
++ ([ ! -e "$$@" ] || rm "$$@") && \
++ echo ln -sf "$$$$REALPATH" "$$@" && \
++ ln -sf "$$$$REALPATH" "$$@"; \
++ else \
++ if [ "$4" != "ALLOW_FAILURE" ]; then \
++ echo "System library symlink failure: Unable to locate $$(libname_$2) on your system!" >&2; \
++ false; \
++ fi; \
++ fi
++ifneq ($$(USE_SYSTEM_$1),0)
++SYMLINK_SYSTEM_LIBRARIES += symlink_$2
+ endif
+ endef
+
+ # the following excludes: libuv.a, libutf8proc.a
+
+-$(eval $(call symlink_system_library,$(LIBMNAME)))
+ ifneq ($(USE_SYSTEM_LIBM),0)
+-SYMLINK_SYSTEM_LIBRARIES += symlink_$(LIBMNAME)
++$(eval $(call symlink_system_library,LIBM,$(LIBMNAME)))
+ else ifneq ($(USE_SYSTEM_OPENLIBM),0)
+-SYMLINK_SYSTEM_LIBRARIES += symlink_$(LIBMNAME)
++$(eval $(call symlink_system_library,OPENLIBM,$(LIBMNAME)))
+ endif
+
+-$(eval $(call symlink_system_library,libpcre2-8,PCRE))
+-$(eval $(call symlink_system_library,libdSFMT,DSFMT))
+-$(eval $(call symlink_system_library,$(LIBBLASNAME),BLAS))
++$(eval $(call symlink_system_library,CSL,libgcc_s,1))
++ifneq (,$(LIBGFORTRAN_VERSION))
++$(eval $(call symlink_system_library,CSL,libgfortran,$(LIBGFORTRAN_VERSION)))
++endif
++$(eval $(call symlink_system_library,CSL,libquadmath,0))
++$(eval $(call symlink_system_library,CSL,libstdc++,6))
++# We allow libssp, libatomic and libgomp to fail as they are not available on all systems
++$(eval $(call symlink_system_library,CSL,libssp,0,ALLOW_FAILURE))
++$(eval $(call symlink_system_library,CSL,libatomic,1,ALLOW_FAILURE))
++$(eval $(call symlink_system_library,CSL,libgomp,1,ALLOW_FAILURE))
++$(eval $(call symlink_system_library,PCRE,libpcre2-8))
++$(eval $(call symlink_system_library,DSFMT,libdSFMT))
++$(eval $(call symlink_system_library,BLAS,$(LIBBLASNAME)))
+ ifneq ($(LIBLAPACKNAME),$(LIBBLASNAME))
+-$(eval $(call symlink_system_library,$(LIBLAPACKNAME),LAPACK))
++$(eval $(call symlink_system_library,LAPACK,$(LIBLAPACKNAME)))
+ endif
+-$(eval $(call symlink_system_library,libgmp,GMP))
+-$(eval $(call symlink_system_library,libmpfr,MPFR))
+-$(eval $(call symlink_system_library,libmbedtls,MBEDTLS))
+-$(eval $(call symlink_system_library,libmbedcrypto,MBEDTLS))
+-$(eval $(call symlink_system_library,libmbedx509,MBEDTLS))
+-$(eval $(call symlink_system_library,libssh2,LIBSSH2))
+-$(eval $(call symlink_system_library,libnghttp2,NGHTTP2))
+-$(eval $(call symlink_system_library,libcurl,CURL))
+-$(eval $(call symlink_system_library,libgit2,LIBGIT2))
+-$(eval $(call symlink_system_library,libamd,SUITESPARSE))
+-$(eval $(call symlink_system_library,libcamd,SUITESPARSE))
+-$(eval $(call symlink_system_library,libccolamd,SUITESPARSE))
+-$(eval $(call symlink_system_library,libcholmod,SUITESPARSE))
+-$(eval $(call symlink_system_library,libcolamd,SUITESPARSE))
+-$(eval $(call symlink_system_library,libumfpack,SUITESPARSE))
+-$(eval $(call symlink_system_library,libspqr,SUITESPARSE))
+-$(eval $(call symlink_system_library,libsuitesparseconfig,SUITESPARSE))
++$(eval $(call symlink_system_library,GMP,libgmp))
++$(eval $(call symlink_system_library,MPFR,libmpfr))
++$(eval $(call symlink_system_library,MBEDTLS,libmbedtls))
++$(eval $(call symlink_system_library,MBEDTLS,libmbedcrypto))
++$(eval $(call symlink_system_library,MBEDTLS,libmbedx509))
++$(eval $(call symlink_system_library,LIBSSH2,libssh2))
++$(eval $(call symlink_system_library,NGHTTP2,libnghttp2))
++$(eval $(call symlink_system_library,CURL,libcurl))
++$(eval $(call symlink_system_library,LIBGIT2,libgit2))
++$(eval $(call symlink_system_library,SUITESPARSE,libamd))
++$(eval $(call symlink_system_library,SUITESPARSE,libcamd))
++$(eval $(call symlink_system_library,SUITESPARSE,libccolamd))
++$(eval $(call symlink_system_library,SUITESPARSE,libcholmod))
++$(eval $(call symlink_system_library,SUITESPARSE,libcolamd))
++$(eval $(call symlink_system_library,SUITESPARSE,libumfpack))
++$(eval $(call symlink_system_library,SUITESPARSE,libspqr))
++$(eval $(call symlink_system_library,SUITESPARSE,libsuitesparseconfig))
+ # EXCLUDED LIBRARIES (installed/used, but not vendored for use with dlopen):
+ # libunwind
+ endif # WINNT
+diff --git a/deps/csl.mk b/deps/csl.mk
+index 095d4ceec4a1e..423201cbb5a0c 100644
+--- a/deps/csl.mk
++++ b/deps/csl.mk
+@@ -19,48 +19,34 @@ $$(build_shlibdir)/$(1): | $$(build_shlibdir)
+ [ -n "$$$${SRC_LIB}" ] && cp $$$${SRC_LIB} $$(build_shlibdir)
+ endef
+
+-ifeq ($(OS),WINNT)
+-define gen_libname
+-$$(if $(2),lib$(1)-$(2).$(SHLIB_EXT),lib$(1).$(SHLIB_EXT))
+-endef
+-else ifeq ($(OS),Darwin)
+-define gen_libname
+-$$(if $(2),lib$(1).$(2).$(SHLIB_EXT),lib$(1).$(SHLIB_EXT))
+-endef
+-else
+-define gen_libname
+-$$(if $(2),lib$(1).$(SHLIB_EXT).$(2),lib$(1).$(SHLIB_EXT))
+-endef
+-endif
+-
+ # libgfortran has multiple names; we're just going to copy any version we can find
+ # Since we're only looking in the location given by `$(FC)` this should only succeed for one.
+-$(eval $(call copy_csl,$(call gen_libname,gfortran,3)))
+-$(eval $(call copy_csl,$(call gen_libname,gfortran,4)))
+-$(eval $(call copy_csl,$(call gen_libname,gfortran,5)))
++$(eval $(call copy_csl,$(call versioned_libname,libgfortran,3)))
++$(eval $(call copy_csl,$(call versioned_libname,libgfortran,4)))
++$(eval $(call copy_csl,$(call versioned_libname,libgfortran,5)))
+
+ # These are all libraries that we should always have
+-$(eval $(call copy_csl,$(call gen_libname,quadmath,0)))
+-$(eval $(call copy_csl,$(call gen_libname,stdc++,6)))
+-$(eval $(call copy_csl,$(call gen_libname,ssp,0)))
+-$(eval $(call copy_csl,$(call gen_libname,atomic,1)))
+-$(eval $(call copy_csl,$(call gen_libname,gomp,1)))
++$(eval $(call copy_csl,$(call versioned_libname,libquadmath,0)))
++$(eval $(call copy_csl,$(call versioned_libname,libstdc++,6)))
++$(eval $(call copy_csl,$(call versioned_libname,libssp,0)))
++$(eval $(call copy_csl,$(call versioned_libname,libatomic,1)))
++$(eval $(call copy_csl,$(call versioned_libname,libgomp,1)))
+
+ ifeq ($(OS),WINNT)
+ # Windwos has special gcc_s names
+ ifeq ($(ARCH),i686)
+-$(eval $(call copy_csl,$(call gen_libname,gcc_s_sjlj,1)))
++$(eval $(call copy_csl,$(call versioned_libname,libgcc_s_sjlj,1)))
+ else
+-$(eval $(call copy_csl,$(call gen_libname,gcc_s_seh,1)))
++$(eval $(call copy_csl,$(call versioned_libname,libgcc_s_seh,1)))
+ endif
+ else
+-$(eval $(call copy_csl,$(call gen_libname,gcc_s,1)))
++$(eval $(call copy_csl,$(call versioned_libname,libgcc_s,1)))
+ endif
+ # winpthread is only Windows, pthread is only others
+ ifeq ($(OS),WINNT)
+-$(eval $(call copy_csl,$(call gen_libname,winpthread,1)))
++$(eval $(call copy_csl,$(call versioned_libname,libwinpthread,1)))
+ else
+-$(eval $(call copy_csl,$(call gen_libname,pthread,0)))
++$(eval $(call copy_csl,$(call versioned_libname,libpthread,0)))
+ endif
+
+ get-csl:
+
+From 6536b8519b25db844f2a1866d056879cb87d1c66 Mon Sep 17 00:00:00 2001
+From: Elliot Saba <staticfloat@gmail.com>
+Date: Fri, 26 Mar 2021 22:32:04 +0000
+Subject: [PATCH 2/2] Expand `JL_PRIVATE_LIBS-1` for versioned library names as
+ well
+
+Without this, we fail to install things like `libgcc_s.so.1` when
+installed into the private libdir by `symlink_system_libraries`.
+---
+ Makefile | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 823ff3b86339d..e08f0e959e1b3 100644
+--- a/Makefile
++++ b/Makefile
+@@ -290,8 +290,11 @@ endif
+ done \
+ done
+ for suffix in $(JL_PRIVATE_LIBS-1) ; do \
+- lib=$(build_private_libdir)/$${suffix}.$(SHLIB_EXT); \
+- $(INSTALL_M) $$lib $(DESTDIR)$(private_libdir) ; \
++ for lib in $(build_private_libdir)/$${suffix}.$(SHLIB_EXT)*; do \
++ if [ "$${lib##*.}" != "dSYM" ]; then \
++ $(INSTALL_M) $$lib $(DESTDIR)$(private_libdir) ; \
++ fi \
++ done \
+ done
+ endif
+ # Install `7z` into libexec/
diff --git a/dev-lang/julia/julia-1.6.0.ebuild b/dev-lang/julia/julia-1.6.0.ebuild
index b6b3aa64075e..5296e35163d6 100644
--- a/dev-lang/julia/julia-1.6.0.ebuild
+++ b/dev-lang/julia/julia-1.6.0.ebuild
@@ -8,25 +8,17 @@ inherit llvm pax-utils toolchain-funcs
# correct versions for stdlibs are in deps/checksums
# for everything else, run with network-sandbox and wait for the crash
-MY_PV="${PV//_rc/-rc}"
-MY_DSFMT_V="2.2.4"
MY_LIBUV_V="fb3e3364c33ae48c827f6b103e05c3f0e78b79a9"
MY_LIBWHICH_V="81e9723c0273d78493dc8c8ed570f68d9ce7e89e"
MY_LLVM_V="11.0.1"
-MY_PKG_V="05fa7f93f73afdabd251247d03144de9f7b36b50"
-MY_UNICODE_V="13.0.0"
-MY_UTF8PROC_V="3203baa7374d67132384e2830b2183c92351bffc"
DESCRIPTION="High-performance programming language for technical computing"
HOMEPAGE="https://julialang.org/"
+
SRC_URI="
- https://github.com/JuliaLang/${PN}/releases/download/v${MY_PV}/${PN}-${MY_PV}.tar.gz
+ https://github.com/JuliaLang/julia/releases/download/v${PV}/${P}.tar.gz
https://api.github.com/repos/JuliaLang/libuv/tarball/${MY_LIBUV_V} -> ${PN}-libuv-${MY_LIBUV_V}.tar.gz
- https://api.github.com/repos/JuliaLang/utf8proc/tarball/${MY_UTF8PROC_V} -> ${PN}-utf8proc-${MY_UTF8PROC_V}.tar.gz
https://api.github.com/repos/vtjnash/libwhich/tarball/${MY_LIBWHICH_V} -> ${PN}-libwhich-${MY_LIBWHICH_V}.tar.gz
- https://github.com/MersenneTwister-Lab/dSFMT/archive/v${MY_DSFMT_V}.tar.gz -> ${PN}-dsfmt-${MY_DSFMT_V}.tar.gz
- http://www.unicode.org/Public/${MY_UNICODE_V}/ucd/UnicodeData.txt -> ${PN}-UnicodeData-${MY_UNICODE_V}.txt
- https://dev.gentoo.org/~patrick/Pkg-${MY_PKG_V}.tar.gz -> ${PN}-Pkg-${MY_PKG_V}.tar.gz
!system-llvm? ( https://github.com/llvm/llvm-project/releases/download/llvmorg-${MY_LLVM_V}/llvm-${MY_LLVM_V}.src.tar.xz )
"
@@ -41,19 +33,16 @@ RDEPEND="
"
LLVM_MAX_SLOT=11
-# Silence some QA warnings. The julia build system does not use user
-# defined CFLAGS for some of the generated binary modules.
-QA_FLAGS_IGNORED='.*'
-
RDEPEND+="
- dev-libs/double-conversion:0=
+ app-arch/p7zip
dev-libs/gmp:0=
dev-libs/libgit2:0
>=dev-libs/libpcre2-10.23:0=[jit,unicode]
dev-libs/mpfr:0=
- dev-libs/openspecfun
- net-libs/libssh2
+ dev-libs/libutf8proc:0=
+ dev-util/patchelf
>=net-libs/mbedtls-2.2
+ net-misc/curl[http2,ssh]
sci-libs/amd:0=
sci-libs/arpack:0=
sci-libs/camd:0=
@@ -64,10 +53,8 @@ RDEPEND+="
sci-libs/openlibm:0=
sci-libs/spqr:0=
sci-libs/umfpack:0=
- sci-mathematics/glpk:0=
- sci-mathematics/z3
+ >=sci-mathematics/dsfmt-2.2.4
>=sys-libs/libunwind-1.1:0=
- sys-libs/readline:0=
sys-libs/zlib:0=
>=virtual/blas-3.6
virtual/lapack"
@@ -77,37 +64,23 @@ DEPEND="${RDEPEND}
virtual/pkgconfig"
PATCHES=(
- "${FILESDIR}"/${PN}-1.6.0-fix_build_system.patch
- "${FILESDIR}"/${PN}-1.1.0-fix_llvm_install.patch
- "${FILESDIR}"/${PN}-1.4.0-no_symlink_llvm.patch
+ "${FILESDIR}/${PN}"-1.1.0-fix_llvm_install.patch
+ "${FILESDIR}/${PN}"-1.4.0-no_symlink_llvm.patch
+ "${FILESDIR}/${PN}"-1.6.0-fix-system-csl.patch
)
-S="${WORKDIR}/${PN}-${MY_PV}"
-
pkg_setup() {
use system-llvm && llvm_pkg_setup
}
src_unpack() {
- tounpack=(${A})
+ local tounpack=(${A})
# the main source tree, followed by deps
- unpack "${A/%\ */}"
+ unpack "${tounpack[0]}"
mkdir -p "${S}/deps/srccache/"
for i in "${tounpack[@]:1}"; do
- if [[ $i == *Pkg* ]] || [[ $i = *Statistics* ]]; then
- # Bundled Pkg and Statistics packages go into ./stdlib
- local tarball="${i#julia-}"
- cp "${DISTDIR}/${i}" "${S}/stdlib/srccache/${tarball}" || die
- # and we have to fix up the sha1sum
- local name="${tarball%-*}"
- local sha1="${tarball#*-}"
- sha1="${sha1%.tar*}"
- einfo "using patched stdlib package \"${name}\""
- sed -i -e "s/PKG_SHA1 = .*/PKG_SHA1 = ${sha1}/" "${S}/stdlib/Pkg.version" || die
- else
- cp "${DISTDIR}/${i}" "${S}/deps/srccache/${i#julia-}" || die
- fi
+ cp "${DISTDIR}/${i}" "${S}/deps/srccache/${i#julia-}" || die
done
}
@@ -120,84 +93,72 @@ src_prepare() {
# - respect EPREFIX and Gentoo specific paths
sed -i \
- -e "s|GENTOOCFLAGS|${CFLAGS}|g" \
- -e "s|/usr/include|${EPREFIX}/usr/include|g" \
- deps/Makefile || die
-
- sed -i \
- -e "s|GENTOOCFLAGS|${CFLAGS}|g" \
- -e "s|GENTOOLIBDIR|$(get_libdir)|" \
+ -e "\|SHIPFLAGS :=|c\\SHIPFLAGS := ${CFLAGS}" \
Make.inc || die
sed -i \
- -e "s|,lib)|,$(get_libdir))|g" \
- -e "s|\$(BUILD)/lib|\$(BUILD)/$(get_libdir)|g" \
- Makefile || die
-
- sed -i \
-e "s|ar -rcs|$(tc-getAR) -rcs|g" \
src/Makefile || die
# disable doc install starting git fetching
sed -i -e 's~install: $(build_depsbindir)/stringreplace $(BUILDROOT)/doc/_build/html/en/index.html~install: $(build_depsbindir)/stringreplace~' Makefile || die
-
- # now using sha512 additionally, so need to recreate checksum -
- sha512sum "${S}/stdlib/srccache/Pkg-${MY_PKG_V}.tar.gz" | awk '{ print $1; }' > "${S}/deps/checksums/Pkg-${MY_PKG_V}.tar.gz/sha512" || die
}
src_configure() {
- # julia does not play well with the system versions of dsfmt, libuv,
- # and utf8proc
-
use system-llvm && ewarn "You have enabled system-llvm. This is unsupported by upstream and may not work."
+ # julia does not play well with the system versions of libuv
# USE_SYSTEM_LIBM=0 implies using external openlibm
cat <<-EOF > Make.user
+ LOCALBASE:="${EPREFIX}/usr"
+ override prefix:="${EPREFIX}/usr"
+ override libdir:="\$(prefix)/$(get_libdir)"
+ override CC:=$(tc-getCC)
+ override CXX:=$(tc-getCXX)
+ override AR:=$(tc-getAR)
+
+ BUNDLE_DEBUG_LIBS:=0
USE_BINARYBUILDER:=0
+ USE_SYSTEM_CSL:=1
USE_SYSTEM_LLVM:=$(usex system-llvm 1 0)
USE_SYSTEM_LIBUNWIND:=1
USE_SYSTEM_PCRE:=1
USE_SYSTEM_LIBM:=0
USE_SYSTEM_OPENLIBM:=1
- USE_SYSTEM_DSFMT:=0
+ USE_SYSTEM_DSFMT:=1
USE_SYSTEM_BLAS:=1
USE_SYSTEM_LAPACK:=1
USE_SYSTEM_GMP:=1
USE_SYSTEM_MPFR:=1
USE_SYSTEM_SUITESPARSE:=1
USE_SYSTEM_LIBUV:=0
- USE_SYSTEM_UTF8PROC:=0
+ USE_SYSTEM_UTF8PROC:=1
USE_SYSTEM_MBEDTLS:=1
USE_SYSTEM_LIBSSH2:=1
+ USE_SYSTEM_NGHTTP2:=1
USE_SYSTEM_CURL:=1
USE_SYSTEM_LIBGIT2:=1
USE_SYSTEM_PATCHELF:=1
USE_SYSTEM_ZLIB:=1
USE_SYSTEM_P7ZIP:=1
- VERBOSE=1
- libdir="${EROOT}/usr/$(get_libdir)"
+ VERBOSE:=1
EOF
}
src_compile() {
-
# Julia accesses /proc/self/mem on Linux
addpredict /proc/self/mem
- emake \
- prefix="${EPREFIX}/usr" DESTDIR="${D}" \
- CC="$(tc-getCC)" CXX="$(tc-getCXX)" AR="$(tc-getAR)"
+ default
pax-mark m "$(file usr/bin/julia-* | awk -F : '/ELF/ {print $1}')"
}
src_install() {
- emake install \
- prefix="${EPREFIX}/usr" DESTDIR="${D}" \
- CC="$(tc-getCC)" CXX="$(tc-getCXX)" AR="$(tc-getAR)" \
- BUNDLE_DEBUG_LIBS=0
+ emake install DESTDIR="${D}"
if ! use system-llvm ; then
- cp "${S}/usr/lib/libLLVM"-?jl.so "${ED}/usr/$(get_libdir)/julia/" || die
+ local llvmslot=$(ver_cut 1 ${MY_LLVM_V})
+ cp "${S}/usr/lib/libLLVM-${llvmslot}jl.so" "${ED}/usr/$(get_libdir)/julia/" || die
fi
dodoc README.md