All Projects → fosskers → cargo-aur

fosskers / cargo-aur

Licence: MIT license
Prepare Rust projects to be released on the Arch Linux User Repository

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to cargo-aur

cargo-valgrind
A cargo subcommand, that runs valgrind and displays its output in a helpful manner.
Stars: ✭ 66 (+34.69%)
Mutual labels:  cargo, cargo-subcommand, cargo-plugin
Asus Fan Control
🌀 Fan control for ASUS devices running Linux.
Stars: ✭ 120 (+144.9%)
Mutual labels:  aur, archlinux
cargo-limit
Cargo with less noise: warnings are skipped until errors are fixed, Neovim integration, etc.
Stars: ✭ 105 (+114.29%)
Mutual labels:  cargo, cargo-plugin
Ansible Aur
Ansible module to manage packages from the AUR
Stars: ✭ 149 (+204.08%)
Mutual labels:  aur, archlinux
Aurdroid
Android AUR [Arch Linux user Repository] packages browser
Stars: ✭ 88 (+79.59%)
Mutual labels:  aur, archlinux
Mal
MAL: A MyAnimeList Command Line Interface [BROKEN: BLAME MyAnimeList]
Stars: ✭ 104 (+112.24%)
Mutual labels:  aur, archlinux
Pacback
Advanced Version Control for Arch Linux
Stars: ✭ 146 (+197.96%)
Mutual labels:  aur, archlinux
Trizen
Lightweight AUR Package Manager
Stars: ✭ 696 (+1320.41%)
Mutual labels:  aur, archlinux
abs
PKGBUILDs for the Arch User Repository
Stars: ✭ 38 (-22.45%)
Mutual labels:  aur, archlinux
aurblobs
Automatically create binary repositories from AUR packages
Stars: ✭ 14 (-71.43%)
Mutual labels:  aur, archlinux
gitkraken
Arch User Repository Gitkraken
Stars: ✭ 113 (+130.61%)
Mutual labels:  aur, archlinux
Aur Out Of Date
Determines out-of-date AUR packages w.r.t. upstream version
Stars: ✭ 33 (-32.65%)
Mutual labels:  aur, archlinux
Pacaur
[unmaintained] An AUR helper that minimizes user interaction
Stars: ✭ 818 (+1569.39%)
Mutual labels:  aur, archlinux
Sielo Legacy
An open source browser made with Qt and WebEngine
Stars: ✭ 113 (+130.61%)
Mutual labels:  aur, archlinux
Yay
Yet another Yogurt - An AUR Helper written in Go
Stars: ✭ 7,100 (+14389.8%)
Mutual labels:  aur, archlinux
Cylon
A CLI TUI menu driven bash shell script supporting updates, maintenance, backups and system checks for an Arch based Linux distro
Stars: ✭ 121 (+146.94%)
Mutual labels:  aur, archlinux
cargo-cook
A rust cargo subcommand which cooks your crate
Stars: ✭ 29 (-40.82%)
Mutual labels:  cargo, cargo-subcommand
Octopi
A powerful Pacman (Package Manager) front end using Qt libs
Stars: ✭ 331 (+575.51%)
Mutual labels:  aur, archlinux
Aurutils
Helper tools for the AUR.
Stars: ✭ 695 (+1318.37%)
Mutual labels:  aur, archlinux
Rua
Build tool for Arch Linux providing control, review and jailed build options
Stars: ✭ 224 (+357.14%)
Mutual labels:  aur, archlinux

cargo-aur

Build AUR version

cargo-aur is a new subcommand for cargo 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.

Installation

Guess what? cargo-aur itself is on the AUR! Install it with an AUR-compatible package manager like aura:

sudo aura -A cargo-aur-bin

... or via cargo:

cargo install cargo-aur

Usage

Basics

Navigate to a Rust project, and run:

cargo aur

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: cargo-aur-bin 1.0.0-1 (Wed 10 Jun 2020 08:23:46 PM PDT)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
... etc ...
==> Finished making: cargo-aur-bin 1.0.0-1 (Wed 10 Jun 2020 08:23:47 PM PDT)

Notice that the built package itself is postfixed with -bin, which follows the AUR standard.

At this point, it is up to you to:

  1. Create an official Release on Github/Gitlab, attaching the original binary tarball that cargo aur produced.
  2. Copy the PKGBUILD to a git repo that tracks releases of your package.
  3. Run makepkg --printsrcinfo > .SRCINFO.
  4. Commit both files and push to the AUR.

Some of these steps may be automated in cargo aur at a later date if there is sufficient demand.

Custom Binary Names

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.

Static Binaries

Run with --musl to produce a release binary that is statically linked via MUSL.

> cargo aur --musl
> cd target/x86_64-unknown-linux-musl/release/
> ldd <your-binary>
    not a dynamic executable
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].