Skip to content

Add an app store distribution permission to the license - #10

Closed
frahlg wants to merge 1 commit into
mainfrom
license/app-store-permission
Closed

frahlg wants to merge 1 commit into
mainfrom
license/app-store-permission

Conversation

@frahlg

@frahlg frahlg commented Oct 12, 2026

Copy link
Copy Markdown
Member

Problem

The App Store attaches Apple's terms to every copy it delivers. GNU AGPL §10 forbids further restrictions on recipients, and the FSF counts the App Store terms as such a restriction. VLC was pulled from the App Store in 2011 after one of its copyright holders objected.

Today Sourceful's own code is the whole app (all commits on main are Fredrik's), and a copyright holder is not bound by its own license. So publishing the app is fine as it stands. That stops being true when the first outside contribution arrives under plain AGPL. A permission cannot be added later to code that is already in without every contributor's consent, so it goes in now.

Change

  • LICENSE gains a second §7 additional permission, the app store distribution permission. It sits next to the Energyplan combination permission and has the same form. It allows conveying object code through a service such as the App Store, TestFlight or Google Play, even where that service's terms would otherwise conflict with the AGPL. It covers only restrictions that come from the service's own terms and technical measures.
  • Every other AGPL condition stays:
    • offer source for the exact version, outside the store and free of its terms;
    • make the license and the source offer reachable in the app;
    • add no restrictions of your own;
    • provide installation information. The distributor's own signing keys, profiles and store accounts are not required, as long as recipients can build the app and install it on their own device with standard developer tools.
  • The permission grants nothing for proprietary modules. Third-party code keeps its terms. A fork may extend the permission to its version or remove it.
  • CONTRIBUTING.md says each contribution grants both permissions, so future code is covered.
  • LICENSING.md and README.md state the same in plain words. The old paragraph in LICENSING.md, which said no store exception exists, is replaced.

Modelled on Nextcloud's iOS commitment (COPYING.iOS, nextcloud/ios) and on this repo's existing Energyplan permission. Fredrik asked for this text on 2026-10-12. No lawyer has reviewed it.

Follow-up for the iPhone app (not in this PR)

The Swift app in #8 defines Origin.sourceURL and Origin.licenseURL but shows neither. The license link also points at main, where it should point at the build's commit. Before a build reaches anyone outside the team, through TestFlight or the App Store, the app needs a "Source & licenses" view with the bundled license text and a source link pinned to the build's commit. Android already has one (MainActivity.kt:207-212). This is a condition of the permission.

Evidence

Text-only change. main has no CI workflow that reads these files. The diff touches only LICENSE, LICENSING.md, CONTRIBUTING.md and README.md.

The commit has no DCO sign-off. Fredrik signs off his own work.

🤖 Generated with Claude Code

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 <noreply@anthropic.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 12, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-12T16:12:17.049719Z 52ccaf7 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@frahlg

frahlg commented Oct 12, 2026

Copy link
Copy Markdown
Member Author

Included in #14, which lands the whole iPhone M1 app as one PR. The branch stays.

@frahlg frahlg closed this Oct 12, 2026
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.

1 participant