Accepting request 900678 from home:firstyear:rust_versioned

- Update to version 1.53:
  + Language
    - [You can now use unicode for identifiers.][83799] This allows multilingual
      identifiers but still doesn't allow glyphs that are not considered characters
      such as `◆` or `🦀`. More specifically you can now use any identifier that
      matches the UAX #31 "Unicode Identifier and Pattern Syntax" standard. This
      is the same standard as languages like Python, however Rust uses NFC
      normalization which may be different from other languages.
    - [You can now specify "or patterns" inside pattern matches.][79278]
      Previously you could only use `|` (OR) on complete patterns. E.g.
      ```rust
      let x = Some(2u8);
      // Before
      matches!(x, Some(1) | Some(2));
      // Now
      matches!(x, Some(1 | 2));
      ```
    - [Added the `:pat_param` `macro_rules!` matcher.][83386] This matcher
      has the same semantics as the `:pat` matcher. This is to allow `:pat`
      to change semantics to being a pattern fragment in a future edition.
  + Compiler
    - [Updated the minimum external LLVM version to LLVM 10.][83387]
    - [Added Tier 3\* support for the `wasm64-unknown-unknown` target.][80525]
    - [Improved debuginfo for closures and async functions on Windows MSVC.][83941]
    \* Refer to Rust's [platform support page][platform-support-doc] for more
    information on Rust's tiered platform support.
  + Libraries
    - [Abort messages will now forward to `android_set_abort_message` on
      Android platforms when available.][81469]
    - [`slice::IterMut<'_, T>` now implements `AsRef<[T]>`][82771]

OBS-URL: https://build.opensuse.org/request/show/900678
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=292
This commit is contained in:
William Brown 2021-06-18 05:32:54 +00:00 committed by Git OBS Bridge
parent 9b60c66f20
commit a3c479174a
30 changed files with 98 additions and 1027 deletions

1
README Normal file
View File

@ -0,0 +1 @@
This is a package that depends on the current latest rust for the distribution

View File

@ -1,62 +0,0 @@
# Automatic updating via _service
Edit the spec file, and update the variables related with the version
(in format X.YY.Z):
- *version_current*: for the new version of Rust
- *version_previous*: for the previous version of Rust
- *version_bootstrap*: for the version used to compile Rust, it
recommended to use the same version that *version_previous*
- *rustfmt_version*: for the version of rustfmt cli, check the tarball
to find the correct version
- *clippy_version*: for the version of clippy, check the tarball to
find the correct version
After that, we can execute the service file:
osc service disabledrun
If `osc` complains about a missing service component, double check
that the components are installed. For example, for Tumbleweed:
zypper in obs-service-download_files obs-service-refresh_patches
Finally, update the changelog based on the releases notes:
https://github.com/rust-lang/rust/blob/master/RELEASES.md
# Updating to a new version from upstream
(Original link: https://en.opensuse.org/Rust)
Branch the rust package in the devel:languages:rust project.
You'll need to download precompiled binaries for the compiler used for
bootstrapping, and the actual source code for the compiler. In the
"Other Installation Methods" page listed below, note that it shows
links to .tar.gz packages and their .tar.gz.asc GPG signatures, but
.tar.xz versions are also available.
*Binaries for bootstrapping* - Go to the "Other Installation Methods"
page from rust-lang.org and scroll down to the "Standalone installers"
section. Download the following:
- rust-<version>-aarch64-unknown-linux-gnu.tar.xz
- rust-<version>-armv7-unknown-linux-gnueabihf.tar.xz
- rust-<version>-i686-unknown-linux-gnu.tar.xz
- rust-<version>-powerpc64le-unknown-linux-gnu.tar.xz
- rust-<version>-powerpc64-unknown-linux-gnu.tar.xz
- rust-<version>-s390x-unknown-linux-gnu.tar.xz
- rust-<version>-x86_64-unknown-linux-gnu.tar.xz
*Compiler source code* - From the same page, but now in the "Source
code" section, download this:
rustc-<version>-src.tar.xz
Update those files in the source RPM. Check that all the patches still
apply.
Update the version number in rust.spec.
Add the release notes to rust.changes.

View File

@ -1,49 +0,0 @@
<?xml version="1.0"?>
<constraints>
<hardware>
<processors>8</processors>
<memory>
<size unit="G">8</size>
</memory>
<disk>
<size unit="G">20</size>
</disk>
</hardware>
<!-- i586, armv6 and armv7 tend to run out of memory during builds -->
<overwrite>
<conditions>
<arch>i586</arch>
<arch>armv6l</arch>
<arch>armv7l</arch>
<arch>ppc</arch>
</conditions>
<hardware>
<processors>2</processors>
<physicalmemory>
<size unit="G">4</size>
</physicalmemory>
</hardware>
</overwrite>
<!-- x86_64 to use physical memory to speed builds up -->
<overwrite>
<conditions>
<arch>x86_64</arch>
</conditions>
<hardware>
<physicalmemory>
<size unit="G">11</size>
</physicalmemory>
</hardware>
</overwrite>
<!-- aarch64 is a time consuming build, try to use RAM -->
<overwrite>
<conditions>
<arch>aarch64</arch>
</conditions>
<hardware>
<physicalmemory>
<size unit="G">11</size>
</physicalmemory>
</hardware>
</overwrite>
</constraints>

View File

@ -1,9 +0,0 @@
<services>
<service name="download_files" mode="disabled">
<param name="changesgenerate">enable</param>
</service>
<service name="refresh_patches" mode="disabled">
<param name="changesgenerate">enable</param>
<param name="ignorefuzz">enable</param>
</service>
</services>

View File

@ -1,17 +0,0 @@
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);
}

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f0359cc4e83253eaa86e74724b457509932bbc4f3bb2311021fa43e5965d38eb
size 208849064

View File

@ -1,16 +0,0 @@
-----BEGIN PGP SIGNATURE-----
wsFcBAABCgAQBQJgXJd2CRCFq5bm+hvl/gAAiqIP/0qj9FaKS7UCOr9p/XWov9ts
yB0uq5eJHkKwsgWTrUygEPgeVi070lb7o4oRDbrEBNp5mBh/pM7y/I17pVMfoSiP
kA/VqyNSFi/RXnMdPYLyG19FU6fo1jl/7T1TZXouUY/Dv9lX4d9gngg186qPBXi6
miG7dKK08mpaEN+9FiVMuVzx+/5nZv4FfZZ073Yox19gRr/YsDnLtgPsZIzDQkyf
EXP7d0O9qU9X0JRMs+PaQ51+rX3Uiaoq1/3DNnitHQben93RXbOIjrWNqvYvjpNW
WbIow/b2YcBe+rorBzV5EvQPCmB47yAoaCxgjNRyemesYNNMLK0XKlF8ao0vWFzW
d+eLFoZGY4ZksFgDeMcECvnzJgxtu1D6js5darmj0q5NQOKQZ7g/CWEz3aH5CsU3
iORZ2dxy6zP52JZVjJhxqbEjLkK7XwPCR8uAA/CUhxVdzms0eWwoatBYQCH4gbfk
U+T7z4ZALOlg0Zh4z5aNGiORxMfxdUdSKMhPFeUvuIg7DAa7XTPckQLl5pp+p2SF
pPf5W4jCIgLrgOLjDYRxjwIGTGQevlXLAVH2zX3ZhidDauaUZvrLTryAWJI8mAfs
0ZuJH7ax+RCUBXf8oSH6xx4VhRohsvNlOJz8by6/qfApcA4GpCnlXvuAV7UC+qGi
3JMZC+FBXKqWhMmleBA0
=FgPP
-----END PGP SIGNATURE-----

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c0773bccb772901d908b6e425201ddb3bad02cacfabfd54fd87fc4dfbc98c1ea
size 193918308

View File

@ -1,16 +0,0 @@
-----BEGIN PGP SIGNATURE-----
wsFcBAABCgAQBQJgXJdqCRCFq5bm+hvl/gAADogP/1GSgKC5H16+MllTkzdQ4kPK
qwGdhNfawSyF5A5W3oQFv2UlQDtR18nGe3TTB2q1r0lmZc9pXlA5xMLrSttGoX1H
dweojhz7H2v8Nmz0HI4tRUIT1kT/pYg2+tKJOyEZgKgWIObT0Ao0ZS1Pfna9MW8A
NcZtFT131vaiGrlaFPajYyjQZNE0zVWpZf7i7TO2k9/ImesuPiJayJ3yMxdrrFua
1wajD59RrRfGZSlB8mM5lwu870Z9HHlzEpv83xLhE+OjKiwYx/epVG00WLwNbf+y
cYfB7Fj4GOJWno/H1ZbxZOcgin9fEnCCLd7xlFZdVaAOMAd/7rkUOt5plc2cycIX
fQRq+z3akttehICe6ckWALhoT8MV80AWjMVL73+L0yUw8FiB3CAhXW/LaswY8Cnv
YLg64+42fbV0RBtQZco7/VNIBE+GhLXzwxHU/5n/ASheTKtqcNJrLd9ID5pPcp0e
yOOqIaCWHMOmZ+fESjhv5VxfHarnVDyr6pJLKOhASMKn5fglmGGad0cw1rOJ76OB
OHtAyNVrCuezpfRN2p8cCF586+2gEyOhpLCzZXajz5D4W/8xOiaifMwA2+I4UaUF
X6ZQRCO7daLDwZZelWc9Tibr7DZWbCiL+uvboKHkXRXtNg2MXHAhLqxnb2eLdYDr
cGbnVI1sv+1H3iGSAAT6
=HDYi
-----END PGP SIGNATURE-----

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8fc307490f2aafcde6ce3c2b9985b8fd76829947b8bf2c3d77bb7e25d817360b
size 197028040

View File

@ -1,16 +0,0 @@
-----BEGIN PGP SIGNATURE-----
wsFcBAABCgAQBQJgXJc4CRCFq5bm+hvl/gAAiZwQALAmQB9kj+kHbrMvCGAAgOcn
+o8lLZrjbHeGMw05JKCQVfHyORCS2fRCsu1WhmL+7mLaIzSYZhkE+6ahaThnLpoP
YdZSo231nlf1MH4d4sMbL/4cgH/5nZzswIahcXEAxaB+AbJSo0YQGHkQfad6wiwt
RBfboGO0dMf5aVGbGVfDU6ptcWG2s5id6k+Fsb13L1oqXSeGp8PSHthiFCtxLceu
ekqTGR07QqxC2xXrzqa3oEyA2pquXambBZYAS7JBERAsi3A0Oc6MwnSlChB2Rpjt
bt0Y8qOU982jJI5CPfS0p4eX5wughRKz2JeY7yZXmuZaxcx5J2V7OzDVZId96oHD
JpBFDCvmH7Xo/GL9P8slcHp51J19U3q6Ges8PsaL0/h1tWK/Vpa3S7cFjN0czmQS
/RpUCOkFCy7NTgAs++rhGFKHvaxwIGkX9iOdktEB7yz8SFccrRfNnM/+F599S73t
onPwXq9d942VLXeYPDPyD8rj7xgPtR7OqIHGfS+6nN3dCGHk4+2HyhHPBi3QGPq2
rsnxJ+QO7UKDfDVKIhgr3T6neMzMetU3536jTM7ixkDsQca9bVr482JvMnJx4f/l
bBWzrrBxAhF2L0ElYdP4ARqy//BQwJCpUsxWkfGjk0wne7sk150elk2FJ8j3vG4T
Mt68UUOh7uAzyGbat0Qc
=3UKV
-----END PGP SIGNATURE-----

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:98b8d3a889cc9542563dc842ea440530cc15a908f875ef62c6939a57bf13510d
size 213348860

View File

@ -1,16 +0,0 @@
-----BEGIN PGP SIGNATURE-----
wsFcBAABCgAQBQJgXJe1CRCFq5bm+hvl/gAAXtAP/RQ7+uDpwPfBH12kLYHGP9Vj
lPnH9g0+bGNNrIgz1rVq04CmTzai7MOnLsIxWoAX9uqTjnbvpsiuFQ5p/pL0bmXu
oEsQ8mWFaZ3mw0F3Kl0DI2nDKmXMkcGObz5Uo8YuTotFVXGyNfaaIZU2kIZhgNgX
HTpLSqtpTs+bEZhDskEpYjFESJapFQW9ZUteVo1g8PIj8Azz7LW+tWjDMSrNrU0i
dknJswhymYQ9823MjGkgb6pygTwtB26Om6vMODhUzGMa5qWHCDHCu2zAztGGbMTU
ZtqpLhr7Wb9WKYNILXFyyPyphoftQRz7qMZYjcRZJBrKpbPI/zcgYGiesOUUBmQu
0qUckR/tMVILIELSo6XIlQ5KUEy9RBnZucXKsl7H1h8KkOK930UAxCFyaYlERFWO
VBm9BQZbFPUjqcgsa6iJ3lSsShOkCn3k9IwCHkqYQ/JeGJ6k5VFf2RydqC7St6vQ
jqlFSsa1GALcyNttDUV1aaXxjEjy/3m0+LArPUS+7Y2Csif6aLawnBouZxf1aBUI
0dLoQsf0VmUq08aPXCLsMgboNPNBt/E9YBhgRN4VgWmhq0YLZltyPPu5TC43M/CH
OYBArt8TjZdCRFU+D4ctrCplOljAVdWRLVCE+bUPkd51jWZXj98D9Uq5vslYi33c
ZJuPEUqGyCpOvYFFujy0
=oApk
-----END PGP SIGNATURE-----

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:843a69555848e0ca71fed7e1f3a5f1b71058b1d6d31585ba857fd6d06c7f43fe
size 167534676

View File

@ -1,16 +0,0 @@
-----BEGIN PGP SIGNATURE-----
wsFcBAABCgAQBQJgXJc6CRCFq5bm+hvl/gAAhS0QAMEhtL2apgiPgOMpx07S76WN
yeBOCkcpX7hjHzYPTDYt9cGcpmFzwuKd4w67q8ICImEMOi7giTu608rlNmyLLj+x
nL+4sCX6IzTxZ9EcPB8RjFqlZAnX3vXJU095PZGl3dE1UTqjBN0qj4W+zkuuuyoP
z7CnHIUPaxhhYrpzYsT4VEjmbZvgzLpBsctXo1mwhnWS++gorTa4HE4okZmDMglu
OBUffJp6CTAoi4+x9ih+fJeobh9ak0w8+7lg35r4hI/7jgJzX97FQ77yKibEeEef
h+6qQCwaI8mBSJBvu+cYyzvYCtLQdIGKqnGNUl05gASVl5o+vwu6T869kQ2dlKVc
m5EL7Ru47ilAYLrZKUhxbqChyB2HzAMRGJVM63Bj6jIQdYR5tViyNaGCyNLRXBQW
9oIDaAhp2bDwnCXMzePxZNDf+BSFOH5ji1fJ3vBeA4r2VO6emElvPOKXujrBV6OR
X2G5i9d/xkKkkRZ4S/GqmIHyDZe2cxZhL6RfPKtaMut4Qz7rZ9X+pr0TzdqkoIj2
cCrH8fpURj4BrURwHetLXFT3V2+XMaRuVg8Jd+2Q/Dsjuno4kV60t2cmGC+rBUhC
xc50LxlDeL/VgmRF/4bSxDqkwgrfVsgz/JZbEb3WBLXLOHFqcCo+7X1ojftOTdcD
dy+teFqNbKOCVGmqoh9P
=b0mh
-----END PGP SIGNATURE-----

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:bb073a9f89b39829161aec8b2459b436ba4b01a92320c68593eafb4e25258b80
size 182726600

View File

@ -1,16 +0,0 @@
-----BEGIN PGP SIGNATURE-----
wsFcBAABCgAQBQJgXJdBCRCFq5bm+hvl/gAAlFwQAKr3gRFQRyiXMQ4RRuZQOsGu
vVFtQEoE0VNgbFNlkQCuMf+U85y0LuSiY3YKQikmKbM8B5VkznMGoqfBGB9R8ZqR
g78plBU0LHft+TzjMvvEdiBFuuDScUqXUIM/zd73D32Rskk8//9Y/nKRpqu8SMZs
Tr+YU0sxQ5916ATk+LUe9wvyIMpViOJZd33POQjViZP+acbUhLOmREwCUFRMRP0P
T1z7JCl3Nat3IzlwCeIgezMmuEU10RSNn+YpTlJifASA+kD1Vf/t3BtczobGScsC
dwxkO5sBhlFfEah7kmzrEh0PXCojrVcdUCVPOR4eq3sb8DKfI7kRjY7rS4iv697U
jirFc2FQj47u9vXTnLpW8MRpOLgmOO7rW+Y/L3DGGQWNKRFqxaiVI4Fk3qtmPEvA
kUp3EWtuNtIueZHJcVtTVnhwO8gtqnOpaeMFwe+aNo5RvHxaBzYMQpxvQ0o57zsE
A5A2GDeWyll+ivOgx+dJEhZiY3hfa3Ap2tcvUdYYJLWfqV2cH8kh/2HsrJeI5TVM
xznCA3a3UgyS1pZ88HKKlsbY8IwsDDTVC6/TYI/alKiHiIGcck9gLEHp8mXLkVhz
3DineLmrXUtGZT6VCeilMTu7MC2hFHINmygQuIR032s7cUfI4CWCCV3FOpnwcsBa
6pk0ZknpHCw7xtX6Vkxk
=gdj9
-----END PGP SIGNATURE-----

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d21c95264e59828410afbeecf10b35ee8912fb21025c683a9abe7ff5603f9e90
size 192084372

View File

@ -1,16 +0,0 @@
-----BEGIN PGP SIGNATURE-----
wsFcBAABCgAQBQJgXJefCRCFq5bm+hvl/gAA1/QP/2BwsB6cxAHQDWKjsayZsVbR
DaUcb4jQo7D1NRy69LV0u0gbAw/6rwbwWx/e7K4b4NQ2JoNBUQVNRZKa7C9TxSFK
/Xe4ET8GLmkWybmynyr/Ibhf5sGgttM/y+CNdBP0Dn7uCz0adr1Ylj/AALdjqabO
CS4pJmVQy7vEm6KcilOKz1oRteiU7Hs6iH+ASVocwKJggIvDRdHLK6smmU8EGVq9
OZ2MEoOb1XIyNwI6fbfyS+lgWv4ehzvbAxssJW8ktWzUCJTKuCxOetHehghT+jYx
E86qBeywCTnGnXh4GRvg/0xcW0B3laINNjWtx4epPH8TIpz67qBZt5bjTnadpYhz
g8rtmsfqsBicI6SDfOjdDcV7FTAaIQW0fxMJYlIBlnOjvrIDdHhEVKoShONKpyoD
76O+N6OgiIZUKl4pmQcPtwyD4I9DbZYbUgeKY0JWmXF4lLee8q+x6XSeQpbOKVsu
OzsNp8kEu4Bv3BK0E1p1K3+vqfMAdM1Z8ylhpIsy+5kn2DMhj2VBan4gUbxcjDi5
kJqCyQMhEnQGjrTSkyQ2IALwK69k/X7byV6lc6B2p0TCMNQkdB59RZPMRKV1e3Tq
hfazYTdB49L3HgT9H6WnZXTVnO0+4KVxd64MrNwOi8zSqqaEubf2H8HX+3EQlgSW
7/zfTL5O+OqWAZ6mzhlR
=77VL
-----END PGP SIGNATURE-----

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:79c43b1796d2449a5c9ebf87b237236b6b7c37db3d8c6b62658f7ff12212e3e3
size 179131092

View File

@ -1,16 +0,0 @@
-----BEGIN PGP SIGNATURE-----
wsFcBAABCgAQBQJgXJc/CRCFq5bm+hvl/gAAdLgQAORSqtoTGBREfOgk5OG8DTjM
aRMYWgAtjDVqqmunKszbgfzf9N/gNZF79zfQUnJ/v6HwXoPDxqB0QYI/XU2fdo3Z
5Q5ru+hLcYvnojkqBN3XfQDCHO4UXCrlXVZQCi+GPTR6KG+MrsDjNoPj1jmvbi2Z
Gy/AZOrVj/sL3ZvDkXymJd1q6x9Fj9kz8Dz1XaAncK8DHFtmCYOco2vNh1ZCOYF8
C5dgJ3ieonj/jfdkOyH/HMfm3og1jWVK/so0zOyFSCuQQ6RrdIKmuJS7Ba5j2+Gq
U3ybipwct42KJ3KYHUIQV7RKzj5wYV378i1K+Fg5PU5XQFGMZOqguxZL0mD+cXnZ
7oLrPVjMQauYCctAYTL4w1HdYZCDBocPe/O8xOBbG23MQl6JYjl0/Xuc13Z8I5TG
fHWE8Luzg8KqyrGBbQBHt9B4Tm+Ty9YV9HBVW/XvXKEA8GsitSj+qdsV7FDXc5dP
8iczu/lgZZ2MFuewz8+IHkMBIkiOBmTkUDecZY+7FflJvqqKFfp0t6kWgKvpZfeM
L3iOjTLVqTZLLxpoHzRRzibGvFchgvzuJuLOqHyI7Wi52nYAqLicfPKwVbHC7GBY
5SeMjUqQgfWomw+Elv3lgZXmEu5dh4Aa7pcRYqFp3YBpbgqs7TYJNVfApCTsLUxf
jKMvv23EDdO5zurjtF5a
=O7YO
-----END PGP SIGNATURE-----

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2a43ff5eb85d4e3acfdd565a4239af3bea39526209a816052043142f89560cbb
size 191632144

View File

@ -1,16 +0,0 @@
-----BEGIN PGP SIGNATURE-----
wsFcBAABCgAQBQJgXJddCRCFq5bm+hvl/gAAwMkP/AtK//TU9QeulDKyWmYcqolU
x/7MuY1D2gKT4NEJbr43bkdxDXaH3lwhD1hRolvd1vV35Mv3MWBWPT5NpD0ON9uk
n4BY17iXtuED7pwhIsSePP0Gy5LhgpXFklpFmoaboYoGif+Kl7Wl+FOZO+QgswyE
LBf+MzdDuUuiGrqR1DOyR89khye2bdWqlseRuc9RnPvcfZonaLHG8NCO2pe6cBYP
MVKZT/TlDB3KD1DJAYCvi7DHyxFuaGkPiglD2BiNfhc9ZiNgpSSNShCR9UwiBOFm
CxbGG+2AuqNXj1HWHHVhSxbWnEeEqlxRIa3a/U9huTrI+EIFxNBUlhgZToog6ixH
xgP+pMOsWl6ddIZT3M/hy4UxMpfF0M66kuEoXPAtQpbvJbKyqR8ossl8ZoFrXkRC
gla+8HuE2HH6SeOfv6Q7rJzl5sMIbECsn60x4fI/rdGsRd+OSOMhPIaJ15UIr9eV
3DIzR1cRhCep4gXm5IOSiFtN/eCh0suR60tDjjTXoaR291iG99j7G3TX+U3Gvt//
wn0GT8oY3A+e1c+Qjc3TmLccL0IImV5Ldlz89N25axUMIAHL0XjshBuTXb9Tco7o
9+0xuD3X1pZIs58m13S48ZXN5jxtwedf0iIHUrWG25mwyeWZUOfF+jcqi2fn7Zjt
k0DeLLAcKriHV87h0eME
=MLc+
-----END PGP SIGNATURE-----

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0f3bf3792f9d79d4dd12a7af2d7d1c43c23914690ab12f000030ac94c3e0d20f
size 147543532

View File

@ -1,16 +0,0 @@
-----BEGIN PGP SIGNATURE-----
wsFcBAABCgAQBQJgXJfGCRCFq5bm+hvl/gAA5TAQAN9SdWKhmOba4/x+koEEz57S
8QrNnuCMcBQ0OjwjKKCiIetWmPQLdUV7miAZhg8aDMEaqP++i62E7daFpWzHrsZl
649to8NaNWK6tK5QpWtW9WvwecMSZtPiGYU13BwGnzADoJ1BH3JzXuvnE4DDHB9z
IVIygaKDVEokSY9Om4tn/9J+PFjoAnqBP2BoOylutXnRcF9RbgObmhXNAB4OrVWw
lxwIwHiGUnKEzwjjK6vAK/qmiPV6qWvm/vnodTuoDnKH8uwgIKV6+448FoW22jSt
3l5XyBlCmerGzm8vETDPijKuuIHambC08YhEAdx3sgbp4gMX4/T7Z1RGUUpX9VQY
+oMB94hHNE8KimQKx08/73LMd9mPxupKcURTzLdYWKEYDzL8tRZlxesRBkAvL7vl
HlwPlRemyoJv7xlViHtIOeh3sQN5AO/fy/zaIkNw8vJfxLsUlJnTHAig9cM+2ZL2
ix/hW2iD+gk1sgUkIM7lrBM2dDTiF1wZmTdmxesyOpwcP+p8qPSls8X53VeKOyqc
+WFUh0xQXoW/DnW+43S0HFQrkfl1nckh9DKIInblqwDxkopMuE6LlAtbFRMXCJGq
it3Uqi2T3pPugOA9S/Z+OXRAYF9qhuYu5NQK/zjk+1mRpHSmcX72zChLbR+cXEm/
jXrtx6hD0ytjW9G/EsEz
=QCBh
-----END PGP SIGNATURE-----

View File

@ -1,23 +0,0 @@
# filters for rust-src
addFilter("devel-dependency rust-std-static")
addFilter("devel-file-in-non-devel-package.*/usr/lib/rustlib/src/.*")
# 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*")
# tool versions don't always change at same pace as rustc
addFilter("clippy.x86_64: W: no-version-in-last-changelog")
addFilter("rls.x86_64: W: no-version-in-last-changelog")
addFilter("rust-analysis.x86_64: W: no-version-in-last-changelog")
addFilter("rustfmt.x86_64: W: no-version-in-last-changelog")
# we use a "provides =" with version to set the version correctly
addFilter("clippy.x86_64: W: useless-provides clippy")
addFilter("rustfmt.x86_64: W: useless-provides rustfmt")
# error when building with bootstrap. ignore for now
addFilter(".*shlib-policy-name-error.*libLLVM-11.*")

View File

@ -1,3 +1,65 @@
-------------------------------------------------------------------
Fri Jun 18 00:52:43 UTC 2021 - William Brown <william.brown@suse.com>
- Update to version 1.53:
+ Language
- [You can now use unicode for identifiers.][83799] This allows multilingual
identifiers but still doesn't allow glyphs that are not considered characters
such as `◆` or `🦀`. More specifically you can now use any identifier that
matches the UAX #31 "Unicode Identifier and Pattern Syntax" standard. This
is the same standard as languages like Python, however Rust uses NFC
normalization which may be different from other languages.
- [You can now specify "or patterns" inside pattern matches.][79278]
Previously you could only use `|` (OR) on complete patterns. E.g.
```rust
let x = Some(2u8);
// Before
matches!(x, Some(1) | Some(2));
// Now
matches!(x, Some(1 | 2));
```
- [Added the `:pat_param` `macro_rules!` matcher.][83386] This matcher
has the same semantics as the `:pat` matcher. This is to allow `:pat`
to change semantics to being a pattern fragment in a future edition.
+ Compiler
- [Updated the minimum external LLVM version to LLVM 10.][83387]
- [Added Tier 3\* support for the `wasm64-unknown-unknown` target.][80525]
- [Improved debuginfo for closures and async functions on Windows MSVC.][83941]
\* Refer to Rust's [platform support page][platform-support-doc] for more
information on Rust's tiered platform support.
+ Libraries
- [Abort messages will now forward to `android_set_abort_message` on
Android platforms when available.][81469]
- [`slice::IterMut<'_, T>` now implements `AsRef<[T]>`][82771]
- [Arrays of any length now implement `IntoIterator`.][84147]
Currently calling `.into_iter()` as a method on an array will
return `impl Iterator<Item=&T>`, but this may change in a
future edition to change `Item` to `T`. Calling `IntoIterator::into_iter`
directly on arrays will provide `impl Iterator<Item=T>` as expected.
- [`leading_zeros`, and `trailing_zeros` are now available on all
`NonZero` integer types.][84082]
- [`{f32, f64}::from_str` now parse and print special values
(`NaN`, `-0`) according to IEEE RFC 754.][78618]
- [You can now index into slices using `(Bound<usize>, Bound<usize>)`.][77704]
- [Add the `BITS` associated constant to all numeric types.][82565]
+ Cargo
- [Cargo now supports git repositories where the default `HEAD` branch is not
"master".][cargo/9392] This also includes a switch to the version 3 `Cargo.lock` format
which can handle default branches correctly.
- [macOS targets now default to `unpacked` split-debuginfo.][cargo/9298]
- [The `authors` field is no longer included in `Cargo.toml` for new
projects.][cargo/9282]
+ Rustdoc
- [Added the `rustdoc::bare_urls` lint that warns when you have URLs
without hyperlinks.][81764]
+ Compatibility Notes
- [Implement token-based handling of attributes during expansion][82608]
- [`Ipv4::from_str` will now reject octal format IP addresses in addition
to rejecting hexadecimal IP addresses.][83652] The octal format can lead
to confusion and potential security vulnerabilities and [is no
longer recommended][ietf6943].
-------------------------------------------------------------------
Mon May 10 22:41:00 UTC 2021 - William Brown <william.brown@suse.com>

View File

@ -1,85 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
/5A5vjHh+NhFwH5h2vBJVPdsz6k=
=jRHo
-----END PGP PUBLIC KEY BLOCK-----

624
rust.spec
View File

@ -2,7 +2,7 @@
# spec file for package rust
#
# Copyright (c) 2021 SUSE LLC
# Copyright (c) 2019 Luke Jones, luke@ljones.dev
# Copyright (c) 2021 William Brown <william@blackhats.net.au>
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -17,67 +17,8 @@
#
%global version_current 1.52.1
%global version_previous 1.51.0
%global version_bootstrap 1.51.0
# some sub-packages are versioned independently
%global rustfmt_version 1.4.25
%global clippy_version 0.0.212
# 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}
# 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
# Will build with distro LLVM by default, but the following versions
# do not have a version new enough, >= 8.0 add --without bundled_llvm
# option, i.e. enable bundled_llvm by default Leap 42 to 42.3, SLE12
# SP1 to SLE12 SP3, Leap 15.1, SLE15 SP0
%if 0%{?sle_version} >= 120000 && 0%{?sle_version} <= 150100
%bcond_without bundled_llvm
%endif
%global version_suffix 1.53
%global version_current 1.53.0
# RLS requires 64-bit atomics
%ifarch ppc
@ -86,42 +27,6 @@
%bcond_without rls
%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
%define codegen_units --set rust.codegen-units=1
# Debuginfo can exhaust memory on these architecture workers
%ifarch %{arm} %{ix86}
%define debug_info --disable-debuginfo --disable-debuginfo-only-std --disable-debuginfo-tools --disable-debuginfo-lines
%define strip_debug_flag 1
%else
%define debug_info --enable-debuginfo --disable-debuginfo-only-std --enable-debuginfo-tools --disable-debuginfo-lines
%endif
%if 0%{?sle_version} >= 120000 && 0%{?sle_version} <= 120500
# Use hardening ldflags, plus link path for gcc7's libstdc++
%global gcc_arch %{_arch}
%ifarch %{ix86}
# This is where gcc7 puts things in 32-bit x86.
%global gcc_arch i586
%endif
%ifarch ppc64le
# This is where gcc7 puts things in ppc64le.
%global gcc_arch powerpc64le
%endif
%global rustflags -Clink-arg=-Wl,-z,relro,-z,now -L%{_libdir}/gcc/%{gcc_arch}-suse-linux/7
%else
# Use hardening ldflags
%global rustflags -Clink-arg=-Wl,-z,relro,-z,now
%endif
# Exclude implicitly-scanned Provides, especially the libLLVM.so ones:
%global __provides_exclude_from ^%{rustlibdir}/.*$
# enable the --with-rust_bootstrap flag
%bcond_with rust_bootstrap
Name: rust
Version: %{version_current}
Release: 0
@ -129,96 +34,10 @@ 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: %{name}.keyring
Source99: %{name}-rpmlintrc
Source100: %{dl_url}/rust-%{version_bootstrap}-x86_64-unknown-linux-gnu.tar.xz
Source101: %{dl_url}/rust-%{version_bootstrap}-i686-unknown-linux-gnu.tar.xz
Source102: %{dl_url}/rust-%{version_bootstrap}-aarch64-unknown-linux-gnu.tar.xz
Source103: %{dl_url}/rust-%{version_bootstrap}-armv7-unknown-linux-gnueabihf.tar.xz
Source104: %{dl_url}/rust-%{version_bootstrap}-arm-unknown-linux-gnueabihf.tar.xz
Source105: %{dl_url}/rust-%{version_bootstrap}-powerpc64-unknown-linux-gnu.tar.xz
Source106: %{dl_url}/rust-%{version_bootstrap}-powerpc64le-unknown-linux-gnu.tar.xz
Source107: %{dl_url}/rust-%{version_bootstrap}-s390x-unknown-linux-gnu.tar.xz
Source108: %{dl_url}/rust-%{version_bootstrap}-powerpc-unknown-linux-gnu.tar.xz
Source109: %{dl_url}/rust-%{version_bootstrap}-riscv64gc-unknown-linux-gnu.tar.xz
Source200: %{dl_url}/rust-%{version_bootstrap}-x86_64-unknown-linux-gnu.tar.xz.asc
Source201: %{dl_url}/rust-%{version_bootstrap}-i686-unknown-linux-gnu.tar.xz.asc
Source202: %{dl_url}/rust-%{version_bootstrap}-aarch64-unknown-linux-gnu.tar.xz.asc
Source203: %{dl_url}/rust-%{version_bootstrap}-armv7-unknown-linux-gnueabihf.tar.xz.asc
Source204: %{dl_url}/rust-%{version_bootstrap}-arm-unknown-linux-gnueabihf.tar.xz.asc
Source205: %{dl_url}/rust-%{version_bootstrap}-powerpc64-unknown-linux-gnu.tar.xz.asc
Source206: %{dl_url}/rust-%{version_bootstrap}-powerpc64le-unknown-linux-gnu.tar.xz.asc
Source207: %{dl_url}/rust-%{version_bootstrap}-s390x-unknown-linux-gnu.tar.xz.asc
Source208: %{dl_url}/rust-%{version_bootstrap}-powerpc-unknown-linux-gnu.tar.xz.asc
Source209: %{dl_url}/rust-%{version_bootstrap}-riscv64gc-unknown-linux-gnu.tar.xz.asc
# 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
BuildRequires: ccache
BuildRequires: curl
BuildRequires: fdupes
BuildRequires: git
BuildRequires: pkgconfig
BuildRequires: procps
BuildRequires: python3-base
BuildRequires: pkgconfig(libcurl)
BuildRequires: pkgconfig(openssl)
BuildRequires: pkgconfig(zlib)
# Leap 42 to 42.3, SLE12 SP1, SP2
%if 0%{?sle_version} >= 120000 && 0%{?sle_version} <= 120200
# In these distros cmake is 2.x, so we need cmake3 for building llvm.
BuildRequires: cmake3
%else
# cmake got upgraded to 3.5 in SLE-12 SP2
BuildRequires: cmake
%endif
# In all of SLE12, the default gcc is 4.8. Rust's LLVM wants 5.1 at least.
# So, we'll just use gcc7.
%if 0%{?sle_version} >= 120000 && 0%{?sle_version} <= 120500
BuildRequires: gcc7-c++
%else
BuildRequires: gcc-c++
%endif
# The following requires must mirror: LIBSSH2_SYS_USE_PKG_CONFIG
%if !%{with rust_bootstrap} && 0%{?sle_version} >= 150000
BuildRequires: pkgconfig(libssh2) >= 1.6.0
%endif
# Real LLVM minimum version should be 9.x, but rust has a fallback
# mode
%if !%with bundled_llvm
%if 0%{?suse_version} < 1550
BuildRequires: llvm9-devel
%else
BuildRequires: llvm-devel >= 8.0
%endif
%endif
%if !%with rust_bootstrap
# We will now package cargo using the version number of rustc since it
# is being built from rust sources. Old cargo packages have a 0.x
# number
BuildRequires: cargo <= %{version_current}
BuildRequires: cargo >= %{version_previous}
BuildRequires: rust <= %{version_current}
BuildRequires: rust >= %{version_previous}
BuildRequires: rust-std-static <= %{version_current}
BuildRequires: rust-std-static >= %{version_previous}
%endif
# The compiler is not generally useful without the std library
# installed and the std library is exactly specific to the version of
# the compiler
Requires: %{name}-std-static = %{version}
Recommends: %{name}-doc
Recommends: cargo
Conflicts: rust
Conflicts: rustc-bootstrap
# 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
Source: README
Requires: rust%{version_suffix}
Conflicts: rust < %{version}
Obsoletes: rust < %{version}
%description
Rust is a systems programming language focused on three goals: safety,
@ -234,64 +53,37 @@ 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 rust-std-static
Summary: Standard library for Rust
License: Apache-2.0 OR MIT
Group: Development/Languages/Rust
Requires: %{name} = %{version}
Conflicts: rust-std < %{version}
Obsoletes: rust-std < %{version}
Provides: rust-std = %{version}
%description -n rust-std-static
This package includes the standard libraries for building applications
written in Rust.
%package -n rust-doc
Summary: Rust documentation
License: Apache-2.0 OR MIT
Group: Development/Languages/Rust
Requires: %{name} = %{version}
%description -n rust-doc
Documentation for the Rust language.
%package -n rust-gdb
Summary: Gdb integration for rust binaries
License: Apache-2.0 OR MIT
Group: Development/Languages/Rust
Requires: %{name} = %{version}
Requires: rust = %{version}
Requires: rust%{version_suffix}
Requires: rust%{version_suffix}-gdb
Conflicts: rust-gdb < %{version}
Obsoletes: rust-gdb < %{version}
%if 0%{?suse_version} && 0%{?suse_version} < 1500
# Legacy SUSE-only form
Supplements: packageand(%{name}:gdb)
Supplements: packageand(rust:gdb)
%else
# Standard form
Supplements: (%{name} and gdb)
Supplements: (rust and gdb)
%endif
%description -n rust-gdb
This subpackage provides pretty printers and a wrapper script for
invoking gdb on rust binaries.
%package -n rust-src
Summary: Sources for the Rust standard library
License: Apache-2.0 OR MIT
Group: Development/Languages/Rust
Requires: %{name} = %{version}
BuildArch: noarch
%description -n rust-src
This package includes source files for the Rust standard library. This
is commonly used for function detail lookups in helper programs such
as RLS or racer.
%package -n rls
Summary: Language server for Rust lang
License: Apache-2.0 OR MIT
Group: Development/Languages/Rust
Requires: %{name} = %{version}
Requires: %{name}-analysis = %{version}
Requires: %{name}-src = %{version}
Requires: rust = %{version}
Requires: rust%{version_suffix}
Requires: rls%{version_suffix}
Conflicts: rls < %{version}
Obsoletes: rls < %{version}
%description -n rls
The RLS provides a server that runs in the background, providing IDEs,
@ -300,391 +92,45 @@ supports functionality such as 'goto definition', symbol search,
reformatting, and code completion, and enables renaming and
refactorings. It can be used with an IDE such as Gnome-Builder.
%package -n rust-analysis
Summary: Compiler analysis data for the Rust standard library
License: Apache-2.0 OR MIT
Group: Development/Languages/Rust
Requires: rust-std-static = %{version}
%description -n rust-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.
%package -n rustfmt
Summary: Code formatting tool for Rust lang
License: Apache-2.0 OR MIT
Group: Development/Languages/Rust
Requires: %{name} = %{version}
Requires: cargo = %{version}
Provides: cargo-fmt = %{rustfmt_version}
Provides: rustfmt = %{rustfmt_version}
%if 0%{?suse_version} && 0%{?suse_version} < 1500
# Legacy SUSE-only form
Supplements: packageand(%{name}:cargo)
%else
# Standard form
Supplements: (%{name} and cargo)
%endif
%description -n rustfmt
A tool for formatting Rust code according to style guidelines.
%package -n clippy
Summary: Lints to catch common mistakes and improve Rust code
# /usr/bin/clippy-driver is dynamically linked against internal rustc libs
License: MPL-2.0
Group: Development/Languages/Rust
Requires: %{name} = %{version}
Requires: cargo = %{version}
Provides: clippy = %{clippy_version}
%description -n clippy
A collection of lints to catch common mistakes and improve Rust code.
%package -n cargo
Summary: The Rust package manager
License: Apache-2.0 OR MIT
Group: Development/Languages/Rust
Requires: %{name} = %{version}
Requires: rust = %{version}
Requires: rust%{version_suffix}
Requires: cargo%{version_suffix}
Conflicts: cargo < %{version}
Obsoletes: cargo < %{version}
Conflicts: cargo-vendor < %{version}
Obsoletes: cargo-vendor < %{version}
Provides: rustc:%{_bindir}/cargo = %{version}
%description -n cargo
Cargo downloads dependencies of Rust projects and compiles it.
%package -n cargo-doc
Summary: Documentation for Cargo
# Cargo no longer builds its own documentation
# https://github.com/rust-lang/cargo/pull/4904
License: Apache-2.0 OR MIT
Group: Development/Languages/Rust
Requires: rust-doc = %{version}
BuildArch: noarch
%description -n cargo-doc
This package includes HTML documentation for Cargo.
%prep
%if %{with rust_bootstrap}
%ifarch x86_64
%setup -q -T -b 100 -n rust-%{version_bootstrap}-%{rust_triple}
%endif
%ifarch %{ix86}
%setup -q -T -b 101 -n rust-%{version_bootstrap}-%{rust_triple}
%endif
%ifarch aarch64
%setup -q -T -b 102 -n rust-%{version_bootstrap}-%{rust_triple}
%endif
%ifarch armv7hl
%setup -q -T -b 103 -n rust-%{version_bootstrap}-%{rust_triple}
%endif
%ifarch armv6hl
%setup -q -T -b 104 -n rust-%{version_bootstrap}-%{rust_triple}
%endif
%ifarch ppc64
%setup -q -T -b 105 -n rust-%{version_bootstrap}-%{rust_triple}
%endif
%ifarch ppc64le
%setup -q -T -b 106 -n rust-%{version_bootstrap}-%{rust_triple}
%endif
%ifarch s390x
%setup -q -T -b 107 -n rust-%{version_bootstrap}-%{rust_triple}
%endif
%ifarch ppc
%setup -q -T -b 108 -n rust-%{version_bootstrap}-%{rust_triple}
%endif
%ifarch riscv64
%setup -q -T -b 109 -n rust-%{version_bootstrap}-%{rust_triple}
%endif
./install.sh --components=cargo,rustc,rust-std-%{rust_triple} --prefix=.%{_prefix} --disable-ldconfig
%endif
%if %{with rust_bootstrap}
%global rust_root %{_builddir}/rust-%{version_bootstrap}-%{rust_triple}%{_prefix}
%else
%global rust_root %{_prefix}
%endif
%setup -q -n rustc-%{version}-src
%patch0 -p1
# use python3
sed -i -e "1s|#!.*|#!%{_bindir}/python3|" x.py
sed -i.try-py3 -e '/try python2.7/i try python3 "$@"' ./configure
# We never enable emscripten.
rm -rf src/llvm-emscripten/
# We never enable other LLVM tools.
rm -rf src/tools/clang
rm -rf src/tools/lld
rm -rf src/tools/lldb
# CI tooling won't be used
rm -rf src/ci
# Remove hidden files from source
find src/ -type f -name '.appveyor.yml' -exec rm -v '{}' '+'
find src/ -type f -name '.travis.yml' -exec rm -v '{}' '+'
find src/ -type f -name '.cirrus.yml' -exec rm -v '{}' '+'
%if !%with bundled_llvm
rm -rf src/llvm/
%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":{ }/' '{}' '+'
# 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
%build
%define _lto_cflags %{nil}
%configure \
--set rust.deny-warnings=false \
--disable-option-checking \
--build=%{rust_triple} --host=%{rust_triple} --target=%{rust_triple} \
--enable-local-rust \
--local-rust-root=%{rust_root} \
--libdir=%{common_libdir} \
--docdir=%{_docdir}/%{name} \
%{!?with_bundled_llvm: --llvm-root=%{_prefix} --enable-llvm-link-shared} \
%{?with_bundled_llvm: --disable-llvm-link-shared --set llvm.link-jobs=4} \
--disable-codegen-tests \
--enable-optimize \
--enable-ccache \
--enable-docs \
--enable-verbose-tests \
--disable-jemalloc \
--disable-rpath \
%{debug_info} \
%{codegen_units} \
--enable-vendor \
--enable-extended \
%if %{with rls}
--tools="cargo","rls","clippy","rustfmt","analysis","src" \
%else
--tools="cargo","clippy","rustfmt","analysis","src" \
%endif
--release-channel="stable"
# Sometimes we may be rebuilding with the same compiler,
# setting local-rebuild will skip stage0 build, reducing build time
if [ $(%{rust_root}/bin/rustc --version | sed -En 's/rustc ([0-9].[0-9][0-9].[0-9]).*/\1/p') = '%{version}' ]; then
sed -i -e "s|#local-rebuild = false|local-rebuild = true|" config.toml;
fi
%if %with bundled_llvm
# Ninja gets used for building llvm from rust-1.48 onwards;
# disable its use for anything older than Leap 15.2:
sed -i -e "s|#ninja = true|ninja = false|" config.toml
%endif
# 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!
cat > .env.sh <<\EOF
export RUSTFLAGS="%{rustflags}"
%if 0%{?sle_version} >= 120000 && 0%{?sle_version} <= 120500
export CC=gcc-7
export CXX=g++-7
%endif
# Make cargo use system libs if not bootstrapping
%if !%{with rust_bootstrap} && 0%{?sle_version} >= 150000
export LIBSSH2_SYS_USE_PKG_CONFIG=1
%endif
export DESTDIR=%{buildroot}
# END EXPORTS
EOF
. ./.env.sh
%if 0%{?strip_debug_flag}
export CFLAGS="$(echo $RPM_OPT_FLAGS | sed -e 's/ -g$//')"
%endif
export CXXFLAGS="$CFLAGS"
unset FFLAGS
./x.py build -v
./x.py doc -v --stage 1
%install
# Reread exports file
. ./.env.sh
./x.py install
./x.py install src
# Remove executable permission from HTML documentation
# to prevent RPMLINT errors.
chmod -R -x+X %{buildroot}%{_docdir}/%{name}/html
# Remove lockfile to avoid errors.
rm %{buildroot}%{_docdir}/%{name}/html/.lock
# Sanitize the HTML documentation
find %{buildroot}%{_docdir}/%{name}/html -empty -delete
find %{buildroot}%{_docdir}/%{name}/html -type f -exec chmod -x '{}' '+'
find %{buildroot}%{_docdir}/%{name}/html -type f -name '.nojekyll' -exec rm -v '{}' '+'
# Remove the license files from _docdir: make install put duplicates there
rm %{buildroot}%{_docdir}/%{name}/{README.md,COPYRIGHT,LICENSE*}
rm %{buildroot}%{_docdir}/%{name}/*.old
# Remove installer artifacts (manifests, uninstall scripts, etc.)
find %{buildroot}%{rustlibdir} -maxdepth 1 -type f -exec rm -v '{}' '+'
# The shared libraries should be executable to allow fdupes find duplicates.
find %{buildroot}%{common_libdir} -maxdepth 1 -type f -name '*.so' -exec chmod -v +x '{}' '+'
# The shared libraries should be executable for debuginfo extraction.
find %{buildroot}%{rustlibdir} -maxdepth 1 -type f -name '*.so' -exec chmod -v +x '{}' '+'
# Install rust-llvm-dwp in _bindir
mv %{buildroot}%{rustlibdir}/*-unknown-linux-gnu*/bin/rust-llvm-dwp %{buildroot}%{_bindir}
rm -rf %{buildroot}%{rustlibdir}/*-unknown-linux-gnu*/bin
# The html docs for x86 and x86_64 are the same in most places
%fdupes -s %{buildroot}%{_docdir}/%{name}/html
%fdupes -s %{buildroot}/%{_mandir}
%fdupes %{buildroot}/%{_prefix}
# 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
# Move the bash-completion to correct directory for openSUSE
install -D %{buildroot}%{_sysconfdir}/bash_completion.d/cargo %{buildroot}%{_datadir}/bash-completion/completions/cargo
# There should be nothing here at all
rm -rf %{buildroot}%{_sysconfdir}
# cargo does not respect our _libexec setting on Leap:
if [ ! -f %{buildroot}%{_libexecdir}/cargo-credential-1password ] &&
[ -f %{buildroot}%{_exec_prefix}/libexec/cargo-credential-1password ]; then
mv %{buildroot}%{_exec_prefix}/libexec/cargo-credential-1password \
%{buildroot}%{_libexecdir}/cargo-credential-1password
fi
# Remove llvm installation
rm -rf %{buildroot}/home
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
install -D -m 0644 %{S:0} %{buildroot}/usr/share/doc/packages/rust/README
install -D -m 0644 %{S:0} %{buildroot}/usr/share/doc/packages/rust-gdb/README
install -D -m 0644 %{S:0} %{buildroot}/usr/share/doc/packages/rls/README
install -D -m 0644 %{S:0} %{buildroot}/usr/share/doc/packages/cargo/README
%files
%if 0%{?suse_version} == 1315
%doc COPYRIGHT LICENSE-APACHE LICENSE-MIT
%else
%license COPYRIGHT LICENSE-APACHE LICENSE-MIT
%endif
%doc CONTRIBUTING.md README.md RELEASES.md
%{_bindir}/rustc
%{_bindir}/rustdoc
%{_bindir}/rust-lldb
%{_bindir}/rust-llvm-dwp
%{_mandir}/man1/rustc.1%{?ext_man}
%{_mandir}/man1/rustdoc.1%{?ext_man}
%{_prefix}/lib/lib*.so
%dir %{rustlibdir}
%dir %{rustlibdir}/%{rust_triple}
%dir %{rustlibdir}/%{rust_triple}/lib
%{rustlibdir}/%{rust_triple}/lib/*.so
%{_libexecdir}/cargo-credential-1password
%exclude %{_docdir}/%{name}/html
%exclude %{rustlibdir}/src
%files -n rust-std-static
%dir %{rustlibdir}
%dir %{rustlibdir}/%{rust_triple}
%dir %{rustlibdir}/%{rust_triple}/lib
%{rustlibdir}/%{rust_triple}/lib/*.rlib
%defattr(-,root,root,-)
%doc /usr/share/doc/packages/rust
%files -n rust-gdb
%{_bindir}/rust-gdb
%{_bindir}/rust-gdbgui
%dir %{rustlibdir}
%dir %{rustlibdir}%{_sysconfdir}
%{rustlibdir}%{_sysconfdir}/gdb_load_rust_pretty_printers.py
%{rustlibdir}%{_sysconfdir}/gdb_lookup.py
%{rustlibdir}%{_sysconfdir}/gdb_providers.py
%{rustlibdir}%{_sysconfdir}/lldb_commands
%{rustlibdir}%{_sysconfdir}/lldb_lookup.py
%{rustlibdir}%{_sysconfdir}/lldb_providers.py
%{rustlibdir}%{_sysconfdir}/rust_types.py
%files -n rust-doc
%dir %{_docdir}/%{name}
%dir %{_docdir}/%{name}/html
%doc %{_docdir}/%{name}/html/*
%files -n rust-src
%dir %{rustlibdir}
%{rustlibdir}/src
%defattr(-,root,root,-)
%doc /usr/share/doc/packages/rust-gdb
%if %{with rls}
%files -n rls
%if 0%{?suse_version} == 1315 && !0%{?is_opensuse}
%doc src/tools/rls/LICENSE-{APACHE,MIT}
%else
%license src/tools/rls/LICENSE-{APACHE,MIT}
%defattr(-,root,root,-)
%doc /usr/share/doc/packages/rls
%endif
%doc src/tools/rls/{README.md,COPYRIGHT,debugging.md}
%{_bindir}/rls
%endif
%files analysis
%{rustlibdir}/%{rust_triple}/analysis/
%files -n rustfmt
%if 0%{?suse_version} == 1315 && !0%{?is_opensuse}
%doc src/tools/rustfmt/LICENSE-{APACHE,MIT}
%else
%license src/tools/rustfmt/LICENSE-{APACHE,MIT}
%endif
%doc src/tools/rustfmt/{README,CHANGELOG,Configurations}.md
%{_bindir}/cargo-fmt
%{_bindir}/rustfmt
%files -n clippy
%if 0%{?suse_version} == 1315 && !0%{?is_opensuse}
%doc src/tools/clippy/LICENSE-{APACHE,MIT}
%else
%license src/tools/clippy/LICENSE-{APACHE,MIT}
%endif
%doc src/tools/clippy/{README.md,CHANGELOG.md}
%{_bindir}/cargo-clippy
%{_bindir}/clippy-driver
%files -n cargo
%if 0%{?suse_version} == 1315 && !0%{?is_opensuse}
%doc src/tools/cargo/LICENSE-{APACHE,MIT,THIRD-PARTY}
%else
%license src/tools/cargo/LICENSE-{APACHE,MIT,THIRD-PARTY}
%endif
%{_bindir}/cargo
%{_mandir}/man1/cargo*.1%{?ext_man}
%dir %{_datadir}/bash-completion
%dir %{_datadir}/bash-completion/completions
%{_datadir}/bash-completion/completions/cargo
%dir %{_datadir}/zsh
%dir %{_datadir}/zsh/site-functions
%{_datadir}/zsh/site-functions/_cargo
%dir %{_datadir}/cargo
%dir %{_datadir}/cargo/registry
%files -n cargo-doc
%dir %{_docdir}/cargo
%{_docdir}/cargo/html
%defattr(-,root,root,-)
%doc /usr/share/doc/packages/cargo
%changelog

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:521bbaebce262264e44acb164d327cba27acf6f08bd7de672d8d1e16e7ed959e
size 115109508