Skip to content

License: switch fleet info.xml from agpl workaround to EUPL-1.2 once NC 34 is the floor #98

Description

@rubenvdlinde

Background

All Conduction Nextcloud apps are licensed EUPL-1.2 (canonical, see project_conduction-apps-eupl-license). For years the Nextcloud appstore rejected <licence>EUPL-1.2</licence> in info.xml because it wasn't on the SPDX allow-list — so the fleet uses <licence>agpl</licence> as a workaround (EUPL-1.2 is AGPL-3.0 compatible per its compatibility appendix, so this is legally honest, just lexically wrong).

Ruben raised this upstream a while back. It's now fixed, but ship-timing means the workaround stays for a bit.

Upstream status

Item State Notes
nextcloud/appstore#1710 — "Add EUPL-1.2 to accepted licence identifiers" CLOSED / COMPLETED (2026-05-07) Original tracking issue
nextcloud/appstore#1754 — "Add further compatible app licenses" MERGED (2026-05-07) Appstore-side: deployed to apps.nextcloud.com
nextcloud/server#60212 — "feat(app-licenses): Add further compatible licenses for apps to use" MERGED (2026-05-11) into master Server-side validation; ships in Nextcloud 34

Implication for our fleet

  • Right now: the appstore-side accepts EUPL-1.2 uploads, but apps installed on Nextcloud 33 or older would see info.xml validation errors locally (server still on the old allow-list). Keep agpl until our info.xml <nextcloud min-version="34">.
  • When the fleet min-version reaches 34: flip every app's <licence>agpl</licence><licence>EUPL-1.2</licence>. This will also fix the casing-drift the fleet currently has (agpl / eupl / EUPL-1.2 / AGPL-3.0-or-later — 4 spellings across 22 apps; see nextcloud-app-template/docs/fleet-drift-deeper.md).

Current fleet min-versions (NC)

From the fleet-drift-deeper.md audit:

  • min-28 (most of the fleet)
  • min-29 (mydash)
  • min-30 (docudesk, openklant, opentalk, openzaak, valtimo)
  • min-31 (app-versions)
  • min-33 (scholiq)

So we're still far from min-34 fleet-wide. This issue is not actionable today; it's a tracker for when the floor rises.

Action items

  1. Track NC release adoption. Once the fleet's info.xml min-version is universally 34+, this issue becomes actionable.
  2. When ready: include the <licence> flip in the info.xml canonicalization sweep planned in fleet-drift-deeper.md Tier A item 1. The hydra fleet-sync tool can carry the change.

Until then

Keep using <licence>agpl</licence> in appinfo/info.xml and document the workaround in each app's README.md (already standard per the project-memory entry). Don't flag the AGPL/EUPL discrepancy as a bug — it's the deliberate workaround.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions