Summary
The Nextcloud appstore rejects apps with <licence>EUPL-1.2</licence> in their info.xml, returning HTTP 400 on the release upload API (POST /api/v1/apps/releases).
EUPL-1.2 (European Union Public License) is a widely used open-source license, especially in European government and public sector projects. It is an OSI-approved and SPDX-listed license.
Current behaviour
The appstore schema (info.xsd) only accepts these licence identifiers:
- SPDX:
AGPL-3.0-only, AGPL-3.0-or-later, Apache-2.0, GPL-3.0-only, GPL-3.0-or-later, MIT, MPL-2.0
- Deprecated aliases:
agpl, mit, mpl, apache, gpl3
Any other SPDX identifier (including EUPL-1.2) causes the release API to return 400.
Expected behaviour
EUPL-1.2 should be accepted as a valid licence identifier, since it is:
- A valid SPDX identifier
- OSI-approved
- Compatible with AGPL-3.0 (EUPL 1.2 Appendix lists AGPLv3 as a compatible licence)
- Increasingly required for EU public sector software projects
Steps to reproduce
- Set
<licence>EUPL-1.2</licence> in an app's appinfo/info.xml
- Push a release using
nextcloud-releases/nextcloud-appstore-push-action
- The upload step fails with
curl: (22) The requested URL returned error: 400
Workaround
Use <licence>agpl</licence> in info.xml while keeping the actual LICENSE file as EUPL-1.2. This works but misrepresents the licence in the appstore.
Summary
The Nextcloud appstore rejects apps with
<licence>EUPL-1.2</licence>in theirinfo.xml, returning HTTP 400 on the release upload API (POST /api/v1/apps/releases).EUPL-1.2 (European Union Public License) is a widely used open-source license, especially in European government and public sector projects. It is an OSI-approved and SPDX-listed license.
Current behaviour
The appstore schema (
info.xsd) only accepts these licence identifiers:AGPL-3.0-only,AGPL-3.0-or-later,Apache-2.0,GPL-3.0-only,GPL-3.0-or-later,MIT,MPL-2.0agpl,mit,mpl,apache,gpl3Any other SPDX identifier (including
EUPL-1.2) causes the release API to return 400.Expected behaviour
EUPL-1.2should be accepted as a valid licence identifier, since it is:Steps to reproduce
<licence>EUPL-1.2</licence>in an app'sappinfo/info.xmlnextcloud-releases/nextcloud-appstore-push-actioncurl: (22) The requested URL returned error: 400Workaround
Use
<licence>agpl</licence>ininfo.xmlwhile keeping the actual LICENSE file as EUPL-1.2. This works but misrepresents the licence in the appstore.