This service is available only in Japanese-language.

Column & Tips

Yocto4.0(Kirkstone)のサポート期間は4年に延長


TSCチームから4年への延長の要望が出されていたYocto4.0(Kirkstone)ですが、ADVISORY BOARDでの承認が得られたため、正式に延長のアナウンスがありました。
https://www.yoctoproject.org/pr-exein-4y-lts-ypdd-2023/

上記文書は大急ぎで作成されたようで
1.第1段落 最初のLTSのリリースがApr 2020 のところがOct 2020となっている
2. Platina Memberとして、Exein の新規参加が記載されていますが、Qualcommの復帰には言及されていない

また、いくつかの開発への公募も始まっています。
https://www.yoctoproject.org/community/yocto-project-engineering-request...

いずれも、Yocto Projectとして、メンバー企業から提供される資金で行われている事業となります。
プロジェクトでは引き続きスポンサードする企業の参加を広く募っています。

pokyに含まれるOpenSSLの脆弱性(CVE-2022-3602/CVE-3786)に関して


2022年11月1日に公表されたOpenSSLの脆弱性CVE-2022-3602/CVE-3786に関して、YoctoProjectで影響を受けるのはYocto4.0(kirkstone)以降となっています。
Yocto3.4までOpenSSLは、1.X系列を使用しているため、今回公表された脆弱性は含まれておりません。

既にopenembedded-coreのMLには、OpenSSL 3.0.5 から 3.0.7にupdateするパッチも投稿されています。
https://lists.openembedded.org/g/openembedded-core/message/172369

変更点は
・OpenSSL 3.0.5 から OpenSSL 3.0.7 へのアップデート。
・OpenSSL 3.0.6 で解決したCVE-2022-3358へ対応するためのパッチファイルの削除
となっています。

BSPの次期アップデートまで待てない場合は、上記の投稿されたパッチを適用することで脆弱性への対処済のバージョンに更新可能となります。

OOMKiller対策等が追加されます


Yocto Projectから配布されるpokyのbuild engine bitbake ですが、これまで新規タスク実行時にチェックするリソースはディスク容量のみとなっていました。
ファイルシステムの残容量が一定以下になると新規タスクの実行を停止するという処理が入っており、disk full でシステムが停止することを抑制していましたが、最近bitbake-mlに投稿された2つのパッチがmaster/kirkstone/dunfellのツリーにマージされ、CPU/IO/MEMORY資源の枯渇への対応が追加されました。

MLへの投稿
https://lists.openembedded.org/g/bitbake-devel/message/13835
https://lists.openembedded.org/g/bitbake-devel/message/13870

master へのコミット
https://git.yoctoproject.org/poky/commit/bitbake/lib/bb/runqueue.py?id=4...
https://git.yoctoproject.org/poky/commit/bitbake/lib/bb/runqueue.py?id=f...

kirkstone へのコミット
https://git.yoctoproject.org/poky/commit/bitbake/lib/bb/runqueue.py?h=ki...
https://git.yoctoproject.org/poky/commit/bitbake/lib/bb/runqueue.py?h=ki...

dunfell へのコミット
https://git.yoctoproject.org/poky/commit/bitbake/lib/bb/runqueue.py?h=du...
https://git.yoctoproject.org/poky/commit/bitbake/lib/bb/runqueue.py?h=du...

あくまでも新規タスク実行前のチェックのため、タスク実行中にメモリが足りなくなり(実メモリ+スワップを使い切る)OOM Killerが走ってプロセスが強制終了することが皆無になる訳では無いと考えますが、頻度は少なくなることが期待できます。

この機能を含んだリリースは
Yocto4.1_M3(2022/9.2 リリース予定)
Yocto4.0.4(2022/09/30 リリース予定)
Yocto3.1.20 (2022/10/21 リリース予定)
となります。

Yocto Project VIRTUAL SUMMIT が開催されました


2022/5/17-19(UTC) の日程でYoctoProjectのVIRTUAL SUMMITが開催されました。

従来、Yocto Project Developer Day として実施されていたイベント内容を含んだ
広範囲の内容を扱ったセミナーが実施され、資料の公開が始まっています。

イベントの案内
https://pretalx.com/yocto-project-summit-2022-05/

スケジュール
https://pretalx.com/yocto-project-summit-2022-05/schedule/

上記スケジュール内の各項目から、講演内容及び資料のリンクが参照可能です。

次期LTS kirkstone はYocto4.0 としてリリースされます


まもなくM4(リリース候補版)が公開予定で、ブランチも切られた kirkstone は、これまでYovcto3.5として開発されていましたが、既存のレシピで使用されていた変数名が変更されるなど、
相違点が多くなっているため、Yocto4,0 としてリリースされることになりました。
https://git.yoctoproject.org/poky/commit/meta-poky/conf/distro/poky.conf...

現在のLTS (Yocto3.1 Dunfell) からの相違点として、Yocto3.4 で実施された上書き演算子の変更
https://yoctobbq.lineo.co.jp/?q=node/358
Yocto4.0で実施される用語の見直し
https://yoctobbq.lineo.co.jp/?q=node/388
等、従来使用していたレシピそのままでは構築できなくなります。

これらの変更に対して、変換を行うスクリプトが用意されていますので、Yocto3.3以前で開発されたレシピを4.0 以降で使用する場合
pokyに同梱される
https://git.yoctoproject.org/poky/tree/scripts/contrib?h=kirkstone
スクリプトを使用することで、ご安心ください。

Yocto3.5LTS (Kirkstone) での用語見直しについて


2022年4月29日のリリースに向けて準備が進められているYocto3.5LTS (Kirkstone)ですが、
仕様の確定作業が終了しています。

一昨年より検討されていた用語の見直しが今回のリリースのタイミングで実施されることと
なり、既存のmetadataに対する変換スクリプトも準備されています。
https://git.yoctoproject.org/poky/tree/scripts/contrib/convert-variable-...

上記スクリプト内の変換テーブルに登録されている以下の変数名が変更となります。

既存の変数名       新しい変数名
"BB_ENV_WHITELIST" : "BB_ENV_PASSTHROUGH",
"BB_ENV_EXTRAWHITE" : "BB_ENV_PASSTHROUGH_ADDITIONS",
"BB_HASHCONFIG_WHITELIST" : "BB_HASHCONFIG_IGNORE_VARS",
"BB_SETSCENE_ENFORCE_WHITELIST" : "BB_SETSCENE_ENFORCE_IGNORE_TASKS",
"BB_HASHBASE_WHITELIST" : "BB_BASEHASH_IGNORE_VARS",
"BB_HASHTASK_WHITELIST" : "BB_TASKHASH_IGNORE_TASKS",
"CVE_CHECK_PN_WHITELIST" : "CVE_CHECK_SKIP_RECIPE",
"CVE_CHECK_WHITELIST" : "CVE_CHECK_IGNORE",
"MULTI_PROVIDER_WHITELIST" : "BB_MULTI_PROVIDER_ALLOWED",
"PNBLACKLIST" : "SKIP_RECIPE",
"SDK_LOCAL_CONF_BLACKLIST" : "ESDK_LOCALCONF_REMOVE",
"SDK_LOCAL_CONF_WHITELIST" : "ESDK_LOCALCONF_ALLOW",
"SDK_INHERIT_BLACKLIST" : "ESDK_CLASS_INHERIT_DISABLE",
"SSTATE_DUPWHITELIST" : "SSTATE_ALLOW_OVERLAP_FILES",
"SYSROOT_DIRS_BLACKLIST" : "SYSROOT_DIRS_IGNORE",
"UNKNOWN_CONFIGURE_WHITELIST" : "UNKNOWN_CONFIGURE_OPT_IGNORE",
"ICECC_USER_CLASS_BL" : "ICECC_CLASS_DISABLE",
"ICECC_SYSTEM_CLASS_BL" : "ICECC_CLASS_DISABLE",
"ICECC_USER_PACKAGE_WL" : "ICECC_RECIPE_ENABLE",
"ICECC_USER_PACKAGE_BL" : "ICECC_RECIPE_DISABLE",
"ICECC_SYSTEM_PACKAGE_BL" : "ICECC_RECIPE_DISABLE",
"LICENSE_FLAGS_WHITELIST" : "LICENSE_FLAGS_ACCEPTED",

2022/04 リリース予定のYocto3.5について


2021年12月第4週にM1の公開が予定されているYocto3.5(Kirkstone)ですが、autobuilder の対象イメージの一つ core-image-sato の構築時に
依存からrust-native rust-llvm-native が必要となり、イメージの生成にかかる時間がかなり増加するようになります。

rust は、2021年10月リリースのYocto3.4(Honister)で、meta-rust から meta に移動となり YoctoProject/IOpenEmbedded Project で
共同で開発・メンテナンスを行うようになっています。

今回、core-image-sato でrustが必要となった直接の要因は、packagegroup-core-x11-sato に含まれる adwaita-icon-theme が依存する librsvg
の以下の変更となります。
https://git.yoctoproject.org/poky/commit/meta/recipes-gnome/librsvg?id=2...

構築確認を行う際は、充分な時間の余裕をみて行なわれることをお勧めします。

2022年1月11日以降のgithub.com へのgitでのアクセス


2022年1月11日以降、github.com は git protpcolのサポートを停止するとのアナウンスがおこなれており、以降は
httpsプロトコルでのアクセスが必要となります。
https://github.blog/2021-09-01-improving-git-protocol-security-github/#w...

Yocto Projectでリリースを行っているpoky distoribution は、2021/11以降にリリースされるポイントリリースでは
git protocol で、github.com にアクセスしようとする際に、httpsに強制的に変更する処理が追加されており、既存のリリースについても、既にEOLとなっているthud 以降については、対応するコミットが行われています。。
https://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/bitbake/lib/bb/fe...

@@ -152,6 +152,10 @@ class Git(FetchMethod):
ud.proto = 'file'
else:
ud.proto = "git"
+ if ud.host == "github.com" and ud.proto == "git":
+ # github stopped supporting git protocol
+ # https://github.blog/2021-09-01-improving-git-protocol-security-github/#n...
+ ud.proto = "https"

来年1月11日以降、2021年11月以前にコミットされたpokyをお使いの場合、bitbake/lib/bb/fetch2/git.py を
バックポートを行うことで、warning(github.comへのアクセスエラーが発生し、ミラーから取得) の抑止が可能になります。

Yocto3.4から変数に対する上書き指定の書式が変更になります


2021年10月末リリース予定のYocto3.4(Honister)ですが、metadata内で上書き指定を行う際の書式が変更となります。

=============================================================
例1:
SRC_URI_qemux86 = "file://somefile"
      ↓
SRC_URI:qemux86 = "file://somefile"

例2:
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
      ↓
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
=============================================================

変数名_上書き指示 で記述していたものが 変数名:上書き指示 に変わります。

従来は、リリース後に公開される移行ガイドですが、今回の書式変更に関する情報に関しては事前に公開されています。
https://docs.yoctoproject.org/migration-guides/migration-3.4.html
上記URLの移行ガイド内でも紹介されていますが、
従来の書式で記述された meta-data( *.bb *.bbappend *.bbclass *.inc *.conf ) をレイヤー単位で新しい書式に変換するscript が
poky/scripts/contrib/convert-overrides.py (metaをYocto Projectから取得した場合)
openembedded-core/ scripts/contrib/convert-overrides.py (metaをOpenEmbedded.org から取得した場合)
として提供されますので、こちらを利用することで手間は少なくなるかと思います。

Yocto Project公式Goods販売開始


Yocto Projectは昨年10月、無事10周年を迎えることができました。
それを記念してTシャツを作成しました。
従来ですと、イベントの会場での販売が主となりますが、このご時世、イベントも
オンラインで実施となったため、Goofsもオンラインでの販売となりました。
10周年の記念Tシャツ以外、従来イベント会場で販売されていた各種Goodsも購入可能です。

https://shop.spreadshirt.com/the-yocto-project/

ページ