docs: clarify dual licensing requirements and App Store restrictions

Make it explicit why dual licensing is NECESSARY (not optional):
- App Store and Google Play terms are incompatible with GPL-3.0
- FSF considers App Store distribution a GPL violation
- Mobile builds must exclude GPL code for platform compliance

Also clarify:
- Only copyright holder (KaProblem) can distribute proprietary mobile apps
- Third parties cannot distribute GPL apps on app stores (platform restrictions)
- Third parties cannot create proprietary versions from this code
- Contributors grant dual licensing rights for App Store compliance

Updates:
- Add 'Why Dual Licensing?' section explaining App Store restrictions
- Update copyright holder to KaProblem (https://www.kaproblem.com)
- Add App Store compliance context throughout documentation
- Clarify that this protects copyright holder's exclusive distribution rights

This prevents:
- Third parties from releasing proprietary mobile apps
- Confusion about why dual licensing exists
- GPL violations on app stores

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Stefan
2025-12-07 18:49:41 +01:00
parent d062fd738b
commit 1e78d8114e
3 changed files with 197 additions and 20 deletions
+82 -18
View File
@@ -1,8 +1,19 @@
# Licensing Strategy
## Copyright Notice
Copyright (c) 2024 Stefan (stefan-kp)
All rights reserved. See license terms below.
## Overview
This project uses a **dual licensing approach** based on how the software is built and distributed:
This project uses a **dual licensing approach** where the copyright holder retains all rights to distribute under multiple licenses:
- **Source code repository**: GPL-3.0 (open source)
- **Mobile app distributions**: Proprietary (copyright holder only)
**Important:** Only the copyright holder (Stefan/stefan-kp) has the right to distribute this software under a proprietary license. All other parties must comply with GPL-3.0 terms.
### GPL-3.0 License (Web Version)
@@ -17,18 +28,45 @@ Users can:
- Bring their own API keys (Gemini)
- Run locally with client-side Stockfish
### Proprietary License (Mobile Version)
### Proprietary License (Mobile Version - Copyright Holder Only)
The **mobile version** (iOS/Android) does NOT bundle Stockfish.js. Instead, it uses:
The **copyright holder of the mobile app code using Capacitor** (KaProblem/https://www.kaproblem.com/Github stefan-kp) may distribute mobile versions (iOS/Android) under a proprietary license because these builds do NOT bundle Stockfish.js. Instead, they use:
- `RemoteEngine` - Makes API calls to a hosted server for chess analysis
- No GPL code is included in the mobile build
- Static export with API-only architecture
Therefore, the mobile app can be distributed under a **proprietary license**:
The copyright holder may distribute mobile apps under a **proprietary license**:
- Sold on App Store / Google Play
- Uses hosted API service
- No GPL restrictions apply
- No GPL restrictions apply to copyright holder's builds
**Third parties CANNOT do this.** If you fork this project, you MUST distribute all versions (including mobile) under GPL-3.0 or obtain explicit permission from the copyright holder.
## Why This Dual Licensing Approach?
### App Store Restrictions on GPL Software
Apple's App Store and Google Play Store have terms that are **incompatible with GPL-3.0**:
**App Store Issues:**
- GPL requires users to have the right to modify and redistribute software
- App Store's DRM and closed distribution model restricts this
- Apple's developer agreements conflict with GPL's freedom requirements
- FSF (Free Software Foundation) considers App Store distribution a GPL violation
**Google Play Issues:**
- Similar restrictions on modification and redistribution
- Signed APKs with locked keys conflict with GPL freedoms
- Platform terms impose additional restrictions beyond GPL
**Therefore:**
- We CANNOT distribute GPL-licensed apps on App Store/Google Play
- Mobile builds MUST use a proprietary license
- We achieve this by NOT including GPL code (Stockfish.js) in mobile builds
- Mobile apps use `RemoteEngine` (API calls) instead of `LocalEngine` (GPL)
This is why the dual licensing approach is **necessary**, not just optional.
## How This Works
@@ -68,21 +106,30 @@ class RemoteEngine implements ChessEngine {
## Legal Compliance
### GPL Compliance (Web)
### GPL Compliance (Web & Third Party Distributions)
The web version complies with GPL-3.0:
- ✅ Source code is available
- ✅ GPL license is included
-Users can modify and redistribute
-Users bring their own API keys (no lock-in)
All distributions of this software (by anyone other than the copyright holder) must comply with GPL-3.0:
- ✅ Source code must be available
- ✅ GPL license must be included
-Modifications must be GPL-3.0
-This includes mobile app builds by third parties
### Mobile Compliance
### Copyright Holder's Proprietary Mobile License
The mobile version is NOT a derivative work of GPL code:
-No Stockfish.js included in build
-Uses network API calls (not linking)
-Can be licensed separately
-Users pay for hosted service
Only the copyright holder can distribute mobile versions under proprietary terms because:
-Copyright holder owns all rights to the code
-No Stockfish.js included in mobile builds (no GPL dependency)
-Uses network API calls (not GPL linking)
-Dual licensing is a copyright holder's privilege
### Why This Works Legally
**Dual licensing** is only available to the copyright holder:
- The copyright holder wrote or received contributions to the code
- The copyright holder can license their work under ANY terms they choose
- Third parties receive the code under GPL-3.0 and must comply with those terms
- Third parties cannot "strip out" GPL code to make proprietary builds (license violation)
- Only the original author can grant proprietary licenses
## File Structure
@@ -108,7 +155,24 @@ chess_tutor/
### Contributing
All contributions to the source code repository are subject to **GPL-3.0**.
By contributing to this repository, you agree that:
1. Your contributions are licensed under **GPL-3.0**
2. You grant the copyright holder (Stefan/stefan-kp) the right to use your contributions under any license, including proprietary licenses
3. This allows the copyright holder to include contributions in proprietary mobile builds
All contributions to the source code repository are subject to **GPL-3.0** for public use.
### Third Party Use
If you fork this project:
- ✅ You MAY use it under GPL-3.0 terms
- ✅ You MAY distribute web versions (GPL-3.0)
- ✅ You MAY modify and redistribute (GPL-3.0)
- ❌ You CANNOT distribute proprietary mobile apps
- ❌ You CANNOT remove GPL requirements
- ❌ You CANNOT claim copyright holder privileges
Any mobile app you build from this code MUST be distributed under GPL-3.0.
### Building for Web