Diff julia-1.8.3-r4 with a julia-1.8.5-r1

/usr/portage/dev-lang/julia/julia-1.8.5-r1.ebuild 2023-10-09 14:52:29.464368349 +0300
9 9
# >=1.8.2 still sits on LLVM 13, bug: https://bugs.gentoo.org/876184
10 10
MY_LLVM_V=13.0.1
11 11

  
12
inherit flag-o-matic pax-utils toolchain-funcs optfeature
12
PYTHON_COMPAT=( python3_{9..11} )
13

  
14
inherit check-reqs flag-o-matic optfeature pax-utils python-any-r1 toolchain-funcs
13 15

  
14 16
DESCRIPTION="High-performance programming language for technical computing"
15 17
HOMEPAGE="https://julialang.org/
16 18
	https://github.com/JuliaLang/julia/"
17
SRC_URI="https://github.com/JuliaLang/julia/releases/download/v${PV}/${P}-full.tar.gz"
19
SRC_URI="
20
	https://github.com/JuliaLang/julia/releases/download/v${PV}/${P}-full.tar.gz
21
	https://github.com/JuliaLang/julia/commit/0b211609.patch
22
		-> ${PN}-0b211609.patch
23
	https://github.com/JuliaLang/julia/commit/a48ad530.patch
24
		-> ${PN}-a48ad530.patch
25
"
18 26

  
19 27
LICENSE="MIT"
20 28
SLOT="0"
21 29
KEYWORDS="~amd64 ~x86"
30
PROPERTIES="test_network"
31
RESTRICT="test"
22 32

  
23 33
RDEPEND="
34
	>=dev-libs/libutf8proc-2.6.1:0=[-cjk]
35
	>=dev-util/patchelf-0.13
36
	>=net-libs/mbedtls-2.2
37
	>=sci-mathematics/dsfmt-2.2.4
38
	>=sys-libs/libunwind-1.1:0=
39
	>=virtual/blas-3.6
24 40
	app-arch/p7zip
25 41
	app-misc/ca-certificates
26 42
	dev-libs/gmp:0=
27 43
	dev-libs/libgit2:0
28 44
	dev-libs/mpfr:0=
29
	>=dev-libs/libutf8proc-2.6.1:0=[-cjk]
30
	>=dev-util/patchelf-0.13
31
	>=net-libs/mbedtls-2.2
32 45
	net-misc/curl[http2,ssh]
33 46
	sci-libs/amd:0=
34 47
	sci-libs/arpack:0=
......
40 53
	sci-libs/openlibm:0=
41 54
	sci-libs/spqr:0=
42 55
	sci-libs/umfpack:0=
43
	>=sci-mathematics/dsfmt-2.2.4
44
	>=sys-libs/libunwind-1.1:0=
45 56
	sys-libs/zlib:0=
46
	>=virtual/blas-3.6
47 57
	virtual/lapack
48 58
"
49 59
DEPEND="${RDEPEND}"
50 60
BDEPEND="
61
	${PYTHON_DEPS}
51 62
	dev-util/cmake
52 63
	virtual/pkgconfig
53 64
"
54 65

  
55
PATCHES=( "${FILESDIR}"/${PN}-1.8.0-llvm-no-bindings.patch )
66
CHECKREQS_DISK_BUILD="4G"
67
PATCHES=(
68
	"${DISTDIR}"/${PN}-0b211609.patch
69
	"${DISTDIR}"/${PN}-a48ad530.patch
70
	"${FILESDIR}"/${PN}-1.8.0-llvm-no-bindings.patch
71
	"${FILESDIR}"/${PN}-1.8.3-gcc13.patch
72
)
73
QA_FLAGS_IGNORED+='usr/.*/julia/sys.so'  # Julia sysimage generated by bootstrapping.
56 74

  
57 75
# Huge thanks to Arch Linux developers for the patches.
58 76
archlinux_uri="https://raw.githubusercontent.com/archlinux/svntogit-community/packages/julia/trunk/"
59 77
archlinux_patches=(
60
	074d761f.patch
61
	ed9851b0.patch
62
	julia-hardcoded-libs.patch
63
	julia-libunwind-1.6.patch
64
	julia-llvm-14.patch
65
	julia-system-cblas.patch
66
	make-install-no-build.patch
78
	074d761f.patch              # wanted
79
	0db596e6.patch              # secondary
80
	190565c2.patch              # secondary
81
	23f39f83.patch              # secondary
82
	3423639d.patch              # secondary
83
	68adc00e.patch              # secondary
84
	700c69b1.patch              # secondary
85
	ed9851b0.patch              # wanted
86
	julia-hardcoded-libs.patch  # wanted
87
	julia-libunwind-1.6.patch   # wanted
88
	julia-mpfr-4.2.patch        # secondary
89
	julia-system-cblas.patch    # wanted
67 90
)
68 91
for archlinux_patch in ${archlinux_patches[@]} ; do
69 92
	archlinux_patch_name="${PN}-1.8.0-${archlinux_patch}"
......
74 97
	PATCHES+=( "${DISTDIR}/${archlinux_patch_name}" )
75 98
done
76 99

  
100
pkg_setup() {
101
	check-reqs_pkg_setup
102
	python-any-r1_pkg_setup
103
}
104

  
77 105
src_unpack() {
78
	local tounpack=( ${A} )
106
	local -a tounpack=( ${A} )
79 107
	# the main source tree, followed by deps
80 108
	unpack "${tounpack[0]}"
81 109

  
82 110
	mkdir -p "${S}/deps/srccache/"
111
	local i
83 112
	for i in "${tounpack[@]:1}"; do
84 113
		cp "${DISTDIR}/${i}" "${S}/deps/srccache/${i#julia-}" || die
85 114
	done
115

  
116
	# Extract tarballs for patching.
117
	cd "${S}/deps/srccache/" || die
118
	tar xf llvm-julia-13.0.1-3.tar.gz || die
86 119
}
87 120

  
88 121
src_prepare() {
......
103 136

  
104 137
	# disable doc install starting	git fetching
105 138
	sed -i -e 's~install: $(build_depsbindir)/stringreplace $(BUILDROOT)/doc/_build/html/en/index.html~install: $(build_depsbindir)/stringreplace~' Makefile || die
139

  
140
	# Blank the tarball checksum check script.
141
	echo "#!/bin/sh" > deps/tools/jlchecksum || die
142

  
143
	# Repack tarballs.
144
	cd "${S}/deps/srccache/" || die
145
	tar czf llvm-julia-13.0.1-3.tar.gz JuliaLang-llvm-project-8a2ae8c || die
106 146
}
107 147

  
108 148
src_configure() {
......
113 153
	# Fails to compile with libpcre2 on split-usr, bug #893336
114 154
	# USE_SYSTEM_LIBM=0 implies using external openlibm
115 155
	cat <<-EOF > Make.user
116
		LOCALBASE:="${EPREFIX}/usr"
117
		override prefix:="${EPREFIX}/usr"
118
		override libdir:="\$(prefix)/$(get_libdir)"
156
		LOCALBASE:=${EPREFIX}/usr
157
		override prefix:=${EPREFIX}/usr
158
		override libdir:=\$(prefix)/$(get_libdir)
119 159
		override CC:=$(tc-getCC)
120 160
		override CXX:=$(tc-getCXX)
121 161
		override AR:=$(tc-getAR)
122 162

  
123 163
		BUNDLE_DEBUG_LIBS:=0
124 164
		USE_BINARYBUILDER:=0
165
		USE_INTEL_JITEVENTS=0
125 166
		USE_SYSTEM_CSL:=1
126 167
		USE_SYSTEM_LLVM:=0
127 168
		USE_SYSTEM_LIBUNWIND:=1
......
150 191
}
151 192

  
152 193
src_compile() {
153
	# Julia accesses /proc/self/mem on Linux
194
	# Julia accesses /proc/self/mem on Linux.
154 195
	addpredict /proc/self/mem
155 196

  
156 197
	emake
......
162 203
	dodoc CONTRIBUTING.md HISTORY.md NEWS.md README.md THIRDPARTY.md
163 204

  
164 205
	local llvmslot=$(ver_cut 1 ${MY_LLVM_V})
165
	cp "${S}/usr/lib/libLLVM-${llvmslot}jl.so" "${ED}/usr/$(get_libdir)/julia/" || die
166
	cp "${S}/usr/lib/libLLVM-${MY_LLVM_V}jl.so" "${ED}/usr/$(get_libdir)/julia/" || die
206
	cp "${S}"/usr/lib/libLLVM-${llvmslot}jl.so "${ED}"/usr/$(get_libdir)/julia/ || die
207
	cp "${S}"/usr/lib/libLLVM-${MY_LLVM_V}jl.so "${ED}"/usr/$(get_libdir)/julia/ || die
167 208

  
168 209
	mv "${ED}"/usr/etc/julia "${ED}"/etc || die
169 210
	rmdir "${ED}"/usr/etc || die
......
175 216

  
176 217
	# Link ca-certificates.crt, bug: https://bugs.gentoo.org/888978
177 218
	dosym -r /etc/ssl/certs/ca-certificates.crt /usr/share/julia/cert.pem
219

  
220
	# Julia always searches for "sys.so" inside "/usr/lib/julia",
221
	# bug: https://github.com/JuliaLang/julia/issues/49574
222
	if [[ $(get_libdir) == "lib64" ]] ; then
223
		insinto /usr/lib/julia
224
		doins "${ED}"/usr/$(get_libdir)/julia/sys.so
225
	fi
178 226
}
179 227

  
180 228
pkg_postinst() {
Thank you!