Gentoo Archives: gentoo-commits

From: Matthias Maier <tamiko@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-lang/julia/, dev-lang/julia/files/
Date: Thu, 08 Apr 2021 02:31:23
Message-Id: 1617847537.f9eec87f0441f022f4851e4d78813d835f25528f.tamiko@gentoo
1 commit: f9eec87f0441f022f4851e4d78813d835f25528f
2 Author: Jeffrey Lin <jeffrey <AT> icurse <DOT> nl>
3 AuthorDate: Sun Mar 28 06:15:34 2021 +0000
4 Commit: Matthias Maier <tamiko <AT> gentoo <DOT> org>
5 CommitDate: Thu Apr 8 02:05:37 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f9eec87f
7
8 dev-lang/julia: add 1.6.0
9
10 - dSFMT patches have been upstreamed, so split that into a package used
11 by ::science. Also use system version of dev-libs/libutf8proc.
12
13 - LLVM 11 is now supported.
14
15 - Add curl as a direct dependency. The ssh USE flag is not strictly
16 required unless cloning packages over ssh, but it will suppress errors
17 and should be relatively small. Also, p7zip is needed for Pkg.
18
19 - Remove some old baggage:
20 - dev-libs/double-conversion: compiles fine without.
21 - dev-libs/openspecfun: compiles fine without.
22 - net-libs/libssh2: indirect dependency; add curl[ssh] instead.
23 - sci-mathematics/glpk: hasn't been a dependency in years.
24 - sci-mathematics/z3: doesn't seem to be an explicit dependency.
25 - sys-libs/readline: hasn't been a dependency in years.
26
27 - No need for separate stdlibs as upstream packs them into tarball.
28
29 - Delete some sed commands where the lines to be changed no longer
30 exist. Replace a patch+sed with a single sed.
31
32 - Remove QA warning suppression now that upstream allows using
33 system compiler support libraries (proper support for this was
34 added after the 1.6.0 release, so patch is backported).
35
36 - Sync Make.user with Make.inc and move make variables there.
37
38 Closes: https://bugs.gentoo.org/728726
39 Closes: https://bugs.gentoo.org/735764
40 Closes: https://bugs.gentoo.org/778503
41 Closes: https://bugs.gentoo.org/780444
42 Closes: https://bugs.gentoo.org/780642
43 Signed-off-by: Jeffrey Lin <jeffrey <AT> icurse.nl>
44 Signed-off-by: Matthias Maier <tamiko <AT> gentoo.org>
45
46 dev-lang/julia/Manifest | 3 -
47 .../julia/files/julia-1.6.0-fix-system-csl.patch | 271 +++++++++++++++++++++
48 dev-lang/julia/julia-1.6.0.ebuild | 103 +++-----
49 3 files changed, 303 insertions(+), 74 deletions(-)
50
51 diff --git a/dev-lang/julia/Manifest b/dev-lang/julia/Manifest
52 index 2fafe21372a..50b10817aa4 100644
53 --- a/dev-lang/julia/Manifest
54 +++ b/dev-lang/julia/Manifest
55 @@ -1,16 +1,13 @@
56 DIST julia-1.5.2.tar.gz 6945862 BLAKE2B 9dd9f83fb9ae251f66ae65e14a252b662c3c7d6f92638d91ef6e286032020052e1812f2891270854e0ddeda474afff55c8f87d300550503c1093f4c5e0a51959 SHA512 aa177d03bbde4f368dd2fb14f64d21130531616bcd544af7babbb7fb7c9ee5ea7528c756e10f78468aaffebbcbc6f48e92397c1c13dc3f130b64a82e478f43dc
57 DIST julia-1.5.3.tar.gz 6949901 BLAKE2B 08f8496980a9bbb9effc0c72cb6b7a5ce1dbd1774735caa366ddc1bb5404117111c624a639f6eb48360061f9fc597a7b37dff24f8555f03ebc4a22524cbeb3b8 SHA512 9e644a64fd6e2caf0390a2bc470084406c078244e65b70a2e3b031d5806c1dff780273ccccfe4bccfd8c03778b7d3a44de7a84bd13f3512afe6864efa5a730fc
58 DIST julia-1.6.0.tar.gz 7711314 BLAKE2B 135862347a7f3a954acb8d8e17350fbdda84b4813d8498b862e107836a0d29d6e70a26c39c0c29655e6348a5a3afd5b4d7e9824cb88c9e8d31c4515468f46d5b SHA512 41dea60c08882a8f8f9024eb2285c30dbbc68e2256ed6afd5bf956a1828239128b2f39b4ce733a438eafe3b2324ff06dec5c1eb7c9b0f838b2daa972f587d909
59 -DIST julia-Pkg-05fa7f93f73afdabd251247d03144de9f7b36b50.tar.gz 388550 BLAKE2B ec248dbd06a25014905b55cbd6ca55ef245d09b15d4a9b78ec98fd6fe59b318047914698ece8ef85b6a161f115a227ee5346c5f1698bcb74174bca77dbde9968 SHA512 8f1660e55bd8730ab816109fe802edd14c2ab46aed0db7f04e520b371a9f7296c3ab85d42af64174b0989fa55bb089b1450dcee28e67dbb996471235dbba35c1
60 DIST julia-Pkg-49908bffe83790bc7cf3c5d46faf3667f8902ad4.tar.gz 389738 BLAKE2B 1ed9201badf0a1db5142e0566bfe085b364e4681670937ac5fa53c15312ff8eb29d5e783b75fe3f4f379b041ba38c66ce94962fa7d98fcfd0b7b49acd1749d69 SHA512 a85aa80b3080794a8e3ae5ce54856e63457c461659c12fde5dde1b5ec33176ea06af49ee516d01ccd7b78d8358de2fe0ffcd5c6a6d5a5088cdcd76a0133780eb
61 DIST julia-UnicodeData-13.0.0.txt 1851767 BLAKE2B 72bbcf352f2f6a004abb3f351fe5da160e83644feea8de0ca154b5a1aa78f36cb04b252d0c7b64a5eeca388e600b2875bb76bc2746ee799a1a6eff97c1fe8b06 SHA512 1a4a662e2ab33469976bf5f91aa6933ed9b73f6d4179a2daffb349e1869d7d6cfa885b164e82d15dcdad7458cd451c81add58d875eb0c70de854589dc97b2055
62 DIST julia-dsfmt-2.2.3.tar.gz 291773 BLAKE2B 6ffae90494d72527920c80fc0fb005da1c7b84f8a03a7ecb0789434c0fff97359e5098e85431896dffccc7d5148c414e847aaba5feef648b8788421a466ff65e SHA512 6d8ddcd01aab3f9039f4f0288a8af53e290cc2f293ed8c4a8c9f3b3f12398e7eedfce8016117b425766ba89c61c86c13b3e420035b5f9bf91315b8b814c03662
63 -DIST julia-dsfmt-2.2.4.tar.gz 4984255 BLAKE2B 6119445d93cb45faab28dfb52a18c07cd5703b243b3cddde35fff7a5e948fa8788dfe8428ae8e0a52604f91ac07fe7b3bb0f6c438ef93b5257b42baee9dfdec5 SHA512 fe84e986cbf198172340adfac0436b08f087643eca3f1ceccacde146cbfd8c41e3eb0dfbb062f7ca5f462db13c386abd7c269bc0cbefc9a0ecf97a8a8870a2e4
64 DIST julia-libuv-1fcc6d66f9df74189c74d3d390f02202bb7db953.tar.gz 1590342 BLAKE2B eca658f74421587aec78cb38f5a712033afb072e6425a6ce28fd5d4bac61e41cacbd5a850c1f2b29c386b944d1d9c4f16b7d090f7d2dd6b963b5dbc94ae18981 SHA512 70b0c738a60b4e476750b7de8d120e735359e2c36fcb3a8a38628a0ae326210ed3b15d793dfd5443d7aa5603e83e7d99f567aa4c1696846d950df9f83648669c
65 DIST julia-libuv-35b1504507a7a4168caae3d78db54d1121b121e1.tar.gz 1577394 BLAKE2B 8ab36f781619f710a64ddc6cf257a4c2f6d27ac22e33ed6f184902d0c6cc3a3941254e0a825071fcd57f869e3ccc5eaf71856539cf6b484358d5aafe383000a9 SHA512 5932e9105346e952fd0f51f79898e5b9c993261ec1558408437647ab3b3ce282562f1e0a16db5704cb66e7aa7a4c6a75dd7f0da498a98b1b6af48da88b4869f0
66 DIST julia-libuv-fb3e3364c33ae48c827f6b103e05c3f0e78b79a9.tar.gz 1643008 BLAKE2B b2a121e0b94cd1f5d40e292fc2356e8940bf8dfe1e6a200b50caf60def1982b705d1d42dd234e9e8b0aa70439bf34a5bce71761424623cbfcd20c9131ce09c25 SHA512 29947c236aef8931be4767df1cd8404ee9b036ee107b31cbce6fad9a97743df57d068b15bc4bd00320b9b81cd879258a9ec9dc675853e424ccdb8d6bdd226240
67 DIST julia-libwhich-81e9723c0273d78493dc8c8ed570f68d9ce7e89e.tar.gz 4183 BLAKE2B c932e23b1b476d3fd16cf6f451efd5fc6d9c1ec2c53e8ac086340a100817d9b30dae3eff50b284a42c09b2bbae30b9e2fd38b2881f8cbf4974a89f3bd0c87599 SHA512 6fb77b715d70d9bc95a8546c3bf97bd3677c7ea344b88bb5bc3bbfac9dceabe8a8cde7a0f64dec884cde802e4a3000e30837d3f824b5a9242348c4fe061526a3
68 DIST julia-utf8proc-0890a538bf8238cded9be0c81171f57e43f2c755.tar.gz 155521 BLAKE2B 32dc1a8fb641e89057d317e579f1802b7f7dfbdbea7f91c01b282b9a88c2fc6143743d5e45f46d6d465857cfe1b28bd39e9a0da19e80516536c57cb62b139d27 SHA512 95d6dba2bbdfc5003f6d21fd02c926c7db9661895010041aacee55fa11dc2524bcffaa90965e2a9a8f2a9e49e93ec7572d6a4de6d5d9f9e075b787537864ea20
69 -DIST julia-utf8proc-3203baa7374d67132384e2830b2183c92351bffc.tar.gz 182914 BLAKE2B 73ebddea183a5993528b1671d365520bea5087e169c79dde33d225cd19af6daa43624acf1afa52da1fd22cd155819e0497830740d70387d10a94de0397c1f5c0 SHA512 912d51e5c2daf80865e862daba2971e3a77b224d40179225d5908385d2f7f543a92cd2d9b6cecacfab185d8bd8f2732cad7a9d217f25f1e10a77083fda74f0b5
70 DIST llvm-11.0.1.src.tar.xz 38914796 BLAKE2B ccdec0632c9cf5fae8e6947c266136e04dc8c609e2ca9c1efb1205767d9181301e0de14601d11e2f27ec0ebc0749858a5f1089d8a40a9ae3f22582cbf6abef6e SHA512 b42c67ef88e09dd94171f85cdf49a421a15cfc82ff715c7ce6de22f98cefbe6c7cdf6bf4af7ca017d56ecf6aa3e36df3d823a78cf2dd5312de4301b54b43dbe8
71 DIST llvm-9.0.1.src.tar.xz 33035112 BLAKE2B 5ae7ac42507cb14983eec0785dfc9b9c788cae75d5493ddf6734da55d3733cc90e35634aa39aa536654d4b68c3ccb7c2f989746f21c634c8989a57d9d32a15b2 SHA512 bfb6960a4dd1e18f4005f324f478a781c69e8ec7c20569d9b243fcb9372dc7733b254f26c683373537990cc9c109c78eaf0f65449629ee17caca1bce9b9ccccd
72
73 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
74 new file mode 100644
75 index 00000000000..90a097197bf
76 --- /dev/null
77 +++ b/dev-lang/julia/files/julia-1.6.0-fix-system-csl.patch
78 @@ -0,0 +1,271 @@
79 +From 71d7a8a8c12b72bfa362ae955d2ce4dfbdf5b8ba Mon Sep 17 00:00:00 2001
80 +From: Elliot Saba <staticfloat@×××××.com>
81 +Date: Fri, 26 Mar 2021 18:40:07 +0000
82 +Subject: [PATCH 1/2] [build] Add `symlink_system_library` calls for CSL
83 +
84 +We differentiate between a `USE_BINARYBUILDER_CSL=0` configuration
85 +(where we copy the CSL libraries into the Julia build tree) versus a
86 +`USE_SYSTEM_CSL=1` configuration (where we symlink them in a manner
87 +similar to other system libararies)
88 +---
89 + Make.inc | 23 +++++++++++++-
90 + base/Makefile | 88 ++++++++++++++++++++++++++++++---------------------
91 + deps/csl.mk | 40 ++++++++---------------
92 + 3 files changed, 87 insertions(+), 64 deletions(-)
93 +
94 +diff --git a/Make.inc b/Make.inc
95 +index 519720a861ed7..7cba05806e684 100644
96 +--- a/Make.inc
97 ++++ b/Make.inc
98 +@@ -596,6 +596,21 @@ else
99 + SHLIB_EXT := so
100 + endif
101 +
102 ++ifeq ($(OS),WINNT)
103 ++define versioned_libname
104 ++$$(if $(2),$(1)-$(2).$(SHLIB_EXT),$(1).$(SHLIB_EXT))
105 ++endef
106 ++else ifeq ($(OS),Darwin)
107 ++define versioned_libname
108 ++$$(if $(2),$(1).$(2).$(SHLIB_EXT),$(1).$(SHLIB_EXT))
109 ++endef
110 ++else
111 ++define versioned_libname
112 ++$$(if $(2),$(1).$(SHLIB_EXT).$(2),$(1).$(SHLIB_EXT))
113 ++endef
114 ++endif
115 ++
116 ++
117 + ifeq ($(SHLIB_EXT), so)
118 + define SONAME_FLAGS
119 + -Wl,-soname=$1
120 +@@ -1147,6 +1162,8 @@ BB_TRIPLET_LIBGFORTRAN := $(subst $(SPACE),-,$(filter-out cxx%,$(subst -,$(SPACE
121 + BB_TRIPLET_CXXABI := $(subst $(SPACE),-,$(filter-out libgfortran%,$(subst -,$(SPACE),$(BB_TRIPLET_LIBGFORTRAN_CXXABI))))
122 + BB_TRIPLET := $(subst $(SPACE),-,$(filter-out cxx%,$(filter-out libgfortran%,$(subst -,$(SPACE),$(BB_TRIPLET_LIBGFORTRAN_CXXABI)))))
123 +
124 ++LIBGFORTRAN_VERSION := $(subst libgfortran,,$(filter libgfortran%,$(subst -,$(SPACE),$(BB_TRIPLET_LIBGFORTRAN))))
125 ++
126 + # This is the set of projects that BinaryBuilder dependencies are hooked up for.
127 + BB_PROJECTS := BLASTRAMPOLINE OPENBLAS LLVM SUITESPARSE OPENLIBM GMP MBEDTLS LIBSSH2 NGHTTP2 MPFR CURL LIBGIT2 PCRE LIBUV LIBUNWIND DSFMT OBJCONV ZLIB P7ZIP CSL
128 + define SET_BB_DEFAULT
129 +@@ -1479,8 +1496,12 @@ ifneq ($(findstring $(OS),Linux FreeBSD),)
130 + LIBGCC_NAME := libgcc_s.$(SHLIB_EXT).1
131 + endif
132 +
133 +-
134 ++# USE_SYSTEM_CSL causes it to get symlinked into build_private_shlibdir
135 ++ifeq ($(USE_SYSTEM_CSL),1)
136 ++LIBGCC_BUILD_DEPLIB := $(call dep_lib_path,$(build_libdir),$(build_private_shlibdir)/$(LIBGCC_NAME))
137 ++else
138 + LIBGCC_BUILD_DEPLIB := $(call dep_lib_path,$(build_libdir),$(build_shlibdir)/$(LIBGCC_NAME))
139 ++endif
140 + LIBGCC_INSTALL_DEPLIB := $(call dep_lib_path,$(libdir),$(private_shlibdir)/$(LIBGCC_NAME))
141 +
142 + # USE_SYSTEM_LIBM and USE_SYSTEM_OPENLIBM causes it to get symlinked into build_private_shlibdir
143 +diff --git a/base/Makefile b/base/Makefile
144 +index e024e546f94d3..2bef6aab7f1f4 100644
145 +--- a/base/Makefile
146 ++++ b/base/Makefile
147 +@@ -169,53 +169,69 @@ endif
148 + # echo "$$P"
149 +
150 + define symlink_system_library
151 +-symlink_$1: $$(build_private_libdir)/$1.$$(SHLIB_EXT)
152 +-$$(build_private_libdir)/$1.$$(SHLIB_EXT):
153 +- REALPATH=`$$(call spawn,$$(build_depsbindir)/libwhich) -p $$(notdir $$@)` && \
154 +- $$(call resolve_path,REALPATH) && \
155 +- [ -e "$$$$REALPATH" ] && \
156 +- ([ ! -e "$$@" ] || rm "$$@") && \
157 +- echo ln -sf "$$$$REALPATH" "$$@" && \
158 +- ln -sf "$$$$REALPATH" "$$@"
159 +-ifneq ($2,)
160 +-ifneq ($$(USE_SYSTEM_$2),0)
161 +-SYMLINK_SYSTEM_LIBRARIES += symlink_$1
162 +-endif
163 ++libname_$2 := $$(notdir $(call versioned_libname,$2,$3))
164 ++libpath_$2 := $$(shell $$(call spawn,$$(build_depsbindir)/libwhich) -p $$(libname_$2) 2>/dev/null)
165 ++symlink_$2: $$(build_private_libdir)/$$(libname_$2)
166 ++$$(build_private_libdir)/$$(libname_$2):
167 ++ @if [ -e "$$(libpath_$2)" ]; then \
168 ++ REALPATH=$$(libpath_$2); \
169 ++ $$(call resolve_path,REALPATH) && \
170 ++ [ -e "$$$$REALPATH" ] && \
171 ++ ([ ! -e "$$@" ] || rm "$$@") && \
172 ++ echo ln -sf "$$$$REALPATH" "$$@" && \
173 ++ ln -sf "$$$$REALPATH" "$$@"; \
174 ++ else \
175 ++ if [ "$4" != "ALLOW_FAILURE" ]; then \
176 ++ echo "System library symlink failure: Unable to locate $$(libname_$2) on your system!" >&2; \
177 ++ false; \
178 ++ fi; \
179 ++ fi
180 ++ifneq ($$(USE_SYSTEM_$1),0)
181 ++SYMLINK_SYSTEM_LIBRARIES += symlink_$2
182 + endif
183 + endef
184 +
185 + # the following excludes: libuv.a, libutf8proc.a
186 +
187 +-$(eval $(call symlink_system_library,$(LIBMNAME)))
188 + ifneq ($(USE_SYSTEM_LIBM),0)
189 +-SYMLINK_SYSTEM_LIBRARIES += symlink_$(LIBMNAME)
190 ++$(eval $(call symlink_system_library,LIBM,$(LIBMNAME)))
191 + else ifneq ($(USE_SYSTEM_OPENLIBM),0)
192 +-SYMLINK_SYSTEM_LIBRARIES += symlink_$(LIBMNAME)
193 ++$(eval $(call symlink_system_library,OPENLIBM,$(LIBMNAME)))
194 + endif
195 +
196 +-$(eval $(call symlink_system_library,libpcre2-8,PCRE))
197 +-$(eval $(call symlink_system_library,libdSFMT,DSFMT))
198 +-$(eval $(call symlink_system_library,$(LIBBLASNAME),BLAS))
199 ++$(eval $(call symlink_system_library,CSL,libgcc_s,1))
200 ++ifneq (,$(LIBGFORTRAN_VERSION))
201 ++$(eval $(call symlink_system_library,CSL,libgfortran,$(LIBGFORTRAN_VERSION)))
202 ++endif
203 ++$(eval $(call symlink_system_library,CSL,libquadmath,0))
204 ++$(eval $(call symlink_system_library,CSL,libstdc++,6))
205 ++# We allow libssp, libatomic and libgomp to fail as they are not available on all systems
206 ++$(eval $(call symlink_system_library,CSL,libssp,0,ALLOW_FAILURE))
207 ++$(eval $(call symlink_system_library,CSL,libatomic,1,ALLOW_FAILURE))
208 ++$(eval $(call symlink_system_library,CSL,libgomp,1,ALLOW_FAILURE))
209 ++$(eval $(call symlink_system_library,PCRE,libpcre2-8))
210 ++$(eval $(call symlink_system_library,DSFMT,libdSFMT))
211 ++$(eval $(call symlink_system_library,BLAS,$(LIBBLASNAME)))
212 + ifneq ($(LIBLAPACKNAME),$(LIBBLASNAME))
213 +-$(eval $(call symlink_system_library,$(LIBLAPACKNAME),LAPACK))
214 ++$(eval $(call symlink_system_library,LAPACK,$(LIBLAPACKNAME)))
215 + endif
216 +-$(eval $(call symlink_system_library,libgmp,GMP))
217 +-$(eval $(call symlink_system_library,libmpfr,MPFR))
218 +-$(eval $(call symlink_system_library,libmbedtls,MBEDTLS))
219 +-$(eval $(call symlink_system_library,libmbedcrypto,MBEDTLS))
220 +-$(eval $(call symlink_system_library,libmbedx509,MBEDTLS))
221 +-$(eval $(call symlink_system_library,libssh2,LIBSSH2))
222 +-$(eval $(call symlink_system_library,libnghttp2,NGHTTP2))
223 +-$(eval $(call symlink_system_library,libcurl,CURL))
224 +-$(eval $(call symlink_system_library,libgit2,LIBGIT2))
225 +-$(eval $(call symlink_system_library,libamd,SUITESPARSE))
226 +-$(eval $(call symlink_system_library,libcamd,SUITESPARSE))
227 +-$(eval $(call symlink_system_library,libccolamd,SUITESPARSE))
228 +-$(eval $(call symlink_system_library,libcholmod,SUITESPARSE))
229 +-$(eval $(call symlink_system_library,libcolamd,SUITESPARSE))
230 +-$(eval $(call symlink_system_library,libumfpack,SUITESPARSE))
231 +-$(eval $(call symlink_system_library,libspqr,SUITESPARSE))
232 +-$(eval $(call symlink_system_library,libsuitesparseconfig,SUITESPARSE))
233 ++$(eval $(call symlink_system_library,GMP,libgmp))
234 ++$(eval $(call symlink_system_library,MPFR,libmpfr))
235 ++$(eval $(call symlink_system_library,MBEDTLS,libmbedtls))
236 ++$(eval $(call symlink_system_library,MBEDTLS,libmbedcrypto))
237 ++$(eval $(call symlink_system_library,MBEDTLS,libmbedx509))
238 ++$(eval $(call symlink_system_library,LIBSSH2,libssh2))
239 ++$(eval $(call symlink_system_library,NGHTTP2,libnghttp2))
240 ++$(eval $(call symlink_system_library,CURL,libcurl))
241 ++$(eval $(call symlink_system_library,LIBGIT2,libgit2))
242 ++$(eval $(call symlink_system_library,SUITESPARSE,libamd))
243 ++$(eval $(call symlink_system_library,SUITESPARSE,libcamd))
244 ++$(eval $(call symlink_system_library,SUITESPARSE,libccolamd))
245 ++$(eval $(call symlink_system_library,SUITESPARSE,libcholmod))
246 ++$(eval $(call symlink_system_library,SUITESPARSE,libcolamd))
247 ++$(eval $(call symlink_system_library,SUITESPARSE,libumfpack))
248 ++$(eval $(call symlink_system_library,SUITESPARSE,libspqr))
249 ++$(eval $(call symlink_system_library,SUITESPARSE,libsuitesparseconfig))
250 + # EXCLUDED LIBRARIES (installed/used, but not vendored for use with dlopen):
251 + # libunwind
252 + endif # WINNT
253 +diff --git a/deps/csl.mk b/deps/csl.mk
254 +index 095d4ceec4a1e..423201cbb5a0c 100644
255 +--- a/deps/csl.mk
256 ++++ b/deps/csl.mk
257 +@@ -19,48 +19,34 @@ $$(build_shlibdir)/$(1): | $$(build_shlibdir)
258 + [ -n "$$$${SRC_LIB}" ] && cp $$$${SRC_LIB} $$(build_shlibdir)
259 + endef
260 +
261 +-ifeq ($(OS),WINNT)
262 +-define gen_libname
263 +-$$(if $(2),lib$(1)-$(2).$(SHLIB_EXT),lib$(1).$(SHLIB_EXT))
264 +-endef
265 +-else ifeq ($(OS),Darwin)
266 +-define gen_libname
267 +-$$(if $(2),lib$(1).$(2).$(SHLIB_EXT),lib$(1).$(SHLIB_EXT))
268 +-endef
269 +-else
270 +-define gen_libname
271 +-$$(if $(2),lib$(1).$(SHLIB_EXT).$(2),lib$(1).$(SHLIB_EXT))
272 +-endef
273 +-endif
274 +-
275 + # libgfortran has multiple names; we're just going to copy any version we can find
276 + # Since we're only looking in the location given by `$(FC)` this should only succeed for one.
277 +-$(eval $(call copy_csl,$(call gen_libname,gfortran,3)))
278 +-$(eval $(call copy_csl,$(call gen_libname,gfortran,4)))
279 +-$(eval $(call copy_csl,$(call gen_libname,gfortran,5)))
280 ++$(eval $(call copy_csl,$(call versioned_libname,libgfortran,3)))
281 ++$(eval $(call copy_csl,$(call versioned_libname,libgfortran,4)))
282 ++$(eval $(call copy_csl,$(call versioned_libname,libgfortran,5)))
283 +
284 + # These are all libraries that we should always have
285 +-$(eval $(call copy_csl,$(call gen_libname,quadmath,0)))
286 +-$(eval $(call copy_csl,$(call gen_libname,stdc++,6)))
287 +-$(eval $(call copy_csl,$(call gen_libname,ssp,0)))
288 +-$(eval $(call copy_csl,$(call gen_libname,atomic,1)))
289 +-$(eval $(call copy_csl,$(call gen_libname,gomp,1)))
290 ++$(eval $(call copy_csl,$(call versioned_libname,libquadmath,0)))
291 ++$(eval $(call copy_csl,$(call versioned_libname,libstdc++,6)))
292 ++$(eval $(call copy_csl,$(call versioned_libname,libssp,0)))
293 ++$(eval $(call copy_csl,$(call versioned_libname,libatomic,1)))
294 ++$(eval $(call copy_csl,$(call versioned_libname,libgomp,1)))
295 +
296 + ifeq ($(OS),WINNT)
297 + # Windwos has special gcc_s names
298 + ifeq ($(ARCH),i686)
299 +-$(eval $(call copy_csl,$(call gen_libname,gcc_s_sjlj,1)))
300 ++$(eval $(call copy_csl,$(call versioned_libname,libgcc_s_sjlj,1)))
301 + else
302 +-$(eval $(call copy_csl,$(call gen_libname,gcc_s_seh,1)))
303 ++$(eval $(call copy_csl,$(call versioned_libname,libgcc_s_seh,1)))
304 + endif
305 + else
306 +-$(eval $(call copy_csl,$(call gen_libname,gcc_s,1)))
307 ++$(eval $(call copy_csl,$(call versioned_libname,libgcc_s,1)))
308 + endif
309 + # winpthread is only Windows, pthread is only others
310 + ifeq ($(OS),WINNT)
311 +-$(eval $(call copy_csl,$(call gen_libname,winpthread,1)))
312 ++$(eval $(call copy_csl,$(call versioned_libname,libwinpthread,1)))
313 + else
314 +-$(eval $(call copy_csl,$(call gen_libname,pthread,0)))
315 ++$(eval $(call copy_csl,$(call versioned_libname,libpthread,0)))
316 + endif
317 +
318 + get-csl:
319 +
320 +From 6536b8519b25db844f2a1866d056879cb87d1c66 Mon Sep 17 00:00:00 2001
321 +From: Elliot Saba <staticfloat@×××××.com>
322 +Date: Fri, 26 Mar 2021 22:32:04 +0000
323 +Subject: [PATCH 2/2] Expand `JL_PRIVATE_LIBS-1` for versioned library names as
324 + well
325 +
326 +Without this, we fail to install things like `libgcc_s.so.1` when
327 +installed into the private libdir by `symlink_system_libraries`.
328 +---
329 + Makefile | 7 +++++--
330 + 1 file changed, 5 insertions(+), 2 deletions(-)
331 +
332 +diff --git a/Makefile b/Makefile
333 +index 823ff3b86339d..e08f0e959e1b3 100644
334 +--- a/Makefile
335 ++++ b/Makefile
336 +@@ -290,8 +290,11 @@ endif
337 + done \
338 + done
339 + for suffix in $(JL_PRIVATE_LIBS-1) ; do \
340 +- lib=$(build_private_libdir)/$${suffix}.$(SHLIB_EXT); \
341 +- $(INSTALL_M) $$lib $(DESTDIR)$(private_libdir) ; \
342 ++ for lib in $(build_private_libdir)/$${suffix}.$(SHLIB_EXT)*; do \
343 ++ if [ "$${lib##*.}" != "dSYM" ]; then \
344 ++ $(INSTALL_M) $$lib $(DESTDIR)$(private_libdir) ; \
345 ++ fi \
346 ++ done \
347 + done
348 + endif
349 + # Install `7z` into libexec/
350
351 diff --git a/dev-lang/julia/julia-1.6.0.ebuild b/dev-lang/julia/julia-1.6.0.ebuild
352 index b6b3aa64075..5296e35163d 100644
353 --- a/dev-lang/julia/julia-1.6.0.ebuild
354 +++ b/dev-lang/julia/julia-1.6.0.ebuild
355 @@ -8,25 +8,17 @@ inherit llvm pax-utils toolchain-funcs
356 # correct versions for stdlibs are in deps/checksums
357 # for everything else, run with network-sandbox and wait for the crash
358
359 -MY_PV="${PV//_rc/-rc}"
360 -MY_DSFMT_V="2.2.4"
361 MY_LIBUV_V="fb3e3364c33ae48c827f6b103e05c3f0e78b79a9"
362 MY_LIBWHICH_V="81e9723c0273d78493dc8c8ed570f68d9ce7e89e"
363 MY_LLVM_V="11.0.1"
364 -MY_PKG_V="05fa7f93f73afdabd251247d03144de9f7b36b50"
365 -MY_UNICODE_V="13.0.0"
366 -MY_UTF8PROC_V="3203baa7374d67132384e2830b2183c92351bffc"
367
368 DESCRIPTION="High-performance programming language for technical computing"
369 HOMEPAGE="https://julialang.org/"
370 +
371 SRC_URI="
372 - https://github.com/JuliaLang/${PN}/releases/download/v${MY_PV}/${PN}-${MY_PV}.tar.gz
373 + https://github.com/JuliaLang/julia/releases/download/v${PV}/${P}.tar.gz
374 https://api.github.com/repos/JuliaLang/libuv/tarball/${MY_LIBUV_V} -> ${PN}-libuv-${MY_LIBUV_V}.tar.gz
375 - https://api.github.com/repos/JuliaLang/utf8proc/tarball/${MY_UTF8PROC_V} -> ${PN}-utf8proc-${MY_UTF8PROC_V}.tar.gz
376 https://api.github.com/repos/vtjnash/libwhich/tarball/${MY_LIBWHICH_V} -> ${PN}-libwhich-${MY_LIBWHICH_V}.tar.gz
377 - https://github.com/MersenneTwister-Lab/dSFMT/archive/v${MY_DSFMT_V}.tar.gz -> ${PN}-dsfmt-${MY_DSFMT_V}.tar.gz
378 - http://www.unicode.org/Public/${MY_UNICODE_V}/ucd/UnicodeData.txt -> ${PN}-UnicodeData-${MY_UNICODE_V}.txt
379 - https://dev.gentoo.org/~patrick/Pkg-${MY_PKG_V}.tar.gz -> ${PN}-Pkg-${MY_PKG_V}.tar.gz
380 !system-llvm? ( https://github.com/llvm/llvm-project/releases/download/llvmorg-${MY_LLVM_V}/llvm-${MY_LLVM_V}.src.tar.xz )
381 "
382
383 @@ -41,19 +33,16 @@ RDEPEND="
384 "
385 LLVM_MAX_SLOT=11
386
387 -# Silence some QA warnings. The julia build system does not use user
388 -# defined CFLAGS for some of the generated binary modules.
389 -QA_FLAGS_IGNORED='.*'
390 -
391 RDEPEND+="
392 - dev-libs/double-conversion:0=
393 + app-arch/p7zip
394 dev-libs/gmp:0=
395 dev-libs/libgit2:0
396 >=dev-libs/libpcre2-10.23:0=[jit,unicode]
397 dev-libs/mpfr:0=
398 - dev-libs/openspecfun
399 - net-libs/libssh2
400 + dev-libs/libutf8proc:0=
401 + dev-util/patchelf
402 >=net-libs/mbedtls-2.2
403 + net-misc/curl[http2,ssh]
404 sci-libs/amd:0=
405 sci-libs/arpack:0=
406 sci-libs/camd:0=
407 @@ -64,10 +53,8 @@ RDEPEND+="
408 sci-libs/openlibm:0=
409 sci-libs/spqr:0=
410 sci-libs/umfpack:0=
411 - sci-mathematics/glpk:0=
412 - sci-mathematics/z3
413 + >=sci-mathematics/dsfmt-2.2.4
414 >=sys-libs/libunwind-1.1:0=
415 - sys-libs/readline:0=
416 sys-libs/zlib:0=
417 >=virtual/blas-3.6
418 virtual/lapack"
419 @@ -77,37 +64,23 @@ DEPEND="${RDEPEND}
420 virtual/pkgconfig"
421
422 PATCHES=(
423 - "${FILESDIR}"/${PN}-1.6.0-fix_build_system.patch
424 - "${FILESDIR}"/${PN}-1.1.0-fix_llvm_install.patch
425 - "${FILESDIR}"/${PN}-1.4.0-no_symlink_llvm.patch
426 + "${FILESDIR}/${PN}"-1.1.0-fix_llvm_install.patch
427 + "${FILESDIR}/${PN}"-1.4.0-no_symlink_llvm.patch
428 + "${FILESDIR}/${PN}"-1.6.0-fix-system-csl.patch
429 )
430
431 -S="${WORKDIR}/${PN}-${MY_PV}"
432 -
433 pkg_setup() {
434 use system-llvm && llvm_pkg_setup
435 }
436
437 src_unpack() {
438 - tounpack=(${A})
439 + local tounpack=(${A})
440 # the main source tree, followed by deps
441 - unpack "${A/%\ */}"
442 + unpack "${tounpack[0]}"
443
444 mkdir -p "${S}/deps/srccache/"
445 for i in "${tounpack[@]:1}"; do
446 - if [[ $i == *Pkg* ]] || [[ $i = *Statistics* ]]; then
447 - # Bundled Pkg and Statistics packages go into ./stdlib
448 - local tarball="${i#julia-}"
449 - cp "${DISTDIR}/${i}" "${S}/stdlib/srccache/${tarball}" || die
450 - # and we have to fix up the sha1sum
451 - local name="${tarball%-*}"
452 - local sha1="${tarball#*-}"
453 - sha1="${sha1%.tar*}"
454 - einfo "using patched stdlib package \"${name}\""
455 - sed -i -e "s/PKG_SHA1 = .*/PKG_SHA1 = ${sha1}/" "${S}/stdlib/Pkg.version" || die
456 - else
457 - cp "${DISTDIR}/${i}" "${S}/deps/srccache/${i#julia-}" || die
458 - fi
459 + cp "${DISTDIR}/${i}" "${S}/deps/srccache/${i#julia-}" || die
460 done
461 }
462
463 @@ -120,84 +93,72 @@ src_prepare() {
464 # - respect EPREFIX and Gentoo specific paths
465
466 sed -i \
467 - -e "s|GENTOOCFLAGS|${CFLAGS}|g" \
468 - -e "s|/usr/include|${EPREFIX}/usr/include|g" \
469 - deps/Makefile || die
470 -
471 - sed -i \
472 - -e "s|GENTOOCFLAGS|${CFLAGS}|g" \
473 - -e "s|GENTOOLIBDIR|$(get_libdir)|" \
474 + -e "\|SHIPFLAGS :=|c\\SHIPFLAGS := ${CFLAGS}" \
475 Make.inc || die
476
477 - sed -i \
478 - -e "s|,lib)|,$(get_libdir))|g" \
479 - -e "s|\$(BUILD)/lib|\$(BUILD)/$(get_libdir)|g" \
480 - Makefile || die
481 -
482 sed -i \
483 -e "s|ar -rcs|$(tc-getAR) -rcs|g" \
484 src/Makefile || die
485
486 # disable doc install starting git fetching
487 sed -i -e 's~install: $(build_depsbindir)/stringreplace $(BUILDROOT)/doc/_build/html/en/index.html~install: $(build_depsbindir)/stringreplace~' Makefile || die
488 -
489 - # now using sha512 additionally, so need to recreate checksum -
490 - sha512sum "${S}/stdlib/srccache/Pkg-${MY_PKG_V}.tar.gz" | awk '{ print $1; }' > "${S}/deps/checksums/Pkg-${MY_PKG_V}.tar.gz/sha512" || die
491 }
492
493 src_configure() {
494 - # julia does not play well with the system versions of dsfmt, libuv,
495 - # and utf8proc
496 -
497 use system-llvm && ewarn "You have enabled system-llvm. This is unsupported by upstream and may not work."
498
499 + # julia does not play well with the system versions of libuv
500 # USE_SYSTEM_LIBM=0 implies using external openlibm
501 cat <<-EOF > Make.user
502 + LOCALBASE:="${EPREFIX}/usr"
503 + override prefix:="${EPREFIX}/usr"
504 + override libdir:="\$(prefix)/$(get_libdir)"
505 + override CC:=$(tc-getCC)
506 + override CXX:=$(tc-getCXX)
507 + override AR:=$(tc-getAR)
508 +
509 + BUNDLE_DEBUG_LIBS:=0
510 USE_BINARYBUILDER:=0
511 + USE_SYSTEM_CSL:=1
512 USE_SYSTEM_LLVM:=$(usex system-llvm 1 0)
513 USE_SYSTEM_LIBUNWIND:=1
514 USE_SYSTEM_PCRE:=1
515 USE_SYSTEM_LIBM:=0
516 USE_SYSTEM_OPENLIBM:=1
517 - USE_SYSTEM_DSFMT:=0
518 + USE_SYSTEM_DSFMT:=1
519 USE_SYSTEM_BLAS:=1
520 USE_SYSTEM_LAPACK:=1
521 USE_SYSTEM_GMP:=1
522 USE_SYSTEM_MPFR:=1
523 USE_SYSTEM_SUITESPARSE:=1
524 USE_SYSTEM_LIBUV:=0
525 - USE_SYSTEM_UTF8PROC:=0
526 + USE_SYSTEM_UTF8PROC:=1
527 USE_SYSTEM_MBEDTLS:=1
528 USE_SYSTEM_LIBSSH2:=1
529 + USE_SYSTEM_NGHTTP2:=1
530 USE_SYSTEM_CURL:=1
531 USE_SYSTEM_LIBGIT2:=1
532 USE_SYSTEM_PATCHELF:=1
533 USE_SYSTEM_ZLIB:=1
534 USE_SYSTEM_P7ZIP:=1
535 - VERBOSE=1
536 - libdir="${EROOT}/usr/$(get_libdir)"
537 + VERBOSE:=1
538 EOF
539 }
540
541 src_compile() {
542 -
543 # Julia accesses /proc/self/mem on Linux
544 addpredict /proc/self/mem
545
546 - emake \
547 - prefix="${EPREFIX}/usr" DESTDIR="${D}" \
548 - CC="$(tc-getCC)" CXX="$(tc-getCXX)" AR="$(tc-getAR)"
549 + default
550 pax-mark m "$(file usr/bin/julia-* | awk -F : '/ELF/ {print $1}')"
551 }
552
553 src_install() {
554 - emake install \
555 - prefix="${EPREFIX}/usr" DESTDIR="${D}" \
556 - CC="$(tc-getCC)" CXX="$(tc-getCXX)" AR="$(tc-getAR)" \
557 - BUNDLE_DEBUG_LIBS=0
558 + emake install DESTDIR="${D}"
559
560 if ! use system-llvm ; then
561 - cp "${S}/usr/lib/libLLVM"-?jl.so "${ED}/usr/$(get_libdir)/julia/" || die
562 + local llvmslot=$(ver_cut 1 ${MY_LLVM_V})
563 + cp "${S}/usr/lib/libLLVM-${llvmslot}jl.so" "${ED}/usr/$(get_libdir)/julia/" || die
564 fi
565
566 dodoc README.md