Abuild & Rust(Cargo)

rustup

setup mirror

keep offline

options="net" # cargo fetch
prepare() {
    default_prepare

    cargo fetch --target="$CTARGET" --locked
}
build() {
    cargo auditable build --frozen --release
    :
}

clap(completions)

subpackages="
    $pkgname-bash-completion
    $pkgname-fish-completion
    $pkgname-zsh-completion
    "
build() {
    :
    ./target/release/mdbook completions bash > $pkgname.bash
    ./target/release/mdbook completions fish > $pkgname.fish
    ./target/release/mdbook completions zsh > $pkgname.zsh
}
package() {
    :
    install -Dm644 $pkgname.bash "$pkgdir"/usr/share/bash-completion/completions/$pkgname
    install -Dm644 $pkgname.fish "$pkgdir"/usr/share/fish/vendor_completions.d/$pkgname.fish
    install -Dm644 $pkgname.zsh "$pkgdir"/usr/share/zsh/site-functions/_$pkgname
}

make patches

$ git init .
$ git add Cargo.toml Cargo.lock
$ git diff > ../../01-update-lock.patch

download patch from GitHub and GitLab

tests

options="!check" # upstream has no test
check() {
    cargo test --frozen
}
$ cargo test -- --skip xxx

patches

use system library

  • env
  • config.toml
  • patch