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

Revision 11739, 6.3 KB checked in by ara_t, 6 years ago (diff)

julia: update to 0.6.4

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