Hello,
this is actually a duplication of this ticket. There has never been a response to this ticket, so I assume the request was perhaps not precise enough. I will try to be more precise.
There can be reasons that there is a need for using a mirror of static.rust-lang.org. Inside meta-rust-bin, there is the variable RUST_BASE_URI which is defined in classes/rust_bin-common.bbclass. This variable is set with the := assignment which does no allow the variable to be pre-defined, e.g. at local.conf. bbappending is also not possible for bbclasses. By simply changing the assignment into ?= would do the trick. E.g.:
-RUST_BASE_URI := "https://static.rust-lang.org"
+RUST_BASE_URI ?= "https://static.rust-lang.org"
A 2nd change that is required to use RUST_BASE_URI everywhere. Currently, this variable is not used inside the recipes-devtools/rust/cargo-bin-cross_.bb recipes. Instead, the string "https://static.rust-lang.org" is used. E.g.
def cargo_url(triple):
URLS = {
- "aarch64-unknown-linux-gnu": "https://static.rust-lang.org/dist/2024-06-13/cargo-1.79.0-aarch64-unknown-linux-gnu.tar.gz",
- "arm-unknown-linux-gnueabi": "https://static.rust-lang.org/dist/2024-06-13/cargo-1.79.0-arm-unknown-linux-gnueabi.tar.gz",
- "arm-unknown-linux-gnueabihf": "https://static.rust-lang.org/dist/2024-06-13/cargo-1.79.0-arm-unknown-linux-gnueabihf.tar.gz",
- "armv7-unknown-linux-gnueabihf": "https://static.rust-lang.org/dist/2024-06-13/cargo-1.79.0-armv7-unknown-linux-gnueabihf.tar.gz",
- "i686-unknown-linux-gnu": "https://static.rust-lang.org/dist/2024-06-13/cargo-1.79.0-i686-unknown-linux-gnu.tar.gz",
- "x86_64-unknown-linux-gnu": "https://static.rust-lang.org/dist/2024-06-13/cargo-1.79.0-x86_64-unknown-linux-gnu.tar.gz",
+ "aarch64-unknown-linux-gnu": "${RUST_BASE_URI}/dist/2024-06-13/cargo-1.79.0-aarch64-unknown-linux-gnu.tar.gz",
+ "arm-unknown-linux-gnueabi": "${RUST_BASE_URI}/dist/2024-06-13/cargo-1.79.0-arm-unknown-linux-gnueabi.tar.gz",
+ "arm-unknown-linux-gnueabihf": "${RUST_BASE_URI}/dist/2024-06-13/cargo-1.79.0-arm-unknown-linux-gnueabihf.tar.gz",
+ "armv7-unknown-linux-gnueabihf": "${RUST_BASE_URI}/dist/2024-06-13/cargo-1.79.0-armv7-unknown-linux-gnueabihf.tar.gz",
+ "i686-unknown-linux-gnu": "${RUST_BASE_URI}/dist/2024-06-13/cargo-1.79.0-i686-unknown-linux-gnu.tar.gz",
+ "x86_64-unknown-linux-gnu": "${RUST_BASE_URI}/dist/2024-06-13/cargo-1.79.0-x86_64-unknown-linux-gnu.tar.gz",
}
My 3rd demand comes into play when looking into the internal structure of the static.rust-lang.org repository. The URI for fetching artifacts is actually https://static.rust-lang.org/dist/. However, the files are found one level above, sorting artifacts by release dates. The delegation happens with the channel.toml files. If these channel.toml configurations are not recognized by a mirror, the files are not found.
For cargo downloading, the URI is actually containing these paths currently, so there things are working as expected. E.g.
$ bitbake -e cargo-bin-cross-x86_64 | grep ^SRC_URI
SRC_URI="https://static.rust-lang.org/dist/2024-06-13/cargo-1.79.0-x86_64-unknown-linux-gnu.tar.gz;md5sum=4a89780dc045b3fe221b4507ed63bfd3;sha256sum=d394298cfd4a51eaf85607cceb33a1d83cbe723365687d7055f4b68e065a72fe;downloadname=cargo-bin-cross-x86_64-1.79.0-x86_64-unknown-linux-gnu.tar.gz"
For rust downloading, the URI is lacking the date directory level, so there downloading fails. E.g.
$ bitbake -e rust-bin-cross-x86_64 | grep ^SRC_URI
SRC_URI="https://static.rust-lang.org/dist/rustc-1.79.0-x86_64-unknown-linux-gnu.tar.gz;md5sum=a0cac6f2de82fbf573c7706a766466e6;sha256sum=36e59d225cc4c35f4d63c276c94a5e5cba5c8083275c3990ae7cae6842f9109f https://static.rust-lang.org/dist/rust-std-1.79.0-x86_64-unknown-linux-gnu.tar.gz;md5sum=489611626b01cf4f882df76e3cfe7306;sha256sum=037906a372ec87f8fd7ab45efa645bcc4fbf981f534e31534c6f16ce628fddb6;subdir=rust-std https://static.rust-lang.org/dist/rust-std-1.79.0-x86_64-unknown-linux-gnu.tar.gz;md5sum=489611626b01cf4f882df76e3cfe7306;sha256sum=037906a372ec87f8fd7ab45efa645bcc4fbf981f534e31534c6f16ce628fddb6;subdir=rust-std"
The demand is to also add the date level to the rust URI to be more robust when not having a "real" rust mirror in place.
Hello,
this is actually a duplication of this ticket. There has never been a response to this ticket, so I assume the request was perhaps not precise enough. I will try to be more precise.
There can be reasons that there is a need for using a mirror of static.rust-lang.org. Inside meta-rust-bin, there is the variable RUST_BASE_URI which is defined in classes/rust_bin-common.bbclass. This variable is set with the := assignment which does no allow the variable to be pre-defined, e.g. at local.conf. bbappending is also not possible for bbclasses. By simply changing the assignment into ?= would do the trick. E.g.:
A 2nd change that is required to use RUST_BASE_URI everywhere. Currently, this variable is not used inside the recipes-devtools/rust/cargo-bin-cross_.bb recipes. Instead, the string "https://static.rust-lang.org" is used. E.g.
My 3rd demand comes into play when looking into the internal structure of the static.rust-lang.org repository. The URI for fetching artifacts is actually https://static.rust-lang.org/dist/. However, the files are found one level above, sorting artifacts by release dates. The delegation happens with the channel.toml files. If these channel.toml configurations are not recognized by a mirror, the files are not found.
For cargo downloading, the URI is actually containing these paths currently, so there things are working as expected. E.g.
For rust downloading, the URI is lacking the date directory level, so there downloading fails. E.g.
The demand is to also add the date level to the rust URI to be more robust when not having a "real" rust mirror in place.