From 892f9b15b25186e55400f751ecb5199819e046e6 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Nov 03 2021 20:44:28 +0000 Subject: import rust-1.54.0-2.el9 --- diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c524d22 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +SOURCES/openssl-0.10.35.crate +SOURCES/openssl-sys-0.9.65.crate +SOURCES/rustc-1.54.0-src.tar.xz diff --git a/.rust.metadata b/.rust.metadata new file mode 100644 index 0000000..be90ce5 --- /dev/null +++ b/.rust.metadata @@ -0,0 +1,3 @@ +30b1d249820fb830ab1fbd0910c39dbd8976f3de SOURCES/openssl-0.10.35.crate +c4f319fbe5ce983a1b958f7df6b572a1b2752784 SOURCES/openssl-sys-0.9.65.crate +1577242bee41fe6c1aee17d47ae791f4bfc1f8c3 SOURCES/rustc-1.54.0-src.tar.xz diff --git a/SOURCES/0001-Revert-Auto-merge-of-79547.patch b/SOURCES/0001-Revert-Auto-merge-of-79547.patch new file mode 100644 index 0000000..b2e58a1 --- /dev/null +++ b/SOURCES/0001-Revert-Auto-merge-of-79547.patch @@ -0,0 +1,102 @@ +From eaf7ea1fc339e1ff348ed941ed2e8c4d66f3e458 Mon Sep 17 00:00:00 2001 +From: Josh Stone +Date: Thu, 18 Feb 2021 19:14:58 -0800 +Subject: [PATCH] Revert "Auto merge of #79547 - erikdesjardins:byval, + r=nagisa" + +This reverts commit a094ff9590b83c8f94d898f92c2964a5803ded06, reversing +changes made to d37afad0cc87bf709ad10c85319296ac53030f03. +--- + compiler/rustc_middle/src/ty/layout.rs | 12 ++++++------ + ...return-value-in-reg.rs => return-value-in-reg.rs} | 4 ++-- + src/test/codegen/union-abi.rs | 11 +++-------- + 3 files changed, 11 insertions(+), 16 deletions(-) + rename src/test/codegen/{arg-return-value-in-reg.rs => return-value-in-reg.rs} (74%) + +diff --git a/compiler/rustc_middle/src/ty/layout.rs b/compiler/rustc_middle/src/ty/layout.rs +index b545b92c9252..545f6aee1a21 100644 +--- a/compiler/rustc_middle/src/ty/layout.rs ++++ b/compiler/rustc_middle/src/ty/layout.rs +@@ -2849,7 +2849,7 @@ fn adjust_for_abi(&mut self, cx: &C, abi: SpecAbi) { + || abi == SpecAbi::RustIntrinsic + || abi == SpecAbi::PlatformIntrinsic + { +- let fixup = |arg: &mut ArgAbi<'tcx, Ty<'tcx>>| { ++ let fixup = |arg: &mut ArgAbi<'tcx, Ty<'tcx>>, is_ret: bool| { + if arg.is_ignore() { + return; + } +@@ -2887,9 +2887,9 @@ fn adjust_for_abi(&mut self, cx: &C, abi: SpecAbi) { + _ => return, + } + +- // Pass and return structures up to 2 pointers in size by value, matching `ScalarPair`. +- // LLVM will usually pass these in 2 registers, which is more efficient than by-ref. +- let max_by_val_size = Pointer.size(cx) * 2; ++ // Return structures up to 2 pointers in size by value, matching `ScalarPair`. LLVM ++ // will usually return these in 2 registers, which is more efficient than by-ref. ++ let max_by_val_size = if is_ret { Pointer.size(cx) * 2 } else { Pointer.size(cx) }; + let size = arg.layout.size; + + if arg.layout.is_unsized() || size > max_by_val_size { +@@ -2901,9 +2901,9 @@ fn adjust_for_abi(&mut self, cx: &C, abi: SpecAbi) { + arg.cast_to(Reg { kind: RegKind::Integer, size }); + } + }; +- fixup(&mut self.ret); ++ fixup(&mut self.ret, true); + for arg in &mut self.args { +- fixup(arg); ++ fixup(arg, false); + } + return; + } +diff --git a/src/test/codegen/arg-return-value-in-reg.rs b/src/test/codegen/return-value-in-reg.rs +similarity index 74% +rename from src/test/codegen/arg-return-value-in-reg.rs +rename to src/test/codegen/return-value-in-reg.rs +index a69291d47821..4bc0136c5e32 100644 +--- a/src/test/codegen/arg-return-value-in-reg.rs ++++ b/src/test/codegen/return-value-in-reg.rs +@@ -1,4 +1,4 @@ +-//! Check that types of up to 128 bits are passed and returned by-value instead of via pointer. ++//! This test checks that types of up to 128 bits are returned by-value instead of via out-pointer. + + // compile-flags: -C no-prepopulate-passes -O + // only-x86_64 +@@ -11,7 +11,7 @@ pub struct S { + c: u32, + } + +-// CHECK: define i128 @modify(i128{{( %0)?}}) ++// CHECK: define i128 @modify(%S* noalias nocapture dereferenceable(16) %s) + #[no_mangle] + pub fn modify(s: S) -> S { + S { a: s.a + s.a, b: s.b + s.b, c: s.c + s.c } +diff --git a/src/test/codegen/union-abi.rs b/src/test/codegen/union-abi.rs +index f282fd237054..afea01e9a2d0 100644 +--- a/src/test/codegen/union-abi.rs ++++ b/src/test/codegen/union-abi.rs +@@ -63,16 +63,11 @@ pub union UnionU128{a:u128} + #[no_mangle] + pub fn test_UnionU128(_: UnionU128) -> UnionU128 { loop {} } + +-pub union UnionU128x2{a:(u128, u128)} +-// CHECK: define void @test_UnionU128x2(i128 %_1.0, i128 %_1.1) +-#[no_mangle] +-pub fn test_UnionU128x2(_: UnionU128x2) { loop {} } +- + #[repr(C)] +-pub union CUnionU128x2{a:(u128, u128)} +-// CHECK: define void @test_CUnionU128x2(%CUnionU128x2* {{.*}} %_1) ++pub union CUnionU128{a:u128} ++// CHECK: define void @test_CUnionU128(%CUnionU128* {{.*}} %_1) + #[no_mangle] +-pub fn test_CUnionU128x2(_: CUnionU128x2) { loop {} } ++pub fn test_CUnionU128(_: CUnionU128) { loop {} } + + pub union UnionBool { b:bool } + // CHECK: define zeroext i1 @test_UnionBool(i8 %b) +-- +2.29.2 + diff --git a/SOURCES/0001-Use-lld-provided-by-system-for-wasm.patch b/SOURCES/0001-Use-lld-provided-by-system-for-wasm.patch new file mode 100644 index 0000000..681b21a --- /dev/null +++ b/SOURCES/0001-Use-lld-provided-by-system-for-wasm.patch @@ -0,0 +1,26 @@ +From 9ac837c237568a6c1c5f0e979fcce208cd9c926a Mon Sep 17 00:00:00 2001 +From: Ivan Mironov +Date: Sun, 8 Dec 2019 17:23:08 +0500 +Subject: [PATCH] Use lld provided by system for wasm + +--- + compiler/rustc_target/src/spec/wasm_base.rs | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/compiler/rustc_target/src/spec/wasm_base.rs b/compiler/rustc_target/src/spec/wasm_base.rs +index 4c954a1e567c..15c4f1bda5eb 100644 +--- a/compiler/rustc_target/src/spec/wasm_base.rs ++++ b/compiler/rustc_target/src/spec/wasm_base.rs +@@ -99,8 +99,7 @@ pub fn options() -> TargetOptions { + // arguments just yet + limit_rdylib_exports: false, + +- // we use the LLD shipped with the Rust toolchain by default +- linker: Some("rust-lld".to_owned()), ++ linker: Some("lld".to_owned()), + lld_flavor: LldFlavor::Wasm, + linker_is_gnu: false, + +-- +2.31.1 + diff --git a/SOURCES/rust-openssl-300.patch b/SOURCES/rust-openssl-300.patch new file mode 100644 index 0000000..a8df668 --- /dev/null +++ b/SOURCES/rust-openssl-300.patch @@ -0,0 +1,36 @@ +--- rustc-1.54.0-src/Cargo.lock.orig 2021-07-26 07:43:01.000000000 -0700 ++++ rustc-1.54.0-src/Cargo.lock 2021-08-04 16:01:15.723167826 -0700 +@@ -2408,9 +2408,9 @@ dependencies = [ + + [[package]] + name = "openssl" +-version = "0.10.33" ++version = "0.10.35" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "a61075b62a23fef5a29815de7536d940aa35ce96d18ce0cc5076272db678a577" ++checksum = "549430950c79ae24e6d02e0b7404534ecf311d94cc9f861e9e4020187d13d885" + dependencies = [ + "bitflags", + "cfg-if 1.0.0", +@@ -2437,9 +2437,9 @@ dependencies = [ + + [[package]] + name = "openssl-sys" +-version = "0.9.61" ++version = "0.9.65" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "313752393519e876837e09e1fa183ddef0be7735868dced3196f4472d536277f" ++checksum = "7a7907e3bfa08bb85105209cdfcb6c63d109f8f6c1ed6ca318fff5c1853fbc1d" + dependencies = [ + "autocfg", + "cc", +--- /dev/null 2021-06-21 12:38:51.028538978 -0700 ++++ rustc-1.53.0-src/vendor/openssl-0.10.35/.cargo-checksum.json 2021-06-22 13:02:26.569703262 -0700 +@@ -0,0 +1 @@ ++{"files":{"CHANGELOG.md":"621727e374f71be92d94fa64bceb2a0d02715588c41002a81347703963540e29","Cargo.lock":"9ba46c2617d38d7202e4e2ac7bd3a53de884afc38aa6490bbe749581ff7f0e5c","Cargo.toml":"efdbc3060829e8b295c3de0155aa6f6841e8af4b99814f2b022e889935fa74a1","LICENSE":"f3d4287b4a21c5176fea2f9bd4ae800696004e2fb8e05cbc818be513f188a941","README.md":"c5ddde25c2756a1115daaa671fb4297cdc83bf23009c8356ba65b5311d0dd30d","build.rs":"575bf9996eb60039fbe26705983f8ea5f20978308d0bfde8e27f99ed734a162d","examples/mk_certs.rs":"4e45b618298bf9ce736830f860e382e98add8ba9200c14fee6243a73098b3aaf","src/aes.rs":"8031a9f9cf29d71ed8da8318ed6f9e315f65462db2c9db5850c8f8a7f4840a84","src/asn1.rs":"557f70ff01b991e1ab6bb717b02f666733a67bd55e0829faf38c7931e21a9c2b","src/base64.rs":"48a3e924b3b5c17df63f88210d88e726b95da7b825af867f2e2010381194ba72","src/bio.rs":"a8b0d600bd350ffdbf037ce1e293aad8e01eb870697e8776cc720490637da51f","src/bn.rs":"29cc5b26954f24fc5262f0eb708a1030b0fcb81ad184c4476b59fe916cf16f2b","src/cms.rs":"c8fb1c390c2bfc0d46695a5c6e47edb39c70d175a5afb9aee71d779078749620","src/conf.rs":"ba6aca357b1f31114dcf8f05dedc8e143edacad3a05e4e9d5f3aeaa00bbbcf34","src/derive.rs":"e70c2a49e4e32eb1523c7b6c5bfdb9c5c17c284bd5a8a5cec4c26206c0e8fd49","src/dh.rs":"c54a2ffb78b6431c931fa3093f021428d3e6c2e9553547ec379b67ee1f6aa8f9","src/dsa.rs":"cd75a78af674bdd2a570fc87bf5fc68b68432881f2a31e1e92e9e9de14c10b59","src/ec.rs":"5229f2e335be3f77b8701dc5090d2cd5dcb05a1c6db4c40fb7e7ed723b66c367","src/ecdsa.rs":"0e30beee5fff7b681c969554d2860e7f2300b7364ed102e0a3fd48dda8e3ddfb","src/encrypt.rs":"e70efe35edfff0cacf063f0cad31eaaa2a29d73c58629deb77c880cdd12e5959","src/envelope.rs":"e176f98f26b9da7e7fc1716be7d0fcda4bcc100bdf0121b1d1fdc96883cf69a7","src/error.rs":"cced1c5e348c1e3fced8262c3758e3b5afc4154a9f35e427bfea3798f4456875","src/ex_data.rs":"0a58a3a274a4ef2251dadb64cbcd44b43710d252201b137ecfb91cf14373c04f","src/fips.rs":"406722ff95f933af3e862b937f3b51f705a049a7b4a8515a9d8311cc74b1a3de","src/hash.rs":"02bc290edf034baf778fced4adcac83700247d0ffea39fac84e49181b4616045","src/lib.rs":"da51832c9eb768d2b3b6bac81e3895eee651997bba2b2aeed63f1042c83d4a84","src/macros.rs":"29751b6f9b40c8667128cd46ee780b6544c54a34738f1d587042db9de6f24b12","src/memcmp.rs":"2bbdd7d6be3c60e9e3ce44a28b44698e176ce5baaf7be08618d1de63afa3396a","src/nid.rs":"49ee73b89292a93f5d9c9f005b6c0bc5e46c23f00e9d1af3989680eef62131f4","src/ocsp.rs":"e9c36fb63d3a9b9a2d52a11be4123688710e0d126c0c1eb09512be37fed6aaf1","src/pkcs12.rs":"764dbb1a67b09e2da4c326653e9ceeba18591d732f8f0ab1b8228b3e392742ec","src/pkcs5.rs":"2948a418a9218d0347b3072998d01b0b5c5263b5fef69716e9c69fca548ed77c","src/pkcs7.rs":"a0e96577c25af824255e0d40d617a0d0723c2955429b90da7d29e2ed1080261c","src/pkey.rs":"1def26f9af8973b2a2fccd54d15880046a86bd39b3ce348fb901c2d9cab3b509","src/rand.rs":"c7b3fed0d322af7ea950b249430ec2163d2b57fa1b7a3864c9e0a8c8365ad997","src/rsa.rs":"ca2dacc55531088f29465d13a2c5b8f76481f7e0d32488783e3d2cb8cb9440d8","src/sha.rs":"28e6d9205b6e4c8be024de2cc1913cb62d0f0592239a5f97648bd3fa929db62d","src/sign.rs":"7b3211990a07f1b60d2dfc5c60a113ca3bb7eb150368d5eaf8526807f5fd960e","src/srtp.rs":"29a726ed8269567d1a8dcc7ac256501e255a0536d5ce03740ea2274d098218ec","src/ssl/bio.rs":"7d11afcf22b0a6023eaaad953cb392ef8da651c4b4ceaa94b793789792291a96","src/ssl/callbacks.rs":"1f2514a6149347c3df4add8cbae8c74a8f2a255f580a2fa4a62586b4250335c8","src/ssl/connector.rs":"dc1147f2b16de747c15ff9bdab44fc02fe18dcc1b6abe6acba56b69bec99013b","src/ssl/error.rs":"f39ac3e1037a35ae5cccbf5cf5976044614a6368c9ffe3f1b96bead63c0c4231","src/ssl/mod.rs":"7e215ba04963400a82d8c72b0036e97d7ac6d38f6986e4b27c231759de18015e","src/ssl/test/mod.rs":"48ecde6dbb4bf280dcdbba12969ca72a73b472d4b4173c2ed64920026635ee61","src/ssl/test/server.rs":"4276ba970a0fac5c9cae21d7df7af36389c377472f3546ce597678ffc6ad5b38","src/stack.rs":"a7b92ca9208a0190e6dbebf372347639d2058f518a7b637811e2122522952444","src/string.rs":"9cf0c69c03b091b186a846f46698c17c75e55d747fd4154cc9950e8aca54c0dd","src/symm.rs":"cf3a65146434bfb90506bbd766b791943317e97899cace5fc745feb0349454c7","src/util.rs":"76eaa375361e305e020d11b51c6e3adaa68ee2b531b253bbac92eb1bfd03180d","src/version.rs":"ea890383758bbe9a92fab8ee27def2ad759a2346481199e1af30940b25d8aae1","src/x509/extension.rs":"772861b6725c2524911521c0ae4fd58657b739209d6cd9a697d97652d6aadb15","src/x509/mod.rs":"7850e07bef15318c777890d21818ff038334c5600e5e883982ff1b07ed572019","src/x509/store.rs":"7cdcb33018006b3063375cfb87dcc319ac28d200c03d94e281cefb74e2a78879","src/x509/tests.rs":"c92a5a385887d389184daba1e827fbb7203a7f984e8782dfe55485852f0f5937","src/x509/verify.rs":"ad00a223cd1d008fb6fdfe470bb473b5a47a1375ba92cd302aa14790d7e3e58f","test/aia_test_cert.pem":"9eaf52b5d0023f3be7911938d937ed16fc75d43d14dbe41557a800b0a82f4b1b","test/alt_name_cert.pem":"f3cc0a1d21657164918dffab0dac8f1c499fc1cf5717805420a0134b3aee128c","test/cert.pem":"53c8b338be254490c71a6b13da90dc5a59ba596587c548be5673657e04824afb","test/certs.pem":"106d5d22c86e26c3db619b9525567f22333d22de82e4d2850ed379150c638008","test/cms.p12":"d33fc5edd6b9caa672e7570b869135235bb2583580a273f6e88c6a6c68fd5a8a","test/cms_pubkey.der":"03682a732e1fd861f5fa687915a8e6f5c935d10273b0f6f73f3db52a8d71fc6d","test/dhparams.pem":"14d9461949d9ae8ca50a393b008ee2168254f14342b0e17b56c0a62d2905b963","test/dsa.pem":"826d513234205fd3dee0bbbf844f0b6fea501145bdf05ea3b14e14df98cbe090","test/dsa.pem.pub":"721677bebf9ab28b8650f98a0cd27658de0c1acd867a4b6e985fe1df95a8bd37","test/dsaparam.pem":"94a1284bdd7d7566151cfde0c7f245e84f7b99ba840f202e3f27ea0160f82988","test/identity.p12":"aceeb3e5516471bd5af9a44bbeffc9559c4f228f67c677d29f36a4b368e2779f","test/key.der":"e8842cd6674b5c77a83e0283cd876a91de404561dfc86d79ce525f6e55b28197","test/key.der.pub":"e559d56bb6ec57ad743dbf972bbcaf263a9fa7d320433baa71b04f849d987060","test/key.pem":"12d9105a92bf39b615ccb4820c5c1e38c61905483cd30be13f9ab99b98af64ed","test/key.pem.pub":"f5d030df843ddbaba5bf316ae18f1434de5a63a955be66442429dd4f16f161ef","test/keystore-empty-chain.p12":"bbea280f6fe10556d7470df7072ef0e4ee3997e2c0b3666197f423430c0e6b61","test/nid_test_cert.pem":"7047e8d317e284c6b698eee4a0f1a629d50cd4615ad7da85fe90a2ffb6c21611","test/nid_uid_test_cert.pem":"a735211f3b40edbde7084337138fb0aea06aea6c78369c52015253e4b7a17d83","test/pkcs1.pem.pub":"4d446864b63c4178ec2c7dc8df9b7121d9271851c1f4701231fccb8b07c94918","test/pkcs8-nocrypt.der":"5590d03cc0d037c6c27d78fafc937f48defb226e9a52cde84d54df68086d0575","test/pkcs8.der":"8719fc002d59313fb97e46e068ae40db4d9acc0e2debd308ac9eb46329bea487","test/root-ca.key":"b37cf88614980c38e43c4329cdf7162bae48cc8af1fafd54db2fe0d17e458e1d","test/root-ca.pem":"59b9200c35e818bf21be4aaa97ba87bb6a18fd780527a9f9c51cc74212c631a0","test/rsa-encrypted.pem":"ea41b0f1816056672de6abbab43d0e8089da047c329ceed14aace5a5bde713f1","test/rsa.pem":"f866a5506ea9a37ed2f73f62f503e1aff32f7e4145be62b023535f4da1c24416","test/rsa.pem.pub":"2c5eeea39708e90396f9f09d920f2af8b7e9f84ace963c1319072224dd3d302b"},"package":"549430950c79ae24e6d02e0b7404534ecf311d94cc9f861e9e4020187d13d885"} +\ No newline at end of file +--- /dev/null 2021-06-21 12:38:51.028538978 -0700 ++++ rustc-1.53.0-src/vendor/openssl-sys-0.9.65/.cargo-checksum.json 2021-06-22 13:02:26.570703241 -0700 +@@ -0,0 +1 @@ ++{"files":{"CHANGELOG.md":"6ee4e524e49a4e8cd3164701bf18fbc641c7a014b756b5de6b3ccc11fa588c70","Cargo.toml":"1a6b84bb11588fb0fa8d28741ab548726cef34e546de3dd2280be1d8139f292d","LICENSE-MIT":"378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397","README.md":"c5ddde25c2756a1115daaa671fb4297cdc83bf23009c8356ba65b5311d0dd30d","build/cfgs.rs":"193f81ffdf211f056599072e8910d59c2134d3df85fed9ca693bc59f82cb73d4","build/expando.c":"d6f6f9f7d9f79d03b96740fe378e6d4fd38e9447abf7839e62a5fae3eea49c14","build/find_normal.rs":"b6bc74f91a52bb592e14c085061b477722d7f72eaa33a7590fb01da46cd35b7c","build/find_vendored.rs":"7bf0e59c5646d72ee5a4392ad970fdf5c20288ddaf54dd86a8caff49583b38f5","build/main.rs":"c6e1ba232c3334a726707561c7cb0c87c841c75b1848880ce03c689f5d9b2b69","src/aes.rs":"822bf666db351fe6ef9607c918081d6ad378fc1cedb05290bb746f86980c6088","src/asn1.rs":"801c254afc76b0c29b756bd86a149361609f82ec33c1f1fad39a512fbe4e87ee","src/bio.rs":"3aac4e38ccf8d832b4156908cd3f1ff9c56f84c05d2f07ed7a3e3fccabe965e9","src/bn.rs":"c71b9c79f704a94a889d27bf75e7e5b1f9f10b0df0aeb485aef509cf05d7467f","src/cms.rs":"1e1500367732915e756ba7dcee4a0691ba4fab770e0cef88267b74111e99e127","src/conf.rs":"511e008c18039f54d856d70b80009426fc7f4ce34fe4304e2c58ebf465031de0","src/crypto.rs":"fa513478e5c4a1e9d54081a9c79d48400f726c7047e776aa3f1adc023d6600be","src/dh.rs":"fb3b539eec4434b448b30df19e2e2ac5ffc3bd11bb817c7fb9090186ec3b0146","src/dsa.rs":"ae79baf231681900ea76304285b3ffacf5298c90b8c04d371269cf4adbb5b9fa","src/dtls1.rs":"0477022d5bcf2b7a620c70ece4da08a2958be3eca5a57127c89d79525c692ebd","src/ec.rs":"018a2ab377804bb735206e88d0561ab16098e29007d1a1fd0d565c8e492544c2","src/err.rs":"9e6c84a170dce46db74414a64b9e1855845afbd8180100a2d9412f7509f69284","src/evp.rs":"c947ddf745e4fc761f2b4b7886246f96163f41ff8ccc3c822e46ad38169d2c94","src/hmac.rs":"fa3976d94a1383f300bdec228270afb8b47c97bb019d727c7d59ba783be3c42e","src/lib.rs":"19ddf11d94bf469abb3f453a6b38886f6ccea4bc6004477f36b200516f5fee44","src/macros.rs":"7ed99c00c53ee12ea92634d4ace0af84845ebf98819869746e7896c8eaff23db","src/obj_mac.rs":"42019b142e523d7695d8c14ee7f72fa4b5702c07dee98fa12e70ab7dfcc95459","src/object.rs":"9ec1a26968e3efc87b24f287b92331fa38eaca048a3919e6514f48d38c7df9a6","src/ocsp.rs":"614492810c5fadd0c1c4bb5eda165fb7e744eed7b04ae61d582446f5013e733a","src/ossl_typ.rs":"0d8dd0f82ef08672ab3c5059d2335b7eaad2d5afc0a20dbf26c2476c99dcae8e","src/pem.rs":"c92d1d31e6f70f6704f148e370a8b4228d6305b51fd3be907c49014a8bfe14ba","src/pkcs12.rs":"4c3c1cf2e716454c5fc94c3d5e1174922c57b9de796253799437dc13303a68d1","src/pkcs7.rs":"726614946784f919db88fd5282ec66d5b9df2edafc98ade9614758e109176b31","src/rand.rs":"c771057f37c64406aa750f36397fa877caf330a8c725e49356c7081c2b2fdd67","src/rsa.rs":"d45d421339b903b0d33817e93be5e939964431f9caed343e5c4490382cfad5b1","src/safestack.rs":"6c39e28565d34efad707d77561d4caa99e3f028fcac3a2ef6fd403a78de1190c","src/sha.rs":"16a4c77cbc38926b8f8eee07b0beae8dc12cbdc8cfa599d4db66fa84a7b3871d","src/srtp.rs":"1c4dee9e6c139cc70416207786e385f199321624fb9fbf3cbf39a8160c0c405d","src/ssl.rs":"f0dd56aef28630ba8359e49538664160b54f58e255cca1f5c239f23aa820de1b","src/ssl3.rs":"9336c816e00847d552dea22587d4ac72ff3cbd469fa5ff750423a19ea11e68eb","src/stack.rs":"1a509907283e5a2bf88cf193ce607f49ce7d2d95547c2ce2abc0fd4567aad334","src/tls1.rs":"60ca3dea1bbfda645bde563b4a878dac129c3f760e3ad572381000fc7a8ef522","src/types.rs":"0b9bafc6f5fd373ec8c01e49339f7fe7ef1d76e44d60cda59f60c06982b4070e","src/x509.rs":"785bcb26166b8f39e616e5ab9a0358814773e96de51b40fd5ae62b45a2edcda6","src/x509_vfy.rs":"e530e2fd91e959715265b40fba95576bb53ddcb4e2c6586c2192098e0e8b1cc1","src/x509v3.rs":"520253195097d134e553c6378c1db2510eae6ccfcab6f6fb08919697bc0f023b"},"package":"7a7907e3bfa08bb85105209cdfcb6c63d109f8f6c1ed6ca318fff5c1853fbc1d"} +\ No newline at end of file diff --git a/SOURCES/rustc-1.48.0-disable-libssh2.patch b/SOURCES/rustc-1.48.0-disable-libssh2.patch new file mode 100644 index 0000000..6916e74 --- /dev/null +++ b/SOURCES/rustc-1.48.0-disable-libssh2.patch @@ -0,0 +1,42 @@ +--- rustc-1.48.0-src/Cargo.lock.orig 2020-11-16 06:01:53.000000000 -0800 ++++ rustc-1.48.0-src/Cargo.lock 2020-11-16 09:27:44.425104404 -0800 +@@ -1676,7 +1676,6 @@ + dependencies = [ + "cc", + "libc", +- "libssh2-sys", + "libz-sys", + "openssl-sys", + "pkg-config", +@@ -1693,20 +1692,6 @@ + ] + + [[package]] +-name = "libssh2-sys" +-version = "0.2.19" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "ca46220853ba1c512fc82826d0834d87b06bcd3c2a42241b7de72f3d2fe17056" +-dependencies = [ +- "cc", +- "libc", +- "libz-sys", +- "openssl-sys", +- "pkg-config", +- "vcpkg", +-] +- +-[[package]] + name = "libz-sys" + version = "1.1.2" + source = "registry+https://github.com/rust-lang/crates.io-index" +--- rustc-1.48.0-src/vendor/git2/Cargo.toml.orig 2020-11-16 06:27:49.000000000 -0800 ++++ rustc-1.48.0-src/vendor/git2/Cargo.toml 2020-11-16 09:27:44.425104404 -0800 +@@ -49,7 +49,7 @@ + version = "0.1.39" + + [features] +-default = ["ssh", "https", "ssh_key_from_memory"] ++default = ["https"] + https = ["libgit2-sys/https", "openssl-sys", "openssl-probe"] + ssh = ["libgit2-sys/ssh"] + ssh_key_from_memory = ["libgit2-sys/ssh_key_from_memory"] diff --git a/SOURCES/rustc-1.51.0-no-default-pie.patch b/SOURCES/rustc-1.51.0-no-default-pie.patch new file mode 100644 index 0000000..d24cc75 --- /dev/null +++ b/SOURCES/rustc-1.51.0-no-default-pie.patch @@ -0,0 +1,19 @@ +--- rustc-beta-src/compiler/rustc_codegen_ssa/src/back/link.rs.orig 2021-03-09 10:40:09.755485845 -0800 ++++ rustc-beta-src/compiler/rustc_codegen_ssa/src/back/link.rs 2021-03-09 10:44:51.257426181 -0800 +@@ -1279,11 +1279,13 @@ + } + + fn link_output_kind(sess: &Session, crate_type: CrateType) -> LinkOutputKind { +- let kind = match (crate_type, sess.crt_static(Some(crate_type)), sess.relocation_model()) { ++ // Only use PIE if explicity specified. ++ let explicit_pic = matches!(sess.opts.cg.relocation_model, Some(RelocModel::Pic)); ++ let kind = match (crate_type, sess.crt_static(Some(crate_type)), explicit_pic) { + (CrateType::Executable, _, _) if sess.is_wasi_reactor() => LinkOutputKind::WasiReactorExe, +- (CrateType::Executable, false, RelocModel::Pic) => LinkOutputKind::DynamicPicExe, ++ (CrateType::Executable, false, true) => LinkOutputKind::DynamicPicExe, + (CrateType::Executable, false, _) => LinkOutputKind::DynamicNoPicExe, +- (CrateType::Executable, true, RelocModel::Pic) => LinkOutputKind::StaticPicExe, ++ (CrateType::Executable, true, true) => LinkOutputKind::StaticPicExe, + (CrateType::Executable, true, _) => LinkOutputKind::StaticNoPicExe, + (_, true, _) => LinkOutputKind::StaticDylib, + (_, false, _) => LinkOutputKind::DynamicDylib, diff --git a/SOURCES/rustc-1.53.0-disable-http2.patch b/SOURCES/rustc-1.53.0-disable-http2.patch new file mode 100644 index 0000000..94040b3 --- /dev/null +++ b/SOURCES/rustc-1.53.0-disable-http2.patch @@ -0,0 +1,66 @@ +--- rustc-beta-src/Cargo.lock.orig 2021-06-04 15:56:04.141227630 -0700 ++++ rustc-beta-src/Cargo.lock 2021-06-04 16:03:04.461396826 -0700 +@@ -885,7 +885,6 @@ + dependencies = [ + "cc", + "libc", +- "libnghttp2-sys", + "libz-sys", + "openssl-sys", + "pkg-config", +@@ -1904,16 +1903,6 @@ + checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a" + + [[package]] +-name = "libnghttp2-sys" +-version = "0.1.4+1.41.0" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "03624ec6df166e79e139a2310ca213283d6b3c30810c54844f307086d4488df1" +-dependencies = [ +- "cc", +- "libc", +-] +- +-[[package]] + name = "libz-sys" + version = "1.1.2" + source = "registry+https://github.com/rust-lang/crates.io-index" +--- rustc-beta-src/src/tools/cargo/Cargo.toml.orig 2021-06-04 15:56:04.143227587 -0700 ++++ rustc-beta-src/src/tools/cargo/Cargo.toml 2021-06-04 15:57:56.931857927 -0700 +@@ -25,7 +25,7 @@ + cargo-util = { path = "crates/cargo-util", version = "0.1.0" } + crates-io = { path = "crates/crates-io", version = "0.33.0" } + crossbeam-utils = "0.8" +-curl = { version = "0.4.23", features = ["http2"] } ++curl = { version = "0.4.23", features = [] } + curl-sys = "0.4.22" + env_logger = "0.8.1" + pretty_env_logger = { version = "0.4", optional = true } +--- rustc-beta-src/src/tools/cargo/src/cargo/core/package.rs.orig 2021-05-22 15:22:31.000000000 -0700 ++++ rustc-beta-src/src/tools/cargo/src/cargo/core/package.rs 2021-06-04 16:00:03.903190293 -0700 +@@ -416,14 +416,8 @@ + // Also note that pipelining is disabled as curl authors have indicated + // that it's buggy, and we've empirically seen that it's buggy with HTTP + // proxies. +- let mut multi = Multi::new(); +- let multiplexing = config.http_config()?.multiplexing.unwrap_or(true); +- multi +- .pipelining(false, multiplexing) +- .with_context(|| "failed to enable multiplexing/pipelining in curl")?; +- +- // let's not flood crates.io with connections +- multi.set_max_host_connections(2)?; ++ let multi = Multi::new(); ++ let multiplexing = false; + + Ok(PackageSet { + packages: package_ids +@@ -596,7 +590,7 @@ + macro_rules! try_old_curl { + ($e:expr, $msg:expr) => { + let result = $e; +- if cfg!(target_os = "macos") { ++ if cfg!(any(target_os = "linux", target_os = "macos")) { + if let Err(e) = result { + warn!("ignoring libcurl {} error: {}", $msg, e); + } diff --git a/SPECS/rust.spec b/SPECS/rust.spec new file mode 100644 index 0000000..4e29def --- /dev/null +++ b/SPECS/rust.spec @@ -0,0 +1,1242 @@ +# Only x86_64 and i686 are Tier 1 platforms at this time. +# https://doc.rust-lang.org/nightly/rustc/platform-support.html +%global rust_arches x86_64 i686 armv7hl aarch64 ppc64 ppc64le s390x + +# The channel can be stable, beta, or nightly +%{!?channel: %global channel stable} + +# To bootstrap from scratch, set the channel and date from src/stage0.txt +# e.g. 1.10.0 wants rustc: 1.9.0-2016-05-24 +# or nightly wants some beta-YYYY-MM-DD +# Note that cargo matches the program version here, not its crate version. +%global bootstrap_rust 1.53.0 +%global bootstrap_cargo 1.53.0 +%global bootstrap_channel 1.53.0 +%global bootstrap_date 2021-06-17 + +# Only the specified arches will use bootstrap binaries. +#global bootstrap_arches %%{rust_arches} + +# Define a space-separated list of targets to ship rust-std-static-$triple for +# cross-compilation. The packages are noarch, but they're not fully +# reproducible between hosts, so only x86_64 actually builds it. +%ifarch x86_64 +%if 0%{?fedora} || 0%{?rhel} >= 8 +%global cross_targets wasm32-unknown-unknown +%endif +%endif + +# Using llvm-static may be helpful as an opt-in, e.g. to aid LLVM rebases. +%bcond_with llvm_static + +# We can also choose to just use Rust's bundled LLVM, in case the system LLVM +# is insufficient. Rust currently requires LLVM 10.0+. +%bcond_with bundled_llvm + +# Requires stable libgit2 1.1 +%if 0%{?fedora} >= 34 +%bcond_with bundled_libgit2 +%else +%bcond_without bundled_libgit2 +%endif + +%if 0%{?rhel} +# Disable cargo->libgit2->libssh2 on RHEL, as it's not approved for FIPS (rhbz1732949) +%bcond_without disabled_libssh2 +%else +%bcond_with disabled_libssh2 +%endif + +%if 0%{?rhel} && 0%{?rhel} < 8 +%bcond_with curl_http2 +%else +%bcond_without curl_http2 +%endif + +# LLDB isn't available everywhere... +%if 0%{?rhel} && 0%{?rhel} < 8 +%bcond_with lldb +%else +%bcond_without lldb +%endif + +Name: rust +Version: 1.54.0 +Release: 2%{?dist} +Summary: The Rust Programming Language +License: (ASL 2.0 or MIT) and (BSD and MIT) +# ^ written as: (rust itself) and (bundled libraries) +URL: https://www.rust-lang.org +ExclusiveArch: %{rust_arches} + +%if "%{channel}" == "stable" +%global rustc_package rustc-%{version}-src +%else +%global rustc_package rustc-%{channel}-src +%endif +Source0: https://static.rust-lang.org/dist/%{rustc_package}.tar.xz + +# This internal rust-abi change broke s390x -- revert for now. +# https://github.com/rust-lang/rust/issues/80810#issuecomment-781784032 +Patch1: 0001-Revert-Auto-merge-of-79547.patch + +# By default, rust tries to use "rust-lld" as a linker for WebAssembly. +Patch2: 0001-Use-lld-provided-by-system-for-wasm.patch + +### RHEL-specific patches below ### + +# Disable cargo->libgit2->libssh2 on RHEL, as it's not approved for FIPS (rhbz1732949) +Patch100: rustc-1.48.0-disable-libssh2.patch + +# libcurl on RHEL7 doesn't have http2, but since cargo requests it, curl-sys +# will try to build it statically -- instead we turn off the feature. +Patch101: rustc-1.53.0-disable-http2.patch + +# kernel rh1410097 causes too-small stacks for PIE. +# (affects RHEL6 kernels when building for RHEL7) +Patch102: rustc-1.51.0-no-default-pie.patch + +# Add support for OpenSSL 3.0.0 +# https://github.com/rust-lang/rust/pull/86529/ +# https://github.com/sfackler/rust-openssl/pull/1264 +Patch103: rust-openssl-300.patch +Source103: https://crates.io/api/v1/crates/openssl/0.10.35/download#/openssl-0.10.35.crate +Source104: https://crates.io/api/v1/crates/openssl-sys/0.9.65/download#/openssl-sys-0.9.65.crate + + +# Get the Rust triple for any arch. +%{lua: function rust_triple(arch) + local abi = "gnu" + if arch == "armv7hl" then + arch = "armv7" + abi = "gnueabihf" + elseif arch == "ppc64" then + arch = "powerpc64" + elseif arch == "ppc64le" then + arch = "powerpc64le" + elseif arch == "riscv64" then + arch = "riscv64gc" + end + return arch.."-unknown-linux-"..abi +end} + +%global rust_triple %{lua: print(rust_triple(rpm.expand("%{_target_cpu}")))} + +%if %defined bootstrap_arches +# For each bootstrap arch, add an additional binary Source. +# Also define bootstrap_source just for the current target. +%{lua: do + local bootstrap_arches = {} + for arch in string.gmatch(rpm.expand("%{bootstrap_arches}"), "%S+") do + table.insert(bootstrap_arches, arch) + end + local base = rpm.expand("https://static.rust-lang.org/dist/%{bootstrap_date}" + .."/rust-%{bootstrap_channel}") + local target_arch = rpm.expand("%{_target_cpu}") + for i, arch in ipairs(bootstrap_arches) do + print(string.format("Source%d: %s-%s.tar.xz\n", + i, base, rust_triple(arch))) + if arch == target_arch then + rpm.define("bootstrap_source "..i) + end + end +end} +%endif + +%ifarch %{bootstrap_arches} +%global bootstrap_root rust-%{bootstrap_channel}-%{rust_triple} +%global local_rust_root %{_builddir}/%{bootstrap_root}/usr +Provides: bundled(%{name}-bootstrap) = %{bootstrap_rust} +%else +BuildRequires: cargo >= %{bootstrap_cargo} +%if 0%{?rhel} && 0%{?rhel} < 8 +BuildRequires: %{name} >= %{bootstrap_rust} +BuildConflicts: %{name} > %{version} +%else +BuildRequires: (%{name} >= %{bootstrap_rust} with %{name} <= %{version}) +%endif +%global local_rust_root %{_prefix} +%endif + +BuildRequires: make +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: ncurses-devel +BuildRequires: curl +# explicit curl-devel to avoid httpd24-curl (rhbz1540167) +BuildRequires: curl-devel +BuildRequires: pkgconfig(libcurl) +BuildRequires: pkgconfig(liblzma) +BuildRequires: pkgconfig(openssl) +BuildRequires: pkgconfig(zlib) + +%if %without bundled_libgit2 +BuildRequires: pkgconfig(libgit2) >= 1.1.0 +%endif + +%if %{without disabled_libssh2} +# needs libssh2_userauth_publickey_frommemory +BuildRequires: pkgconfig(libssh2) >= 1.6.0 +%endif + +%global python python3 +BuildRequires: %{python} + +%if %with bundled_llvm +BuildRequires: cmake3 >= 3.13.4 +Provides: bundled(llvm) = 12.0.0 +%else +BuildRequires: cmake >= 2.8.11 +%if 0%{?epel} == 7 +%global llvm llvm11 +%endif +%if %defined llvm +%global llvm_root %{_libdir}/%{llvm} +%else +%global llvm llvm +%global llvm_root %{_prefix} +%endif +BuildRequires: %{llvm}-devel >= 10.0 +%if %with llvm_static +BuildRequires: %{llvm}-static +BuildRequires: libffi-devel +%endif +%endif + +# make check needs "ps" for src/test/run-pass/wait-forked-but-failed-child.rs +BuildRequires: procps-ng + +# debuginfo-gdb tests need gdb +BuildRequires: gdb + +# Virtual provides for folks who attempt "dnf install rustc" +Provides: rustc = %{version}-%{release} +Provides: rustc%{?_isa} = %{version}-%{release} + +# Always require our exact standard library +Requires: %{name}-std-static%{?_isa} = %{version}-%{release} + +# The C compiler is needed at runtime just for linking. Someday rustc might +# invoke the linker directly, and then we'll only need binutils. +# https://github.com/rust-lang/rust/issues/11937 +Requires: /usr/bin/cc + +%if 0%{?epel} == 7 +%global devtoolset_name devtoolset-9 +BuildRequires: %{devtoolset_name}-gcc +BuildRequires: %{devtoolset_name}-gcc-c++ +%global __cc /opt/rh/%{devtoolset_name}/root/usr/bin/gcc +%global __cxx /opt/rh/%{devtoolset_name}/root/usr/bin/g++ +%endif + +# ALL Rust libraries are private, because they don't keep an ABI. +%global _privatelibs lib(.*-[[:xdigit:]]{16}*|rustc.*)[.]so.* +%global __provides_exclude ^(%{_privatelibs})$ +%global __requires_exclude ^(%{_privatelibs})$ +%global __provides_exclude_from ^(%{_docdir}|%{rustlibdir}/src)/.*$ +%global __requires_exclude_from ^(%{_docdir}|%{rustlibdir}/src)/.*$ + +# While we don't want to encourage dynamic linking to Rust shared libraries, as +# there's no stable ABI, we still need the unallocated metadata (.rustc) to +# support custom-derive plugins like #[proc_macro_derive(Foo)]. +%if 0%{?rhel} && 0%{?rhel} < 8 +# eu-strip is very eager by default, so we have to limit it to -g, only debugging symbols. +%global _find_debuginfo_opts -g +%undefine _include_minidebuginfo +%else +# Newer find-debuginfo.sh supports --keep-section, which is preferable. rhbz1465997 +%global _find_debuginfo_opts --keep-section .rustc +%endif + +# Use hardening ldflags. +%global rustflags -Clink-arg=-Wl,-z,relro,-z,now + +%if %{without bundled_llvm} +%if "%{llvm_root}" == "%{_prefix}" || 0%{?scl:1} +%global llvm_has_filecheck 1 +%endif +%endif + +# We're going to override --libdir when configuring to get rustlib into a +# common path, but we'll fix the shared libraries during install. +%global common_libdir %{_prefix}/lib +%global rustlibdir %{common_libdir}/rustlib + +%if %defined cross_targets +# brp-strip-static-archive breaks the archive index for wasm +%global __os_install_post \ +%__os_install_post \ +find %{buildroot}%{rustlibdir} -type f -path '*/wasm*/lib/*.rlib' -exec ranlib '{}' ';' \ +%{nil} +%endif + +%description +Rust is a systems programming language that runs blazingly fast, prevents +segfaults, and guarantees thread safety. + +This package includes the Rust compiler and documentation generator. + + +%package std-static +Summary: Standard library for Rust + +%description std-static +This package includes the standard libraries for building applications +written in Rust. + +%if %defined cross_targets +%{lua: do + for triple in string.gmatch(rpm.expand("%{cross_targets}"), "%S+") do + local requires = rpm.expand("Requires: rust = %{version}-%{release}") + if string.sub(triple, 1, 4) == "wasm" then + requires = requires .. "\nRequires: lld >= 8.0" + end + local subs = { + triple = triple, + requires = requires, + } + local s = string.gsub([[ +%package std-static-{{triple}} +Summary: Standard library for Rust +BuildArch: noarch +{{requires}} + +%description std-static-{{triple}} +This package includes the standard libraries for building applications +written in Rust for the {{triple}} target. +]], "{{(%w+)}}", subs) + print(s) + end +end} +%endif + + +%package debugger-common +Summary: Common debugger pretty printers for Rust +BuildArch: noarch + +%description debugger-common +This package includes the common functionality for %{name}-gdb and %{name}-lldb. + + +%package gdb +Summary: GDB pretty printers for Rust +BuildArch: noarch +Requires: gdb +Requires: %{name}-debugger-common = %{version}-%{release} + +%description gdb +This package includes the rust-gdb script, which allows easier debugging of Rust +programs. + + +%if %with lldb + +%package lldb +Summary: LLDB pretty printers for Rust +BuildArch: noarch +Requires: lldb +Requires: %{python}-lldb +Requires: %{name}-debugger-common = %{version}-%{release} + +%description lldb +This package includes the rust-lldb script, which allows easier debugging of Rust +programs. + +%endif + + +%package doc +Summary: Documentation for Rust +# NOT BuildArch: noarch +# Note, while docs are mostly noarch, some things do vary by target_arch. +# Koji will fail the build in rpmdiff if two architectures build a noarch +# subpackage differently, so instead we have to keep its arch. + +%description doc +This package includes HTML documentation for the Rust programming language and +its standard library. + + +%package -n cargo +Summary: Rust's package manager and build tool +%if %with bundled_libgit2 +Provides: bundled(libgit2) = 1.1.0 +%endif +# For tests: +BuildRequires: git +# Cargo is not much use without Rust +Requires: rust + +# "cargo vendor" is a builtin command starting with 1.37. The Obsoletes and +# Provides are mostly relevant to RHEL, but harmless to have on Fedora/etc. too +Obsoletes: cargo-vendor <= 0.1.23 +Provides: cargo-vendor = %{version}-%{release} + +%description -n cargo +Cargo is a tool that allows Rust projects to declare their various dependencies +and ensure that you'll always get a repeatable build. + + +%package -n cargo-doc +Summary: Documentation for Cargo +BuildArch: noarch +# Cargo no longer builds its own documentation +# https://github.com/rust-lang/cargo/pull/4904 +Requires: rust-doc = %{version}-%{release} + +%description -n cargo-doc +This package includes HTML documentation for Cargo. + + +%package -n rustfmt +Summary: Tool to find and fix Rust formatting issues +Requires: cargo + +# The component/package was rustfmt-preview until Rust 1.31. +Obsoletes: rustfmt-preview < 1.0.0 +Provides: rustfmt-preview = %{version}-%{release} + +%description -n rustfmt +A tool for formatting Rust code according to style guidelines. + + +%package -n rls +Summary: Rust Language Server for IDE integration +%if %with bundled_libgit2 +Provides: bundled(libgit2) = 1.1.0 +%endif +Requires: rust-analysis +# /usr/bin/rls is dynamically linked against internal rustc libs +Requires: %{name}%{?_isa} = %{version}-%{release} + +# The component/package was rls-preview until Rust 1.31. +Obsoletes: rls-preview < 1.31.6 +Provides: rls-preview = %{version}-%{release} + +%description -n rls +The Rust Language Server provides a server that runs in the background, +providing IDEs, editors, and other tools with information about Rust programs. +It supports functionality such as 'goto definition', symbol search, +reformatting, and code completion, and enables renaming and refactorings. + + +%package -n clippy +Summary: Lints to catch common mistakes and improve your Rust code +Requires: cargo +# /usr/bin/clippy-driver is dynamically linked against internal rustc libs +Requires: %{name}%{?_isa} = %{version}-%{release} + +# The component/package was clippy-preview until Rust 1.31. +Obsoletes: clippy-preview <= 0.0.212 +Provides: clippy-preview = %{version}-%{release} + +%description -n clippy +A collection of lints to catch common mistakes and improve your Rust code. + + +%package src +Summary: Sources for the Rust standard library +BuildArch: noarch + +%description src +This package includes source files for the Rust standard library. It may be +useful as a reference for code completion tools in various editors. + + +%package analysis +Summary: Compiler analysis data for the Rust standard library +Requires: rust-std-static%{?_isa} = %{version}-%{release} + +%description analysis +This package contains analysis data files produced with rustc's -Zsave-analysis +feature for the Rust standard library. The RLS (Rust Language Server) uses this +data to provide information about the Rust standard library. + + +%prep + +%ifarch %{bootstrap_arches} +%setup -q -n %{bootstrap_root} -T -b %{bootstrap_source} +./install.sh --components=cargo,rustc,rust-std-%{rust_triple} \ + --prefix=%{local_rust_root} --disable-ldconfig +test -f '%{local_rust_root}/bin/cargo' +test -f '%{local_rust_root}/bin/rustc' +%endif + +%setup -q -n %{rustc_package} + +%patch1 -p1 +%patch2 -p1 + +%if %with disabled_libssh2 +%patch100 -p1 +%endif + +%if %without curl_http2 +%patch101 -p1 +rm -rf vendor/libnghttp2-sys/ +%endif + +%if 0%{?rhel} && 0%{?rhel} < 8 +%patch102 -p1 +%endif + +%if "%{python}" != "python3" +# Use our preferred python first +sed -i.try-python -e '/^try python3 /i try "%{python}" "$@"' ./configure +%endif + +%if %without bundled_llvm +rm -rf src/llvm-project/ +mkdir -p src/llvm-project/libunwind/ +%endif + +# Remove other unused vendored libraries +rm -rf vendor/curl-sys/curl/ +rm -rf vendor/jemalloc-sys/jemalloc/ +rm -rf vendor/libssh2-sys/libssh2/ +rm -rf vendor/libz-sys/src/zlib/ +rm -rf vendor/libz-sys/src/zlib-ng/ +rm -rf vendor/lzma-sys/xz-*/ +rm -rf vendor/openssl-src/openssl/ + +%if %without bundled_libgit2 +rm -rf vendor/libgit2-sys/libgit2/ +%endif + +%if %with disabled_libssh2 +rm -rf vendor/libssh2-sys/ +%endif + +# Add support for OpenSSL 3.0.0 +rm -rf vendor/openssl{,-sys}/ +tar -xf %{SOURCE103} -C vendor/ +tar -xf %{SOURCE104} -C vendor/ +%patch103 -p1 + +# This only affects the transient rust-installer, but let it use our dynamic xz-libs +sed -i.lzma -e '/LZMA_API_STATIC/d' src/bootstrap/tool.rs + +%if %{with bundled_llvm} && 0%{?epel} == 7 +mkdir -p cmake-bin +ln -s /usr/bin/cmake3 cmake-bin/cmake +%global cmake_path $PWD/cmake-bin +%endif + +%if %{without bundled_llvm} && %{with llvm_static} +# Static linking to distro LLVM needs to add -lffi +# https://github.com/rust-lang/rust/issues/34486 +sed -i.ffi -e '$a #[link(name = "ffi")] extern {}' \ + src/librustc_llvm/lib.rs +%endif + +# The configure macro will modify some autoconf-related files, which upsets +# cargo when it tries to verify checksums in those files. If we just truncate +# that file list, cargo won't have anything to complain about. +find vendor -name .cargo-checksum.json \ + -exec sed -i.uncheck -e 's/"files":{[^}]*}/"files":{ }/' '{}' '+' + +# Sometimes Rust sources start with #![...] attributes, and "smart" editors think +# it's a shebang and make them executable. Then brp-mangle-shebangs gets upset... +find -name '*.rs' -type f -perm /111 -exec chmod -v -x '{}' '+' + +# Set up shared environment variables for build/install/check +%global rust_env RUSTFLAGS="%{rustflags}" +%if 0%{?cmake_path:1} +%global rust_env %{rust_env} PATH="%{cmake_path}:$PATH" +%endif +%if %without bundled_libgit2 +# convince libgit2-sys to use the distro libgit2 +%global rust_env %{rust_env} LIBGIT2_SYS_USE_PKG_CONFIG=1 +%endif +%if %without disabled_libssh2 +# convince libssh2-sys to use the distro libssh2 +%global rust_env %{rust_env} LIBSSH2_SYS_USE_PKG_CONFIG=1 +%endif + + +%build +export %{rust_env} + +%ifarch %{arm} %{ix86} s390x +# full debuginfo is exhausting memory; just do libstd for now +# https://github.com/rust-lang/rust/issues/45854 +%if 0%{?rhel} && 0%{?rhel} < 8 +# Older rpmbuild didn't work with partial debuginfo coverage. +%global debug_package %{nil} +%define enable_debuginfo --debuginfo-level=0 +%else +%define enable_debuginfo --debuginfo-level=0 --debuginfo-level-std=2 +%endif +%else +%define enable_debuginfo --debuginfo-level=2 +%endif + +# Some builders have relatively little memory for their CPU count. +# At least 2GB per CPU is a good rule of thumb for building rustc. +ncpus=$(/usr/bin/getconf _NPROCESSORS_ONLN) +max_cpus=$(( ($(free -g | awk '/^Mem:/{print $2}') + 1) / 2 )) +if [ "$max_cpus" -ge 1 -a "$max_cpus" -lt "$ncpus" ]; then + ncpus="$max_cpus" +fi + +%configure --disable-option-checking \ + --libdir=%{common_libdir} \ + --build=%{rust_triple} --host=%{rust_triple} --target=%{rust_triple} \ + --set target.%{rust_triple}.linker=%{__cc} \ + --set target.%{rust_triple}.cc=%{__cc} \ + --set target.%{rust_triple}.cxx=%{__cxx} \ + --python=%{python} \ + --local-rust-root=%{local_rust_root} \ + %{!?with_bundled_llvm: --llvm-root=%{llvm_root} \ + %{!?llvm_has_filecheck: --disable-codegen-tests} \ + %{!?with_llvm_static: --enable-llvm-link-shared } } \ + --disable-rpath \ + %{enable_debuginfo} \ + --set rust.codegen-units-std=1 \ + --enable-extended \ + --tools=analysis,cargo,clippy,rls,rustfmt,src \ + --enable-vendor \ + --enable-verbose-tests \ + %{?codegen_units_std} \ + --release-channel=%{channel} \ + --release-description="%{?fedora:Fedora }%{?rhel:Red Hat }%{version}-%{release}" + +%{python} ./x.py build -j "$ncpus" --stage 2 +%{python} ./x.py doc --stage 2 + +%if %defined cross_targets +for triple in %{cross_targets}; do + %{python} ./x.py build --stage 2 --target=$triple std +done +%endif + +%install +export %{rust_env} + +DESTDIR=%{buildroot} %{python} ./x.py install + +%if %defined cross_targets +for triple in %{cross_targets}; do + DESTDIR=%{buildroot} %{python} ./x.py install --target=$triple std +done +%endif + +# These are transient files used by x.py dist and install +rm -rf ./build/dist/ ./build/tmp/ + +# Make sure the shared libraries are in the proper libdir +%if "%{_libdir}" != "%{common_libdir}" +mkdir -p %{buildroot}%{_libdir} +find %{buildroot}%{common_libdir} -maxdepth 1 -type f -name '*.so' \ + -exec mv -v -t %{buildroot}%{_libdir} '{}' '+' +%endif + +# The shared libraries should be executable for debuginfo extraction. +find %{buildroot}%{_libdir} -maxdepth 1 -type f -name '*.so' \ + -exec chmod -v +x '{}' '+' + +# The libdir libraries are identical to those under rustlib/. It's easier on +# library loading if we keep them in libdir, but we do need them in rustlib/ +# to support dynamic linking for compiler plugins, so we'll symlink. +(cd "%{buildroot}%{rustlibdir}/%{rust_triple}/lib" && + find ../../../../%{_lib} -maxdepth 1 -name '*.so' | + while read lib; do + if [ -f "${lib##*/}" ]; then + # make sure they're actually identical! + cmp "$lib" "${lib##*/}" + ln -v -f -s -t . "$lib" + fi + done) + +# Remove installer artifacts (manifests, uninstall scripts, etc.) +find %{buildroot}%{rustlibdir} -maxdepth 1 -type f -exec rm -v '{}' '+' + +# Remove backup files from %%configure munging +find %{buildroot}%{rustlibdir} -type f -name '*.orig' -exec rm -v '{}' '+' + +# https://fedoraproject.org/wiki/Changes/Make_ambiguous_python_shebangs_error +# We don't actually need to ship any of those python scripts in rust-src anyway. +find %{buildroot}%{rustlibdir}/src -type f -name '*.py' -exec rm -v '{}' '+' + +# FIXME: __os_install_post will strip the rlibs +# -- should we find a way to preserve debuginfo? + +# Remove unwanted documentation files (we already package them) +rm -f %{buildroot}%{_docdir}/%{name}/README.md +rm -f %{buildroot}%{_docdir}/%{name}/COPYRIGHT +rm -f %{buildroot}%{_docdir}/%{name}/LICENSE +rm -f %{buildroot}%{_docdir}/%{name}/LICENSE-APACHE +rm -f %{buildroot}%{_docdir}/%{name}/LICENSE-MIT +rm -f %{buildroot}%{_docdir}/%{name}/LICENSE-THIRD-PARTY +rm -f %{buildroot}%{_docdir}/%{name}/*.old + +# Sanitize the HTML documentation +find %{buildroot}%{_docdir}/%{name}/html -empty -delete +find %{buildroot}%{_docdir}/%{name}/html -type f -exec chmod -x '{}' '+' + +# Create the path for crate-devel packages +mkdir -p %{buildroot}%{_datadir}/cargo/registry + +# Cargo no longer builds its own documentation +# https://github.com/rust-lang/cargo/pull/4904 +mkdir -p %{buildroot}%{_docdir}/cargo +ln -sT ../rust/html/cargo/ %{buildroot}%{_docdir}/cargo/html + +%if %without lldb +rm -f %{buildroot}%{_bindir}/rust-lldb +rm -f %{buildroot}%{rustlibdir}/etc/lldb_* +%endif + +# We don't want Rust copies of LLVM tools (rust-lld, rust-llvm-dwp) +rm -f %{buildroot}%{rustlibdir}/%{rust_triple}/bin/rust-ll* + + +%check +export %{rust_env} + +# The results are not stable on koji, so mask errors and just log it. +# Some of the larger test artifacts are manually cleaned to save space. +%{python} ./x.py test --no-fail-fast --stage 2 || : +rm -rf "./build/%{rust_triple}/test/" + +%{python} ./x.py test --no-fail-fast --stage 2 cargo || : +rm -rf "./build/%{rust_triple}/stage2-tools/%{rust_triple}/cit/" + +%{python} ./x.py test --no-fail-fast --stage 2 clippy || : +%{python} ./x.py test --no-fail-fast --stage 2 rls || : +%{python} ./x.py test --no-fail-fast --stage 2 rustfmt || : + + +%ldconfig_scriptlets + + +%files +%license COPYRIGHT LICENSE-APACHE LICENSE-MIT +%doc README.md +%{_bindir}/rustc +%{_bindir}/rustdoc +%{_libdir}/*.so +%{_mandir}/man1/rustc.1* +%{_mandir}/man1/rustdoc.1* +%dir %{rustlibdir} +%dir %{rustlibdir}/%{rust_triple} +%dir %{rustlibdir}/%{rust_triple}/lib +%{rustlibdir}/%{rust_triple}/lib/*.so + + +%files std-static +%dir %{rustlibdir} +%dir %{rustlibdir}/%{rust_triple} +%dir %{rustlibdir}/%{rust_triple}/lib +%{rustlibdir}/%{rust_triple}/lib/*.rlib + + +%if %defined cross_targets +%{lua: do + for triple in string.gmatch(rpm.expand("%{cross_targets}"), "%S+") do + local subs = { + triple = triple, + rustlibdir = rpm.expand("%{rustlibdir}"), + } + local s = string.gsub([[ +%files std-static-{{triple}} +%dir {{rustlibdir}} +%dir {{rustlibdir}}/{{triple}} +%dir {{rustlibdir}}/{{triple}}/lib +{{rustlibdir}}/{{triple}}/lib/*.rlib +]], "{{(%w+)}}", subs) + print(s) + end +end} +%endif + + +%files debugger-common +%dir %{rustlibdir} +%dir %{rustlibdir}/etc +%{rustlibdir}/etc/rust_*.py* + + +%files gdb +%{_bindir}/rust-gdb +%{rustlibdir}/etc/gdb_* +%exclude %{_bindir}/rust-gdbgui + + +%if %with lldb +%files lldb +%{_bindir}/rust-lldb +%{rustlibdir}/etc/lldb_* +%endif + + +%files doc +%docdir %{_docdir}/%{name} +%dir %{_docdir}/%{name} +%dir %{_docdir}/%{name}/html +%{_docdir}/%{name}/html/*/ +%{_docdir}/%{name}/html/*.html +%{_docdir}/%{name}/html/*.css +%{_docdir}/%{name}/html/*.js +%{_docdir}/%{name}/html/*.png +%{_docdir}/%{name}/html/*.svg +%{_docdir}/%{name}/html/*.woff +%{_docdir}/%{name}/html/*.woff2 +%license %{_docdir}/%{name}/html/*.txt +%license %{_docdir}/%{name}/html/*.md + + +%files -n cargo +%license src/tools/cargo/LICENSE-APACHE src/tools/cargo/LICENSE-MIT src/tools/cargo/LICENSE-THIRD-PARTY +%doc src/tools/cargo/README.md +%{_bindir}/cargo +%{_libexecdir}/cargo* +%{_mandir}/man1/cargo*.1* +%{_sysconfdir}/bash_completion.d/cargo +%{_datadir}/zsh/site-functions/_cargo +%dir %{_datadir}/cargo +%dir %{_datadir}/cargo/registry + + +%files -n cargo-doc +%docdir %{_docdir}/cargo +%dir %{_docdir}/cargo +%{_docdir}/cargo/html + + +%files -n rustfmt +%{_bindir}/rustfmt +%{_bindir}/cargo-fmt +%doc src/tools/rustfmt/{README,CHANGELOG,Configurations}.md +%license src/tools/rustfmt/LICENSE-{APACHE,MIT} + + +%files -n rls +%{_bindir}/rls +%doc src/tools/rls/{README.md,COPYRIGHT,debugging.md} +%license src/tools/rls/LICENSE-{APACHE,MIT} + + +%files -n clippy +%{_bindir}/cargo-clippy +%{_bindir}/clippy-driver +%doc src/tools/clippy/{README.md,CHANGELOG.md} +%license src/tools/clippy/LICENSE-{APACHE,MIT} + + +%files src +%dir %{rustlibdir} +%{rustlibdir}/src + + +%files analysis +%{rustlibdir}/%{rust_triple}/analysis/ + + +%changelog +* Tue Aug 10 2021 Mohan Boddu - 1.54.0-2 +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Wed Aug 04 2021 Josh Stone - 1.54.0-1 +- Update to 1.54.0. + +* Tue Jun 22 2021 Josh Stone - 1.53.0-1 +- Update to 1.53.0. +- Update openssl crates to published versions for 3.0 support. + +* Tue Jun 15 2021 Mohan Boddu - 1.52.1-4 +- Rebuilt for RHEL 9 BETA for openssl 3.0 + +* Mon Jun 07 2021 Josh Stone - 1.52.1-3 +- Set rust.codegen-units-std=1 for all targets again. +- Add rust-std-static-wasm32-unknown-unknown. + +* Tue May 18 2021 Josh Stone - 1.52.1-2 +- Rebuild for OpenSSL 3.0.0-alpha16 + +* Thu May 13 2021 Josh Stone - 1.52.1-1 +- Update to 1.52.1. Includes security fixes for CVE-2020-36323, + CVE-2021-28876, CVE-2021-28878, CVE-2021-28879, and CVE-2021-31162. +- Initial support for OpenSSL 3.0.0-alpha15 + +* Wed Apr 28 2021 Josh Stone - 1.51.0-1 +- Update to 1.51.0. Includes security fixes for CVE-2021-28875 + and CVE-2021-28877. + +* Tue Apr 27 2021 Josh Stone - 1.50.0-1 +- Update to 1.50.0. + +* Fri Apr 16 2021 Mohan Boddu - 1.49.0-5 +- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 + +* Fri Feb 12 2021 Josh Stone - 1.49.0-4 +- Rebuild without bootstrap binaries + +* Thu Feb 11 2021 Josh Stone - 1.49.0-3 +- Re-bootstrap due to removed LLVM targets + +* Wed Jan 27 2021 Fedora Release Engineering - 1.49.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Jan 05 2021 Josh Stone - 1.49.0-1 +- Update to 1.49.0. + +* Tue Dec 29 2020 Igor Raits - 1.48.0-3 +- De-bootstrap + +* Mon Dec 28 2020 Igor Raits - 1.48.0-2 +- Rebuild for libgit2 1.1.x + +* Thu Nov 19 2020 Josh Stone - 1.48.0-1 +- Update to 1.48.0. + +* Sat Oct 10 2020 Jeff Law - 1.47.0-2 +- Re-enable LTO + +* Thu Oct 08 2020 Josh Stone - 1.47.0-1 +- Update to 1.47.0. + +* Fri Aug 28 2020 Fabio Valentini - 1.46.0-2 +- Fix LTO with doctests (backported cargo PR#8657). + +* Thu Aug 27 2020 Josh Stone - 1.46.0-1 +- Update to 1.46.0. + +* Mon Aug 03 2020 Josh Stone - 1.45.2-1 +- Update to 1.45.2. + +* Thu Jul 30 2020 Josh Stone - 1.45.1-1 +- Update to 1.45.1. + +* Wed Jul 29 2020 Fedora Release Engineering - 1.45.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Thu Jul 16 2020 Josh Stone - 1.45.0-1 +- Update to 1.45.0. + +* Wed Jul 01 2020 Jeff Law - 1.44.1-2 +- Disable LTO + +* Thu Jun 18 2020 Josh Stone - 1.44.1-1 +- Update to 1.44.1. + +* Thu Jun 04 2020 Josh Stone - 1.44.0-1 +- Update to 1.44.0. + +* Thu May 07 2020 Josh Stone - 1.43.1-1 +- Update to 1.43.1. + +* Thu Apr 23 2020 Josh Stone - 1.43.0-1 +- Update to 1.43.0. + +* Thu Mar 12 2020 Josh Stone - 1.42.0-1 +- Update to 1.42.0. + +* Thu Feb 27 2020 Josh Stone - 1.41.1-1 +- Update to 1.41.1. + +* Thu Feb 20 2020 Josh Stone - 1.41.0-2 +- Rebuild with llvm9.0 + +* Thu Jan 30 2020 Josh Stone - 1.41.0-1 +- Update to 1.41.0. + +* Thu Jan 16 2020 Josh Stone - 1.40.0-3 +- Build compiletest with in-tree libtest + +* Tue Jan 07 2020 Josh Stone - 1.40.0-2 +- Fix compiletest with newer (local-rebuild) libtest +- Fix ARM EHABI unwinding + +* Thu Dec 19 2019 Josh Stone - 1.40.0-1 +- Update to 1.40.0. + +* Tue Nov 12 2019 Josh Stone - 1.39.0-2 +- Fix a couple build and test issues with rustdoc. + +* Thu Nov 07 2019 Josh Stone - 1.39.0-1 +- Update to 1.39.0. + +* Fri Sep 27 2019 Josh Stone - 1.38.0-2 +- Filter the libraries included in rust-std (rhbz1756487) + +* Thu Sep 26 2019 Josh Stone - 1.38.0-1 +- Update to 1.38.0. + +* Thu Aug 15 2019 Josh Stone - 1.37.0-1 +- Update to 1.37.0. + +* Fri Jul 26 2019 Fedora Release Engineering - 1.36.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Thu Jul 04 2019 Josh Stone - 1.36.0-1 +- Update to 1.36.0. + +* Wed May 29 2019 Josh Stone - 1.35.0-2 +- Fix compiletest for rebuild testing. + +* Thu May 23 2019 Josh Stone - 1.35.0-1 +- Update to 1.35.0. + +* Tue May 14 2019 Josh Stone - 1.34.2-1 +- Update to 1.34.2 -- fixes CVE-2019-12083. + +* Tue Apr 30 2019 Josh Stone - 1.34.1-3 +- Set rust.codegen-units-std=1 + +* Fri Apr 26 2019 Josh Stone - 1.34.1-2 +- Remove the ThinLTO workaround. + +* Thu Apr 25 2019 Josh Stone - 1.34.1-1 +- Update to 1.34.1. +- Add a ThinLTO fix for rhbz1701339. + +* Thu Apr 11 2019 Josh Stone - 1.34.0-1 +- Update to 1.34.0. + +* Fri Mar 01 2019 Josh Stone - 1.33.0-2 +- Fix deprecations for self-rebuild + +* Thu Feb 28 2019 Josh Stone - 1.33.0-1 +- Update to 1.33.0. + +* Sat Feb 02 2019 Fedora Release Engineering - 1.32.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Thu Jan 17 2019 Josh Stone - 1.32.0-1 +- Update to 1.32.0. + +* Mon Jan 07 2019 Josh Stone - 1.31.1-9 +- Update to 1.31.1 for RLS fixes. + +* Thu Dec 06 2018 Josh Stone - 1.31.0-8 +- Update to 1.31.0 -- Rust 2018! +- clippy/rls/rustfmt are no longer -preview + +* Thu Nov 08 2018 Josh Stone - 1.30.1-7 +- Update to 1.30.1. + +* Thu Oct 25 2018 Josh Stone - 1.30.0-6 +- Update to 1.30.0. + +* Mon Oct 22 2018 Josh Stone - 1.29.2-5 +- Rebuild without bootstrap binaries. + +* Sat Oct 20 2018 Josh Stone - 1.29.2-4 +- Re-bootstrap armv7hl due to rhbz#1639485 + +* Fri Oct 12 2018 Josh Stone - 1.29.2-3 +- Update to 1.29.2. + +* Tue Sep 25 2018 Josh Stone - 1.29.1-2 +- Update to 1.29.1. +- Security fix for str::repeat (pending CVE). + +* Thu Sep 13 2018 Josh Stone - 1.29.0-1 +- Update to 1.29.0. +- Add a clippy-preview subpackage + +* Mon Aug 13 2018 Josh Stone - 1.28.0-3 +- Use llvm6.0 instead of llvm-7 for now + +* Tue Aug 07 2018 Josh Stone - 1.28.0-2 +- Rebuild for LLVM ppc64/s390x fixes + +* Thu Aug 02 2018 Josh Stone - 1.28.0-1 +- Update to 1.28.0. + +* Tue Jul 24 2018 Josh Stone - 1.27.2-4 +- Update to 1.27.2. + +* Sat Jul 14 2018 Fedora Release Engineering - 1.27.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Jul 10 2018 Josh Stone - 1.27.1-2 +- Update to 1.27.1. +- Security fix for CVE-2018-1000622 + +* Thu Jun 21 2018 Josh Stone - 1.27.0-1 +- Update to 1.27.0. + +* Tue Jun 05 2018 Josh Stone - 1.26.2-4 +- Rebuild without bootstrap binaries. + +* Tue Jun 05 2018 Josh Stone - 1.26.2-3 +- Update to 1.26.2. +- Re-bootstrap to deal with LLVM symbol changes. + +* Tue May 29 2018 Josh Stone - 1.26.1-2 +- Update to 1.26.1. + +* Thu May 10 2018 Josh Stone - 1.26.0-1 +- Update to 1.26.0. + +* Mon Apr 16 2018 Dan Callaghan - 1.25.0-3 +- Add cargo, rls, and analysis + +* Tue Apr 10 2018 Josh Stone - 1.25.0-2 +- Filter codegen-backends from Provides too. + +* Thu Mar 29 2018 Josh Stone - 1.25.0-1 +- Update to 1.25.0. + +* Thu Mar 01 2018 Josh Stone - 1.24.1-1 +- Update to 1.24.1. + +* Wed Feb 21 2018 Josh Stone - 1.24.0-3 +- Backport a rebuild fix for rust#48308. + +* Mon Feb 19 2018 Josh Stone - 1.24.0-2 +- rhbz1546541: drop full-bootstrap; cmp libs before symlinking. +- Backport pr46592 to fix local_rebuild bootstrapping. +- Backport pr48362 to fix relative/absolute libdir. + +* Thu Feb 15 2018 Josh Stone - 1.24.0-1 +- Update to 1.24.0. + +* Mon Feb 12 2018 Iryna Shcherbina - 1.23.0-4 +- Update Python 2 dependency declarations to new packaging standards + (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) + +* Tue Feb 06 2018 Josh Stone - 1.23.0-3 +- Use full-bootstrap to work around a rebuild issue. +- Patch binaryen for GCC 8 + +* Thu Feb 01 2018 Igor Gnatenko - 1.23.0-2 +- Switch to %%ldconfig_scriptlets + +* Mon Jan 08 2018 Josh Stone - 1.23.0-1 +- Update to 1.23.0. + +* Thu Nov 23 2017 Josh Stone - 1.22.1-1 +- Update to 1.22.1. + +* Thu Oct 12 2017 Josh Stone - 1.21.0-1 +- Update to 1.21.0. + +* Mon Sep 11 2017 Josh Stone - 1.20.0-2 +- ABI fixes for ppc64 and s390x. + +* Thu Aug 31 2017 Josh Stone - 1.20.0-1 +- Update to 1.20.0. +- Add a rust-src subpackage. + +* Thu Aug 03 2017 Fedora Release Engineering - 1.19.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 1.19.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Mon Jul 24 2017 Josh Stone - 1.19.0-2 +- Use find-debuginfo.sh --keep-section .rustc + +* Thu Jul 20 2017 Josh Stone - 1.19.0-1 +- Update to 1.19.0. + +* Thu Jun 08 2017 Josh Stone - 1.18.0-1 +- Update to 1.18.0. + +* Mon May 08 2017 Josh Stone - 1.17.0-2 +- Move shared libraries back to libdir and symlink in rustlib + +* Thu Apr 27 2017 Josh Stone - 1.17.0-1 +- Update to 1.17.0. + +* Mon Mar 20 2017 Josh Stone - 1.16.0-3 +- Make rust-lldb arch-specific to deal with lldb deps + +* Fri Mar 17 2017 Josh Stone - 1.16.0-2 +- Limit rust-lldb arches + +* Thu Mar 16 2017 Josh Stone - 1.16.0-1 +- Update to 1.16.0. +- Use rustbuild instead of the old makefiles. +- Update bootstrapping to include rust-std and cargo. +- Add a rust-lldb subpackage. + +* Thu Feb 09 2017 Josh Stone - 1.15.1-1 +- Update to 1.15.1. +- Require rust-rpm-macros for new crate packaging. +- Keep shared libraries under rustlib/, only debug-stripped. +- Merge and clean up conditionals for epel7. + +* Fri Dec 23 2016 Josh Stone - 1.14.0-2 +- Rebuild without bootstrap binaries. + +* Thu Dec 22 2016 Josh Stone - 1.14.0-1 +- Update to 1.14.0. +- Rewrite bootstrap logic to target specific arches. +- Bootstrap ppc64, ppc64le, s390x. (thanks to Sinny Kumari for testing!) + +* Thu Nov 10 2016 Josh Stone - 1.13.0-1 +- Update to 1.13.0. +- Use hardening flags for linking. +- Split the standard library into its own package +- Centralize rustlib/ under /usr/lib/ for multilib integration. + +* Thu Oct 20 2016 Josh Stone - 1.12.1-1 +- Update to 1.12.1. + +* Fri Oct 14 2016 Josh Stone - 1.12.0-7 +- Rebuild with LLVM 3.9. +- Add ncurses-devel for llvm-config's -ltinfo. + +* Thu Oct 13 2016 Josh Stone - 1.12.0-6 +- Rebuild with llvm-static, preparing for 3.9 + +* Fri Oct 07 2016 Josh Stone - 1.12.0-5 +- Rebuild with fixed eu-strip (rhbz1380961) + +* Fri Oct 07 2016 Josh Stone - 1.12.0-4 +- Rebuild without bootstrap binaries. + +* Thu Oct 06 2016 Josh Stone - 1.12.0-3 +- Bootstrap aarch64. +- Use jemalloc's MALLOC_CONF to work around #36944. +- Apply pr36933 to really disable armv7hl NEON. + +* Sat Oct 01 2016 Josh Stone - 1.12.0-2 +- Protect .rustc from rpm stripping. + +* Fri Sep 30 2016 Josh Stone - 1.12.0-1 +- Update to 1.12.0. +- Always use --local-rust-root, even for bootstrap binaries. +- Remove the rebuild conditional - the build system now figures it out. +- Let minidebuginfo do its thing, since metadata is no longer a note. +- Let rust build its own compiler-rt builtins again. + +* Sat Sep 03 2016 Josh Stone - 1.11.0-3 +- Rebuild without bootstrap binaries. + +* Fri Sep 02 2016 Josh Stone - 1.11.0-2 +- Bootstrap armv7hl, with backported no-neon patch. + +* Wed Aug 24 2016 Josh Stone - 1.11.0-1 +- Update to 1.11.0. +- Drop the backported patches. +- Patch get-stage0.py to trust existing bootstrap binaries. +- Use libclang_rt.builtins from compiler-rt, dodging llvm-static issues. +- Use --local-rust-root to make sure the right bootstrap is used. + +* Sat Aug 13 2016 Josh Stone 1.10.0-4 +- Rebuild without bootstrap binaries. + +* Fri Aug 12 2016 Josh Stone - 1.10.0-3 +- Initial import into Fedora (#1356907), bootstrapped +- Format license text as suggested in review. +- Note how the tests already run in parallel. +- Undefine _include_minidebuginfo, because it duplicates ".note.rustc". +- Don't let checks fail the whole build. +- Note that -doc can't be noarch, as rpmdiff doesn't allow variations. + +* Tue Jul 26 2016 Josh Stone - 1.10.0-2 +- Update -doc directory ownership, and mark its licenses. +- Package and declare licenses for libbacktrace and hoedown. +- Set bootstrap_base as a global. +- Explicitly require python2. + +* Thu Jul 14 2016 Josh Stone - 1.10.0-1 +- Initial package, bootstrapped