Package Details: proxmox-backup-client 3.1.2-1

Git Clone URL: https://aur.archlinux.org/proxmox-backup-client.git (read-only, click to copy)
Package Base: proxmox-backup-client
Description: Client for Proxmox Backup Server
Upstream URL: https://pbs.proxmox.com
Keywords: backup pbs proxmox pve rust
Licenses: AGPL3
Submitter: flumm
Maintainer: flumm (tommitscheck)
Last Packager: tommitscheck
Votes: 19
Popularity: 0.110281
First Submitted: 2020-07-15 08:23 (UTC)
Last Updated: 2023-11-30 13:45 (UTC)

Latest Comments

« First ‹ Previous 1 2 3 4 Next › Last »

dmshimself commented on 2021-12-11 19:58 (UTC)

I get the same error. I've tried rustup to use 1.45.2 but I get different errors then. Does anyone know which version needs to be used to build this now?

BuzzKillingtonne commented on 2021-12-11 05:16 (UTC) (edited on 2021-12-11 05:17 (UTC) by BuzzKillingtonne)

It looks like the current version is broken, getting error[E0308] and error[E0532] when compiling.

   Compiling proxmox v0.13.0 (git://git.proxmox.com/git/proxmox.git?rev=0f2caafc4ef407b809bcbdfa6b0392e55b218642#0f2caafc)
error[E0532]: expected tuple struct or tuple variant, found function `Ok`
   --> /home/haley/.cargo/git/checkouts/proxmox-5f91bc52815d50fb/0f2caaf/proxmox/src/api/section_config.rs:451:37
    |
451 | ...                   Ok(value) => value,
    |                       ^^ not a tuple struct or tuple variant
    |
help: consider importing one of these items instead
    |
21  | use serde::__private::Ok;
    |
21  | use std::result::Result::Ok;
    |
21  | use core::result::Result::Ok;
    |

error[E0532]: expected tuple struct or tuple variant, found function `Ok`
   --> /home/haley/.cargo/git/checkouts/proxmox-5f91bc52815d50fb/0f2caaf/proxmox/src/sys/linux/procfs/mod.rs:176:15
    |
176 |         (Some(Ok(up)), Some(Ok(idle))) => Ok((up, idle)),
    |               ^^ not a tuple struct or tuple variant
    |
help: consider importing one of these items instead
    |
1   | use serde::__private::Ok;
    |
1   | use std::result::Result::Ok;
    |
1   | use core::result::Result::Ok;
    |

error[E0532]: expected tuple struct or tuple variant, found function `Ok`
   --> /home/haley/.cargo/git/checkouts/proxmox-5f91bc52815d50fb/0f2caaf/proxmox/src/sys/linux/procfs/mod.rs:176:29
    |
176 |         (Some(Ok(up)), Some(Ok(idle))) => Ok((up, idle)),
    |                             ^^ not a tuple struct or tuple variant
    |
help: consider importing one of these items instead
    |
1   | use serde::__private::Ok;
    |
1   | use std::result::Result::Ok;
    |
1   | use core::result::Result::Ok;
    |

error[E0532]: expected tuple struct or tuple variant, found function `Ok`
   --> /home/haley/.cargo/git/checkouts/proxmox-5f91bc52815d50fb/0f2caaf/proxmox/src/sys/linux/procfs/mod.rs:534:15
    |
534 |         (Some(Ok(size)), Some(Ok(resident)), Some(Ok(shared))) => Ok(ProcFsMemUsage {
    |               ^^ not a tuple struct or tuple variant
    |
help: consider importing one of these items instead
    |
1   | use serde::__private::Ok;
    |
1   | use std::result::Result::Ok;
    |
1   | use core::result::Result::Ok;
    |

error[E0532]: expected tuple struct or tuple variant, found function `Ok`
   --> /home/haley/.cargo/git/checkouts/proxmox-5f91bc52815d50fb/0f2caaf/proxmox/src/sys/linux/procfs/mod.rs:534:31
    |
534 |         (Some(Ok(size)), Some(Ok(resident)), Some(Ok(shared))) => Ok(ProcFsMemUsage {
    |                               ^^ not a tuple struct or tuple variant
    |
help: consider importing one of these items instead
    |
1   | use serde::__private::Ok;
    |
1   | use std::result::Result::Ok;
    |
1   | use core::result::Result::Ok;
    |

error[E0532]: expected tuple struct or tuple variant, found function `Ok`
   --> /home/haley/.cargo/git/checkouts/proxmox-5f91bc52815d50fb/0f2caaf/proxmox/src/sys/linux/procfs/mod.rs:534:51
    |
534 |         (Some(Ok(size)), Some(Ok(resident)), Some(Ok(shared))) => Ok(ProcFsMemUsage {
    |                                                   ^^ not a tuple struct or tuple variant
    |
help: consider importing one of these items instead
    |
1   | use serde::__private::Ok;
    |
1   | use std::result::Result::Ok;
    |
1   | use core::result::Result::Ok;
    |

error[E0532]: expected tuple struct or tuple variant, found function `Ok`
  --> /home/haley/.cargo/git/checkouts/proxmox-5f91bc52815d50fb/0f2caaf/proxmox/src/sys/linux/tty.rs:86:17
   |
86 |                 Ok(fd) => Ok(Some(TtyOutput::DevTty(fd))),
   |                 ^^ not a tuple struct or tuple variant
   |
help: consider importing one of these items instead
   |
1  | use serde::__private::Ok;
   |
1  | use std::result::Result::Ok;
   |
1  | use core::result::Result::Ok;
   |

error[E0532]: expected tuple struct or tuple variant, found function `Ok`
   --> /home/haley/.cargo/git/checkouts/proxmox-5f91bc52815d50fb/0f2caaf/proxmox/src/sys/linux/tty.rs:168:9
    |
168 |         Ok(_) => Ok(password),
    |         ^^ not a tuple struct or tuple variant
    |
help: consider importing one of these items instead
    |
1   | use serde::__private::Ok;
    |
1   | use std::result::Result::Ok;
    |
1   | use core::result::Result::Ok;
    |

error[E0308]: mismatched types
  --> /home/haley/.cargo/git/checkouts/proxmox-5f91bc52815d50fb/0f2caaf/proxmox/src/sys/linux/tty.rs:61:17
   |
50 |     fn write(&mut self, buf: &[u8]) -> io::Result<usize> {
   |                                        ----------------- expected `std::result::Result<usize, std::io::Error>` because of return type
...
61 |                 Ok(written as usize)
   |                 ^^^^^^^^^^^^^^^^^^^^ expected struct `std::io::Error`, found struct `anyhow::Error`
   |
   = note: expected enum `std::result::Result<_, std::io::Error>`
              found enum `std::result::Result<_, anyhow::Error>`

error[E0308]: `match` arms have incompatible types
  --> /home/haley/.cargo/git/checkouts/proxmox-5f91bc52815d50fb/0f2caaf/proxmox/src/sys/linux/tty.rs:69:37
   |
67 | /         match self {
68 | |             TtyOutput::Stdout(out) => out.flush(),
   | |                                       ----------- this is found to be of type `std::result::Result<(), std::io::Error>`
69 | |             TtyOutput::DevTty(_) => Ok(()),
   | |                                     ^^^^^^ expected struct `std::io::Error`, found struct `anyhow::Error`
70 | |         }
   | |_________- `match` arms have incompatible types
   |
   = note: expected enum `std::result::Result<_, std::io::Error>`
              found enum `std::result::Result<_, anyhow::Error>`

error[E0308]: mismatched types
  --> /home/haley/.cargo/git/checkouts/proxmox-5f91bc52815d50fb/0f2caaf/proxmox/src/sys/linux/tty.rs:79:13
   |
76 |     pub fn open() -> io::Result<Option<Self>> {
   |                      ------------------------ expected `std::result::Result<std::option::Option<TtyOutput>, std::io::Error>` because of return type
...
79 |             Ok(Some(TtyOutput::Stdout(stdout)))
   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `std::io::Error`, found struct `anyhow::Error`
   |
   = note: expected enum `std::result::Result<_, std::io::Error>`
              found enum `std::result::Result<_, anyhow::Error>`

error[E0308]: mismatched types
  --> /home/haley/.cargo/git/checkouts/proxmox-5f91bc52815d50fb/0f2caaf/proxmox/src/sys/linux/tty.rs:86:27
   |
76 |     pub fn open() -> io::Result<Option<Self>> {
   |                      ------------------------ expected `std::result::Result<std::option::Option<TtyOutput>, std::io::Error>` because of return type
...
86 |                 Ok(fd) => Ok(Some(TtyOutput::DevTty(fd))),
   |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `std::io::Error`, found struct `anyhow::Error`
   |
   = note: expected enum `std::result::Result<_, std::io::Error>`
              found enum `std::result::Result<_, anyhow::Error>`

error[E0308]: mismatched types
   --> /home/haley/.cargo/git/checkouts/proxmox-5f91bc52815d50fb/0f2caaf/proxmox/src/tools/mod.rs:119:9
    |
112 |     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
    |                                              ----------- expected `std::result::Result<(), std::fmt::Error>` because of return type
...
119 |         Ok(())
    |         ^^^^^^ expected struct `std::fmt::Error`, found struct `anyhow::Error`
    |
    = note: expected enum `std::result::Result<_, std::fmt::Error>`
               found enum `std::result::Result<_, anyhow::Error>`

Some errors have detailed explanations: E0308, E0532.
For more information about an error, try `rustc --explain E0308`.
error: could not compile `proxmox` due to 13 previous errors
warning: build failed, waiting for other jobs to finish...
error: build failed
==> ERROR: A failure occurred in build().
    Aborting...
 -> error making: proxmox-backup-client

storbake commented on 2021-07-21 00:12 (UTC)

Would like to say thanks for creating this package! I'm using it to backup a physical machine as a full image to a PBS server and it works great.

OJaksch commented on 2021-03-29 08:45 (UTC)

@tommitscheck Great! Can confirm that it's compiling with Rust 1.51.0 now. No more jumping between Rust versions. YMMD!

tommitscheck commented on 2021-03-29 08:18 (UTC) (edited on 2021-03-29 08:18 (UTC) by tommitscheck)

@OJaksch, FYI: we build our own rust and LLVM toolchain, so we're not relying on Debian's version here (currently 1.48 is used by us)

And this was actually not a compiler fault but rather an update in a transitive dependency (http-body 0.4.1) which added a new map_err to their type, causing an ambiguity rust could not resolve automatically here.

Now fixed by telling rust which type's map_err method we actually want here.

OJaksch commented on 2021-03-28 18:10 (UTC)

@BuzzKillingtonne Have a look to my question from 2020/09 and to it's according answer:

As a workaround, for now you can build with a previous version of rustc e.g. rustc 1.45.2.

rustup toolchain install 1.45.2 rustup default 1.45.2

and when done you can go back to the stable toolchain

rustup default stable

That way I was allowed to create this package. If I remember correctly Debian is still using this "old" rust toolchain and therefore it seems to be required to build this package.

BuzzKillingtonne commented on 2021-03-28 17:40 (UTC)

@tommitscheck I just tried it on 1.50.0-1 and 1.50.0-2 and I get the same error when compiling.

tommitscheck commented on 2021-03-28 17:05 (UTC) (edited on 2021-03-28 17:05 (UTC) by tommitscheck)

@BuzzKillingtonne can you try to downgrade rust to 1.50? As that was the Rust version I used when updating to 1.0.11 and it worked fine here.

We'll investigate this for 1.51, I can reproduce it...

BuzzKillingtonne commented on 2021-03-28 16:56 (UTC) (edited on 2021-03-28 17:05 (UTC) by BuzzKillingtonne)

Since the latest version 1.0.11-1 I've not been able to compile, I've tried this on two different computers.

Compiling proxmox-backup v1.0.11 (/home/user/.cache/yay/proxmox-backup-client/src/proxmox-backup-client-1.0.11)
error[E0034]: multiple applicable items in scope
   --> src/server/rest.rs:310:10
    |
310 |         .map_err(|err| http_err!(BAD_REQUEST, "Promlems reading request body: {}", err))
    |          ^^^^^^^ multiple `map_err` found
    |
    = note: candidate #1 is defined in an impl of the trait `HttpBody` for the type `Body`
    = note: candidate #2 is defined in an impl of the trait `futures::TryFutureExt` for the type `Fut`
    = note: candidate #3 is defined in an impl of the trait `futures::TryStreamExt` for the type `S`
help: disambiguate the associated function for candidate #1
    |
309 |     let body = HttpBody::map_err(req_body, |err| http_err!(BAD_REQUEST, "Promlems reading request body: {}", err))
    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: disambiguate the associated function for candidate #2
    |
309 |     let body = futures::TryFutureExt::map_err(req_body, |err| http_err!(BAD_REQUEST, "Promlems reading request body: {}", err))
    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: disambiguate the associated function for candidate #3
    |
309 |     let body = futures::TryStreamExt::map_err(req_body, |err| http_err!(BAD_REQUEST, "Promlems reading request body: {}", err))
    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
   --> src/server/rest.rs:309:9
    |
309 |     let body = req_body
    |         ^^^^ doesn't have a size known at compile-time
    |
    = help: the trait `Sized` is not implemented for `[u8]`
    = note: all local variables must have a statically known size
    = help: unsized locals are gated as an unstable feature

error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
   --> src/server/rest.rs:309:16
    |
309 |       let body = req_body
    |  ________________^
310 | |         .map_err(|err| http_err!(BAD_REQUEST, "Promlems reading request body: {}", err))
311 | |         .try_fold(Vec::new(), |mut acc, chunk| async move {
312 | |             if acc.len() + chunk.len() < 64*1024 { //fimxe: max request body size?
...   |
317 | |             }
318 | |         }).await?;
    | |_________________^ doesn't have a size known at compile-time
    |
    = help: the trait `Sized` is not implemented for `[u8]`
    = note: all local variables must have a statically known size
    = help: unsized locals are gated as an unstable feature

error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
   --> src/server/rest.rs:318:17
    |
318 |         }).await?;
    |                 ^ doesn't have a size known at compile-time
    |
    = help: the trait `Sized` is not implemented for `[u8]`
    = note: required by `anyhow::private::Err`

error: aborting due to 4 previous errors

Some errors have detailed explanations: E0034, E0277.
For more information about an error, try `rustc --explain E0034`.
error: could not compile `proxmox-backup`

To learn more, run the command again with --verbose.
==> ERROR: A failure occurred in build().
    Aborting...
error making: proxmox-backup-client

OJaksch commented on 2021-03-18 15:30 (UTC)

Potzblitz! I know that we're living at the Bleeding Edge with our Arch, but I didn't know that we're in a future time, as their original Debian repo is still at v1.09 (pbs) and v1.10 (pve). Cheeers!