-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
rust-qoriq: Migrate from native to toolchain/syno-qoriq-6.2.4-rust #6123
Conversation
@hgy59 initial testing seems ok, your take on it would be appreciated (and you may have another more interesting idea). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
@th0ma7, @Safihre It could be either a toolchain cache or a distrib cache issue.toolchain cacheIMHO we must move qoriq rust back to native or to another folder than At least we must make from build.yml: - name: Cache toolchains
uses: actions/cache@v4
with:
path: toolchain/*/work
key: toolchain-${{ matrix.arch }}-v3-${{ hashFiles('toolchain/*/digests') }} The build of If we want to create a cache for the qoriq rust we have the following options
distrib cacheIs did no futher analysis, but probably we have to exclude The current distrib cache file is ~250MB and I guess it is a problem that it contains subfolders that we don't want to cache. we should not cache the sub folders
Since the distrib cache is created for each github workflow, it size matters. NB: The distrib cache was introduced to cache the downloaded sources for all jobs within a workflow. |
The trigger for the comment above was the failing build of #6127 in https://github.com/SynoCommunity/spksrc/actions/runs/9419013785 locally I can run make in |
reading this cli/cli#9125 it seems not possible yet |
Actually the installation of Unless I miss something, the only way I can think of to permanently solve this would be to always install the rust toolchain under it's corresponding arch toolchain folder such as in this case Otherwise when ever we end-up with a cookie file Going back to your two suggestions above:
Proposing a different approach:
@hgy59 would you agree with my presumptions above? I'll give it a day to further think about a solution, but maybe a new idea will emerge from this thread... |
@th0ma7 I can't remember the motivation to move from native to toolchain. I still am missing a solution for #6054
The only solution I can see is to move back to native and fix the dependencies |
This was in order to solve the caching issue. Clearly it didn't for reasons above.
I was hoping this would have solved it.
That is a totally different approach than current. cargo + rust is a complex beast to setup with the following being defined in
It also install the generic host cargo + rust, and then the platform specific toolchain. Considering how target specific this is (in comparison with
I'm not sure how that can be done? This would mean something like:
Or, just modifying its installation so rust always gets installed under
So what about, simple, we disable caching of toolchains all together. rust-qoriq can go back to native, problem solved? |
@th0ma7 I am trying to fix the caching in #6133 The real problem is, that For me it seems impossible to create a qoriq-rust cache that contains not only the extracted files but also the rustup "folder" for qoirq, my (final ?) try will be to exclude toolchain caching for the qoriq arch. |
It is installed under the Issues are:
|
This will definitifly not work, since the symlink will not be restored when reusing the cache. I now have a working version by disabling the toolchain cache for qoriq. I run the final tests without caches and then will trigger the build again. |
No, we could have one cache for both (qoriq and qoriq-rust) with a key build from both digests file, or we have two different caches with different keys. IMHO the distrib cache does not contain subfolders (rustup, cargo, pip, ...) since it is created after the prepare job, that only downloads source files. |
Excellent idea. That should solve all cases as no state cookie will then tell otherwise. I would then suggest migrating qoriq-rust back to native.
I had not caught this. Still, would have been nice to cache rustup and cargo. Also, pip cache is downloaded like any other package so in theory it is being cached I would assume. |
@th0ma7 please consider the following issue, when updating the rust integration. We currently can not specify a specific rust version for the build of a package (this was originally designed by defintion of Currently if I define Since we have the IMHO it will only work when So, before trying to solve other rust issues, we have to solve this. If we can't change the rust version for each cross package using rust, we have to install rust for each such build. |
to have per-cross granularity, yet.
I am not against, and one doesn't prevent the other neither, i.e. this doesn't mean that it cannot use the pre-installed rust host tools to install any new version needed and use for a specific build. Still code needs to be adapted.
This isn't going to be easy... how to manage |
Description
rust-qoriq: Migrate from native to toolchain/syno-qoriq-6.2.4-rust
Fixes #6054 and relates to #6107 (comment)
Checklist
all-supported
completed successfullyType of change