libcrypto3 is required because openssh-10.0_p1-r8 needs a newer
version of libcrypto3 (3.5.3-r1 as of this writing).
However, the pre-installed one on the image is 3.3.2-r4,
and the one the registry is 3.5.1-r0
Hence an `apk upgrade` is required.
We should remove this someday when upstream fixes it.
Also, I've tried `alpine:edge`,
but edge hasn't yet upgrade the pre-installed libssl3 nor the registry
To repro:
```console
/ # apk info openssh
openssh-10.0_p1-r8 description:
Port of OpenBSD's free SSH release
openssh-10.0_p1-r8 webpage:
https://www.openssh.com/portable.html
openssh-10.0_p1-r8 installed size:
330 KiB
/ # apk info -R openssh
openssh-10.0_p1-r8 depends on:
openssh-client
openssh-sftp-server
openssh-server
so:libc.musl-x86_64.so.1
so:libcrypto.so.3
/ # apk info libcrypto3
libcrypto3-3.5.1-r0 description:
Crypto library from openssl
libcrypto3-3.5.1-r0 webpage:
https://www.openssl.org/
libcrypto3-3.5.1-r0 installed size:
5091 KiB
libcrypto3-3.5.3-r0 description:
Crypto library from openssl
libcrypto3-3.5.3-r0 webpage:
https://www.openssl.org/
libcrypto3-3.5.3-r0 installed size:
5091 KiB
/ # strings /usr/lib/libcrypto.so.3 | grep -i "OpenSSL"
...
OpenSSL 3.5.1 1 Jul 2025
...
```
Read a real target spec JSON so we no longer need to hardcode
a target spec JSON here.
Cargo itself should not care about the spec schema.
Let's stop bothering compiler contributors.
### What does this PR try to resolve?
RFC 3841 has merged, and x86_64-apple-darwin will be demoted to tier-2
in 1.90.0. In Cargo we usually run test against tier-1 platforms, so
x86_64-apple-darwin should be removed.
Also, that target platform is often the slowest one in CI, we are happy
to remove it to save us a couple of minutes.
https://rust-lang.github.io/rfcs/3841-demote-x86_64-apple-darwin.html
### How to test and review this PR?
Run `cargo test` locally with cross-compile tests enabled, and no
regression.
RFC 3841 has merged, and x86_64-apple-darwin will be demoted to tier-2
in 1.90.0. In Cargo we usually run test against tier-1 platforms, so
x86_64-apple-darwin should be removed.
Also, that target platform is often the slowest one in CI,
we are happy to remove it to save us a couple of minutes.
https://rust-lang.github.io/rfcs/3841-demote-x86_64-apple-darwin.html
### What does this PR try to resolve?
ref https://github.com/rust-lang/cargo/issues/14834
In this pull request, I moved `IndexPackage` to `cargo-util-schemas` to
enable third-party applications and `cargo-dev-registry` to utilize this
common struct.
For instance, crates.io has its own `IndexPackage` located at
005667f041/crates/crates_io_index/data.rs (L5).
By moving it to `cargo-util-schemas`, we allow different applications to
use this struct more easily.
### How to test and review this PR?
It shouldn't break any tests; it's just a refactoring.
The `[hints]` table in a `Cargo.toml` manifest provides optional
information that Cargo can use for building the package, and will use
even when using the package as a dependency. All hints can be safely
ignored, and Cargo only warns about unknown hints, but does not error.
This allows packages to use hints without depending on new Cargo.
Add a `mostly-unused` hint, which allows a package to hint that most
users of the package will not use most of its items. This is useful for
improving the build performance of crates with large dependencies.
Crates can override this hint using `hint-mostly-unused = false` in
their profile for a dependency.