SHA256
1
0
forked from pool/juliaup
juliaup/juliaup.spec

165 lines
5.3 KiB
RPMSpec
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#
# spec file for package juliaup
#
# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%global oldest_supported_julia_version 0.7.0
%global latest_julia_version 1.8.3
# Based on the latest stable release in the https://julialang.org/ website
# Juliaup follows the versions too in the following permalink:
# https://github.com/JuliaLang/juliaup/blob/main/build.rs#L22-L72
%define provides_julia_versioned() \
Provides: %{1}-0.7.0%{?2:-%{2}} \
Provides: %{1}-1.0.0%{?2:-%{2}} \
Provides: %{1}-1.0.1%{?2:-%{2}} \
Provides: %{1}-1.0.2%{?2:-%{2}} \
Provides: %{1}-1.0.3%{?2:-%{2}} \
Provides: %{1}-1.0.4%{?2:-%{2}} \
Provides: %{1}-1.0.5%{?2:-%{2}} \
Provides: %{1}-1.1.0%{?2:-%{2}} \
Provides: %{1}-1.1.1%{?2:-%{2}} \
Provides: %{1}-1.2.0%{?2:-%{2}} \
Provides: %{1}-1.3.0%{?2:-%{2}} \
Provides: %{1}-1.3.1%{?2:-%{2}} \
Provides: %{1}-1.4.0%{?2:-%{2}} \
Provides: %{1}-1.4.1%{?2:-%{2}} \
Provides: %{1}-1.4.2%{?2:-%{2}} \
Provides: %{1}-1.5.0%{?2:-%{2}} \
Provides: %{1}-1.5.1%{?2:-%{2}} \
Provides: %{1}-1.5.2%{?2:-%{2}} \
Provides: %{1}-1.5.3%{?2:-%{2}} \
Provides: %{1}-1.5.4%{?2:-%{2}} \
Provides: %{1}-1.6.0%{?2:-%{2}} \
Provides: %{1}-1.6.1%{?2:-%{2}} \
Provides: %{1}-1.6.2%{?2:-%{2}} \
Provides: %{1}-1.6.3%{?2:-%{2}} \
Provides: %{1}-1.6.4%{?2:-%{2}} \
Provides: %{1}-1.6.5%{?2:-%{2}} \
Provides: %{1}-1.6.6%{?2:-%{2}} \
Provides: %{1}-1.7.0-beta1%{?2:-%{2}} \
Provides: %{1}-1.7.0-beta2%{?2:-%{2}} \
Provides: %{1}-1.7.0-beta3%{?2:-%{2}} \
Provides: %{1}-1.7.0-beta4%{?2:-%{2}} \
Provides: %{1}-1.7.0-rc1%{?2:-%{2}} \
Provides: %{1}-1.7.0%{?2:-%{2}} \
Provides: %{1}-1.7.0-rc2%{?2:-%{2}} \
Provides: %{1}-1.7.0-rc3%{?2:-%{2}} \
Provides: %{1}-1.7.1%{?2:-%{2}} \
Provides: %{1}-1.7.2%{?2:-%{2}} \
Provides: %{1}-1.7.3%{?2:-%{2}} \
Provides: %{1}-1.8.0-beta1%{?2:-%{2}} \
Provides: %{1}-1.8.0-beta3%{?2:-%{2}} \
Provides: %{1}-1.8.0-rc1%{?2:-%{2}} \
Provides: %{1}-1.8.0-rc3%{?2:-%{2}} \
Provides: %{1}-1.8.0-rc4%{?2:-%{2}} \
Provides: %{1}-1.8.0%{?2:-%{2}} \
Provides: %{1}-1.8.1%{?2:-%{2}} \
Provides: %{1}-1.8.2%{?2:-%{2}} \
Provides: %{1}-1.8.3%{?2:-%{2}}
Name: juliaup
Version: 1.7.35
Release: 0
Summary: Julia installer and version multiplexer
License: (0BSD OR MIT OR Apache-2.0) AND Apache-2.0 AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR ISC OR MIT) AND (Apache-2.0 OR MIT) AND (Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT) AND (Apache-2.0 OR MIT OR Zlib) AND (Apache-2.0 OR MIT OR Zlib) AND (MIT OR Unlicense) AND (Apache-2.0 OR Zlib OR MIT) AND Apache-2.0 AND ISC AND MIT AND MPL-2.0 AND MIT
Group: Development/Languages/Other
URL: https://github.com/JuliaLang/juliaup
Source0: %{name}-%{version}.tar.gz
Source1: vendor.tar.gz
Source2: cargo_config
BuildRequires: rust+cargo
%if 0%{?suse_version}
BuildRequires: cargo-packaging
%endif
%provides_julia_versioned julia
Provides: julia = %{latest_julia_version}
Obsoletes: julia < %{latest_julia_version}
%if 0%{?suse_version}
PreReq: update-alternatives
%endif
%description
A cross-platform installer for the Julia programming language.
The installer also bundles a full Julia version manager called juliaup.
One can use juliaup to install specific Julia versions, it alerts users
when new Julia versions are released and provides a convenient Julia
release channel abstraction.
%prep
%autosetup -a1
mkdir .cargo
cp %{SOURCE2} .cargo/config
%build
%if 0%{?rhel} > 7 || 0%{?fedora}
unset LIBSSH2_SYS_USE_PKG_CONFIG
export RUSTFLAGS="%{rustflags}"
cargo build --offline --release --no-default-features
%endif
%if 0%{?suse_version}
%{cargo_build} --no-default-features
%endif
%install
%if 0%{?rhel} > 7 || 0%{?fedora}
unset LIBSSH2_SYS_USE_PKG_CONFIG
export RUSTFLAGS="%{rustflags}"
cargo install --offline --release --no-default-features --no-track --root="%{buildroot}%{_prefix}" --path .
%endif
%if 0%{?suse_version}
%{cargo_install} --no-default-features
%endif
%if 0%{?rhel} > 7 || 0%{?fedora}
ln -sf %{_bindir}/julia %{buildroot}%{_bindir}/julialauncher
%endif
%if 0%{?suse_version}
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
ln -sf %{_sysconfdir}/alternatives/julia %{buildroot}%{_bindir}/julia
%post
"%_sbindir/update-alternatives" --install \
"%{_bindir}/julia" julia "%{_bindir}/julialauncher" $(printf %{latest_julia_version} | sed 's/\.//g')
%pre
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%{_sbindir}/update-alternatives" --remove julia "%{_bindir}/julialauncher";
fi;
%postun
if [ ! -f %{_bindir}/julia ] ; then
"%{_sbindir}/update-alternatives" --remove julia "%{_bindir}/julialauncher"
fi
%endif
%files
%if 0%{?suse_version}
%ghost %_sysconfdir/alternatives/julia
%endif
%license LICENSE
%doc README.md
%{_bindir}/juliainstaller
%{_bindir}/julialauncher
%{_bindir}/juliaup
%changelog