Package Details: proxmox-backup-client 2.2.1-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: 15
Popularity: 0.24
First Submitted: 2020-07-15 08:23 (UTC)
Last Updated: 2022-05-18 07:21 (UTC)

Latest Comments

DanSman commented on 2022-02-14 19:30 (UTC)

@flumm

Thank you for pointing this out. I thought I already have it.

flumm commented on 2022-02-13 19:32 (UTC)

@DanSman

You should install the base-devel group as written here: https://wiki.archlinux.org/title/Arch_User_Repository#Prerequisites

That should contain both patch and pkg-config

DanSman commented on 2022-02-13 19:16 (UTC)

proxmox-backup-client/PKGBUILD: line 40: patch: command not found on aarch64 device.

And

  It looks like you're compiling on Linux and also targeting Linux. Currently this
  requires the `pkg-config` utility to find OpenSSL but unfortunately `pkg-config`
  could not be found. If you have OpenSSL installed you can likely fix this by
  installing `pkg-config`.

So https://archlinux.org/packages/core/x86_64/patch/ and https://archlinux.org/packages/core/x86_64/pkgconf/ seems to be missing.

BuzzKillingtonne commented on 2021-12-12 21:57 (UTC)

Thanks for all your hard work!

tommitscheck commented on 2021-12-12 12:35 (UTC) (edited on 2021-12-12 13:23 (UTC) by tommitscheck)

The issue is actually not the compiler at all, its a newer anyhow crate version than Proxmox uses that gets pulled in on Arch.

The anyhow version 1.0.49 adds a Ok fn helper which gets imported by accident on a few places and trips then up resolving the tuple variant from the implicit imported core::result::Result::Ok

You can override anyhow to stick at 1.0.48 or wait until the anyhow imports gets fixed up in the Proxmox Backup code, that shouldn't take too long.

EDIT: Ok, was only three imports in proxmox helper crates, so I patch those for now here in the package.

tommitscheck commented on 2021-12-12 10:27 (UTC) (edited on 2021-12-12 13:24 (UTC) by tommitscheck)

We use 1.56 for building currently, will check out 1.57 relatively soonish and see if I can do a update again for 2.1 here - albeit there were not really /that/ much changes in the client.

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!

tylerlm commented on 2021-03-18 10:41 (UTC)

Build fails in a chroot because PKGBUILD is missing 'systemd' in makedepends.

Please can we add it? (And also, I agree, thanks for keeping this up-to-date!)

OJaksch commented on 2020-11-26 15:07 (UTC)

Thanks for keeping this up to date! :-*

cebner commented on 2020-11-11 16:58 (UTC)

Version 1.0 is out, super nice! Congratulations to the Proxmox developers for this nice work!

uffsalot commented on 2020-11-05 11:59 (UTC)

Any updates on this? Currently 0.9.5-1 is out.

OJaksch commented on 2020-09-06 11:21 (UTC)

@cebner Great catchup, that works and I can build it as normal. Many thanks!

cebner commented on 2020-09-06 10:40 (UTC)

@OJaksch this might be related to a known issue in rustc https://github.com/rust-lang/rust/issues/54540 and seems to occur more frequently with rustc 1.46.0.

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

OJaksch commented on 2020-09-05 05:55 (UTC) (edited on 2020-09-05 06:01 (UTC) by OJaksch)

Can't compile 0.8.14. Any idea?

   Compiling pin-project v0.4.23
   Compiling futures-util v0.3.5
   Compiling zstd-safe v1.4.13+zstd.1.4.3
   Compiling zstd v0.4.28+zstd.1.4.3
   Compiling handlebars v3.4.0
   Compiling futures-executor v0.3.5
   Compiling h2 v0.2.6
   Compiling futures v0.3.5
   Compiling pxar v0.6.0 (git://git.proxmox.com/git/pxar.git?rev=aef2fafe275bf6efe801652b3e767b8d6d6a7abf#aef2fafe)
   Compiling proxmox-fuse v0.1.0 (git://git.proxmox.com/git/proxmox-fuse.git#700f56b3)
   Compiling hyper v0.13.7
   Compiling proxmox v0.3.4 (git://git.proxmox.com/git/proxmox.git?rev=001f2525fa15b4f598ca08b6417e335071668aa5#001f2525)
   Compiling proxmox-backup v0.8.14 (/tmp/makepkg/proxmox-backup-client/src/proxmox-backup-client-0.8.14)
error: reached the type-length limit while instantiating `<std::boxed::Box<std::future::fr...>, ()}]>, ()}]>, ()}]>>>>>::into`
    |
    = note: consider adding a `#![type_length_limit="1078687"]` attribute to your crate

error: aborting due to previous error

error: could not compile `proxmox-backup`.

flumm commented on 2020-08-02 08:18 (UTC)

sorry it took so long for an update, should be working now (and updated to 0.8.9)

uffsalot commented on 2020-07-31 19:14 (UTC) (edited on 2020-07-31 19:16 (UTC) by uffsalot)

Build fails currently:

==> Starting build()...
    Updating crates.io index
    Updating git repository `git://git.proxmox.com/git/pathpatterns.git`
    Updating git repository `git://git.proxmox.com/git/proxmox.git`
    Updating git repository `git://git.proxmox.com/git/proxmox-fuse.git`
    Updating git repository `git://git.proxmox.com/git/pxar.git`
error: failed to select a version for the requirement `proxmox = "^0.2.0"`
  candidate versions found which didn't match: 0.3.0
  location searched: Git repository git://git.proxmox.com/git/proxmox.git
required by package `proxmox-backup v0.8.7 (/tmp/yaourt-tmp-jan/aur-proxmox-backup-client/src/proxmox-backup-client-0.8.7)`
==> ERROR: A failure occurred in build().
    Aborting...
==> ERROR: Makepkg was unable to build proxmox-backup-client.