FOSSology: Open Source License Compliance
A recent presentation introduced FOSSology, a key tool for managing open source license compliance. The session covered its core functions, workflow, license identification, copyright handling, and reporting capabilities.
What is FOSSology?
FOSSology is a powerful, open-source (GPL-2.0 licensed) framework for managing open source compliance. It helps with:
- License Management: Creating, modifying, and assigning risk levels and compatibility rules to licenses.
- Obligation Management: Defining and linking obligations to licenses.
- Acknowledgment Storage: Storing necessary acknowledgments.
While powerful, efficient use often requires training. Installation on Linux from source is straightforward. A key takeaway is that full license analysis cannot be entirely automated today.
FOSSology uses various agents for license identification (Nomos, Monk, Ojo, Scancode) and copyright processing (FOSSology agent, Scancode). It also includes agents for keyword search, IP, and ECC.
Overall Workflow
The typical FOSSology workflow involves:
- Creating a folder (if needed).
- Uploading the component (reusing phrases is possible).
- Running license analysis.
- Processing copyrights.
- Performing ECC checks.
- Editing and configuring settings.
- Downloading and reviewing reports.
Candidates and obligations can be added during license analysis. When uploading, users can ignore pre-configured folders (e.g., “tests,” “.github,” “examples”) to streamline the analysis. Options exist for automatic license conclusions, reusing data from past packages, and deactivating copyrights.
License Identification
Identifying the correct license is critical. FOSSology offers:
- Multiple Scanners: Nomos, Monk, Ojo, Scancode.
- Text Highlighting: For quickly spotting changes in license text.
- Matched License Overview: Provides immediate insights without a full package analysis.
Differences between scanner findings and final conclusions are common. The tool supports manual file-by-file inspection, bulk identification via reports, and folder-level license assignment. It also handles individual license texts, acknowledgments, and comments.
For unknown licenses, manual searching might be needed. FOSSology allows adding comments to document the steps taken for a license conclusion, providing an audit trail in reports and SPDX tags. It supports Unicode in license texts.
License Compatibility: FOSSology allows defining custom compatibility rules or importing existing sets (e.g., from OSADL).
Copyright Statements
FOSSology extracts copyright statements using regular expressions. These often require post-processing to remove clutter, with two views available: file view and folder/upload view.
Reporting
FOSSology offers extensive reporting features at both component and folder levels.
Component Level Reports: DEPS files, ReadMe_OSS, SPDX V2/V3, CycloneDX, Unified Report, License List, Copyright List.
Folder Level Reports: ReadMe_OSS, SPDX V2/V3, CycloneDX.
A notable feature is “enable OSSElot export,” which generates valid SPDX files and well-formatted ReadMe_OSS, addressing the issue where SPDX specifications do not include full license texts in valid SPDX files, thus avoiding compliance pitfalls.
SPDX files generated by FOSSology adhere to SPDX-2.3, including checksums, license conclusions, comments, copyright info, and scanner findings.
OSSelot and FOSSology: Streamlining Open Source Compliance
A recent presentation highlighted OSSelot, an Open Source Curation Database, and its integration with FOSSology to simplify open source license compliance. The core message was that while some manual review remains essential, reusing curated licensing and copyright information can drastically cut the time needed to clear software packages.
What is OSSelot?
OSSelot is a public database offering curated compliance data for commonly used FOSS components and associated tools. It stores:
- License and Copyright Analysis: Results from thorough analysis.
- Metadata: Information like download location, package creators, reviews, and comments (often in
README or info.json).
- Standard Reports: SPDX (Tag:Value, JSON, YAML, RDF) reports with concluded licenses and copyright notices.
- Disclosure Documents: Aggregated license texts, copyright notices, and acknowledgments per package.
How to use OSSelot Data with FOSSology
OSSelot data significantly streamlines compliance by allowing users to leverage pre-analyzed information. This can be done in two main ways:
1. Manual Workflow (via GUI):
- Find closest version: Locate the nearest version of the package in OSSelot.
- Upload and Reuse: Upload its source code to FOSSology without scanning, but use the “Reuse” function, referencing the OSSelot package. This automatically clears the package.
- Upload required version: Upload the actual required version of the package. Run scanners, and then reuse the results from the previously cleared OSSelot package.
- Manual clear: Manually clear any remaining (new or modified) files.
2. Automated Workflow (via FOSSology REST API):
This method offers greater automation, especially for large-scale operations.
- Discover OSSelot versions: Use the REST API to find available OSSelot package versions.
- Upload OSSelot source: Upload the source code of the relevant OSSelot package into FOSSology (e.g., using a
curl command with the package URL). Crucially, this is done without scanning.
- Trigger OSSelot Import: This step automatically clears the entire package within FOSSology based on the OSSelot data.
- Upload required source: Upload the source code of the actual version you need to clear. Run scanners and reuse the data from the now-cleared OSSelot package.
- Manual clear: Handle only the remaining (new or modified) files manually.
Key Benefits
The integration of OSSelot with FOSSology allows for:
- Significant Time Savings: Reusing curated data drastically reduces the manual effort required for clearing packages.
- Increased Accuracy: Leveraging expert-curated data improves the reliability of compliance conclusions.
- Scalability: The API-driven approach enables automation for managing compliance across many components.
This synergy between OSSelot’s curated data and FOSSology’s powerful analysis capabilities presents a highly efficient solution for modern open source license compliance challenges.