6 个版本

0.1.5 2022年5月10日
0.1.4 2019年12月7日
0.1.3 2019年9月13日
0.1.2 2019年1月6日
0.1.0 2016年7月27日

Cargo 插件 中排名 #284

每月下载量 41

Apache-2.0 协议

34KB
524 行代码(不包括注释)

cargo-arch - 从 Cargo.toml 中的信息生成 Arch Linux 软件包

cargo-arch 将生成PKGBUILD文件,您可以在[package.metadata.arch]部分添加额外信息,选项可以通过man PKGBUILD 命令查看.

文档

目录

安装

crate.io 安装

$ cargo install cargo-arch

从 GitHub 安装

$ cargo install --git https://github.com/wdv4758h/cargo-arch

下载预构建的二进制文件

# by curl
$ curl -O -J -L https://github.com/wdv4758h/cargo-arch/releases/download/v0.1.5/cargo-arch-v0.1.5-x86_64-unknown-linux-gnu.tar.gz

# by wget
$ wget https://github.com/wdv4758h/cargo-arch/releases/download/v0.1.5/cargo-arch-v0.1.5-x86_64-unknown-linux-gnu.tar.gz

用法

$ cargo arch --help
cargo-arch 0.1.5
Chiu-Hsiang Hsu <[email protected]>
Rust Arch Linux package packer

USAGE:
    cargo arch [FLAGS] [OPTIONS]

FLAGS:
    -f, --force        Overwrite existing package
    -h, --help         Prints help information
    -i, --install      Install package after successful build
        --mksrcinfo    Run mksrcinfo
    -s, --syncdeps     Install missing dependencies with pacman
    -V, --version      Prints version information

OPTIONS:
    -b, --build <build>                    whether build the source [default: true]  [possible values:
                                           true, false]
    -p, --manifest-path <manifest-path>    Cargo.toml directory path
$ cargo arch
==> Making package: cargo-arch 0.1.5-1 (Tue 10 May 2022 03:46:55 PM CST)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
==> Extracting sources...
==> Starting pkgver()...
==> Updated version: cargo-arch 0.1.5.r0.g21098bb-1
==> Removing existing $pkgdir/ directory...
==> Starting build()...
==> Entering fakeroot environment...
==> Starting package()...
  Installing cargo-arch v0.1.5 (/home/user/cargo-arch)
    Updating crates.io index
   Compiling proc-macro2 v1.0.38
   Compiling unicode-xid v0.2.3
   Compiling syn v1.0.93
   Compiling version_check v0.9.4
   Compiling autocfg v1.1.0
   Compiling libc v0.2.125
   Compiling serde_derive v1.0.137
   Compiling serde v1.0.137
   Compiling anyhow v1.0.57
   Compiling hashbrown v0.11.2
   Compiling os_str_bytes v6.0.0
   Compiling heck v0.4.0
   Compiling textwrap v0.15.0
   Compiling termcolor v1.1.3
   Compiling strsim v0.10.0
   Compiling lazy_static v1.4.0
   Compiling bitflags v1.3.2
   Compiling proc-macro-error-attr v1.0.4
   Compiling proc-macro-error v1.0.4
   Compiling indexmap v1.8.1
   Compiling clap_lex v0.2.0
   Compiling quote v1.0.18
   Compiling atty v0.2.14
   Compiling clap_derive v3.1.7
   Compiling clap v3.1.17
   Compiling toml v0.5.9
   Compiling cargo-arch v0.1.5 (/home/user/cargo-arch)
    Finished release [optimized] target(s) in 27.85s
  Installing /home/user/cargo-arch/pkg/cargo-arch/usr/bin/cargo-arch
   Installed package `cargo-arch v0.1.5 (/home/user/cargo-arch)` (executable `cargo-arch`)
warning: be sure to add `/home/user/cargo-arch/pkg/cargo-arch/usr/bin` to your PATH to be able to run the installed binaries
==> Tidying install...
  -> Removing libtool files...
  -> Purging unwanted files...
  -> Removing static library files...
  -> Stripping unneeded symbols from binaries and libraries...
  -> Compressing man and info pages...
==> Checking for packaging issues...
==> Creating package "cargo-arch"...
  -> Generating .PKGINFO file...
  -> Generating .BUILDINFO file...
  -> Generating .MTREE file...
  -> Compressing package...
==> Leaving fakeroot environment.
==> Finished making: cargo-arch 0.1.5.r0.g21098bb-1 (Tue 10 May 2022 03:47:24 PM CST)

自定义

您可以将PKGBUILD字段设置放在Cargo.toml文件下的[package.metadata.arch]部分

[package.metadata.arch]
arch = ["x86_64"]
makedepends = ["cargo", "my-build-dep1", "my-build-dep2"]
depends = ["my-run-dep1", "my-run-dep2"]
provides = ["cargo-arch", "my-command1", "my-command2"]

关于二进制文件的信息

命令依赖

变更日志

尚未实现(计划)

v0.1.5 (2022-05-10)

  • 大量依赖更新,取消 YAML CLI 设置
  • 将 Rust 版本从 2018 更新到 2021
  • 通过将 serde 的默认值填充从 CargoMetadata 移动到 CargoArch 修复 #16(感谢 @zraktvor)
  • 为避免两次构建 crate,请留空 build()(感谢 @gkaklas)
  • 使用 --no-track 标志以避免安装 .crates.toml 和 .crates2.json(感谢 @gkaklas)
  • 确保 arch 部分的默认值已填充(感谢 @cardoe)

v0.1.4 (2019-12-07)

  • 使用 anyhow 提供更好的错误报告(感谢 @cardoe)
  • 默认架构为 x86_64(感谢 @cardoe)
  • 修复 bash 数组语法(感谢 @cardoe)
  • 在构建和打包阶段之间共享工件(感谢 @cardoe)

v0.1.3 (2019-09-13)

  • 添加--manifest-path支持(感谢 @ZettaScript)
  • 更新依赖项版本

v0.1.2 (2019-01-06)

  • 使用 "/usr" 替代 "/" 作为安装基础

v0.1.1 (2019-01-06)

  • 更改为使用 serde 而不是 rustc-serialize
  • 更新 PKGBUILD 模板以删除 .crates.toml
  • 更新 toml 以使用 serde API
  • 更新 clap 版本

v0.1.0 (2016-07-27)

  • 支持构建 Arch Linux 软件包

注意

我仅在 x86_64 Linux 上进行了测试。其他平台由 CI 构建。如果它们无法正常工作,请告诉我。

开发

制作发行版

  1. 更新src/arguments.yml
  2. 更新Cargo.toml
  3. 更新货物锁文件
  4. 添加git标签

特别感谢

许可证

cargo-arch采用Apache-2.0许可证 - 详细内容请参阅LICENSE文件

依赖关系

~2–2.9MB
~53K SLoC