|
@@ -0,0 +1,222 @@
|
|
|
+%define pkg_name julia
|
|
|
+%define pkg_version 0.6.3
|
|
|
+%define pkg_release 1%{?_dist_release}
|
|
|
+
|
|
|
+Summary: High-level, high-performance dynamic programming language for numerical computing
|
|
|
+Name: %{pkg_name}
|
|
|
+Version: %{pkg_version}
|
|
|
+Release: %{pkg_release}
|
|
|
+
|
|
|
+License: MIT and BSD
|
|
|
+# julia: MIT
|
|
|
+# openblas, arpack and llvm: BSD
|
|
|
+Group: Applications/Edutainment
|
|
|
+URL: https://julialang.org/
|
|
|
+
|
|
|
+Source0: https://github.com/JuliaLang/julia/releases/download/v%{version}/%{name}-%{version}.tar.gz
|
|
|
+
|
|
|
+Source11: libunwind-1.1-julia2.tar.gz
|
|
|
+Source12: libuv-d8ab1c6a33e77bf155facb54215dd8798e13825d.tar.gz
|
|
|
+Source13: patchelf-0.9.tar.gz
|
|
|
+Source14: utf8proc-d688ac122660e465dc65c8eb7b1c2444fcd52829.tar.gz
|
|
|
+Source15: llvm-3.9.1.src.tar.xz
|
|
|
+Source16: arpack-ng-3.3.0.tar.gz
|
|
|
+Source17: openblas-5dde4e65d321076582a2fafe16949d2160551e81.tar.gz
|
|
|
+
|
|
|
+# Patches from Fedora srpm
|
|
|
+Patch0: julia_unwind_version.patch
|
|
|
+
|
|
|
+# https://github.com/JuliaLang/julia/pull/22603
|
|
|
+# Remove ieee754_rem_pio2 in favor of a rem_pio2_kernel written in Julia.
|
|
|
+Patch1: julia-0.6.3-issue22603.patch
|
|
|
+
|
|
|
+# not make debug
|
|
|
+Patch11: julia-0.6.3-Makefile_release.patch
|
|
|
+
|
|
|
+## Patches for make test
|
|
|
+# Avoid test error
|
|
|
+Patch21: julia-0.6.3-skip_libgit2_test.patch
|
|
|
+
|
|
|
+# https://github.com/JuliaLang/julia/pull/23124
|
|
|
+# Bump tolerance a bit in stressful test of eigs on matrix
|
|
|
+# with many repeated eigenvalues.
|
|
|
+Patch22: julia-0.6.3-issue23124.patch
|
|
|
+
|
|
|
+
|
|
|
+BuildRoot: %{_tmppath}/%{name}-%{version}-root
|
|
|
+
|
|
|
+BuildRequires: cmake
|
|
|
+BuildRequires: gcc-gfortran
|
|
|
+BuildRequires: gmp-devel mpfr-devel
|
|
|
+BuildRequires: openspecfun-devel
|
|
|
+BuildRequires: openlibm-devel
|
|
|
+BuildRequires: suitesparse-devel
|
|
|
+BuildRequires: dSFMT-devel
|
|
|
+BuildRequires: fftw3-devel
|
|
|
+BuildRequires: pcre2-devel
|
|
|
+BuildRequires: curl-devel
|
|
|
+BuildRequires: libssh2-devel
|
|
|
+BuildRequires: libgit2-devel
|
|
|
+BuildRequires: mbedtls-devel
|
|
|
+BuildRequires: desktop-file-utils
|
|
|
+
|
|
|
+Requires: openlibm
|
|
|
+Requires: suitesparse
|
|
|
+Requires: dSFMT
|
|
|
+Requires: fftw3
|
|
|
+Requires: pcre2
|
|
|
+Requires: libssh2 libgit2 mbedtls
|
|
|
+
|
|
|
+
|
|
|
+Vendor: Project Vine
|
|
|
+Distribution: Vine Linux
|
|
|
+Packager: ara_t
|
|
|
+
|
|
|
+
|
|
|
+%description
|
|
|
+Julia is a high-level, high-performance dynamic programming language
|
|
|
+for numerical computing. It provides a sophisticated compiler,
|
|
|
+distributed parallel execution, numerical accuracy, and an extensive
|
|
|
+mathematical function library. Julia’s Base library, largely written
|
|
|
+in Julia itself, also integrates mature, best-of-breed open source C
|
|
|
+and Fortran libraries for linear algebra, random number generation,
|
|
|
+signal processing, and string processing. In addition, the Julia developer
|
|
|
+community is contributing a number of external packages through Julia's
|
|
|
+built-in package manager at a rapid pace.
|
|
|
+IJulia, a collaboration between the Jupyter and Julia communities,
|
|
|
+provides a powerful browser-based graphical notebook interface to Julia.
|
|
|
+
|
|
|
+Julia programs are organized around multiple dispatch; by defining functions
|
|
|
+and overloading them for different combinations of argument types,
|
|
|
+which can also be user-defined. For a more in-depth discussion of the
|
|
|
+rationale and advantages of Julia over other systems, see the following
|
|
|
+highlights or read the introduction in the online manual.
|
|
|
+#'
|
|
|
+
|
|
|
+
|
|
|
+%prep
|
|
|
+%{__rm} -rf ${RPM_BUILD_ROOT}
|
|
|
+%setup -q
|
|
|
+
|
|
|
+%patch0 -p1 -b .unwind
|
|
|
+%patch1 -p1 -b.ieee754_rem_pio2
|
|
|
+
|
|
|
+%patch11 -b .release
|
|
|
+%patch21 -b .skip_test
|
|
|
+%patch22 -p1 -b .tolerance
|
|
|
+
|
|
|
+cat > Make.user <<EOF
|
|
|
+# Link to the LLVM shared library
|
|
|
+USE_LLVM_SHLIB=0
|
|
|
+
|
|
|
+# Link to the LLVM shared library
|
|
|
+USE_SYSTEM_LLVM=0
|
|
|
+USE_SYSTEM_LIBUNWIND=0
|
|
|
+USE_SYSTEM_LIBUV=0
|
|
|
+USE_SYSTEM_LIBM=0
|
|
|
+USE_SYSTEM_OPENLIBM=1
|
|
|
+UNTRUSTED_SYSTEM_LIBM=0
|
|
|
+USE_SYSTEM_OPENSPECFUN=1
|
|
|
+
|
|
|
+USE_SYSTEM_PCRE=1
|
|
|
+USE_SYSTEM_DSFMT=1
|
|
|
+USE_SYSTEM_FFTW=1
|
|
|
+USE_SYSTEM_GMP=1
|
|
|
+USE_SYSTEM_MPFR=1
|
|
|
+USE_SYSTEM_SUITESPARSE=1
|
|
|
+
|
|
|
+USE_SYSTEM_BLAS=0
|
|
|
+USE_SYSTEM_LAPACK=0
|
|
|
+USE_SYSTEM_ARPACK=0
|
|
|
+
|
|
|
+USE_SYSTEM_LIBSSH2=1
|
|
|
+USE_SYSTEM_CURL=1
|
|
|
+USE_SYSTEM_LIBGIT2=1
|
|
|
+USE_SYSTEM_MBEDTLS=1
|
|
|
+EOF
|
|
|
+
|
|
|
+%{__mkdir_p} deps/srccache
|
|
|
+%{__cp} \
|
|
|
+ %{SOURCE11} %{SOURCE12} %{SOURCE13} %{SOURCE14} %{SOURCE15} \
|
|
|
+ %{SOURCE16} %{SOURCE17} \
|
|
|
+ deps/srccache
|
|
|
+
|
|
|
+# About build, build_libdir and build_bindir
|
|
|
+# see https://github.com/JuliaLang/julia/issues/5063#issuecomment-32628111
|
|
|
+%global julia_builddir %{_builddir}/%{name}-%{version}/build
|
|
|
+%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}
|
|
|
+
|
|
|
+# Required so that the image is not optimized for the build CPU
|
|
|
+# # (i386 does not work yet: https://github.com/JuliaLang/julia/issues/7185)
|
|
|
+# # Without specifying MARCH, the Julia system image would only work on native CPU
|
|
|
+# using openblas
|
|
|
+%ifarch %{ix86}
|
|
|
+%global march pentium4
|
|
|
+%endif
|
|
|
+%ifarch x86_64
|
|
|
+%global march x86-64
|
|
|
+%endif
|
|
|
+
|
|
|
+%global commonopts MARCH=%{march} %{installopts}
|
|
|
+
|
|
|
+%build
|
|
|
+%{__make} %{?_smp_mflags} %{commonopts} release
|
|
|
+
|
|
|
+# to avoid making documents
|
|
|
+%{__mkdir_p} doc/_build/html/en
|
|
|
+touch doc/_build/html/en/index.html
|
|
|
+
|
|
|
+%install
|
|
|
+%{__make} %{commonopts} install DESTDIR=${RPM_BUILD_ROOT}
|
|
|
+
|
|
|
+pushd ${RPM_BUILD_ROOT}%{_docdir}
|
|
|
+%{__mv} julia %{name}-%{version}
|
|
|
+%{__rm} -rf %{name}-%{version}/html
|
|
|
+popd
|
|
|
+
|
|
|
+
|
|
|
+%{__cp} \
|
|
|
+ CONTRIBUTING.md DISTRIBUTING.md HISTORY.md \
|
|
|
+ LICENSE.md NEWS.md README.md \
|
|
|
+ ${RPM_BUILD_ROOT}%{_docdir}/%{name}-%{version}
|
|
|
+
|
|
|
+%check
|
|
|
+%{__make} %{?_smp_mflags} %{commonopts} test
|
|
|
+
|
|
|
+%clean
|
|
|
+%{__rm} -rf ${RPM_BUILD_ROOT}
|
|
|
+
|
|
|
+%post
|
|
|
+%{_syssbindir}/ldconfig
|
|
|
+if [ -x %{_bindir}/update-desktop-database ] ; then
|
|
|
+ %{_bindir}/update-desktop-database %{_datadir}/applications
|
|
|
+fi
|
|
|
+
|
|
|
+%postun
|
|
|
+%{_syssbindir}/ldconfig
|
|
|
+if [ $1 -eq 0 ] ; then
|
|
|
+ if [ -x %{_bindir}/update-desktop-database ] ; then
|
|
|
+ %{_bindir}/update-desktop-database %{_datadir}/applications
|
|
|
+ fi
|
|
|
+fi
|
|
|
+
|
|
|
+
|
|
|
+%files
|
|
|
+%defattr(-, root, root)
|
|
|
+%{_bindir}/julia*
|
|
|
+%{_sysconfdir}/%{name}
|
|
|
+%{_includedir}/%{name}
|
|
|
+%{_libdir}/%{name}/
|
|
|
+%{_libdir}/libjulia*
|
|
|
+%{_datadir}/appdata/
|
|
|
+%{_datadir}/applications/
|
|
|
+%{_datadir}/icons/
|
|
|
+%{_datadir}/julia/
|
|
|
+%{_docdir}/%{name}-%{version}
|
|
|
+%{_mandir}/man1/
|
|
|
+
|
|
|
+
|
|
|
+%changelog
|
|
|
+* Sun Jun 17 2018 Toshiaki Ara <ara_t@384.jp> 0.6.3-1
|
|
|
+- new package
|
|
|
+
|