123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291 |
- %define pkg_name julia
- %define pkg_version 1.1.0
- %define pkg_release 3%{?_dist_release}
- %global unwindversion 1.1-julia2
- %global uvcommit 2348256acf5759a544e5ca7935f638d2bc091d60
- %global patchelfversion 0.9
- %global utf8proccommit 97ef668b312b96382714dbb8eaac4affce0816e6
- %global llvmversion 6.0.1
- %global libwhichcommit 81e9723c0273d78493dc8c8ed570f68d9ce7e89e
- %global mpfrversion 4.0.1
- %global cacertversion 2018-10-17
- %global pkgcommit 853b3f1fd9895db32b402d89e9dee153b66b2316
- Summary: High-level, high-performance dynamic programming language for numerical computing
- Name: %{pkg_name}
- Version: %{pkg_version}
- Release: %{pkg_release}
- License: MIT, BSD and GPLv3
- # julia, utf8proc, libwhich: MIT
- # libunwind, libuv, llvm: BSD
- # patchelf, mpfr: GPLv3
- Group: Applications/Edutainment
- URL: https://julialang.org/
- Source0: https://github.com/JuliaLang/julia/releases/download/v%{version}/%{name}-%{version}.tar.gz
- Source11: libunwind-%{unwindversion}.tar.gz
- Source12: libuv-%{uvcommit}.tar.gz
- Source13: patchelf-%{patchelfversion}.tar.gz
- Source14: utf8proc-%{utf8proccommit}.tar.gz
- Source15: llvm-%{llvmversion}.src.tar.xz
- Source16: libwhich-%{libwhichcommit}.tar.gz
- Source17: mpfr-%{mpfrversion}.tar.bz2
- Source18: cacert-%{cacertversion}.pem
- Source31: https://api.github.com/repos/JuliaLang/Pkg.jl/tarball/%{pkgcommit}#/Pkg-%{pkgcommit}.tar.gz
- # not make debug
- Patch11: julia-Makefile_release.patch
- # ## Patches for make test
- # # Avoid test error
- # Patch21: julia-skip-LibGit2-libgit2.patch
- # Patch from Fedora
- Patch31: llvm-julia-installdirs-64.patch
- # march=pentium4 in i686
- Patch32: julia-i686-march.patch
- BuildRoot: %{_tmppath}/%{name}-%{version}-root
- BuildRequires: cmake
- BuildRequires: gcc-gfortran
- BuildRequires: gmp-devel
- BuildRequires: openblas-devel
- %ifarch x86_64
- BuildRequires: openblas64-devel
- %endif
- BuildRequires: openspecfun-devel
- BuildRequires: openlibm-devel
- BuildRequires: suitesparse-devel
- BuildRequires: dSFMT-devel
- BuildRequires: pcre2-devel
- BuildRequires: libssh2-devel
- BuildRequires: curl-devel
- BuildRequires: libgit2-devel
- BuildRequires: mbedtls-devel
- BuildRequires: libatomic
- BuildRequires: desktop-file-utils
- Requires: openblas-threads
- %ifarch x86_64
- Requires: openblas-threads64_
- %endif
- Requires: openlibm
- Requires: suitesparse
- Requires: dSFMT
- Requires: pcre2
- Requires: libssh2
- Requires: libgit2
- Requires: mbedtls
- Requires: libatomic
- 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
- %patch11 -b .release
- # %patch21 -b .skip_test
- %ifarch x86_64
- %patch31 -p1 -b .installdir64
- %endif
- %ifarch %{ix86}
- %patch32 -b .march
- %endif
- cat > Make.user <<EOF
- 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_GMP=1
- USE_SYSTEM_MPFR=0
- USE_SYSTEM_BLAS=1
- USE_SYSTEM_LAPACK=1
- USE_SYSTEM_SUITESPARSE=1
- USE_SYSTEM_LIBSSH2=1
- USE_SYSTEM_CURL=1
- USE_SYSTEM_LIBGIT2=1
- USE_SYSTEM_MBEDTLS=1
- EOF
- %{__mkdir_p} deps/srccache stdlib/srccache
- %{__cp} \
- %{SOURCE11} %{SOURCE12} %{SOURCE13} %{SOURCE14} %{SOURCE15} \
- %{SOURCE16} %{SOURCE17} %{SOURCE18} \
- deps/srccache
- %{__cp} %{SOURCE31} stdlib/srccache
- # 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
- %ifarch %{ix86}
- %global march pentium4
- %endif
- %ifarch x86_64
- %global march x86-64
- %endif
- # setting for using system openblas
- %ifarch %{ix86}
- %global blas USE_BLAS64=0 LIBBLAS=-lopenblasp LIBBLASNAME=libopenblasp LIBLAPACK=-lopenblasp LIBLAPACKNAME=libopenblasp
- %endif
- %ifarch x86_64
- %global blas USE_BLAS64=1 LIBBLAS=-lopenblasp64_ LIBBLASNAME=libopenblasp64_ LIBLAPACK=-lopenblasp64_ LIBLAPACKNAME=libopenblasp64_ OPENBLAS_SYMBOLSUFFIX=64_
- %endif
- # 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}%{_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}
- %global commonopts MARCH=%{march} %{blas} %{installopts}
- %build
- %{__make} %{?_smp_mflags} %{commonopts}
- # 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}
- # remove html files
- 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.so*
- %{_datadir}/appdata/
- %{_datadir}/applications/
- %{_datadir}/icons/
- %{_datadir}/julia/
- %{_docdir}/%{name}-%{version}
- %{_mandir}/man1/
- %changelog
- * Sun Nov 03 2019 Toshiaki Ara <ara_t@384.jp> 1.1.0-3
- - Rebuild for suitesparse 5.4.0
- * Wed Mar 27 2019 Toshiaki Ara <ara_t@384.jp> 1.1.0-2
- - build llvm shared library
- - add Patch31 for x86_64
- - add Patch32 for i686
- - add SOURCE18 (cacert-*.pem)
- - add SOURCE31 (Pkg library)
- - drop Patch21
- * Mon Jan 28 2019 Toshiaki Ara <ara_t@384.jp> 1.1.0-1
- - update to 1.1.0
- - change using system openblas
- * Sat Jan 26 2019 Toshiaki Ara <ara_t@384.jp> 1.0.3-2
- - remove unnecessary sofiles
- - rebuild with gfortran-8.2.0
- * Sat Jan 05 2019 Toshiaki Ara <ara_t@384.jp> 1.0.3-1
- - update to 1.0.3
- * Fri Nov 16 2018 Toshiaki Ara <ara_t@384.jp> 1.0.2-1
- - update to 1.0.2
- * Thu Oct 04 2018 Toshiaki Ara <ara_t@384.jp> 1.0.1-1
- - update to 1.0.1
- * Wed Aug 22 2018 Toshiaki Ara <ara_t@384.jp> 1.0.0-2
- - rebuild with suitesparse-4.4.6
- * Fri Aug 17 2018 Toshiaki Ara <ara_t@384.jp> 1.0.0-1
- - update to 1.0.0
- - add/update sources
- - drop some Patches
- - add BuildRequires: and Requires: libatomic
- * Sat Jul 14 2018 Toshiaki Ara <ara_t@384.jp> 0.6.4-1
- - new upstream release
- - update SOURCE17 (openblas)
- * Sun Jun 17 2018 Toshiaki Ara <ara_t@384.jp> 0.6.3-1
- - new package
|