Crates.io | aur_cli |
lib.rs | aur_cli |
version | 0.1.3 |
source | src |
created_at | 2023-06-12 08:23:32.775779 |
updated_at | 2023-06-12 08:41:40.813352 |
description | Prepare Rust projects to be released on the Arch Linux User Repository. |
homepage | https://dnrops.gitee.io |
repository | https://gitlab.com/andrew_ryan/aur_cli.git |
max_upload_size | |
id | 887951 |
size | 905,167 |
aur_cli
is a CLI that produces a release tarball and PKGBUILD file for a Rust project, so that it can be released on the Arch Linux User Repository (AUR).
No extra configuration is necessary. As long as your Cargo.toml
has the usual
fields,
a PKGBUILD will be generated with all the necessary sections filled out.
Guess what? aur_cli
itself is on the AUR! Install it with an AUR-compatible
yay -S aur_cli
... or via cargo
:
cargo install aur_cli
Navigate to a Rust project, and run:
aur_cli
This will produce a foobar-1.2.3-x86_64.tar.gz
tarball and a PKGBUILD.
If you wish, you can now run makepkg
to ensure that your package actually builds.
> makepkg
==> Making package: aur_cli-bin 1.0.0-1 (Wed 10 Jun 2020 08:23:46 PM PDT)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
... etc ...
==> Finished making: aur_cli 1.0.0-1 (Wed 10 Jun 2020 08:23:47 PM PDT)
At this point, it is up to you to:
Release
on Github/Gitlab, attaching the original binary
tarball that aur_cli
produced.makepkg --printsrcinfo > .SRCINFO
.Some of these steps may be automated in aur_cli
at a later date if there is
sufficient demand.
If you specify a [[bin]]
section in your Cargo.toml
and set the name
field, this will be used as the binary name to install within the PKGBUILD.
depends
and optdepends
If your package requires other Arch packages at runtime, you can specify these
within your Cargo.toml
like this:
[package.metadata]
depends = ["nachos", "pizza"]
optdepends = ["sushi", "ramen"]
And these settings will be copied to your PKGBUILD.
Run with --musl
to produce a release binary that is statically linked via
MUSL.
> aur_cli --musl
> cd target/x86_64-unknown-linux-musl/release/
> ldd <your-binary>
not a dynamic executable