|
開発者は、オープンソースソフトウェアをコードベースに統合することで、時間を節約し、車輪の再発明を回避できます。しかし、これはライセンス侵害の深刻なリスクも伴います。再利用するオープンソースコードには、適用される多くのオープンソースライセンスのいずれかに準拠する必要があります。準拠しない場合、あなた(またはあなたの会社)はオープンソースライセンスの条項違反で訴えられる可能性があります。このような訴訟は一般的ではありませんが、実際に存在します。 1. オープンソースライセンスに精通しているオープンソースライセンスを理解することは、オープンソースライセンスの侵害を防ぐ上で最も重要なステップです。すべてのオープンソースライセンスが同じ条件を課している、あるいは基本的にソースコードの継続的な利用可能性を要求していると思い込みがちです。しかし実際には、数十種類もの異なるオープンソースライセンスが存在し、それぞれ条件が大きく異なります。オープンソースプロジェクトからコードを入手したら、それを自由に使用し、ソースコードへのアクセスを維持できると単純に思い込むのは大きな間違いです。多くのオープンソースライセンスに共通する典型的な条件でありながら、見落とされがちなのが、元の作者への謝辞です。 2. 使用するオープンソース コンテンツを記録します。オープンソースコードの使用状況を文書化するための標準的な方法を確立することは、非常に効果的です。GitHubからモジュールをインポートしたり、コードを貼り付けたりすることは難しくありません。しかし、コードの入手元とライセンスを追跡しておかないと、オープンソースコンテンツをコードベースにどのように、どこに統合したかを忘れてしまう可能性があります。さらに、コードを借用する際に有効なライセンスに準拠していることを証明できない場合、オープンソースライセンスが変更されたときに問題が発生する可能性があります。この問題を回避するために、ドキュメントWiki(存在する場合)に、使用しているオープンソースコードをリストするページを追加することを検討してください。オープンソースのコンポーネントや依存関係を含める場合は、少なくとも自分のソースコードにコメントを追加してください。 3. 許可されていないオープンソース コンポーネントの使用を避けます。GitHubの隠れたリポジトリやその他のソースコードホスティングサイトに、使いたいコードが含まれているのにライセンスガイドラインについて何も言及されていない、というケースが時々あります。コードの作成者はオープンソースとして公開することを意図しており、自由に使用できると推測するかもしれません。しかし、これは危険な推測です。開発者が後からコードに特定のライセンス条件を課し、それに従うよう要求する可能性があり、将来的にライセンス侵害の申し立てにつながる可能性があります。よほどの理由がない限り、明確なライセンス制限のない曖昧なコードの使用は避けてください。 4. 独自のオープンソースコードを作成する独自のソフトウェアを完全にオープンソース化することは、オープンソースライセンスに伴うリスクを軽減する方法の一つです。これは、派生ソースコードの保持を要求するオープンソースライセンスの条件に自動的に準拠することを意味します。ただし、独自のコードをオープンソース化するだけでは、ライセンスへの完全な準拠が保証されるわけではないことに注意してください。借用するコードに適用されるライセンスは、選択したオープンソースライセンスと異なる場合があるため、各ライセンスの条項を遵守するための作業は依然として必要です。ただし、ソースコードの共有に関する条件については心配する必要はありません。 5. オープンソースコンポーネントを自動検出するコードベース内でオープンソースをどのように使用しているかを手動で追跡することは良い習慣ですが、オープンソースのコンポーネントと依存関係を自動的に識別できるソフトウェアを使用することで、エラーの可能性を減らすことができます。ここでは、2種類のツールを検討する必要があります。1つはソースコード構成解析(SCA)ソフトウェアで、ソースコードを自動的にスキャンし、信頼できる外部ソースから取得した要素を識別します。もう1つはソフトウェアサプライチェーン管理ソリューションで、アプリケーションスタック内のオープンソース依存関係の検出と監視などの機能を備えています。 |