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

Revision 12055, 7.9 KB checked in by ara_t, 5 years ago (diff)

julia: fix option mistake

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