webdino / gecko-embedded

Main (meta) repository for Project GEM (Gecko Embedded)
https://gecko-embedded.org
22 stars 2 forks source link

オフラインビルド #86

Closed ashie closed 2 years ago

ashie commented 5 years ago

Cargoがつい最近までオフラインビルドに対応していなかったため、オンラインでしかビルドできなかった。 Cargoについては https://github.com/rust-lang/cargo/commit/309eb874fdd6636317927645b6a504389fac8a66#diff-9a700b7a7dcf88f0eb41583a366c9d61 でstableチャネルでもオフラインに対応したので、設定次第ではオフライン対応できるだろうか?

ただしstage0で使うプレビルドのcargoもオフライン対応させないと、完全なオフライン化はできないかもしれない。

ashie commented 5 years ago

参考: 最近のlibrsvgもRustに置き換わっているが、librsvgのCOMPILIG.mdにオフラインビルドについての言及がある。

ashie commented 5 years ago

Yoctoの方はBB_NO_NETWORK=1でオフライン化できる。 meta-rustでもこれを見てofflineオプションを切り替えられるようになっていると良いかも。

ashie commented 5 years ago

cargoのダウンロード先は meta-rust/classes/cargo_common.bbclass の export CARGO_HOME = "${WORKDIR}/cargo_home" でセットされている。

YoshihiroOota commented 5 years ago

すみません、今更ですが、もしかして依頼の仕方が間違っていた気がしてきました。 (1) 普通にオンラインでビルドする。 (2) build ディレクトリの下の cache や tmp を削除する。 (3) BB_NO_NETWORK=1 に設定し、更に物理的にネットワークから切断する。 (4) GStreamer のオフラインビルド用の変更を行い、再度ビルドする。 これでビルドが通ったため、その後の oss_packages を Gecko のオフラインビルド環境として提供できるのではないかと VLP 担当者より連絡がありました。 これまでの ahie さんの調査状況を拝見しますとそう簡単にはいかないように思え、ここに何か差異がありそうなのですが…

ashie commented 5 years ago

sstate-cacheの方も削除されていますか?あるいは残されていますか?

YoshihiroOota commented 5 years ago

はい、sstate-cache も削除しております。

YoshihiroOota commented 5 years ago

以前に ashieさんの方で試されたオフラインビルドも、上記と同じやり方でしたでしょうか。

ashie commented 5 years ago

(4) GStreamer のオフラインビルド用の変更を行い、再度ビルドする。

というのはよくわかりませんが、

というところは同じかと思います。 以前に試したときにはこれでビルドできていなかったと思いますが、ちょっと今はまだ試せてません

YoshihiroOota commented 5 years ago

情報ありがとうございます、手順は同じかと思います。不思議…。

(4) GStreamer のオフラインビルド用の変更を行い、再度ビルドする。

GStreamer がオフラインビルドで失敗することはご存知と思いますが、それの対策としてビルド前に各 .gitmodules の url の内容を手動で変更しています。本件には関係なさそうですが...

dynamis commented 2 years ago

当面必要性がないと判断し一旦 close