[pve-devel] rust build questions

Thomas Lamprecht t.lamprecht at proxmox.com
Wed May 5 08:59:18 CEST 2021


On 05.05.21 08:36, aderumier at odiso.com wrote:
> Hi,
> I try to build proxmox rust package to test the remote migration,
> 
> I'm a noob with rust, so I have begin too look at proxmox-backup doc
> 
> https://git.proxmox.com/?p=proxmox-backup.git;a=blob_plain;f=README.rst;hb=HEAD
> 
> ``rustup`` Toolchain
> ====================
> 
> We normally want to build with the ``rustc`` Debian package. To do that
> you can set the following ``rustup`` configuration:
> 
>     # rustup toolchain link system /usr
>     # rustup default system
> 
> 
> I don't see any rustup binary in the rustc package
> ii  rustc                                            1.51.0+dfsg1-
> 1~bpo10+pve1          amd64        Rust systems programming language
> ii  cargo                                            0.46.0-
> 1~bpo10+pve1                amd64        Rust package manager
> 
> any idea ? does it come from another package ?

rustup is the "rust native" way to setup rust: https://rustup.rs/

Some people here have both, Packaged rust for clean package builds and
some nightly version for testing newer features in development or such
things.

If you do not have rustc setup outside of Debian packages you can ignore
that.

> 
> 
> currently, I have tried to build "proxmox" rust
> 
> https://git.proxmox.com/?p=proxmox.git;a=shortlog
> with a simple
> "make deb" + installed needed build depend.
> 
> but I have this error
> 
> 
> "
> test src/tools/websocket.rs - tools::websocket::create_frame (line 161)
> ... ok
> test src/tools/websocket.rs - tools::websocket::create_frame (line 148)
> ... ok
> 
> failures:
> 
> ---- src/api/api_type_macros.rs - api_string_type (line 5) stdout ----
> error[E0432]: unresolved import `proxmox::api::api`
>  --> src/api/api_type_macros.rs:6:5
>   |
> 4 | use proxmox::api::api;
>   |     ^^^^^^^^^^^^^^^^^ no `api` in `api`
> 
> error: cannot determine resolution for the attribute macro `api`
>   --> src/api/api_type_macros.rs:13:7
>    |
> 11 |     #[api(format: &PROXMOX_SAFE_ID_FORMAT)]
>    |       ^^^
>    |
>    = note: import resolution is stuck, try simplifying macro imports
> 
> error[E0599]: no associated item named `API_SCHEMA` found for struct
> `AccountName` in the current scope
>   --> src/api/api_type_macros.rs:12:1
>    |
> 10 | / api_string_type! {
> 11 | |     #[api(format: &PROXMOX_SAFE_ID_FORMAT)]
> 12 | |     /// ACME account name.
> 13 | |     #[derive(Debug, Clone, Eq, PartialEq, Hash, Deserialize,
> Serialize)]
> 14 | |     #[serde(transparent)]
> 15 | |     pub struct AccountName(String);
> 16 | | }
>    | | ^
>    | | |
>    | |_associated item `API_SCHEMA` not found for this
>    |   associated item not found in `AccountName`
>    |
>    = note: this error originates in a macro (in Nightly builds, run
> with -Z macro-backtrace for more info)
> 
> error: aborting due to 3 previous errors
> 
> Some errors have detailed explanations: E0432, E0599.
> For more information about an error, try `rustc --explain E0432`.
> Couldn't compile the test.
> 
> failures:
>     src/api/api_type_macros.rs - api_string_type (line 5)
> 
> test result: FAILED. 60 passed; 1 failed; 7 ignored; 0 measured; 0
> filtered out; finished in 23.78s
> 
> error: test failed, to rerun pass '--doc'
> "
>
> Seem to be a missing package ?

Did you setup the devel repository?

deb http://download.proxmox.com/debian/devel buster main

And installed all build-dependencies? Maybe there are some missing in
d/control..

May want to ensure you have the proxmox crate installed: 

apt install librust-proxmox-dev librust-proxmox-api-macro-dev







More information about the pve-devel mailing list