source: projects/specs/trunk/j/julia/julia-vl.spec @ 12036

Revision 12036, 7.6 KB checked in by ara_t, 5 years ago (diff)

julia: update to 1.1.0

Line 
1%define pkg_name    julia
2%define pkg_version 1.1.0
3%define pkg_release 1%{?_dist_release}
4
5Summary: High-level, high-performance dynamic programming language for numerical computing
6Name:    %{pkg_name}
7Version: %{pkg_version}
8Release: %{pkg_release}
9
10License: MIT, BSD and GPLv3
11# julia, utf8proc, libwhich: MIT
12# libunwind, libuv, openblas, llvm: BSD
13# patchelf, mpfr: GPLv3
14Group:   Applications/Edutainment
15URL:     https://julialang.org/
16
17Source0: https://github.com/JuliaLang/julia/releases/download/v%{version}/%{name}-%{version}.tar.gz
18
19Source11: libunwind-1.1-julia2.tar.gz
20Source12: libuv-2348256acf5759a544e5ca7935f638d2bc091d60.tar.gz
21Source13: patchelf-0.9.tar.gz
22Source14: utf8proc-97ef668b312b96382714dbb8eaac4affce0816e6.tar.gz
23Source15: llvm-6.0.1.src.tar.xz
24# Source16: openblas-fd8d1868a126bb9f12bbc43b36ee30d1ba943fbb.tar.gz
25Source17: libwhich-81e9723c0273d78493dc8c8ed570f68d9ce7e89e.tar.gz
26Source18: mpfr-4.0.1.tar.bz2
27
28
29# # Patches from Fedora srpm
30# Patch0: julia_unwind_version.patch
31
32# # https://github.com/JuliaLang/julia/pull/22603
33# # Remove ieee754_rem_pio2 in favor of a rem_pio2_kernel written in Julia.
34# Patch1: julia-0.6.3-issue22603.patch
35
36# # # not make debug
37Patch11: julia-Makefile_release.patch
38
39# ## Patches for make test
40# # Avoid test error
41# Patch21: julia-0.6.3-skip_libgit2_test.patch
42Patch21: julia-skip-LibGit2-libgit2.patch
43
44# # https://github.com/JuliaLang/julia/pull/23124
45# # Bump tolerance a bit in stressful test of eigs on matrix
46# # with many repeated eigenvalues.
47# Patch22: julia-0.6.3-issue23124.patch
48
49BuildRoot: %{_tmppath}/%{name}-%{version}-root
50
51BuildRequires: cmake
52BuildRequires: gcc-gfortran
53BuildRequires: gmp-devel
54BuildRequires: openblas-devel
55%ifarch x86_64
56BuildRequires: openblas64-devel
57%endif
58BuildRequires: openspecfun-devel
59BuildRequires: openlibm-devel
60BuildRequires: suitesparse-devel
61BuildRequires: dSFMT-devel
62BuildRequires: pcre2-devel
63BuildRequires: curl-devel
64BuildRequires: libssh2-devel
65BuildRequires: libgit2-devel
66BuildRequires: mbedtls-devel
67BuildRequires: libatomic
68BuildRequires: desktop-file-utils
69
70Requires: openblas-threads
71%ifarch x86_64
72Requires: openblas-threads64_
73%endif
74Requires: openlibm
75Requires: suitesparse
76Requires: dSFMT
77Requires: pcre2
78Requires: libssh2 mbedtls
79Requires: libgit2
80Requires: libatomic
81
82
83Vendor: Project Vine
84Distribution: Vine Linux
85Packager: ara_t
86
87
88%description
89Julia is a high-level, high-performance dynamic programming language
90for numerical computing. It provides a sophisticated compiler,
91distributed parallel execution, numerical accuracy, and an extensive
92mathematical function library. Julia’s Base library, largely written
93in Julia itself, also integrates mature, best-of-breed open source C
94and Fortran libraries for linear algebra, random number generation,
95signal processing, and string processing. In addition, the Julia developer
96community is contributing a number of external packages through Julia's
97built-in package manager at a rapid pace.
98IJulia, a collaboration between the Jupyter and Julia communities,
99provides a powerful browser-based graphical notebook interface to Julia.
100
101Julia programs are organized around multiple dispatch; by defining functions
102and overloading them for different combinations of argument types,
103which can also be user-defined. For a more in-depth discussion of the
104rationale and advantages of Julia over other systems, see the following
105highlights or read the introduction in the online manual.
106#'
107
108
109%prep
110%{__rm} -rf ${RPM_BUILD_ROOT}
111%setup -q
112
113# %patch0 -p1 -b .unwind
114# %patch1 -p1 -b.ieee754_rem_pio2
115
116%patch11 -b .release
117%patch21 -b .skip_test
118# %patch22 -p1 -b .tolerance
119
120cat > Make.user <<EOF
121# Link to the LLVM shared library
122USE_LLVM_SHLIB=0
123
124# Link to the LLVM shared library
125USE_SYSTEM_LLVM=0
126USE_SYSTEM_LIBUNWIND=0
127USE_SYSTEM_LIBUV=0
128USE_SYSTEM_LIBM=0
129USE_SYSTEM_OPENLIBM=1
130UNTRUSTED_SYSTEM_LIBM=0
131USE_SYSTEM_OPENSPECFUN=1
132
133USE_SYSTEM_PCRE=1
134USE_SYSTEM_DSFMT=1
135USE_SYSTEM_GMP=1
136USE_SYSTEM_MPFR=0
137USE_SYSTEM_BLAS=1
138USE_SYSTEM_LAPACK=1
139USE_SYSTEM_SUITESPARSE=1
140
141USE_SYSTEM_LIBSSH2=1
142USE_SYSTEM_CURL=1
143USE_SYSTEM_LIBGIT2=1
144USE_SYSTEM_MBEDTLS=1
145EOF
146
147%{__mkdir_p} deps/srccache
148%{__cp} \
149 %{SOURCE11} %{SOURCE12} %{SOURCE13} %{SOURCE14} %{SOURCE15} \
150 %{SOURCE17} %{SOURCE18} \
151 deps/srccache
152
153# Required so that the image is not optimized for the build CPU
154# (i386 does not work yet: https://github.com/JuliaLang/julia/issues/7185)
155# Without specifying MARCH, the Julia system image would only work on native CPU
156%ifarch %{ix86}
157%global march pentium4
158%endif
159%ifarch x86_64
160%global march x86-64
161%endif
162
163# setting for using system openblas
164%ifarch %{ix86}
165%global blas USE_BLAS64=0 LIBBLAS=-lopenblasp LIBBLASNAME=libopenblasp LIBLAPACK=-lopenblasp LIBLAPACKNAME=libopenblasp
166%endif
167%ifarch x86_64
168%global blas USE_BLAS64=1 LIBBLAS=-lopenblasp64_ LIBBLASNAME=libopenblasp64_ LIBLAPACK=-lopenblasp64_ LIBLAPACKNAME=libopenblasp64_
169%endif
170
171# About build, build_libdir and build_bindir
172# see https://github.com/JuliaLang/julia/issues/5063#issuecomment-32628111
173%global julia_builddir %{_builddir}/%{name}-%{version}/build
174%global installopts prefix=%{_prefix} bindir=%{_bindir} libdir=%{_libdir} libexecdir=%{_libexecdir} datarootdir=%{_datarootdir} includedir=%{_includedir} sysconfdir=%{_sysconfdir} build_prefix=%{julia_builddir} build_bindir=%{julia_builddir}%{_bindir} build_libdir=%{julia_builddir}%{_libdir} build_private_libdir=%{julia_builddir}%{_libdir}/julia build_libexecdir=%{julia_builddir}%{_libexecdir} build_datarootdir=%{julia_builddir}%{_datarootdir} build_includedir=%{julia_builddir}%{_includedir} build_sysconfdir=%{julia_builddir}%{_sysconfdir}
175
176%global commonopts MARCH=%{march} %{blas} %{installopts}
177
178%build
179%{__make} %{?_smp_mflags} %{commonopts}
180
181# to avoid making documents
182%{__mkdir_p} doc/_build/html/en
183touch doc/_build/html/en/index.html
184
185%install
186%{__make} %{commonopts} install DESTDIR=${RPM_BUILD_ROOT}
187
188# remove html files
189pushd ${RPM_BUILD_ROOT}%{_docdir}
190%{__mv} julia %{name}-%{version}
191%{__rm} -rf %{name}-%{version}/html
192popd
193
194
195%{__cp} \
196 CONTRIBUTING.md DISTRIBUTING.md HISTORY.md \
197 LICENSE.md NEWS.md README.md \
198 ${RPM_BUILD_ROOT}%{_docdir}/%{name}-%{version}
199
200%check
201%{__make} %{?_smp_mflags} %{commonopts} test
202
203%clean
204%{__rm} -rf ${RPM_BUILD_ROOT}
205
206%post
207%{_syssbindir}/ldconfig
208if [ -x %{_bindir}/update-desktop-database ] ; then
209    %{_bindir}/update-desktop-database %{_datadir}/applications
210fi
211
212%postun
213%{_syssbindir}/ldconfig
214if [ $1 -eq 0 ] ; then
215    if [ -x %{_bindir}/update-desktop-database ] ; then
216        %{_bindir}/update-desktop-database %{_datadir}/applications
217    fi
218fi
219
220
221%files
222%defattr(-, root, root)
223%{_bindir}/julia
224%{_sysconfdir}/%{name}
225%{_includedir}/%{name}
226%{_libdir}/%{name}/
227%{_libdir}/libjulia.so*
228%{_datadir}/appdata/
229%{_datadir}/applications/
230%{_datadir}/icons/
231%{_datadir}/julia/
232%{_docdir}/%{name}-%{version}
233%{_mandir}/man1/
234
235
236%changelog
237* Mon Jan 28 2019 Toshiaki Ara <ara_t@384.jp> 1.1.0-1
238- update to 1.1.0
239- change using system openblas
240
241* Sat Jan 26 2019 Toshiaki Ara <ara_t@384.jp> 1.0.3-2
242- remove unnecessary sofiles
243- rebuild with gfortran-8.2.0
244
245* Sat Jan 05 2019 Toshiaki Ara <ara_t@384.jp> 1.0.3-1
246- update to 1.0.3
247
248* Fri Nov 16 2018 Toshiaki Ara <ara_t@384.jp> 1.0.2-1
249- update to 1.0.2
250
251* Thu Oct 04 2018 Toshiaki Ara <ara_t@384.jp> 1.0.1-1
252- update to 1.0.1
253
254* Wed Aug 22 2018 Toshiaki Ara <ara_t@384.jp> 1.0.0-2
255- rebuild with suitesparse-4.4.6
256
257* Fri Aug 17 2018 Toshiaki Ara <ara_t@384.jp> 1.0.0-1
258- update to 1.0.0
259- add/update sources
260- drop some Patches
261- add BuildRequires: and Requires: libatomic
262
263* Sat Jul 14 2018 Toshiaki Ara <ara_t@384.jp> 0.6.4-1
264- new upstream release
265- update SOURCE17 (openblas)
266
267* Sun Jun 17 2018 Toshiaki Ara <ara_t@384.jp> 0.6.3-1
268- new package
269
Note: See TracBrowser for help on using the repository browser.