Package Details: avbroot 3.29.1-1

Git Clone URL: https://aur.archlinux.org/avbroot.git (read-only, click to copy)
Package Base: avbroot
Description: Application for patching Android A/B-style OTA images for root access
Upstream URL: https://github.com/chenxiaolong/avbroot
Keywords: android, root
Licenses: GPL
Submitter: zynex
Maintainer: zynex
Last Packager: zynex
Votes: 5
Popularity: 0.136164
First Submitted: 2023-09-05 21:38 (UTC)
Last Updated: 2026-05-01 09:56 (UTC)

Pinned Comments

zynex commented on 2025-10-04 13:05 (UTC) (edited on 2025-10-04 13:07 (UTC) by zynex)

NOTE! If you use rustup, you must make sure to update the rust packages for your user if the compilation fails. This is NOT done by pacman for rustup for obvious reasons (runs in userland). To update, run rustup update stable before installing/upgrading this package.

zynex commented on 2024-09-02 13:06 (UTC)

For those of you that want an easy script for OTA update, I have one on my Github page; https://github.com/zynexiz/GrapheneOS-OTA/blob/main/ota_update

Latest Comments

1 2 Next › Last »

zynex commented on 2025-10-04 13:05 (UTC) (edited on 2025-10-04 13:07 (UTC) by zynex)

NOTE! If you use rustup, you must make sure to update the rust packages for your user if the compilation fails. This is NOT done by pacman for rustup for obvious reasons (runs in userland). To update, run rustup update stable before installing/upgrading this package.

zynex commented on 2025-08-12 09:33 (UTC) (edited on 2025-08-12 09:35 (UTC) by zynex)

@simona On Linux, your system package manager (pacman, apt, etc.) only manages software installed in system locations (like /usr). rustup installs Rust entirely in your home directory (~/.cargo, ~/.rustup), outside the package manager’s control. That means pacman cannot see or update it, you must update it yourself with rustup update. This isn’t specific to Arch or Rust, it’s how all user-installed software works on Linux. This is beneficial from a developer point of view when developing things with rust.

simona commented on 2025-08-12 09:27 (UTC)

From the perspective of a sincere desire to widely distribute Linux, it doesn't make sense for all this to happen. Nor does it seem like a solution to suggest switching to another distro. Obviously, this is a general discussion, and those who maintain this package can't be blamed. It's a sort of original sin that affects everyone.

zynex commented on 2025-08-12 09:21 (UTC) (edited on 2025-08-12 09:23 (UTC) by zynex)

@simona The issue is not Arch update management, it's how rust handles things - rustup runs in userland. That means you are responsible for handling this kind of updates. Pacman does never put updates in user's home folder.

simona commented on 2025-08-12 09:17 (UTC)

thx. solved with "rustup update stable". Unfortunately, Arch's automatic update management for all Rust apps is truly lacking and incomplete. You never know if it will be able to update them without errors. I don't think it's up to the end user to manually check, package by package, what the requirements are, and manually perform system updates before software updates.

zynex commented on 2025-08-12 09:10 (UTC)

@simona Make sure your system is up to date and have build deps installed. The issue seems to have something to do with older rust version (<1.88). I have tested the build on three systems without issues. Just tested on my work laptop, and no issues there either (EndeverorOS).

simona commented on 2025-08-12 09:05 (UTC)


...
Compiling dlv-list v0.6.0
error[E0658]: `let` expressions in this position are unstable
--> avbroot/src/cli/avb.rs:299:12
|
299 |         if let Descriptor::KernelCmdline(d) = d
|            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information

error[E0658]: `let` expressions in this position are unstable
--> avbroot/src/cli/ota.rs:904:8
|
904 |     if let Some(vabc_algo) = vabc_algo_override
|        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information

error[E0658]: `let` expressions in this position are unstable
--> avbroot/src/cli/ota.rs:1055:12
|
1055 |         if let Some((input_file, modified_operations)) = compressed_files.get_mut(&name)
|            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information

error[E0658]: `let` expressions in this position are unstable
--> avbroot/src/crypto.rs:163:24
|
163 |                     if let Some(errno) = io_e.raw_os_error()
|                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information

error[E0658]: `let` expressions in this position are unstable
--> avbroot/src/format/avb.rs:2181:8
|
2181 |     if let Some(s) = image_size
|        ^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information

error[E0658]: `let` expressions in this position are unstable
--> avbroot/src/format/bootimage.rs:390:12
|
390 |         if let Some(v1) = &v1_data
|            ^^^^^^^^^^^^^^^^^^^^^^^
|
= note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information

error[E0658]: `let` expressions in this position are unstable
--> avbroot/src/format/bootimage.rs:872:28
|
872 |         if !skip_v4_sig && let Some(sig) = v4_signature {
|                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information

error[E0658]: `let` expressions in this position are unstable
--> avbroot/src/format/sparse.rs:525:12
|
525 |         if let Some(last_used) = self.last_used
|            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information

error[E0658]: `let` expressions in this position are unstable
--> avbroot/src/patch/boot.rs:381:31
|
381 |             if xz_compress && let CpioEntryData::Data(data) = &old_entry.data {
|                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information

error[E0658]: `let` expressions in this position are unstable
--> avbroot/src/patch/boot.rs:546:16
|
546 |             && let Some(device) = &self.preinit_device
|                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information

error[E0658]: `let` expressions in this position are unstable
--> avbroot/src/patch/otacert.rs:99:16
|
99 |             && let Some(extensions) = &mut modified.tbs_certificate.extensions
|                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information

error[E0658]: `let` expressions in this position are unstable
--> avbroot/src/util.rs:307:8
|
307 |     if let Some(parent) = path.parent()
|        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information

error[E0658]: `let` expressions in this position are unstable
--> avbroot/src/util.rs:390:19
|
390 |         } else if let Some(last) = result.last_mut()
|                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information

For more information about this error, try `rustc --explain E0658`.
error: could not compile `avbroot` (lib) due to 13 previous errors

zynex commented on 2025-08-12 09:02 (UTC) (edited on 2025-08-12 09:04 (UTC) by zynex)

@simona No issue here, installed it on three different systems. Check that you have all build deps installed. Also need more info than just "error compiling".

simona commented on 2025-08-11 22:30 (UTC)

error compiling....

zynex commented on 2025-07-29 16:38 (UTC)

The package is updated and will now compile it from source instead of installing the binary.