この記事の要点
- Swift プロジェクトが公式にサポートする Linux ディストリビューションが追加されました。Ubuntu 20.04、CentOS 8、Amazon Linux 2 向けのツールチェインと Docker イメージが Swift.org からダウンロードできるようになりました。
- これらは既存の Ubuntu 16.04 / 18.04 に加わるもので、特に CentOS と Amazon Linux のような Fedora 系ディストリビューションへの対応が新たに実現しています。
- ダウンロード用イメージは Docker でビルド・検証されるようになり、Dockerfile はコミュニティと共に育てていくために Swift の Docker リポジトリで公開管理されています。今後は CentOS 7、Debian、Fedora の追加が見込まれていました。
何が発表されたのか
Swift プロジェクトが公式にサポートする Linux ディストリビューションの拡充が発表されました。Swift.org から、次の新しいディストリビューション向けにダウンロード可能なツールチェインと Docker イメージが提供されます。
- Ubuntu 20.04
- CentOS 8
- Amazon Linux 2
これらは、それまでサポートされていた Ubuntu 16.04 / 18.04 に加わるものです。
何に使えるのか
この拡充により、Ubuntu 系だけでなく Fedora 系のディストリビューションでも、公式にサポートされた Swift ツールチェインを使えるようになりました。CentOS や Amazon Linux 2 を本番環境やコンテナ基盤に採用しているプロジェクトでも、追加のパッチを当てずに Swift を導入しやすくなります。
Fedora 系への対応にあたっては、Swift プロジェクトの各コンポーネントに次のような調整が加えられました。
- swift-corelibs-foundation の FoundationNetworking が、改変していない古い Fedora 系システムでもビルドできるよう、必要な
libcurlの最小バージョンを変更。 - SwiftPM に Fedora 系システムを認識させる対応。
- Swift のプラットフォームサポートのビルド方法とドキュメントを整理し、その結果として Linux での
libatomicへの依存を解消。
導入・今後の位置づけ
ダウンロード用のイメージは、Swift CI が Docker を使ってビルド・検証するようになりました。サポート対象の各ディストリビューションごとに Dockerfile が用意され、ビルド・テスト・署名済みツールチェインの生成を行う CI ジョブが構成されています。これらの Dockerfile はSwift の Docker リポジトリで公開管理され、コミュニティと共に発展させていくことが目指されています。
新しいディストリビューションは、PR テストの一部として自動では実行されません。PR は引き続き Ubuntu 16.04 で自動テストされますが、次のコマンドで明示的に追加ディストリビューションのテストを呼び出せます。
@swift-ci Please test Ubuntu 20.04
@swift-ci Please test CentOS 8
@swift-ci Please test Amazon Linux 2
発表時点では、サポートする Linux ディストリビューションを今後さらに増やしていく計画が示され、次の候補として CentOS 7、Debian、Fedora が挙げられていました。Linux 上での Swift のビルドに関心があれば、ソースが公開されている Docker リポジトリへのコントリビューションが歓迎されています。