commit a1ea514cc19d25398b96bde52144a667031cb4603963fb0286d52f03976010a8 Author: Adrian Schröter Date: Fri Sep 20 16:10:58 2024 +0200 Sync from SUSE:SLFO:Main rust1.81 revision 16d1dea4c1354add88aa9d4c32fe8e42 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -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 diff --git a/README.suse-maint b/README.suse-maint new file mode 100644 index 0000000..6b3cc8f --- /dev/null +++ b/README.suse-maint @@ -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--aarch64-unknown-linux-gnu.tar.xz +- rust--armv7-unknown-linux-gnueabihf.tar.xz +- rust--i686-unknown-linux-gnu.tar.xz +- rust--powerpc64le-unknown-linux-gnu.tar.xz +- rust--powerpc64-unknown-linux-gnu.tar.xz +- rust--s390x-unknown-linux-gnu.tar.xz +- rust--x86_64-unknown-linux-gnu.tar.xz + +*Compiler source code* - From the same page, but now in the "Source +code" section, download this: + + rustc--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 + diff --git a/_constraints b/_constraints new file mode 100644 index 0000000..afb4dab --- /dev/null +++ b/_constraints @@ -0,0 +1,27 @@ + + + + + + 6 + + 4 + + + + 30 + + + + + + + aarch64 + + + + 12 + + + + diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..fcc7b97 --- /dev/null +++ b/_multibuild @@ -0,0 +1,3 @@ + + test + diff --git a/_service b/_service new file mode 100644 index 0000000..5102c40 --- /dev/null +++ b/_service @@ -0,0 +1,9 @@ + + + enable + + + enable + enable + + diff --git a/ignore-Wstring-conversion.patch b/ignore-Wstring-conversion.patch new file mode 100644 index 0000000..940139b --- /dev/null +++ b/ignore-Wstring-conversion.patch @@ -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); + } + diff --git a/rust-1.81.0-aarch64-unknown-linux-gnu.tar.xz b/rust-1.81.0-aarch64-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000..f8c4c1a --- /dev/null +++ b/rust-1.81.0-aarch64-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5cd65b0a2724e4193a5c4ba79f0687f8c11d52c2d58ee35bc7ce5958a3cc8dc2 +size 230690876 diff --git a/rust-1.81.0-aarch64-unknown-linux-gnu.tar.xz.asc b/rust-1.81.0-aarch64-unknown-linux-gnu.tar.xz.asc new file mode 100644 index 0000000..78b4cc6 --- /dev/null +++ b/rust-1.81.0-aarch64-unknown-linux-gnu.tar.xz.asc @@ -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----- diff --git a/rust-1.81.0-arm-unknown-linux-gnueabihf.tar.xz b/rust-1.81.0-arm-unknown-linux-gnueabihf.tar.xz new file mode 100644 index 0000000..368adb2 --- /dev/null +++ b/rust-1.81.0-arm-unknown-linux-gnueabihf.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b08548dc917e910db0aa394315b57d5083a112fcdd07a8a02300b8dd606e3c5d +size 192357588 diff --git a/rust-1.81.0-arm-unknown-linux-gnueabihf.tar.xz.asc b/rust-1.81.0-arm-unknown-linux-gnueabihf.tar.xz.asc new file mode 100644 index 0000000..115a48a --- /dev/null +++ b/rust-1.81.0-arm-unknown-linux-gnueabihf.tar.xz.asc @@ -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----- diff --git a/rust-1.81.0-armv7-unknown-linux-gnueabihf.tar.xz b/rust-1.81.0-armv7-unknown-linux-gnueabihf.tar.xz new file mode 100644 index 0000000..335cd32 --- /dev/null +++ b/rust-1.81.0-armv7-unknown-linux-gnueabihf.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c974ae054ee293e8776b4dd6738487a973e9cc9a813cb87ff01158d785564307 +size 197884288 diff --git a/rust-1.81.0-armv7-unknown-linux-gnueabihf.tar.xz.asc b/rust-1.81.0-armv7-unknown-linux-gnueabihf.tar.xz.asc new file mode 100644 index 0000000..e86ec68 --- /dev/null +++ b/rust-1.81.0-armv7-unknown-linux-gnueabihf.tar.xz.asc @@ -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----- diff --git a/rust-1.81.0-i686-unknown-linux-gnu.tar.xz b/rust-1.81.0-i686-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000..050e849 --- /dev/null +++ b/rust-1.81.0-i686-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b8e1a2889c574d235b210ae7ac8dd0696ea845fdc3707d67955d53ad4c0de027 +size 224016868 diff --git a/rust-1.81.0-i686-unknown-linux-gnu.tar.xz.asc b/rust-1.81.0-i686-unknown-linux-gnu.tar.xz.asc new file mode 100644 index 0000000..c83e7c6 --- /dev/null +++ b/rust-1.81.0-i686-unknown-linux-gnu.tar.xz.asc @@ -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----- diff --git a/rust-1.81.0-powerpc-unknown-linux-gnu.tar.xz b/rust-1.81.0-powerpc-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000..7bf24be --- /dev/null +++ b/rust-1.81.0-powerpc-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d5febf28380b9c25f08e6f9b834778ace9ecb54b892481985e1e8692080c617 +size 213304904 diff --git a/rust-1.81.0-powerpc-unknown-linux-gnu.tar.xz.asc b/rust-1.81.0-powerpc-unknown-linux-gnu.tar.xz.asc new file mode 100644 index 0000000..9f54f31 --- /dev/null +++ b/rust-1.81.0-powerpc-unknown-linux-gnu.tar.xz.asc @@ -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----- diff --git a/rust-1.81.0-powerpc64-unknown-linux-gnu.tar.xz b/rust-1.81.0-powerpc64-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000..631e18a --- /dev/null +++ b/rust-1.81.0-powerpc64-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ff9c458f882b19050083c1f4cdd1a639dd8014b6c9c658e08506c7f3449af33 +size 210257620 diff --git a/rust-1.81.0-powerpc64-unknown-linux-gnu.tar.xz.asc b/rust-1.81.0-powerpc64-unknown-linux-gnu.tar.xz.asc new file mode 100644 index 0000000..7eb6927 --- /dev/null +++ b/rust-1.81.0-powerpc64-unknown-linux-gnu.tar.xz.asc @@ -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----- diff --git a/rust-1.81.0-powerpc64le-unknown-linux-gnu.tar.xz b/rust-1.81.0-powerpc64le-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000..11ef860 --- /dev/null +++ b/rust-1.81.0-powerpc64le-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aca2ff839c6ac288ee037926ec15d78315977a5945f515505db0b248d7c3094c +size 224307656 diff --git a/rust-1.81.0-powerpc64le-unknown-linux-gnu.tar.xz.asc b/rust-1.81.0-powerpc64le-unknown-linux-gnu.tar.xz.asc new file mode 100644 index 0000000..9352e2a --- /dev/null +++ b/rust-1.81.0-powerpc64le-unknown-linux-gnu.tar.xz.asc @@ -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----- diff --git a/rust-1.81.0-riscv64gc-unknown-linux-gnu.tar.xz b/rust-1.81.0-riscv64gc-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000..ffaba07 --- /dev/null +++ b/rust-1.81.0-riscv64gc-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc4c50240344882e1c192038cc04daea760792c6aaafa928ae1058f6f4cda437 +size 223006516 diff --git a/rust-1.81.0-riscv64gc-unknown-linux-gnu.tar.xz.asc b/rust-1.81.0-riscv64gc-unknown-linux-gnu.tar.xz.asc new file mode 100644 index 0000000..8b5da15 --- /dev/null +++ b/rust-1.81.0-riscv64gc-unknown-linux-gnu.tar.xz.asc @@ -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----- diff --git a/rust-1.81.0-s390x-unknown-linux-gnu.tar.xz b/rust-1.81.0-s390x-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000..73f549b --- /dev/null +++ b/rust-1.81.0-s390x-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d66614297fb01e66310f6842ab9ac0813ea4d340d88c0205880729b99362dcb +size 212322092 diff --git a/rust-1.81.0-s390x-unknown-linux-gnu.tar.xz.asc b/rust-1.81.0-s390x-unknown-linux-gnu.tar.xz.asc new file mode 100644 index 0000000..ff5e934 --- /dev/null +++ b/rust-1.81.0-s390x-unknown-linux-gnu.tar.xz.asc @@ -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----- diff --git a/rust-1.81.0-x86_64-unknown-linux-gnu.tar.xz b/rust-1.81.0-x86_64-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000..3aeffda --- /dev/null +++ b/rust-1.81.0-x86_64-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a9ee8caaa18a3e433fef93cea8a55dc1ebd478ed761b2fef69d4565f9d00e7f +size 170439044 diff --git a/rust-1.81.0-x86_64-unknown-linux-gnu.tar.xz.asc b/rust-1.81.0-x86_64-unknown-linux-gnu.tar.xz.asc new file mode 100644 index 0000000..694c399 --- /dev/null +++ b/rust-1.81.0-x86_64-unknown-linux-gnu.tar.xz.asc @@ -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----- diff --git a/rust.keyring b/rust.keyring new file mode 100644 index 0000000..c9248e6 --- /dev/null +++ b/rust.keyring @@ -0,0 +1,85 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +/5A5vjHh+NhFwH5h2vBJVPdsz6k= +=jRHo +-----END PGP PUBLIC KEY BLOCK----- diff --git a/rust1.81-rpmlintrc b/rust1.81-rpmlintrc new file mode 100644 index 0000000..ea48491 --- /dev/null +++ b/rust1.81-rpmlintrc @@ -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 .*") diff --git a/rust1.81.changes b/rust1.81.changes new file mode 100644 index 0000000..c0583b4 --- /dev/null +++ b/rust1.81.changes @@ -0,0 +1,103 @@ +------------------------------------------------------------------- +Tue Sep 10 05:44:36 UTC 2024 - William Brown + +- Resolve wasm32-wasi build issues + +------------------------------------------------------------------- +Mon Sep 9 01:37:39 UTC 2024 - Xiaoguang Wang + +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/) diff --git a/rust1.81.spec b/rust1.81.spec new file mode 100644 index 0000000..0b5c2a5 --- /dev/null +++ b/rust1.81.spec @@ -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 < .env.sh < .env.sh <> .env.sh <> main.rs <