diff options
| -rw-r--r-- | 0001-Use-lld-provided-by-system.patch | 80 | ||||
| -rw-r--r-- | 0001-add-support-for-ppc64le.patch | 165 | ||||
| -rw-r--r-- | cargo-config | 5 | ||||
| -rw-r--r-- | cargo-config.csh | 5 | ||||
| -rw-r--r-- | cargo-config.sh | 5 | ||||
| -rw-r--r-- | cargo_vendor.attr | 2 | ||||
| -rw-r--r-- | cargo_vendor.prov | 127 | ||||
| -rw-r--r-- | rust-1.92.0-aarch64-unknown-linux-gnu.tar.xz | 3 | ||||
| -rw-r--r-- | rust-1.92.0-loongarch64-unknown-linux-gnu.tar.xz | 3 | ||||
| -rw-r--r-- | rust-1.92.0-riscv64gc-unknown-linux-gnu.tar.xz | 3 | ||||
| -rw-r--r-- | rust-1.92.0-x86_64-unknown-linux-gnu.tar.xz | 3 | ||||
| -rw-r--r-- | rust-key.gpg.ascii | 86 | ||||
| -rw-r--r-- | rust.spec | 798 | ||||
| -rw-r--r-- | rustc-1.70.0-rust-gdb-substitute-path.patch | 21 | ||||
| -rw-r--r-- | rustc-1.90.0-disable-libssh2.patch | 44 | ||||
| -rw-r--r-- | rustc-1.92.0-src.tar.xz | 3 | ||||
| -rw-r--r-- | rustc-1.92.0-src.tar.xz.asc | 16 | ||||
| -rw-r--r-- | sources | 0 |
18 files changed, 1369 insertions, 0 deletions
diff --git a/0001-Use-lld-provided-by-system.patch b/0001-Use-lld-provided-by-system.patch new file mode 100644 index 0000000..1f077f7 --- /dev/null +++ b/0001-Use-lld-provided-by-system.patch @@ -0,0 +1,80 @@ +From 0641fdd833785914f1ead6e1ab374beea5b55437 Mon Sep 17 00:00:00 2001 +From: Josh Stone <jistone@redhat.com> +Date: Fri, 16 Aug 2024 10:12:58 -0700 +Subject: [PATCH] Use lld provided by system + +--- + compiler/rustc_target/src/spec/base/wasm.rs | 3 +-- + .../src/spec/targets/aarch64_unknown_none_softfloat.rs | 2 +- + compiler/rustc_target/src/spec/targets/aarch64_unknown_uefi.rs | 1 + + compiler/rustc_target/src/spec/targets/x86_64_unknown_none.rs | 2 +- + compiler/rustc_target/src/spec/targets/x86_64_unknown_uefi.rs | 1 + + 5 files changed, 5 insertions(+), 4 deletions(-) + +diff --git a/compiler/rustc_target/src/spec/base/wasm.rs b/compiler/rustc_target/src/spec/base/wasm.rs +index 88e7af5e669..14100a683f9 100644 +--- a/compiler/rustc_target/src/spec/base/wasm.rs ++++ b/compiler/rustc_target/src/spec/base/wasm.rs +@@ -86,8 +86,7 @@ macro_rules! args { + // threaded model which will legalize atomics to normal operations. + singlethread: true, + +- // 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, +diff --git a/compiler/rustc_target/src/spec/targets/aarch64_unknown_none_softfloat.rs b/compiler/rustc_target/src/spec/targets/aarch64_unknown_none_softfloat.rs +index 35a4dd72b86..a9c8fc5edb8 100644 +--- a/compiler/rustc_target/src/spec/targets/aarch64_unknown_none_softfloat.rs ++++ b/compiler/rustc_target/src/spec/targets/aarch64_unknown_none_softfloat.rs +@@ -15,7 +15,7 @@ pub(crate) fn target() -> Target { + let opts = TargetOptions { + abi: "softfloat".into(), + linker_flavor: LinkerFlavor::Gnu(Cc::No, Lld::Yes), +- linker: Some("rust-lld".into()), ++ linker: Some("lld".into()), + features: "+v8a,+strict-align,-neon,-fp-armv8".into(), + relocation_model: RelocModel::Static, + disable_redzone: true, +diff --git a/compiler/rustc_target/src/spec/targets/aarch64_unknown_uefi.rs b/compiler/rustc_target/src/spec/targets/aarch64_unknown_uefi.rs +index 327b52389b9..17313d7e8b3 100644 +--- a/compiler/rustc_target/src/spec/targets/aarch64_unknown_uefi.rs ++++ b/compiler/rustc_target/src/spec/targets/aarch64_unknown_uefi.rs +@@ -9,6 +9,7 @@ pub(crate) fn target() -> Target { + base.max_atomic_width = Some(128); + base.add_pre_link_args(LinkerFlavor::Msvc(Lld::No), &["/machine:arm64"]); + base.features = "+v8a".into(); ++ base.linker = Some("lld".into()); + + Target { + llvm_target: "aarch64-unknown-windows".into(), +diff --git a/compiler/rustc_target/src/spec/targets/x86_64_unknown_none.rs b/compiler/rustc_target/src/spec/targets/x86_64_unknown_none.rs +index 1a6343595f5..8015b082cd1 100644 +--- a/compiler/rustc_target/src/spec/targets/x86_64_unknown_none.rs ++++ b/compiler/rustc_target/src/spec/targets/x86_64_unknown_none.rs +@@ -19,7 +19,7 @@ pub(crate) fn target() -> Target { + static_position_independent_executables: true, + relro_level: RelroLevel::Full, + linker_flavor: LinkerFlavor::Gnu(Cc::No, Lld::Yes), +- linker: Some("rust-lld".into()), ++ linker: Some("lld".into()), + rustc_abi: Some(RustcAbi::X86Softfloat), + features: "-mmx,-sse,-sse2,-sse3,-ssse3,-sse4.1,-sse4.2,-avx,-avx2,+soft-float".into(), + supported_sanitizers: SanitizerSet::KCFI | SanitizerSet::KERNELADDRESS, +diff --git a/compiler/rustc_target/src/spec/targets/x86_64_unknown_uefi.rs b/compiler/rustc_target/src/spec/targets/x86_64_unknown_uefi.rs +index 0cf6a879462..3677fc662de 100644 +--- a/compiler/rustc_target/src/spec/targets/x86_64_unknown_uefi.rs ++++ b/compiler/rustc_target/src/spec/targets/x86_64_unknown_uefi.rs +@@ -15,6 +15,7 @@ pub(crate) fn target() -> Target { + base.plt_by_default = false; + base.max_atomic_width = Some(64); + base.entry_abi = CanonAbi::X86(X86Call::Win64); ++ base.linker = Some("lld".into()); + + // We disable MMX and SSE for now, even though UEFI allows using them. Problem is, you have to + // enable these CPU features explicitly before their first use, otherwise their instructions +-- +2.49.0 + diff --git a/0001-add-support-for-ppc64le.patch b/0001-add-support-for-ppc64le.patch new file mode 100644 index 0000000..30b86e1 --- /dev/null +++ b/0001-add-support-for-ppc64le.patch @@ -0,0 +1,165 @@ +From 85c7f9262e9d4fbfdaa5d7bc22a85eb5300fcca0 Mon Sep 17 00:00:00 2001 +From: jcf <chunfu.jian@shingroup.cn> +Date: Wed, 12 Jun 2024 09:14:32 +0000 +Subject: [PATCH] add support for ppc64le + +--- + compiler/rustc_target/src/spec/mod.rs | 2 ++ + .../spec/targets/ppc64le_unknown_freebsd.rs | 23 +++++++++++++++++++ + .../spec/targets/ppc64le_unknown_linux_gnu.rs | 23 +++++++++++++++++++ + .../targets/ppc64le_unknown_linux_musl.rs | 23 +++++++++++++++++++ + src/bootstrap/configure.py | 5 ++++ + vendor/openssl-src-300.5.0+3.5.0/src/lib.rs | 3 +++ + vendor/target-lexicon-0.13.1/src/targets.rs | 3 +++ + 7 files changed, 82 insertions(+) + create mode 100644 compiler/rustc_target/src/spec/targets/ppc64le_unknown_freebsd.rs + create mode 100644 compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_gnu.rs + create mode 100644 compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_musl.rs + +diff --git a/compiler/rustc_target/src/spec/mod.rs b/compiler/rustc_target/src/spec/mod.rs +index 7234d1dc6..70d44f815 100644 +--- a/compiler/rustc_target/src/spec/mod.rs ++++ b/compiler/rustc_target/src/spec/mod.rs +@@ -1760,6 +1760,8 @@ supported_targets! { + ("powerpc64-unknown-linux-musl", powerpc64_unknown_linux_musl), + ("powerpc64le-unknown-linux-gnu", powerpc64le_unknown_linux_gnu), + ("powerpc64le-unknown-linux-musl", powerpc64le_unknown_linux_musl), ++ ("ppc64le-unknown-linux-gnu", ppc64le_unknown_linux_gnu), ++ ("ppc64le-unknown-linux-musl", ppc64le_unknown_linux_musl), + ("s390x-unknown-linux-gnu", s390x_unknown_linux_gnu), + ("s390x-unknown-linux-musl", s390x_unknown_linux_musl), + ("sparc-unknown-linux-gnu", sparc_unknown_linux_gnu), +diff --git a/compiler/rustc_target/src/spec/targets/ppc64le_unknown_freebsd.rs b/compiler/rustc_target/src/spec/targets/ppc64le_unknown_freebsd.rs +new file mode 100644 +index 000000000..c02321db7 +--- /dev/null ++++ b/compiler/rustc_target/src/spec/targets/ppc64le_unknown_freebsd.rs +@@ -0,0 +1,23 @@ ++use crate::spec::{base, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}; ++ ++pub(crate) fn target() -> Target { ++ let mut base = base::freebsd::opts(); ++ base.cpu = "ppc64le".into(); ++ base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m64"]); ++ base.max_atomic_width = Some(64); ++ base.stack_probes = StackProbeType::Inline; ++ ++ Target { ++ llvm_target: "ppc64le-unknown-freebsd".into(), ++ metadata: crate::spec::TargetMetadata { ++ description: None, ++ tier: None, ++ host_tools: None, ++ std: None, ++ }, ++ pointer_width: 64, ++ data_layout: "e-m:e-Fn32-i64:64-n32:64".into(), ++ arch: "powerpc64".into(), ++ options: TargetOptions { mcount: "_mcount".into(), ..base }, ++ } ++} +diff --git a/compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_gnu.rs +new file mode 100644 +index 000000000..13423b9c5 +--- /dev/null ++++ b/compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_gnu.rs +@@ -0,0 +1,23 @@ ++use crate::spec::{base, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}; ++ ++pub(crate) fn target() -> Target { ++ let mut base = base::linux_gnu::opts(); ++ base.cpu = "ppc64le".into(); ++ base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m64"]); ++ base.max_atomic_width = Some(64); ++ base.stack_probes = StackProbeType::Inline; ++ ++ Target { ++ llvm_target: "ppc64le-unknown-linux-gnu".into(), ++ metadata: crate::spec::TargetMetadata { ++ description: None, ++ tier: None, ++ host_tools: None, ++ std: None, ++ }, ++ pointer_width: 64, ++ data_layout: "e-m:e-Fn32-i64:64-n32:64-S128-v256:256:256-v512:512:512".into(), ++ arch: "powerpc64".into(), ++ options: TargetOptions { mcount: "_mcount".into(), ..base }, ++ } ++} +diff --git a/compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_musl.rs +new file mode 100644 +index 000000000..3f8a02be7 +--- /dev/null ++++ b/compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_musl.rs +@@ -0,0 +1,23 @@ ++use crate::spec::{base, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}; ++ ++pub(crate) fn target() -> Target { ++ let mut base = base::linux_musl::opts(); ++ base.cpu = "ppc64le".into(); ++ base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m64"]); ++ base.max_atomic_width = Some(64); ++ base.stack_probes = StackProbeType::Inline; ++ ++ Target { ++ llvm_target: "ppc64le-unknown-linux-musl".into(), ++ metadata: crate::spec::TargetMetadata { ++ description: None, ++ tier: None, ++ host_tools: None, ++ std: None, ++ }, ++ pointer_width: 64, ++ data_layout: "e-m:e-Fn32-i64:64-n32:64-S128-v256:256:256-v512:512:512".into(), ++ arch: "powerpc64".into(), ++ options: TargetOptions { mcount: "_mcount".into(), ..base }, ++ } ++} +diff --git a/src/bootstrap/configure.py b/src/bootstrap/configure.py +index 0d4d6e0ff..5d0e213b3 100755 +--- a/src/bootstrap/configure.py ++++ b/src/bootstrap/configure.py +@@ -259,6 +259,11 @@ v( + "target.powerpc64le-unknown-linux-musl.musl-root", + "powerpc64le-unknown-linux-musl install directory", + ) ++v( ++ "musl-root-ppc64le", ++ "target.ppc64le-unknown-linux-musl.musl-root", ++ "ppc64le-unknown-linux-musl install directory", ++) + v( + "musl-root-riscv32gc", + "target.riscv32gc-unknown-linux-musl.musl-root", +diff --git a/vendor/openssl-src-300.5.0+3.5.0/src/lib.rs b/vendor/openssl-src-300.5.0+3.5.0/src/lib.rs +index f7d19d95d..9b574b1e5 100644 +--- a/vendor/openssl-src-300.5.0+3.5.0/src/lib.rs ++++ b/vendor/openssl-src-300.5.0+3.5.0/src/lib.rs +@@ -368,6 +368,9 @@ impl Build { + "powerpc64le-unknown-freebsd" => "BSD-ppc64le", + "powerpc64le-unknown-linux-gnu" => "linux-ppc64le", + "powerpc64le-unknown-linux-musl" => "linux-ppc64le", ++ "ppc64le-unknown-freebsd" => "BSD-ppc64le", ++ "ppc64le-unknown-linux-gnu" => "linux-ppc64le", ++ "ppc64le-unknown-linux-musl" => "linux-ppc64le", + "powerpc64le-alpine-linux-musl" => "linux-ppc64le", + "powerpc64le-chimera-linux-musl" => "linux-ppc64le", + "riscv64gc-unknown-freebsd" => "BSD-riscv64", +diff --git a/vendor/target-lexicon-0.13.1/src/targets.rs b/vendor/target-lexicon-0.13.1/src/targets.rs +index 83c0eac8c..61b7fcc33 100644 +--- a/vendor/target-lexicon-0.13.1/src/targets.rs ++++ b/vendor/target-lexicon-0.13.1/src/targets.rs +@@ -1811,6 +1811,9 @@ mod tests { + "powerpc64le-unknown-freebsd", + "powerpc64le-unknown-linux-gnu", + "powerpc64le-unknown-linux-musl", ++ "ppc64le-unknown-freebsd", ++ "ppc64le-unknown-linux-gnu", ++ "ppc64le-unknown-linux-musl", + "powerpc64-unknown-freebsd", + "powerpc64-unknown-linux-gnu", + "powerpc64-unknown-linux-musl", +-- +2.49.0 + 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_vendor.attr b/cargo_vendor.attr new file mode 100644 index 0000000..be2d48f --- /dev/null +++ b/cargo_vendor.attr @@ -0,0 +1,2 @@ +%__cargo_vendor_path ^%{_defaultlicensedir}(/[^/]+)+/cargo-vendor.txt$ +%__cargo_vendor_provides %{_rpmconfigdir}/cargo_vendor.prov diff --git a/cargo_vendor.prov b/cargo_vendor.prov new file mode 100644 index 0000000..6efca18 --- /dev/null +++ b/cargo_vendor.prov @@ -0,0 +1,127 @@ +#! /usr/bin/python3 -s +# Stripped down replacement for cargo2rpm parse-vendor-manifest + +import re +import subprocess +import sys +from typing import Optional + + +VERSION_REGEX = re.compile( + r""" + ^ + (?P<major>0|[1-9]\d*) + \.(?P<minor>0|[1-9]\d*) + \.(?P<patch>0|[1-9]\d*) + (?:-(?P<pre>(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))? + (?:\+(?P<build>[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ + """, + re.VERBOSE, +) + + +class Version: + """ + Version that adheres to the "semantic versioning" format. + """ + + def __init__(self, major: int, minor: int, patch: int, pre: Optional[str] = None, build: Optional[str] = None): + self.major: int = major + self.minor: int = minor + self.patch: int = patch + self.pre: Optional[str] = pre + self.build: Optional[str] = build + + @staticmethod + def parse(version: str) -> "Version": + """ + Parses a version string and return a `Version` object. + Raises a `ValueError` if the string does not match the expected format. + """ + + match = VERSION_REGEX.match(version) + if not match: + raise ValueError(f"Invalid version: {version!r}") + + matches = match.groupdict() + + major_str = matches["major"] + minor_str = matches["minor"] + patch_str = matches["patch"] + pre = matches["pre"] + build = matches["build"] + + major = int(major_str) + minor = int(minor_str) + patch = int(patch_str) + + return Version(major, minor, patch, pre, build) + + def to_rpm(self) -> str: + """ + Formats the `Version` object as an equivalent RPM version string. + Characters that are invalid in RPM versions are replaced ("-" -> "_") + + Build metadata (the optional `Version.build` attribute) is dropped, so + the conversion is not lossless for versions where this attribute is not + `None`. However, build metadata is not intended to be part of the + version (and is not even considered when doing version comparison), so + dropping it when converting to the RPM version format is correct. + """ + + s = f"{self.major}.{self.minor}.{self.patch}" + if self.pre: + s += f"~{self.pre.replace('-', '_')}" + return s + + +def break_the_build(error: str): + """ + This function writes a string that is an invalid RPM dependency specifier, + which causes dependency generators to fail and break the build. The + additional error message is printed to stderr. + """ + + print("*** FATAL ERROR ***") + print(error, file=sys.stderr) + + +def get_cargo_vendor_txt_paths_from_stdin() -> set[str]: # pragma nocover + """ + Read lines from standard input and filter out lines that look like paths + to `cargo-vendor.txt` files. This is how RPM generators pass lists of files. + """ + + lines = {line.rstrip("\n") for line in sys.stdin.readlines()} + return {line for line in lines if line.endswith("/cargo-vendor.txt")} + + +def action_parse_vendor_manifest(): + paths = get_cargo_vendor_txt_paths_from_stdin() + + for path in paths: + with open(path) as file: + manifest = file.read() + + for line in manifest.strip().splitlines(): + crate, version = line.split(" v") + print(f"bundled(crate({crate})) = {Version.parse(version).to_rpm()}") + + +def main(): + try: + action_parse_vendor_manifest() + exit(0) + + # print an error message that is not a valid RPM dependency + # to cause the generator to break the build + except (IOError, ValueError) as exc: + break_the_build(str(exc)) + exit(1) + + break_the_build("Uncaught exception: This should not happen, please report a bug.") + exit(1) + + +if __name__ == "__main__": + main() diff --git a/rust-1.92.0-aarch64-unknown-linux-gnu.tar.xz b/rust-1.92.0-aarch64-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000..c11d548 --- /dev/null +++ b/rust-1.92.0-aarch64-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e383f8b4fca710d0600d0c1de97b78281672be2cda6575ecbe1c183a12e3822 +size 169667388 diff --git a/rust-1.92.0-loongarch64-unknown-linux-gnu.tar.xz b/rust-1.92.0-loongarch64-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000..026445b --- /dev/null +++ b/rust-1.92.0-loongarch64-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd7d8d94709e5a6320f655cf469fd5ecd0b596e29247cd4f46ce0fbef2a21072 +size 260244032 diff --git a/rust-1.92.0-riscv64gc-unknown-linux-gnu.tar.xz b/rust-1.92.0-riscv64gc-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000..23ac4af --- /dev/null +++ b/rust-1.92.0-riscv64gc-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5492105083990bc0fd91008b1dc66b748b9687bbaf16719b5b37b1f09bf59458 +size 248195844 diff --git a/rust-1.92.0-x86_64-unknown-linux-gnu.tar.xz b/rust-1.92.0-x86_64-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000..e448e86 --- /dev/null +++ b/rust-1.92.0-x86_64-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d2ccef59dd9f7439f2c694948069f789a044dc1addcc0803613232af8f88ee0c +size 192171372 diff --git a/rust-key.gpg.ascii b/rust-key.gpg.ascii new file mode 100644 index 0000000..93e2282 --- /dev/null +++ b/rust-key.gpg.ascii @@ -0,0 +1,86 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1 + +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 +Mve696B5tlHyc1KxjHR6w9GRsh4= +=5FXw +-----END PGP PUBLIC KEY BLOCK----- diff --git a/rust.spec b/rust.spec new file mode 100644 index 0000000..d73c5d0 --- /dev/null +++ b/rust.spec @@ -0,0 +1,798 @@ +%define _lto_cflags %{nil} +%global bootstrap_rust 1.92.0 +%global bootstrap_cargo 1.92.0 +%global bootstrap_channel 1.92.0 +%global bootstrap_date 2025-12-12 +%global bootstrap_arches x86_64 aarch64 riscv64 loongarch64 +%bcond_with llvm_static +%ifarch x86_64 aarch64 riscv64 +%bcond_with bundled_llvm +%else +%bcond_without bundled_llvm +%endif +%bcond_without bundled_libgit2 +%bcond_with disabled_libssh2 +%bcond_without lldb +# disable rust-lld (enabled by default on x86 since 1.80.0 via pull/124129) for +# building with system llvm (17.0.6) +# https://github.com/rust-lang/rust/issues/131291 +%ifarch %{ix86} x86_64 +%bcond_with rust_lld +%endif + +%ifnarch riscv64 loongarch64 +%bcond_without musl_target +%endif + +Name: rust +Version: 1.92.0 +Release: 1 +Summary: The Rust Programming Language +License: Apache-2.0 OR MIT +URL: https://www.rust-lang.org +Source0: https://static.rust-lang.org/dist/rustc-%{version}-src.tar.xz +Source1: https://static.rust-lang.org/dist/rustc-%{version}-src.tar.xz.asc +Source2: https://static.rust-lang.org/rust-key.gpg.ascii +# SOURCE3-5: use local mirror for speed up +Source3: cargo-config +Source4: cargo-config.sh +Source5: cargo-config.csh +# Simple rpm macros for rust-toolset +Source102: cargo_vendor.attr +Source103: cargo_vendor.prov + +Patch0000: rustc-1.90.0-disable-libssh2.patch +# By default, rust tries to use "rust-lld" as a linker for some targets. +Patch0001: 0001-Use-lld-provided-by-system.patch +# Set a substitute-path in rust-gdb for standard library sources. +Patch0002: rustc-1.70.0-rust-gdb-substitute-path.patch +Patch0003: 0001-add-support-for-ppc64le.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" + elseif arch == "loongarch64" then + arch = "loongarch64" + 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+5, base, rust_triple(arch))) + if arch == target_arch then + rpm.define("bootstrap_source "..i+5) + 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 +%if %{with musl_target} +BuildRequires: make gcc gcc-c++ ncurses-devel curl curl-devel musl-libc-static musl-gcc pkgconfig(libcurl) pkgconfig(liblzma) +%else +BuildRequires: make gcc gcc-c++ ncurses-devel curl curl-devel pkgconfig(libcurl) pkgconfig(liblzma) +%endif +BuildRequires: pkgconfig(openssl) pkgconfig(zlib) pkgconfig(libssh2) >= 1.6.0 gnupg2 wget +%global python python3 +BuildRequires: %{python} +%if %with bundled_llvm +BuildRequires: cmake3 >= 3.20.3 +Provides: bundled(llvm) = 20.1.8 +%else +BuildRequires: cmake >= 3.5.1 +%if %defined llvm +%global llvm_root %{_libdir}/%{llvm} +%else +%ifarch x86_64 aarch64 riscv64 loongarch64 +%global llvm_toolset llvm-toolset-20 +%global llvm %{llvm_toolset}-llvm +%global llvm_root /opt/%{_vendor}/%{llvm_toolset}/root%{_prefix} +%global clang_maj_ver %(echo "%{llvm_toolset}" | cut -d '-' -f3) +%else +%global llvm llvm +%global llvm_root %{_prefix} +%global clang_maj_ver 17 +%endif +%endif +# Minimum external LLVM for rust 1.92 +# https://github.com/rust-lang/rust/pull/139275 +BuildRequires: %{llvm} >= 20.0.0 +BuildRequires: %{llvm}-devel >= 20.0.0 +%if %with llvm_static +BuildRequires: %{llvm}-static libffi-devel +%endif +%endif +BuildRequires: procps-ng +BuildRequires: ninja-build +%ifarch x86_64 aarch64 riscv64 loongarch64 +BuildRequires: %{llvm_toolset}-compiler-rt +BuildRequires: %{llvm_toolset}-clang +%else +BuildRequires: compiler-rt +BuildRequires: clang +%endif +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.9.1 +%endif +BuildRequires: git +Requires: %{name} = %{version}-%{release} +Obsoletes: cargo-vendor <= 0.1.23 +Provides: cargo-vendor = %{version}-%{release} +Conflicts: cargo-rpm-macros < 1:23 +%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 +# /usr/bin/rustfmt is dynamically linked against internal rustc libs +Requires: %{name}%{?_isa} = %{version}-%{release} +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. + +%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 +Requires: %{name} = %{version}-%{release} + +%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. + +%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 +# gpg check +gpg --import %{SOURCE2} +gpg --verify %{SOURCE1} %{SOURCE0} + +%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 "%{python}" != "python3" +sed -i.try-python -e '/^try python3 /i try "%{python}" "$@"' ./configure +%endif +%patch -P 0001 -p1 +%patch -P 0002 -p1 +%patch -P 0003 -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 + +# This only affects the transient rust-installer, but let it use our dynamic xz-libs +sed -i.lzma -e '/LZMA_API_STATIC/d' src/bootstrap/src/core/build_steps/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) +%if %{with bundled_llvm} +max_cpus=$(( ($(free -g | awk '/^Mem:/{print $2}') + 1) / 4 )) +%else +max_cpus=$(( ($(free -g | awk '/^Mem:/{print $2}') + 1) / 2 )) +%endif +if [ "$max_cpus" -ge 1 -a "$max_cpus" -lt "$ncpus" ]; then + ncpus="$max_cpus" +fi +# Find the compiler-rt library for the Rust profiler_builtins crate. +# But there are two versions in openEuler. Why? +# We don't have macros.clang so we need clang version here +# This is for avoiding rpm syntax error +%ifarch ppc64le +%global _arch powerpc64le +%endif +%if 0%{?clang_maj_ver} >= 17 +# This is the new one, used on openEuler 24.03 LTS or later +%define profiler %(echo %{llvm_root}/%{_lib}/clang/%{clang_maj_ver}/lib/%{_arch}-%{_vendor}-linux-gnu/libclang_rt.profile.a) +%else +# This is used before openEuler 23.09 +%global clang_full_ver %%(clang --version | awk '/clang version/{print $3}') +%define profiler %(echo %{_prefix}/%{_lib}/clang/%{clang_full_ver}/lib/libclang_rt.profile-%{_arch}.a) +%endif +test -r "%{profiler}" + +%configure --disable-option-checking \ + --docdir=%{_pkgdocdir} \ + --libdir=%{common_libdir} \ + %{?with_musl_target:%{rust_musl_root}=%{musl_root}} \ + --build=%{rust_triple} --host=%{rust_triple} --target=%{rust_triple}%{?with_musl_target:,%{rust_musl_triple}} \ + --set target.%{rust_triple}.profiler="%{profiler}" \ + %{!?with_rust_lld: --set rust.lld=false} \ + --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,rust-analyzer,rustdoc,rustfmt,src \ + --enable-vendor \ + --enable-verbose-tests \ + %{?codegen_units_std} \ + --release-channel=stable +%ifarch loongarch64 + %{python} ./x.py build -j "$((($ncpus + 3) / 4))" --stage 2 +%else + %{python} ./x.py build -j "$ncpus" --stage 2 +%endif +%{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}%{_pkgdocdir}/README.md +rm -f %{buildroot}%{_pkgdocdir}/COPYRIGHT +rm -f %{buildroot}%{_pkgdocdir}/LICENSE +rm -f %{buildroot}%{_pkgdocdir}/LICENSE-APACHE +rm -f %{buildroot}%{_pkgdocdir}/LICENSE-MIT +rm -f %{buildroot}%{_pkgdocdir}/LICENSE-THIRD-PARTY +rm -f %{buildroot}%{_pkgdocdir}/*.old +find %{buildroot}%{_pkgdocdir}/html -empty -delete +find %{buildroot}%{_pkgdocdir}/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 %{SOURCE3} %{buildroot}%{_sysconfdir}/skel/.cargo/config.toml +install -m 0644 -D -p %{SOURCE4} %{buildroot}%{_sysconfdir}/profile.d/cargo-config.sh +install -m 0644 -D -p %{SOURCE5} %{buildroot}%{_sysconfdir}/profile.d/cargo-config.csh + +# This allows users to build packages using Rust Toolset. +%{__install} -D -m 644 %{S:102} %{buildroot}%{_fileattrsdir}/cargo_vendor.attr +%{__install} -D -m 755 %{S:103} %{buildroot}%{_rpmconfigdir}/cargo_vendor.prov + +%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 || : +%ifarch aarch64 +# https://github.com/rust-lang/rust/issues/123733 +%define cargo_test_skip --test-args "--skip panic_abort_doc_tests" +%endif +%{python} ./x.py test --no-fail-fast --stage 2 cargo %{?cargo_test_skip} || : +%{python} ./x.py test --no-fail-fast --stage 2 clippy || : +%{python} ./x.py test --no-fail-fast --stage 2 rust-analyzer || : +%{python} ./x.py test --no-fail-fast --stage 2 rustfmt || : +%ldconfig_scriptlets + +%files +%license COPYRIGHT LICENSE-APACHE LICENSE-MIT +%license %{_pkgdocdir}/html/*.txt +%license %{_pkgdocdir}/COPYRIGHT.html +%license %{_pkgdocdir}/licenses/ +%exclude %{_sysconfdir}/target-spec-json-schema.json +%doc README.md +%{_bindir}/rustc +%{_bindir}/rustdoc +%{_libdir}/*.so +%dir %{rustlibdir} +%dir %{rustlibdir}/%{rust_triple} +%dir %{rustlibdir}/%{rust_triple}/lib +%{_libexecdir}/rust-analyzer-proc-macro-srv +%{rustlibdir}/%{rust_triple}/lib/*.so +%if %{with musl_target} +%dir %{rustlibdir}/%{rust_musl_triple} +%dir %{rustlibdir}/%{rust_musl_triple}/lib +%endif + +%files std-static +%license %{_pkgdocdir}/COPYRIGHT-library.html +%dir %{rustlibdir} +%dir %{rustlibdir}/%{rust_triple} +%dir %{rustlibdir}/%{rust_triple}/lib +%{rustlibdir}/%{rust_triple}/lib/*.rlib +%{rustlibdir}/%{rust_triple}/bin/rust-objcopy +%if %{with musl_target} +%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 +%endif + +%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 +%{_sysconfdir}/bash_completion.d/cargo +%{_datadir}/zsh/site-functions/_cargo +%dir %{_datadir}/cargo +%dir %{_datadir}/cargo/registry +%{_fileattrsdir}/cargo_vendor.attr +%{_rpmconfigdir}/cargo_vendor.prov + +%files -n rustfmt +%{_bindir}/rustfmt +%{_bindir}/cargo-fmt +%doc src/tools/rustfmt/{README,CHANGELOG,Configurations}.md +%license src/tools/rustfmt/LICENSE-{APACHE,MIT} + +%files analyzer +%{_bindir}/rust-analyzer +%doc src/tools/rust-analyzer/README.md +%license src/tools/rust-analyzer/LICENSE-{APACHE,MIT} + +%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 %{_pkgdocdir} +%docdir %{_pkgdocdir} +%{_pkgdocdir}/html +%dir %{_docdir}/cargo +%docdir %{_docdir}/cargo +%{_docdir}/cargo/html +%{_mandir}/man1/rustc.1* +%{_mandir}/man1/rustdoc.1* +%{_mandir}/man1/cargo*.1* + +%changelog +* Fri Dec 12 2025 Funda Wang <fundawang@yeah.net> - 1.92.0-1 +- update to 1.92.0 + +* Tue Nov 11 2025 Funda Wang <fundawang@yeah.net> - 1.91.1-1 +- update to 1.91.1 + +* Tue Nov 04 2025 wangkai <13474090681@163.com> - 1.91.0-2 +- Fix syntax error for rust + +* Fri Oct 31 2025 Funda Wang <fundawang@yeah.net> - 1.91.0-1 +- update to 1.91.0 + +* Thu Oct 23 2025 Funda Wang <fundawang@yeah.net> - 1.90.0-2 +- add conflicts on older version of cargo-rpm-macros + +* Thu Sep 25 2025 jchzhou <zhoujiacheng@iscas.ac.cn> - 1.90.0-1 +- Update to 1.90.0 + +* Wed Sep 24 2025 wangkai <13474090681@163.com> - 1.89.0-2 +- Remove rls command +- Cleanup spec + +* Sun Aug 10 2025 Funda Wang <fundawang@yeah.net> - 1.89.0-1 +- update to 1.89.0 + +* Wed Jul 09 2025 wangkai <13474090681@163.com> - 1.88.0-1 +- Update to 1.88.0 + +* Wed Jun 11 2025 Peng Haitao <htpengc@isoftstone.com> - 1.87.0-2 +- Modify openEuler to %{vendor} + +* Fri May 16 2025 jchzhou <zhoujiacheng@iscas.ac.cn> - 1.87.0-1 +- Update to 1.87.0 + +* Mon Apr 07 2025 wangkai <13474090681@163.com> - 1.86.0-1 +- Update to 1.86.0 + +* Tue Apr 01 2025 wangkai <13474090681@163.com> - 1.85.1-1 +- Update to 1.85.1 + +* Fri Mar 07 2025 jchzhou <zhoujiacheng@iscas.ac.cn> - 1.85.0-1 +- Update to 1.85.0 + +* Fri Feb 21 2025 laokz <zhangkai@iscas.ac.cn> - 1.84.0-3 +- Switch to unbundled llvm for riscv64 building + +* Mon Feb 17 2025 wangkai <13474090681@163.com> - 1.84.0-2 +- Switch to unbundled llvm for x86_64 aarch64 building + +* Wed Jan 15 2025 wangkai <13474090681@163.com> - 1.84.0-1 +- Update to 1.84.0 + +* Mon Dec 09 2024 wangkai <13474090681@163.com> - 1.83.0-1 +- Update to 1.83.0 +- Switch loongarch64 arch to bootstrap + +* Fri Dec 06 2024 jchzhou <zhoujiacheng@iscas.ac.cn> - 1.82.0-6 +- Co-authored-by: misaka00251 <liuxin@iscas.ac.cn> +- Add a switch for the musl target & disable it for loongarch64 & riscv64 + +* Fri Nov 29 2024 Wenlong Zhang <zhangwenlong@loongson.cn> - 1.82.0-5 +- fix build error for loongarch64 + +* Fri Nov 29 2024 jchzhou <zhoujiacheng@iscas.ac.cn> - 1.82.0-4 +- Fix a minor unpackaged file issue + +* Wed Nov 20 2024 Wenl4ng <wenlang1@h-partners.com> - 1.82.0-3 +- use lfs-server + +* Wed Nov 13 2024 jchzhou <zhoujiacheng@iscas.ac.cn> - 1.82.0-2 +- Switch to bundled llvm for building, halve the 'max_cpus' in this case + +* Wed Oct 23 2024 jchzhou <zhoujiacheng@iscas.ac.cn> - 1.82.0-1 +- Update to 1.82.0 + +* Tue Oct 22 2024 zhangwenlong <zhangwenlong@loongson.cn> - 1.80.0-2 +- disable musl for loongarch64 + +* Wed Aug 07 2024 wangkai <13474090681@163.com> - 1.80.0-1 +- Update to 1.80.0 + +* Wed Jul 24 2024 wangkai <13474090681@163.com> - 1.79.0-3 +- Switch to bootstrap compilation + +* Thu Jul 18 2024 jchzhou <zhoujiacheng@iscas.ac.cn> - 1.79.0-2 +- Drop obsolete patch for riscv64 (rust-lang/rust#123612 landed in 1.79.0) + +* Wed Jun 19 2024 wangkai <13474090681@163.com> - 1.79.0-1 +- Update to 1.79.0 + +* Tue May 07 2024 wangkai <13474090681@163.com> - 1.78.0-1 +- Update to 1.78.0 + +* Thu Jun 13 2024 jianchunfu <chunfu.jian@shingroup.cn> - 1.77.0-5 +- spec: Add support for ppc64le + +* Wed Jun 05 2024 Wenlong Zhang <zhangwenlong@loongson.cn> - 1.77.0-4 +- disable musl for loongarch64 + +* Mon Apr 22 2024 panchenbo <panchenbo@kylinsec.com.cn> - 1.77.0-3 +- Modify openEuler to vendor + +* Thu Apr 11 2024 misaka00251 <liuxin@iscas.ac.cn> - 1.77.0-2 +- Enable profiler builtin + +* Wed Apr 03 2024 wangkai <13474090681@163.com> - 1.77.0-1 +- Update to 1.77.0 + +* Tue Feb 20 2024 wangkai <13474090681@163.com> - 1.76.0-1 +- Update to 1.76.0 + +* Sat Feb 17 2024 wangkai <13474090681@163.com> - 1.75.0-2 +- Fix CVE-2024-24575,CVE-2024-24577 + +* Wed Jan 10 2024 wangkai <13474090681@163.com> - 1.75.0-1 +- Update to 1.75.0 + +* Fri Nov 24 2023 wangkai <13474090681@163.com> - 1.74.0-1 +- Update to 1.74.0 + +* Mon Nov 13 2023 wangkai <13474090681@163.com> - 1.73.0-2 +- Remove git lfs tar and change to user-repo +- Add gpg verification to Source0 + +* Mon Oct 09 2023 wangkai <13474090681@163.com> - 1.73.0-1 +- Update to 1.73.0 + +* Mon Aug 28 2023 jchzhou <zhoujiacheng@iscas.ac.cn> - 1.72.0-1 +- Update to 1.72.0 + +* 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.90.0-disable-libssh2.patch b/rustc-1.90.0-disable-libssh2.patch new file mode 100644 index 0000000..23dc6d8 --- /dev/null +++ b/rustc-1.90.0-disable-libssh2.patch @@ -0,0 +1,44 @@ +diff -up rustc-beta-src/src/tools/cargo/Cargo.lock.orig rustc-beta-src/src/tools/cargo/Cargo.lock +--- rustc-beta-src/src/tools/cargo/Cargo.lock.orig 2025-08-16 15:47:14.000000000 -0700 ++++ rustc-beta-src/src/tools/cargo/Cargo.lock 2025-08-18 17:31:39.554771554 -0700 +@@ -2800,7 +2800,6 @@ checksum = "1c42fe03df2bd3c53a3a9c7317ad + dependencies = [ + "cc", + "libc", +- "libssh2-sys", + "libz-sys", + "openssl-sys", + "pkg-config", +@@ -2847,20 +2846,6 @@ dependencies = [ + "pkg-config", + "vcpkg", + ] +- +-[[package]] +-name = "libssh2-sys" +-version = "0.3.1" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "220e4f05ad4a218192533b300327f5150e809b54c4ec83b5a1d91833601811b9" +-dependencies = [ +- "cc", +- "libc", +- "libz-sys", +- "openssl-sys", +- "pkg-config", +- "vcpkg", +-] + + [[package]] + name = "libz-rs-sys" +diff -up rustc-beta-src/src/tools/cargo/Cargo.toml.orig rustc-beta-src/src/tools/cargo/Cargo.toml +--- rustc-beta-src/src/tools/cargo/Cargo.toml.orig 2025-08-16 15:47:14.000000000 -0700 ++++ rustc-beta-src/src/tools/cargo/Cargo.toml 2025-08-18 17:33:02.401743230 -0700 +@@ -46,7 +46,7 @@ curl = "0.4.48" + curl-sys = "0.4.82" + filetime = "0.2.25" + flate2 = { version = "1.1.2", default-features = false, features = ["zlib-rs"] } +-git2 = "0.20.2" ++git2 = { version = "0.20.2", default-features = false, features = ["https"] } + git2-curl = "0.21.0" + # When updating this, also see if `gix-transport` further down needs updating or some auth-related tests will fail. + gix = { version = "0.73.0", default-features = false, features = ["progress-tree", "parallel", "dirwalk", "status"] } diff --git a/rustc-1.92.0-src.tar.xz b/rustc-1.92.0-src.tar.xz new file mode 100644 index 0000000..b83b596 --- /dev/null +++ b/rustc-1.92.0-src.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ebee170bfe4c4dfc59521a101de651e5534f4dae889756a5c97ca9ea40d0c307 +size 271887480 diff --git a/rustc-1.92.0-src.tar.xz.asc b/rustc-1.92.0-src.tar.xz.asc new file mode 100644 index 0000000..f54f9d9 --- /dev/null +++ b/rustc-1.92.0-src.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +wsFcBAABCgAQBQJpOtg7CRCFq5bm+hvl/gAA4pYP/3GCAzLuuLFic+mRciE3LtF4 +9NsYFYsMCFD6Guv/wNzw1MbpJkhTrc3/cG5SV9N16xgbgtTh4v2HgmkEYrNbFrxy +OjaWFXjlJfbeTmhzPMV74yzWsP/RCNklDrJhj/RJDwr8OXgnratX95oVnmSFHcU1 +0e/EqjuL5BmAXjeLvgR9AnfFIrOp3GwF3SdOtHW68HpilbyHx1/mcZWyf8cftybE +2OM0UqVmeDeH+WV7bHrsqVLpOWEAFALCnQRvT8yIzk2cjqwtGIjZEKmMUJ9INsbs +TXBDIMH4lZQSOJQ5+0cKks7tPEx6a1n6JHx+D7L3l4EjnDdLpmLavyDpwO3hZFqX +VtdFGBe2b8G4ENHUv9TwHo2w0zRFl9zKAuuVDFcXn21kJ2tRbumM3mrob/e26qKn +C7ksrzYfxptKHb89WNle5G3LrSN+7uTbz+BymBSbxRrabZ+jrKNVh/UUzQnvwBGi +GQvjEi3dOX6KGKP8/0WkeQDx+R8Vc0I2CZAxsKw6Na/i0giBffCcs6RY7fLRTvwO +Ty+J+ZMl9xRgIqhJ+EfsyNWgFacJmqS5cANIWjluyYQhNAmZ9Li3YoFGbROtR2r8 +L1Fluy9PQ00JUiH9gIZud/Sgjy6rWnrx/1DDXC5sZ5cfRFjXEMs8Ur+HZ14ftV1e +1M9qv04o0o0iSJDgdF+n +=8XTv +-----END PGP SIGNATURE----- |
