xiaoguang wang 2024-12-03 01:18:32 +00:00 committed by Git OBS Bridge
commit e4c000e481
34 changed files with 1501 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

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

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);
}

14
ppc64le-float.patch Normal file
View File

@ -0,0 +1,14 @@
diff -rupN rustc-1.82.0-src.orig/src/llvm-project/llvm/lib/Analysis/ConstantFolding.cpp rustc-1.82.0-src/src/llvm-project/llvm/lib/Analysis/ConstantFolding.cpp
--- rustc-1.82.0-src.orig/src/llvm-project/llvm/lib/Analysis/ConstantFolding.cpp
+++ rustc-1.82.0-src/src/llvm-project/llvm/lib/Analysis/ConstantFolding.cpp
@@ -1784,8 +1784,8 @@ Constant *ConstantFoldFP(double (*Native
}
#if defined(HAS_IEE754_FLOAT128) && defined(HAS_LOGF128)
-Constant *ConstantFoldFP128(long double (*NativeFP)(long double),
- const APFloat &V, Type *Ty) {
+Constant *ConstantFoldFP128(float128 (*NativeFP)(float128), const APFloat &V,
+ Type *Ty) {
llvm_fenv_clearexcept();
float128 Result = NativeFP(V.convertToQuad());
if (llvm_fenv_testexcept()) {

BIN
rust-1.83.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-----
wsFcBAABCgAQBQJnSHLuCRCFq5bm+hvl/gAA14sQAMZxxsuEyA9WayY4Wic+nBB9
nCLmysLzO/WMHpLDSJm6L6S40twf+KVIMmZJ5iAs1/oGqPaEMKruizUyg6YKC5lY
aYXKpkjGyek4pGqVyrpl/uZAXpHnO9vopQh7Lnx89S51DOBXnMquWqL8x9eY6Wzn
uoIZU2idlmvFbHEMvV+EEz6QyY8WrKeT6Z1qkvKwICdDzP6VYqHTo/xiNOv3JE1a
/xJcjOv8C16bh1O97KMtaYOhW4lS1YFOgfQENpvoPA9yBAtayGtG34YkTnS2hBlU
N0X0FqXfz+Bd5pHDDOZ1aGVuGcdqfw0sXTlOBIutajcbGVsnTdDUmWZvYFPZ3SP9
aKWF8gYiHT2ELs6HROUa/lC551xs3jwjdqmy3EM54inHBKLdqre5Y70yB0bDuQyo
z+yahFpRGksuIY58hcHJ8FojNMN4bMRlIYGBkjnHEn6dhBjzGfUoBzrOV+zYY2F4
8Y3zRF9Gif07JJDtej46AvGasobZiTtxHrOmDtOGSNfDQWnaFmsZmJ2N7/h+5hUo
hiBXjvdtuXxjSqBIc8xYngPuPwFaTwCWAQCo0NbXWKIaM39z/7RPkbFYZA+D717E
JFabmJGMNgvVJ1rcx95QR6BCwFadgK3j4nLDNvz/dNd0ju7BpTgINc/RjNjzHw1k
EsB0+f4hiLiIOaLy5tzi
=2h85
-----END PGP SIGNATURE-----

BIN
rust-1.83.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-----
wsFcBAABCgAQBQJnSHLtCRCFq5bm+hvl/gAAubwQALw8vQb/D1y/fQ4DRHAfXQgO
Y97LiZY1IDakhLtzpD+kpOfEMbQvrMJUS4PYJ1l7VYuovHN9/M/5UHYpvKkYm63F
alWZ/Vi5gFLjxreMZpltZoe8QmZZn5dimnGqV7H5Hn2I4+wCm6T+G+vm60Dr7qsy
ZdhgMYQG3w7qduYIEdbxOBbJIYqRko+43kIpjrLoE1DJ4ChWk9RBLQ5eLOQFE8d2
rMuw2m+4uUwcikSYHGnF9F3HVT/EfKK+T1dUfMgtdqwJ5Jbqk+vyjA65AAa+/FCJ
FEzgbCVyk7pyov+wZwU7d7ChFIHNpSz6X0B0+0yvV30ap7bjf5V4JmhA674TA07N
19zdIOtglxvu0R2Fn0EK83MoSvsI4dRoUYPVhrX9JdKAxqGn0SqHKzecw76Zj0Rp
VJzh2b3zoHDoU8jzHoDp5RpE/qlzPJO/prsramo8St8i2nEYNYH8AmQcaiC2zas9
oCXkou7Via4YZw2HbMTiu4uuAdGu94eb8g+igVf28STEDK3bBrohKUFXlgZ85XLg
403yngIAbSl+iltQbpZkmwoP+UWF6GrQTsf0EQ+Kk7cOmobwh503iUaw54S8YYQY
7t2Ppm3/AX6X2dctLAKDz5zNQt81cV6BWW8DoqZctd9dplH4GS2bvem79G3/ADK8
kwOvtnswZpmPX+49BOX/
=4fdZ
-----END PGP SIGNATURE-----

BIN
rust-1.83.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-----
wsFcBAABCgAQBQJnSHLvCRCFq5bm+hvl/gAAPK8P/3jz2gz4FmGbVmrTTWWf4Pn0
xv9O02digH0pP7xT4S1CAuY6loOHMuLmguwFq9kSROwoaN6eUktAphmJplPgrgOQ
+mP+TVI4eeEoeKOdy8brJ4FxOuQAhKDij8A5IrBZsYxX9QXXhaFRCUznXmmJMut2
R5nmJga4369RRMqIyvwfH4h1WqaBbITGDMPc89f79/DZc9QwaafOGoJrmP1uMD+/
MjlqNMKj4nTPqcD+mry/E3vPiycFlDYkeKZYD5U1Q9w7fmuscOe6MQtgLHJCPNId
no8nKB4R3W/HlIfnRi5n9WSDQyazoqLCKujfPkfxmytQ9VN/JX077xfL0IsExd3J
ej+wCnhwGPlMf/z8zPoXKcJ9LEpSJvVdNqYsTVU0MBgWZvtEFb0ZQJzIo//jR8EB
qi2D8OHmt6Bk3XnIvlrOnPqBy+QeyILiJzt6uGxEkuLsvu0GWwecSYq6dZudnQUa
KewgStrSomnqdXLu8rPq2UGpsWiKIIQ3txUCgsncBpeCMOThjY5v7GzSgLBFWMYo
VaKqH1867MuCPbJRGxFYfsVpQ57+cbGuZIyevz8EgZoNHEDB6u08gV2US3n3I00q
Fgj0Yf/azI/Yvk3iQqzVOoiqvhuDhyzuJUo21dPI3NhvtlE27zsHsxLoMgxfw3g3
gLgVHVwBxxnIHW6uKelK
=UVDN
-----END PGP SIGNATURE-----

BIN
rust-1.83.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-----
wsFcBAABCgAQBQJnSHLvCRCFq5bm+hvl/gAAaHsQAKlxz4iY+A2R/XZFgFcs3n58
XHwWBUNYecCXMk5IFFtfhRQ1JCpoudSurC9UuulFnfwiCL1Px6lsK+mtEqvGU/hr
diNejom/EUZnC+kC46bIiI2SEcNz/0c4yaAZnZe6lULpOzpFuGO/4CBns9+e2fyu
OTk2Vz/PkQl1L33oTmXm3hpxbTZZbRFFf4W6fDdZPVNcuEFai0e1BgpBoBAbFhpV
pl9NZrD2cJTfg0uJTvYsBpMmaMhg94yajEH1wp9zoxVxjL+5m6toxq17gHuTecbf
ad4XSPkJ23I9ekve3UCbMaFMjUaj9iurZB3LY7nCyv4jX3L6kqH4E2In/M31vvZe
b3goWwvVSzn5MJiYeSi2Vj0VuObXNQcFaLN6iUgggBHHefhsn9HPuYjV/TK59p4I
MQtd7Np42nMh1wVvOSv7JereUs3sobmdIVA2RVnzSOYtJr4at19yD2IQU76+15so
860mkdQPthDmHIatl0bAm3+pw+wsa9ILNBq35Iev61w0/Ke37O3JI8tYAmvWn3vK
WYRWsr9Z5oOiySMVp9lXE94Ed4FWAi1VnVNb3u/I6WqG8/Y/9uKaCuIKmeOUuurF
P7WaSIxPg2dA1Os/dGH2YWrbxQotrZEMM2LaQGS4crLaHqyNlq8EBP2UihN07afb
KKdnjbUmVO3/NMfXBm3K
=+A92
-----END PGP SIGNATURE-----

BIN
rust-1.83.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-----
wsFcBAABCgAQBQJnSHLoCRCFq5bm+hvl/gAAu30P/2SPHpmOAOCmFVCECyjecinZ
xaT9qnkyX9JOgw747z2f4RG40YqhenGgzXk/9lOIq6+5EU5Xu6YSdP2+ls3IP15j
T1Bu813U5OqXpySkvf/B1Clk+FfquWcfRm3Sx1tFBmo1BUlD2O0l+ntJ/gRMV4pJ
wPufZl6uci679HquG54dgUPwbNzVzTKNG8DuGLDe9xZA9eJXbtwmkYDb884gX3o3
xNEyz3UYQ1VqoAcDVG1Rr8yFjdjU/cqOPA9wXOlSrOKdWbuLs+rCa36fO20/2F/B
uadd8aHfEP16kUZ9JphLXADWZNtzrmCirAOaGV8VMq1jwj6okBrn5YHc6RNdbvYL
BaQBskjkSqfAsuYCJgT5QD3Abpt+b82vhijRZP3ujOzfXaKq8aLCXIbwsDGfIqgP
nOe2BEQtuIWihx7l0SyDExGzxHDpIflmEpwmWxzO0+Xsfo93ZsEBaI3iMq/6u3u7
WtCC/23FKVDV5lzSs+pamzXAG3SdIpWWsVw9/9LSNvAgdrUbrXiI3lE9oa8XTKeP
snaA7Hj6eE5oKgfyHOTFEarqm4+IRmH/XArMgu3e7NTRT3lGRG4hMZj9exOlW0NQ
tVrHT1t6FatTRz+auZxVGQfn1q6Zt0ev6zeNcEH+GLX5pEHIvWC7+oyoZ4HkreZP
mA/SxlKtlfvORy83GF/h
=DfXP
-----END PGP SIGNATURE-----

BIN
rust-1.83.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-----
wsFcBAABCgAQBQJnSHLvCRCFq5bm+hvl/gAAFgAP/iEFBcqwUSdWfXlz4ZTRYMJQ
LncMAXfhXtw1sFEVl2ybcvV1tbyob948VgI9Mm+y9e0KR2405XRy80P+gDBw1gFf
40ckn13A/m+vbqDeQrWm2w+mdes4YI+rWRq8tB72Fknlona5NLchB5KPN6xBXO3l
ReIYoLNhV+iW85PabxLWtIOSKChszRS3c/omQgor1493eoPT4dkfH+kkkhpWc7X9
xYHKQ06UUqMx48vKqHLWRntb5XFnQHuHZjigugcwbTMLG9CEl/MZH3Jvg59SQlwG
u+3bYU/aJiYUqRqmFA8wX2IIXqtSUkya9plKKkPIIydtk6UpBfu96OZVeeJE7RI+
XT95EbkY6kK/zE6x6luUZyvhAMpNwzerOJkIX6Wsx1vsIDx+pPTPPMSmCjhHPJBy
j2Mxlh/HZcorMf7G6VWjSTK7ntdIR3DFCBhmI8m9T37qqzzahvrhP6wY/kH+A2XA
igHkOwWf77Acrk+KMNnpRKfmTicrWURW28fWhtHg+CBLWgCjeC9DOGf9+ELtfTTd
oCvWeLeCVodpzhezLhANWcgyhBMMnHwRUpBivFfhfW5ks80Rf+KxE36Kw8t1sNpc
8bGFVwGOcEV5S89fvOfitAVMeokJexQJCt3dTKGre3S2l5ooqRzNu1F12VwdGjwX
fBJOK5TJQ4GsttTuDvM3
=YP5U
-----END PGP SIGNATURE-----

BIN
rust-1.83.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-----
wsFcBAABCgAQBQJnSHLvCRCFq5bm+hvl/gAATCUP/2aNMIF1UY3mFgIKPNh4d2uI
13siDSsNhpWlPeF76K0+x3Whk4tM2wRbU8XetcCBQBrR5yVOTAUtH5dcL0si7ZBb
zN1joBMwd0d4syUVYzBqVHnU3lLcCeP6jFzEPgbxraTCLvvhapwgZProoLY1vSzG
NWMjeE0bGIobXXtBnZD3lANnpPYYc8vxRGHr3cKOqn2jfHO7HdvP1eeKy3ZMahvO
nKcBlLhgbNqSfjz3dCq76vWVcbf11/t1AiMv+iEJPIQLedJBKAYrhuIPwYcVZyZS
DKQyu6wLTBaXsLDqfI3vSFcpwNfiVMauhSAvEjxHy16k+l/XR+1jyY+B+vPNUKx1
Kjrc/eY4Sr0rD2aXLK+aBQl4ge10UIuGZGWjXbt/OORSCoH2Ci3CdiSSEVTvTubW
GQajVEprZn/NS3l0VrdOtgnJ59w+gfiNUGwmwt5BPkQ+waSjX31BZEXpYB/p9S4t
kbkrWgt9OHo6+issZ8bqrvrUVwbx5Q30F7yZ1YwIVIxQRhRtEtMD+vrFwkmmGuEN
anWENht73UGpNBVg6WFGlTPRb+LFE5ZBMIbD7wy38/yo6wpOwibWcpiaSGI8aHKN
Xej11K9tPfmuWq5qY6jvSNhFtx8HhbBFT+I7yaEPAHAijWQHODkFwWX84DiCPuHw
wWyZDaYKtgKsApymr65H
=O3AP
-----END PGP SIGNATURE-----

BIN
rust-1.83.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-----
wsFcBAABCgAQBQJnSHLqCRCFq5bm+hvl/gAAfOgQAMoWoxZxwyeHx7tMLkmmDtW5
8qfdYrWtb5wFz9AiQr4GS8DJKhmOjYcLgXj4vF2qMJPHNPTakKNr7c3XhPhOO7ho
hYSyUKUBroi0fMs5y/grwX8QmNNk3OpvjeGY4DJNUf7Esa14YX5FyDyxi8zn/Nmm
WVDjSFW9qxvCTkWu0FbVtV/VrKlImVA9jj6dWdOkNAI4yX3dX0Bch8j1LSWS00mt
TzQ5q1VWKEzPCwGSO2d57VA0T0zXYaqJFk+fo03BD0230eHS6XQGrnhtDAIfdDtt
7CL0oRWLLe9LlAc8zbw5pPQWmwm3lZZduuEZonGjyLJ+E9DnVH8wQum3z+1EYCPI
iEcf7p2QGs6/CQ2XsVGCUTb7jBnZDy/UqJbJ8MvhqropeT9dIhUyfTxjICKbrJsu
dM6A7+T4ylRqFQmyFyMjYQAhWcuPFVuIw7jPkqdmlLkkNDugQQ0YOeTCL5n3sN8E
uasL8DhBij1yo+0Z4faAbVmtSEW8BUosxiNxHurgGzocxblncWC2HaHBh1xTQTJp
yDKIXxywPr6C/Ujq+NXxeT5V9eP7qGytPd9ayy1grxDixQdKBcGqyhrlDpI24BY8
E+Tucl4jA06QoGmthsioM9csJzBp3rcqNiOsPXwBcccJESFX/iFVKmq0EDg3D1bY
w/s4PONrti+1AnDVTEKL
=ux8l
-----END PGP SIGNATURE-----

BIN
rust-1.83.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-----
wsFcBAABCgAQBQJnSHLvCRCFq5bm+hvl/gAApzMQAKf8qHvwa1+rA3pmtxNGoUSX
aC8VILaTrH7rc2VtmCaKDgCdIqm4slX+Q29vFbDlFG6uI85C/QohErvrxse1xUR4
z41ON0DUu+P8uS8skrcUrNnR49EvLtNeyTryVmqHOssiAnSKhcWF9L9dCJbV1km1
B+4J5OCTSe6Q4CUptw8K6hAqiOARJLCBQBJs1roWnS/dJSsUT4NKx9WpQwRrCP5L
mvFGdDVFWJgc+U2quLXN3vrAlw5lIDrlmmpR38/JTnERHkia3qMyxUq1lu9flbyK
xihOa61eN6YChB9DAAJpG+eeQtqD5ynnEHtHyR/UEG6LG3etnxSvU4on7mmJHSKh
mqKaFQvFQW8V4hzbF6cqmOY5gE5/wosd9+M8z41vNi0T9bL1EVnXLJDuKPz3vO6d
NK8SXcBLKC/44rqLdx2VCKjgVOMaqkbq4mbsTHfM5FU3Cf6+C/ANEnonhuihOwO0
s/r6h3kIE3NbPDWZ4pSce6hycl8yCobmUywdp77aREfVCZ1oR5e9Zzz/VHHRvpN8
IQGVOKVzIHxtLSpoHhyWVIUiHC2C9CvDeQJEz/OWNr6K/FG5E2udgxmt2a6SuVkR
wdo+IeLPolRZL7ImuxYgxqgGlQfRr4gPTqf+j86Q59Ad8PxyGxwvS95GWiQ0LAda
MOgAmEVyPpHLnaKriZmL
=VpSq
-----END PGP SIGNATURE-----

BIN
rust-1.83.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-----
wsFcBAABCgAQBQJnSHLpCRCFq5bm+hvl/gAAig8QAIkpHgGcK8Qro38chTZlsvYz
AkhDVsc+I9j7L0mdw94vKFnUT3ll2DGrsJufqWPfX9hsopNjPWFpkIyvGfmUuLXA
YphYacq6RAhmxeqf76fKx2HHF9g06O9eenbpvyCYuxG+2zxh14TpZq/LSgqn2ILp
kQn4vVfLhGRL9cf4DBl4PcDJH0XRPkseU7490X4KurcQUh5dyBd0cXMDoVp96/8E
IDwh9qS9vaxUfjmTcKXWoAj4kIqnjQgJXQlRs8nw4HSBgscjOcjG+bWi+2VS9jG4
a4Q7nNdyTudeP3db0dcG8LFynMQmYroSOKV6BAVShWGcFnMglP67+I11vJH9YDws
0potxDB3naBtGR558855rjle66vcfohwCHtbdQjebioJPIJOGIFI6WBvo3wlfLJn
tb8Ben5kHvUH1E5j/TXM5SEYHbPgo/wdTZMdBoTS6/TtiRgw00RsM5SvRRgrYeNY
vdw57PJhVeWixRPIkOU/MKV1ovBVuBmQUb9PXcQInZSOmNC7y1NaUX8BUTIW3PZI
dRn2l63xsJhkpT+RyhVzE8Uk5VLCzXBDpIEayeH2caZWMCLesPbCJM5ZFXFoeuWh
Ff9q+2/f6ZZ4zoEHASS1mXtIDrx48N+ZqzBTvh8Q7ZrIbYzQfKAwez3qJ3LqIKMz
r0yAZj5bHoUHEcK69Sk4
=2wjA
-----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.83-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 .*")

222
rust1.83.changes Normal file
View File

@ -0,0 +1,222 @@
-------------------------------------------------------------------
Sat Nov 30 05:23:17 UTC 2024 - Xiaoguang Wang <xiaoguang.wang@suse.com>
- Add tests-run-make-compiler-builtins-failed.patch: test failed on
run-make/compiler-builtins.
-------------------------------------------------------------------
Sat Nov 30 05:20:17 UTC 2024 - Xiaoguang Wang <xiaoguang.wang@suse.com>
Version 1.83.0 (2024-11-28)
==========================
Language
--------
- [Stabilize `&mut`, `*mut`, `&Cell`, and `*const Cell` in const.](https://github.com/rust-lang/rust/pull/129195)
- [Allow creating references to statics in `const` initializers.](https://github.com/rust-lang/rust/pull/129759)
- [Implement raw lifetimes and labels (`'r#ident`).](https://github.com/rust-lang/rust/pull/126452)
- [Define behavior when atomic and non-atomic reads race.](https://github.com/rust-lang/rust/pull/128778)
- [Non-exhaustive structs may now be empty.](https://github.com/rust-lang/rust/pull/128934)
- [Disallow implicit coercions from places of type `!`](https://github.com/rust-lang/rust/pull/129392)
- [`const extern` functions can now be defined for other calling conventions.](https://github.com/rust-lang/rust/pull/129753)
- [Stabilize `expr_2021` macro fragment specifier in all editions.](https://github.com/rust-lang/rust/pull/129972)
- [The `non_local_definitions` lint now fires on less code and warns by default.](https://github.com/rust-lang/rust/pull/127117)
Compiler
--------
- [Deprecate unsound `-Csoft-float` flag.](https://github.com/rust-lang/rust/pull/129897)
- Add many new tier 3 targets:
- [`aarch64_unknown_nto_qnx700`](https://github.com/rust-lang/rust/pull/127897)
- [`arm64e-apple-tvos`](https://github.com/rust-lang/rust/pull/130614)
- [`armv7-rtems-eabihf`](https://github.com/rust-lang/rust/pull/127021)
- [`loongarch64-unknown-linux-ohos`](https://github.com/rust-lang/rust/pull/130750)
- [`riscv32-wrs-vxworks` and `riscv64-wrs-vxworks`](https://github.com/rust-lang/rust/pull/130549)
- [`riscv32{e|em|emc}-unknown-none-elf`](https://github.com/rust-lang/rust/pull/130555)
- [`x86_64-unknown-hurd-gnu`](https://github.com/rust-lang/rust/pull/128345)
- [`x86_64-unknown-trusty`](https://github.com/rust-lang/rust/pull/130453)
Refer to Rust's [platform support page][platform-support-doc]
for more information on Rust's tiered platform support.
Libraries
---------
- [Implement `PartialEq` for `ExitCode`.](https://github.com/rust-lang/rust/pull/127633)
- [Document that `catch_unwind` can deal with foreign exceptions without UB, although the exact behavior is unspecified.](https://github.com/rust-lang/rust/pull/128321)
- [Implement `Default` for `HashMap`/`HashSet` iterators that don't already have it.](https://github.com/rust-lang/rust/pull/128711)
- [Bump Unicode to version 16.0.0.](https://github.com/rust-lang/rust/pull/130183)
- [Change documentation of `ptr::add`/`sub` to not claim equivalence with `offset`.](https://github.com/rust-lang/rust/pull/130229)
Stabilized APIs
---------------
- [`BufRead::skip_until`](https://doc.rust-lang.org/stable/std/io/trait.BufRead.html#method.skip_until)
- [`ControlFlow::break_value`](https://doc.rust-lang.org/stable/core/ops/enum.ControlFlow.html#method.break_value)
- [`ControlFlow::continue_value`](https://doc.rust-lang.org/stable/core/ops/enum.ControlFlow.html#method.continue_value)
- [`ControlFlow::map_break`](https://doc.rust-lang.org/stable/core/ops/enum.ControlFlow.html#method.map_break)
- [`ControlFlow::map_continue`](https://doc.rust-lang.org/stable/core/ops/enum.ControlFlow.html#method.map_continue)
- [`DebugList::finish_non_exhaustive`](https://doc.rust-lang.org/stable/core/fmt/struct.DebugList.html#method.finish_non_exhaustive)
- [`DebugMap::finish_non_exhaustive`](https://doc.rust-lang.org/stable/core/fmt/struct.DebugMap.html#method.finish_non_exhaustive)
- [`DebugSet::finish_non_exhaustive`](https://doc.rust-lang.org/stable/core/fmt/struct.DebugSet.html#method.finish_non_exhaustive)
- [`DebugTuple::finish_non_exhaustive`](https://doc.rust-lang.org/stable/core/fmt/struct.DebugTuple.html#method.finish_non_exhaustive)
- [`ErrorKind::ArgumentListTooLong`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.ArgumentListTooLong)
- [`ErrorKind::Deadlock`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.Deadlock)
- [`ErrorKind::DirectoryNotEmpty`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.DirectoryNotEmpty)
- [`ErrorKind::ExecutableFileBusy`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.ExecutableFileBusy)
- [`ErrorKind::FileTooLarge`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.FileTooLarge)
- [`ErrorKind::HostUnreachable`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.HostUnreachable)
- [`ErrorKind::IsADirectory`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.IsADirectory)
- [`ErrorKind::NetworkDown`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.NetworkDown)
- [`ErrorKind::NetworkUnreachable`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.NetworkUnreachable)
- [`ErrorKind::NotADirectory`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.NotADirectory)
- [`ErrorKind::NotSeekable`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.NotSeekable)
- [`ErrorKind::ReadOnlyFilesystem`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.ReadOnlyFilesystem)
- [`ErrorKind::ResourceBusy`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.ResourceBusy)
- [`ErrorKind::StaleNetworkFileHandle`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.StaleNetworkFileHandle)
- [`ErrorKind::StorageFull`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.StorageFull)
- [`ErrorKind::TooManyLinks`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.TooManyLinks)
- [`Option::get_or_insert_default`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.get_or_insert_default)
- [`Waker::data`](https://doc.rust-lang.org/stable/core/task/struct.Waker.html#method.data)
- [`Waker::new`](https://doc.rust-lang.org/stable/core/task/struct.Waker.html#method.new)
- [`Waker::vtable`](https://doc.rust-lang.org/stable/core/task/struct.Waker.html#method.vtable)
- [`char::MIN`](https://doc.rust-lang.org/stable/core/primitive.char.html#associatedconstant.MIN)
- [`hash_map::Entry::insert_entry`](https://doc.rust-lang.org/stable/std/collections/hash_map/enum.Entry.html#method.insert_entry)
- [`hash_map::VacantEntry::insert_entry`](https://doc.rust-lang.org/stable/std/collections/hash_map/struct.VacantEntry.html#method.insert_entry)
These APIs are now stable in const contexts:
- [`Cell::into_inner`](https://doc.rust-lang.org/stable/core/cell/struct.Cell.html#method.into_inner)
- [`Duration::as_secs_f32`](https://doc.rust-lang.org/stable/core/time/struct.Duration.html#method.as_secs_f32)
- [`Duration::as_secs_f64`](https://doc.rust-lang.org/stable/core/time/struct.Duration.html#method.as_secs_f64)
- [`Duration::div_duration_f32`](https://doc.rust-lang.org/stable/core/time/struct.Duration.html#method.div_duration_f32)
- [`Duration::div_duration_f64`](https://doc.rust-lang.org/stable/core/time/struct.Duration.html#method.div_duration_f64)
- [`MaybeUninit::as_mut_ptr`](https://doc.rust-lang.org/stable/core/mem/union.MaybeUninit.html#method.as_mut_ptr)
- [`NonNull::as_mut`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.as_mut)
- [`NonNull::copy_from`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.copy_from)
- [`NonNull::copy_from_nonoverlapping`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.copy_from_nonoverlapping)
- [`NonNull::copy_to`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.copy_to)
- [`NonNull::copy_to_nonoverlapping`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.copy_to_nonoverlapping)
- [`NonNull::slice_from_raw_parts`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.slice_from_raw_parts)
- [`NonNull::write`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.write)
- [`NonNull::write_bytes`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.write_bytes)
- [`NonNull::write_unaligned`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.write_unaligned)
- [`OnceCell::into_inner`](https://doc.rust-lang.org/stable/core/cell/struct.OnceCell.html#method.into_inner)
- [`Option::as_mut`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.as_mut)
- [`Option::expect`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.expect)
- [`Option::replace`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.replace)
- [`Option::take`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.take)
- [`Option::unwrap`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.unwrap)
- [`Option::unwrap_unchecked`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.unwrap_unchecked)
- [`Option::<&_>::copied`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.copied)
- [`Option::<&mut _>::copied`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.copied-1)
- [`Option::<Option<_>>::flatten`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.flatten)
- [`Option::<Result<_, _>>::transpose`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.transpose)
- [`RefCell::into_inner`](https://doc.rust-lang.org/stable/core/cell/struct.RefCell.html#method.into_inner)
- [`Result::as_mut`](https://doc.rust-lang.org/stable/core/result/enum.Result.html#method.as_mut)
- [`Result::<&_, _>::copied`](https://doc.rust-lang.org/stable/core/result/enum.Result.html#method.copied)
- [`Result::<&mut _, _>::copied`](https://doc.rust-lang.org/stable/core/result/enum.Result.html#method.copied-1)
- [`Result::<Option<_>, _>::transpose`](https://doc.rust-lang.org/stable/core/result/enum.Result.html#method.transpose)
- [`UnsafeCell::get_mut`](https://doc.rust-lang.org/stable/core/cell/struct.UnsafeCell.html#method.get_mut)
- [`UnsafeCell::into_inner`](https://doc.rust-lang.org/stable/core/cell/struct.UnsafeCell.html#method.into_inner)
- [`array::from_mut`](https://doc.rust-lang.org/stable/core/array/fn.from_mut.html)
- [`char::encode_utf8`](https://doc.rust-lang.org/stable/core/primitive.char.html#method.encode_utf8)
- [`{float}::classify`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.classify)
- [`{float}::is_finite`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_finite)
- [`{float}::is_infinite`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_infinite)
- [`{float}::is_nan`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_nan)
- [`{float}::is_normal`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_normal)
- [`{float}::is_sign_negative`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_sign_negative)
- [`{float}::is_sign_positive`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_sign_positive)
- [`{float}::is_subnormal`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_subnormal)
- [`{float}::from_bits`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.from_bits)
- [`{float}::from_be_bytes`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.from_be_bytes)
- [`{float}::from_le_bytes`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.from_le_bytes)
- [`{float}::from_ne_bytes`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.from_ne_bytes)
- [`{float}::to_bits`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.to_bits)
- [`{float}::to_be_bytes`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.to_be_bytes)
- [`{float}::to_le_bytes`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.to_le_bytes)
- [`{float}::to_ne_bytes`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.to_ne_bytes)
- [`mem::replace`](https://doc.rust-lang.org/stable/core/mem/fn.replace.html)
- [`ptr::replace`](https://doc.rust-lang.org/stable/core/ptr/fn.replace.html)
- [`ptr::slice_from_raw_parts_mut`](https://doc.rust-lang.org/stable/core/ptr/fn.slice_from_raw_parts_mut.html)
- [`ptr::write`](https://doc.rust-lang.org/stable/core/ptr/fn.write.html)
- [`ptr::write_unaligned`](https://doc.rust-lang.org/stable/core/ptr/fn.write_unaligned.html)
- [`<*const _>::copy_to`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.copy_to)
- [`<*const _>::copy_to_nonoverlapping`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.copy_to_nonoverlapping)
- [`<*mut _>::copy_from`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.copy_from)
- [`<*mut _>::copy_from_nonoverlapping`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.copy_from_nonoverlapping)
- [`<*mut _>::copy_to`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.copy_to-1)
- [`<*mut _>::copy_to_nonoverlapping`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.copy_to_nonoverlapping-1)
- [`<*mut _>::write`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.write)
- [`<*mut _>::write_bytes`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.write_bytes)
- [`<*mut _>::write_unaligned`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.write_unaligned)
- [`slice::from_mut`](https://doc.rust-lang.org/stable/core/slice/fn.from_mut.html)
- [`slice::from_raw_parts_mut`](https://doc.rust-lang.org/stable/core/slice/fn.from_raw_parts_mut.html)
- [`<[_]>::first_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.first_mut)
- [`<[_]>::last_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.last_mut)
- [`<[_]>::first_chunk_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.first_chunk_mut)
- [`<[_]>::last_chunk_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.last_chunk_mut)
- [`<[_]>::split_at_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_at_mut)
- [`<[_]>::split_at_mut_checked`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_at_mut_checked)
- [`<[_]>::split_at_mut_unchecked`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_at_mut_unchecked)
- [`<[_]>::split_first_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_first_mut)
- [`<[_]>::split_last_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_last_mut)
- [`<[_]>::split_first_chunk_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_first_chunk_mut)
- [`<[_]>::split_last_chunk_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_last_chunk_mut)
- [`str::as_bytes_mut`](https://doc.rust-lang.org/stable/core/primitive.str.html#method.as_bytes_mut)
- [`str::as_mut_ptr`](https://doc.rust-lang.org/stable/core/primitive.str.html#method.as_mut_ptr)
- [`str::from_utf8_unchecked_mut`](https://doc.rust-lang.org/stable/core/str/fn.from_utf8_unchecked_mut.html)
Cargo
-----
- [Introduced a new `CARGO_MANIFEST_PATH` environment variable, similar to `CARGO_MANIFEST_DIR` but pointing directly to the manifest file.](https://github.com/rust-lang/cargo/pull/14404/)
- [Added `package.autolib` to the manifest, allowing `[lib]` auto-discovery to be disabled.](https://github.com/rust-lang/cargo/pull/14591/)
- [Declare support level for each crate in Cargo's Charter / crate docs.](https://github.com/rust-lang/cargo/pull/14600/)
- [Declare new Intentional Artifacts as 'small' changes.](https://github.com/rust-lang/cargo/pull/14599/)
Rustdoc
-------
- [The sidebar / hamburger menu table of contents now includes the `# headers` from the main item's doc comment](https://github.com/rust-lang/rust/pull/120736). This is similar to a third-party feature provided by the rustdoc-search-enhancements browser extension.
Compatibility Notes
-------------------
- [Warn against function pointers using unsupported ABI strings.](https://github.com/rust-lang/rust/pull/128784)
- [Check well-formedness of the source type's signature in fn pointer casts.](https://github.com/rust-lang/rust/pull/129021) This partly closes a soundness hole that comes when casting a function item to function pointer
- [Use equality instead of subtyping when resolving type dependent paths.](https://github.com/rust-lang/rust/pull/129073)
- Linking on macOS now correctly includes Rust's default deployment target. Due to a linker bug, you might have to pass `MACOSX_DEPLOYMENT_TARGET` or fix your `#[link]` attributes to point to the correct frameworks. See <https://github.com/rust-lang/rust/pull/129369>.
- [Rust will now correctly raise an error for `repr(Rust)` written on non-`struct`/`enum`/`union` items, since it previous did not have any effect.](https://github.com/rust-lang/rust/pull/129422)
- The future incompatibility lint `deprecated_cfg_attr_crate_type_name` [has been made into a hard error](https://github.com/rust-lang/rust/pull/129670). It was used to deny usage of `#![crate_type]` and `#![crate_name]` attributes in `#![cfg_attr]`, which required a hack in the compiler to be able to change the used crate type and crate name after cfg expansion.
Users can use `--crate-type` instead of `#![cfg_attr(..., crate_type = "...")]` and `--crate-name` instead of `#![cfg_attr(..., crate_name = "...")]` when running `rustc`/`cargo rustc` on the command line.
Use of those two attributes outside of `#![cfg_attr]` continue to be fully supported.
- Until now, paths into the sysroot were always prefixed with `/rustc/$hash` in diagnostics, codegen, backtrace, e.g.
```
thread 'main' panicked at 'hello world', map-panic.rs:2:50
stack backtrace:
0: std::panicking::begin_panic
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/panicking.rs:616:12
1: map_panic::main::{{closure}}
at ./map-panic.rs:2:50
2: core::option::Option<T>::map
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/option.rs:929:29
3: map_panic::main
at ./map-panic.rs:2:30
4: core::ops::function::FnOnce::call_once
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/ops/function.rs:248:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
```
[RFC 3127 said](https://rust-lang.github.io/rfcs/3127-trim-paths.html#changing-handling-of-sysroot-path-in-rustc)
> We want to change this behaviour such that, when `rust-src` source files can be discovered, the virtual path is discarded and therefore the local path will be embedded, unless there is a `--remap-path-prefix` that causes this local path to be remapped in the usual way.
[#129687](https://github.com/rust-lang/rust/pull/129687) implements this behaviour, when `rust-src` is present at compile time, `rustc` replaces `/rustc/$hash` with a real path into the local `rust-src` component with best effort.
To sanitize this, users must explicitly supply `--remap-path-prefix=<path to rust-src>=foo` or not have the `rust-src` component installed.
- The allow-by-default `missing_docs` lint used to disable itself when invoked through `rustc --test`/`cargo test`, resulting in `#[expect(missing_docs)]` emitting false positives due to the expectation being wrongly unfulfilled. This behavior [has now been removed](https://github.com/rust-lang/rust/pull/130025), which allows `#[expect(missing_docs)]` to be fulfilled in all scenarios, but will also report new `missing_docs` diagnostics for publicly reachable `#[cfg(test)]` items, [integration test](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#integration-tests) crate-level documentation, and publicly reachable items in integration tests.
- [The `armv8r-none-eabihf` target now uses the Armv8-R required set of floating-point features.](https://github.com/rust-lang/rust/pull/130295)
- [Fix a soundness bug where rustc wouldn't detect unconstrained higher-ranked lifetimes in a `dyn Trait`'s associated types that occur due to supertraits.](https://github.com/rust-lang/rust/pull/130367)
- [Update the minimum external LLVM version to 18.](https://github.com/rust-lang/rust/pull/130487)
- [Remove `aarch64-fuchsia` and `x86_64-fuchsia` target aliases in favor of `aarch64-unknown-fuchsia` and `x86_64-unknown-fuchsia` respectively.](https://github.com/rust-lang/rust/pull/130657)
- [The ABI-level exception class of a Rust panic is now encoded with native-endian bytes, so it is legible in hex dumps.](https://github.com/rust-lang/rust/pull/130897)
- [Visual Studio 2013 is no longer supported for MSVC targets.](https://github.com/rust-lang/rust/pull/131070)
- [The sysroot no longer contains the `std` dynamic library in its top-level `lib/` dir.](https://github.com/rust-lang/rust/pull/131188)

764
rust1.83.spec Normal file
View File

@ -0,0 +1,764 @@
#
# 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.83
%global version_current 1.83.0
%global version_previous 1.82.0
%if 0%{?sle_version} <= 150900 && 0%{?suse_version} < 1599
# 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 gcc_version 13
%endif
#KEEP NOSOURCE DEBUGINFO
%define obsolete_rust_versioned() \
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_wasm32:,wasm32-unknown-unknown%{?with_wasi:,wasm32-wasi}}
# 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%{?gcc_version} != 0
%define rust_linker gcc-%{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 wasm32
%bcond_without wasi
%else
%bcond_with wasm32
%bcond_with wasi
%endif
%else
%bcond_with wasm32
%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
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
# 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
Patch1: ppc64le-float.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
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%{?gcc_version} != 0
BuildRequires: gcc%{gcc_version}-c++
Requires: gcc%{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
%if %{with wasm32}
BuildRequires: nodejs-default
%endif
# 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
%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
# 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%{?gcc_version} != 0
cat > .env.sh <<EOF
export CC="/usr/bin/gcc-%{gcc_version}"
export CXX="/usr/bin/g++-%{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-wasi.wasi-root=%{_datadir}/wasi-sysroot/ } \
%{?with_wasi: --set target.wasm32-wasi.ar=%{_builddir}/rustc-%{version}-src/build/%{rust_triple}/llvm/bin/llvm-ar } \
%{?with_wasi: --set target.wasm32-wasi.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 wasm32}
%dir %{rustlibdir}/wasm32-unknown-unknown
%dir %{rustlibdir}/wasm32-unknown-unknown/lib
%{rustlibdir}/wasm32-unknown-unknown/lib/*.rlib
%if %{with wasi}
%dir %{rustlibdir}/wasm32-wasi
%dir %{rustlibdir}/wasm32-wasi/lib
%dir %{rustlibdir}/wasm32-wasi/lib/self-contained
%{rustlibdir}/wasm32-wasi/lib/*.rlib
%{rustlibdir}/wasm32-wasi/lib/self-contained/*.o
%{rustlibdir}/wasm32-wasi/lib/self-contained/*.a
%endif
%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.83.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)]