Skip to content

chore: relicense from AGPL-3.0 to Apache-2.0#443

Merged
dj4oC merged 1 commit into
mainfrom
chore/relicense-to-apache
Jun 15, 2026
Merged

chore: relicense from AGPL-3.0 to Apache-2.0#443
dj4oC merged 1 commit into
mainfrom
chore/relicense-to-apache

Conversation

@LukasHirt

@LukasHirt LukasHirt commented Jun 9, 2026

Copy link
Copy Markdown
Collaborator

Summary

Part of the OSPO-driven migration of ownCloud repositories toward Apache-2.0, following the Apache Software Foundation's third-party license policy (AGPL-3.0 is Category X).

  • Replace LICENSE with Apache-2.0 full text
  • Update "license" field in all package.json files
  • Add REUSE.toml + LICENSES/ for REUSE 3.x compliance
  • Add NOTICE with third-party attributions
  • Add license-check (reuse lint) and dependency-license-check CI jobs
  • Update OCI image label, README badge, and docs

License compliance (REUSE)

Why REUSE?

REUSE is a specification from the FSFE that defines a machine-readable, SPDX-based way to declare copyright and license information for every file in a repository. No more "check the root LICENSE file and hope for the best." It is the standard used by Apache, Eclipse, and the Linux kernel ecosystem for tooling-verifiable compliance. Adding it here means:

  • Any downstream consumer or scanner (Black Duck, FOSSA, Dependency Track, etc.) can deterministically identify the license of every file without heuristics.
  • The new license-check CI job runs reuse lint on every PR, so compliance regressions are caught before merge rather than discovered in an audit.

Why REUSE.toml?

REUSE.toml is the REUSE 3.x bulk-annotation file. Rather than embedding an SPDX-License-Identifier header in every source file, the .toml declares licensing by path glob — cleaner for a repo that was not REUSE-aware from the start. It covers two cases:

  • The entire tree (**) → Apache-2.0, copyright ownCloud GmbH.
  • packages/web-app-progress-bars/src/NyanCat.vue → Apache-2.0 AND MIT, because that component derives from the MIT-licensed cristurm/nyan-cat project.

Why the LICENSES/ directory?

The REUSE spec (and SPDX) require that the full license text for every SPDX identifier referenced in the project lives in LICENSES/.txt. This serves two purposes:

  1. Offline / air-gapped consumers always have the authoritative license text alongside the source.
  2. reuse lint verifies that no identifier is referenced without a corresponding text file, preventing stale or mismatched license declarations.

Two files are therefore required:

  • LICENSES/Apache-2.0.txt — the primary project license.
  • LICENSES/MIT.txt — required because NyanCat.vue carries a dual Apache-2.0 AND MIT identifier; without it, reuse lint would fail.

@LukasHirt LukasHirt self-assigned this Jun 9, 2026
@kw-security

kw-security commented Jun 9, 2026

Copy link
Copy Markdown

Snyk checks have passed. No issues have been found so far.

Status Scan Engine Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues
Licenses 0 0 0 0 0 issues
Code Security 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@dj4oC dj4oC self-requested a review June 9, 2026 08:50
@LukasHirt LukasHirt force-pushed the chore/relicense-to-apache branch from a5bebbf to a3882ca Compare June 10, 2026 06:20
@dj4oC

dj4oC commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

LGTM. Before we continue, we need to do two steps:

  1. create a final release
  2. archive the branch released branch
  3. merge

@dj4oC

dj4oC commented Jun 13, 2026

Copy link
Copy Markdown
Contributor

LGTM. Before we continue, we need to do two steps:

  1. create a final release
  2. archive the branch released branch
  3. merge

Ping me when these steps are conducted and we can merge.

Part of the OSPO-driven migration of ownCloud repositories toward
Apache-2.0, following the Apache Software Foundation's third-party
license policy (AGPL-3.0 is Category X).

- Replace LICENSE with Apache-2.0 full text
- Update "license" field in all package.json files
- Add REUSE.toml + LICENSES/ for REUSE 3.x compliance
- Add NOTICE with third-party attributions
- Add license-check (reuse lint) and dependency-license-check CI jobs
- Update OCI image label, README badge, and docs

Signed-off-by: Lukas Hirt <info@hirt.cz>
@LukasHirt LukasHirt force-pushed the chore/relicense-to-apache branch from a3882ca to 5329aa0 Compare June 15, 2026 13:06
@LukasHirt

Copy link
Copy Markdown
Collaborator Author

@dj4oC the latest commit has been released and is also archived in the following branch https://github.com/owncloud/web-extensions/tree/archived/last-agpl-3-commit

@dj4oC dj4oC marked this pull request as ready for review June 15, 2026 20:47
@dj4oC dj4oC merged commit 3dff60b into main Jun 15, 2026
18 checks passed
@dj4oC dj4oC deleted the chore/relicense-to-apache branch June 15, 2026 20:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants