Name: rust
Version: 1.24.1
Release: alt0.M70C.1
Summary: The Rust Programming Language
Group: Development/Other
License: Apache 2.0, MIT
URL: http://www.rust-lang.org/
Source: https://static.rust-lang.org/dist/%{name}c-%version-src.tar.xz
BuildPreReq: /proc
BuildRequires(pre): custom-gcc5 custom-gcc5-c++ custom-libstdc++5-devel
BuildRequires: curl python-devel cmake libffi-devel
%def_with bootstrap
%def_with bundled_llvm
%if_without bundled_llvm
BuildRequires: llvm6.0-devel
%endif
%if_without bootstrap
BuildRequires: rust rust-cargo
%define cargo %_bindir/cargo
%define rustc %_bindir/rustc
%else
%define r_ver 1.23.0
Source2: https://static.rust-lang.org/dist/rust-%r_ver-i686-unknown-linux-gnu.tar.gz
Source3: https://static.rust-lang.org/dist/rust-%r_ver-x86_64-unknown-linux-gnu.tar.gz
%ifarch %ix86
%define r_arch i686
%define l_arch i586
%define r_src %SOURCE2
%endif
%ifarch x86_64
%define r_arch x86_64
%define l_arch x86_64
%define r_src %SOURCE3
%endif
%define trbl rust-%r_ver-%r_arch-unknown-linux-gnu
%define stage0 build/%r_arch-unknown-linux-gnu/stage0
%define cargo %stage0/bin/cargo
%define rustc %stage0/bin/rustc
%endif
# Since 1.12.0: striping debuginfo damages *.so files
%add_debuginfo_skiplist %_libdir %_bindir
%description
Rust is a systems programming language that runs blazingly fast, prevents
segfaults, and guarantees thread safety.
%package gdb
Group: Development/Other
Summary: run rust compiler under gdb
Requires: %name = %version-%release
%filter_from_requires s/^python2\.7(gdb)$/gdb/
%description gdb
%summary
%prep
%setup -n %{name}c-%version-src
%if_with bootstrap
tar xf %r_src
mkdir -p %stage0
cp -r %trbl/cargo/* %stage0
cp -r %trbl/rustc/* %stage0
cp -r %trbl/rust-std-%r_arch-unknown-linux-gnu/* %stage0
%endif
%build
export CC=/usr/bin/gcc-5
export CXX=/usr/bin/g++-5
export LDFLAGS="-Wl,-rpath,%_libdir/custom-gcc"
export RUSTFLAGS="-C link-args=$LDFLAGS -L %_libdir/gcc/%{l_arch}-alt-linux/5"
cat > config.toml <<EOF
[build]
cargo = "%cargo"
rustc = "%rustc"
submodules = false
docs = false
verbose = 0
vendor = true
[install]
prefix = "%prefix"
libdir = "%_lib"
[rust]
channel = "stable"
codegen-tests = false
rpath = false
debuginfo = false
debuginfo-lines = false
EOF
patch -p2 <<'EOF'
diff --git a/rustc-1.24.1-src/src/etc/rust-gdb b/rustc-1.24.1-src/src/etc/rust-gdb
index 52601cd96f8..c398aaa49b3 100755
--- a/rustc-1.24.1-src/src/etc/rust-gdb
+++ b/rustc-1.24.1-src/src/etc/rust-gdb
@@ -13,8 +13,7 @@
set -e
# Find out where the pretty printer Python module is
-RUSTC_SYSROOT=`rustc --print=sysroot`
-GDB_PYTHON_MODULE_DIRECTORY="$RUSTC_SYSROOT/lib/rustlib/etc"
+GDB_PYTHON_MODULE_DIRECTORY="%_libdir/rustlib/etc"
# Run GDB with the additional arguments that load the pretty printers
# Set the environment variable `RUST_GDB` to overwrite the call to a
EOF
%if_without bundled_llvm
cat >> config.toml <<EOF
[target.x86_64-unknown-linux-gnu]
llvm-config = "./llvm-config-filtered"
[target.i686-unknown-linux-gnu]
llvm-config = "./llvm-config-filtered"
EOF
cat > llvm-config-filtered <<EOF
#!/bin/sh
/usr/bin/llvm-config \$@ | sed -E 's/-Wcovered-switch-default|-Wstring-conversion|-fcolor-diagnostics|-Werror=unguarded-availability-new//g'
EOF
chmod +x llvm-config-filtered
export LLVM_LINK_SHARED=1
%endif
./x.py build
%install
export CC=/usr/bin/gcc-5
export CXX=/usr/bin/g++-5
export LDFLAGS="-Wl,-rpath,%_libdir/custom-gcc"
export RUSTFLAGS="-C link-args=$LDFLAGS -L %_libdir/gcc/%{l_arch}-alt-linux/5"
DESTDIR=%buildroot ./x.py install
%check
export CC=/usr/bin/gcc-5
export CXX=/usr/bin/g++-5
export LDFLAGS="-Wl,-rpath,%_libdir/custom-gcc"
export RUSTFLAGS="-C link-args=$LDFLAGS -L %_libdir/gcc/%{l_arch}-alt-linux/5"
./x.py test --no-fail-fast || :
%files
%exclude %_datadir/doc/rust
%doc COPYRIGHT LICENSE-APACHE LICENSE-MIT README.md
%_bindir/rustc
%_bindir/rustdoc
%_libdir/lib*
%dir %_libdir/rustlib
%_libdir/rustlib/*
%exclude %_libdir/rustlib/etc/*
%exclude %_libdir/rustlib/install.log
%exclude %_libdir/rustlib/manifest-*
%exclude %_libdir/rustlib/rust-installer-version
%exclude %_libdir/rustlib/uninstall.sh
%exclude %_libdir/rustlib/components
%_man1dir/rustc.*
%_man1dir/rustdoc.*
%files gdb
%_bindir/rust-gdb
%exclude %_bindir/rust-lldb
%_libdir/rustlib/etc/*
%exclude %_libdir/rustlib/etc/lldb_*
%changelog
* Wed Dec 12 2018 Ivan Zakharyaschev <imz@altlinux.org> 1.24.1-alt0.M70C.1
- Backport new version to c7 branch (bootstrapped) (thx Andrey Cherepanov).
- Fixed rust-gdb and its dependency.
* Mon Mar 26 2018 Vladimir Lettiev <crux@altlinux.org> 1.24.1-alt1
- 1.24.1
* Sun Mar 25 2018 Vladimir Lettiev <crux@altlinux.org> 1.23.0-alt1
- 1.23.0
* Sat Mar 24 2018 Vladimir Lettiev <crux@altlinux.org> 1.22.1-alt1
- 1.22.1
- built with bundled llvm
- migrated from gear to srpm
* Thu Feb 15 2018 Andrey Cherepanov <cas@altlinux.org> 1.21.0-alt0.M80P.1
- backport new version to p8 branch
* Wed Feb 14 2018 Andrey Cherepanov <cas@altlinux.org> 1.20.0-alt0.M80P.1
- backport new version to p8 branch
* Thu Oct 19 2017 Vladimir Lettiev <crux@altlinux.org> 1.21.0-alt1
- 1.21.0
* Fri Sep 08 2017 Vladimir Lettiev <crux@altlinux.org> 1.20.0-alt1
- 1.20.0
* Fri Jul 21 2017 Vladimir Lettiev <crux@altlinux.org> 1.19.0-alt1
- 1.19.0
* Wed Jul 19 2017 Vladimir Lettiev <crux@altlinux.org> 1.18.0-alt1
- 1.18.0
- built with shared llvm4.0
* Fri Jun 16 2017 Vladimir Lettiev <crux@altlinux.org> 1.17.0-alt1
- 1.17.0
- switched to cargo-based build
* Fri Jun 16 2017 Vladimir Lettiev <crux@altlinux.org> 1.16.0-alt1
- 1.16.0
* Thu Jun 15 2017 Vladimir Lettiev <crux@altlinux.org> 1.15.1-alt1
- 1.15.1
* Fri Dec 23 2016 Vladimir Lettiev <crux@altlinux.ru> 1.14.0-alt1
- 1.14.0
* Tue Nov 15 2016 Vladimir Lettiev <crux@altlinux.ru> 1.13.0-alt1
- 1.13.0
- disabled bootstrap
* Tue Nov 15 2016 Vladimir Lettiev <crux@altlinux.ru> 1.12.1-alt1
- 1.12.1
- rebootstrap
* Wed Oct 05 2016 Vladimir Lettiev <crux@altlinux.ru> 1.12.0-alt1
- 1.12.0
- disable debuginfo packaging
* Mon Oct 03 2016 Vladimir Lettiev <crux@altlinux.ru> 1.11.0-alt1
- 1.11.0
* Mon Jul 11 2016 Vladimir Lettiev <crux@altlinux.ru> 1.10.0-alt1
- 1.10.0
* Mon May 30 2016 Vladimir Lettiev <crux@altlinux.ru> 1.9.0-alt1
- 1.9.0
* Fri Apr 22 2016 Vladimir Lettiev <crux@altlinux.ru> 1.8.0-alt1
- 1.8.0
* Fri Mar 04 2016 Vladimir Lettiev <crux@altlinux.ru> 1.7.0-alt1
- 1.7.0
* Fri Jan 22 2016 Vladimir Lettiev <crux@altlinux.ru> 1.6.0-alt1
- 1.6.0
- separated rust-gdb package
* Fri Jan 15 2016 Vladimir Lettiev <crux@altlinux.ru> 1.5.0-alt1
- initial build