commit 609287f943fa095bec5f287b111a86ab7cfc987ac7b79ff2d79bf2836b2eb84a Author: Adrian Schröter Date: Fri Aug 23 17:03:32 2024 +0200 Sync from SUSE:SLFO:Main rust1.80 revision 4250ffd517180c621d320134e1abca18 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.80.1-aarch64-unknown-linux-gnu.tar.xz b/rust-1.80.1-aarch64-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000..3c8bc4e --- /dev/null +++ b/rust-1.80.1-aarch64-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e89bad7857711a1c11d017ea28fbfeec54076317763901194f8f5decbac1850 +size 226220216 diff --git a/rust-1.80.1-aarch64-unknown-linux-gnu.tar.xz.asc b/rust-1.80.1-aarch64-unknown-linux-gnu.tar.xz.asc new file mode 100644 index 0000000..776962e --- /dev/null +++ b/rust-1.80.1-aarch64-unknown-linux-gnu.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +wsFcBAABCgAQBQJmtMstCRCFq5bm+hvl/gAARoQP/RUJI18yPvNpTsQIBiuBgn0/ +kOLcxEtObRI9RjQBS9+v0xzn/C6vHdnm7VJKd+usswU1RN/CZZql5JBpAs74T5yM +C16NdeYfyTasYyTDiOlSVvim9RoF6LtZPSvYKS5FlYyqWbNzXhzravdWtu30soem +I9gMIp2sLSMxPEF1oKj+Ewl9NYiQucGngndYuwdPD9mW2sRTzglIcWFEMtoFLrkj +GNO9eOa5O7BKt3qNNwOJmnw1m9Imo0tq55kZQ3ph3JTcy25Etj/3HW4fnO7bPnmt +IrbmFSTcJCbU/985+d9wgAn/rRHckRulwUQh/Xu+QxnYyZmsGAAqYO+jJxaKiU9J +lwpkIqvSQ+/d4XWTelLjhI6hk+MzMP3y4gS6ynz2zwfRF1fu67OX5+lYbS1Yhixy +zasQjYC7Pm32CUf45lbMwpe/CZdAmSdUY7gw147xORBPDv1ah5gSwKNq4W/vnavV +RZr1eChDE0biE0Z0HloijshWbKhM6TOLE+cprFE5ZK28WI74i6Pc3AcDj40TW4et +1CeIa5KKNS6dH+1te9SvEUXIs6+PzXKPq/z4EktIqqDCdD1F4Ic48LvzQsvIVED+ +O1FMlCge5PcsExqfYVezYbvzhIhgsWYxGbIq+aVIt4v22nyZWsfGEeD+9nDw9Jjk +D2QtGtW8q1TEyCi4hAcR +=zfm1 +-----END PGP SIGNATURE----- diff --git a/rust-1.80.1-arm-unknown-linux-gnueabihf.tar.xz b/rust-1.80.1-arm-unknown-linux-gnueabihf.tar.xz new file mode 100644 index 0000000..59c6197 --- /dev/null +++ b/rust-1.80.1-arm-unknown-linux-gnueabihf.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a75d20e8bfbd94aa541f1d65e61542849f090311389d56813dae518372793996 +size 190747600 diff --git a/rust-1.80.1-arm-unknown-linux-gnueabihf.tar.xz.asc b/rust-1.80.1-arm-unknown-linux-gnueabihf.tar.xz.asc new file mode 100644 index 0000000..fe2967a --- /dev/null +++ b/rust-1.80.1-arm-unknown-linux-gnueabihf.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +wsFcBAABCgAQBQJmtMsuCRCFq5bm+hvl/gAAEcIP/3fN9TBTO8qvXRULP73ds9p4 +VY/YRt3wKXrQkRXAQOUjWIUWqKqbgCT9pbadKkzCYIuoI1uueIkjD0NJd1EcLfDw +j1zmzDcF5F5e1fH2iu74XctnW7fGbz2vSSCOgnMDi+vSuL48sMtaGjkgeNgvSzI9 +fKK2ceM74lVn8zN54RmG3lThje1fVOFMKxded6xPeRjvAWOYOzQzWL43iAFFWxXd +zhuUUa2RTBHBU2IKBP+uRcCMabFPdua8a50KM8vWr9A7LEyuAsdYvXYZ8ZzHYRC8 +3Z/A5xUCxQ1brx0Q+QZOO3dbiLl73KTi9eRZ7BRG4Psv7ULTrWzNhzUpBhDQGTn8 +akgG6rCVktN7pZjoZUfhuihuwfWmR+tEc15WC7BnO5QSHHFj+dqyPmSfxnE1bfnk +1e9u5wyJa22pnyRZbl5nudx2LNCn0tWKoao+cf9OjoFre2mi0MkVDwWO71jv993+ +BKdhGx4BrC89Og9oajPYBQmf/alN2D+4Dr3vv43sq8SxF7bhaXbXsJAWo1kdyx4o +dNlZlN8DjrsYchCSEumBAqJjWf86xPGTjCf4T5stZNyzE0PPC/ojtEB3656fyEcV +W1pT7RqjOxg66wbnmpoTzLmRK/Er3re/XlmKLX818/a2QDF/lwP4QWRJLmlEbbww +QbH552RR0C75Bvn9HOI7 +=jJxE +-----END PGP SIGNATURE----- diff --git a/rust-1.80.1-armv7-unknown-linux-gnueabihf.tar.xz b/rust-1.80.1-armv7-unknown-linux-gnueabihf.tar.xz new file mode 100644 index 0000000..8e7cd59 --- /dev/null +++ b/rust-1.80.1-armv7-unknown-linux-gnueabihf.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1386f0635ad3e89f295346ae1b696b584078bf944f99f768da4a5d84542e62f0 +size 195804620 diff --git a/rust-1.80.1-armv7-unknown-linux-gnueabihf.tar.xz.asc b/rust-1.80.1-armv7-unknown-linux-gnueabihf.tar.xz.asc new file mode 100644 index 0000000..29c707b --- /dev/null +++ b/rust-1.80.1-armv7-unknown-linux-gnueabihf.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +wsFcBAABCgAQBQJmtMssCRCFq5bm+hvl/gAAWNwP/0bKwC2jYoes+htCWvyFKxdi +sOR3UgbfGxnB8LYPaWBRzFPjS0aXpjZ8C+TW9dr8WYQpbsTq3V4yDoy2E64y9fcV +aclqR/liYOd60VwFgNv5CBjQ+x0iDkQe+AB8VEeW2GTN58dcGZjxSrSKnHsOTbmM +i60VEsvSca9OrjnTMwFwdCV21UC+bStZFfnKgioZrcyeRhp4QTWoHNi9P8uIzq0o +sqDBfxCAkGB+BqHru3yjCIo1ZyJIzZghJDNuu1jGkFniYa5UbDChDiJQiFgr3iWd +M9bsDZ3x81lFl3TeGwzNMLgdv7Xjx9VLJnDvFyUbz0Sd0cw46vF28lhjEnHDrFPf +xUJ5AYIYr8eXGkeCz3Empkg7TIRNrWZiLGu3Wk3lINxAElwIwvA+wq9sfqTxJ/oP +1gjEVuONNO98Ta54JL7mpjq2tNnRZZeHTqaf84GBFwNFdFxv/z+FcIlatFQLzJeV +Y+Mkjc7HW/LY42DIA3yRl9/epAplUImt0fxwEQFuhLo+kNKWL1AuCRzkP3/sL7Fr +uz9RNAsOIy7QvznzvZQu8G6x/h+krqAqmiSOtLT37WgFIR3l1MQ/ZaUvFTFNfNLV +7SDxFaa6rNZOzzGzmzZr+bu/KXJ+dSmR4LhHF/gHqaIDuOUGIgULVX4/pQ7NYxm4 +C3bvWwZIOEE6O+EjX/Dj +=ukPm +-----END PGP SIGNATURE----- diff --git a/rust-1.80.1-i686-unknown-linux-gnu.tar.xz b/rust-1.80.1-i686-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000..89b8b41 --- /dev/null +++ b/rust-1.80.1-i686-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9af695dd4eacb397c2169abdfae35c6342f210d04632571d5faf924fa2cc6d39 +size 221151480 diff --git a/rust-1.80.1-i686-unknown-linux-gnu.tar.xz.asc b/rust-1.80.1-i686-unknown-linux-gnu.tar.xz.asc new file mode 100644 index 0000000..d93ff15 --- /dev/null +++ b/rust-1.80.1-i686-unknown-linux-gnu.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +wsFcBAABCgAQBQJmtMssCRCFq5bm+hvl/gAAlvoQANZ7605O4pBdWYuLkk1zUj4m +b6eD09mJnMYU9a046eUse3fmoX+bQH8kbdEDCd0c+GCGCFt0zscxkXZZtazc9eSm +hbkOVBajNOB2nsnSc5XynJ+W2d+G9LKy9UKtzLJgJVRYOA0WtrNyzW1L+fodDdVP +MIXTxKWiUNIm7QrcEg3PgyJ8mhhEfmbcwr6k1rEMBQFYAtt7iXSx7ZkMgihApt2s +v57DfS6K/eKrSvT/Wc72dh1Q8lcZgT112m3wcMhfEGId5LNJWkGE3nXp+Y7SHDEl +JjBv8EIylTPAk8rPezF32mWqD1VHJsXAT9Ck/Komx8RZHDlrZ4ryvJ+Ecc/yJyfX +1AYuzowA0lw7fxgaXei+0UkjKDqmah/ayYgTxPkHXQlusWi1N5/ENKlkVGY1BUcE +h4D3uUBbSToNl+fqpCZN1rpHfXDr9fpEYdnkjD72yCDBul0IuwRRmWCGpvgNWtfz +/gPNdX8pDW17bbhGtOhqMDiNLtAEw1lRK+J8BQMFjsxGhXFcYjgnSxoBJfvoMd+v +9HiRGMB5aqx/z2q1QGBPPhZRH463ZVGLK71uZ3MyvrNB5892zjQtWvHz3AoPmcYj +v4SKsFZAAnsP5puMN6d2yBhgZsKctzDgow5EOgIARt/CY7oqNCybss/PO98UD7O1 +raxh5vfYPJlnp5zBlT+r +=iFWW +-----END PGP SIGNATURE----- diff --git a/rust-1.80.1-powerpc-unknown-linux-gnu.tar.xz b/rust-1.80.1-powerpc-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000..9f662e9 --- /dev/null +++ b/rust-1.80.1-powerpc-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52706cabf6b9fc504d5b1f8f1605787bb7950d79f157f913b7cf38a59e138b22 +size 185400364 diff --git a/rust-1.80.1-powerpc-unknown-linux-gnu.tar.xz.asc b/rust-1.80.1-powerpc-unknown-linux-gnu.tar.xz.asc new file mode 100644 index 0000000..0e2e64c --- /dev/null +++ b/rust-1.80.1-powerpc-unknown-linux-gnu.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +wsFcBAABCgAQBQJmtMsuCRCFq5bm+hvl/gAASzwQAKiFKtV3qxUSK/yQfluu+xUA +0sJCPdsB3tNkWAqn5de8jdZ3lit1Gl9IyN0ulMdGuESEYHBx6dOormnudqPY6SVg +Gkqkr7pxV9lcR7028TrgBwuFziTwuTOIFFzHuR00m31Hi37opDFdpkaSVDvpbyWq +4Q1Wu3iFAxXXinUnPFw3XZP0cPYTQal/uCdK+eIWrLZyFDM7HAsOHv2FwzVwQXVV +diVzeNa/lK/YdFw8JZJyTnXUO+/JhclyE+Bi1yx1Gj0JzLk4P/e5Z7TUYw5hyX51 +5bhXLI5+23tDtDzaHvYnc7AbldNNNx0Eoqs1EUORr2v6ORVwJIKNheybffMjNRGQ +WNsE4woczd/ka7Oja9fGoGUrZzOcPav/Wegn/AhA8QtLQnpY2bekXm1yHTjJuu1v +STEHiAWyxt/PxbFKQ1J7QxlwVH4ltNOytAQ+n2lOUEpujy7lyn32jT0+37gOyRPZ +YP/TJRIKeSWSnMbHVM1BaOv1ZiaBslhTrKrc3wMr/RAfrV+hWv5Yu9RlZJXFyzsF +rySNOGE9fMLxfeCogW0Dbjwl4hmQXA4TWUPQukMINB3UwCJhV9gAVPmiDQJ+RB55 +DELa3dllLxb+VmqL7TszFLuStmZOaZy0y3N+ygCOq79e9bbmiJn4RuT4BjZZ+tiy +1uXEn+Jym7CsLrsDaC2o +=si80 +-----END PGP SIGNATURE----- diff --git a/rust-1.80.1-powerpc64-unknown-linux-gnu.tar.xz b/rust-1.80.1-powerpc64-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000..b02b132 --- /dev/null +++ b/rust-1.80.1-powerpc64-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a67bbade030cdf2ffbd3765d1c937586837b4265a90a97e2378e9f5687a4ed0 +size 183179096 diff --git a/rust-1.80.1-powerpc64-unknown-linux-gnu.tar.xz.asc b/rust-1.80.1-powerpc64-unknown-linux-gnu.tar.xz.asc new file mode 100644 index 0000000..61ffd15 --- /dev/null +++ b/rust-1.80.1-powerpc64-unknown-linux-gnu.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +wsFcBAABCgAQBQJmtMssCRCFq5bm+hvl/gAAQjUQAOBjamM2MgvqAsJGDg9nJxPh +XbkQq211SPUafBiV3eAEPFCLqPqgDWb4JyqsOJT/yW6YDHG2gFd30tpJ/CMPBBFB +roiYQulnFtjoA2j79wRYVXON14VT8IineeVyPgSuXFC3/reYaz6YX0cMyfexyU4p +6JaMFeSwSXiTO2J3Ciq+oz6jkLQvYPDMTg5Nx2oFv1rNcOv5lxwKo/34t+v6IhuS +S/SNjWJ/6CBjrYYIOgRvkqbmsFdutSaf504L6Vx3S5ey8kCP8237iM5mvQrQyHzI +scg4E4yvpUZBrZzpu5FGdS4Hzika0VH3Qzr86mHuc+jFjY7MnaQYJdaUHOFStLL2 +1Fw2YOeHairjlNYHOhSmKxuviRSkMkOWNngW4EMRe1D70MvTB+T2RMnEh4LtT0zi +1b44NhKz/hXXkTsc0Xsov0lcP56FYwcphU4a3ZoS9dGVbLBCLFG+bXNyRuY0uLrw ++e4G8d3HlC2qLy5q2LOmmhhQvupNQw9BKzIIi3/jH0aQ57/JXD5pylLtzeLkwaT4 +fcJUL5JVWJnSyeAv9fmpbbj4+DWeRw+yczh772/biK8CBYRLiPNYzm2xXf6VYxv7 +CbKzUwhpgY6amY+JhJR+GJQgCxW+9FtsAnjWplXfbNx5uC+irzcM+r3UHSKzGGlC +jax0D6PVLmDTm44L85TL +=goDX +-----END PGP SIGNATURE----- diff --git a/rust-1.80.1-powerpc64le-unknown-linux-gnu.tar.xz b/rust-1.80.1-powerpc64le-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000..3d660ea --- /dev/null +++ b/rust-1.80.1-powerpc64le-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:97d5bfcd8a4f2787030bfbdccb4866c993b681dd9964651f080e91ba71e9f26b +size 194097292 diff --git a/rust-1.80.1-powerpc64le-unknown-linux-gnu.tar.xz.asc b/rust-1.80.1-powerpc64le-unknown-linux-gnu.tar.xz.asc new file mode 100644 index 0000000..20a7ebe --- /dev/null +++ b/rust-1.80.1-powerpc64le-unknown-linux-gnu.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +wsFcBAABCgAQBQJmtMssCRCFq5bm+hvl/gAAJFAP/1teXx2yFcZpc2knxyZneloG +7ZFv71hAMxrQ4Dg/r4ODuqARvvuvl/u3018dgTT5PP7htjwHpSXhr/jQq++ytvRY +IOyjf9fCJAJ7xrQK3sxKXso4pgzpzfrIL6G1ZuFBqdxQmYSiIPF2kEE7uDoXuDEQ +WRLf4YcXU2B9vlwxd0LFJd/7YDPH2g+CuG29AdwpcAeQSENrlTKVKO5QdujfBfB4 +DBZ5HjRsF6qeZtcUOWrBiysarUQJcDBRk5hz2JuDanxb0uRKLMrIimhblqynqcB0 +JfLKY/fswlPApJ99QN4dhCuxSJO9IM79ESsU3RuNuUQnOGAvzzGTAjgkys1naCvX +eRcQSEzbBP5A9hj5N3HHeNdUSHRNUBmT64JUMQcDL7sYwnOa/n7dubbOTsmLWOMw +gMNq7EegfQTmpEjtMepKVJAZgu5ad9Gd9JNpNEIxyT/Gu3G/i9+AW5lJ3X6NWVoh +CcEE/y6dmskeQqS1gpuVJ+a7IHotvN+mLsjn3HzaGjX/Y0NQb9dwLa4MOIrmosmV +nyc00oKlDWmXyq6Zy5r0ND2Dlg6m4Y5KQ810DzhSY0C7nf6uLiVIBUppFtkOSx3Z +qoeOrJm7NLrXqOGbKFyCaIR9b6cU7l4TsG3ihoOcRtvpBdhOwGxWC6FUmloEAnAg +WaEFFtHd9VTU+Di7aUiG +=4klU +-----END PGP SIGNATURE----- diff --git a/rust-1.80.1-riscv64gc-unknown-linux-gnu.tar.xz b/rust-1.80.1-riscv64gc-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000..910ae96 --- /dev/null +++ b/rust-1.80.1-riscv64gc-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a6845a414b0fc199f3193a202ed5e00bc8244bcbdfc5dec5e02f7d7ebf5ce5a8 +size 194141700 diff --git a/rust-1.80.1-riscv64gc-unknown-linux-gnu.tar.xz.asc b/rust-1.80.1-riscv64gc-unknown-linux-gnu.tar.xz.asc new file mode 100644 index 0000000..726399a --- /dev/null +++ b/rust-1.80.1-riscv64gc-unknown-linux-gnu.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +wsFcBAABCgAQBQJmtMsuCRCFq5bm+hvl/gAAi8gQAKqbchmzeqJNFCllmjsJtKrR +S2Fijz8SaTt/YRJiJZdsWr+1BDPP3A2OG1EviDmHqxPWSOkKHbQgzTc1C0c4GtQ7 +g8mrYjMVTCWkAcFF9HffcGYFInBpJz9GA05Zvs76EcKeCjMRNoAW1xPNr+Hbhfdq +gnm2xSzgu5Ay7Ocupt8EWYIa0MWhahd8GLU6CtPeySSSz+gqvNKO9+tx4FbBauir +3oKFxS+iQ2xbkUQ3E03saqKJAaEpN6myuHHo/EqEQMARBfScIE7AACukbrRhlqXP +44C95orvU9CQ+VA5blRaE+9GOfpVJWD9N5siHUOycf76Q6YJ+5fP2R/ri5qEXC1p +UHqPUmjLSoSuqDPkJiaMbNK12PaS2w0uLg7DMeU+pyH5vwGQlWI3vvpnmdm7z9RJ +1MJroIWoFsnTgtBKBgbYHujuEmiWdUaFIFuYaoh1Xd/oX3I3toPUIsFO5ZmF98kP +aQ7BLoBQOdqBOzscepWDqdjD9k9mVRCtcr1H4pKwKn1v7zxoTwhMXycqOkPqrwP3 +SIQbMZCFlJ6pGhHtYs9GyCOFTyBfr4QI5p8sUJYNlJ3GKv3jSGu6qiMNZwdvs2Yq +Uh0iewwYSLxvOivD5vUHjq9epVauEpG9PqsAFkspKg5Jk0MAtiYDXm1zp2o0lrhM +p9CvRx0uGtxpP9QaB5DN +=Lg5r +-----END PGP SIGNATURE----- diff --git a/rust-1.80.1-s390x-unknown-linux-gnu.tar.xz b/rust-1.80.1-s390x-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000..e951e0b --- /dev/null +++ b/rust-1.80.1-s390x-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a51fed0090f31fba0998bb0f2822cbf9e1ee513f6a1e58a936afc9e758d6ed8b +size 209785288 diff --git a/rust-1.80.1-s390x-unknown-linux-gnu.tar.xz.asc b/rust-1.80.1-s390x-unknown-linux-gnu.tar.xz.asc new file mode 100644 index 0000000..d8d39bf --- /dev/null +++ b/rust-1.80.1-s390x-unknown-linux-gnu.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +wsFcBAABCgAQBQJmtMstCRCFq5bm+hvl/gAA5YkP/iuKGEc9/CuGysktB4Fpldg3 +RmxYriudakpdJuyPEnazDR/XBdw7LogXG03nV5kAU++Bb125D/gJ02snF3PhCgoR +UxIznVF6Esqq2hz51jwU4l5KhoIq1hvornEb0us934x+CkF5/oZGshy+KDYHz+En +bhY/1JSV1WJHDH4yucU8YIfgU+PFW1GOv0XLE1vNvajWENOXDzZHtXzkuvRugwsu +zDKx/IsSgAhmqeE7tBGHJ7sa1ypci+zWk2Q93ccCwZ8ISUwLICSrNXlBNPThQCES +W2DoqGeV17hh9hxD5LzZRdDUa9X2nSrjBY8IcxaJ+g7b8PZtz+lRa+uPLcJN1Jdz +PUsUT5jtGmxHu2PjBiUbLJgKJu33eeAtwMqESv8x3Hm5Iw1b00Wo0vAczGo4vAUh +qoSc+aLk9jzt2tlzbkpJ64w5a/lrUxpPgvWI4HNiXJiwpv1clA2gzB66nrjsO2qV +3+qcUXoITCmiBFVZBb5eqVWFxQs12Ln80JA7f5ZTWBaZXghTPTEyBnX6a5kODlde +pHjNRWq/cxbtCKgYud6L8agpbmqJ/ekDktQ2YegU7bF838fmPHjXMnuL8ocP33GF +Th8rTNiw4F+Ki+0gwbY4pJ/L/uIqetWehPm++FDPoY+aUFWvyeB7iIqSNChQHtc1 +Bf8vZNDJ33tTE5UigHos +=vb0r +-----END PGP SIGNATURE----- diff --git a/rust-1.80.1-x86_64-unknown-linux-gnu.tar.xz b/rust-1.80.1-x86_64-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000..f92a2fb --- /dev/null +++ b/rust-1.80.1-x86_64-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:85e936d5d36970afb80756fa122edcc99bd72a88155f6bdd514f5d27e778e00a +size 167553060 diff --git a/rust-1.80.1-x86_64-unknown-linux-gnu.tar.xz.asc b/rust-1.80.1-x86_64-unknown-linux-gnu.tar.xz.asc new file mode 100644 index 0000000..784807e --- /dev/null +++ b/rust-1.80.1-x86_64-unknown-linux-gnu.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +wsFcBAABCgAQBQJmtMssCRCFq5bm+hvl/gAAt3UQANjFRPmya6DL7rHw0PQjhHG4 +BxH4pfHSaX2H5AkvbxwSRf5VmHNz1HOW7ZyRs43hKpPjyqtnawPzZaugYX8UWpTU +rVp9+hiGID+7CkIBBds5HxmvE0VMonupEqPjam3Vsm4bm9cuHwXsbvDMSPDchGJP +4q6b6jSxl/9N/UP+Nc5L8ZzfXkT4gIGTmrAnEcb7F+FJAlBKznun3SqjN9QLIDWQ +Nn9vWn2oiIpYOYIyEzDpBbLdmK0rHAx4jvOrtwCGjA/ndfqf6hfVcxgQkaZLEtTU +7LDkbstlWLhE3OQEWDhwUC5OXDXT8o8H/G9d2euYg7PzeQf579PmBQfMHrvNV9m/ +PriQfZUoglpP4ybIFs7R5FCavGj5hYT3Vl7C4jAxmHtferua45gFMTUp6MpsCRV7 +L9aTHcp9kN1g5HyxZMuAMjluUbrJLJ/9D7HErEff1czzKYHxFVSv7vabXwwtxmbt +Pov7PGTuCX59k7wKW9TfzCw+l7CVDquxiyayYYKyEXOPsK0lw5Lko9mo7zzLzxew +4zTlmIDN9ejLEPLWrBCFuIwatohrcr7fflNvT2B3u5qgSsO4bDtoxBAXoOxakWlj +DATLp6HQeH92ZmXsEkgDvVZTDWtqwEVI3OPbhpTyNXumii/NJkeAsdYuSD2ZH+yf +dyQU54x3svT2b5QY7a8d +=rFdo +-----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.80-rpmlintrc b/rust1.80-rpmlintrc new file mode 100644 index 0000000..ea48491 --- /dev/null +++ b/rust1.80-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.80.changes b/rust1.80.changes new file mode 100644 index 0000000..327fcbc --- /dev/null +++ b/rust1.80.changes @@ -0,0 +1,153 @@ +------------------------------------------------------------------- +Fri Aug 9 01:02:15 UTC 2024 - William Brown + +Version 1.80.1 (2024-08-08) +=========================== + +- [Fix miscompilation in the jump threading MIR optimization when comparing floats](https://github.com/rust-lang/rust/pull/128271) +- [Revert changes to the `dead_code` lint from 1.80.0](https://github.com/rust-lang/rust/pull/128618) + +------------------------------------------------------------------- +Fri Jul 26 01:48:52 UTC 2024 - William Brown + +Version 1.80.0 (2024-07-25) +========================== + +Language +-------- +- [Document maximum allocation size](https://github.com/rust-lang/rust/pull/116675/) +- [Allow zero-byte offsets and ZST read/writes on arbitrary pointers](https://github.com/rust-lang/rust/pull/117329/) +- [Support C23's variadics without a named parameter](https://github.com/rust-lang/rust/pull/124048/) +- [Stabilize `exclusive_range_pattern` feature](https://github.com/rust-lang/rust/pull/124459/) +- [Guarantee layout and ABI of `Result` in some scenarios](https://github.com/rust-lang/rust/pull/124870) + +Compiler +-------- +- [Update cc crate to v1.0.97 allowing additional spectre mitigations on MSVC targets](https://github.com/rust-lang/rust/pull/124892/) +- [Allow field reordering on types marked `repr(packed(1))`](https://github.com/rust-lang/rust/pull/125360/) +- [Add a lint against never type fallback affecting unsafe code](https://github.com/rust-lang/rust/pull/123939/) +- [Disallow cast with trailing braced macro in let-else](https://github.com/rust-lang/rust/pull/125049/) +- [Expand `for_loops_over_fallibles` lint to lint on fallibles behind references.](https://github.com/rust-lang/rust/pull/125156/) +- [self-contained linker: retry linking without `-fuse-ld=lld` on CCs that don't support it](https://github.com/rust-lang/rust/pull/125417/) +- [Do not parse CVarArgs (`...`) as a type in trait bounds](https://github.com/rust-lang/rust/pull/125863/) +- Improvements to LLDB formatting [#124458](https://github.com/rust-lang/rust/pull/124458) [#124500](https://github.com/rust-lang/rust/pull/124500) +- [For the wasm32-wasip2 target default to PIC and do not use `-fuse-ld=lld`](https://github.com/rust-lang/rust/pull/124858/) +- [Add x86_64-unknown-linux-none as a tier 3 target](https://github.com/rust-lang/rust/pull/125023/) +- [Lint on `foo.into_iter()` resolving to `&Box<[T]>: IntoIterator`](https://github.com/rust-lang/rust/pull/124097/) + +Libraries +--------- +- [Add `size_of` and `size_of_val` and `align_of` and `align_of_val` to the prelude](https://github.com/rust-lang/rust/pull/123168/) +- [Abort a process when FD ownership is violated](https://github.com/rust-lang/rust/pull/124210/) +- [io::Write::write_fmt: panic if the formatter fails when the stream does not fail](https://github.com/rust-lang/rust/pull/125012/) +- [Panic if `PathBuf::set_extension` would add a path separator](https://github.com/rust-lang/rust/pull/125070/) +- [Add assert_unsafe_precondition to unchecked_{add,sub,neg,mul,shl,shr} methods](https://github.com/rust-lang/rust/pull/121571/) +- [Update `c_char` on AIX to use the correct type](https://github.com/rust-lang/rust/pull/122986/) +- [`offset_of!` no longer returns a temporary](https://github.com/rust-lang/rust/pull/124484/) +- [Handle sigma in `str.to_lowercase` correctly](https://github.com/rust-lang/rust/pull/124773/) +- [Raise `DEFAULT_MIN_STACK_SIZE` to at least 64KiB](https://github.com/rust-lang/rust/pull/126059/) + +Stabilized APIs +--------------- +- [`impl Default for Rc`](https://doc.rust-lang.org/beta/alloc/rc/struct.Rc.html#impl-Default-for-Rc%3CCStr%3E) +- [`impl Default for Rc`](https://doc.rust-lang.org/beta/alloc/rc/struct.Rc.html#impl-Default-for-Rc%3Cstr%3E) +- [`impl Default for Rc<[T]>`](https://doc.rust-lang.org/beta/alloc/rc/struct.Rc.html#impl-Default-for-Rc%3C%5BT%5D%3E) +- [`impl Default for Arc`](https://doc.rust-lang.org/beta/alloc/sync/struct.Arc.html#impl-Default-for-Arc%3Cstr%3E) +- [`impl Default for Arc`](https://doc.rust-lang.org/beta/alloc/sync/struct.Arc.html#impl-Default-for-Arc%3CCStr%3E) +- [`impl Default for Arc<[T]>`](https://doc.rust-lang.org/beta/alloc/sync/struct.Arc.html#impl-Default-for-Arc%3C%5BT%5D%3E) +- [`impl IntoIterator for Box<[T]>`](https://doc.rust-lang.org/beta/alloc/boxed/struct.Box.html#impl-IntoIterator-for-Box%3C%5BI%5D,+A%3E) +- [`impl FromIterator for Box`](https://doc.rust-lang.org/beta/alloc/boxed/struct.Box.html#impl-FromIterator%3CString%3E-for-Box%3Cstr%3E) +- [`impl FromIterator for Box`](https://doc.rust-lang.org/beta/alloc/boxed/struct.Box.html#impl-FromIterator%3Cchar%3E-for-Box%3Cstr%3E) +- [`LazyCell`](https://doc.rust-lang.org/beta/core/cell/struct.LazyCell.html) +- [`LazyLock`](https://doc.rust-lang.org/beta/std/sync/struct.LazyLock.html) +- [`Duration::div_duration_f32`](https://doc.rust-lang.org/beta/std/time/struct.Duration.html#method.div_duration_f32) +- [`Duration::div_duration_f64`](https://doc.rust-lang.org/beta/std/time/struct.Duration.html#method.div_duration_f64) +- [`Option::take_if`](https://doc.rust-lang.org/beta/std/option/enum.Option.html#method.take_if) +- [`Seek::seek_relative`](https://doc.rust-lang.org/beta/std/io/trait.Seek.html#method.seek_relative) +- [`BinaryHeap::as_slice`](https://doc.rust-lang.org/beta/std/collections/struct.BinaryHeap.html#method.as_slice) +- [`NonNull::offset`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.offset) +- [`NonNull::byte_offset`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.byte_offset) +- [`NonNull::add`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.add) +- [`NonNull::byte_add`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.byte_add) +- [`NonNull::sub`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.sub) +- [`NonNull::byte_sub`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.byte_sub) +- [`NonNull::offset_from`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.offset_from) +- [`NonNull::byte_offset_from`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.byte_offset_from) +- [`NonNull::read`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.read) +- [`NonNull::read_volatile`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.read_volatile) +- [`NonNull::read_unaligned`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.read_unaligned) +- [`NonNull::write`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.write) +- [`NonNull::write_volatile`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.write_volatile) +- [`NonNull::write_unaligned`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.write_unaligned) +- [`NonNull::write_bytes`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.write_bytes) +- [`NonNull::copy_to`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.copy_to) +- [`NonNull::copy_to_nonoverlapping`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.copy_to_nonoverlapping) +- [`NonNull::copy_from`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.copy_from) +- [`NonNull::copy_from_nonoverlapping`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.copy_from_nonoverlapping) +- [`NonNull::replace`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.replace) +- [`NonNull::swap`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.swap) +- [`NonNull::drop_in_place`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.drop_in_place) +- [`NonNull::align_offset`](https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.align_offset) +- [`<[T]>::split_at_checked`](https://doc.rust-lang.org/beta/std/primitive.slice.html#method.split_at_checked) +- [`<[T]>::split_at_mut_checked`](https://doc.rust-lang.org/beta/std/primitive.slice.html#method.split_at_mut_checked) +- [`str::split_at_checked`](https://doc.rust-lang.org/beta/std/primitive.str.html#method.split_at_checked) +- [`str::split_at_mut_checked`](https://doc.rust-lang.org/beta/std/primitive.str.html#method.split_at_mut_checked) +- [`str::trim_ascii`](https://doc.rust-lang.org/beta/std/primitive.str.html#method.trim_ascii) +- [`str::trim_ascii_start`](https://doc.rust-lang.org/beta/std/primitive.str.html#method.trim_ascii_start) +- [`str::trim_ascii_end`](https://doc.rust-lang.org/beta/std/primitive.str.html#method.trim_ascii_end) +- [`<[u8]>::trim_ascii`](https://doc.rust-lang.org/beta/core/primitive.slice.html#method.trim_ascii) +- [`<[u8]>::trim_ascii_start`](https://doc.rust-lang.org/beta/core/primitive.slice.html#method.trim_ascii_start) +- [`<[u8]>::trim_ascii_end`](https://doc.rust-lang.org/beta/core/primitive.slice.html#method.trim_ascii_end) +- [`Ipv4Addr::BITS`](https://doc.rust-lang.org/beta/core/net/struct.Ipv4Addr.html#associatedconstant.BITS) +- [`Ipv4Addr::to_bits`](https://doc.rust-lang.org/beta/core/net/struct.Ipv4Addr.html#method.to_bits) +- [`Ipv4Addr::from_bits`](https://doc.rust-lang.org/beta/core/net/struct.Ipv4Addr.html#method.from_bits) +- [`Ipv6Addr::BITS`](https://doc.rust-lang.org/beta/core/net/struct.Ipv6Addr.html#associatedconstant.BITS) +- [`Ipv6Addr::to_bits`](https://doc.rust-lang.org/beta/core/net/struct.Ipv6Addr.html#method.to_bits) +- [`Ipv6Addr::from_bits`](https://doc.rust-lang.org/beta/core/net/struct.Ipv6Addr.html#method.from_bits) +- [`Vec::<[T; N]>::into_flattened`](https://doc.rust-lang.org/beta/alloc/vec/struct.Vec.html#method.into_flattened) +- [`<[[T; N]]>::as_flattened`](https://doc.rust-lang.org/beta/core/primitive.slice.html#method.as_flattened) +- [`<[[T; N]]>::as_flattened_mut`](https://doc.rust-lang.org/beta/core/primitive.slice.html#method.as_flattened_mut) + +These APIs are now stable in const contexts: + +- [`<[T]>::last_chunk`](https://doc.rust-lang.org/beta/core/primitive.slice.html#method.last_chunk) +- [`BinaryHeap::new`](https://doc.rust-lang.org/beta/std/collections/struct.BinaryHeap.html#method.new) + +Cargo +----- +- [Stabilize `-Zcheck-cfg` as always enabled](https://github.com/rust-lang/cargo/pull/13571/) +- [Warn, rather than fail publish, if a target is excluded](https://github.com/rust-lang/cargo/pull/13713/) +- [Add special `check-cfg` lint config for the `unexpected_cfgs` lint](https://github.com/rust-lang/cargo/pull/13913/) +- [Stabilize `cargo update --precise `](https://github.com/rust-lang/cargo/pull/13974/) +- [Don't change file permissions on `Cargo.toml` when using `cargo add`](https://github.com/rust-lang/cargo/pull/13898/) +- [Support using `cargo fix` on IPv6-only networks](https://github.com/rust-lang/cargo/pull/13907/) + +Rustdoc +----- + +- [Allow searching for references](https://github.com/rust-lang/rust/pull/124148/) +- [Stabilize `custom_code_classes_in_docs` feature](https://github.com/rust-lang/rust/pull/124577/) +- [fix: In cross-crate scenarios show enum variants on type aliases of enums](https://github.com/rust-lang/rust/pull/125300/) + +Compatibility Notes +------------------- +- [rustfmt estimates line lengths differently when using non-ascii characters](https://github.com/rust-lang/rustfmt/issues/6203) +- [Type aliases are now handled correctly in orphan check](https://github.com/rust-lang/rust/pull/117164/) +- [Allow instructing rustdoc to read from stdin via `-`](https://github.com/rust-lang/rust/pull/124611/) +- [`std::env::{set_var, remove_var}` can no longer be converted to safe function pointers and no longer implement the `Fn` family of traits](https://github.com/rust-lang/rust/pull/124636) +- [Warn (or error) when `Self` constructor from outer item is referenced in inner nested item](https://github.com/rust-lang/rust/pull/124187/) +- [Turn `indirect_structural_match` and `pointer_structural_match` lints into hard errors](https://github.com/rust-lang/rust/pull/124661/) +- [Make `where_clause_object_safety` lint a regular object safety violation](https://github.com/rust-lang/rust/pull/125380/) +- [Turn `proc_macro_back_compat` lint into a hard error.](https://github.com/rust-lang/rust/pull/125596/) +- [Detect unused structs even when implementing private traits](https://github.com/rust-lang/rust/pull/122382/) +- [`std::sync::ReentrantLockGuard` is no longer `Sync` if `T: !Sync`](https://github.com/rust-lang/rust/pull/125527) which means [`std::io::StdoutLock` and `std::io::StderrLock` are no longer Sync](https://github.com/rust-lang/rust/issues/127340) + +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. + +- Misc improvements to size of generated html by rustdoc e.g. [#124738](https://github.com/rust-lang/rust/pull/124738/) and [#123734](https://github.com/rust-lang/rust/pull/123734/) +- [MSVC targets no longer depend on libc](https://github.com/rust-lang/rust/pull/124050/) diff --git a/rust1.80.spec b/rust1.80.spec new file mode 100644 index 0000000..6be419c --- /dev/null +++ b/rust1.80.spec @@ -0,0 +1,788 @@ +# +# spec file for package rust1.79 +# +# 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.80 +%global version_current 1.80.1 +%global version_previous 1.79.0 +# 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.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!!! + +%if 0%{?is_opensuse} == 1 && 0%{?suse_version} >= 1699 +# && "{version_suffix}" != "1.61" +# Can proceed with pinned llvm. +%bcond_with bundled_llvm +%else +# Use bundled llvm instead. +# For details see boo#1192067 +%bcond_without bundled_llvm +%endif + +# === 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 <