Static aura build
This is more of an AUR request honestly, though it perhaps may just be something that shouldn't be happening. It appears that the rust version of aura cannot survive an update to the pacman libalpm.so libraries, requiring a specific library version and thereby failing if the library got updated by pacman -Syu (as it did from the pacman 7.0 release). For haskell we had the option of using stack-static (which you may recall I brought up for fixing the aura pkgbuild many years ago now :P) to make aura more or less resistant across system updates, so it could at least bootstrap itself back instead of needing to use makepkg manually again.
The user-side fix to that is of course simple, just go to your checked out aura repo and run makepkg accordingly. But, it would also be great if it was feasible to similarly "future-proof" the rust version of aura through static linking, like what users had the option of doing with the haskell version.
Fortunately, it appears that the rust dependencies for aura all work with static linking, tossing RUSTFLAGS='-C target-feature=+crt-static' cargo build --release --target x86_64-unknown-linux-gnu at the build worked fine for getting all deps. However, aura depends upon pacman (and through it libcurl) and both of those sadly do not have static linking by default on arch. And unlike the stack-static case it's probably pretty bad idea for users to go ahead and use pacman-static by default.
While it definitely makes it more unwieldy, so an even larger trade-off, and I haven't tested this out yet, I think what can be done here though is making an aura-static AUR build that adapts the pacman-static PKGBUILD to get a statically linked libcurl and pacman available in the build root, and then builds aura statically.
I ask this here, rather than on the aura AUR page, for two main reasons:
- See if the
libalpmbreakage was actually an unexpected bug, andauraright now is supposed to be able to handle its dynamically linked libraries being updated (and isn't doing that). (EDIT: Forgot to add, I assume this one was the case due to seeing Issue #931, but wanted to confirm) - See how feasible static building
auraeven is, in casecargomanaging to get all the way to the final build step in static mode does not imply that the Rust dependencies are actually okay being static. I know some Rust dependencies actually require having alternative options for the static case / differing libraries, and didn't pay too close attention to what librariesaurawas using as the build scrolled by.
The first thing to try is to see what effect this feature flag has: https://github.com/archlinux/alpm.rs/blob/master/alpm/Cargo.toml#L25
If libalpm itself can be vendored, then that should be enough.