Sync from SUSE:SLFO:Main rust1.84 revision 378709f574a62b001506b2c213d5f2f5

This commit is contained in:
Adrian Schröter 2025-02-07 18:43:17 +01:00
commit f52542bc73
35 changed files with 1425 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

View File

@ -0,0 +1,34 @@
From d0edd689820928847d74b583dc0d6b540942c1a2 Mon Sep 17 00:00:00 2001
From: William <william@blackhats.net.au>
Date: Tue, 10 Dec 2024 12:57:45 +1000
Subject: [PATCH] Disable pidfs tests for 15SP3
SLE-15-SP3 has a kernel that is too old to correctly use pidfs. Disable
testing pidfs features for that platform.
---
library/std/src/sys/pal/unix/linux/pidfd/tests.rs | 2 ++
1 file changed, 2 insertions(+)
diff --git a/library/std/src/sys/pal/unix/linux/pidfd/tests.rs b/library/std/src/sys/pal/unix/linux/pidfd/tests.rs
index fb928c76fbd..686d92c50be 100644
--- a/library/std/src/sys/pal/unix/linux/pidfd/tests.rs
+++ b/library/std/src/sys/pal/unix/linux/pidfd/tests.rs
@@ -5,6 +5,7 @@
use crate::process::Command;
#[test]
+#[ignore = "fails on 15-SP3"]
fn test_command_pidfd() {
let pidfd_open_available = probe_pidfd_support();
@@ -57,6 +58,7 @@ fn test_command_pidfd() {
}
#[test]
+#[ignore = "fails on 15-SP3"]
fn test_pidfd() {
if !probe_pidfd_support() {
return;
--
2.47.1

96
README.suse-maint Normal file
View File

@ -0,0 +1,96 @@
# Automatic updating via _service
Edit the rustX.YY.spec file, and update the variables related with the
version:
- *version_suffix*: for the new version of Rust, in X.YY format
- *version_current*: for the new version of Rust, in X.YY.Z format
- *version_previous*: for the previous version of Rust, in X.YY.X
format
Generate the spec files for the different bootstrap compilers. This
will take the version from the main spec file.
./update-bootstrap.sh
After that, we can execute the service file:
osc service disabledrun
This will download the new bootstrap compilers and the signature file.
If `osc` complains about a missing service component, double check
that the components are installed. For example, for Tumbleweed:
zypper in obs-service-download_files obs-service-refresh_patches
Finally, update the changelog based on the releases notes:
https://github.com/rust-lang/rust/blob/master/RELEASES.md
# Updating to a new version from upstream
(Original link: https://en.opensuse.org/Rust)
Branch the rust package in the devel:languages:rust project.
You'll need to download precompiled binaries for the compiler used for
bootstrapping, and the actual source code for the compiler. In the
"Other Installation Methods" page listed below, note that it shows
links to .tar.gz packages and their .tar.gz.asc GPG signatures, but
.tar.xz versions are also available.
*Binaries for bootstrapping* - Go to the "Other Installation Methods"
page from rust-lang.org and scroll down to the "Standalone installers"
section. Download the following:
- rust-<version>-aarch64-unknown-linux-gnu.tar.xz
- rust-<version>-armv7-unknown-linux-gnueabihf.tar.xz
- rust-<version>-i686-unknown-linux-gnu.tar.xz
- rust-<version>-powerpc64le-unknown-linux-gnu.tar.xz
- rust-<version>-powerpc64-unknown-linux-gnu.tar.xz
- rust-<version>-s390x-unknown-linux-gnu.tar.xz
- rust-<version>-x86_64-unknown-linux-gnu.tar.xz
*Compiler source code* - From the same page, but now in the "Source
code" section, download this:
rustc-<version>-src.tar.xz
Update those files in the source RPM. Check that all the patches still
apply.
Update the version number in rust.spec.
Add the release notes to rust.changes.
# Running the tests locally
The tests are executed outside the main package using the _multibuild
feature of OBS. This is convenient for several reasons:
* We force the installation of the new rustc / cargo in the system
* All the test / bootstrabs and utilities are compiled using the new
compiler, and not the one used to generate the initial Rust
compiler.
* A test fail do not block the release. Upstream tests can be
affected by some environment application, and there is some delay
for the fix.
The tests can be run with:
osc build -M test
This will install the Rust compiler from OBS, so is a good idea that
we have them available.
If some test fail, we can enter the chroot to debug it:
osc shell
There is more information about the test infrastructure here:
https://rustc-dev-guide.rust-lang.org/tests/intro.html

27
_constraints Normal file
View File

@ -0,0 +1,27 @@
<?xml version="1.0"?>
<constraints>
<hardware>
<!-- processors doesn't actually ... get you that many threads. Sigh -->
<!-- request number of jobs instead (6 is max on ppc/s390x) -->
<jobs>6</jobs>
<physicalmemory>
<size unit="G">4</size>
</physicalmemory>
<disk>
<!-- Needed when we may need to bundle llvm -->
<size unit="G">30</size>
</disk>
</hardware>
<!-- aarch64: X-Gene cpus are the only ones that work as there is a bug in others - select -->
<!-- 12G of ram to ensure these are what's used. -->
<overwrite>
<conditions>
<arch>aarch64</arch>
</conditions>
<hardware>
<physicalmemory>
<size unit="G">12</size>
</physicalmemory>
</hardware>
</overwrite>
</constraints>

3
_multibuild Normal file
View File

@ -0,0 +1,3 @@
<multibuild>
<package>test</package>
</multibuild>

9
_service Normal file
View File

@ -0,0 +1,9 @@
<services>
<service name="download_files" mode="disabled">
<param name="changesgenerate">enable</param>
</service>
<service name="refresh_patches" mode="disabled">
<param name="changesgenerate">enable</param>
<param name="ignorefuzz">enable</param>
</service>
</services>

View File

@ -0,0 +1,17 @@
Index: rustc-1.51.0-src/compiler/rustc_llvm/build.rs
===================================================================
--- rustc-1.51.0-src.orig/compiler/rustc_llvm/build.rs
+++ rustc-1.51.0-src/compiler/rustc_llvm/build.rs
@@ -154,6 +154,12 @@ fn main() {
continue;
}
+ // hack to avoid flag on openSUSE which is incompatible with GCC
+ if flag.starts_with("-W") && flag.contains("string-conversion") {
+ continue;
+ }
+
+
cfg.flag(flag);
}

BIN
rust-1.84.0-aarch64-unknown-linux-gnu.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
wsFcBAABCgAQBQJnf+jnCRCFq5bm+hvl/gAA7jAQALUHc5JpFXfRqVPYu57MyCwT
ce4/pxx5pOM2ubkmLblplWlpAiU8uD4TsBKDEPmIMtLiReLcOs9iX1P0Q34ykqOD
HVMO1dCAf/q0dtbk8BPLE0KI9Mor+KnfL/lUCfdc3/x3vKz/sdhkFF32DXNaUd7b
EtVsYx7Ss41KQZW2JfS9wuiOKOMES82S2aBFMJhskJlCbeQBT6RlpdD/EENqYNIh
AVhTx4S+TTRqO6C9ar8nTE8jKw5vJ7wFOnmscVqgcEpVpUecEDoS8gyn1aYuzIWp
xihamci30MpPHPJRmUz/gZT/B3gyCUVdfOahyeGRyHhwDUWyLNQsosya9VwHzXzI
j24MlXKV6nAz/wUsOK/5Q3B6H8adNLNO0QcZm78AkIN7XQqzi/nfqQdU/OPGMDKX
mte5hmA39iCtwYmZ9hwYbW+6KPRE55quaraMweK1p0zNntlCYV4wS1e7u7f3y+/K
lsqPXMDgLnKPIvMCV+x6yfC99wfbVwFCuRQ81HV7MJwOXc7cYNDSx6U0d/MhCjOU
PJRve6XIPENDgZ4gGiRgdCHZ8X3Gsev9y1Chcig8kAnrGSMZuY7YlLMKjgEBnQzj
OrnHJbiqi51VjvA2KpiILlNF/53IvQQuWzxZ+XCaZ1H62BjVUthsUCJfpe7XXRSe
7XFBR4Ew3cB3Hww849xX
=H1IL
-----END PGP SIGNATURE-----

BIN
rust-1.84.0-arm-unknown-linux-gnueabihf.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
wsFcBAABCgAQBQJnf+jlCRCFq5bm+hvl/gAA1EsQAK/GEt3UNDaeolXyfyaje0b6
T43dVeEMkgjNx4lXXAgjENx7m+x4LL4KxDnHqlDdA7/1nkZcpYs/kEDwleTh3IW7
XeVnPU+noo/9eYODwAt8zS2Y3da5Op3BwDvkYrqMlqFg2vkDzuBpQC2FMaeSFz2T
uHLsOLl110wqHaw7fsvbhfS/1tXRXzJk15pynbz2/RJ8T7rxK/mOmrzLiESuf155
+3kdHMQ3gRl9NcOdhSX6LqHQDceR81eU5t9a31dbYpLyQ5/TTuZ4YpPFbD1fCEwS
XQ4KEQryyG2AI0ef6k8CeDcwqKCIrmb/NwDN6UlemxTDmANhOv/vPlBBmQYbmjAL
+VHlJ++GGlO0vZ6P7sVMg37BtsPAiBofjcpzL47zsydz8fdDEuD1qFS/AKNlDC1S
6TpBCEPoc2OoBvPNQWLi7pXsXz7QFzpUqJBe+ZAIYQA+pWN9XR5W7MZ1gbo/ZKdk
zr4owSvp+UBqbGtTDvu1csSrVjI9UY09d4euukXmRmQZ0w2KzC8kAwQXYrgJiee2
q9z+2cQXNga3m00Ivy4L9USvvIBx4gRveAMCC2i8jeKfOihLtnmdk8dl2PxbzXEp
KQKF6BJYaDiOqrkfR0+RL4UwKE1qlfJCr4771EGLU/cBoxlXczOCZwWJ7A7GQ+1p
U4aZ2XFTY8wUy93Aiwp+
=YcgN
-----END PGP SIGNATURE-----

BIN
rust-1.84.0-armv7-unknown-linux-gnueabihf.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
wsFcBAABCgAQBQJnf+jpCRCFq5bm+hvl/gAAEwEP/1Nbd9JMTm4AQ0txCkw7eBg/
Grps7G8AEjxGbM/b3dqjAjSVAAQPj1t3na/5Gttm7GdjIoRWJXmT0bSmQmGGjkRI
QJB6i3jNjLTbKHE7T+E3oZ29CvVfO5xN+6XJ1ZSKs6KrNQrt/F68rtnJ9CZiKxJ2
+q34hgltxsSX9P+1tw8Pmh413JadMl6MI+UEjFSadsSva0Ry/GP2gQMsPQGXr302
PGGVKCFkT5dl3bAxupwXEC2P2NuZ6DWqR2u+AuIZfG4HLT35QZSfqjCMPGydTxGX
FLs0DJhEECwZ+6n9I7VGt9/gXCakSuK9PnJ+iGcrspLzP5dXieI1poB564vrH9Ip
oKKQX/ODVxrjsvytQtYMNEWRsDxlPGP3TFdwCVN+caa0PVlV1ZpM2KKmFzYM/A25
IDz1jfBEkHg7vo9muHjgFkJcyc06ONC3uHckyCrcbxBU/cyFMGcQID5o1ZkjYuCw
bwC4HFoX6ahOnqHOp7r02dI4c/9i8wAdyn5xcdjUu67C1vA/skzojiafX7Gz2oFX
ODFPeCT37vzis1KKvldqQ+xQinr0ujjN2wZAa9VaheXdXRhGufnqePfCA0xrTCCO
acAuAseb0J+SeKBnFsZbApFq5O5UnRRc+QvcS+2l9HE+eFy+YoaKOhX2BhYxpM8u
4j/oUzPNOluckslv3QWH
=fmUm
-----END PGP SIGNATURE-----

BIN
rust-1.84.0-i686-unknown-linux-gnu.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
wsFcBAABCgAQBQJnf+jpCRCFq5bm+hvl/gAAqrUQAN/AzNFMKt2rSKEB9mPW8djY
xkHjPuTRo46jUQ0nC6bcNIXEOMNVswt25JCTgDP8LiWFC3ErR/Eg0iNC1w0HMYB6
FgfzM/1hdtgCoSnBVrQhNo/rkYiGfLTx+j50Y96GWY7SJBFvjWx+ZNzOnb8xGEia
rcVJ8Gg1WhtWlOHp2fqeLezFmp2DPPOiuIj/7MEYVMKOE2bjes7yYuJG4AE1Ld9p
gTot9WBp1bHNXWDhNPC/wVqOcCItFW1xvH2z8TlAqxbz9ryH1UZBqu0Osqtq/zUq
Em3J2r9iyfux+qaYUk6yLO9MkrTPdqa7vaHf3LZuxCwKzQV35aPE6sa0+GbuOATa
rlaG0NGkrzqkVB55iQ63Pz+x8ZFNiVQehwuW8OSD+54d4pw8Iu21D0a/f36W0LAm
v4+Hz4D/UIU2+L2Q4pP6LMXfJgQDy/F1BfEV0oio19WOa4b4O3lQEGjioUaAweKh
eVBlKKEGv7qmQNrpXA4xj3HQiUzUiENJ62ZOS32neXE2Anjg1b8tqLdeaJ7t+Ba2
rxckRHgEW7fwhDjdm3idDnXu9QxR6EoZjE1w4kx9+ldctkRsi8kJ3N934MN12sVw
jZB9EK8dQetaVitA4iMCnMwsDvLoR+DeLBu3i53LVLLSpQMB2FDVPLPgtFAoBvkk
Z2HMMJjRyZOcCg7yZqOU
=vKy6
-----END PGP SIGNATURE-----

BIN
rust-1.84.0-loongarch64-unknown-linux-gnu.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
wsFcBAABCgAQBQJnf+jpCRCFq5bm+hvl/gAA1K8QANLcgFuaHS9SnzsToRNDl3ak
8iC8cQBZ6MSCLHS646xPCuk4aikiRW5ugSLLVDHYPV621li7KZ1c9aQ/z97bClWa
cVwdWh8Z4b409IiQkHZxQf6AeVYCVY61P+Sf5YydaPCqCQlRUgmgAcfXaFLWCDZy
kU/hi6KmdJknE1tHN9VzSFUPpIkXqgZ8p6n0/Rsjoc/90TGxsph3F7E3kkkzers3
ileMEVQIaYVwStLuvsuCexVFWP651PoBPw1hfOapqKSUMR8MgajjMpatAm7HabHz
grlcOMYfjRuPbkjb9DgK+1vMvCzv2eOdiIv7ZFHzolroxu1PMsvJ+hMHhghZQuA8
AL0LTxhDoIrWz5sQVmpkqgq9JjLdOdE35gfw2h23IQg71WhtRWauz7t9Duga9vTN
IqDb9z/JfXluyeZ1vGwzDK17MeV5i4moPoV5JMnAIQ5VTqv9m6I3ak2ljgtKdXIZ
DZ2srQcxelPL+YlhsCYR4kR4uuaaeZvdcvFR4JCj3ZsFSn7mGhrp6JiQMtOkGTDt
OseDFs/Y19EixkFkT3FDfnK++zi1r5/t+nyafySDR/BHGuF6lM8zP27fksWfefxn
3SwCLm4g2+dIdXRi0RH2NxA2rjsmmJ2qFElNxNrtcS+M2ibwBMec5qgDeFudvXge
Y1I2sRFS1FEA4QlMOBti
=9BBo
-----END PGP SIGNATURE-----

BIN
rust-1.84.0-powerpc-unknown-linux-gnu.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
wsFcBAABCgAQBQJnf+jqCRCFq5bm+hvl/gAAvw8QAMqEoHd3O64gcnDA+bDOnLq1
I+EStPwpYc64wVjtCzr597ki7AtnyqZOHtwNh6rkKYcYiMkutijnjApme4YbLR+L
4rOrd7V31mOC69TmWuqLfmpyzab/pxNC9VxOSpGLeGBbuYroDUnMUPeyDFtuVBhu
928hxDI1tR8+uZpCmOUMVw5yAlk+EHDAthq5Y+sOEtjR/ZL/KVTeyDYA5iNY7eQ1
6vCJJizNgTBcbUEku88gR3v0Jxp/ND+pCzHTJuMobRn/9YfyPBSJxcXHcGX4Jdd9
fcrPrYRyHCgtIUBq9zzz2piFYsZwAwdC32vP5/55bLgvsIpKW8DLps85j6YzLp4R
wlAaMUqnm7eUa6cwj1XtLV/ekTIDMiSMt9RQ1fAH6aLFzLc3Oa60d4XkdkZ7BldY
pjm/Egla+aOtKlHLln7Br3S4mQppGeS0zmax7RYY1eeVj1Oart062WGcghh3jv+f
TEqrmHp6apmRVmsh71SbO9lRezTUo9M75vpMWQDQl03REVhmosPDFUwt+vyj1fI/
W63VGvBVlIOzvielCZS1/0fQffIxClbrgwRb/fWsPFijNO4UT/da7g6VdOVMPNEb
p2goWK6wt8wFgCmukIDncsgKMXWAviJf3LH153bAC9COMMGoruSJbKg1dkYLl+LD
A9vPxmH+g710K8zwDrwt
=idVQ
-----END PGP SIGNATURE-----

BIN
rust-1.84.0-powerpc64-unknown-linux-gnu.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
wsFcBAABCgAQBQJnf+jpCRCFq5bm+hvl/gAA3RoQAJobr6ftPnUlRJxI6DcmBmd7
PAzAtsRIlTu7dgFlBgi3cH1RetGChR/KuyvtizacPQz7l8DO+16kGUvlTA8IVd+1
1yDu2Je4AvMSslvEg/Y4SY8W+itBEi37UJUZQRk6Y41zMpNnkarGSqCNopLQg8ry
1yALYI8eLS4wdJHDINmgq3qpWDgjIBlEp5H/7o1KKXCC+DvEVNUqK5uU1MBAB31+
F2zhwipVuIiLe1VKkYFn0KpZRCWXtQZHEVSSaeFu6ruMe18VVEe13GgCQan1xkFl
w4f9qD9ta6b2PgQFlpG2vMYgz+39sEM1h+3XPvNDLus2ikjgqgNGLsHdsE6frQib
y391O3JkDboedHOrlUeCyIAsZH89n8FccU4BcmDXOJP6IxJgMxFgFn80gRiOHPBI
vzjf4jf8H8yGQh0LRnmHFyAQvfmySIk+TH2n0kxtMtJJaA5MuzaLjK9NSLOiOE38
fYYI+y81OvhOIQBrCuFX1/GTYXWymXiYN3q8NLZnqOrq+DCB0jG9k8CqoGAcazDh
guU7wTzduHKASQTTjlOdmMJeF8zViLDWbTToNvNeV0Z0yqV4gAzGOs1S2qhY2+2y
SDg243Zf1gRciREUJPiZLqv20hwTPd++i3Rzjx+bqwjojTQdtrc6ARdxng2KbUTD
3FZnxf9hAwgh7VJ77k5C
=wbyN
-----END PGP SIGNATURE-----

BIN
rust-1.84.0-powerpc64le-unknown-linux-gnu.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
wsFcBAABCgAQBQJnf+jqCRCFq5bm+hvl/gAAY6UQALqepRWw0EGZMnWoqcA4GRR1
OYSueglqaKbo/YFysadR50QuSCFzHeNfTU2xwdWxg4/XUM5x/fyhs0axJ8GUNJla
1LgCbbV1DmzFpAG6yjtzA6i9qEiIUyLEVrvPFCsXvvT8ykAROthARcvXV9FYzBmL
RnWoCRBJs5JtwvZHRl09xL6LHEjIYXnZdcCkqbx2BoMQPp+jtGsF3dAiTrMInMen
H1W1evaK0k6BGkKOayrlpxlRNor99vxNANPeeXUSdzKYvp8A9Fd/2FyKOo8XE+VP
YqLWaDvaA/3p3VrbjXHgeL5IVJPq2jQnVvZ9aT+pG5F0ivMdN/OhEvF5ZTtrFW47
uAM7vAmOcUn/TRyyZ/skP7AbiHf2koheMcusMgB9j6IAZi6F9Ql5OiCDhfO1GMpZ
U4Vl1DdKigJSuim1GcvYOAinVmrBzu91DJXIrHVqQphe5NdeU90ZpF4M++J80Bja
AduMjthMgsTdFfphbXxzK36Y7E8RTd0lEMd8LPgfL3cWsLNeRyvMaX1QVUEjcoYo
h83XU5AOL8uFcSfO0Mn1o35Yg+xyFB9nKm0+2HGSziNNSDXMRdWZBs0o/zJXrSzO
iPqZp3bJChb2fsAeCUBSsJ5a8A5p7m/3Rz3qjFfHUZBluQyWksyKaIpfFkrA8bcw
aTOf4pwsx4lKYAO4pTar
=Ne4j
-----END PGP SIGNATURE-----

BIN
rust-1.84.0-riscv64gc-unknown-linux-gnu.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
wsFcBAABCgAQBQJnf+joCRCFq5bm+hvl/gAABNoP/1p3aBJR6w113RwAjOoJr8d3
7pDLjwRPrxJZfM7/3jS4FjCp1eeGNaZQPSnGFGVbeVMRAvhQg3rPwtS7SNAJWsFs
KZlr+/1kYSCU4+DBjMerw4SA6MPEhyi1uA32EPmWyAnFXIE2LfVF/ovkowClf7ay
JT6kLSqHEqCNYuqanQZAolwlv/q4gCpJ8rZ+ovbVA3okY0P0Ldl4AnZof2Flvvrg
mIp4YPm8c4jBakT8XXYlqXBhhwVb3b5Uw4N1gA8qAqzEe2kCxFsjU8CboKVklTrG
WSKcfodpXvI+lOTyWuQGxC/cZGEOjdIOKOxetLgUowBbag9TNscUdzwKQdQqtv6w
M6iA0/pui59FI1QKayJPrPuOAlcF4abMhN9cxmDuiLAdVK4wnL7lVYViB020/cf/
x0Bf9AwYN2eTUYEQmzmTyRAJK6qLP67Gq8fmOkNMM4ZF816j4DVch8Q6qTzQBIKS
fiXl5nMqOd/Hudwbbow0We1eamwvrhj2cbN2u3kqUTDiYvHHFsCeNKNlRbHGnnbs
eeVEyCglZA4KOw4BADvIvEQTJL0Gt9orYLYseOEPacA3spqrwmHvL5DE8zxnPXRU
JpKdbqdbK3OL5f6DQp8u18jdALzY3bl63mG32/cFk/iP1UM2TjYhiFutehOEz22W
G7HEikV3PYe/OTE3E2Lw
=gDAx
-----END PGP SIGNATURE-----

BIN
rust-1.84.0-s390x-unknown-linux-gnu.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
wsFcBAABCgAQBQJnf+jlCRCFq5bm+hvl/gAAAqcQAJGlsNYd7JfyOKndcTUcAzbe
NREJOmMbOmvX2jjqGVYUgLXITEacTA3U2KoCH7AXPPYyQrvqbtblczB9nrWqLdxI
EL4C6+Cbzfwa8iiYRf1lTrIztlBHxha3Sdam0+dHc4/4wH4TaIg8GrKZJ16FIMmK
p6dx3A15v2Zfl9PrDthuFNjrb/ZZi7L7yoHoTdJnOe6DbCEWMql09r7+GvB1jDw+
CfpCXam/lyQo1GeEk0oeT3KXu6UNCxr4B/fk6qfbYBPxqezYG2Ic/0qJ9OydjDqV
JPBSk8L/UmAxDHJ9CdA8bgQRxkePpmCpEPFbev++9hqKS+wQtfOddIabYD3RZF3y
x70hhBAcbuCuSVjVFfBhPSLZsXlkJkLNAKEd6CRKXEvat+NQoW9SIdF+2Wzt3WY+
zvflGxUYenzp9d5VFjU2XiPA+dZC9q9Gpso43giPd6u2KjMs6B+8ZIlOEmaL72Uo
PYYvnmefmxgvumzkoUoF6FFL8YKVPLChSM5+QSuYL3mzhaJ3GYgaHFatQj7Jp53z
5r0dQEEWatMMTPlFxLLMHom7tfEsYTBOAjd8P7gR56zsnAWKU0S59ufPcjQc9Y/W
P1toZ9cGGxTYH5AV6tUr7vyKupl9WpOF1UV8MIaB9TXSrq0qUjMo/zIBioHhmMiI
kbUExZkElL8052eGvFP1
=GkaA
-----END PGP SIGNATURE-----

BIN
rust-1.84.0-x86_64-unknown-linux-gnu.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
wsFcBAABCgAQBQJnf+jmCRCFq5bm+hvl/gAAAZQP+wXlxqP+W4N82QTyDwdNwePB
ap/Mi6gUB+zjEjyUKRm4LwTf2zrmX7BMRqo5Co2UkHdG9if2UQRe4iP7jEx1x9Om
RhTv4J2CLcl4sUg/gEhxy4V7DV+i8Tuek8H0mdhNB6Po02BAvqazZ+GhBX0ZPBWi
F+GLlpX3L0GKmC8NIZGToa9Rlqydb4dcIESQYNvoW9WeLtc9gKthCRcXMzyo3Jxa
j2sJjsQDMWvy8JNqpw5pgj4RAZ8ALw8pGJZ84EuqGXKd6DKOGP4fieSoz8sDMv2E
G9qVIfiQkHXuCaHFKHSMBQ/lMRavV9DnqDyi9YIYTihaEyAX09x0hWrbwHg8ULei
rwpR55CyPZ8PfidHbip8/28S0UEJ55TYyJ76HfOEqXlW59ogL7jSmjSVRKzGQ6RW
dKqUUhFDdTklww322HTYLGiHt0F6+7I06BrjP6YFse2i6xA2NkNJNqhiIamswKqC
ex4ZaLiqGSsT/7Fusmvz9vq0vkRSwIU4n/+d6X2JbDk9SgLbJqjIrewial4rQp3F
IEdTNH7zpAz49eYpMWS1r67yiEFWWYI4oEVdGpy73hbYjbvv+Jsad6c7jU+JICVE
49OBBvY0JnQPI1ZUhIib9QWKXxHMcgMCbAg5I9GFctWEH37jur29ySkU5ThcNMiK
EYASIK6AYdk5uJcIhg5T
=V6E4
-----END PGP SIGNATURE-----

85
rust.keyring Normal file
View File

@ -0,0 +1,85 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
/5A5vjHh+NhFwH5h2vBJVPdsz6k=
=jRHo
-----END PGP PUBLIC KEY BLOCK-----

35
rust1.84-rpmlintrc Normal file
View File

@ -0,0 +1,35 @@
# we are exporting the buildroot, not changing it, this lint is wrong.
addFilter("rpm-buildroot-usage")
# rlib not in elf format
# 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*")
# error when building with bootstrap. ignore for now
# addFilter(".*shlib-policy-name-error.*libLLVM-11.*")
# Rustc driver calls exit, this is fine
# addFilter(".*shared-lib-calls-exit.*/usr/lib/librustc_driver.*")
# addFilter("potential-bashisms.*/usr/bin/rust-lldb")
# addFilter("position-independent-executable-suggested.*/usr/bin/rust-llvm-dwp")
addFilter("non-devel-file-in-devel-package /usr/lib/.*so")
# addFilter("non-devel-file-in-devel-package /usr/lib/rustlib/.*")
## Sssshhh warnings, we know. This is intentional so that linking
# works properly during users build times.
addFilter("devel-dependency glibc-devel")
# Can't read wasm files, that's okay.
addFilter("readelf-failed /usr/lib/rustlib/wasm32-wasi/lib/self-contained/libc.a")
# We know, it's okay.
addFilter("obsolete-not-provided .*")
# We need to provide the rust sources, they aren't a devel package.
addFilter("devel-file-in-non-devel-package .*")
# Some of the sources have test scripts, ignore.
addFilter("env-script-interpreter .*")

101
rust1.84.changes Normal file
View File

@ -0,0 +1,101 @@
-------------------------------------------------------------------
Tue Jan 14 01:58:02 UTC 2025 - William Brown <william.brown@suse.com>
Version 1.84.0 (2025-01-09)
==========================
Language
--------
- [Allow `#[deny]` inside `#[forbid]` as a no-op](https://github.com/rust-lang/rust/pull/121560/)
- [Show a warning when `-Ctarget-feature` is used to toggle features that can lead to unsoundness due to ABI mismatches](https://github.com/rust-lang/rust/pull/129884)
- [Use the next-generation trait solver in coherence](https://github.com/rust-lang/rust/pull/130654)
- [Allow coercions to drop the principal of trait objects](https://github.com/rust-lang/rust/pull/131857)
- [Support `/` as the path separator for `include!()` in all cases on Windows](https://github.com/rust-lang/rust/pull/125205)
- [Taking a raw ref (`raw (const|mut)`) of a deref of a pointer (`*ptr`) is now safe](https://github.com/rust-lang/rust/pull/129248)
- [Stabilize s390x inline assembly](https://github.com/rust-lang/rust/pull/131258)
- [Stabilize Arm64EC inline assembly](https://github.com/rust-lang/rust/pull/131781)
- [Lint against creating pointers to immediately dropped temporaries](https://github.com/rust-lang/rust/pull/128985)
- [Execute drop glue when unwinding in an `extern "C"` function](https://github.com/rust-lang/rust/pull/129582)
Compiler
--------
- [Add `--print host-tuple` flag to print the host target tuple and affirm the "target tuple" terminology over "target triple"](https://github.com/rust-lang/rust/pull/125579)
- [Declaring functions with a calling convention not supported on the current target now triggers a hard error](https://github.com/rust-lang/rust/pull/129935)
- [Set up indirect access to external data for `loongarch64-unknown-linux-{musl,ohos}`](https://github.com/rust-lang/rust/pull/131583)
- [Enable XRay instrumentation for LoongArch Linux targets](https://github.com/rust-lang/rust/pull/131818)
- [Extend the `unexpected_cfgs` lint to also warn in external macros](https://github.com/rust-lang/rust/pull/132577)
- [Stabilize WebAssembly `multivalue`, `reference-types`, and `tail-call` target features](https://github.com/rust-lang/rust/pull/131080)
- [Added Tier 2 support for the `wasm32v1-none` target](https://github.com/rust-lang/rust/pull/131487)
Libraries
---------
- [Implement `From<&mut {slice}>` for `Box/Rc/Arc<{slice}>`](https://github.com/rust-lang/rust/pull/129329)
- [Move `<float>::copysign`, `<float>::abs`, `<float>::signum` to `core`](https://github.com/rust-lang/rust/pull/131304)
- [Add `LowerExp` and `UpperExp` implementations to `NonZero`](https://github.com/rust-lang/rust/pull/131377)
- [Implement `FromStr` for `CString` and `TryFrom<CString>` for `String`](https://github.com/rust-lang/rust/pull/130608)
- [`std::os::darwin` has been made public](https://github.com/rust-lang/rust/pull/123723)
Stabilized APIs
---------------
- [`Ipv6Addr::is_unique_local`](https://doc.rust-lang.org/stable/core/net/struct.Ipv6Addr.html#method.is_unique_local)
- [`Ipv6Addr::is_unicast_link_local`](https://doc.rust-lang.org/stable/core/net/struct.Ipv6Addr.html#method.is_unicast_link_local)
- [`core::ptr::with_exposed_provenance`](https://doc.rust-lang.org/stable/core/ptr/fn.with_exposed_provenance.html)
- [`core::ptr::with_exposed_provenance_mut`](https://doc.rust-lang.org/stable/core/ptr/fn.with_exposed_provenance_mut.html)
- [`<ptr>::addr`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.addr)
- [`<ptr>::expose_provenance`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.expose_provenance)
- [`<ptr>::with_addr`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.with_addr)
- [`<ptr>::map_addr`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.map_addr)
- [`<int>::isqrt`](https://doc.rust-lang.org/stable/core/primitive.i32.html#method.isqrt)
- [`<int>::checked_isqrt`](https://doc.rust-lang.org/stable/core/primitive.i32.html#method.checked_isqrt)
- [`<uint>::isqrt`](https://doc.rust-lang.org/stable/core/primitive.u32.html#method.isqrt)
- [`NonZero::isqrt`](https://doc.rust-lang.org/stable/core/num/struct.NonZero.html#impl-NonZero%3Cu128%3E/method.isqrt)
- [`core::ptr::without_provenance`](https://doc.rust-lang.org/stable/core/ptr/fn.without_provenance.html)
- [`core::ptr::without_provenance_mut`](https://doc.rust-lang.org/stable/core/ptr/fn.without_provenance_mut.html)
- [`core::ptr::dangling`](https://doc.rust-lang.org/stable/core/ptr/fn.dangling.html)
- [`core::ptr::dangling_mut`](https://doc.rust-lang.org/stable/core/ptr/fn.dangling_mut.html)
- [`Pin::as_deref_mut`](https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.as_deref_mut)
- [`AtomicBool::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicBool.html#method.from_ptr)
- [`AtomicPtr::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicPtr.html#method.from_ptr)
- [`AtomicU8::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicU8.html#method.from_ptr)
- [`AtomicU16::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicU16.html#method.from_ptr)
- [`AtomicU32::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicU32.html#method.from_ptr)
- [`AtomicU64::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicU64.html#method.from_ptr)
- [`AtomicUsize::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicUsize.html#method.from_ptr)
- [`AtomicI8::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicI8.html#method.from_ptr)
- [`AtomicI16::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicI16.html#method.from_ptr)
- [`AtomicI32::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicI32.html#method.from_ptr)
- [`AtomicI64::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicI64.html#method.from_ptr)
- [`AtomicIsize::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicIsize.html#method.from_ptr)
- [`<ptr>::is_null`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.is_null-1)
- [`<ptr>::as_ref`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.as_ref-1)
- [`<ptr>::as_mut`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.as_mut)
- [`Pin::new`](https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.new)
- [`Pin::new_unchecked`](https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.new_unchecked)
- [`Pin::get_ref`](https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.get_ref)
- [`Pin::into_ref`](https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.into_ref)
- [`Pin::get_mut`](https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.get_mut)
- [`Pin::get_unchecked_mut`](https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.get_unchecked_mut)
- [`Pin::static_ref`](https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.static_ref)
- [`Pin::static_mut`](https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.static_mut)
Cargo
-----
- [Stabilize MSRV-aware resolver config](https://github.com/rust-lang/cargo/pull/14639/)
- [Stabilize resolver v3](https://github.com/rust-lang/cargo/pull/14754/)
Rustdoc
-------
- [rustdoc-search: improve type-driven search](https://github.com/rust-lang/rust/pull/127589)
Compatibility Notes
-------------------
- [Enable by default the `LSX` target feature for LoongArch Linux targets](https://github.com/rust-lang/rust/pull/132140)
- [The unstable `-Zprofile` flag (“gcov-style” coverage instrumentation) has been removed.](https://github.com/rust-lang/rust/pull/131829) This does not affect the stable flags for coverage instrumentation (`-Cinstrument-coverage`) and profile-guided optimization (`-Cprofile-generate`, `-Cprofile-use`), which are unrelated and remain available.
- Support for the target named `wasm32-wasi` has been removed as the target is now named `wasm32-wasip1`. This completes the [transition](https://github.com/rust-lang/compiler-team/issues/607) [plan](https://github.com/rust-lang/compiler-team/issues/695) for this target following [the introduction of `wasm32-wasip1`](https://github.com/rust-lang/rust/pull/120468) in Rust 1.78. Compiler warnings on [use of `wasm32-wasi`](https://github.com/rust-lang/rust/pull/126662) introduced in Rust 1.81 are now gone as well as the target is removed.
- [The syntax `&pin (mut|const) T` is now parsed as a type which in theory could affect macro expansion results in some edge cases](https://github.com/rust-lang/rust/pull/130635#issuecomment-2375462821)
- [Legacy syntax for calling `std::arch` functions is no longer permitted to declare items or bodies (such as closures, inline consts, or async blocks).](https://github.com/rust-lang/rust/pull/130443#issuecomment-2445678945)
- [Declaring functions with a calling convention not supported on the current target now triggers a hard error](https://github.com/rust-lang/rust/pull/129935)
- [The next-generation trait solver is now enabled for coherence, fixing multiple soundness issues](https://github.com/rust-lang/rust/pull/130654)

771
rust1.84.spec Normal file
View File

@ -0,0 +1,771 @@
#
# spec file for package rust1.83
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2019 Luke Jones, luke@ljones.dev
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%global version_suffix 1.84
%global version_current 1.84.0
%global version_previous 1.83.0
%if 0%{?gcc_version} < 13
# We may need a minimum gcc version for some linker flags
# This is especially true on leap/sle
#
# ⚠️ 11 or greater is required for a number of linker flags to be supported in sle.
#
%global need_gcc_version 13
%endif
#KEEP NOSOURCE DEBUGINFO
%define obsolete_rust_versioned() \
Obsoletes: %{1}1.83%{?2:-%{2}} \
Obsoletes: %{1}1.82%{?2:-%{2}} \
Obsoletes: %{1}1.81%{?2:-%{2}} \
Obsoletes: %{1}1.80%{?2:-%{2}} \
Obsoletes: %{1}1.79%{?2:-%{2}} \
Obsoletes: %{1}1.78%{?2:-%{2}} \
Obsoletes: %{1}1.77%{?2:-%{2}} \
Obsoletes: %{1}1.76%{?2:-%{2}} \
Obsoletes: %{1}1.75%{?2:-%{2}} \
Obsoletes: %{1}1.74%{?2:-%{2}} \
Obsoletes: %{1}1.73%{?2:-%{2}} \
Obsoletes: %{1}1.72%{?2:-%{2}} \
Obsoletes: %{1}1.71%{?2:-%{2}} \
Obsoletes: %{1}1.70%{?2:-%{2}} \
Obsoletes: %{1}1.69%{?2:-%{2}} \
Obsoletes: %{1}1.68%{?2:-%{2}} \
Obsoletes: %{1}1.67%{?2:-%{2}} \
Obsoletes: %{1}1.66%{?2:-%{2}} \
Obsoletes: %{1}1.65%{?2:-%{2}} \
Obsoletes: %{1}1.64%{?2:-%{2}} \
Obsoletes: %{1}1.63%{?2:-%{2}} \
Obsoletes: %{1}1.62%{?2:-%{2}}
# ⚠️ Must leave 1.62 here due to kernel requirements.
# Build the rust target triple.
# Some rust arches don't match what SUSE labels them.
%global rust_arch %{_arch}
%global abi gnu
%ifarch armv7hl
%global rust_arch armv7
%global abi gnueabihf
%endif
%ifarch armv6hl
%global rust_arch arm
%global abi gnueabihf
%endif
%ifarch ppc
%global rust_arch powerpc
%endif
%ifarch ppc64
%global rust_arch powerpc64
%endif
%ifarch ppc64le
%global rust_arch powerpc64le
%endif
%ifarch riscv64
%global rust_arch riscv64gc
%endif
# Must restrict the x86 build to i686 since i586 is currently
# unsupported
%ifarch %{ix86}
%global rust_arch i686
%endif
%global rust_triple %{rust_arch}-unknown-linux-%{abi}
# Web Assembly targets
%define rust_wasm_targets %{?with_wasi:,wasm32-wasip1}
# Base Rust targets for all architectures
%define rust_base_targets %{rust_triple}%{rust_wasm_targets}
# For x86-64 add the x86_64-unknown-none target
%ifarch x86_64
%define rust_target_list %{rust_base_targets},x86_64-unknown-none
%else
%define rust_target_list %{rust_base_targets}
%endif
# All sources and bootstraps are fetched form here
%global dl_url https://static.rust-lang.org/dist
# Rust doesn't function well when put in /usr/lib64
%global common_libdir %{_prefix}/lib
%global rustlibdir %{common_libdir}/rustlib
# Detect if sccache has been requested by the build
%if "%{getenv:RUSTC_WRAPPER}" == "sccache"
%bcond_without sccache
%else
%bcond_with sccache
%endif
# === rust arch support tiers ===
# https://doc.rust-lang.org/nightly/rustc/platform-support.html
# tl;dr only aarch64, x86_64 and i686 are guaranteed to work.
#
# armv6/7, s390x, ppc[64[le]], riscv are all "guaranteed to build" only
# but may not always work.
# === broken distro llvm ===
# In almost all cases, distro llvm doesn't work for rust. Rust additionally provides
# patches and features in their bundled llvm. We use it by default.
#
# === Use clang/lld during build if possible ===
# i586 - unable to link libatomic
# aarch64 - fails due to an invalid linker flag
#
%bcond_with llvmtools
# Depending on our environment, we may need to configure our linker in a different manner.
# If we elect for llvm, always use clang.
%if %{with llvmtools}
%define rust_linker clang
%else
%if 0%{?need_gcc_version} != 0
%define rust_linker gcc-%{need_gcc_version}
%else
%define rust_linker cc
%endif
%endif
# === Enable wasm/wasi on t1 targets ===
%if 0%{?is_opensuse} == 1 && 0%{?suse_version} >= 1699
%ifarch x86_64 aarch64
%bcond_without wasi
%else
%bcond_with wasi
%endif
%else
%bcond_with wasi
%endif
# Test is done in a different multibuild package (rustXXX-test). This
# package will replace the local-rust-root and use the systems's one
# from the rustXXX package itself. This will exercise the compiler,
# even tho, the tests will require more compilation. If we do not
# agree on this model we can drop the _multibuild option and do the
# pct check as a part of the main spec.
%global flavor @BUILD_FLAVOR@%{nil}
%if "%{flavor}" == "test"
%define psuffix -test
%bcond_without test
%else
%define psuffix %{nil}
%bcond_with test
%endif
# """
# Do not use parallel codegen in order to
# a) not exhaust memory on build-machines and
# b) generate the fastest possible binary
# at the cost of longer build times for this package
# """
#
# These claims are incorrect
# a) codegen=1, actually consumes MORE memory due to the fact that the full
# code unit is then LTO'd in a single pass. This can cause LLVM to internally OOM
# especially if the machine has less than 1G of ram, and this is documented:
# * https://github.com/rust-lang/rust/issues/85598
# it has also been observed in OBS during builds of 1.52 and 1.53
#
# b) the performance gains from codegen=1 are minimal at best, and not worth
# us messing about with these values - especially when the rust language team
# probably know more about how to set and tune these based on data and research
#
# Debuginfo can exhaust memory on these architecture workers
%ifarch %{arm} %{ix86}
%define debug_info --debuginfo-level=0 --debuginfo-level-rustc=0 --debuginfo-level-std=0 --debuginfo-level-tools=0 --debuginfo-level-tests=0
%else
%define debug_info %{nil}
%endif
%global rustflags -Clink-arg=-Wl,-z,relro,-z,now
# Exclude implicitly-scanned Provides, especially the libLLVM.so ones:
%global __provides_exclude_from ^%{rustlibdir}/.*$
Name: rust%{version_suffix}%{psuffix}
Version: %{version_current}
Release: 0
Summary: A systems programming language
License: Apache-2.0 OR MIT
Group: Development/Languages/Rust
URL: https://www.rust-lang.org
Source0: %{dl_url}/rustc-%{version}-src.tar.xz
Source1: rust.keyring
%if %{without test}
Source99: %{name}-rpmlintrc
%endif
Source100: %{dl_url}/rust-%{version_current}-x86_64-unknown-linux-gnu.tar.xz
NoSource: 100
Source101: %{dl_url}/rust-%{version_current}-i686-unknown-linux-gnu.tar.xz
NoSource: 101
Source102: %{dl_url}/rust-%{version_current}-aarch64-unknown-linux-gnu.tar.xz
NoSource: 102
Source103: %{dl_url}/rust-%{version_current}-armv7-unknown-linux-gnueabihf.tar.xz
NoSource: 103
Source104: %{dl_url}/rust-%{version_current}-arm-unknown-linux-gnueabihf.tar.xz
NoSource: 104
Source105: %{dl_url}/rust-%{version_current}-powerpc64-unknown-linux-gnu.tar.xz
NoSource: 105
Source106: %{dl_url}/rust-%{version_current}-powerpc64le-unknown-linux-gnu.tar.xz
NoSource: 106
Source107: %{dl_url}/rust-%{version_current}-s390x-unknown-linux-gnu.tar.xz
NoSource: 107
Source108: %{dl_url}/rust-%{version_current}-powerpc-unknown-linux-gnu.tar.xz
NoSource: 108
Source109: %{dl_url}/rust-%{version_current}-riscv64gc-unknown-linux-gnu.tar.xz
NoSource: 109
Source110: %{dl_url}/rust-%{version_current}-loongarch64-unknown-linux-gnu.tar.xz
NoSource: 110
Source200: %{dl_url}/rust-%{version_current}-x86_64-unknown-linux-gnu.tar.xz.asc
NoSource: 200
Source201: %{dl_url}/rust-%{version_current}-i686-unknown-linux-gnu.tar.xz.asc
NoSource: 201
Source202: %{dl_url}/rust-%{version_current}-aarch64-unknown-linux-gnu.tar.xz.asc
NoSource: 202
Source203: %{dl_url}/rust-%{version_current}-armv7-unknown-linux-gnueabihf.tar.xz.asc
NoSource: 203
Source204: %{dl_url}/rust-%{version_current}-arm-unknown-linux-gnueabihf.tar.xz.asc
NoSource: 204
Source205: %{dl_url}/rust-%{version_current}-powerpc64-unknown-linux-gnu.tar.xz.asc
NoSource: 205
Source206: %{dl_url}/rust-%{version_current}-powerpc64le-unknown-linux-gnu.tar.xz.asc
NoSource: 206
Source207: %{dl_url}/rust-%{version_current}-s390x-unknown-linux-gnu.tar.xz.asc
NoSource: 207
Source208: %{dl_url}/rust-%{version_current}-powerpc-unknown-linux-gnu.tar.xz.asc
NoSource: 208
Source209: %{dl_url}/rust-%{version_current}-riscv64gc-unknown-linux-gnu.tar.xz.asc
NoSource: 209
Source210: %{dl_url}/rust-%{version_current}-loongarch64-unknown-linux-gnu.tar.xz.asc
NoSource: 210
# Make factory-auto stop complaining...
Source1000: README.suse-maint
# PATCH-FIX-OPENSUSE: edit src/librustc_llvm/build.rs to ignore GCC incompatible flag
Patch0: ignore-Wstring-conversion.patch
Patch2: tests-run-make-compiler-builtins-failed.patch
# IMPORTANT - To generate patches for submodules in git so they apply relatively you can use
# git format-patch --text --dst-prefix=b/src/tools/cargo/ HEAD~2
# SLE 15 SP3 and lower do not support pidfs, but it's not possible to disable that
# test individually. As a result, we have to skip testing below 15.4.
%if 0%{?sle_version} <= 150400
Patch3: 0001-Disable-pidfs-tests-for-15SP3.patch
%endif
BuildRequires: chrpath
BuildRequires: curl
# BUG - fdupes on leap/sle causes issues with debug info
%if 0%{?is_opensuse} == 1 && 0%{?suse_version} >= 1699
BuildRequires: fdupes
%endif
BuildRequires: pkgconfig
BuildRequires: procps
BuildRequires: python3-base
BuildRequires: util-linux
BuildRequires: pkgconfig(libcurl)
BuildRequires: pkgconfig(openssl)
BuildRequires: pkgconfig(zlib)
# Set requires appropriately
%if %with sccache
BuildRequires: sccache
%else
BuildRequires: ccache
%endif
# For linking to platform
Requires: glibc-devel
# Rustc doesn't really do much without Cargo, but you know, if you wanna yolo that ...
Recommends: cargo
# For static linking
Recommends: glibc-devel-static
%if %{with wasi}
BuildRequires: wasi-libc
%endif
%if %{with llvmtools}
BuildRequires: clang
BuildRequires: libstdc++-devel
BuildRequires: lld
Requires: clang
Requires: lld
%else
%if 0%{?need_gcc_version} != 0
BuildRequires: gcc%{need_gcc_version}-c++
Requires: gcc%{need_gcc_version}
%else
BuildRequires: gcc-c++
Requires: gcc
%endif
%endif
# CMake and Ninja required to drive the bundled llvm build.
# Cmake is also needed in tests.
%if 0%{?sle_version} >= 120000 && 0%{?sle_version} <= 150300
# In these distros cmake is 2.x, or 3.X < 3.13, so we need cmake3 for building llvm.
BuildRequires: cmake3 >= 3.20.0
%else
BuildRequires: cmake >= 3.20.0
%endif
# To build rust-lld
BuildRequires: ninja
%if %{with test}
BuildRequires: cargo%{version_suffix} = %{version}
BuildRequires: rust%{version_suffix} = %{version}
# Static linking tests need this.
BuildRequires: glibc-devel-static
BuildRequires: git
# End with test
%endif
%obsolete_rust_versioned rust
Conflicts: rust+rustc < %{version}
Conflicts: rustc-bootstrap
Provides: rust+rustc = %{version}
Conflicts: rust-std < %{version}
Obsoletes: rust-std < %{version}
Provides: rust-std = %{version}
Conflicts: rust-std-static < %{version}
Obsoletes: rust-std-static < %{version}
Provides: rust-std-static = %{version}
Conflicts: rust-gdb < %{version}
Obsoletes: rust-gdb < %{version}
Provides: rust-gdb = %{version}
%if %{without test}
# Restrict the architectures as building rust relies on being
# initially bootstrapped before we can build the n+1 release
ExclusiveArch: x86_64 %{arm} aarch64 ppc ppc64 ppc64le s390x %{ix86} riscv64 loongarch64
%ifarch %{ix86}
ExclusiveArch: i686
%endif
%else
# Restrict for Tier 1 targets (but we should report bugs in Tier 2)
# https://doc.rust-lang.org/nightly/rustc/platform-support.html#tier-1-with-host-tools
ExclusiveArch: x86_64 i686 aarch64
%endif
%description
Rust is a systems programming language focused on three goals: safety,
speed, and concurrency. It maintains these goals without having a
garbage collector, making it a useful language for a number of use
cases other languages are not good at: embedding in other languages,
programs with specific space and time requirements, and writing
low-level code, like device drivers and operating systems. It improves
on current languages targeting this space by having a number of
compile-time safety checks that produce no runtime overhead, while
eliminating all data races. Rust also aims to achieve "zero-cost
abstractions", even though some of these abstractions feel like those
of a high-level language. Even then, Rust still allows precise control
like a low-level language would.
%package -n cargo%{version_suffix}
Summary: The Rust package manager
License: Apache-2.0 OR MIT
Group: Development/Languages/Rust
Requires: rust-std = %{version}
Obsoletes: cargo-vendor < %{version}
Provides: cargo-vendor = %{version}
Provides: rust+cargo = %{version}
%obsolete_rust_versioned cargo
%description -n cargo%{version_suffix}
Cargo downloads dependencies of Rust projects and compiles it.
%package src
Summary: The Rust Standard Library Source
License: Apache-2.0 OR MIT
Group: Development/Languages/Rust
Requires: rust-std = %{version}
BuildArch: noarch
%description src
Rust Stanard Library Sources are required for building some types of projects
%prep
# Previously the stage0 compiler was skipped in test builds, but there are now
# tests in rust's source tree that require it.
%ifarch x86_64
%setup -q -T -b 100 -n rust-%{version_current}-%{rust_triple}
%endif
%ifarch %{ix86}
%setup -q -T -b 101 -n rust-%{version_current}-%{rust_triple}
%endif
%ifarch aarch64
%setup -q -T -b 102 -n rust-%{version_current}-%{rust_triple}
%endif
%ifarch armv7hl
%setup -q -T -b 103 -n rust-%{version_current}-%{rust_triple}
%endif
%ifarch armv6hl
%setup -q -T -b 104 -n rust-%{version_current}-%{rust_triple}
%endif
%ifarch ppc64
%setup -q -T -b 105 -n rust-%{version_current}-%{rust_triple}
%endif
%ifarch ppc64le
%setup -q -T -b 106 -n rust-%{version_current}-%{rust_triple}
%endif
%ifarch s390x
%setup -q -T -b 107 -n rust-%{version_current}-%{rust_triple}
%endif
%ifarch ppc
%setup -q -T -b 108 -n rust-%{version_current}-%{rust_triple}
%endif
%ifarch riscv64
%setup -q -T -b 109 -n rust-%{version_current}-%{rust_triple}
%endif
./install.sh --components=cargo,rustc,rust-std-%{rust_triple} --prefix=.%{_prefix} --disable-ldconfig
%global rust_root %{_builddir}/rust-%{version_current}-%{rust_triple}%{_prefix}
%autosetup -p1 -n rustc-%{version}-src
# We never enable emscripten.
rm -rf src/llvm-emscripten/
# We never enable other LLVM tools.
rm -rf src/tools/clang
rm -rf src/tools/lldb
# Fix rpmlint error "This script uses 'env' as an interpreter"
sed -i '1s|#!%{_bindir}/env python|#!%{_bindir}/python3|' library/core/src/unicode/printable.py
chmod +x library/core/src/unicode/printable.py
%if %{with wasi}
# wasi-libc ships it's toolchain as wasm32-wasi, but rust expects it to be wasm32-wasip1.
cp -r %{_datadir}/wasi-sysroot %{_builddir}
ln -s %{_builddir}/wasi-sysroot/lib/wasm32-wasi %{_builddir}/wasi-sysroot/lib/wasm32-wasip1
%endif
# Debugging for if anything goes south - OBS does like to lie about resources on builders.
lscpu
free -h
df -h
%build
# Create exports file
# Keep all the "export VARIABLE" together here, so they can be
# reread in the %%install section below.
# If the environments between build and install and different,
# everything will be rebuilt during installation!
%if %{with llvmtools}
cat > .env.sh <<EOF
export CC="/usr/bin/clang"
export CXX="/usr/bin/clang++"
EOF
%else
%if 0%{?need_gcc_version} != 0
cat > .env.sh <<EOF
export CC="/usr/bin/gcc-%{need_gcc_version}"
export CXX="/usr/bin/g++-%{need_gcc_version}"
EOF
%else
cat > .env.sh <<EOF
export CC="gcc"
export CXX="g++"
EOF
%endif
%endif
# -Clink-arg=-B{_prefix}/lib/rustlib/{rust_triple}/bin/gcc-ld/"
# -Clink-arg=-B{rust_root}/lib/rustlib/{rust_triple}/bin/gcc-ld/"
%if %{with sccache}
export CC="/usr/bin/sccache ${CC}"
export CXX="/usr/bin/sccache ${CXX}"
%endif
cat >> .env.sh <<EOF
export CXXFLAGS="-I/home/abuild/rpmbuild/BUILD/rustc-%{version}-src/src/llvm-project/libunwind/include/"
export PATH="%{_prefix}/lib/rustlib/%{rust_triple}/bin/:${PATH}"
export RUSTFLAGS="%{rustflags} -Clinker=%{rust_linker}"
export LD_LIBRARY_PATH="%{rust_root}/lib"
export SCCACHE_IDLE_TIMEOUT="3000"
export DESTDIR=%{buildroot}
export CARGO_FEATURE_VENDORED=1
unset FFLAGS
unset MALLOC_CHECK_
unset MALLOC_PERTURB_
# END EXPORTS
EOF
. ./.env.sh
# Sometimes to debug sccache we need to know the state of the env.
env
# Check our rustroot works as we expect
%if %{without test}
cat >> main.rs <<EOF
fn main() {}
EOF
RUSTC_LOG=rustc_codegen_ssa::back::link=info %{rust_root}/bin/rustc -C link-args=-Wl,-v ${RUSTFLAGS} main.rs
%endif
# The configure macro will modify some autoconf-related files, which upsets
# cargo when it tries to verify checksums in those files. So we don't use
# the macro, as it provides no tangible benefit to our build process.
# FUTURE: See if we can build sanitizers without the full llvm bundling.
# {?with_tier1: --enable-sanitizers} \
./configure \
--build=%{rust_triple} --host=%{rust_triple} \
--target %{rust_target_list} \
%{?with_wasi: --set target.wasm32-wasip1.wasi-root=%{_builddir}/wasi-sysroot/ } \
%{?with_wasi: --set target.wasm32-wasip1.ar=%{_builddir}/rustc-%{version}-src/build/%{rust_triple}/llvm/bin/llvm-ar } \
%{?with_wasi: --set target.wasm32-wasip1.ranlib=%{_builddir}/rustc-%{version}-src/build/%{rust_triple}/llvm/bin/llvm-ar } \
--prefix=%{_prefix} \
--bindir=%{_bindir} \
--sysconfdir=%{_sysconfdir} \
--datadir=%{_datadir} \
--localstatedir=%{_localstatedir} \
--mandir=%{_mandir} \
--infodir=%{_infodir} \
--libdir=%{common_libdir} \
--docdir=%{_docdir}/rust \
--enable-local-rust \
%{!?with_test: --local-rust-root=%{rust_root} --disable-rpath} \
--disable-llvm-link-shared --set llvm.link-jobs=0 \
--set target.%{rust_triple}.profiler=true \
%{?with_llvmtools: --set rust.use-lld=true --set llvm.use-linker=lld} \
--set rust.lld=true \
--default-linker=%{rust_linker} \
%{?with_sccache: --enable-sccache} \
%{!?with_sccache: --enable-ccache} \
--disable-docs \
--disable-compiler-docs \
--enable-verbose-tests \
%{debug_info} \
--enable-vendor \
--enable-extended \
--tools="cargo,clippy,rustdoc,rustfmt,src" \
--release-channel="stable" \
--set rust.deny-warnings=false \
%{nil}
# We set deny warnings to false due to a problem where rust upstream didn't test building with
# the same version (they did previous ver)
%if %{without test}
python3 ./x.py build
# Debug for post build
free -h
df -h
%endif
%install
# Reread exports file
%if %{without test}
. ./.env.sh
python3 ./x.py install
# bsc#1199126 - rust-lld contains an rpath, which is invalid.
chrpath -d %{buildroot}%{rustlibdir}/%{rust_triple}/bin/rust-lld
# To facilitate tests when we aren't using system LLVM, we need filecheck available.
install -m 0755 %{_builddir}/rustc-%{version}-src/build/%{rust_triple}/llvm/bin/FileCheck %{buildroot}%{rustlibdir}/%{rust_triple}/bin/FileCheck
# Remove the license files from _docdir: make install put duplicates there
rm %{buildroot}%{_docdir}/rust/{README.md,COPYRIGHT,LICENSE*}
rm %{buildroot}%{_docdir}/rust/*.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 '{}' '+'
find %{buildroot}%{rustlibdir} -type f -name '.cirrus.yml' -exec rm -v '{}' '+'
find %{buildroot}%{rustlibdir} -type f -name '.clang-format' -exec rm -v '{}' '+'
find %{buildroot}%{rustlibdir} -type d -name '.github' -exec rm -r -v '{}' '+'
# The shared libraries should be executable to allow fdupes find duplicates.
find %{buildroot}%{common_libdir} -maxdepth 1 -type f -name '*.so' -exec chmod -v +x '{}' '+'
# The shared libraries should be executable for debuginfo extraction.
find %{buildroot}%{rustlibdir} -maxdepth 1 -type f -name '*.so' -exec chmod -v +x '{}' '+'
# Create the path for crate-devel packages
mkdir -p %{buildroot}%{_datadir}/cargo/registry
# Remove completions
rm -rf %{buildroot}%{_prefix}/src/etc/bash_completion.d
# rmdir %{buildroot}%{_prefix}/src/etc
rm -rf %{buildroot}%{_sysconfdir}/bash_completion.d
rm -rf %{buildroot}%{_datadir}/zsh
# There should be nothing here at all
rm -rf %{buildroot}%{_sysconfdir}
# cargo does not respect our _libexec setting on Leap:
if [ ! -f %{buildroot}%{_libexecdir}/cargo-credential-1password ] &&
[ -f %{buildroot}%{_exec_prefix}/libexec/cargo-credential-1password ]; then
mv %{buildroot}%{_exec_prefix}/libexec/cargo-credential-1password \
%{buildroot}%{_libexecdir}/cargo-credential-1password
fi
# Silence any duplicate library warnings.
%if 0%{?is_opensuse} == 1 && 0%{?suse_version} >= 1699
%fdupes %{buildroot}/%{common_libdir}
%endif
# Ugly hack to get brp-15-strip-debug call llvm-strip, which is wasm-aware, as system-strip will break wasm-files (same for ar/ranlib)
export CROSS_COMPILE=llvm-
# End without test
%endif
%if %{with test}
%check
. ./.env.sh
# Tests require stage0 in place, so we need to symlink that in for compiler access.
# Generally in a non-local rust build, this process assumes you downloaded and unpacked
# the compiler toolchain into stage0, which is why we have to feed that in manually.
mkdir -p %{_builddir}/rustc-%{version}-src/build/%{rust_triple}
ln -s %{rust_root} %{_builddir}/rustc-%{version}-src/build/%{rust_triple}/stage0
# Need to exclude issue-71519 as when we enable lld for wasm, this test incorrectly assumes
# we can use it with -Z gcc-ld=lld (which is sadly trapped in nightly). We can't exclude
# a single test so sadly we have to exclude that whole suite.
#
# Exclude mte-ffi as aarch64-linux-gnu-gcc isn't available
%ifarch aarch64
python3 ./x.py test --target=%{rust_triple} \
--exclude tests/run-make/issue-71519 \
--exclude tests/run-make/pgo-branch-weights \
--exclude src/tools/tidy \
--exclude src/tools/expand-yaml-anchors \
--exclude tests/ui/methods \
--exclude tests/ui/typeck \
--exclude tests/ui/issues/issue-21763 \
--exclude tests/ui/mismatched_types \
--exclude tests/run-make/short-ice \
--exclude tests/run-make/rust-lld \
--exclude tests/run-make/mte-ffi \
--exclude src/bootstrap
%else
python3 ./x.py test --target=%{rust_triple} \
--exclude tests/run-make/issue-71519 \
--exclude tests/run-make/pgo-branch-weights \
--exclude src/tools/tidy \
--exclude src/tools/expand-yaml-anchors \
--exclude tests/ui/methods \
--exclude tests/ui/typeck \
--exclude tests/ui/issues/issue-21763 \
--exclude tests/ui/mismatched_types \
--exclude tests/run-make/short-ice \
--exclude tests/run-make/rust-lld \
--exclude src/bootstrap
%endif
# End with test
%endif
%if %{without test}
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
%license COPYRIGHT LICENSE-APACHE LICENSE-MIT
%doc CONTRIBUTING.md README.md RELEASES.md
%{_bindir}/rustc
%{_bindir}/rustdoc
%{_bindir}/rust-gdb
%{_bindir}/rust-gdbgui
%{_bindir}/rust-lldb
%{_bindir}/cargo-clippy
%{_bindir}/cargo-fmt
%{_bindir}/clippy-driver
%{_bindir}/rustfmt
%{_mandir}/man1/rustc.1%{?ext_man}
%{_mandir}/man1/rustdoc.1%{?ext_man}
%{_prefix}/lib/lib*.so
%dir %{rustlibdir}
%dir %{rustlibdir}%{_sysconfdir}
%{rustlibdir}%{_sysconfdir}/gdb_load_rust_pretty_printers.py
%{rustlibdir}%{_sysconfdir}/gdb_lookup.py
%{rustlibdir}%{_sysconfdir}/gdb_providers.py
%{rustlibdir}%{_sysconfdir}/lldb_commands
%{rustlibdir}%{_sysconfdir}/lldb_lookup.py
%{rustlibdir}%{_sysconfdir}/lldb_providers.py
%{rustlibdir}%{_sysconfdir}/rust_types.py
%dir %{rustlibdir}/%{rust_triple}
%{rustlibdir}/%{rust_triple}/bin
%dir %{rustlibdir}/%{rust_triple}/lib
%{rustlibdir}/%{rust_triple}/lib/*.so
%{rustlibdir}/%{rust_triple}/lib/*.rlib
%if %{with wasi}
%dir %{rustlibdir}/wasm32-wasip1
%dir %{rustlibdir}/wasm32-wasip1/lib
%dir %{rustlibdir}/wasm32-wasip1/lib/self-contained
%{rustlibdir}/wasm32-wasip1/lib/*.rlib
%{rustlibdir}/wasm32-wasip1/lib/self-contained/*.o
%{rustlibdir}/wasm32-wasip1/lib/self-contained/*.a
%endif
%ifarch x86_64
%dir %{rustlibdir}/x86_64-unknown-none
%dir %{rustlibdir}/x86_64-unknown-none/lib
%{rustlibdir}/x86_64-unknown-none/lib/*.rlib
%endif
# Seems to have been removed in 1.73
# pct {_libexecdir}/cargo-credential-1password
%files -n cargo%{version_suffix}
%license src/tools/cargo/LICENSE-{APACHE,MIT,THIRD-PARTY}
%license src/tools/rustfmt/LICENSE-{APACHE,MIT}
%license src/tools/clippy/LICENSE-{APACHE,MIT}
%{_bindir}/cargo
%{_mandir}/man1/cargo*.1%{?ext_man}
%dir %{_datadir}/cargo
%dir %{_datadir}/cargo/registry
%files src
%{rustlibdir}/src
# End not with test
%endif
%changelog

BIN
rustc-1.84.0-src.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,12 @@
diff --git a/tests/run-make/compiler-builtins/rmake.rs b/tests/run-make/compiler-builtins/rmake.rs
index 10093db2258..ad533f80266 100644
--- a/tests/run-make/compiler-builtins/rmake.rs
+++ b/tests/run-make/compiler-builtins/rmake.rs
@@ -11,6 +11,7 @@
// wasm and nvptx targets don't produce rlib files that object can parse.
//@ ignore-wasm
//@ ignore-nvptx64
+//@ only-nightly
#![deny(warnings)]