Sync from SUSE:SLFO:Main rust1.81 revision 16d1dea4c1354add88aa9d4c32fe8e42

This commit is contained in:
Adrian Schröter 2024-09-20 16:10:58 +02:00
commit a1ea514cc1
31 changed files with 1376 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

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.81.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-----
wsFcBAABCgAQBQJm2dCsCRCFq5bm+hvl/gAA54QQANlyN0rS1QNUhix5OSoArIXm
d3y8TKh8QDHmRFSy0htdotQalAbc8tSduMpHup8+vIpGd6ZHniB00+CJ6FrvFx4G
VDt8eGSKsBPllLssoRyO3F0whjaIQKmWz6G9cC5BWV1o6tWOcmcAiG4R5TWNioeL
0dsZoMg7HgVUpzR6bZ1G1F++iYefO1QsJ6LjHMkMCi9pueAjXnwGYgTzd5IMUPzo
xiwJvgHrsGzBq0VjOOm6PTh4meGmeZByYQeuN5mXtj6LOTtvUYjgChJjMcghoYQW
ZA+cf2vOJMJPkqh35Y/+bA0XW/9vmRVfj/U1OqOfsnT4gY0WmC30UbWYvOcNhQ+C
bScru/LNWhNRrZU96CQ/4zZpMameoAJrS2YcCcYDJHv8l9X5Uc1sczoRLH2V5QoR
KZ3zG+SVk1v2oPcN6K36bcX75ajT/hHHB+1uzrvoMITWoudv1tB51+7/OAXEqbEJ
/yI4rCbTjPUhrX68NXFTZfFbz+t/LGkpn5igVYATrExTZ4TAXpQwujvYBgfkzkjM
rsNBsDuWkxN+awfqtkJp+TxJ+3atOuznVm+XuJ9vb9Idyrns4eTcZle54NNsBRDq
Daqqk+0AmEM5KmA+R86KvK5ZjPGh1qxYYeaQPrDKbpvrWS2YhSid/I7//6kAloZc
THEofCM4WYESrINR4y40
=jtiE
-----END PGP SIGNATURE-----

BIN
rust-1.81.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-----
wsFcBAABCgAQBQJm2dCuCRCFq5bm+hvl/gAAKr8P/1TbLf8k3Z3mKpwJyAJUd9IY
SwVvRtHxrJ78mrdyobcRazGuG5wFLmRmqCk5YvA1f8y8WAF+6t5Dn86Xwq+OwvhL
inEfmJ3xJuCgB1tbK2MxsFX85I92TE30ySmMtE8Zzjwy+0GQY7GpHns+1YGUOHrk
BY9Uj8VWy/9s9CtnufjQ97iiMvp0kKb+5Ga+Ya+HB23+jhbsjReWNUGhbkfK44X7
Ao651D4LXKiIHkpw7ZoWYZqg5O6Nnnvz9oPUHZMLDc7Ksz3hVN9iJbs14UdwZ5rs
LHLbRbuEdrE2sxfaInfbdeBFMmcUXNpV0CoolGB5ewOp3T/JvilkIzZg2o5zM/H7
OyxCc5rwz0mikOFBiIkTEvg0cZ8GytRkJjkApfJG7e1BxxI5eW3pDok4SjBaUtdw
zYdduSWNVHA+PpHVkjZjzqTlKgIafMEIfy4lYcJC4Vch9LiTTg0oZrz60lEF09t2
m67187HmKFt+cPcMkrfmTf+F01EePy/NYx96l8CzpAfhpCkZoTXWsd+DKP+WYgMV
RtPmhljJnwWtMEUQGqaUjs19dHKqu3Inxd/C+cpCVQWIxR4NHZIkZwRyWnKImeVM
CWbChSJ99CK9m53ASGjTd8PkxLfmcZAg6jocbCtJWnRg638dqVHzGh7KEsdTTaAX
DEnnli5ziV74+WISvvyT
=BBqo
-----END PGP SIGNATURE-----

BIN
rust-1.81.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-----
wsFcBAABCgAQBQJm2dCuCRCFq5bm+hvl/gAAMp0P/iKOWQoSPpVmtxbbuc6NB5TQ
KzNNA+CSm357i44B50H1dLo8hxFsGu2Svm8p1NmWiuZrSIf4Ov+nC4bgqfQcrrFm
c1XluX8cn8XGISslonJ8Ug9o7G31E1LHaOe//K3OxwZPRFnWBvQOn+0PA+b9ONh0
5KhKwtkmlvfU2fQIireQtNb9Da+imY9Rl7sAvplneAxp7eOj8xRbeOxfsWUoAFVx
PSIi3+orVUAloPKZPb5szLkx4N4vadYltCyY5kVBkoujNClnaAd6g9IsjU6D9fma
U6lnL4YLljNXgk1eUo7TdHlJuaiWrfB6Fj/pd3XrIbpOrb+ZaLLSL4pcAfwfrWWQ
JfQVRo+d9tBrlNXGN08rQZj4sSeG7cKMHp3S4CIHwE8HItosvATIU13lRdYdw5nz
P2M/f0Y7ou7leCEb3t8Lkx6+NoQe1/BgLW4ZMEo/Q9dlKUjJUHGlVGXYYIrR+Mri
vMIiaAcmgOsoqDmeixNuqlNb5UQ9NsDDrJ0yXvXp9JHGuRpWXGiASQfL5VXgQjwC
uh4aN4l0wRrJiBTOoqffiANYL2Li3UkP815xTLypuBCQvCbPnXzX83huJzzt/ksm
hmI3D7YYbSVCeIiZjgxA1CYeBTCTTlWgB9FuQAuAu2Aa3BoJ6tjlBn9EFzsJNjlM
u+BY99CSjSXgASfJAmrZ
=vfxd
-----END PGP SIGNATURE-----

BIN
rust-1.81.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-----
wsFcBAABCgAQBQJm2dCsCRCFq5bm+hvl/gAACzkP/2nXmduo7F9RtC2CebPAi+7T
P+g3HHWy9A8lvYurGrYVZlIav/Xa77Sqhmv7apWgHIYkzh/A/kjnfl2DyYK/s6ho
9hygPk9PkZr07Hxho4Ff2JYX7zpMaFrktQvQWjTJ9CMHu+69dzvws3xa9T9OwvjS
2G/h3etLKR9HdE8Yb2hpIOEdfMSRQsTMU4VCnOXlB1OhBzX0bkBDAE0uUsgLp/Du
lvNfwHfpTw7hDoYWz+gms/e/oTQhruzrfK/55/QHXu3XSeCycUhxxYwX8IKK/Hg9
rJTV79PvYMFiRWIPTESg4IyfcO15t333z7dsjWLThXLvq6hav3UHG2AqUET6CnG7
MZCG7DbDW7IN2agjnmJSpPpupE4CyJ8Ec9MM5KZkW2VI2bwrazy4g8dV2HP6B8XY
y2X6jYMvZAdNedzOqWjRrbAq7eib4BhaSVjJ5HFotPt6is1w442HmNV5vfYnLAyY
rTR+N+B5/sPKVOPp2dPalOVLg5/A9xF91Wjsfic+WnAFWB1cFu57SAP3tGkRGtiE
DxAcPYFozyVPx/3K/CAopi285Zts0VanoGNKubWTycqiDiHKu6z/Js9z8Fq/KdO/
KsmhPSzRkrET+JgjT76CE5PcytB2L75MLo0EnMyjEHQsTV32E5abp+tFLHXjGN6J
qZmgBkJu1YOi+t8KgEZW
=FsID
-----END PGP SIGNATURE-----

BIN
rust-1.81.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-----
wsFcBAABCgAQBQJm2dCsCRCFq5bm+hvl/gAAtzwP/20p/0QyQHFwurWe3IBTGMdn
ZxcUfFZxkDaBa8moOpJBdxsWTW2U2bagr/bWn1SZYKgu9592muuPACOttBA/b7ep
FGD8y5dIa+m2RJd8sRaCsWP2PtBtQvJDeGtxOx2ovRbh4g9/noJnS7WNpTebR0A2
OYOmr/VrqbXYK0oK8GJJ8BDYdLyXXqmjBPVzFZOaFAN6eRd4LiSDLTusg7QbgFD8
K4u1gfwcSdS5AQVM78IhAJ2bafvLJfhGVs1W8gErDBa2PnFRoMOisgG3qh4LCvji
qfDpvDElEGG87SAvh4shryXLsVaQu7tDZoI7qx4TlRHjTnUf6xyy4tcrVbXnCxhN
ACsPhvXMHavz7yCx249eQNPnO8YCk7Vk+bVgg8xjUD8mketb9L0yG3vTTZX0bms/
mIRLYpLIk+v9dizhbTbmtiB6HxvcxqEfqVnqpw5MjYmBoX/lZrNQHwHH7uvI+jLJ
UUN0A2pkm4XcBGx621GYLGdJWhSGevbwctEWc91ja3SCesHWRz1FFCQNj/j+xMfQ
eCHbrDugox17N+R51TIca98CE3EAcjPZ9CGZnFBVbATpWuTMEdpVUax/gQhv+0Jw
3PtVnnv5vyHmy9ftreixrVnWJXgMVWAnC3q7r1gDwCfMo/m6CrEDTShFeIsHzjo2
CFskiy3nk1Y+KRA42fjq
=cGbq
-----END PGP SIGNATURE-----

BIN
rust-1.81.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-----
wsFcBAABCgAQBQJm2dCsCRCFq5bm+hvl/gAA/+8P/320cFizAXdoUXYg3JeXBQBp
7LdP+xlrY7Uq32KpqljGqhiF49xfHzjCSPNdOyS+zvyonjpjfWRzT4Lb/uRfPcsC
vfYejE6Fp/AlxT7F/Ml47lQg4oVNqwq0yidBvUC/QeFhrf44pk2l8tyanwQ8sCF+
2Tp1RkclRt/OvfhXqEdY5yhwDbS2WiAy3u0yIA55oeHMgqJo8WezGw4Ktcqq/lv7
Zk5GuaThmrh1iiApgSTZYtdQGjRMNJaITUs5+8vYTpBNML7aiVwNZpB5VsosLD2v
OI+sFNRX5KCsVUURQ/FTDvg0tlYX0pGXThKdwcNkL/8iC/SmlKattZLLG/+0z7EZ
66hmldRZTeVIFBFSz6pDuGV0aO4OjGtU4VyfDp/COnGaqifW6r4hFz5S7xXSJxuC
4mGHj81fipUrgwDHlaCMbeKyo1ezCyD32i+ftCFBEzBg/iLKvynftRZjawxEbHVP
hnLo/9jmR0LjoabgblHUlGrN2i774PudBWxQDil4vwQB+2JUkben2nDtJwEovTQB
Z0+VNin20P9NK+kyG3QXFwvUDQAYbrw6yYfLyiDvN740E5sYv5LBaTK0hndA3Ybo
sTorFLTTFc17hpSHAfGBk1xXj0N27EnQeuX2YTg1Tymqtxy/oIhqICtXBt7/wgt3
Zh9Pkjw8mEI/gIcy/Ol5
=thwE
-----END PGP SIGNATURE-----

BIN
rust-1.81.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-----
wsFcBAABCgAQBQJm2dCsCRCFq5bm+hvl/gAABmkP/3+84TUQmxiskfFfJLNr2ELN
MODvSSWKAsm5a5V/qZBb2U4Coema74m4Ahpl344QY/g1mUo4j+6RktFb1UfbHtft
MTMlQyAmFPbW2hNUNKLTQokHb/ZAGPniEnkIqTQS+zK4vs06GKomqK/+G3xv1czl
X8mcivCCLvTSAZTXz7IehxMcYz+1m8Tb4cJ4CBKGiiD6KHj/xF61Zc5q6Ug42XH1
w3VkeBxtuiijI9XrDBXcHYxOyn3k6OfFbdJJ7CpQTS14svQnO2L60zVCYnLDStrX
vOUAlr2btkLQIFL80wTgAX1I0qFFcZMj3DNUE0hFp2/gfHF3Kic/IKIh0TduGQNw
aNfcjkPwEnYOLNgLXzFTNmClixprTMzGmCEja3m93K/b4Zn8Tdyv9+3wm/LBSYGK
xbFFjnPYMb2hR9ZMfiHVqRVm/UibyAjaxQNMRjDi2WonV1IvVXlx2u6trJ93TsGC
m0Sb2cls5nZteNWIuYYA35JRXrpxDrPyOsm/xpoZTa9Kf7VY5CO/RUsFYF4vGskZ
h/PxtbDIj31DhDDQRKU4ulf4FbuKA5oZDh9BseYuJFn9rq/vWZmWEx1I73MsEAq3
5SecQxClB2uwPDBtMkjc21wdWyozpoDRZ5G4gRe5i0kpt4BTCiHcSDfH6oB1CrXx
3udgD16XLRxCQ7bd5+In
=lcyH
-----END PGP SIGNATURE-----

BIN
rust-1.81.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-----
wsFcBAABCgAQBQJm2dCqCRCFq5bm+hvl/gAAlk0P/1lRHp+6OpTOShRKG1SVYZm+
HX9iYVoXoYQ8MRLwdlFJ2OKcqZJR6kKgqSJF/RuFth+PZLTUggRtGhmWGvPQ207A
HPl9u1I8EaHiOxQeF1gFDS5CQ80y4cKSuKMl9rIQaRUDni5Kaslmjb90d6m9u3Zb
PszFkEZt91MnMM/qFh0gClqNE1MUhQFn3iT9uki/WL5mrmgK1+CvNM/96lV34pkk
OKmMWUmtnG1KBtqv0ituuIPMkhC1HXgIy1eUj9BAp8BFN6mObQSDnU1MVztVwxUK
Y7SmkiRjcCL8gXGzL8xspDzJNIf0gSOlK2j65s3pmH2NKD+1QrPYoB7hXMncirCt
Bz+3zmqIKD2VWpYxPP3Yi7PCQrJeXB86upN4r3dBpHAJptj9xvXTyhV1r2MTcxBa
FL8qvLWdifvR7U+B6YaIvyxPBg+Vu2a2j+lkyzFPeJA6wc9FINlfxBbrGXodADLk
k95dufnvwye6BJ7mc/Uu3qpaFN9ERQ5OLGWxzg6He2RolAGv6OOnC7CVRtlaBvU7
r1BJWpQ/4rKwsTOOgJrkhzhVxg44oMrzenoSWfMk7MvEqF6V0QTU3Ey85bG8OWGr
BVh2vXiDXwJL2gxK9owajINg3vu6cC2caKe7Lro7oAlAWf5o14c8v8br18SDv481
qnRsuke5LlG6LoRLrXmf
=452n
-----END PGP SIGNATURE-----

BIN
rust-1.81.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-----
wsFcBAABCgAQBQJm2dCrCRCFq5bm+hvl/gAAJhMP+waMSzWWB4yavz9wQThj0zVD
MWg6W3Jcp/oVyzg/ozsGS0lwWpEbMjj7h3u6MwpWRBJ5fj30w9/v5dhDyVG8efwk
TLjeUR4MEud8AEktBtWuXw8YlejPgUjQV+mOZ7B5SLlrm15It9CkCBw7HnxySQUK
d71LSGRKlEfwuVrLpGMjY8edOnc6TJ4XmVBC3bPqurfFrv6n9q7sL6xlcwDtN9IQ
YFNMVPPjq2cKqLjeY53G6GtrReTJ6UB8vXMiNt8PNRGqdOQTV8w2M02XMaAaNCtG
oXioLbtYW/kD7+GlZRwz1oqpPdPmdZ8MA85CGdNJsZ1HEw+0NyNlZnl/iuslDE+4
0kvxzy4geMoCCGpZ8gT7rO9R0X6WtaHu1xJqVDew65YfxIBxA3BA1kRREiCXncjZ
au7WxwmOkMlk6vmkOnlqqxw041I4BQvSPrTsifYv1oCWnMhKSNCZn0Rc9I6q6niz
HEi1i0aUEh1v9M+a6kU9FQ45jprwTkk1av7CzAV4ki5XKfIYLcWi6mMgMC8kfxd8
w36eMRMPbzPfVzH42s2a2WWIu6lpECceqqC6t+4FHlIEUw9bZxKKURlOQtVICRLD
bapZ4p915/tdgNOZX5A2DkHILw5TSJ4dLmoRIwtG6qdR6vsbXS2oPDlz52IuSwGi
E4+ST6kgLpXRly78Titd
=UD1P
-----END PGP SIGNATURE-----

BIN
rust-1.81.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-----
wsFcBAABCgAQBQJm2dCsCRCFq5bm+hvl/gAAoDIQAMtLnyaXLZXfdP7ZF/OnhJwQ
+zlcjisWAzgZP0BmFDX4GcJT5YBqvdaBBhFD5/Uc5d8K6410hMTp3IrIwPI47YcV
i/fRhBuCWAMh95VbrT2Dg2IG0a4crPm9E8jPjMGivpqsV16/A6WbLPJ8d+zkbbW+
whGs6u541PF/qsSCMOuEu+DObH3FRPCfii0O1AN+aivuZxDyzQ3sfdt9r5OYdBZx
clZWIBlXR6RTGnGNxGLbLMviODeQwJPSEqVgGV70eA4CSFyvDSH5LayB1otbaO6e
JmwR1QP22lvvDokw2nsRhpjqQNgZdDK3+F5alJLtHNjU5XFRjgZeLUNGK53lSsvj
WgTm1LMAwbIVOH/AeVlHA50+v+sRfgeXFNvSwrMHdYpqNT9XM8RyJ9Yu05y8zlrX
QlOMl3aRTArtMWIPtGxKUM4vjqMCPCRu3GQvrBP/syPv1O2hAVbqOuHaYRqJcrHX
hGcjtRcaUeICieuydRFZajfjAlPbDBaGt2RQT6Ud/Qs2Kx7Plmuoy+UsnjjIxxfZ
dfieiZBLXL0qnAqWtauJBROMW6/icGElBdhE4w6YXU+0KrL5+k+1botfEajvdX83
C29rsGZzYt9ecYkhvSPWEEpJ5vPu+4RtRpS/hafiI0glZV5gJRxym2FgLIHyN5CH
KDpsgWI2B3jXf5YHJJUO
=m3/x
-----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.81-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 .*")

103
rust1.81.changes Normal file
View File

@ -0,0 +1,103 @@
-------------------------------------------------------------------
Tue Sep 10 05:44:36 UTC 2024 - William Brown <william.brown@suse.com>
- Resolve wasm32-wasi build issues
-------------------------------------------------------------------
Mon Sep 9 01:37:39 UTC 2024 - Xiaoguang Wang <xiaoguang.wang@suse.com>
Version 1.81.0 (2024-09-05)
==========================
Language
--------
- [Abort on uncaught panics in `extern "C"` functions.](https://github.com/rust-lang/rust/pull/116088/)
- [Fix ambiguous cases of multiple `&` in elided self lifetimes.](https://github.com/rust-lang/rust/pull/117967/)
- [Stabilize `#[expect]` for lints (RFC 2383),](https://github.com/rust-lang/rust/pull/120924/) like `#[allow]` with a warning if the lint is _not_ fulfilled.
- [Change method resolution to constrain hidden types instead of rejecting method candidates.](https://github.com/rust-lang/rust/pull/123962/)
- [Bump `elided_lifetimes_in_associated_constant` to deny.](https://github.com/rust-lang/rust/pull/124211/)
- [`offset_from`: always allow pointers to point to the same address.](https://github.com/rust-lang/rust/pull/124921/)
- [Allow constraining opaque types during subtyping in the trait system.](https://github.com/rust-lang/rust/pull/125447/)
- [Allow constraining opaque types during various unsizing casts.](https://github.com/rust-lang/rust/pull/125610/)
- [Deny keyword lifetimes pre-expansion.](https://github.com/rust-lang/rust/pull/126762/)
Compiler
--------
- [Make casts of pointers to trait objects stricter.](https://github.com/rust-lang/rust/pull/120248/)
- [Check alias args for well-formedness even if they have escaping bound vars.](https://github.com/rust-lang/rust/pull/123737/)
- [Deprecate no-op codegen option `-Cinline-threshold=...`.](https://github.com/rust-lang/rust/pull/124712/)
- [Re-implement a type-size based limit.](https://github.com/rust-lang/rust/pull/125507/)
- [Properly account for alignment in `transmute` size checks.](https://github.com/rust-lang/rust/pull/125740/)
- [Remove the `box_pointers` lint.](https://github.com/rust-lang/rust/pull/126018/)
- [Ensure the interpreter checks bool/char for validity when they are used in a cast.](https://github.com/rust-lang/rust/pull/126265/)
- [Improve coverage instrumentation for functions containing nested items.](https://github.com/rust-lang/rust/pull/127199/)
- Target changes:
- [Add Tier 3 `no_std` Xtensa targets:](https://github.com/rust-lang/rust/pull/125141/) `xtensa-esp32-none-elf`, `xtensa-esp32s2-none-elf`, `xtensa-esp32s3-none-elf`
- [Add Tier 3 `std` Xtensa targets:](https://github.com/rust-lang/rust/pull/126380/) `xtensa-esp32-espidf`, `xtensa-esp32s2-espidf`, `xtensa-esp32s3-espidf`
- [Add Tier 3 i686 Redox OS target:](https://github.com/rust-lang/rust/pull/126192/) `i686-unknown-redox`
- [Promote `arm64ec-pc-windows-msvc` to Tier 2.](https://github.com/rust-lang/rust/pull/126039/)
- [Promote `loongarch64-unknown-linux-musl` to Tier 2 with host tools.](https://github.com/rust-lang/rust/pull/126298/)
- [Enable full tools and profiler for LoongArch Linux targets.](https://github.com/rust-lang/rust/pull/127078/)
- [Unconditionally warn on usage of `wasm32-wasi`.](https://github.com/rust-lang/rust/pull/126662/) (see compatibility note below)
- Refer to Rust's [platform support page][platform-support-doc] for more information on Rust's tiered platform support.
Libraries
---------
- [Split core's `PanicInfo` and std's `PanicInfo`.](https://github.com/rust-lang/rust/pull/115974/) (see compatibility note below)
- [Generalize `{Rc,Arc}::make_mut()` to unsized types.](https://github.com/rust-lang/rust/pull/116113/)
- [Replace sort implementations with stable `driftsort` and unstable `ipnsort`.](https://github.com/rust-lang/rust/pull/124032/) All `slice::sort*` and `slice::select_nth*` methods are expected to see significant performance improvements. See the [research project](https://github.com/Voultapher/sort-research-rs) for more details.
- [Document behavior of `create_dir_all` with respect to empty paths.](https://github.com/rust-lang/rust/pull/125112/)
- [Fix interleaved output in the default panic hook when multiple threads panic simultaneously.](https://github.com/rust-lang/rust/pull/127397/)
Stabilized APIs
---------------
- [`core::error`](https://doc.rust-lang.org/stable/core/error/index.html)
- [`hint::assert_unchecked`](https://doc.rust-lang.org/stable/core/hint/fn.assert_unchecked.html)
- [`fs::exists`](https://doc.rust-lang.org/stable/std/fs/fn.exists.html)
- [`AtomicBool::fetch_not`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicBool.html#method.fetch_not)
- [`Duration::abs_diff`](https://doc.rust-lang.org/stable/core/time/struct.Duration.html#method.abs_diff)
- [`IoSlice::advance`](https://doc.rust-lang.org/stable/std/io/struct.IoSlice.html#method.advance)
- [`IoSlice::advance_slices`](https://doc.rust-lang.org/stable/std/io/struct.IoSlice.html#method.advance_slices)
- [`IoSliceMut::advance`](https://doc.rust-lang.org/stable/std/io/struct.IoSliceMut.html#method.advance)
- [`IoSliceMut::advance_slices`](https://doc.rust-lang.org/stable/std/io/struct.IoSliceMut.html#method.advance_slices)
- [`PanicHookInfo`](https://doc.rust-lang.org/stable/std/panic/struct.PanicHookInfo.html)
- [`PanicInfo::message`](https://doc.rust-lang.org/stable/core/panic/struct.PanicInfo.html#method.message)
- [`PanicMessage`](https://doc.rust-lang.org/stable/core/panic/struct.PanicMessage.html)
These APIs are now stable in const contexts:
- [`char::from_u32_unchecked`](https://doc.rust-lang.org/stable/core/char/fn.from_u32_unchecked.html) (function)
- [`char::from_u32_unchecked`](https://doc.rust-lang.org/stable/core/primitive.char.html#method.from_u32_unchecked) (method)
- [`CStr::count_bytes`](https://doc.rust-lang.org/stable/core/ffi/c_str/struct.CStr.html#method.count_bytes)
- [`CStr::from_ptr`](https://doc.rust-lang.org/stable/core/ffi/c_str/struct.CStr.html#method.from_ptr)
Cargo
-----
- [Generated `.cargo_vcs_info.json` is always included, even when `--allow-dirty` is passed.](https://github.com/rust-lang/cargo/pull/13960/)
- [Disallow `package.license-file` and `package.readme` pointing to non-existent files during packaging.](https://github.com/rust-lang/cargo/pull/13921/)
- [Disallow passing `--release`/`--debug` flag along with the `--profile` flag.](https://github.com/rust-lang/cargo/pull/13971/)
- [Remove `lib.plugin` key support in `Cargo.toml`. Rust plugin support has been deprecated for four years and was removed in 1.75.0.](https://github.com/rust-lang/cargo/pull/13902/)
Compatibility Notes
-------------------
* Usage of the `wasm32-wasi` target will now issue a compiler warning and request users switch to the `wasm32-wasip1` target instead. Both targets are the same, `wasm32-wasi` is only being renamed, and this [change to the WASI target](https://blog.rust-lang.org/2024/04/09/updates-to-rusts-wasi-targets.html) is being done to enable removing `wasm32-wasi` in January 2025.
* We have renamed `std::panic::PanicInfo` to `std::panic::PanicHookInfo`. The old name will continue to work as an alias, but will result in a deprecation warning starting in Rust 1.82.0.
`core::panic::PanicInfo` will remain unchanged, however, as this is now a *different type*.
The reason is that these types have different roles: `std::panic::PanicHookInfo` is the argument to the [panic hook](https://doc.rust-lang.org/stable/std/panic/fn.set_hook.html) in std context (where panics can have an arbitrary payload), while `core::panic::PanicInfo` is the argument to the [`#[panic_handler]`](https://doc.rust-lang.org/nomicon/panic-handler.html) in no_std context (where panics always carry a formatted *message*). Separating these types allows us to add more useful methods to these types, such as `std::panic::PanicHookInfo::payload_as_str()` and `core::panic::PanicInfo::message()`.
* The new sort implementations may panic if a type's implementation of [`Ord`](https://doc.rust-lang.org/std/cmp/trait.Ord.html) (or the given comparison function) does not implement a [total order](https://en.wikipedia.org/wiki/Total_order) as the trait requires. `Ord`'s supertraits (`PartialOrd`, `Eq`, and `PartialEq`) must also be consistent. The previous implementations would not "notice" any problem, but the new implementations have a good chance of detecting inconsistencies, throwing a panic rather than returning knowingly unsorted data.
* [In very rare cases, a change in the internal evaluation order of the trait
solver may result in new fatal overflow errors.](https://github.com/rust-lang/rust/pull/126128)
Internal Changes
----------------
These changes do not affect any public interfaces of Rust, but they represent
significant improvements to the performance or internals of rustc and related
tools.
- [Add a Rust-for Linux `auto` CI job to check kernel builds.](https://github.com/rust-lang/rust/pull/125209/)

785
rust1.81.spec Normal file
View File

@ -0,0 +1,785 @@
#
# spec file for package rust1.81
#
# 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.81
%global version_current 1.81.0
%global version_previous 1.80.1
# This has to be kept lock step to the rust version.
# -- will be 18 for 1.78
%global llvm_version 18
%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.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 some situations the llvm provided on the platform may not work.
# we add these conditions here.
#
# ⚠️ SLE/LEAP 15.3 LLVM is too old!
# ⚠️ 1.59 breaks codegen with distro llvm!!!
# Use bundled llvm instead.
# For details see boo#1192067
%bcond_without bundled_llvm
# === 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
# 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} <= 150200
# In these distros cmake is 2.x, or 3.X < 3.13, so we need cmake3 for building llvm.
BuildRequires: cmake3 > 3.13.4
%else
BuildRequires: cmake > 3.13.4
%endif
# To build rust-lld
BuildRequires: ninja
%if %{without bundled_llvm}
# Use distro provided LLVM on Tumbleweed, but pin it to the matching LLVM!
# For details see boo#1192067
BuildRequires: llvm%{llvm_version}-devel
BuildRequires: clang%{llvm_version}
Requires: lld%{llvm_version}
%endif
%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 %{without bundled_llvm}
# For FileCheck
BuildRequires: llvm%{llvm_version}-devel
%endif
%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.
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
# Find compiler-rt
%if %{without bundled_llvm}
PATH_TO_LLVM_PROFILER=`echo %{_libdir}/clang/??/lib/linux/libclang_rt.profile-*.a`
%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} \
%{!?with_bundled_llvm: --llvm-root=%{_prefix} --enable-llvm-link-shared} \
%{?with_bundled_llvm: --disable-llvm-link-shared --set llvm.link-jobs=0} \
%{?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 \
%{!?with_bundled_llvm: --set target.%{rust_triple}.profiler=${PATH_TO_LLVM_PROFILER}} \
%{?with_bundled_llvm: --set target.%{rust_triple}.profiler=true} \
%{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
%if %{with bundled_llvm}
# 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
%endif
# 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.
%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 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.81.0-src.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.