On Sat, Dec 17, 2022, 2:56 AM Richard Purdie <
[email protected]> wrote:

> On Fri, 2022-12-16 at 18:21 -0700, Alejandro Hernandez Samaniego wrote:
> > From: Alejandro Hernandez Samaniego <[email protected]>
> >
> > Rust follows the train release model via the stable, beta and nightly
> channels,
> > by default we build rust from the stable channel, however there are
> certain
> > features which are only available in the beta or nightly channels.
> >
> > Make these channels available by setting a RUST_CHANNEL variable which
> defaults
> > to stable making this change transparent to the user.
> >
> > The snapshot version used by rust during its compilation wont
> necessarily match
> > the version being built, specially if were building from an unstable
> channel,
> > to avoid confusion rename this to SNAPSHOT_VERSION and use RUST_VERSION
> for the
> > version to be built, which is automatically defined to PV.
> >
> > Append -beta or -nightly to rusts PV for signature awareness.
> >
> > It is important to note that this does not build rust from the
> beta/nightly
> > published tarball (which today build rust v1.67.0 and v1.68.0
> respectively),
> > instead this builds rust from the current selected version (1.66.0) and
> enables
> > the beta/nightly features for that version.
> >
> > Setting the variable RUST_CHANNEL=nightly results in the following:
> >
> > $ rustc -Vv
> > rustc 1.66.0-nightly
> >
> > Signed-off-by: Alejandro Hernandez Samaniego <[email protected]>
> > ---
> >  meta/recipes-devtools/rust/rust-snapshot.inc | 7 ++++---
> >  meta/recipes-devtools/rust/rust-source.inc   | 5 +++--
> >  meta/recipes-devtools/rust/rust.inc          | 6 +++++-
> >  3 files changed, 12 insertions(+), 6 deletions(-)
> >
> > diff --git a/meta/recipes-devtools/rust/rust-snapshot.inc
> b/meta/recipes-devtools/rust/rust-snapshot.inc
> > index 222f34f9a8..6420bcff55 100644
> > --- a/meta/recipes-devtools/rust/rust-snapshot.inc
> > +++ b/meta/recipes-devtools/rust/rust-snapshot.inc
> > @@ -5,7 +5,8 @@
> >  ## The version is replicated here.
> >  ## TODO: find a way to add additional SRC_URIs based on the contents of
> an
> >  ##       earlier SRC_URI.
> > -RS_VERSION = "1.65.0"
> > +
> > +SNAPSHOT_VERSION = "1.65.0"
> >  CARGO_VERSION = "1.65.0"
> >
> >  # TODO: Add hashes for other architecture toolchains as well. Make a
> script?
> > @@ -27,6 +28,6 @@ SRC_URI += " \
> >
> https://static.rust-lang.org/dist/${CARGO_SNAPSHOT}.tar.xz;name=cargo-snapshot-${RUST_BUILD_ARCH};subdir=rust-snapshot-components
> \
> >  "
> >
> > -RUST_STD_SNAPSHOT =
> "rust-std-${RS_VERSION}-${RUST_BUILD_ARCH}-unknown-linux-gnu"
> > -RUSTC_SNAPSHOT =
> "rustc-${RS_VERSION}-${RUST_BUILD_ARCH}-unknown-linux-gnu"
> > +RUST_STD_SNAPSHOT =
> "rust-std-${SNAPSHOT_VERSION}-${RUST_BUILD_ARCH}-unknown-linux-gnu"
> > +RUSTC_SNAPSHOT =
> "rustc-${SNAPSHOT_VERSION}-${RUST_BUILD_ARCH}-unknown-linux-gnu"
> >  CARGO_SNAPSHOT =
> "cargo-${CARGO_VERSION}-${RUST_BUILD_ARCH}-unknown-linux-gnu"
> > diff --git a/meta/recipes-devtools/rust/rust-source.inc
> b/meta/recipes-devtools/rust/rust-source.inc
> > index 1c511917e2..91a6c5a942 100644
> > --- a/meta/recipes-devtools/rust/rust-source.inc
> > +++ b/meta/recipes-devtools/rust/rust-source.inc
> > @@ -1,4 +1,5 @@
> > -SRC_URI += "
> https://static.rust-lang.org/dist/rustc-${PV}-src.tar.xz;name=rust";
> > +RUST_VERSION ?= "${@d.getVar('PV').split('-')[0]}"
> > +SRC_URI += "
> https://static.rust-lang.org/dist/rustc-${RUST_VERSION}-src.tar.xz;name=rust
> "
> >  SRC_URI[rust.sha256sum] =
> "0dc176e34fae9871f855a6ba4cb30fa19d69c5b4428d29281a07419c4950715c"
> >
> >  SRC_URI:append:class-target:pn-rust = " \
> > @@ -6,7 +7,7 @@ SRC_URI:append:class-target:pn-rust = " \
> >      file://crossbeam_atomic.patch"
> >  SRC_URI:append:class-nativesdk:pn-nativesdk-rust = "
> file://hardcodepaths.patch"
> >
> > -RUSTSRC = "${WORKDIR}/rustc-${PV}-src"
> > +RUSTSRC = "${WORKDIR}/rustc-${RUST_VERSION}-src"
> >
> >  UPSTREAM_CHECK_URI = "
> https://forge.rust-lang.org/infra/other-installation-methods.html";
> >  UPSTREAM_CHECK_REGEX = "rustc-(?P<pver>\d+(\.\d+)+)-src"
> > diff --git a/meta/recipes-devtools/rust/rust.inc
> b/meta/recipes-devtools/rust/rust.inc
> > index 8d25e7993a..37a04e1204 100644
> > --- a/meta/recipes-devtools/rust/rust.inc
> > +++ b/meta/recipes-devtools/rust/rust.inc
> > @@ -13,6 +13,10 @@ DEPENDS:append:class-nativesdk = "
> nativesdk-rust-llvm"
> >
> >  S = "${RUSTSRC}"
> >
> > +# Use at your own risk, accepted values are stable, beta and nightly
> > +RUST_CHANNEL ?= "stable"
> > +PV:append = "${@bb.utils.contains('RUST_CHANNEL', 'stable', '',
> '-${RUST_CHANNEL}', d)}"
> > +
> >  export FORCE_CRATE_HASH="${BB_TASKHASH}"
>
> Did you try it with .= instead of append? I'd really prefer not to use
> append unless we have to, mainly so we lead by example...
>
> Cheers,
>
> Richard


You are right, I should've done this with .= instead, my mistake, I will
test it and send a v3.

Cheers,

Alejandro

>


>
>
>
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#174778): 
https://lists.openembedded.org/g/openembedded-core/message/174778
Mute This Topic: https://lists.openembedded.org/mt/95722979/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to