From 52ccaf7c39abe32a9016902b549df876271efdf6 Mon Sep 17 00:00:00 2001 From: Fredrik Ahlgren Date: Mon, 12 Oct 2026 18:10:23 +0200 Subject: [PATCH] Add an app store distribution permission to the license App stores attach their own terms to every copy, and the GNU AGPL forbids further restrictions on recipients. Sourceful owns all code here today, so it may publish through the App Store as it is. That stops being true once someone else's code comes in under plain AGPL. LICENSE gains a second section 7 permission, next to the Energyplan one. It allows conveying the app through a store such as the App Store, TestFlight or Google Play despite the store's terms. Every other AGPL condition stays: source for the exact version outside the store, license and source offer reachable in the app, no added restrictions, and installation information except the distributor's own signing keys. CONTRIBUTING now says each contribution grants both permissions, so the permission covers future code as well. LICENSING.md and the README say the same in plain words. Co-Authored-By: Claude Opus 5.5 --- CONTRIBUTING.md | 6 ++++-- LICENSE | 42 +++++++++++++++++++++++++++++++++++++++++- LICENSING.md | 23 ++++++++++++++++------- README.md | 5 +++-- 4 files changed, 64 insertions(+), 12 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 69ceeda..2b1673b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -23,8 +23,10 @@ remain unchanged. See [FTW's contribution guide](https://github.com/srcfl/ftw/bl ## License of contributions -Contributions to this version use GNU AGPL v3 only with the Energyplan -combination permission in [LICENSE](LICENSE), including that permission. +Contributions to this version use GNU AGPL v3 only with both additional +permissions in [LICENSE](LICENSE): the Energyplan combination permission and +the app store distribution permission. By contributing, you grant both +permissions for your contribution. Preserve third-party licenses and notices. Sign each commit with the DCO as described in [FTW's contribution guide](https://github.com/srcfl/ftw/blob/master/CONTRIBUTING.md). A sign-off does not assign copyright or grant commercial relicensing rights. diff --git a/LICENSE b/LICENSE index 9f6b17d..b812ef6 100644 --- a/LICENSE +++ b/LICENSE @@ -2,7 +2,8 @@ FTW native app Copyright 2026 Sourceful Labs AB and contributors. This version of the project, as a whole, is licensed under the GNU Affero -General Public License, version 3 only, with the additional permission below. +General Public License, version 3 only, with the two additional permissions +below. Separately identified third-party material and Energyplan binaries retain their own licenses. NOTICE preserves earlier licenses and attributions. See LICENSING.md for scope, source access and distribution instructions. @@ -266,3 +267,42 @@ You may omit Energyplan and use or convey FTW under the GNU AGPL alone. No household-only or noncommercial condition applies to the AGPL-covered code. As section 7 permits, you may remove this additional permission from your copy. If you do so, the GNU AGPL applies without this permission. + +------------------------------------------------------------------------ +FTW app store distribution permission + +Additional permission under GNU AGPL version 3 section 7. + +App distribution services, such as the Apple App Store, TestFlight and +Google Play, attach their own terms to every copy they deliver. Those terms +may limit how a recipient can use, copy or install that copy, and the service +may add technical measures such as encryption or signing. The GNU AGPL +forbids further restrictions on recipients (section 10), so such terms can +conflict with it. + +For the FTW code covered by this grant, the copyright holders permit you to +convey this program, or a work based on it, in object code form through such +a service, and to accept that service's terms, even where those terms would +otherwise conflict with the GNU AGPL. This permission covers only the +restrictions that come from the service's own terms and technical measures. + +All other conditions of the GNU AGPL remain in force. In particular: + +- Offer the Corresponding Source of the exact version you convey, under the + GNU AGPL and at no charge, outside the service and free of its terms. +- Make the license text and that source offer reachable from within the + program. +- Add no restrictions of your own beyond those the service imposes. +- Provide the Installation Information that section 6 requires. You need not + provide your own signing keys, provisioning profiles or service account + credentials, as long as recipients can build the Corresponding Source and + install it on their own device with the platform's standard developer + tools. + +This permission grants no exception for proprietary modules, plugins or +derivatives of FTW. Third-party code retains its own terms; this grant does +not override them. + +If you modify this program, you may extend this permission to your version. +As section 7 permits, you may also remove it from your copy. If you do so, +the GNU AGPL applies without this permission. diff --git a/LICENSING.md b/LICENSING.md index 21756d0..59f3fa1 100644 --- a/LICENSING.md +++ b/LICENSING.md @@ -1,7 +1,8 @@ # FTW native app licensing -This version uses GNU AGPL v3 only, with the narrow Energyplan combination -permission in [LICENSE](LICENSE). [NOTICE](NOTICE) preserves prior Apache +This version uses GNU AGPL v3 only, with two narrow additional permissions in +[LICENSE](LICENSE): the Energyplan combination permission and the app store +distribution permission. [NOTICE](NOTICE) preserves prior Apache rights and attribution. Third-party files retain their own licenses. ## Use and redistribution @@ -61,8 +62,16 @@ build without a revision uses development repository links. An extracted source archive builds without Git; pass its published revision to retain the exact links. Forks must change these links to their own corresponding source. -A store's distribution terms must allow recipients the AGPL rights. This -license change does not establish compatibility with any app store agreement -or grant an exception to store restrictions. Resolve conflicting terms before -distributing through that store, using separate rights only where the rights -holders can grant them. +App stores attach their own terms to each copy. The app store distribution +permission in LICENSE lets you convey FTW through a store such as the App +Store, TestFlight or Google Play despite those terms. Offer the exact +version's Corresponding Source outside the store, make the license and the +source offer reachable in the app, and add no restrictions of your own. +Recipients must be able to build that source and install it on their own +device with the platform's standard developer tools; your signing keys and +store accounts stay yours. + +The permission covers code whose rights holders granted it. Every +contribution to this repository comes with it, as CONTRIBUTING.md says. +Third-party code keeps its own terms, so check that each dependency allows +store distribution before you add it. diff --git a/README.md b/README.md index 5ae3564..7ea34ee 100644 --- a/README.md +++ b/README.md @@ -148,6 +148,7 @@ wrapping copy so Now paints without a passkey prompt. ## Licence -AGPL-3.0-only with the Energyplan combination permission. See -[LICENSE](LICENSE), [LICENSING.md](LICENSING.md) and [NOTICE](NOTICE). +AGPL-3.0-only with the Energyplan combination permission and an app store +distribution permission. See [LICENSE](LICENSE), [LICENSING.md](LICENSING.md) +and [NOTICE](NOTICE). Earlier Apache-licensed versions retain their earlier grants.