OpenSSL 3.0への移行計画
「Ubuntu 22.04 LTS」で「OpenSSL 3.0」への移行が検討されています。この移行にあたり以下で移行計画が議論されています。
OpenSSL 3.0
2021年9月7日、「OpenSSL 3.0」がリリースされました。「OpenSSL 3.0」の開発に3年の月日が費やされ、17回のαリリースそして2回のβリリースを経て、ついに「OpenSSL 3.0」がリリースされました。
OpenSSL 1.1.1と完全な下位互換はない
「OpenSSL 3.0」はメジャーバージョンアップであり、従来の「OpenSSL 1.1.1」と完全な下位互換はありません。とは言え「OpenSSL 1.1.1」を利用している多くのソフトウェアは「OpenSSL 3.0」に移行しても再コンパイルするだけで動作するでしょう。
しかしソフトウェアによってはソースコードの修正が必要になるケースもあります。
非推奨のAPI
今後廃止される予定のAPIが非推奨のAPIになっているため、再コンパイルするだけで動作するといっても非推奨のAPIを利用している場合、コンパイル時に大量の警告が出力されます。言い換えれば非推奨のAPIを残しているため、既存のソフトウェアでも再コンパイルするだけで動作するとも言えるでしょう。
非推奨のAPIは将来削除されるAPIです。
非推奨のAPIを利用しているソフトウェアは、将来的に推奨されるAPIへの移行が必要になります。
ライセンスの変更
以前の「OpenSSL」では「OpenSSLライセンス」と「SSLeayライセンス」の2種類のライセンスが適用されています。「OpenSSL 3.0」から「Apache License Version 2.0」に変更されました。
OpenSSL 3.0移行ガイド
「OpenSSL 1.1.1」から「OpenSSL 3.0」へ移行するためのガイドが以下で公開されています。「OpenSSL 3.0」ではソフトウェアの開発者に影響を与える新しい仕組みが導入されています。
その仕組みの概念は、以下を参照してください。
Ubuntuでは
上記でも紹介したように「Ubuntu 22.04 LTS」で「OpenSSL 3.0」への移行が検討されています。「OpenSSL 1.1.1」を廃し「OpenSSL 3.0」へ移行する場合、既存の「OpenSSL 1.1.1」を利用しているソフトウェアが「OpenSSL 3.0」で動作するように確認及び対応しなければなりません。
ビルドが通らないパッケージ
現在「OpenSSL 3.0」でビルドが通らないパッケージ(ソフトウェア)のうち「main」に配置されているパッケージが35個、「universe」に配置されているパッケージが約180個存在します。理想はOpenSSL 3.0への完全移行だが
理想としてはこれらのパッケージを「Ubuntu 22.04 LTS」のリリースまでに修正し、「OpenSSL 1.1.1」を廃して「OpenSSL 3.0」へ移行することです。「main」に配置されているパッケージは「Canonical」によるサポート対象となるため、「main」に配置されているパッケージの対応がリリースまでに間に合わない場合、そもそも「OpenSSL 3.0」への移行は行えません。
問題は「universe」に配置されているパッケージです。
「universe」に配置されているパッケージはコミュニティーによる任意サポートになるためもしリリースまでに対応が間に合わない場合、対応が間に合わなかったパッケージを削除するか、もしくはどうしても必要なら互換性のために引き続き「OpenSSL 1.1.1(openssl-1.1)」パッケージを提供するか、あるいは別の手段を取るか何かしらの対応が必要になります。