From f9eec87f0441f022f4851e4d78813d835f25528f Mon Sep 17 00:00:00 2001 From: Jeffrey Lin Date: Sun, 28 Mar 2021 02:15:34 -0400 Subject: dev-lang/julia: add 1.6.0 - dSFMT patches have been upstreamed, so split that into a package used by ::science. Also use system version of dev-libs/libutf8proc. - LLVM 11 is now supported. - Add curl as a direct dependency. The ssh USE flag is not strictly required unless cloning packages over ssh, but it will suppress errors and should be relatively small. Also, p7zip is needed for Pkg. - Remove some old baggage: - dev-libs/double-conversion: compiles fine without. - dev-libs/openspecfun: compiles fine without. - net-libs/libssh2: indirect dependency; add curl[ssh] instead. - sci-mathematics/glpk: hasn't been a dependency in years. - sci-mathematics/z3: doesn't seem to be an explicit dependency. - sys-libs/readline: hasn't been a dependency in years. - No need for separate stdlibs as upstream packs them into tarball. - Delete some sed commands where the lines to be changed no longer exist. Replace a patch+sed with a single sed. - Remove QA warning suppression now that upstream allows using system compiler support libraries (proper support for this was added after the 1.6.0 release, so patch is backported). - Sync Make.user with Make.inc and move make variables there. Closes: https://bugs.gentoo.org/728726 Closes: https://bugs.gentoo.org/735764 Closes: https://bugs.gentoo.org/778503 Closes: https://bugs.gentoo.org/780444 Closes: https://bugs.gentoo.org/780642 Signed-off-by: Jeffrey Lin Signed-off-by: Matthias Maier --- dev-lang/julia/Manifest | 3 - .../julia/files/julia-1.6.0-fix-system-csl.patch | 271 +++++++++++++++++++++ dev-lang/julia/julia-1.6.0.ebuild | 103 +++----- 3 files changed, 303 insertions(+), 74 deletions(-) create mode 100644 dev-lang/julia/files/julia-1.6.0-fix-system-csl.patch (limited to 'dev-lang') 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 +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 +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 -- cgit v1.2.3-65-gdbad