FreeBSD 14.2-リリースノート

# 「はじめに」
この記事は[FreeBSD 14.2-RELEASE Release Notes](https://www.freebsd.org/releases/14.2R/relnotes/)の日本語訳です。恒例の言い訳ですが、訳の正確さは保証できません。なので、「ふつーはそう訳さねーよ」という指摘は大歓迎です。

また、恒例のお断りですが、この文章の内容は、筆者が所属している会社・団体とは一切関わりがありません。いわゆる「自主的な研究の成果の発表」というものです。

あとリリースノートにはないのですが[FreeBSD 14.2-RELEASE Announcement](https://www.freebsd.org/releases/14.2R/announce/)にはDedication（献呈）という項目があります。

> The FreeBSD Project dedicates the FreeBSD 14.2-RELEASE to the memory of Mike Karels, who spent more than 40 years contributing to BSD and was the Deputy Release Engineering Lead at the time of his passing.
> (参考訳) FreeBSDプロジェクトは、BSDに40年以上貢献し、亡くなる直前にはリリースエンジニアリングの副リーダーを務めていたMike Karels氏を偲び、FreeBSD 14.2-RELEASEを氏に捧げます。

「4.4BSDの設計と実装」の著者の一人ですね。

では、以下、翻訳です。

# 要約
FreeBSD 14.2-RELEASE のリリースノートには、14-STABLE 開発ラインで FreeBSD の基本システムに加えられた変更の概要が書かれています。 この文書には、前回のリリース以降に発行されたセキュリティ勧告や、 FreeBSD カーネルとユーザランドに対する重要な変更が記載されています。 また、アップグレードに関する簡単な説明もあります。

# はじめに
この文書は FreeBSD 14.2-RELEASE のリリースノートです。 FreeBSD の最近追加、変更、削除された機能について説明しています。 また、旧バージョンの FreeBSD からのアップグレードに関する注意も書かれています。

このリリースノートが適用される "release" ディストリビューションは、14-STABLE が作成されて以来、14-STABLE 開発ブランチに沿った最新のポイントを表しています。 このブランチに沿った、ビルド済みのバイナリ「リリース」ディストリビューションに関する情報は、 https://www.FreeBSD.org/releases/ にあります。

この FreeBSD 14.2-RELEASE ディストリビューションは "release" ディストリビューションです。 このディストリビューションは、 https://www.FreeBSD.org/releases/ またはそのミラーサイトにあります。 この (あるいは他の) 「リリース」版 FreeBSD の配布を入手するための詳しい情報は、 FreeBSD ハンドブックの付録 FreeBSD の入手 にあります。

すべてのユーザには、FreeBSD をインストールする前に release errata を参照することをお勧めします。 errata ドキュメントは、リリースサイクルの後半やリリース後に発見された "late-breaking" な情報で更新されます。 典型的なものとしては、既知のバグやセキュリティ勧告、 文書の修正に関する情報があります。 FreeBSD 14.2-RELEASE の errata の最新版は FreeBSD のウェブサイトにあります。

この文書では、14.1-RELEASE 以降の FreeBSD の新機能や変更点のうち、 ユーザが目にしやすいものについて説明します。 一般に、ここで説明する変更点は、特に MERGED 機能と書かれていない限り、 14-STABLE ブランチ独自のものです。

典型的なリリースノートの項目は、14.1-RELEASE 以降に発行された最近のセキュリティ勧告、 新しいドライバやハードウェアのサポート、新しいコマンドやオプション、 主要なバグの修正、貢献されたソフトウェアのアップグレードを文書化したものです。 また、主要なポートやパッケージの変更、リリースエンジニアリングの実践についても記載されることがあります。 リリースノートは、リリース間の FreeBSD に加えられたすべての変更点を列挙することはできません。この文書では、主にセキュリティ勧告、ユーザーから見える変更点、主要なアーキテクチャの改良点に焦点を当てています。

# FreeBSDの以前のリリースからのアップグレード
RELEASE バージョン間 (およびさまざまなセキュリティブランチのスナップショット) のバイナリアップグレードは、 freebsd-update(8) ユーティリティでサポートされています。 リリースごとのアップグレード手順、 FreeBSD 14.2-RELEASE アップグレード情報、 FreeBSD ハンドブック バイナリアップグレード手順 をご覧ください。 これは、FreeBSD の公式リリースの一部として配布されている GENERIC カーネルと併せて、変更されていないユーザランドユーティリティも更新します。 freebsd-update(8) ユーティリティを使うには、アップグレードするホストがインターネットに接続できる必要があります。

以前のバージョンからのソースベースのアップグレード (FreeBSD の基本システムをソースコードから再コンパイルしたもの) は、/usr/src/UPDATING にある指示に従ってサポートされています。

:::note alert
FreeBSD のアップグレードは、すべてのデータと設定ファイルを バックアップしてから行ってください。
:::

# セキュリティと正誤表
このセクションでは、14.1-RELEASE 以降のさまざまなセキュリティ勧告と正誤表を示します。
## セキュリティ勧告
|勧告|日付|トピック|
|:--|:--|:--|
|FreeBSD-SA-24:04.openssh |01 July 2024 |OpenSSH pre-authentication remote code execution
|FreeBSD-SA-24:05.pf |07 August 2024 |pf incorrectly matches different ICMPv6 states in the state table
|FreeBSD-SA-24:06.ktrace |07 August 2024 |ktrace(2) fails to detach when executing a setuid binary
|FreeBSD-SA-24:07.nfsclient |07 August 2024 |NFS client accepts file names containing path separators
|FreeBSD-SA-24:08.openssh |07 August 2024 |OpenSSH pre-authentication async signal safety issue
|FreeBSD-SA-24:09.libnv |04 September 2024 |Multiple vulnerabilities in libnv
|FreeBSD-SA-24:10.bhyve |04 September 2024 |bhyve(8) privileged guest escape via TPM device passthrough
|FreeBSD-SA-24:11.ctl |04 September 2024 |Multiple issues in ctl(4) CAM Target Layer
|FreeBSD-SA-24:12.bhyve |04 September 2024 |bhyve(8) privileged guest escape via USB controller
|FreeBSD-SA-24:13.openssl |04 September 2024 |Possible DoS in X.509 name checks in OpenSSL
|FreeBSD-SA-24:14.umtx |04 September 2024 |umtx Kernel panic or Use-After-|Free
|FreeBSD-SA-24:15.bhyve |19 September 2024 |bhyve(8) out-of-bounds read access via XHCI emulation
|FreeBSD-SA-24:16.libnv |19 September 2024 |Integer overflow in libnv
|FreeBSD-SA-24:17.bhyve |29 October 2024 |Multiple issues in the bhyve hypervisor
|FreeBSD-SA-24:18.ctl |29 October 2024 |Unbounded allocation in ctl(4) CAM Target Layer
|FreeBSD-SA-24:19.fetch |29 October 2024 |Certificate revocation list fetch(1) option fails

## 正誤表
|正誤|日付|トピック|
|:--|:--|:--|
|FreeBSD-EN-24:10.zfs| 19 June 2024| Kernel memory leak in ZFS
|FreeBSD-EN-24:11.ldns| 19 June 2024| LDNS uses nameserver commented out in resolv.conf
|FreeBSD-EN-24:12.killpg| 19 June 2024| Lock order reversal in killpg causing livelock
|FreeBSD-EN-24:13.libc++| 19 June 2024| Incorrect size passed to heap allocated std::string delete
|FreeBSD-EN-24:14.ifconfig| 07 August 2024| Incorrect ifconfig netmask assignment
|FreeBSD-EN-24:15.calendar| 04 September 2024| cron(8) / periodic(8) session login
|FreeBSD-EN-24:16.pf| 19 September 2024| Incorrect ICMPv6 state handling in pf
|FreeBSD-EN-24:17.pam_xdg| 29 October 2024| XDG runtime directory’s file descriptor leak at login

# ユーザーランド
この節では、ユーザーランドのアプリケーション、提供されたソフトウェア、およびシステムユーティリティの変更と追加について説明します。

## ユーザーランドのアプリケーションの変更点
env(1) にディレクトリを変更するオプションが追加されました。これは GNU 版の env の機能によく似ていますが、長いオプションには対応していません。(Klara, Inc. による後援)

## 提供されたソフトウェア

bc が 7.0.2 にアップグレードされました。

libarchive が 3.7.7 にアップグレードされました。

libcbor が 0.11.0 にアップグレードされました。(FreeBSD Foundation による後援)

libcxxrt がベンダースナップショット 6f2fdfebcd62 にアップグレードされました。

libfido2 が 1.14.0 にアップグレードされました。(FreeBSD Foundation による後援)

libpcap が 1.10.5 にアップグレードされました。(FreeBSD Foundation による後援)

llvm が 18.1.6 にアップグレードされました。

openssl が 3.0.15 にアップグレードされました。

tcpdump が 4.99.5 にアップグレードされました。(FreeBSD Foundation による後援)

unbound が 1.22.0 にアップグレードされました。

## ランタイムライブラリとAPI

fma(3) が、特定の小さな入力が与えられた場合に、正しく符号化されたゼロを返すようになりました (Python テストスイートで確認済み)。 (FreeBSD Foundation による後援)

cap_rights_is_empty 関数が追加されました。これは、cap_rights_t に権利が設定されていないかどうかを報告します。(FreeBSD Foundation による後援)

## 非推奨アプリケーション
fdisk(8) は長い間、gpart(8) に取って代わられ非推奨となっていますが、削除はされていません。このアプリケーションを実行すると、gpart(8) に移行するよう警告が表示されます。 3958be5c29da (FreeBSD Foundation による後援)

asinf(3) および acosf(3) の精度が向上しました。[^wrongpos]
[^wrongpos]: これは上の[ランタイムライブラリとAPI](#ランタイムライブラリとAPI)に入るべき項目な気がしますが、、、

# クラウドサポート
この節では、クラウド環境のサポートに関する変更について説明します。

nuageinit 起動スクリプトが OpenStack ネットワーク設定をサポートしました。

FreeBSD プロジェクトが OCI 互換のコンテナイメージを公開するようになりました。 

FreeBSD プロジェクトが Oracle Cloud Infrastructure イメージの公開を開始しました。 詳しくは Oracle Cloud Infrastructure FreeBSD Listing をご覧ください。

Amazon EC2 クラウドの "shutdown" と "reboot" API が arm64 インスタンスで動作するようになりました。 FreeBSD 14.2-RELEASE にアップグレードされた古いインスタンスでは、 debug.acpi.quirks="8" を /boot/loader.conf に設定する必要があります。(Amazon による後援)

FreeBSD プロジェクトは、"small" EC2 イメージを公開しています。これは、デバッグシンボル、テスト、32 ビットライブラリ、LLDB デバッガ、Amazon SSM エージェント、AWS CLI を除いた "base" イメージです。(Amazon による後援)

# デバイスとドライバ
この節では、14.1-RELEASE 以降のデバイスとデバイス・ドライバの変更と追加について説明します。

## デバイスドライバ
ena が 2.8.0 にアップグレードされました。 (Amazon, Inc. による後援)

ice が 1.43.2-k にアップグレードされました。 (Intel Corporation による後援)

ice_ddp が 1.3.41.0 にアップグレードされました。(Intel Corporation による後援)

Tiger Lake-H サポートが hda(4) ドライバに追加されました。

Meteor Lake のサポートが ichsmb(4) ドライバに追加されました。(Framework Computer Inc による後援) (FreeBSD Foundation による後援)

ig4(4) ドライバに Meteor Lake のサポートが追加されました。

いくつかの Realtek チップセットをサポートする新しいワイヤレスドライバ rtw89(4) が利用可能になりました。(FreeBSD Foundation による後援)

パフォーマンスと信頼性の向上のため、Realtek 8156/8156B のサポートを cdce(4) から ure(4) に移動しました。 (FreeBSD Foundation による後援)

ACPI GPIO _AEI オブジェクトのサポートが追加されました。 (Amazon による後援)

nvme(4) および nvmecontrol(8) が全アーキテクチャで有効化されました。 (Chelsio Communications および Netflix による後援)

## 非推奨および削除されたドライバ
agp(4) は FreeBSD 15.0 で削除される予定であり、man ページには非推奨であることが記述されました。

syscons(4) は将来のリリースで削除される予定であり、vt(4) に移行するようユーザに通知するため、man ページに非推奨であることが記載されました。 (FreeBSD Foundation による後援)

# ストレージ
この節では、ファイルシステムおよびその他のストレージサブシステム（ローカルおよびネットワークの両方）の変更と追加について説明します。

## ZFS
OpenZFS がバージョン 2.2.6 にアップグレードされました。

# ブートローダーの変更
この節では、ブートローダー、ブートメニュー、その他のブート関連の変更について説明します。

## ブートローダーの変更
BIOSブートローダーは、gzipとbzip2のサポートを復活させましたが、サイズの問題に対処するため、グラフィックモードのサポートを（デフォルトで）削除しました。 (EFI ブートローダはこれらすべてをサポートしたまま変更されていません。) (Netflix による後援)

# ネットワーク
この節では、FreeBSD のネットワークに影響する変更について説明します。

## ネットワークプロトコル
sctp(4) スタックの性能の改善やバグフィックスを含む、ネットワークスタックの多数の改良。

sctp_peeloff(2) が返すディスクリプタが親ソケットから機能を継承するようになりました。 (FreeBSD Foundation による後援)

## ネットワーク全般
igc(4) ドライバに AIM(Adaptive Interrupt Moderation) サポートを追加しました。(Rubicon Communications, LLC ("Netgate") および BBOX.io による後援)

この機能は lem(4)、em(4) および igb(4) ドライバにも追加されました。 FreeBSD 12.0 で導入された NFS over UDP を含む UDP の性能の大きな後退は、 この変更で修正されたと思われます。(Rubicon Communications, LLC ("Netgate") および BBOX.io による後援)

## 無線ネットワーク
LinuxKPIは、特に 802.11 に対して、iwlwifi(4) のような無線ドライバの安定性を改善するために強化されました。 (FreeBSD Foundation による後援)

# ハードウェアのサポート
この節では、物理マシン、ハイパーバイザー、仮想化環境の一般的なハードウェアサポート、および本書の他の節に当てはまらないハードウェアの変更と更新について説明します。

14.2-RELEASE でサポートされる[ハードウェアのリスト](https://www.freebsd.org/releases/14.2R/hardware)と、サポートされる CPU アーキテクチャの完全なリストについては、[プラットフォームのページ](https://www.freebsd.org/platforms/)を参照してください。

## プロセッサのサポート
IOAPIC ID の最大値が 255 に引き上げられ、特定のハイコア AMD CPU での起動エラーが修正されました。 (FreeBSD Foundation による後援)

POWER10およびPOWER11の公称サポートが追加されました。

## 仮想化のサポート
NVMM ハイパーバイザーが検出されるようになりました。

www/novnc クライアントを使用する場合に、bhyve(8) の VNC サーバが正しい色を表示するようになりました。

Hyper-V の下で、TLB のフラッシュが IPI ではなくハイパーコールを使用して実行されるようになり、TLB の性能が最大 40% 向上しました。 (Microsoft による後援)

## Linuxバイナリの互換性
AT_NO_AUTOMOUNT フラグがすべての Linuxulator stat() の亜種で無視されるようになり (フラグで指定された動作がすでに FreeBSD のものと一致しているため)、Linux アプリケーションの互換性が向上しました。 (FreeBSD Foundation による後援)

# マルチメディア
mixer(8) のホットスワップのサポート、オーディオスタックへの多くの改良とmididump(1) の追加 (FreeBSD Foundation による後援)

# Portsコレクションとパッケージ基盤
この節では、FreeBSD Ports Collection、パッケージインフラストラクチャ、 パッケージの保守とインストールツールの変更について説明します。

## インストーラー
FreeBSD のインストーラ bsdinstall(8) は、FreeBSD の基本システムのインストールが完了した後にファームウェアパッケージをダウンロードしてインストールすることができるようになりました。 (FreeBSD Foundation による後援)

## パッケージの変更
無線LANドライバーに必要なファームウェアを提供するため、net/wifi-firmware-kmod@releaseパッケージがDVDパッケージセットに追加されました。 (FreeBSD Foundation による後援)

# 将来のFreeBSDリリースに関する一般的な注意事項
FreeBSD 15.0では、armv7以外の32ビットプラットフォームのサポートは予定されていません。armv6、i386、powerpcプラットフォームは非推奨であり、削除される予定です。64ビットシステムでは、古い32ビットバイナリを実行できます。

FreeBSD 15.0およびstable/15では、armv7をTier 2アーキテクチャとしてサポートする予定です。しかし、FreeBSD 16.0ではarmv7は削除されるかもしれません。15.xと16.xの両方におけるarmv7の状況については、15.0のリリース時に改めてお知らせします。

COMPAT_FREEBSD32オプションによる64ビットプラットフォーム上での32ビットバイナリの実行のサポートは、 少なくともstable/15およびstable/16ブランチでは継続されます。cc -m32による個別の32ビットアプリケーションのコンパイルサポートも、少なくともstable/15ブランチでは継続され、適切なヘッダが/usr/includeに、ライブラリが/usr/lib32に含まれます。

FreeBSD 15.0以降のリリースでは、portsは非推奨の32ビットプラットフォームのサポートを含みません。これらの将来のリリースでは、非推奨の32ビットプラットフォーム用のバイナリパッケージやportsからのパッケージのビルドはサポートされません。

FreeBSD stable/14およびそれ以前のブランチでは、32ビットカーネルとworldのサポートは維持されます。portsは、stable/14およびそれ以前のブランチがportsシステムでサポートされている限り、32ビットシステム用のportsやパッケージの構築に関する既存のサポートを維持します。しかし、すべての32ビットプラットフォームはTier-2またはTier-3であり、アップストリームが32ビットプラットフォームを非推奨とするにつれて、個々のportsのサポートは低下していくことが予想されます。

現在のサポートスケジュールでは、stable/14はFreeBSD 14.0-RELEASEのリリースから5年後にEOL(End of Life)を迎えます。stable/14のEOLは、ソースリリース、ビルド済みパッケージ、portsからのアプリケーションのビルドサポートを含む、非推奨の32ビットプラットフォームのサポートの終了を意味します。2023年11月の14.0-RELEASEのリリースにより、非推奨の32ビットプラットフォームのサポートは2028年11月に終了します。

FreeBSD 15.0がリリースされる際には、15.0以降で非推奨とされるプラットフォームの一つ以上のサポートを拡張することで、プロジェクトはこのアプローチを変更する可能性があります。どのような変更も、コミュニティからのフィードバックと、 これらのプラットフォームをサポートするための努力によって進められるでしょう。