バックポート (英: backporting)とは、ソフトウェアシステムやソフトウェアコンポーネントの新しいバージョンからパーツを取得し、それらを同じソフトウェアの古いバージョンに移植するアクションのこと。これは、ソフトウェア開発プロセスのメンテナンス段階の一部であり、一般的には、ソフトウェアの古いバージョンのセキュリティ問題を修正するため、および古いバージョンに新しい機能を提供するために使用される。
バックポートの最も単純で最も一般的な例は、ソフトウェアの新しいバージョンでセキュリティホールが修正された状況である。この単純な例を考えてみる。
ソフトウェアv2.0を修正する変更を加え、ソフトウェアv1.0にも適用できるように変更することで、修正を効果的にバックポートした[1]。
実際の状況では、ソフトウェアの1つの側面で行われた変更は、単純なもの(数行のコードのみが変更されたもの)から重くて大規模なもの(多くの変更がコードの複数のファイルにまたがる)まである。大規模である場合、バックポートは面倒で非効率になりがちで、古いバージョンのソフトウェアが本当に必要な場合にのみ実行する必要がある(たとえば、新しいバージョンがまだミッション・クリティカルでの使用を妨げる堅牢性の問題を抱えている場合)[2]。
バックポートのプロセスは、大きく次のステップに分けることができる[1]。
通常、このような複数の変更はパッチセットにバンドルされている。
バックポートは、ソフトウェアの中核開発者グループによって提供される。バックポートを行うにはソフトウェアのソースコードにアクセスする必要があり、クローズドソースソフトウェアのバックポートを行うには唯一の方法となる。バックポートは通常、ソフトウェアの古いバージョンラインに沿ったバイナリアップグレードに組み込まれる。オープンソースソフトウェアでは、バックポートがソフトウェアディストリビューターによって作成され、後でアップストリームに送信されることがある(つまり、問題のあるソフトウェアの中核開発者に送信される)[2]。
Windows XP用にService Pack 3がリリースされたときにWindows Vistaの多くの機能がWindows XPにバックポートされたため、元々Vistaが最小要件となっていたアプリケーション(主にゲーム)はXP SP3が最小要件となった[3]。 2010年9月以降のDebianプロジェクト[4]は、一部のDebian Linuxソフトウェアパッケージの公式バックポートサービスを提供し、 Ubuntu Linuxもバックポートをサポートする[5]。ただし、UbuntuバックポートはCanonicalからまったくサポートを受けておらず、完全にコミュニティで管理されている。