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