commit e4c000e4810f12dfad7dab54062c9307baed510f246c23ff1be411e1aa443954 Author: xiaoguang wang Date: Tue Dec 3 01:18:32 2024 +0000 New package rust1.83 OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust1.83?expand=0&rev=1 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/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc 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/ppc64le-float.patch b/ppc64le-float.patch new file mode 100644 index 0000000..91b7946 --- /dev/null +++ b/ppc64le-float.patch @@ -0,0 +1,14 @@ +diff -rupN rustc-1.82.0-src.orig/src/llvm-project/llvm/lib/Analysis/ConstantFolding.cpp rustc-1.82.0-src/src/llvm-project/llvm/lib/Analysis/ConstantFolding.cpp +--- rustc-1.82.0-src.orig/src/llvm-project/llvm/lib/Analysis/ConstantFolding.cpp ++++ rustc-1.82.0-src/src/llvm-project/llvm/lib/Analysis/ConstantFolding.cpp +@@ -1784,8 +1784,8 @@ Constant *ConstantFoldFP(double (*Native + } + + #if defined(HAS_IEE754_FLOAT128) && defined(HAS_LOGF128) +-Constant *ConstantFoldFP128(long double (*NativeFP)(long double), +- const APFloat &V, Type *Ty) { ++Constant *ConstantFoldFP128(float128 (*NativeFP)(float128), const APFloat &V, ++ Type *Ty) { + llvm_fenv_clearexcept(); + float128 Result = NativeFP(V.convertToQuad()); + if (llvm_fenv_testexcept()) { diff --git a/rust-1.83.0-aarch64-unknown-linux-gnu.tar.xz b/rust-1.83.0-aarch64-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000..38edf27 --- /dev/null +++ b/rust-1.83.0-aarch64-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f02e00bca65f6eebafe2ac6b1bbdecb5f160f260a9c2231a51ed8d382f0ada0 +size 237502772 diff --git a/rust-1.83.0-aarch64-unknown-linux-gnu.tar.xz.asc b/rust-1.83.0-aarch64-unknown-linux-gnu.tar.xz.asc new file mode 100644 index 0000000..ac1c906 --- /dev/null +++ b/rust-1.83.0-aarch64-unknown-linux-gnu.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +wsFcBAABCgAQBQJnSHLuCRCFq5bm+hvl/gAA14sQAMZxxsuEyA9WayY4Wic+nBB9 +nCLmysLzO/WMHpLDSJm6L6S40twf+KVIMmZJ5iAs1/oGqPaEMKruizUyg6YKC5lY +aYXKpkjGyek4pGqVyrpl/uZAXpHnO9vopQh7Lnx89S51DOBXnMquWqL8x9eY6Wzn +uoIZU2idlmvFbHEMvV+EEz6QyY8WrKeT6Z1qkvKwICdDzP6VYqHTo/xiNOv3JE1a +/xJcjOv8C16bh1O97KMtaYOhW4lS1YFOgfQENpvoPA9yBAtayGtG34YkTnS2hBlU +N0X0FqXfz+Bd5pHDDOZ1aGVuGcdqfw0sXTlOBIutajcbGVsnTdDUmWZvYFPZ3SP9 +aKWF8gYiHT2ELs6HROUa/lC551xs3jwjdqmy3EM54inHBKLdqre5Y70yB0bDuQyo +z+yahFpRGksuIY58hcHJ8FojNMN4bMRlIYGBkjnHEn6dhBjzGfUoBzrOV+zYY2F4 +8Y3zRF9Gif07JJDtej46AvGasobZiTtxHrOmDtOGSNfDQWnaFmsZmJ2N7/h+5hUo +hiBXjvdtuXxjSqBIc8xYngPuPwFaTwCWAQCo0NbXWKIaM39z/7RPkbFYZA+D717E +JFabmJGMNgvVJ1rcx95QR6BCwFadgK3j4nLDNvz/dNd0ju7BpTgINc/RjNjzHw1k +EsB0+f4hiLiIOaLy5tzi +=2h85 +-----END PGP SIGNATURE----- diff --git a/rust-1.83.0-arm-unknown-linux-gnueabihf.tar.xz b/rust-1.83.0-arm-unknown-linux-gnueabihf.tar.xz new file mode 100644 index 0000000..d3c4a60 --- /dev/null +++ b/rust-1.83.0-arm-unknown-linux-gnueabihf.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e0859998a6a8af0240be69fcfc7e3f62c1079c27fb78d62844ebf819dc7e4db +size 199899940 diff --git a/rust-1.83.0-arm-unknown-linux-gnueabihf.tar.xz.asc b/rust-1.83.0-arm-unknown-linux-gnueabihf.tar.xz.asc new file mode 100644 index 0000000..ea2a73a --- /dev/null +++ b/rust-1.83.0-arm-unknown-linux-gnueabihf.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +wsFcBAABCgAQBQJnSHLtCRCFq5bm+hvl/gAAubwQALw8vQb/D1y/fQ4DRHAfXQgO +Y97LiZY1IDakhLtzpD+kpOfEMbQvrMJUS4PYJ1l7VYuovHN9/M/5UHYpvKkYm63F +alWZ/Vi5gFLjxreMZpltZoe8QmZZn5dimnGqV7H5Hn2I4+wCm6T+G+vm60Dr7qsy +ZdhgMYQG3w7qduYIEdbxOBbJIYqRko+43kIpjrLoE1DJ4ChWk9RBLQ5eLOQFE8d2 +rMuw2m+4uUwcikSYHGnF9F3HVT/EfKK+T1dUfMgtdqwJ5Jbqk+vyjA65AAa+/FCJ +FEzgbCVyk7pyov+wZwU7d7ChFIHNpSz6X0B0+0yvV30ap7bjf5V4JmhA674TA07N +19zdIOtglxvu0R2Fn0EK83MoSvsI4dRoUYPVhrX9JdKAxqGn0SqHKzecw76Zj0Rp +VJzh2b3zoHDoU8jzHoDp5RpE/qlzPJO/prsramo8St8i2nEYNYH8AmQcaiC2zas9 +oCXkou7Via4YZw2HbMTiu4uuAdGu94eb8g+igVf28STEDK3bBrohKUFXlgZ85XLg +403yngIAbSl+iltQbpZkmwoP+UWF6GrQTsf0EQ+Kk7cOmobwh503iUaw54S8YYQY +7t2Ppm3/AX6X2dctLAKDz5zNQt81cV6BWW8DoqZctd9dplH4GS2bvem79G3/ADK8 +kwOvtnswZpmPX+49BOX/ +=4fdZ +-----END PGP SIGNATURE----- diff --git a/rust-1.83.0-armv7-unknown-linux-gnueabihf.tar.xz b/rust-1.83.0-armv7-unknown-linux-gnueabihf.tar.xz new file mode 100644 index 0000000..fe3a4c9 --- /dev/null +++ b/rust-1.83.0-armv7-unknown-linux-gnueabihf.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a18df2f144d062e4d0a92c50250cfb5e51f2e445850b43e62fb817763d9b0bc9 +size 205652804 diff --git a/rust-1.83.0-armv7-unknown-linux-gnueabihf.tar.xz.asc b/rust-1.83.0-armv7-unknown-linux-gnueabihf.tar.xz.asc new file mode 100644 index 0000000..0ade978 --- /dev/null +++ b/rust-1.83.0-armv7-unknown-linux-gnueabihf.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +wsFcBAABCgAQBQJnSHLvCRCFq5bm+hvl/gAAPK8P/3jz2gz4FmGbVmrTTWWf4Pn0 +xv9O02digH0pP7xT4S1CAuY6loOHMuLmguwFq9kSROwoaN6eUktAphmJplPgrgOQ ++mP+TVI4eeEoeKOdy8brJ4FxOuQAhKDij8A5IrBZsYxX9QXXhaFRCUznXmmJMut2 +R5nmJga4369RRMqIyvwfH4h1WqaBbITGDMPc89f79/DZc9QwaafOGoJrmP1uMD+/ +MjlqNMKj4nTPqcD+mry/E3vPiycFlDYkeKZYD5U1Q9w7fmuscOe6MQtgLHJCPNId +no8nKB4R3W/HlIfnRi5n9WSDQyazoqLCKujfPkfxmytQ9VN/JX077xfL0IsExd3J +ej+wCnhwGPlMf/z8zPoXKcJ9LEpSJvVdNqYsTVU0MBgWZvtEFb0ZQJzIo//jR8EB +qi2D8OHmt6Bk3XnIvlrOnPqBy+QeyILiJzt6uGxEkuLsvu0GWwecSYq6dZudnQUa +KewgStrSomnqdXLu8rPq2UGpsWiKIIQ3txUCgsncBpeCMOThjY5v7GzSgLBFWMYo +VaKqH1867MuCPbJRGxFYfsVpQ57+cbGuZIyevz8EgZoNHEDB6u08gV2US3n3I00q +Fgj0Yf/azI/Yvk3iQqzVOoiqvhuDhyzuJUo21dPI3NhvtlE27zsHsxLoMgxfw3g3 +gLgVHVwBxxnIHW6uKelK +=UVDN +-----END PGP SIGNATURE----- diff --git a/rust-1.83.0-i686-unknown-linux-gnu.tar.xz b/rust-1.83.0-i686-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000..cde6431 --- /dev/null +++ b/rust-1.83.0-i686-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e36915f3a68d8da7166b49ad67d23d26efc79f38cf6a3db102dc022eb2ed1b0a +size 233693080 diff --git a/rust-1.83.0-i686-unknown-linux-gnu.tar.xz.asc b/rust-1.83.0-i686-unknown-linux-gnu.tar.xz.asc new file mode 100644 index 0000000..da773e9 --- /dev/null +++ b/rust-1.83.0-i686-unknown-linux-gnu.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +wsFcBAABCgAQBQJnSHLvCRCFq5bm+hvl/gAAaHsQAKlxz4iY+A2R/XZFgFcs3n58 +XHwWBUNYecCXMk5IFFtfhRQ1JCpoudSurC9UuulFnfwiCL1Px6lsK+mtEqvGU/hr +diNejom/EUZnC+kC46bIiI2SEcNz/0c4yaAZnZe6lULpOzpFuGO/4CBns9+e2fyu +OTk2Vz/PkQl1L33oTmXm3hpxbTZZbRFFf4W6fDdZPVNcuEFai0e1BgpBoBAbFhpV +pl9NZrD2cJTfg0uJTvYsBpMmaMhg94yajEH1wp9zoxVxjL+5m6toxq17gHuTecbf +ad4XSPkJ23I9ekve3UCbMaFMjUaj9iurZB3LY7nCyv4jX3L6kqH4E2In/M31vvZe +b3goWwvVSzn5MJiYeSi2Vj0VuObXNQcFaLN6iUgggBHHefhsn9HPuYjV/TK59p4I +MQtd7Np42nMh1wVvOSv7JereUs3sobmdIVA2RVnzSOYtJr4at19yD2IQU76+15so +860mkdQPthDmHIatl0bAm3+pw+wsa9ILNBq35Iev61w0/Ke37O3JI8tYAmvWn3vK +WYRWsr9Z5oOiySMVp9lXE94Ed4FWAi1VnVNb3u/I6WqG8/Y/9uKaCuIKmeOUuurF +P7WaSIxPg2dA1Os/dGH2YWrbxQotrZEMM2LaQGS4crLaHqyNlq8EBP2UihN07afb +KKdnjbUmVO3/NMfXBm3K +=+A92 +-----END PGP SIGNATURE----- diff --git a/rust-1.83.0-powerpc-unknown-linux-gnu.tar.xz b/rust-1.83.0-powerpc-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000..beb5902 --- /dev/null +++ b/rust-1.83.0-powerpc-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c5a825cc10b2a4e17856f594d5183db5bba5f40cfddeeef4481a6bca46893ff +size 222744280 diff --git a/rust-1.83.0-powerpc-unknown-linux-gnu.tar.xz.asc b/rust-1.83.0-powerpc-unknown-linux-gnu.tar.xz.asc new file mode 100644 index 0000000..ad46975 --- /dev/null +++ b/rust-1.83.0-powerpc-unknown-linux-gnu.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +wsFcBAABCgAQBQJnSHLoCRCFq5bm+hvl/gAAu30P/2SPHpmOAOCmFVCECyjecinZ +xaT9qnkyX9JOgw747z2f4RG40YqhenGgzXk/9lOIq6+5EU5Xu6YSdP2+ls3IP15j +T1Bu813U5OqXpySkvf/B1Clk+FfquWcfRm3Sx1tFBmo1BUlD2O0l+ntJ/gRMV4pJ +wPufZl6uci679HquG54dgUPwbNzVzTKNG8DuGLDe9xZA9eJXbtwmkYDb884gX3o3 +xNEyz3UYQ1VqoAcDVG1Rr8yFjdjU/cqOPA9wXOlSrOKdWbuLs+rCa36fO20/2F/B +uadd8aHfEP16kUZ9JphLXADWZNtzrmCirAOaGV8VMq1jwj6okBrn5YHc6RNdbvYL +BaQBskjkSqfAsuYCJgT5QD3Abpt+b82vhijRZP3ujOzfXaKq8aLCXIbwsDGfIqgP +nOe2BEQtuIWihx7l0SyDExGzxHDpIflmEpwmWxzO0+Xsfo93ZsEBaI3iMq/6u3u7 +WtCC/23FKVDV5lzSs+pamzXAG3SdIpWWsVw9/9LSNvAgdrUbrXiI3lE9oa8XTKeP +snaA7Hj6eE5oKgfyHOTFEarqm4+IRmH/XArMgu3e7NTRT3lGRG4hMZj9exOlW0NQ +tVrHT1t6FatTRz+auZxVGQfn1q6Zt0ev6zeNcEH+GLX5pEHIvWC7+oyoZ4HkreZP +mA/SxlKtlfvORy83GF/h +=DfXP +-----END PGP SIGNATURE----- diff --git a/rust-1.83.0-powerpc64-unknown-linux-gnu.tar.xz b/rust-1.83.0-powerpc64-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000..ead5097 --- /dev/null +++ b/rust-1.83.0-powerpc64-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0bc62191ca5fb655c0535b8935d94c28b5b601187eeb80bcf4928f6bae820594 +size 218928260 diff --git a/rust-1.83.0-powerpc64-unknown-linux-gnu.tar.xz.asc b/rust-1.83.0-powerpc64-unknown-linux-gnu.tar.xz.asc new file mode 100644 index 0000000..a32db71 --- /dev/null +++ b/rust-1.83.0-powerpc64-unknown-linux-gnu.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +wsFcBAABCgAQBQJnSHLvCRCFq5bm+hvl/gAAFgAP/iEFBcqwUSdWfXlz4ZTRYMJQ +LncMAXfhXtw1sFEVl2ybcvV1tbyob948VgI9Mm+y9e0KR2405XRy80P+gDBw1gFf +40ckn13A/m+vbqDeQrWm2w+mdes4YI+rWRq8tB72Fknlona5NLchB5KPN6xBXO3l +ReIYoLNhV+iW85PabxLWtIOSKChszRS3c/omQgor1493eoPT4dkfH+kkkhpWc7X9 +xYHKQ06UUqMx48vKqHLWRntb5XFnQHuHZjigugcwbTMLG9CEl/MZH3Jvg59SQlwG +u+3bYU/aJiYUqRqmFA8wX2IIXqtSUkya9plKKkPIIydtk6UpBfu96OZVeeJE7RI+ +XT95EbkY6kK/zE6x6luUZyvhAMpNwzerOJkIX6Wsx1vsIDx+pPTPPMSmCjhHPJBy +j2Mxlh/HZcorMf7G6VWjSTK7ntdIR3DFCBhmI8m9T37qqzzahvrhP6wY/kH+A2XA +igHkOwWf77Acrk+KMNnpRKfmTicrWURW28fWhtHg+CBLWgCjeC9DOGf9+ELtfTTd +oCvWeLeCVodpzhezLhANWcgyhBMMnHwRUpBivFfhfW5ks80Rf+KxE36Kw8t1sNpc +8bGFVwGOcEV5S89fvOfitAVMeokJexQJCt3dTKGre3S2l5ooqRzNu1F12VwdGjwX +fBJOK5TJQ4GsttTuDvM3 +=YP5U +-----END PGP SIGNATURE----- diff --git a/rust-1.83.0-powerpc64le-unknown-linux-gnu.tar.xz b/rust-1.83.0-powerpc64le-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000..5dd1cf8 --- /dev/null +++ b/rust-1.83.0-powerpc64le-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7f4c28eef31ea4b1f09e8eafe745234370d09cf42badcce5a15da3c738e5b92c +size 231986816 diff --git a/rust-1.83.0-powerpc64le-unknown-linux-gnu.tar.xz.asc b/rust-1.83.0-powerpc64le-unknown-linux-gnu.tar.xz.asc new file mode 100644 index 0000000..2896b2e --- /dev/null +++ b/rust-1.83.0-powerpc64le-unknown-linux-gnu.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +wsFcBAABCgAQBQJnSHLvCRCFq5bm+hvl/gAATCUP/2aNMIF1UY3mFgIKPNh4d2uI +13siDSsNhpWlPeF76K0+x3Whk4tM2wRbU8XetcCBQBrR5yVOTAUtH5dcL0si7ZBb +zN1joBMwd0d4syUVYzBqVHnU3lLcCeP6jFzEPgbxraTCLvvhapwgZProoLY1vSzG +NWMjeE0bGIobXXtBnZD3lANnpPYYc8vxRGHr3cKOqn2jfHO7HdvP1eeKy3ZMahvO +nKcBlLhgbNqSfjz3dCq76vWVcbf11/t1AiMv+iEJPIQLedJBKAYrhuIPwYcVZyZS +DKQyu6wLTBaXsLDqfI3vSFcpwNfiVMauhSAvEjxHy16k+l/XR+1jyY+B+vPNUKx1 +Kjrc/eY4Sr0rD2aXLK+aBQl4ge10UIuGZGWjXbt/OORSCoH2Ci3CdiSSEVTvTubW +GQajVEprZn/NS3l0VrdOtgnJ59w+gfiNUGwmwt5BPkQ+waSjX31BZEXpYB/p9S4t +kbkrWgt9OHo6+issZ8bqrvrUVwbx5Q30F7yZ1YwIVIxQRhRtEtMD+vrFwkmmGuEN +anWENht73UGpNBVg6WFGlTPRb+LFE5ZBMIbD7wy38/yo6wpOwibWcpiaSGI8aHKN +Xej11K9tPfmuWq5qY6jvSNhFtx8HhbBFT+I7yaEPAHAijWQHODkFwWX84DiCPuHw +wWyZDaYKtgKsApymr65H +=O3AP +-----END PGP SIGNATURE----- diff --git a/rust-1.83.0-riscv64gc-unknown-linux-gnu.tar.xz b/rust-1.83.0-riscv64gc-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000..99c82d0 --- /dev/null +++ b/rust-1.83.0-riscv64gc-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce9308beb0bb54560921821934625b9cdee01d8e6d269e252e9aaf630330b773 +size 218315040 diff --git a/rust-1.83.0-riscv64gc-unknown-linux-gnu.tar.xz.asc b/rust-1.83.0-riscv64gc-unknown-linux-gnu.tar.xz.asc new file mode 100644 index 0000000..481c016 --- /dev/null +++ b/rust-1.83.0-riscv64gc-unknown-linux-gnu.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +wsFcBAABCgAQBQJnSHLqCRCFq5bm+hvl/gAAfOgQAMoWoxZxwyeHx7tMLkmmDtW5 +8qfdYrWtb5wFz9AiQr4GS8DJKhmOjYcLgXj4vF2qMJPHNPTakKNr7c3XhPhOO7ho +hYSyUKUBroi0fMs5y/grwX8QmNNk3OpvjeGY4DJNUf7Esa14YX5FyDyxi8zn/Nmm +WVDjSFW9qxvCTkWu0FbVtV/VrKlImVA9jj6dWdOkNAI4yX3dX0Bch8j1LSWS00mt +TzQ5q1VWKEzPCwGSO2d57VA0T0zXYaqJFk+fo03BD0230eHS6XQGrnhtDAIfdDtt +7CL0oRWLLe9LlAc8zbw5pPQWmwm3lZZduuEZonGjyLJ+E9DnVH8wQum3z+1EYCPI +iEcf7p2QGs6/CQ2XsVGCUTb7jBnZDy/UqJbJ8MvhqropeT9dIhUyfTxjICKbrJsu +dM6A7+T4ylRqFQmyFyMjYQAhWcuPFVuIw7jPkqdmlLkkNDugQQ0YOeTCL5n3sN8E +uasL8DhBij1yo+0Z4faAbVmtSEW8BUosxiNxHurgGzocxblncWC2HaHBh1xTQTJp +yDKIXxywPr6C/Ujq+NXxeT5V9eP7qGytPd9ayy1grxDixQdKBcGqyhrlDpI24BY8 +E+Tucl4jA06QoGmthsioM9csJzBp3rcqNiOsPXwBcccJESFX/iFVKmq0EDg3D1bY +w/s4PONrti+1AnDVTEKL +=ux8l +-----END PGP SIGNATURE----- diff --git a/rust-1.83.0-s390x-unknown-linux-gnu.tar.xz b/rust-1.83.0-s390x-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000..ac9c6f7 --- /dev/null +++ b/rust-1.83.0-s390x-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b6043c0cbda239f74e874522816f5ac240cf78ca05c32f274bb1b7887be0cd4 +size 221194604 diff --git a/rust-1.83.0-s390x-unknown-linux-gnu.tar.xz.asc b/rust-1.83.0-s390x-unknown-linux-gnu.tar.xz.asc new file mode 100644 index 0000000..edcd0f6 --- /dev/null +++ b/rust-1.83.0-s390x-unknown-linux-gnu.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +wsFcBAABCgAQBQJnSHLvCRCFq5bm+hvl/gAApzMQAKf8qHvwa1+rA3pmtxNGoUSX +aC8VILaTrH7rc2VtmCaKDgCdIqm4slX+Q29vFbDlFG6uI85C/QohErvrxse1xUR4 +z41ON0DUu+P8uS8skrcUrNnR49EvLtNeyTryVmqHOssiAnSKhcWF9L9dCJbV1km1 +B+4J5OCTSe6Q4CUptw8K6hAqiOARJLCBQBJs1roWnS/dJSsUT4NKx9WpQwRrCP5L +mvFGdDVFWJgc+U2quLXN3vrAlw5lIDrlmmpR38/JTnERHkia3qMyxUq1lu9flbyK +xihOa61eN6YChB9DAAJpG+eeQtqD5ynnEHtHyR/UEG6LG3etnxSvU4on7mmJHSKh +mqKaFQvFQW8V4hzbF6cqmOY5gE5/wosd9+M8z41vNi0T9bL1EVnXLJDuKPz3vO6d +NK8SXcBLKC/44rqLdx2VCKjgVOMaqkbq4mbsTHfM5FU3Cf6+C/ANEnonhuihOwO0 +s/r6h3kIE3NbPDWZ4pSce6hycl8yCobmUywdp77aREfVCZ1oR5e9Zzz/VHHRvpN8 +IQGVOKVzIHxtLSpoHhyWVIUiHC2C9CvDeQJEz/OWNr6K/FG5E2udgxmt2a6SuVkR +wdo+IeLPolRZL7ImuxYgxqgGlQfRr4gPTqf+j86Q59Ad8PxyGxwvS95GWiQ0LAda +MOgAmEVyPpHLnaKriZmL +=VpSq +-----END PGP SIGNATURE----- diff --git a/rust-1.83.0-x86_64-unknown-linux-gnu.tar.xz b/rust-1.83.0-x86_64-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000..1e6eafe --- /dev/null +++ b/rust-1.83.0-x86_64-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b6467a0e8a6c5dca35269785c994e4d80d89754d6c600162cc9146f90c87ee08 +size 180329116 diff --git a/rust-1.83.0-x86_64-unknown-linux-gnu.tar.xz.asc b/rust-1.83.0-x86_64-unknown-linux-gnu.tar.xz.asc new file mode 100644 index 0000000..6b22fa7 --- /dev/null +++ b/rust-1.83.0-x86_64-unknown-linux-gnu.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +wsFcBAABCgAQBQJnSHLpCRCFq5bm+hvl/gAAig8QAIkpHgGcK8Qro38chTZlsvYz +AkhDVsc+I9j7L0mdw94vKFnUT3ll2DGrsJufqWPfX9hsopNjPWFpkIyvGfmUuLXA +YphYacq6RAhmxeqf76fKx2HHF9g06O9eenbpvyCYuxG+2zxh14TpZq/LSgqn2ILp +kQn4vVfLhGRL9cf4DBl4PcDJH0XRPkseU7490X4KurcQUh5dyBd0cXMDoVp96/8E +IDwh9qS9vaxUfjmTcKXWoAj4kIqnjQgJXQlRs8nw4HSBgscjOcjG+bWi+2VS9jG4 +a4Q7nNdyTudeP3db0dcG8LFynMQmYroSOKV6BAVShWGcFnMglP67+I11vJH9YDws +0potxDB3naBtGR558855rjle66vcfohwCHtbdQjebioJPIJOGIFI6WBvo3wlfLJn +tb8Ben5kHvUH1E5j/TXM5SEYHbPgo/wdTZMdBoTS6/TtiRgw00RsM5SvRRgrYeNY +vdw57PJhVeWixRPIkOU/MKV1ovBVuBmQUb9PXcQInZSOmNC7y1NaUX8BUTIW3PZI +dRn2l63xsJhkpT+RyhVzE8Uk5VLCzXBDpIEayeH2caZWMCLesPbCJM5ZFXFoeuWh +Ff9q+2/f6ZZ4zoEHASS1mXtIDrx48N+ZqzBTvh8Q7ZrIbYzQfKAwez3qJ3LqIKMz +r0yAZj5bHoUHEcK69Sk4 +=2wjA +-----END PGP SIGNATURE----- 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.83-rpmlintrc b/rust1.83-rpmlintrc new file mode 100644 index 0000000..ea48491 --- /dev/null +++ b/rust1.83-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.83.changes b/rust1.83.changes new file mode 100644 index 0000000..e6ef884 --- /dev/null +++ b/rust1.83.changes @@ -0,0 +1,222 @@ +------------------------------------------------------------------- +Sat Nov 30 05:23:17 UTC 2024 - Xiaoguang Wang + +- Add tests-run-make-compiler-builtins-failed.patch: test failed on + run-make/compiler-builtins. + +------------------------------------------------------------------- +Sat Nov 30 05:20:17 UTC 2024 - Xiaoguang Wang + +Version 1.83.0 (2024-11-28) +========================== + +Language +-------- +- [Stabilize `&mut`, `*mut`, `&Cell`, and `*const Cell` in const.](https://github.com/rust-lang/rust/pull/129195) +- [Allow creating references to statics in `const` initializers.](https://github.com/rust-lang/rust/pull/129759) +- [Implement raw lifetimes and labels (`'r#ident`).](https://github.com/rust-lang/rust/pull/126452) +- [Define behavior when atomic and non-atomic reads race.](https://github.com/rust-lang/rust/pull/128778) +- [Non-exhaustive structs may now be empty.](https://github.com/rust-lang/rust/pull/128934) +- [Disallow implicit coercions from places of type `!`](https://github.com/rust-lang/rust/pull/129392) +- [`const extern` functions can now be defined for other calling conventions.](https://github.com/rust-lang/rust/pull/129753) +- [Stabilize `expr_2021` macro fragment specifier in all editions.](https://github.com/rust-lang/rust/pull/129972) +- [The `non_local_definitions` lint now fires on less code and warns by default.](https://github.com/rust-lang/rust/pull/127117) + +Compiler +-------- +- [Deprecate unsound `-Csoft-float` flag.](https://github.com/rust-lang/rust/pull/129897) +- Add many new tier 3 targets: + - [`aarch64_unknown_nto_qnx700`](https://github.com/rust-lang/rust/pull/127897) + - [`arm64e-apple-tvos`](https://github.com/rust-lang/rust/pull/130614) + - [`armv7-rtems-eabihf`](https://github.com/rust-lang/rust/pull/127021) + - [`loongarch64-unknown-linux-ohos`](https://github.com/rust-lang/rust/pull/130750) + - [`riscv32-wrs-vxworks` and `riscv64-wrs-vxworks`](https://github.com/rust-lang/rust/pull/130549) + - [`riscv32{e|em|emc}-unknown-none-elf`](https://github.com/rust-lang/rust/pull/130555) + - [`x86_64-unknown-hurd-gnu`](https://github.com/rust-lang/rust/pull/128345) + - [`x86_64-unknown-trusty`](https://github.com/rust-lang/rust/pull/130453) + +Refer to Rust's [platform support page][platform-support-doc] +for more information on Rust's tiered platform support. + +Libraries +--------- +- [Implement `PartialEq` for `ExitCode`.](https://github.com/rust-lang/rust/pull/127633) +- [Document that `catch_unwind` can deal with foreign exceptions without UB, although the exact behavior is unspecified.](https://github.com/rust-lang/rust/pull/128321) +- [Implement `Default` for `HashMap`/`HashSet` iterators that don't already have it.](https://github.com/rust-lang/rust/pull/128711) +- [Bump Unicode to version 16.0.0.](https://github.com/rust-lang/rust/pull/130183) +- [Change documentation of `ptr::add`/`sub` to not claim equivalence with `offset`.](https://github.com/rust-lang/rust/pull/130229) + +Stabilized APIs +--------------- + +- [`BufRead::skip_until`](https://doc.rust-lang.org/stable/std/io/trait.BufRead.html#method.skip_until) +- [`ControlFlow::break_value`](https://doc.rust-lang.org/stable/core/ops/enum.ControlFlow.html#method.break_value) +- [`ControlFlow::continue_value`](https://doc.rust-lang.org/stable/core/ops/enum.ControlFlow.html#method.continue_value) +- [`ControlFlow::map_break`](https://doc.rust-lang.org/stable/core/ops/enum.ControlFlow.html#method.map_break) +- [`ControlFlow::map_continue`](https://doc.rust-lang.org/stable/core/ops/enum.ControlFlow.html#method.map_continue) +- [`DebugList::finish_non_exhaustive`](https://doc.rust-lang.org/stable/core/fmt/struct.DebugList.html#method.finish_non_exhaustive) +- [`DebugMap::finish_non_exhaustive`](https://doc.rust-lang.org/stable/core/fmt/struct.DebugMap.html#method.finish_non_exhaustive) +- [`DebugSet::finish_non_exhaustive`](https://doc.rust-lang.org/stable/core/fmt/struct.DebugSet.html#method.finish_non_exhaustive) +- [`DebugTuple::finish_non_exhaustive`](https://doc.rust-lang.org/stable/core/fmt/struct.DebugTuple.html#method.finish_non_exhaustive) +- [`ErrorKind::ArgumentListTooLong`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.ArgumentListTooLong) +- [`ErrorKind::Deadlock`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.Deadlock) +- [`ErrorKind::DirectoryNotEmpty`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.DirectoryNotEmpty) +- [`ErrorKind::ExecutableFileBusy`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.ExecutableFileBusy) +- [`ErrorKind::FileTooLarge`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.FileTooLarge) +- [`ErrorKind::HostUnreachable`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.HostUnreachable) +- [`ErrorKind::IsADirectory`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.IsADirectory) +- [`ErrorKind::NetworkDown`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.NetworkDown) +- [`ErrorKind::NetworkUnreachable`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.NetworkUnreachable) +- [`ErrorKind::NotADirectory`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.NotADirectory) +- [`ErrorKind::NotSeekable`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.NotSeekable) +- [`ErrorKind::ReadOnlyFilesystem`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.ReadOnlyFilesystem) +- [`ErrorKind::ResourceBusy`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.ResourceBusy) +- [`ErrorKind::StaleNetworkFileHandle`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.StaleNetworkFileHandle) +- [`ErrorKind::StorageFull`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.StorageFull) +- [`ErrorKind::TooManyLinks`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.TooManyLinks) +- [`Option::get_or_insert_default`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.get_or_insert_default) +- [`Waker::data`](https://doc.rust-lang.org/stable/core/task/struct.Waker.html#method.data) +- [`Waker::new`](https://doc.rust-lang.org/stable/core/task/struct.Waker.html#method.new) +- [`Waker::vtable`](https://doc.rust-lang.org/stable/core/task/struct.Waker.html#method.vtable) +- [`char::MIN`](https://doc.rust-lang.org/stable/core/primitive.char.html#associatedconstant.MIN) +- [`hash_map::Entry::insert_entry`](https://doc.rust-lang.org/stable/std/collections/hash_map/enum.Entry.html#method.insert_entry) +- [`hash_map::VacantEntry::insert_entry`](https://doc.rust-lang.org/stable/std/collections/hash_map/struct.VacantEntry.html#method.insert_entry) + +These APIs are now stable in const contexts: + +- [`Cell::into_inner`](https://doc.rust-lang.org/stable/core/cell/struct.Cell.html#method.into_inner) +- [`Duration::as_secs_f32`](https://doc.rust-lang.org/stable/core/time/struct.Duration.html#method.as_secs_f32) +- [`Duration::as_secs_f64`](https://doc.rust-lang.org/stable/core/time/struct.Duration.html#method.as_secs_f64) +- [`Duration::div_duration_f32`](https://doc.rust-lang.org/stable/core/time/struct.Duration.html#method.div_duration_f32) +- [`Duration::div_duration_f64`](https://doc.rust-lang.org/stable/core/time/struct.Duration.html#method.div_duration_f64) +- [`MaybeUninit::as_mut_ptr`](https://doc.rust-lang.org/stable/core/mem/union.MaybeUninit.html#method.as_mut_ptr) +- [`NonNull::as_mut`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.as_mut) +- [`NonNull::copy_from`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.copy_from) +- [`NonNull::copy_from_nonoverlapping`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.copy_from_nonoverlapping) +- [`NonNull::copy_to`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.copy_to) +- [`NonNull::copy_to_nonoverlapping`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.copy_to_nonoverlapping) +- [`NonNull::slice_from_raw_parts`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.slice_from_raw_parts) +- [`NonNull::write`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.write) +- [`NonNull::write_bytes`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.write_bytes) +- [`NonNull::write_unaligned`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.write_unaligned) +- [`OnceCell::into_inner`](https://doc.rust-lang.org/stable/core/cell/struct.OnceCell.html#method.into_inner) +- [`Option::as_mut`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.as_mut) +- [`Option::expect`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.expect) +- [`Option::replace`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.replace) +- [`Option::take`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.take) +- [`Option::unwrap`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.unwrap) +- [`Option::unwrap_unchecked`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.unwrap_unchecked) +- [`Option::<&_>::copied`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.copied) +- [`Option::<&mut _>::copied`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.copied-1) +- [`Option::>::flatten`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.flatten) +- [`Option::>::transpose`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.transpose) +- [`RefCell::into_inner`](https://doc.rust-lang.org/stable/core/cell/struct.RefCell.html#method.into_inner) +- [`Result::as_mut`](https://doc.rust-lang.org/stable/core/result/enum.Result.html#method.as_mut) +- [`Result::<&_, _>::copied`](https://doc.rust-lang.org/stable/core/result/enum.Result.html#method.copied) +- [`Result::<&mut _, _>::copied`](https://doc.rust-lang.org/stable/core/result/enum.Result.html#method.copied-1) +- [`Result::, _>::transpose`](https://doc.rust-lang.org/stable/core/result/enum.Result.html#method.transpose) +- [`UnsafeCell::get_mut`](https://doc.rust-lang.org/stable/core/cell/struct.UnsafeCell.html#method.get_mut) +- [`UnsafeCell::into_inner`](https://doc.rust-lang.org/stable/core/cell/struct.UnsafeCell.html#method.into_inner) +- [`array::from_mut`](https://doc.rust-lang.org/stable/core/array/fn.from_mut.html) +- [`char::encode_utf8`](https://doc.rust-lang.org/stable/core/primitive.char.html#method.encode_utf8) +- [`{float}::classify`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.classify) +- [`{float}::is_finite`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_finite) +- [`{float}::is_infinite`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_infinite) +- [`{float}::is_nan`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_nan) +- [`{float}::is_normal`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_normal) +- [`{float}::is_sign_negative`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_sign_negative) +- [`{float}::is_sign_positive`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_sign_positive) +- [`{float}::is_subnormal`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_subnormal) +- [`{float}::from_bits`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.from_bits) +- [`{float}::from_be_bytes`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.from_be_bytes) +- [`{float}::from_le_bytes`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.from_le_bytes) +- [`{float}::from_ne_bytes`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.from_ne_bytes) +- [`{float}::to_bits`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.to_bits) +- [`{float}::to_be_bytes`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.to_be_bytes) +- [`{float}::to_le_bytes`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.to_le_bytes) +- [`{float}::to_ne_bytes`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.to_ne_bytes) +- [`mem::replace`](https://doc.rust-lang.org/stable/core/mem/fn.replace.html) +- [`ptr::replace`](https://doc.rust-lang.org/stable/core/ptr/fn.replace.html) +- [`ptr::slice_from_raw_parts_mut`](https://doc.rust-lang.org/stable/core/ptr/fn.slice_from_raw_parts_mut.html) +- [`ptr::write`](https://doc.rust-lang.org/stable/core/ptr/fn.write.html) +- [`ptr::write_unaligned`](https://doc.rust-lang.org/stable/core/ptr/fn.write_unaligned.html) +- [`<*const _>::copy_to`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.copy_to) +- [`<*const _>::copy_to_nonoverlapping`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.copy_to_nonoverlapping) +- [`<*mut _>::copy_from`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.copy_from) +- [`<*mut _>::copy_from_nonoverlapping`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.copy_from_nonoverlapping) +- [`<*mut _>::copy_to`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.copy_to-1) +- [`<*mut _>::copy_to_nonoverlapping`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.copy_to_nonoverlapping-1) +- [`<*mut _>::write`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.write) +- [`<*mut _>::write_bytes`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.write_bytes) +- [`<*mut _>::write_unaligned`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.write_unaligned) +- [`slice::from_mut`](https://doc.rust-lang.org/stable/core/slice/fn.from_mut.html) +- [`slice::from_raw_parts_mut`](https://doc.rust-lang.org/stable/core/slice/fn.from_raw_parts_mut.html) +- [`<[_]>::first_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.first_mut) +- [`<[_]>::last_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.last_mut) +- [`<[_]>::first_chunk_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.first_chunk_mut) +- [`<[_]>::last_chunk_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.last_chunk_mut) +- [`<[_]>::split_at_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_at_mut) +- [`<[_]>::split_at_mut_checked`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_at_mut_checked) +- [`<[_]>::split_at_mut_unchecked`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_at_mut_unchecked) +- [`<[_]>::split_first_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_first_mut) +- [`<[_]>::split_last_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_last_mut) +- [`<[_]>::split_first_chunk_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_first_chunk_mut) +- [`<[_]>::split_last_chunk_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_last_chunk_mut) +- [`str::as_bytes_mut`](https://doc.rust-lang.org/stable/core/primitive.str.html#method.as_bytes_mut) +- [`str::as_mut_ptr`](https://doc.rust-lang.org/stable/core/primitive.str.html#method.as_mut_ptr) +- [`str::from_utf8_unchecked_mut`](https://doc.rust-lang.org/stable/core/str/fn.from_utf8_unchecked_mut.html) + + +Cargo +----- +- [Introduced a new `CARGO_MANIFEST_PATH` environment variable, similar to `CARGO_MANIFEST_DIR` but pointing directly to the manifest file.](https://github.com/rust-lang/cargo/pull/14404/) +- [Added `package.autolib` to the manifest, allowing `[lib]` auto-discovery to be disabled.](https://github.com/rust-lang/cargo/pull/14591/) +- [Declare support level for each crate in Cargo's Charter / crate docs.](https://github.com/rust-lang/cargo/pull/14600/) +- [Declare new Intentional Artifacts as 'small' changes.](https://github.com/rust-lang/cargo/pull/14599/) + + +Rustdoc +------- + +- [The sidebar / hamburger menu table of contents now includes the `# headers` from the main item's doc comment](https://github.com/rust-lang/rust/pull/120736). This is similar to a third-party feature provided by the rustdoc-search-enhancements browser extension. + + +Compatibility Notes +------------------- +- [Warn against function pointers using unsupported ABI strings.](https://github.com/rust-lang/rust/pull/128784) +- [Check well-formedness of the source type's signature in fn pointer casts.](https://github.com/rust-lang/rust/pull/129021) This partly closes a soundness hole that comes when casting a function item to function pointer +- [Use equality instead of subtyping when resolving type dependent paths.](https://github.com/rust-lang/rust/pull/129073) +- Linking on macOS now correctly includes Rust's default deployment target. Due to a linker bug, you might have to pass `MACOSX_DEPLOYMENT_TARGET` or fix your `#[link]` attributes to point to the correct frameworks. See . +- [Rust will now correctly raise an error for `repr(Rust)` written on non-`struct`/`enum`/`union` items, since it previous did not have any effect.](https://github.com/rust-lang/rust/pull/129422) +- The future incompatibility lint `deprecated_cfg_attr_crate_type_name` [has been made into a hard error](https://github.com/rust-lang/rust/pull/129670). It was used to deny usage of `#![crate_type]` and `#![crate_name]` attributes in `#![cfg_attr]`, which required a hack in the compiler to be able to change the used crate type and crate name after cfg expansion. + Users can use `--crate-type` instead of `#![cfg_attr(..., crate_type = "...")]` and `--crate-name` instead of `#![cfg_attr(..., crate_name = "...")]` when running `rustc`/`cargo rustc` on the command line. + Use of those two attributes outside of `#![cfg_attr]` continue to be fully supported. +- Until now, paths into the sysroot were always prefixed with `/rustc/$hash` in diagnostics, codegen, backtrace, e.g. + ``` + thread 'main' panicked at 'hello world', map-panic.rs:2:50 + stack backtrace: + 0: std::panicking::begin_panic + at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/panicking.rs:616:12 + 1: map_panic::main::{{closure}} + at ./map-panic.rs:2:50 + 2: core::option::Option::map + at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/option.rs:929:29 + 3: map_panic::main + at ./map-panic.rs:2:30 + 4: core::ops::function::FnOnce::call_once + at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/ops/function.rs:248:5 + note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace. + ``` + [RFC 3127 said](https://rust-lang.github.io/rfcs/3127-trim-paths.html#changing-handling-of-sysroot-path-in-rustc) + > We want to change this behaviour such that, when `rust-src` source files can be discovered, the virtual path is discarded and therefore the local path will be embedded, unless there is a `--remap-path-prefix` that causes this local path to be remapped in the usual way. + + [#129687](https://github.com/rust-lang/rust/pull/129687) implements this behaviour, when `rust-src` is present at compile time, `rustc` replaces `/rustc/$hash` with a real path into the local `rust-src` component with best effort. + To sanitize this, users must explicitly supply `--remap-path-prefix==foo` or not have the `rust-src` component installed. + - The allow-by-default `missing_docs` lint used to disable itself when invoked through `rustc --test`/`cargo test`, resulting in `#[expect(missing_docs)]` emitting false positives due to the expectation being wrongly unfulfilled. This behavior [has now been removed](https://github.com/rust-lang/rust/pull/130025), which allows `#[expect(missing_docs)]` to be fulfilled in all scenarios, but will also report new `missing_docs` diagnostics for publicly reachable `#[cfg(test)]` items, [integration test](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#integration-tests) crate-level documentation, and publicly reachable items in integration tests. +- [The `armv8r-none-eabihf` target now uses the Armv8-R required set of floating-point features.](https://github.com/rust-lang/rust/pull/130295) +- [Fix a soundness bug where rustc wouldn't detect unconstrained higher-ranked lifetimes in a `dyn Trait`'s associated types that occur due to supertraits.](https://github.com/rust-lang/rust/pull/130367) +- [Update the minimum external LLVM version to 18.](https://github.com/rust-lang/rust/pull/130487) +- [Remove `aarch64-fuchsia` and `x86_64-fuchsia` target aliases in favor of `aarch64-unknown-fuchsia` and `x86_64-unknown-fuchsia` respectively.](https://github.com/rust-lang/rust/pull/130657) +- [The ABI-level exception class of a Rust panic is now encoded with native-endian bytes, so it is legible in hex dumps.](https://github.com/rust-lang/rust/pull/130897) +- [Visual Studio 2013 is no longer supported for MSVC targets.](https://github.com/rust-lang/rust/pull/131070) +- [The sysroot no longer contains the `std` dynamic library in its top-level `lib/` dir.](https://github.com/rust-lang/rust/pull/131188) diff --git a/rust1.83.spec b/rust1.83.spec new file mode 100644 index 0000000..43ffb9c --- /dev/null +++ b/rust1.83.spec @@ -0,0 +1,764 @@ +# +# spec file for package rust1.83 +# +# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2019 Luke Jones, luke@ljones.dev +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%global version_suffix 1.83 +%global version_current 1.83.0 +%global version_previous 1.82.0 + +%if 0%{?sle_version} <= 150900 && 0%{?suse_version} < 1599 +# We may need a minimum gcc version for some linker flags +# This is especially true on leap/sle +# +# ⚠️ 11 or greater is required for a number of linker flags to be supported in sle. +# +%global gcc_version 13 +%endif + +#KEEP NOSOURCE DEBUGINFO + +%define obsolete_rust_versioned() \ +Obsoletes: %{1}1.82%{?2:-%{2}} \ +Obsoletes: %{1}1.81%{?2:-%{2}} \ +Obsoletes: %{1}1.80%{?2:-%{2}} \ +Obsoletes: %{1}1.79%{?2:-%{2}} \ +Obsoletes: %{1}1.78%{?2:-%{2}} \ +Obsoletes: %{1}1.77%{?2:-%{2}} \ +Obsoletes: %{1}1.76%{?2:-%{2}} \ +Obsoletes: %{1}1.75%{?2:-%{2}} \ +Obsoletes: %{1}1.74%{?2:-%{2}} \ +Obsoletes: %{1}1.73%{?2:-%{2}} \ +Obsoletes: %{1}1.72%{?2:-%{2}} \ +Obsoletes: %{1}1.71%{?2:-%{2}} \ +Obsoletes: %{1}1.70%{?2:-%{2}} \ +Obsoletes: %{1}1.69%{?2:-%{2}} \ +Obsoletes: %{1}1.68%{?2:-%{2}} \ +Obsoletes: %{1}1.67%{?2:-%{2}} \ +Obsoletes: %{1}1.66%{?2:-%{2}} \ +Obsoletes: %{1}1.65%{?2:-%{2}} \ +Obsoletes: %{1}1.64%{?2:-%{2}} \ +Obsoletes: %{1}1.63%{?2:-%{2}} \ +Obsoletes: %{1}1.62%{?2:-%{2}} + +# ⚠️ Must leave 1.62 here due to kernel requirements. + +# Build the rust target triple. +# Some rust arches don't match what SUSE labels them. +%global rust_arch %{_arch} +%global abi gnu + +%ifarch armv7hl +%global rust_arch armv7 +%global abi gnueabihf +%endif + +%ifarch armv6hl +%global rust_arch arm +%global abi gnueabihf +%endif + +%ifarch ppc +%global rust_arch powerpc +%endif + +%ifarch ppc64 +%global rust_arch powerpc64 +%endif + +%ifarch ppc64le +%global rust_arch powerpc64le +%endif + +%ifarch riscv64 +%global rust_arch riscv64gc +%endif + +# Must restrict the x86 build to i686 since i586 is currently +# unsupported +%ifarch %{ix86} +%global rust_arch i686 +%endif + +%global rust_triple %{rust_arch}-unknown-linux-%{abi} + +# Web Assembly targets +%define rust_wasm_targets %{?with_wasm32:,wasm32-unknown-unknown%{?with_wasi:,wasm32-wasi}} + +# Base Rust targets for all architectures +%define rust_base_targets %{rust_triple}%{rust_wasm_targets} + +# For x86-64 add the x86_64-unknown-none target +%ifarch x86_64 +%define rust_target_list %{rust_base_targets},x86_64-unknown-none +%else +%define rust_target_list %{rust_base_targets} +%endif + +# All sources and bootstraps are fetched form here +%global dl_url https://static.rust-lang.org/dist + +# Rust doesn't function well when put in /usr/lib64 +%global common_libdir %{_prefix}/lib +%global rustlibdir %{common_libdir}/rustlib + +# Detect if sccache has been requested by the build +%if "%{getenv:RUSTC_WRAPPER}" == "sccache" +%bcond_without sccache +%else +%bcond_with sccache +%endif + +# === rust arch support tiers === +# https://doc.rust-lang.org/nightly/rustc/platform-support.html +# tl;dr only aarch64, x86_64 and i686 are guaranteed to work. +# +# armv6/7, s390x, ppc[64[le]], riscv are all "guaranteed to build" only +# but may not always work. + +# === broken distro llvm === +# In almost all cases, distro llvm doesn't work for rust. Rust additionally provides +# patches and features in their bundled llvm. We use it by default. +# + +# === Use clang/lld during build if possible === +# i586 - unable to link libatomic +# aarch64 - fails due to an invalid linker flag +# +%bcond_with llvmtools + +# Depending on our environment, we may need to configure our linker in a different manner. + +# If we elect for llvm, always use clang. +%if %{with llvmtools} +%define rust_linker clang +%else +%if 0%{?gcc_version} != 0 +%define rust_linker gcc-%{gcc_version} +%else +%define rust_linker cc +%endif +%endif + +# === Enable wasm/wasi on t1 targets === +%if 0%{?is_opensuse} == 1 && 0%{?suse_version} >= 1699 +%ifarch x86_64 aarch64 +%bcond_without wasm32 +%bcond_without wasi +%else +%bcond_with wasm32 +%bcond_with wasi +%endif +%else +%bcond_with wasm32 +%bcond_with wasi +%endif + +# Test is done in a different multibuild package (rustXXX-test). This +# package will replace the local-rust-root and use the systems's one +# from the rustXXX package itself. This will exercise the compiler, +# even tho, the tests will require more compilation. If we do not +# agree on this model we can drop the _multibuild option and do the +# pct check as a part of the main spec. + +%global flavor @BUILD_FLAVOR@%{nil} +%if "%{flavor}" == "test" +%define psuffix -test +%bcond_without test +%else +%define psuffix %{nil} +%bcond_with test +%endif + +# """ +# Do not use parallel codegen in order to +# a) not exhaust memory on build-machines and +# b) generate the fastest possible binary +# at the cost of longer build times for this package +# """ +# +# These claims are incorrect +# a) codegen=1, actually consumes MORE memory due to the fact that the full +# code unit is then LTO'd in a single pass. This can cause LLVM to internally OOM +# especially if the machine has less than 1G of ram, and this is documented: +# * https://github.com/rust-lang/rust/issues/85598 +# it has also been observed in OBS during builds of 1.52 and 1.53 +# +# b) the performance gains from codegen=1 are minimal at best, and not worth +# us messing about with these values - especially when the rust language team +# probably know more about how to set and tune these based on data and research +# +# Debuginfo can exhaust memory on these architecture workers +%ifarch %{arm} %{ix86} +%define debug_info --debuginfo-level=0 --debuginfo-level-rustc=0 --debuginfo-level-std=0 --debuginfo-level-tools=0 --debuginfo-level-tests=0 +%else +%define debug_info %{nil} +%endif + +%global rustflags -Clink-arg=-Wl,-z,relro,-z,now + +# Exclude implicitly-scanned Provides, especially the libLLVM.so ones: +%global __provides_exclude_from ^%{rustlibdir}/.*$ + +Name: rust%{version_suffix}%{psuffix} +Version: %{version_current} +Release: 0 +Summary: A systems programming language +License: Apache-2.0 OR MIT +Group: Development/Languages/Rust +URL: https://www.rust-lang.org +Source0: %{dl_url}/rustc-%{version}-src.tar.xz +Source1: rust.keyring +%if %{without test} +Source99: %{name}-rpmlintrc +%endif +Source100: %{dl_url}/rust-%{version_current}-x86_64-unknown-linux-gnu.tar.xz +NoSource: 100 +Source101: %{dl_url}/rust-%{version_current}-i686-unknown-linux-gnu.tar.xz +NoSource: 101 +Source102: %{dl_url}/rust-%{version_current}-aarch64-unknown-linux-gnu.tar.xz +NoSource: 102 +Source103: %{dl_url}/rust-%{version_current}-armv7-unknown-linux-gnueabihf.tar.xz +NoSource: 103 +Source104: %{dl_url}/rust-%{version_current}-arm-unknown-linux-gnueabihf.tar.xz +NoSource: 104 +Source105: %{dl_url}/rust-%{version_current}-powerpc64-unknown-linux-gnu.tar.xz +NoSource: 105 +Source106: %{dl_url}/rust-%{version_current}-powerpc64le-unknown-linux-gnu.tar.xz +NoSource: 106 +Source107: %{dl_url}/rust-%{version_current}-s390x-unknown-linux-gnu.tar.xz +NoSource: 107 +Source108: %{dl_url}/rust-%{version_current}-powerpc-unknown-linux-gnu.tar.xz +NoSource: 108 +Source109: %{dl_url}/rust-%{version_current}-riscv64gc-unknown-linux-gnu.tar.xz +NoSource: 109 +Source200: %{dl_url}/rust-%{version_current}-x86_64-unknown-linux-gnu.tar.xz.asc +NoSource: 200 +Source201: %{dl_url}/rust-%{version_current}-i686-unknown-linux-gnu.tar.xz.asc +NoSource: 201 +Source202: %{dl_url}/rust-%{version_current}-aarch64-unknown-linux-gnu.tar.xz.asc +NoSource: 202 +Source203: %{dl_url}/rust-%{version_current}-armv7-unknown-linux-gnueabihf.tar.xz.asc +NoSource: 203 +Source204: %{dl_url}/rust-%{version_current}-arm-unknown-linux-gnueabihf.tar.xz.asc +NoSource: 204 +Source205: %{dl_url}/rust-%{version_current}-powerpc64-unknown-linux-gnu.tar.xz.asc +NoSource: 205 +Source206: %{dl_url}/rust-%{version_current}-powerpc64le-unknown-linux-gnu.tar.xz.asc +NoSource: 206 +Source207: %{dl_url}/rust-%{version_current}-s390x-unknown-linux-gnu.tar.xz.asc +NoSource: 207 +Source208: %{dl_url}/rust-%{version_current}-powerpc-unknown-linux-gnu.tar.xz.asc +NoSource: 208 +Source209: %{dl_url}/rust-%{version_current}-riscv64gc-unknown-linux-gnu.tar.xz.asc +NoSource: 209 +# Make factory-auto stop complaining... +Source1000: README.suse-maint + +# PATCH-FIX-OPENSUSE: edit src/librustc_llvm/build.rs to ignore GCC incompatible flag +Patch0: ignore-Wstring-conversion.patch +Patch1: ppc64le-float.patch +Patch2: tests-run-make-compiler-builtins-failed.patch +# IMPORTANT - To generate patches for submodules in git so they apply relatively you can use +# git format-patch --text --dst-prefix=b/src/tools/cargo/ HEAD~2 + +BuildRequires: chrpath +BuildRequires: curl +# BUG - fdupes on leap/sle causes issues with debug info +%if 0%{?is_opensuse} == 1 && 0%{?suse_version} >= 1699 +BuildRequires: fdupes +%endif +BuildRequires: pkgconfig +BuildRequires: procps +BuildRequires: python3-base +BuildRequires: util-linux +BuildRequires: pkgconfig(libcurl) +BuildRequires: pkgconfig(openssl) +BuildRequires: pkgconfig(zlib) +# Set requires appropriately +%if %with sccache +BuildRequires: sccache +%else +BuildRequires: ccache +%endif + +# For linking to platform +Requires: glibc-devel +# Rustc doesn't really do much without Cargo, but you know, if you wanna yolo that ... +Recommends: cargo +# For static linking +Recommends: glibc-devel-static + +%if %{with wasi} +BuildRequires: wasi-libc +%endif + +%if %{with llvmtools} +BuildRequires: clang +BuildRequires: libstdc++-devel +BuildRequires: lld +Requires: clang +Requires: lld +%else +%if 0%{?gcc_version} != 0 +BuildRequires: gcc%{gcc_version}-c++ +Requires: gcc%{gcc_version} +%else +BuildRequires: gcc-c++ +Requires: gcc +%endif +%endif + +# CMake and Ninja required to drive the bundled llvm build. +# Cmake is also needed in tests. +%if 0%{?sle_version} >= 120000 && 0%{?sle_version} <= 150300 +# In these distros cmake is 2.x, or 3.X < 3.13, so we need cmake3 for building llvm. +BuildRequires: cmake3 >= 3.20.0 +%else +BuildRequires: cmake >= 3.20.0 +%endif + +# To build rust-lld +BuildRequires: ninja + +%if %{with test} +BuildRequires: cargo%{version_suffix} = %{version} +BuildRequires: rust%{version_suffix} = %{version} +# Static linking tests need this. +BuildRequires: glibc-devel-static +BuildRequires: git + +%if %{with wasm32} +BuildRequires: nodejs-default +%endif + +# End with test +%endif + +%obsolete_rust_versioned rust +Conflicts: rust+rustc < %{version} +Conflicts: rustc-bootstrap +Provides: rust+rustc = %{version} +Conflicts: rust-std < %{version} +Obsoletes: rust-std < %{version} +Provides: rust-std = %{version} +Conflicts: rust-std-static < %{version} +Obsoletes: rust-std-static < %{version} +Provides: rust-std-static = %{version} +Conflicts: rust-gdb < %{version} +Obsoletes: rust-gdb < %{version} +Provides: rust-gdb = %{version} + +%if %{without test} +# Restrict the architectures as building rust relies on being +# initially bootstrapped before we can build the n+1 release +ExclusiveArch: x86_64 %{arm} aarch64 ppc ppc64 ppc64le s390x %{ix86} riscv64 +%ifarch %{ix86} +ExclusiveArch: i686 +%endif +%else +# Restrict for Tier 1 targets (but we should report bugs in Tier 2) +# https://doc.rust-lang.org/nightly/rustc/platform-support.html#tier-1-with-host-tools +ExclusiveArch: x86_64 i686 aarch64 +%endif + +%description +Rust is a systems programming language focused on three goals: safety, +speed, and concurrency. It maintains these goals without having a +garbage collector, making it a useful language for a number of use +cases other languages are not good at: embedding in other languages, +programs with specific space and time requirements, and writing +low-level code, like device drivers and operating systems. It improves +on current languages targeting this space by having a number of +compile-time safety checks that produce no runtime overhead, while +eliminating all data races. Rust also aims to achieve "zero-cost +abstractions", even though some of these abstractions feel like those +of a high-level language. Even then, Rust still allows precise control +like a low-level language would. + +%package -n cargo%{version_suffix} +Summary: The Rust package manager +License: Apache-2.0 OR MIT +Group: Development/Languages/Rust +Requires: rust-std = %{version} +Obsoletes: cargo-vendor < %{version} +Provides: cargo-vendor = %{version} +Provides: rust+cargo = %{version} +%obsolete_rust_versioned cargo + +%description -n cargo%{version_suffix} +Cargo downloads dependencies of Rust projects and compiles it. + +%package src +Summary: The Rust Standard Library Source +License: Apache-2.0 OR MIT +Group: Development/Languages/Rust +Requires: rust-std = %{version} +BuildArch: noarch + +%description src +Rust Stanard Library Sources are required for building some types of projects + +%prep +# Previously the stage0 compiler was skipped in test builds, but there are now +# tests in rust's source tree that require it. +%ifarch x86_64 +%setup -q -T -b 100 -n rust-%{version_current}-%{rust_triple} +%endif +%ifarch %{ix86} +%setup -q -T -b 101 -n rust-%{version_current}-%{rust_triple} +%endif +%ifarch aarch64 +%setup -q -T -b 102 -n rust-%{version_current}-%{rust_triple} +%endif +%ifarch armv7hl +%setup -q -T -b 103 -n rust-%{version_current}-%{rust_triple} +%endif +%ifarch armv6hl +%setup -q -T -b 104 -n rust-%{version_current}-%{rust_triple} +%endif +%ifarch ppc64 +%setup -q -T -b 105 -n rust-%{version_current}-%{rust_triple} +%endif +%ifarch ppc64le +%setup -q -T -b 106 -n rust-%{version_current}-%{rust_triple} +%endif +%ifarch s390x +%setup -q -T -b 107 -n rust-%{version_current}-%{rust_triple} +%endif +%ifarch ppc +%setup -q -T -b 108 -n rust-%{version_current}-%{rust_triple} +%endif +%ifarch riscv64 +%setup -q -T -b 109 -n rust-%{version_current}-%{rust_triple} +%endif +./install.sh --components=cargo,rustc,rust-std-%{rust_triple} --prefix=.%{_prefix} --disable-ldconfig + +%global rust_root %{_builddir}/rust-%{version_current}-%{rust_triple}%{_prefix} + +%autosetup -p1 -n rustc-%{version}-src + +# We never enable emscripten. +rm -rf src/llvm-emscripten/ +# We never enable other LLVM tools. +rm -rf src/tools/clang +rm -rf src/tools/lldb + +# Fix rpmlint error "This script uses 'env' as an interpreter" +sed -i '1s|#!%{_bindir}/env python|#!%{_bindir}/python3|' library/core/src/unicode/printable.py +chmod +x library/core/src/unicode/printable.py + +# Debugging for if anything goes south - OBS does like to lie about resources on builders. +lscpu +free -h +df -h + +%build + +# Create exports file +# Keep all the "export VARIABLE" together here, so they can be +# reread in the %%install section below. +# If the environments between build and install and different, +# everything will be rebuilt during installation! + +%if %{with llvmtools} +cat > .env.sh < .env.sh < .env.sh <> .env.sh <> main.rs <