コンテンツにスキップ

「Rust パッケージガイドライン」の版間の差分

提供: ArchWiki
削除された内容 追加された内容
AshMyzk (トーク | 投稿記録)
パッケージの例: 追加。英語版より。
AshMyzk (トーク | 投稿記録)
ソース: 追加。英語版より。
9行目: 9行目:


[[Rust]] のプロジェクトをパッケージングする際は、基本的にパッケージ名は生成されるバイナリの名前と同じにするべきです。これはライブラリクレートをパッケージングする場合には当てはまらず、バイナリのクレートの場合にのみ当てはまることに注意してください。2つ以上のバイナリを生成するクレートの場合、上流のクレート名を使うのが通常適切です。いかなる場合でも、パッケージ名はすべて小文字である必要があります。
[[Rust]] のプロジェクトをパッケージングする際は、基本的にパッケージ名は生成されるバイナリの名前と同じにするべきです。これはライブラリクレートをパッケージングする場合には当てはまらず、バイナリのクレートの場合にのみ当てはまることに注意してください。2つ以上のバイナリを生成するクレートの場合、上流のクレート名を使うのが通常適切です。いかなる場合でも、パッケージ名はすべて小文字である必要があります。

== ソース ==

ほとんどの Rust プロジェクトは tarball、ソースアーカイブ(例: GitHub リリースのソースリンク)、その他の公開されているソースからビルドすることができます。あるいは、多くのプロジェクトが、[[cargo]] のための安定しているダウンロード URL スキームを提供する [https://crates.io crates.io] 上に公開されています。お望みならば、[[PKGBUILD#source]] で以下のテンプレートを使うことができます:

<nowiki>source=("$pkgname-$pkgver.tar.gz::https://static.crates.io/crates/$pkgname/$pkgname-$pkgver.crate")</nowiki>


== ビルド ==
== ビルド ==

2022年6月29日 (水) 13:19時点における版

このドキュメントでは RustPKGBUILD を書く時の基準とガイドラインを説明しています。

パッケージの命名

Rust のプロジェクトをパッケージングする際は、基本的にパッケージ名は生成されるバイナリの名前と同じにするべきです。これはライブラリクレートをパッケージングする場合には当てはまらず、バイナリのクレートの場合にのみ当てはまることに注意してください。2つ以上のバイナリを生成するクレートの場合、上流のクレート名を使うのが通常適切です。いかなる場合でも、パッケージ名はすべて小文字である必要があります。

ソース

ほとんどの Rust プロジェクトは tarball、ソースアーカイブ(例: GitHub リリースのソースリンク)、その他の公開されているソースからビルドすることができます。あるいは、多くのプロジェクトが、cargo のための安定しているダウンロード URL スキームを提供する crates.io 上に公開されています。お望みならば、PKGBUILD#source で以下のテンプレートを使うことができます:

source=("$pkgname-$pkgver.tar.gz::https://static.crates.io/crates/$pkgname/$pkgname-$pkgver.crate")

ビルド

Rust パッケージのビルド:

 build() {
   cargo build --release --locked
 }

説明:

  • --releasecargo はリリースビルドをコンパイルします。
  • --lockedcargoCargo.lock ファイルを変更して依存関係を更新しなくなります。再現可能なビルド とするために必要です。

チェック

大抵の Rust プロジェクトではテストスイートを簡単に実行できるようになっています:

 check() {
   cargo test --release --locked
 }

パッケージ

Rust はバイナリを target/release にビルドするので /usr/bin にインストールします:

 package() {
   install -Dm 755 target/release/${pkgname} -t "${pkgdir}/usr/bin"
 }

パッケージによっては man ページなど他のファイルもインストールするので、cargo を用いるのがよいでしょう:

package() {
  cargo install --root "${pkgdir}"/usr --root "${srcdir}/${pkgname}-${pkgver}"
}

パッケージの例

パッケージページの パッケージアクション > ソースファイル をクリックして、PKGBUILD を見ることができます。