Popsicle AUR Package Build Aborted Error

Greetings lovely community,

I have used the application Popsicle (utility for flashing Linux iso files to USB developed by PopOS devs) in the past and have found it very useful and quite reliable on top of fitting into the Gnome ecosystem just as well. I realize it’s not (yet hopefully?) in the main Arch repos, so I looked into the AUR side of things to build and install it. There’s three Popsicle packages in the AUR, Popsicle, Popsicle-bin, & Popsicle-git, I am referring to the first one in this case simply, Popsicle (AUR link: click here). This is still only my first month on EnOS so please do bare with me as I try to wrap my head around everything and learn everything I can that this community has provided. So far it’s been amazing btw!

In this instance I used Pamac to install Popsicle, but luckily it does show a terminal output. While the Popsicle packing was building however, it failed and I got the following errors which resulted in the build being aborted:

Preparing...
Cloning popsicle build files...
Checking popsicle dependencies...
Resolving dependencies...
Checking inter-conflicts...

Building popsicle...
==> Making package: popsicle 1.3.0-1 (Sun 01 Aug 2021 12:13:34 AM EDT)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Found popsicle-1.3.0.tar.gz
==> Validating source files with sha256sums...
    popsicle-1.3.0.tar.gz ... Passed
==> Removing existing $srcdir/ directory...
==> Extracting sources...
  -> Extracting popsicle-1.3.0.tar.gz with bsdtar
==> Removing existing $pkgdir/ directory...
==> Starting build()...
cargo build --manifest-path cli/Cargo.toml --release
   Compiling libc v0.2.66
   Compiling proc-macro2 v1.0.6
   Compiling unicode-xid v0.2.0
   Compiling syn v1.0.11
   Compiling cfg-if v0.1.10
   Compiling lazy_static v1.4.0
   Compiling autocfg v0.1.7
   Compiling semver-parser v0.7.0
   Compiling futures-core v0.3.1
   Compiling slab v0.4.2
   Compiling memchr v2.2.1
   Compiling log v0.4.8
   Compiling proc-macro-nested v0.1.3
   Compiling pin-utils v0.1.0-alpha.4
   Compiling futures-sink v0.3.1
   Compiling futures-io v0.3.1
   Compiling futures-task v0.3.1
   Compiling scopeguard v1.0.0
   Compiling byteorder v1.3.2
   Compiling bitflags v1.2.1
   Compiling cc v1.0.48
   Compiling pin-project-lite v0.1.1
   Compiling once_cell v1.2.0
   Compiling serde v1.0.104
   Compiling futures-timer v2.0.2
   Compiling regex-syntax v0.6.12
   Compiling anyhow v1.0.25
   Compiling rustc-demangle v0.1.16
   Compiling unicode-width v0.1.7
   Compiling bytes v0.5.3
   Compiling vec_map v0.8.1
   Compiling as-result v0.2.1
   Compiling strsim v0.8.0
   Compiling ansi_term v0.11.0
   Compiling cascade v0.1.4
   Compiling fomat-macros v0.3.1
   Compiling crossbeam-utils v0.6.6
   Compiling genawaiter v0.2.2
   Compiling semver v0.9.0
   Compiling crossbeam-utils v0.7.0
   Compiling crossbeam-epoch v0.8.0
   Compiling futures-channel v0.3.1
   Compiling textwrap v0.11.0
   Compiling async-task v1.0.0
   Compiling backtrace-sys v0.1.32
   Compiling rustc_version v0.2.3
   Compiling regex v1.3.1
   Compiling kv-log-macro v1.0.4
   Compiling memoffset v0.5.3
   Compiling quote v1.0.2
   Compiling net2 v0.2.33
   Compiling iovec v0.1.4
   Compiling num_cpus v1.11.1
   Compiling termios v0.3.1
   Compiling clicolors-control v1.0.1
   Compiling atty v0.2.13
   Compiling time v0.1.42
   Compiling mnt v0.3.1
   Compiling base64 v0.10.1
   Compiling crossbeam-channel v0.4.0
   Compiling mio v0.6.21
   Compiling console v0.9.1
   Compiling clap v2.33.0
   Compiling pbr v1.0.2
   Compiling mio-uds v0.6.7
   Compiling backtrace v0.3.40
   Compiling better-panic v0.2.0
   Compiling crossbeam-deque v0.7.2
   Compiling async-std v1.4.0
   Compiling proc-macro-hack v0.5.11
   Compiling thiserror-impl v1.0.20
   Compiling pin-project-internal v0.4.6
   Compiling serde_derive v1.0.104
   Compiling derive-new v0.5.8
   Compiling futures-macro v0.3.1
   Compiling thiserror v1.0.20
   Compiling futures-util v0.3.1
   Compiling pin-project v0.4.6
   Compiling futures-executor v0.3.1
   Compiling futures v0.3.1
   Compiling futures_codec v0.3.4
   Compiling srmw v0.1.1
   Compiling usb-disk-probe v0.1.0
   Compiling ron v0.5.1
   Compiling popsicle v1.3.0 (/var/tmp/pamac-build-scott/popsicle/src/popsicle-1.3.0)
   Compiling popsicle_cli v1.3.0 (/var/tmp/pamac-build-scott/popsicle/src/popsicle-1.3.0/cli)
    Finished release [optimized] target(s) in 53.06s
help2man --no-info target/release/popsicle | gzip -c > target/release/popsicle.1.gz.partial
mv target/release/popsicle.1.gz.partial target/release/popsicle.1.gz
cargo build --manifest-path gtk/Cargo.toml --release
   Compiling syn v1.0.11
   Compiling pkg-config v0.3.17
   Compiling unicode-segmentation v1.6.0
   Compiling strum v0.18.0
   Compiling version-compare v0.0.10
   Compiling version_check v0.9.2
   Compiling futures-task v0.3.1
   Compiling either v1.5.3
   Compiling typenum v1.11.2
   Compiling gio v0.9.0
   Compiling ryu v1.0.5
   Compiling gdk-pixbuf v0.9.0
   Compiling lexical-core v0.7.4
   Compiling byte-tools v0.3.1
   Compiling cairo-rs v0.9.1
   Compiling pango v0.9.0
   Compiling failure_derive v0.1.6
   Compiling atk v0.9.0
   Compiling gdk v0.13.0
   Compiling static_assertions v1.1.0
   Compiling arrayvec v0.5.1
   Compiling opaque-debug v0.2.3
   Compiling smallvec v1.0.0
   Compiling fake-simd v0.1.2
   Compiling hex-view v0.1.3
   Compiling bytesize v1.0.1
   Compiling atomic v0.4.5
   Compiling serde v1.0.104
   Compiling futures-channel v0.3.1
   Compiling anyhow v1.0.25
   Compiling lock_api v0.3.2
   Compiling itertools v0.9.0
   Compiling heck v0.3.1
   Compiling block-padding v0.1.5
   Compiling proc-macro-error-attr v1.0.3
   Compiling proc-macro-error v1.0.3
   Compiling nom v5.1.2
   Compiling libdbus-sys v0.2.1
   Compiling gtk v0.9.1
   Compiling errno v0.2.4
   Compiling parking_lot_core v0.7.0
   Compiling loopdev v0.2.1
   Compiling parking_lot v0.10.0
   Compiling sys-mount v1.2.1
   Compiling dbus v0.9.0
   Compiling generic-array v0.12.3
   Compiling digest v0.8.1
   Compiling block-buffer v0.7.3
   Compiling md-5 v0.8.0
   Compiling sha2 v0.8.0
error[E0308]: mismatched types
  --> /home/scott/.cargo/registry/src/github.com-1ecc6299db9ec823/lexical-core-0.7.4/src/atof/algorithm/bhcomp.rs:62:24
   |
62 |     let bytes = bits / Limb::BITS;
   |                        ^^^^^^^^^^ expected `usize`, found `u32`

error[E0277]: cannot divide `usize` by `u32`
  --> /home/scott/.cargo/registry/src/github.com-1ecc6299db9ec823/lexical-core-0.7.4/src/atof/algorithm/bhcomp.rs:62:22
   |
62 |     let bytes = bits / Limb::BITS;
   |                      ^ no implementation for `usize / u32`
   |
   = help: the trait `Div<u32>` is not implemented for `usize`

error[E0308]: mismatched types
   --> /home/scott/.cargo/registry/src/github.com-1ecc6299db9ec823/lexical-core-0.7.4/src/atof/algorithm/bigcomp.rs:157:55
    |
157 |     let nlz = den.leading_zeros().wrapping_sub(wlz) & (u32::BITS - 1);
    |                                                       ^^^^^^^^^^^^^^^ expected `usize`, found `u32`

error[E0277]: no implementation for `usize & u32`
   --> /home/scott/.cargo/registry/src/github.com-1ecc6299db9ec823/lexical-core-0.7.4/src/atof/algorithm/bigcomp.rs:157:53
    |
157 |     let nlz = den.leading_zeros().wrapping_sub(wlz) & (u32::BITS - 1);
    |                                                     ^ no implementation for `usize & u32`
    |
    = help: the trait `BitAnd<u32>` is not implemented for `usize`

error[E0308]: mismatched types
   --> /home/scott/.cargo/registry/src/github.com-1ecc6299db9ec823/lexical-core-0.7.4/src/atof/algorithm/bigcomp.rs:175:40
    |
175 |         let (q, r) = shift.ceil_divmod(Limb::BITS);
    |                                        ^^^^^^^^^^ expected `usize`, found `u32`
    |
help: you can convert a `u32` to a `usize` and panic if the converted value doesn't fit
    |
175 |         let (q, r) = shift.ceil_divmod(Limb::BITS.try_into().unwrap());
    |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0308]: mismatched types
    --> /home/scott/.cargo/registry/src/github.com-1ecc6299db9ec823/lexical-core-0.7.4/src/atof/algorithm/math.rs:1043:42
     |
1043 |     let mut count = index.saturating_mul(Limb::BITS);
     |                                          ^^^^^^^^^^ expected `usize`, found `u32`
     |
help: you can convert a `u32` to a `usize` and panic if the converted value doesn't fit
     |
1043 |     let mut count = index.saturating_mul(Limb::BITS.try_into().unwrap());
     |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0308]: mismatched types
    --> /home/scott/.cargo/registry/src/github.com-1ecc6299db9ec823/lexical-core-0.7.4/src/atof/algorithm/math.rs:1058:28
     |
1058 |     Limb::BITS.checked_mul(x.len())
     |                            ^^^^^^^ expected `u32`, found `usize`
     |
help: you can convert a `usize` to a `u32` and panic if the converted value doesn't fit
     |
1058 |     Limb::BITS.checked_mul(x.len().try_into().unwrap())
     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0308]: mismatched types
    --> /home/scott/.cargo/registry/src/github.com-1ecc6299db9ec823/lexical-core-0.7.4/src/atof/algorithm/math.rs:1059:22
     |
1059 |         .map(|v| v - nlz)
     |                      ^^^ expected `u32`, found `usize`

error[E0277]: cannot subtract `usize` from `u32`
    --> /home/scott/.cargo/registry/src/github.com-1ecc6299db9ec823/lexical-core-0.7.4/src/atof/algorithm/math.rs:1059:20
     |
1059 |         .map(|v| v - nlz)
     |                    ^ no implementation for `u32 - usize`
     |
     = help: the trait `Sub<usize>` is not implemented for `u32`

error[E0308]: mismatched types
    --> /home/scott/.cargo/registry/src/github.com-1ecc6299db9ec823/lexical-core-0.7.4/src/atof/algorithm/math.rs:1060:20
     |
1060 |         .unwrap_or(usize::max_value())
     |                    ^^^^^^^^^^^^^^^^^^ expected `u32`, found `usize`
     |
help: you can convert a `usize` to a `u32` and panic if the converted value doesn't fit
     |
1060 |         .unwrap_or(usize::max_value().try_into().unwrap())
     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0308]: mismatched types
    --> /home/scott/.cargo/registry/src/github.com-1ecc6299db9ec823/lexical-core-0.7.4/src/atof/algorithm/math.rs:1058:5
     |
1054 |   pub fn bit_length(x: &[Limb]) -> usize {
     |                                    ----- expected `usize` because of return type
...
1058 | /     Limb::BITS.checked_mul(x.len())
1059 | |         .map(|v| v - nlz)
1060 | |         .unwrap_or(usize::max_value())
     | |______________________________________^ expected `usize`, found `u32`
     |
help: you can convert a `u32` to a `usize` and panic if the converted value doesn't fit
     |
1058 |     Limb::BITS.checked_mul(x.len())
1059 |         .map(|v| v - nlz)
1060 |         .unwrap_or(usize::max_value()).try_into().unwrap()
     |

error[E0308]: mismatched types
    --> /home/scott/.cargo/registry/src/github.com-1ecc6299db9ec823/lexical-core-0.7.4/src/atof/algorithm/math.rs:1085:23
     |
1085 |     debug_assert!(n < bits && n != 0);
     |                       ^^^^ expected `usize`, found `u32`
     |
help: you can convert a `u32` to a `usize` and panic if the converted value doesn't fit
     |
1085 |     debug_assert!(n < bits.try_into().unwrap() && n != 0);
     |                       ^^^^^^^^^^^^^^^^^^^^^^^^

error[E0308]: mismatched types
    --> /home/scott/.cargo/registry/src/github.com-1ecc6299db9ec823/lexical-core-0.7.4/src/atof/algorithm/math.rs:1092:25
     |
1092 |     let lshift = bits - n;
     |                         ^ expected `u32`, found `usize`

error[E0277]: cannot subtract `usize` from `u32`
    --> /home/scott/.cargo/registry/src/github.com-1ecc6299db9ec823/lexical-core-0.7.4/src/atof/algorithm/math.rs:1092:23
     |
1092 |     let lshift = bits - n;
     |                       ^ no implementation for `u32 - usize`
     |
     = help: the trait `Sub<usize>` is not implemented for `u32`

error[E0308]: mismatched types
    --> /home/scott/.cargo/registry/src/github.com-1ecc6299db9ec823/lexical-core-0.7.4/src/atof/algorithm/math.rs:1134:19
     |
1134 |     let rem = n % bits;
     |                   ^^^^ expected `usize`, found `u32`

error[E0277]: cannot mod `usize` by `u32`
    --> /home/scott/.cargo/registry/src/github.com-1ecc6299db9ec823/lexical-core-0.7.4/src/atof/algorithm/math.rs:1134:17
     |
1134 |     let rem = n % bits;
     |                 ^ no implementation for `usize % u32`
     |
     = help: the trait `Rem<u32>` is not implemented for `usize`

error[E0308]: mismatched types
    --> /home/scott/.cargo/registry/src/github.com-1ecc6299db9ec823/lexical-core-0.7.4/src/atof/algorithm/math.rs:1135:19
     |
1135 |     let div = n / bits;
     |                   ^^^^ expected `usize`, found `u32`

error[E0277]: cannot divide `usize` by `u32`
    --> /home/scott/.cargo/registry/src/github.com-1ecc6299db9ec823/lexical-core-0.7.4/src/atof/algorithm/math.rs:1135:17
     |
1135 |     let div = n / bits;
     |                 ^ no implementation for `usize / u32`
     |
     = help: the trait `Div<u32>` is not implemented for `usize`

error[E0308]: mismatched types
    --> /home/scott/.cargo/registry/src/github.com-1ecc6299db9ec823/lexical-core-0.7.4/src/atof/algorithm/math.rs:1191:23
     |
1191 |     debug_assert!(n < bits);
     |                       ^^^^ expected `usize`, found `u32`
     |
help: you can convert a `u32` to a `usize` and panic if the converted value doesn't fit
     |
1191 |     debug_assert!(n < bits.try_into().unwrap());
     |                       ^^^^^^^^^^^^^^^^^^^^^^^^

error[E0308]: mismatched types
    --> /home/scott/.cargo/registry/src/github.com-1ecc6299db9ec823/lexical-core-0.7.4/src/atof/algorithm/math.rs:1201:25
     |
1201 |     let rshift = bits - n;
     |                         ^ expected `u32`, found `usize`

error[E0277]: cannot subtract `usize` from `u32`
    --> /home/scott/.cargo/registry/src/github.com-1ecc6299db9ec823/lexical-core-0.7.4/src/atof/algorithm/math.rs:1201:23
     |
1201 |     let rshift = bits - n;
     |                       ^ no implementation for `u32 - usize`
     |
     = help: the trait `Sub<usize>` is not implemented for `u32`

error[E0308]: mismatched types
    --> /home/scott/.cargo/registry/src/github.com-1ecc6299db9ec823/lexical-core-0.7.4/src/atof/algorithm/math.rs:1253:19
     |
1253 |     let rem = n % bits;
     |                   ^^^^ expected `usize`, found `u32`

error[E0277]: cannot mod `usize` by `u32`
    --> /home/scott/.cargo/registry/src/github.com-1ecc6299db9ec823/lexical-core-0.7.4/src/atof/algorithm/math.rs:1253:17
     |
1253 |     let rem = n % bits;
     |                 ^ no implementation for `usize % u32`
     |
     = help: the trait `Rem<u32>` is not implemented for `usize`

error[E0308]: mismatched types
    --> /home/scott/.cargo/registry/src/github.com-1ecc6299db9ec823/lexical-core-0.7.4/src/atof/algorithm/math.rs:1254:19
     |
1254 |     let div = n / bits;
     |                   ^^^^ expected `usize`, found `u32`

error[E0277]: cannot divide `usize` by `u32`
    --> /home/scott/.cargo/registry/src/github.com-1ecc6299db9ec823/lexical-core-0.7.4/src/atof/algorithm/math.rs:1254:17
     |
1254 |     let div = n / bits;
     |                 ^ no implementation for `usize / u32`
     |
     = help: the trait `Div<u32>` is not implemented for `usize`

error[E0308]: mismatched types
    --> /home/scott/.cargo/registry/src/github.com-1ecc6299db9ec823/lexical-core-0.7.4/src/atof/algorithm/math.rs:2065:27
     |
2065 |     let rs = Limb::BITS - s;
     |                           ^ expected `u32`, found `usize`

error[E0277]: cannot subtract `usize` from `u32`
    --> /home/scott/.cargo/registry/src/github.com-1ecc6299db9ec823/lexical-core-0.7.4/src/atof/algorithm/math.rs:2065:25
     |
2065 |     let rs = Limb::BITS - s;
     |                         ^ no implementation for `u32 - usize`
     |
     = help: the trait `Sub<usize>` is not implemented for `u32`

error: aborting due to 27 previous errors

Some errors have detailed explanations: E0277, E0308.
For more information about an error, try `rustc --explain E0277`.
error: could not compile `lexical-core`

To learn more, run the command again with --verbose.
warning: build failed, waiting for other jobs to finish...
error: build failed
make: *** [Makefile:107: target/release/popsicle-gtk] Error 101
==> ERROR: A failure occurred in build().
    Aborting...

It looks like it just repeats the same error over and over again before deciding to abort the build to prevent an infinite error feedback loop. Here’s just a few quick screenshots below for any clarification. If anyone needs my system info or special journald logs or anything like that, please just let me know, thank you! @dalto if he’s up to get his hands a little dirty! :wink:

I just tried it. It doesn’t build for me either.

I know I am the one who told you to post it here, but it probably should be reported to the AUR maintainer.

In the meantime, you can use one of the other two posicle packages. I just tested them both, they both seem to work.

1 Like

Doing yay -S aur/popsicle builds fine for me. The app is launching…

No worries, thanks for testing and confirming the issue as well. I just posted the error over on the AUR page for the package. I assume they’ll be notified of any new comments, but I imagine it may take some patience on my end before they get around to looking and fixing the issue. I don’t know the average turnover rate for fixes in the AUR when it comes to issues like this, perhaps a couple days or a couple weeks depending on their availability, but I’m not in a rush so I don’t mind any potential waiting. In the mean time I guess I should opt for the git or bin version, the bin would be the more ‘stable’ of the two?

@flyingcakes When I try to build and install it via yay in the terminal, I still get the same errors and it aborts sadly, but thanks for testing it out. Surprised it works for some, but not for others.

Is it possible you had some old build files there? Did you try to clean build it?

Lets see what the maintainer says.

Just to check if we have the same Rust version, could you please post the output of this

rustc -V 

I get 1.54.0

rustc 1.54.0 (a178d0322 2021-07-26)

I built it for the first time on my PC. But I’ll just try again with clean build option.

(be patient though; takes me 20 minutes to build)

The maintainer already replied to my comment (wow that was fast!), and they have confirmed the error on their end too. They do maintain over +200 AUR packages, so I think it’s safe to say they are a very active maintainer, which is good to know. They advised in the meantime just like you suggested to use Popsicle-git or bin for now.

Edit: I installed the Popsicle-git package for now. It uses my systems theme. For whatever reason, the Popsicle-bin package uses like a Dark Themed Adwaita, wasn’t a fan of that so for now it’s the -git package!

3 Likes

@dalto

I rebuilt and it works.

Experimenting around, I saw that the build fails if you have rust installed or no tool chain installed (because in no tool chain case, yay will fetch rust package)

Rust compiler rustc is provided by both rust and rustup (and a few other packages too).

If you have rustup installed, then cargo automatically fetches toolchain for version 1.40.0 before build. (latest is 1.54.0). Since I had rustup installed, the build succeeded for me.

In short, to reproduce my successful installation, do this

sudo pacman -S rustup       # conflicts with rust, accept to remove it
rustup install stable
rustup default stable
yay -S aur/popsicle

Not sure if this will work for you, but if your system is fast, you can try building.

Edit: 2nd and 3rd command are probably not required, but thats what I did so I put it here.

There are -bin and -git versions in aur - try them.

Thanks for testing and posting this information. I’ve already got the Popsicle-git package installed for the time being, but I’ll keep an eye out for when the maintainer updates it to test when it’s fixed.

1 Like

I also really like mint stick if you’re looking for another good one.

I like mintstick but it’s dependency on python-pyparted makes it a pain to deal with on Arch-based distros.

Not having noted that ‘pain’ on my setups yet - what should I watch for? Just works here…

python-pyparted goes through periods where it isn’t working sometimes after python updates.

1 Like