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:
@@ -0,0 +1,98 @@
|
||||
Chess Tutor - AI-powered Chess Training Application
|
||||
|
||||
Copyright (c) 2024 KaProblem (https://www.kaproblem.com / GitHub: stefan-kp)
|
||||
All rights reserved.
|
||||
|
||||
================================================================================
|
||||
|
||||
WHY DUAL LICENSING?
|
||||
================================================================================
|
||||
|
||||
Apple's App Store and Google Play Store terms are INCOMPATIBLE with GPL-3.0:
|
||||
- App Store DRM conflicts with GPL's redistribution rights
|
||||
- Platform restrictions violate GPL's freedom requirements
|
||||
- FSF considers App Store distribution a GPL violation
|
||||
|
||||
Therefore, we CANNOT distribute GPL apps on mobile app stores.
|
||||
|
||||
Solution: Mobile builds exclude GPL code (Stockfish.js) and use API calls instead,
|
||||
allowing proprietary licensing for app store compliance.
|
||||
|
||||
================================================================================
|
||||
|
||||
IMPORTANT NOTICE REGARDING DUAL LICENSING
|
||||
================================================================================
|
||||
|
||||
This software is available under DUAL LICENSING terms:
|
||||
|
||||
1. GPL-3.0 License (Public Open Source Use)
|
||||
- Source code is licensed under GPL-3.0
|
||||
- You may use, modify, and distribute under GPL-3.0 terms
|
||||
- See LICENSE file for full GPL-3.0 text
|
||||
|
||||
2. Proprietary License (Copyright Holder Only)
|
||||
- Only the copyright holder (KaProblem/stefan-kp) may distribute under proprietary terms
|
||||
- Specifically applies to mobile app distributions (iOS/Android)
|
||||
- Required for App Store/Google Play compliance
|
||||
- Third parties DO NOT have this right
|
||||
|
||||
================================================================================
|
||||
|
||||
THIRD PARTY RIGHTS AND RESTRICTIONS
|
||||
================================================================================
|
||||
|
||||
If you are NOT the copyright holder, you must comply with GPL-3.0:
|
||||
|
||||
✅ ALLOWED:
|
||||
- Use the software under GPL-3.0 terms
|
||||
- Modify and fork the source code
|
||||
- Distribute modified versions under GPL-3.0
|
||||
- Create web applications using this code (under GPL-3.0)
|
||||
|
||||
❌ NOT ALLOWED:
|
||||
- Distribute proprietary (closed-source) versions
|
||||
- Create proprietary mobile apps for App Store/Google Play
|
||||
- Remove or bypass GPL requirements
|
||||
- Claim exclusive rights to the software
|
||||
|
||||
================================================================================
|
||||
|
||||
CONTRIBUTIONS
|
||||
================================================================================
|
||||
|
||||
By contributing code, documentation, or other materials to this project, you:
|
||||
|
||||
1. License your contributions under GPL-3.0 for public use
|
||||
2. Grant the copyright holder (KaProblem/stefan-kp) the right to use your
|
||||
contributions under ANY license, including proprietary licenses
|
||||
3. Represent that you have the legal right to make such grants
|
||||
4. Understand that the copyright holder may include your contributions
|
||||
in proprietary mobile app distributions for App Store/Google Play
|
||||
|
||||
This dual licensing model is similar to those used by MySQL, Qt, and other
|
||||
successful open source projects.
|
||||
|
||||
================================================================================
|
||||
|
||||
DEPENDENCIES AND THIRD PARTY CODE
|
||||
================================================================================
|
||||
|
||||
This software includes or depends on:
|
||||
|
||||
- Stockfish.js (GPL-3.0) - Chess engine
|
||||
Used in web builds only, not included in mobile builds
|
||||
|
||||
- Next.js (MIT License)
|
||||
- React (MIT License)
|
||||
- Chess.js (BSD License)
|
||||
- Other dependencies listed in package.json
|
||||
|
||||
Mobile builds do NOT include GPL-licensed components and use a network API
|
||||
architecture instead, allowing proprietary distribution by the copyright holder.
|
||||
|
||||
================================================================================
|
||||
|
||||
For questions regarding licensing or to request a proprietary license,
|
||||
contact: KaProblem (https://www.kaproblem.com or stefan-kp via GitHub)
|
||||
|
||||
Last Updated: 2024-12-07
|
||||
+82
-18
@@ -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
|
||||
|
||||
|
||||
@@ -513,9 +513,24 @@ Debug mode is a powerful feature that helps you understand and troubleshoot how
|
||||
|
||||
## License
|
||||
|
||||
This project is licensed under the GNU General Public License v3.0 (GPLv3) - see the [LICENSE](LICENSE) file for details.
|
||||
Copyright (c) 2024 KaProblem (https://www.kaproblem.com). All rights reserved.
|
||||
|
||||
This application uses [Stockfish](https://stockfishchess.org/), which is licensed under the GPLv3.
|
||||
This project uses **dual licensing** (required for App Store compliance):
|
||||
|
||||
- **Source Code**: GPL-3.0 (see [LICENSE](LICENSE))
|
||||
- **Mobile Apps**: Proprietary (copyright holder only)
|
||||
|
||||
**Why Dual Licensing?**
|
||||
App Store and Google Play terms are incompatible with GPL-3.0. Mobile builds exclude GPL code (Stockfish.js) and use API calls instead, allowing proprietary licensing for app store distribution.
|
||||
|
||||
**Important for Third Parties:**
|
||||
- You may use this code under GPL-3.0 terms
|
||||
- You CANNOT distribute GPL apps on App Store/Google Play (platform restrictions)
|
||||
- You CANNOT create proprietary mobile apps from this code
|
||||
- Only the copyright holder can distribute proprietary versions
|
||||
- See [COPYRIGHT](COPYRIGHT) and [LICENSING.md](LICENSING.md) for details
|
||||
|
||||
This application uses [Stockfish](https://stockfishchess.org/), which is licensed under GPL-3.0 (web builds only; mobile builds use API calls).
|
||||
|
||||
## Credits
|
||||
- Opening collection originally by [ragizaki/ChessOpeningsRecommender](https://github.com/ragizaki/ChessOpeningsRecommender)
|
||||
|
||||
Reference in New Issue
Block a user