diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-08-07 13:20:17 +0000 | 
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-08-07 13:20:17 +0000 | 
| commit | 887c4da5a1fc67b3d77a3e024126190bebbc7b65 (patch) | |
| tree | badaf59a23676083eacdc8600d4526bd753d4c88 | |
| parent | 50b4a3b4549253b7362fd6a55a441e0f59feea2e (diff) | |
automatic import of rustopeneuler23.03openeuler22.03_LTS_SP2openeuler20.03
| -rw-r--r-- | 0001-Use-lld-provided-by-system-for-wasm.patch | 26 | ||||
| -rw-r--r-- | cargo-config | 5 | ||||
| -rw-r--r-- | cargo-config.csh | 5 | ||||
| -rw-r--r-- | cargo-config.sh | 5 | ||||
| -rw-r--r-- | cargo-help-clippy-should-have-description-to-user.patch | 30 | ||||
| -rw-r--r-- | clippy-driver-usage-should-user-friendly.patch | 25 | ||||
| -rw-r--r-- | fix-a-println-wrong-format.patch | 25 | ||||
| -rw-r--r-- | rust.spec | 594 | ||||
| -rw-r--r-- | rustc-1.70.0-rust-gdb-substitute-path.patch | 21 | ||||
| -rw-r--r-- | rustc-1.71.0-disable-http2.patch | 92 | ||||
| -rw-r--r-- | rustc-1.71.0-disable-libssh2.patch | 42 | ||||
| -rw-r--r-- | rustc-1.71.1-src.tar.xz | 3 | ||||
| -rw-r--r-- | sources | 0 | 
13 files changed, 873 insertions, 0 deletions
diff --git a/0001-Use-lld-provided-by-system-for-wasm.patch b/0001-Use-lld-provided-by-system-for-wasm.patch new file mode 100644 index 0000000..5fcc245 --- /dev/null +++ b/0001-Use-lld-provided-by-system-for-wasm.patch @@ -0,0 +1,26 @@ +From 37cb177eb53145103ae72b67562884782dde01c3 Mon Sep 17 00:00:00 2001 +From: Ivan Mironov <mironov.ivan@gmail.com> +Date: Sun, 8 Dec 2019 17:23:08 +0500 +Subject: [PATCH] Use lld provided by system for wasm + +--- + compiler/rustc_target/src/spec/wasm_base.rs | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/compiler/rustc_target/src/spec/wasm_base.rs b/compiler/rustc_target/src/spec/wasm_base.rs +index 528a84a8b37c..353d742161d1 100644 +--- a/compiler/rustc_target/src/spec/wasm_base.rs ++++ b/compiler/rustc_target/src/spec/wasm_base.rs +@@ -89,8 +89,7 @@ macro_rules! args { +         // arguments just yet +         limit_rdylib_exports: false, +  +-        // we use the LLD shipped with the Rust toolchain by default +-        linker: Some("rust-lld".into()), ++        linker: Some("lld".into()), +         linker_flavor: LinkerFlavor::WasmLld(Cc::No), +  +         pre_link_args, +--  +2.38.1 + diff --git a/cargo-config b/cargo-config new file mode 100644 index 0000000..621c190 --- /dev/null +++ b/cargo-config @@ -0,0 +1,5 @@ +[source.crates-io] +replace-with = 'ustc' + +[source.ustc] +registry = "sparse+https://mirrors.ustc.edu.cn/crates.io-index/" diff --git a/cargo-config.csh b/cargo-config.csh new file mode 100644 index 0000000..7613473 --- /dev/null +++ b/cargo-config.csh @@ -0,0 +1,5 @@ +# Copy cargo config from skel if it is not exist +if ( ! -e "$HOME/.cargo/config.toml" ) then +        mkdir -p $HOME/.cargo +        cp -f /etc/skel/.cargo/config.toml $HOME/.cargo +endif diff --git a/cargo-config.sh b/cargo-config.sh new file mode 100644 index 0000000..2338945 --- /dev/null +++ b/cargo-config.sh @@ -0,0 +1,5 @@ +# Copy cargo config from skel if it is not exist +if [ ! -f "$HOME/.cargo/config.toml" ] ; then +        mkdir -p $HOME/.cargo +        cp -f /etc/skel/.cargo/config.toml $HOME/.cargo +fi diff --git a/cargo-help-clippy-should-have-description-to-user.patch b/cargo-help-clippy-should-have-description-to-user.patch new file mode 100644 index 0000000..5658c47 --- /dev/null +++ b/cargo-help-clippy-should-have-description-to-user.patch @@ -0,0 +1,30 @@ +From 4a2c2e81316960ffbcc3dc1c91758420d6db0a6e Mon Sep 17 00:00:00 2001 +From: si-gui <sunguoshuai@huawei.com> +Date: Thu, 24 Jun 2021 16:35:12 +0800 +Subject: [PATCH] cargo help clippy should have description to user + +--- + src/tools/cargo/src/bin/cargo/cli.rs | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/src/tools/cargo/src/bin/cargo/cli.rs b/src/tools/cargo/src/bin/cargo/cli.rs +index 243f6ac0..c2dd8785 100644 +--- a/src/tools/cargo/src/bin/cargo/cli.rs ++++ b/src/tools/cargo/src/bin/cargo/cli.rs +@@ -135,7 +135,12 @@ Run with 'cargo -Z [FLAG] [SUBCOMMAND]'", +                     } else if is_verbose { +                         drop_println!(config, "    {:<20} {}", name, path.display()); +                     } else { +-                        drop_println!(config, "    {}", name); ++                        if name.as_str() == "clippy" { ++                            let summary = "Checks a package to catch common mistakes and improve your Rust code."; ++                            drop_println!(config, "    {}", name, summary); ++                        } else { ++                            drop_println!(config, "    {}", name); ++                        } +                     } +                 } +                 CommandInfo::Alias { target } => { +--  +2.30.0 + diff --git a/clippy-driver-usage-should-user-friendly.patch b/clippy-driver-usage-should-user-friendly.patch new file mode 100644 index 0000000..5787dfe --- /dev/null +++ b/clippy-driver-usage-should-user-friendly.patch @@ -0,0 +1,25 @@ +From 1062e11170d93df3c53b01c1a630a7151af3a003 Mon Sep 17 00:00:00 2001 +From: si-gui <sunguoshuai@huawei.com> +Date: Wed, 23 Jun 2021 14:36:09 +0800 +Subject: [PATCH] clippy-driver usage should user friendly + +--- + src/tools/clippy/src/driver.rs | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/tools/clippy/src/driver.rs b/src/tools/clippy/src/driver.rs +index f5f6c09e..7af74f15 100644 +--- a/src/tools/clippy/src/driver.rs ++++ b/src/tools/clippy/src/driver.rs +@@ -126,7 +126,7 @@ fn display_help() { + Checks a package to catch common mistakes and improve your Rust code. +  + Usage: +-    cargo clippy [options] [--] [<opts>...] ++    clippy-driver [options] [--] [<opts>...] +  + Common options: +     -h, --help               Print this message +--  +2.30.0 + diff --git a/fix-a-println-wrong-format.patch b/fix-a-println-wrong-format.patch new file mode 100644 index 0000000..d9456be --- /dev/null +++ b/fix-a-println-wrong-format.patch @@ -0,0 +1,25 @@ +From edbb1b7011fe7bccf8a2efc71d806d61cd8e0c9b Mon Sep 17 00:00:00 2001 +From: si-gui <sunguoshuai@huawei.com> +Date: Thu, 24 Jun 2021 20:15:14 +0800 +Subject: [PATCH] fix a println wrong format + +--- + src/tools/cargo/src/bin/cargo/cli.rs | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/tools/cargo/src/bin/cargo/cli.rs b/src/tools/cargo/src/bin/cargo/cli.rs +index c2dd8785..9c240690 100644 +--- a/src/tools/cargo/src/bin/cargo/cli.rs ++++ b/src/tools/cargo/src/bin/cargo/cli.rs +@@ -137,7 +137,7 @@ Run with 'cargo -Z [FLAG] [SUBCOMMAND]'", +                     } else { +                         if name.as_str() == "clippy" { +                             let summary = "Checks a package to catch common mistakes and improve your Rust code."; +-                            drop_println!(config, "    {}", name, summary); ++                            drop_println!(config, "    {:<20} {}", name, summary); +                         } else { +                             drop_println!(config, "    {}", name); +                         } +--  +2.30.0 + diff --git a/rust.spec b/rust.spec new file mode 100644 index 0000000..d7e2a8f --- /dev/null +++ b/rust.spec @@ -0,0 +1,594 @@ +%global bootstrap_rust 1.70.0 +%global bootstrap_cargo 1.70.0 +%global bootstrap_channel 1.70.0 +%global bootstrap_date 2023-06-01 +%bcond_with llvm_static +%bcond_with bundled_llvm +%bcond_without bundled_libgit2 +%bcond_with disabled_libssh2 +%bcond_without curl_http2 +%bcond_without lldb +%bcond_without analyzer + +Name:                rust +Version:             1.71.1 +Release:             1 +Summary:             The Rust Programming Language +License:             (ASL 2.0 or MIT) and (BSD and MIT) +URL:                 https://www.rust-lang.org +Source0:             https://static.rust-lang.org/dist/rustc-%{version}-src.tar.xz +# SOURCE1-3: use local mirror for speed up +Source1:             cargo-config +Source2:             cargo-config.sh +Source3:             cargo-config.csh + +Patch0000:           rustc-1.71.0-disable-libssh2.patch +Patch0001:           rustc-1.71.0-disable-http2.patch +Patch0002:           clippy-driver-usage-should-user-friendly.patch +Patch0003:           cargo-help-clippy-should-have-description-to-user.patch +Patch0004:           fix-a-println-wrong-format.patch +# By default, rust tries to use "rust-lld" as a linker for WebAssembly. +Patch0007:           0001-Use-lld-provided-by-system-for-wasm.patch +# Set a substitute-path in rust-gdb for standard library sources. +Patch0008:           rustc-1.70.0-rust-gdb-substitute-path.patch + +%{lua: function rust_triple(arch) +  local abi = "gnu" +  if arch == "armv7hl" then +    arch = "armv7" +    abi = "gnueabihf" +  elseif arch == "ppc64" then +    arch = "powerpc64" +  elseif arch == "ppc64le" then +    arch = "powerpc64le" +  elseif arch == "riscv64" then +    arch = "riscv64gc" +  end +  return arch.."-unknown-linux-"..abi +end} +%{lua: function rust_musl_triple(arch) +  local abi = "musl" +  if arch == "riscv64" then +    arch = "riscv64gc" +  end +  return arch.."-unknown-linux-"..abi +end} +%{lua: function rust_musl_root(arch) +  if arch == "riscv64" then +    arch = "riscv64gc" +  end +  return "--musl-root-"..arch +end} +%global rust_triple %{lua: print(rust_triple(rpm.expand("%{_target_cpu}")))} +%global rust_musl_triple %{lua: print(rust_musl_triple(rpm.expand("%{_target_cpu}")))} +%global rust_musl_root %{lua: print(rust_musl_root(rpm.expand("%{_target_cpu}")))} +%if %defined bootstrap_arches +%{lua: do +  local bootstrap_arches = {} +  for arch in string.gmatch(rpm.expand("%{bootstrap_arches}"), "%S+") do +    table.insert(bootstrap_arches, arch) +  end +  local base = rpm.expand("https://static.rust-lang.org/dist/%{bootstrap_date}" +                          .."/rust-%{bootstrap_channel}") +  local target_arch = rpm.expand("%{_target_cpu}") +  for i, arch in ipairs(bootstrap_arches) do +    print(string.format("Source%d: %s-%s.tar.xz\n", +                        i, base, rust_triple(arch))) +    if arch == target_arch then +      rpm.define("bootstrap_source "..i) +    end +  end +end} +%endif +%ifarch %{bootstrap_arches} +%global bootstrap_root rust-%{bootstrap_channel}-%{rust_triple} +%global local_rust_root %{_builddir}/%{bootstrap_root}/usr +Provides:            bundled(%{name}-bootstrap) = %{bootstrap_rust} +%else +BuildRequires:       cargo >= %{bootstrap_cargo} +BuildRequires:       (%{name} >= %{bootstrap_rust} with %{name} <= %{version}) +%global local_rust_root %{_prefix} +%endif +BuildRequires:       make gcc gcc-c++ ncurses-devel curl curl-devel musl-libc-static musl-gcc pkgconfig(libcurl) pkgconfig(liblzma) +BuildRequires:       pkgconfig(openssl) pkgconfig(zlib) pkgconfig(libssh2) >= 1.6.0 +%global python python3 +BuildRequires:       %{python} +%if %with bundled_llvm +BuildRequires:       cmake3 >= 3.13.4 +Provides:            bundled(llvm) = 16.0.5 +%else +BuildRequires:       cmake >= 2.8.11 +%if %defined llvm +%global llvm_root %{_libdir}/%{llvm} +%else +# default llvm is decent enough on riscv64 +%global llvm llvm +%global llvm_root %{_prefix} +%endif +# rust currently requires llvm 14.0+ +BuildRequires:       %{llvm} >= 14.0.0 +BuildRequires:       %{llvm}-devel >= 14.0.0 +%if %with llvm_static +BuildRequires:       %{llvm}-static libffi-devel +%endif +%endif +BuildRequires:       procps-ng +BuildRequires:       ninja-build +Provides:            rustc = %{version}-%{release} +Provides:            rustc%{?_isa} = %{version}-%{release} +Requires:            %{name}-std-static%{?_isa} = %{version}-%{release} +Requires:            /usr/bin/cc +%global _privatelibs lib(.*-[[:xdigit:]]{16}*|rustc.*)[.]so.* +%global __provides_exclude ^(%{_privatelibs})$ +%global __requires_exclude ^(%{_privatelibs})$ +%global __provides_exclude_from ^(%{_docdir}|%{rustlibdir}/src)/.*$ +%global __requires_exclude_from ^(%{_docdir}|%{rustlibdir}/src)/.*$ +%global _find_debuginfo_opts --keep-section .rustc +%global rustflags -Clink-arg=-Wl,-z,relro,-z,now +%if %{without bundled_llvm} +%if "%{llvm_root}" == "%{_prefix}" || 0%{?scl:1} +%global llvm_has_filecheck 1 +%endif +%endif +%global musl_root %{_prefix}/musl + +# The 'analysis' component is removed since Rust 1.69.0 +# ref: https://github.com/rust-lang/rust/pull/101841 +Obsoletes:             %{name}-analysis < 1.69.0~ + +%description +Rust is a systems programming language that runs blazingly fast, prevents +segfaults, and guarantees thread safety. +This package includes the Rust compiler and documentation generator. + +%package std-static +Summary:             Standard library for Rust +%description std-static +This package includes the standard libraries for building applications +written in Rust. + +%package debugger-common +Summary:             Common debugger pretty printers for Rust +BuildArch:           noarch +%description debugger-common +This package includes the common functionality for %{name}-gdb and %{name}-lldb. + +%package gdb +Summary:             GDB pretty printers for Rust +BuildArch:           noarch +Requires:            gdb %{name}-debugger-common = %{version}-%{release} +%description gdb +This package includes the rust-gdb script, which allows easier debugging of Rust +programs. + +%package lldb +Summary:             LLDB pretty printers for Rust +BuildArch:           noarch +Requires:            lldb %{python}-lldb +Requires:            %{name}-debugger-common = %{version}-%{release} + +%description lldb +This package includes the rust-lldb script, which allows easier debugging of Rust +programs. + +%package -n cargo +Summary:             Rust's package manager and build tool +%if %with bundled_libgit2 +Provides:            bundled(libgit2) = 1.1.0 +%endif +BuildRequires:       git +Requires:            rust +Obsoletes:           cargo-vendor <= 0.1.23 +Provides:            cargo-vendor = %{version}-%{release} +%description -n cargo +Cargo is a tool that allows Rust projects to declare their various dependencies +and ensure that you'll always get a repeatable build. + +%package -n rustfmt +Summary:             Tool to find and fix Rust formatting issues +Requires:            cargo +Obsoletes:           rustfmt-preview < 1.0.0 +Provides:            rustfmt-preview = %{version}-%{release} +Conflicts:           rustfmt-preview < 1.0.0 +%description -n rustfmt +A tool for formatting Rust code according to style guidelines. + +%if %{with analyzer} +%package analyzer +Summary:Rust implementation of the Language Server Protocol +Requires:            %{name}-src +# RLS is no longer available as of Rust 1.65, but we're including the stub +# binary that implements LSP just enough to recommend rust-analyzer. +Obsoletes:           rls < 1.65.0~ +Obsoletes:           rls-preview < 1.31.6 + +%description analyzer +rust-analyzer is an implementation of Language Server Protocol for the Rust +programming language. It provides features like completion and goto definition +for many code editors, including VS Code, Emacs and Vim. +%endif + +%package -n clippy +Summary:             Lints to catch common mistakes and improve your Rust code +Requires:            cargo %{name}%{?_isa} = %{version}-%{release} +Obsoletes:           clippy-preview <= 0.0.212 +Provides:            clippy-preview = %{version}-%{release} +Conflicts:           clippy-preview <= 0.0.212 +%description -n clippy +A collection of lints to catch common mistakes and improve your Rust code. + +%package src +Summary:             Sources for the Rust standard library +BuildArch:           noarch +%description src +This package includes source files for the Rust standard library.  It may be +useful as a reference for code completion tools in various editors. + +%package help +Summary:     Help documents for rust + +Provides:    %{name}-doc = %{version}-%{release} %{name}-cargo-doc = %{version}-%{release} +Obsoletes:   %{name}-doc < %{version}-%{release} %{name}-cargo-doc < %{version}-%{release} + +%description help +Man pages and other related help documents for rust. + +%prep +%ifarch %{bootstrap_arches} +%setup -q -n %{bootstrap_root} -T -b %{bootstrap_source} +./install.sh --components=cargo,rustc,rust-std-%{rust_triple} \ +  --prefix=%{local_rust_root} --disable-ldconfig +test -f '%{local_rust_root}/bin/cargo' +test -f '%{local_rust_root}/bin/rustc' +%endif +%setup -q -n rustc-%{version}-src +%if %with disabled_libssh2 +%patch -P 0000 -p1 +%endif +%if %without curl_http2 +%patch -P 0001 -p1 +rm -rf vendor/libnghttp2-sys*/ +%endif +%if "%{python}" != "python3" +sed -i.try-python -e '/^try python3 /i try "%{python}" "$@"' ./configure +%endif +%patch -P 0002 -p1 +%patch -P 0003 -p1 +%patch -P 0004 -p1 +%patch -P 0007 -p1 +%patch -P 0008 -p1 +rm -rf vendor/curl-sys*/curl/ +rm -rf vendor/jemalloc-sys/jemalloc/ +rm -rf vendor/libffi-sys*/libffi/ +rm -rf vendor/libssh2-sys*/libssh2/ +rm -rf vendor/libz-sys*/src/zlib{,-ng}/ +rm -rf vendor/lzma-sys*/xz-*/ +rm -rf vendor/openssl-src*/openssl/ +%if %without bundled_libgit2 +rm -rf vendor/libgit2-sys*/libgit2/ +%endif +%if %with disabled_libssh2 +rm -rf vendor/libssh2-sys*/ +%endif +sed -i.lzma -e '/LZMA_API_STATIC/d' src/bootstrap/tool.rs +%if %{without bundled_llvm} && %{with llvm_static} +sed -i.ffi -e '$a #[link(name = "ffi")] extern {}' \ +  src/librustc_llvm/lib.rs +%endif +find vendor -name .cargo-checksum.json \ +  -exec sed -i.uncheck -e 's/"files":{[^}]*}/"files":{ }/' '{}' '+' +find -name '*.rs' -type f -perm /111 -exec chmod -v -x '{}' '+' +%global rust_env RUSTFLAGS="%{rustflags}" +%if 0%{?cmake_path:1} +%global rust_env %{rust_env} PATH="%{cmake_path}:$PATH" +%endif +%if %without bundled_libgit2 +%global rust_env %{rust_env} LIBGIT2_SYS_USE_PKG_CONFIG=1 +%endif +%if %without disabled_libssh2 +%global rust_env %{rust_env} LIBSSH2_SYS_USE_PKG_CONFIG=1 +%endif + +%build +export %{rust_env} +%global common_libdir %{_prefix}/lib +%global rustlibdir %{common_libdir}/rustlib +%ifarch %{arm} %{ix86} s390x +%define enable_debuginfo --debuginfo-level=0 --debuginfo-level-std=2 +%else +%define enable_debuginfo --debuginfo-level=1 +%endif +%ifnarch %{power64} +%define codegen_units_std --set rust.codegen-units-std=1 +%endif +ncpus=$(/usr/bin/getconf _NPROCESSORS_ONLN) +max_cpus=$(( ($(free -g | awk '/^Mem:/{print $2}') + 1) / 2 )) +if [ "$max_cpus" -ge 1 -a "$max_cpus" -lt "$ncpus" ]; then +  ncpus="$max_cpus" +fi +%configure --disable-option-checking \ +  --libdir=%{common_libdir} \ +  %{rust_musl_root}=%{musl_root} \ +  --build=%{rust_triple} --host=%{rust_triple} --target=%{rust_triple},%{rust_musl_triple} \ +  --python=%{python} \ +  --local-rust-root=%{local_rust_root} \ +  %{!?with_bundled_llvm: --llvm-root=%{llvm_root} \ +    %{!?llvm_has_filecheck: --disable-codegen-tests} \ +    %{!?with_llvm_static: --enable-llvm-link-shared } } \ +  --disable-rpath \ +  %{enable_debuginfo} \ +  --enable-extended \ +  --tools=cargo,clippy,%{?with_analyzer:rls,rust-analyzer,}rustfmt,src \ +  --enable-vendor \ +  --enable-verbose-tests \ +  %{?codegen_units_std} \ +  --release-channel=stable +%{python} ./x.py build -j "$ncpus" --stage 2 +%{python} ./x.py doc --stage 2 + +%install +export %{rust_env} +DESTDIR=%{buildroot} %{python} ./x.py install + +# Some of the components duplicate-install binaries, leaving backups we don't want +rm -f %{buildroot}%{_bindir}/*.old + +%if "%{_libdir}" != "%{common_libdir}" +mkdir -p %{buildroot}%{_libdir} +find %{buildroot}%{common_libdir} -maxdepth 1 -type f -name '*.so' \ +  -exec mv -v -t %{buildroot}%{_libdir} '{}' '+' +%endif +find %{buildroot}%{_libdir} -maxdepth 1 -type f -name '*.so' \ +  -exec chmod -v +x '{}' '+' +(cd "%{buildroot}%{rustlibdir}/%{rust_triple}/lib" && + find ../../../../%{_lib} -maxdepth 1 -name '*.so' | + while read lib; do +   if [ -f "${lib##*/}" ]; then +     # make sure they're actually identical! +     cmp "$lib" "${lib##*/}" +     ln -v -f -s -t . "$lib" +   fi + done) +find %{buildroot}%{rustlibdir} -maxdepth 1 -type f -exec rm -v '{}' '+' +find %{buildroot}%{rustlibdir} -type f -name '*.orig' -exec rm -v '{}' '+' +find %{buildroot}%{rustlibdir}/src -type f -name '*.py' -exec rm -v '{}' '+' +rm -f %{buildroot}%{_docdir}/%{name}/README.md +rm -f %{buildroot}%{_docdir}/%{name}/COPYRIGHT +rm -f %{buildroot}%{_docdir}/%{name}/LICENSE +rm -f %{buildroot}%{_docdir}/%{name}/LICENSE-APACHE +rm -f %{buildroot}%{_docdir}/%{name}/LICENSE-MIT +rm -f %{buildroot}%{_docdir}/%{name}/LICENSE-THIRD-PARTY +rm -f %{buildroot}%{_docdir}/%{name}/*.old +find %{buildroot}%{_docdir}/%{name}/html -empty -delete +find %{buildroot}%{_docdir}/%{name}/html -type f -exec chmod -x '{}' '+' +mkdir -p %{buildroot}%{_datadir}/cargo/registry +mkdir -p %{buildroot}%{_docdir}/cargo +ln -sT ../rust/html/cargo/ %{buildroot}%{_docdir}/cargo/html + +# install default config for cargo mirror +install -m 0644 -D -p %{SOURCE1} %{buildroot}%{_sysconfdir}/skel/.cargo/config.toml +install -m 0644 -D -p %{SOURCE2} %{buildroot}%{_sysconfdir}/profile.d/cargo-config.sh +install -m 0644 -D -p %{SOURCE3} %{buildroot}%{_sysconfdir}/profile.d/cargo-config.csh + +%if %{with analyzer} +# The rls stub doesn't have an install target, but we can just copy it. +%{__install} -t %{buildroot}%{_bindir} build/%{rust_triple}/stage2-tools-bin/rls +%endif + +%if %without lldb +rm -f %{buildroot}%{_bindir}/rust-lldb +rm -f %{buildroot}%{rustlibdir}/etc/lldb_* +%endif +rm -f %{buildroot}%{rustlibdir}/%{rust_triple}/bin/rust-ll* + +%check +export %{rust_env} +%{python} ./x.py test --no-fail-fast --stage 2 || : +%{python} ./x.py test --no-fail-fast --stage 2 cargo || : +%{python} ./x.py test --no-fail-fast --stage 2 clippy || : +%if %{with analyzer} +%{python} ./x.py test --no-fail-fast --stage 2 rust-analyzer || : +%endif +%{python} ./x.py test --no-fail-fast --stage 2 rustfmt || : +%ldconfig_scriptlets + +%files +%license COPYRIGHT LICENSE-APACHE LICENSE-MIT +%license %{_docdir}/%{name}/html/*.txt +%doc README.md +%{_bindir}/rustc +%{_bindir}/rustdoc +%{_libdir}/*.so +%dir %{rustlibdir} +%dir %{rustlibdir}/%{rust_triple} +%dir %{rustlibdir}/%{rust_triple}/lib +%if %{with analyzer} +%{_libexecdir}/rust-analyzer-proc-macro-srv +%endif +%{rustlibdir}/%{rust_triple}/lib/*.so +%dir %{rustlibdir}/%{rust_musl_triple} +%dir %{rustlibdir}/%{rust_musl_triple}/lib + +%files std-static +%dir %{rustlibdir} +%dir %{rustlibdir}/%{rust_triple} +%dir %{rustlibdir}/%{rust_triple}/lib +%{rustlibdir}/%{rust_triple}/lib/*.rlib +%dir %{rustlibdir}/%{rust_musl_triple} +%dir %{rustlibdir}/%{rust_musl_triple}/lib +%{rustlibdir}/%{rust_musl_triple}/lib/*.rlib +%{rustlibdir}/%{rust_musl_triple}/lib/self-contained/*.o +%{rustlibdir}/%{rust_musl_triple}/lib/self-contained/libunwind.a +%{rustlibdir}/%{rust_musl_triple}/lib/self-contained/libc.a + +%files debugger-common +%dir %{rustlibdir} +%dir %{rustlibdir}/etc +%{rustlibdir}/etc/rust_*.py* + +%files gdb +%{_bindir}/rust-gdb +%{rustlibdir}/etc/gdb_* +%exclude %{_bindir}/rust-gdbgui +%if %with lldb + +%files lldb +%{_bindir}/rust-lldb +%{rustlibdir}/etc/lldb_* +%endif + +%files -n cargo +%license src/tools/cargo/LICENSE-APACHE src/tools/cargo/LICENSE-MIT src/tools/cargo/LICENSE-THIRD-PARTY +%doc src/tools/cargo/README.md +%config(noreplace) %{_sysconfdir}/skel/.cargo/config.toml +%{_sysconfdir}/profile.d/cargo-config.* +%{_bindir}/cargo +%{_libexecdir}/cargo* +%{_sysconfdir}/bash_completion.d/cargo +%{_datadir}/zsh/site-functions/_cargo +%dir %{_datadir}/cargo +%dir %{_datadir}/cargo/registry + +%files -n rustfmt +%{_bindir}/rustfmt +%{_bindir}/cargo-fmt +%doc src/tools/rustfmt/{README,CHANGELOG,Configurations}.md +%license src/tools/rustfmt/LICENSE-{APACHE,MIT} + +%if %{with analyzer} +%files analyzer +%{_bindir}/rls +%{_bindir}/rust-analyzer +%doc src/tools/rust-analyzer/README.md +%license src/tools/rust-analyzer/LICENSE-{APACHE,MIT} +%endif + +%files -n clippy +%{_bindir}/cargo-clippy +%{_bindir}/clippy-driver +%doc src/tools/clippy/{README.md,CHANGELOG.md} +%license src/tools/clippy/LICENSE-{APACHE,MIT} + +%files src +%dir %{rustlibdir} +%{rustlibdir}/src + +%files help +%dir %{_docdir}/%{name} +%docdir %{_docdir}/%{name} +%{_docdir}/%{name}/html +%dir %{_docdir}/cargo +%docdir %{_docdir}/cargo +%{_docdir}/cargo/html +%{_mandir}/man1/rustc.1* +%{_mandir}/man1/rustdoc.1* +%{_mandir}/man1/cargo*.1* + +%changelog +* Mon Aug 7 2023 Funda Wang <fundawang@yeah.net> - 1.71.1-1 +- New version 1.71.1 + +* Sun Jul 30 2023 Funda Wang <fundawang@yeah.net> - 1.71.0-3 +- Fix release channel name + +* Sun Jul 30 2023 Funda Wang <fundawang@yeah.net> - 1.71.0-2 +- Use local mirror for speed up + +* Fri Jul 28 2023 jchzhou <zhoujiacheng@iscas.ac.cn> - 1.71.0-1 +- Update to 1.71.0 + +* Tue Jul 18 2023 xu_ping <707078654@qq.com> - 1.70.0-2 +- Use llvm package instead of llvm15 + +* Mon Jun 05 2023 jchzhou <zhoujiacheng@iscas.ac.cn> - 1.70.0-1 +- Update to 1.70.0 +- Fix rotten patch + +* Mon Apr 24 2023 jchzhou <zhoujiacheng@iscas.ac.cn> - 1.69.0-2 +- Add riscv64 specific changes + +* Mon Apr 24 2023 jchzhou <zhoujiacheng@iscas.ac.cn> - 1.69.0-1 +- Update to 1.69.0 +- Obsolete the removed rust-analysis subpackage +- Switch to xz tarball to save space + +* Wed Mar 22 2023 wangkai <wangkai385@h-partners.com> - 1.68.0-1 +- Update to 1.68.0 + +* Tue Feb 28 2023 wangkai <wangkai385@h-partners.com> - 1.67.1-1 +- Update to 1.67.1 + +* Tue Apr 19 2022 Liu Zixian <liuzixian4@huawei.com> - 1.60.0-1 +- Update to 1.60.0 + +* Mon Feb 28 2022 Liu Zixian <liuzixian4@huawei.com> - 1.59.0-1 +- Update to 1.59.0 + +* Sun Feb 27 2022 Liu Zixian <liuzixian4@huawei.com> - 1.58.1-1 +- Update to 1.58.1 + +* Wed Feb 09 2022 Li Zheng <lizheng135@huawei.com> - 1.57.0-2 +- Fix build error + +* Sat Jan 22 2022 Liu Zixian <liuzixian4@huawei.com> - 1.57.0-1 +- Update to 1.57.0 + +* Sat Dec 18 2021 sdlzx <hdu_sdlzx@163.com> - 1.56.0-1 +- Update to 1.56.0 + +* Wed Dec 15 2021 sdlzx <hdu_sdlzx@163.com> - 1.55.0-1 +- Update to 1.55.0 + +* Thu Oct 14 2021 sdlzx <hdu_sdlzx@163.com> - 1.54.0-1 +- Update to 1.54.0 + +* Fri Oct 08 2021 donglongtao <donglongtao@huawei.com> - 1.53.0-2 +- Update debuginfo-level config + +* Sat Oct 02 2021 sdlzx <hdu_sdlzx@163.com> - 1.53.0-1 +- Update to 1.53.0 + +* Tue Sep 28 2021 sdlzx <hdu_sdlzx@163.com> - 1.52.1-1 +- Update to 1.52.1 + +* Fri Sep 17 2021 donglongtao <donglongtao@huawei.com> - 1.51.0-10 +- Fix rustdoc install very slow + +* Tue Aug 24 2021 caodongxia <caodongxia@huawei.com> - 1.51.0-9 +- Fix rustdoc error info  + +* Wed Aug 18 2021 yaoxin <yaoxin30@huawei.com> - 1.51.0-8 +- Fix CVE-2021-29922 + +* Wed Aug 04 2021 chenyanpanHW <chenyanpan@huawei.com> - 1.51.0-7 +- DESC: delete BuildRequires gdb + +* Thu Jul 08 2021 Jiajie Li <lijiajie11@huawei.com> - 1.51.0-6 +- Add build require of ninja and llvm + +* Thu Jul 01 2021 Jiajie Li <lijiajie11@huawei.com> - 1.51.0-5 +- Add support for musl target + +* Thu Jun 24 2021 sunguoshuai <sunguoshuai@huawei.com> - 1.51.0-4 +- fix a println wrong format + +* Thu Jun 24 2021 sunguoshuai <sunguoshuai@huawei.com> - 1.51.0-3 +- cargo help clippy should have description to user + +* Wed Jun 23 2021 sunguoshuai <sunguoshuai@huawei.com> - 1.51.0-2 +- clippy-driver usage should user friendly + +* Fri May 07 2021 wangyue <wangyue92@huawei.com> - 1.51.0-1 +- Update to 1.51.0 + +* Mon Nov 30 2020 Jeffery.Gao <gaojianxing@huawei.com> - 1.45.2-2 +- fix upgrade error + +* Mon Sep 21 2020 Jeffery.Gao <gaojianxing@huawei.com> - 1.45.2-1 +- Update to 1.45.2 + +* Fri Apr 17 2020 zhujunhao <zhujunhao8@huawei.com> - 1.29.1-4 +- add llvm in rust + +* Thu Dec 5 2019 wutao <wutao61@huawei.com> - 1.29.1-3 +- Package init diff --git a/rustc-1.70.0-rust-gdb-substitute-path.patch b/rustc-1.70.0-rust-gdb-substitute-path.patch new file mode 100644 index 0000000..e9e5e2e --- /dev/null +++ b/rustc-1.70.0-rust-gdb-substitute-path.patch @@ -0,0 +1,21 @@ +diff --git a/src/etc/rust-gdb b/src/etc/rust-gdb +index 9abed30ea6f7..e4bf55df3688 100755 +--- a/src/etc/rust-gdb ++++ b/src/etc/rust-gdb +@@ -13,8 +13,6 @@ fi + # Find out where the pretty printer Python module is + RUSTC_SYSROOT="$("$RUSTC" --print=sysroot)" + GDB_PYTHON_MODULE_DIRECTORY="$RUSTC_SYSROOT/lib/rustlib/etc" +-# Get the commit hash for path remapping +-RUSTC_COMMIT_HASH="$("$RUSTC" -vV | sed -n 's/commit-hash: \([a-zA-Z0-9_]*\)/\1/p')" +  + # Run GDB with the additional arguments that load the pretty printers + # Set the environment variable `RUST_GDB` to overwrite the call to a +@@ -23,6 +21,6 @@ RUST_GDB="${RUST_GDB:-gdb}" + PYTHONPATH="$PYTHONPATH:$GDB_PYTHON_MODULE_DIRECTORY" exec ${RUST_GDB} \ +   --directory="$GDB_PYTHON_MODULE_DIRECTORY" \ +   -iex "add-auto-load-safe-path $GDB_PYTHON_MODULE_DIRECTORY" \ +-  -iex "set substitute-path /rustc/$RUSTC_COMMIT_HASH $RUSTC_SYSROOT/lib/rustlib/src/rust" \ ++  -iex "set substitute-path @BUILDDIR@ $RUSTC_SYSROOT/lib/rustlib/src/rust" \ +   "$@" +   diff --git a/rustc-1.71.0-disable-http2.patch b/rustc-1.71.0-disable-http2.patch new file mode 100644 index 0000000..34fdab3 --- /dev/null +++ b/rustc-1.71.0-disable-http2.patch @@ -0,0 +1,92 @@ +--- rustc-beta-src/src/tools/cargo/Cargo.lock.orig	2023-07-07 17:30:04.817452621 -0700 ++++ rustc-beta-src/src/tools/cargo/Cargo.lock	2023-07-07 17:30:27.777988139 -0700 +@@ -734,7 +734,6 @@ + dependencies = [ +  "cc", +  "libc", +- "libnghttp2-sys", +  "libz-sys", +  "openssl-sys", +  "pkg-config", +@@ -1954,16 +1953,6 @@ + checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb" +  + [[package]] +-name = "libnghttp2-sys" +-version = "0.1.7+1.45.0" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "57ed28aba195b38d5ff02b9170cbff627e336a20925e43b4945390401c5dc93f" +-dependencies = [ +- "cc", +- "libc", +-] +- +-[[package]] + name = "libz-sys" + version = "1.1.8" + source = "registry+https://github.com/rust-lang/crates.io-index" +--- rustc-beta-src/src/tools/cargo/Cargo.toml.orig	2023-07-07 17:30:04.819452581 -0700 ++++ rustc-beta-src/src/tools/cargo/Cargo.toml	2023-07-07 17:30:24.133061874 -0700 +@@ -118,7 +118,7 @@ + cargo-util.workspace = true + clap = { workspace = true, features = ["wrap_help"] } + crates-io.workspace = true +-curl = { workspace = true, features = ["http2"] } ++curl = { workspace = true, features = [] } + curl-sys.workspace = true + env_logger.workspace = true + filetime.workspace = true +--- rustc-beta-src/src/tools/cargo/src/cargo/core/package.rs.orig	2023-06-24 10:27:37.000000000 -0700 ++++ rustc-beta-src/src/tools/cargo/src/cargo/core/package.rs	2023-07-07 17:30:04.819452581 -0700 +@@ -407,16 +407,9 @@ +         sources: SourceMap<'cfg>, +         config: &'cfg Config, +     ) -> CargoResult<PackageSet<'cfg>> { +-        // We've enabled the `http2` feature of `curl` in Cargo, so treat +-        // failures here as fatal as it would indicate a build-time problem. +-        let mut multi = Multi::new(); +-        let multiplexing = config.http_config()?.multiplexing.unwrap_or(true); +-        multi +-            .pipelining(false, multiplexing) +-            .with_context(|| "failed to enable multiplexing/pipelining in curl")?; +- +-        // let's not flood crates.io with connections +-        multi.set_max_host_connections(2)?; ++        // Multiplexing is disabled because the system libcurl doesn't support it. ++        let multi = Multi::new(); ++        let multiplexing = false; +  +         Ok(PackageSet { +             packages: package_ids +--- rustc-beta-src/src/tools/cargo/src/cargo/sources/registry/http_remote.rs.orig	2023-06-24 10:27:37.000000000 -0700 ++++ rustc-beta-src/src/tools/cargo/src/cargo/sources/registry/http_remote.rs	2023-07-07 17:30:04.819452581 -0700 +@@ -229,16 +229,8 @@ +         } +         self.fetch_started = true; +  +-        // We've enabled the `http2` feature of `curl` in Cargo, so treat +-        // failures here as fatal as it would indicate a build-time problem. +-        self.multiplexing = self.config.http_config()?.multiplexing.unwrap_or(true); +- +-        self.multi +-            .pipelining(false, self.multiplexing) +-            .with_context(|| "failed to enable multiplexing/pipelining in curl")?; +- +-        // let's not flood the server with connections +-        self.multi.set_max_host_connections(2)?; ++        // Multiplexing is disabled because the system libcurl doesn't support it. ++        self.multiplexing = false; +  +         if !self.quiet { +             self.config +--- rustc-beta-src/src/tools/cargo/src/cargo/util/network/mod.rs.orig	2023-06-24 10:27:37.000000000 -0700 ++++ rustc-beta-src/src/tools/cargo/src/cargo/util/network/mod.rs	2023-07-07 17:30:04.819452581 -0700 +@@ -26,7 +26,7 @@ + macro_rules! try_old_curl { +     ($e:expr, $msg:expr) => { +         let result = $e; +-        if cfg!(target_os = "macos") { ++        if cfg!(any(target_os = "linux", target_os = "macos")) { +             if let Err(e) = result { +                 warn!("ignoring libcurl {} error: {}", $msg, e); +             } diff --git a/rustc-1.71.0-disable-libssh2.patch b/rustc-1.71.0-disable-libssh2.patch new file mode 100644 index 0000000..ba61454 --- /dev/null +++ b/rustc-1.71.0-disable-libssh2.patch @@ -0,0 +1,42 @@ +--- rustc-beta-src/src/tools/cargo/Cargo.lock.orig	2023-06-24 10:27:37.000000000 -0700 ++++ rustc-beta-src/src/tools/cargo/Cargo.lock	2023-07-07 17:12:23.406932870 -0700 +@@ -1942,7 +1942,6 @@ + dependencies = [ +  "cc", +  "libc", +- "libssh2-sys", +  "libz-sys", +  "openssl-sys", +  "pkg-config", +@@ -1965,20 +1964,6 @@ + ] +  + [[package]] +-name = "libssh2-sys" +-version = "0.3.0" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "2dc8a030b787e2119a731f1951d6a773e2280c660f8ec4b0f5e1505a386e71ee" +-dependencies = [ +- "cc", +- "libc", +- "libz-sys", +- "openssl-sys", +- "pkg-config", +- "vcpkg", +-] +- +-[[package]] + name = "libz-sys" + version = "1.1.8" + source = "registry+https://github.com/rust-lang/crates.io-index" +--- rustc-beta-src/src/tools/cargo/Cargo.toml.orig	2023-06-24 10:27:37.000000000 -0700 ++++ rustc-beta-src/src/tools/cargo/Cargo.toml	2023-07-07 17:12:00.688392750 -0700 +@@ -31,7 +31,7 @@ + filetime = "0.2.9" + flate2 = { version = "1.0.3", default-features = false, features = ["zlib"] } + fwdansi = "1.1.0" +-git2 = "0.17.1" ++git2 = { version = "0.17.1", default-features = false, features = ["https"] } + git2-curl = "0.18.0" + gix = { version = "0.44.1", default-features = false, features = ["blocking-http-transport-curl", "progress-tree"] } + gix-features-for-configuration-only = { version = "0.29.0", package = "gix-features", features = [ "parallel" ] } diff --git a/rustc-1.71.1-src.tar.xz b/rustc-1.71.1-src.tar.xz new file mode 100644 index 0000000..edd7920 --- /dev/null +++ b/rustc-1.71.1-src.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:371af0fbe04051e20a74dbea6d4e4e548f10f15309c49cae2688afb882b6c7f1 +size 151983068  | 
