Accepting request 686253 from home:luke_nukem:branches:devel:languages:rust

- Remove miri complete instead of excluding. This is experimental
  and so should not be included.
- BuildRequires ccache in attempt to reduce compile times.
- Remove more extraneous directories from src that will never be
  used.
- Extra patterns in rpmlintrc to catch more false positives:
  + Rust has no stable API, ignore SONAME warnings
  + Tool versions don't update in step with rust, ignore warnings

OBS-URL: https://build.opensuse.org/request/show/686253
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=202
This commit is contained in:
Luke Jones 2019-03-19 04:04:52 +00:00 committed by Git OBS Bridge
parent 3dbbcc65f4
commit a96ee8dda3
3 changed files with 41 additions and 17 deletions

View File

@ -6,3 +6,11 @@ addFilter("devel-file-in-non-devel-package.*/usr/lib/rustlib/src/.*")
addFilter("binaryinfo-readelf-failed*./usr/lib/rustlib/*.rlib")
# rust has no stable ABI as of yet, soname is of no use yet
addFilter("no-soname.*/usr/lib/rustlib/.*")
addFilter("no-soname.*/usr/lib/lib*")
# tool versions don't always change at same pace as rustc
addFilter("clippy.x86_64: W: no-version-in-last-changelog")
addFilter("rls.x86_64: W: no-version-in-last-changelog")
addFilter("rust-analysis.x86_64: W: no-version-in-last-changelog")
addFilter("rustfmt.x86_64: W: no-version-in-last-changelog")
# error when building with bootstrap. ignore for now
addFilter(".*shlib-policy-name-error.*libLLVM-8svn.*")

View File

@ -1,3 +1,15 @@
-------------------------------------------------------------------
Sat Mar 16 01:19:22 UTC 2019 - Luke Jones <jones_ld@protonmail.com>
- Remove miri complete instead of excluding. This is experimental
and so should not be included.
- BuildRequires ccache in attempt to reduce compile times.
- Remove more extraneous directories from src that will never be
used.
- Extra patterns in rpmlintrc to catch more false positives:
+ Rust has no stable API, ignore SONAME warnings
+ Tool versions don't update in step with rust, ignore warnings
-------------------------------------------------------------------
Wed Mar 6 09:07:43 UTC 2019 - Luke Jones <jones_ld@protonmail.com>
@ -20,7 +32,7 @@ Sat Mar 2 05:17:36 UTC 2019 - Luke Jones <jones_ld@protonmail.com>
`#[cfg(target_vendor="linux")] fn main() { println!("Hello Linux!"); }`
- Integer patterns such as in a match expression can now be exhaustive.
E.g. You can have match statement on a `u8` that covers `0..=255` and
you would no longer be required to have a `_ => unreachable!()` case.
you would no longer be required to have a `_ => unreachable!()` case.
- You can now have multiple patterns in `if let` and `while let`
expressions. You can do this with the same syntax as a `match`
expression. E.g.

View File

@ -13,7 +13,7 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
@ -101,6 +101,7 @@ Source107: %{dl_url}/rust-%{version_bootstrap}-s390x-unknown-linux-gnu.tar.
Patch0: ignore-Wstring-conversion.patch
# PATCH-FIX-OPENSUSE: replace depreciated trim_left_matches with trim_start_matches
Patch1: depreciated-trim_left_matches.patch
BuildRequires: ccache
# Leap 42 to 42.3, SLE12 SP1, SP2
%if 0%{?sle_version} >= 120000 && 0%{?sle_version} <= 120200
# In these distros cmake is 2.x, so we need cmake3 for building llvm.
@ -141,7 +142,7 @@ ExclusiveArch: i686
%endif
# Real LLVM minimum version should be 7.x, but rust has a fallback mode
%if !%with bundled_llvm
BuildRequires: llvm-devel >= 7.0
BuildRequires: llvm-devel >= 6.0
%endif
%if !%with rust_bootstrap
# We will now package cargo using the version number of rustc since
@ -204,7 +205,6 @@ Supplements: packageand(%{name}:gdb)
# Standard form
Supplements: (%{name} and gdb)
%endif
Provides: rust-gdb = %{version}
%description -n rust-gdb
This subpackage provides pretty printers and a wrapper script for
@ -293,8 +293,6 @@ Provides: rustc:%{_bindir}/cargo = %{version}
Cargo downloads dependencies of Rust projects and compiles it.
%package -n cargo-doc
Version: %{version}
Release: 0
Summary: Documentation for Cargo
# Cargo no longer builds its own documentation
# https://github.com/rust-lang/cargo/pull/4904
@ -356,6 +354,12 @@ rm -rf src/llvm-emscripten/
rm -rf src/tools/clang
rm -rf src/tools/lld
rm -rf src/tools/lldb
# CI tooling won't be used
rm -rf src/stdsimd/ci
# Remove hidden files from source
find src/ -type f -name '.appveyor.yml -exec rm -v '{}' '+'
find src/ -type f -name '.travis.yml -exec rm -v '{}' '+'
%if !%with bundled_llvm
rm -rf src/llvm/
@ -369,9 +373,8 @@ find vendor -name .cargo-checksum.json \
# Fix rpmlint error "This script uses 'env' as an interpreter"
sed -i '1s|#!%{_bindir}/env python|#!%{_bindir}/python3|' src/libcore/unicode/unicode.py
# Fix rpmlint warnings about these shell scripts not having a shebang or incorrect path
sed -i '1s|^|#!/bin/bash\n|' src/stdsimd/ci/run-docker.sh
sed -i '1s|#!%{_bindir}/env python|#!%{_bindir}/python3|' src/libcore/unicode/printable.py
chmod +x src/libcore/unicode/printable.py
%build
%configure \
@ -381,9 +384,11 @@ sed -i '1s|^|#!/bin/bash\n|' src/stdsimd/ci/run-docker.sh
--local-rust-root=%{rust_root} \
--libdir=%{common_libdir} \
--docdir=%{_docdir}/%{name} \
%{!?with_bundled_llvm: --llvm-root=%{_prefix} --enable-llvm-link-shared --set llvm.link-jobs=1} \
%{!?with_bundled_llvm: --llvm-root=%{_prefix} --enable-llvm-link-shared} \
%{?with_bundled_llvm: --disable-llvm-link-shared --set llvm.link-jobs=4} \
--disable-codegen-tests \
--enable-optimize \
--enable-ccache \
--enable-docs \
--enable-verbose-tests \
--disable-jemalloc \
@ -459,16 +464,13 @@ rm %{buildroot}%{_docdir}/%{name}/*.old
# Remove installer artifacts (manifests, uninstall scripts, etc.)
find %{buildroot}%{rustlibdir} -maxdepth 1 -type f -exec rm -v '{}' '+'
# Remove hidden files from source
find %{buildroot}%{rustlibdir} -type f -name '.appveyor.yml -exec rm -v '{}' '+'
find %{buildroot}%{rustlibdir} -type f -name '.travis.yml -exec rm -v '{}' '+'
# The shared libraries should be executable for debuginfo extraction.
find %{buildroot}%{rustlibdir} -maxdepth 1 -type f -name '*.so' -exec chmod -v +x '{}' '+'
# The html docs for x86 and x86_64 are the same in most places
%fdupes %{buildroot}%{_docdir}/%{name}/html
# We don't want to run fdupes over much else (like src) or it may cause weirdness.
%fdupes -s %{buildroot}%{_docdir}/%{name}/html
%fdupes -s %{buildroot}/%{_mandir}
%fdupes %{buildroot}/%{_prefix}
# Create the path for crate-devel packages
mkdir -p %{buildroot}%{_datadir}/cargo/registry
@ -482,6 +484,9 @@ ln -sT ../rust/html/cargo/ %{buildroot}%{_docdir}/cargo/html
install -D %{buildroot}%{_sysconfdir}/bash_completion.d/cargo %{buildroot}%{_datadir}/bash-completion/completions/cargo
# There should be nothing here at all
rm -rf %{buildroot}%{_sysconfdir}
# miri is experimental, we should not package it
rm -rf %{buildroot}%{_bindir}/miri
rm -rf %{buildroot}%{_bindir}/cargo-miri
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
@ -506,7 +511,6 @@ rm -rf %{buildroot}%{_sysconfdir}
%{rustlibdir}/%{rust_triple}/codegen-backends/
%exclude %{_docdir}/%{name}/html
%exclude %{rustlibdir}/src
%exclude %{_bindir}/*miri
%files -n rust-std-static
%dir %{rustlibdir}