Skip to content

Relicense from Apache 2.0 to GNU GPLv3#142

Merged
almothafar merged 4 commits into
masterfrom
chore/141-relicense-gplv3
Jul 13, 2026
Merged

Relicense from Apache 2.0 to GNU GPLv3#142
almothafar merged 4 commits into
masterfrom
chore/141-relicense-gplv3

Conversation

@almothafar

Copy link
Copy Markdown
Owner

Closes #141.

Switches the project from Apache 2.0 to the GNU General Public License v3.0 — still open source and still allows commercial use, but now copyleft: anyone who distributes the app or a derivative must keep it open source under GPLv3 and make their source available. This blocks closed-source/proprietary forks while keeping the code free to read, study, modify, and share.

Changes

  • Replace LICENSE with the canonical GNU GPL v3.0 text.
  • README.md: license badge Apache 2.0 → GPLv3, and rewrite the License section (explains copyleft + commercial-OK + copyright line).
  • CircularProgressBar.java: Apache header → GPLv3 header.
  • about_open_source string (en + ar): the in-app "About" screen now says GPLv3.

Notes

  • The author is the sole copyright holder (all commits are Al-Mothafar; the Claude co-author lines are author-directed work), so the relicense is permitted.
  • Future versions only: commits already published under Apache 2.0 remain available under Apache 2.0. Expected and unavoidable.
  • gradlew / gradlew.bat keep their Apache 2.0 headers — those are Gradle's own wrapper files, not project code.

⚠️ Please confirm before merging

  • Is CircularProgressBar.java your own original code (its header shows your copyright, 2015)? If it was adapted from a third-party Apache-licensed CircularProgressBar library, that file may need to stay Apache 2.0 and be excluded from this change.
  • Header uses "version 3, or (at your option) any later version" (FSF default). Say the word if you'd prefer GPLv3-only.
  • Arabic string translated as رخصة جنو العمومية العامة الإصدار 3 — worth a native-speaker glance.

🤖 Generated with Claude Code

almothafar and others added 4 commits July 13, 2026 01:35
Keep the project open source and allow commercial use, but make it copyleft:
anyone distributing the app or a derivative must keep it open under GPLv3 and
provide their source. Prevents closed-source/proprietary forks.

The author is the sole copyright holder, so the relicense is permitted; it
applies to future versions (already-published Apache 2.0 commits stay Apache).

- Replace LICENSE with the canonical GNU GPL v3.0 text.
- README: license badge Apache 2.0 -> GPLv3 and rewrite the License section.
- CircularProgressBar.java: Apache header -> GPLv3 header.
- about_open_source string (en + ar): mention GPLv3 instead of Apache 2.0.

Note: gradlew/gradlew.bat keep their Apache 2.0 headers (Gradle's own files).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The gauge widget is based on korre/android-circular-progress-bar by Kristoffer
Matsson, MIT-licensed. MIT is GPL-compatible, so the file stays in the project
under GPL v3, but MIT requires preserving the original copyright + license
notice — which the prior header dropped.

- CircularProgressBar.java: restore Matsson's MIT copyright + full permission
  notice, and state that the modifications and combined work are under GPL v3.
- README: add an Acknowledgements note crediting the original project.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
#141)

A code comparison shows CircularProgressBar is derived from ylyc/circular_progress_bar
by Leon Cheng (extends ProgressBar, the min+2*strokeWidth onMeasure, the cpb_*
styleable, title/subtitle + shadow) — NOT korre/android-circular-progress-bar,
which extends View, draws a full circle, has no custom attributes, and no subtitle.

ylyc's library is Apache 2.0 ("Copyright 2013 Leon Cheng"), which is compatible
with GPL v3, so the file stays under GPL v3 in the combined work with proper
Apache attribution:

- CircularProgressBar.java header: credit Leon Cheng + Apache 2.0 origin, note the
  file was modified, and reference the bundled license + notices.
- README acknowledgement: point to ylyc/circular_progress_bar (Apache 2.0).
- Add THIRD-PARTY-NOTICES.md recording the component, author, and license.
- Bundle a copy of the Apache License 2.0 at licenses/Apache-2.0.txt (Apache 4a).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Use a Markdown extension for the project license so it renders on the repo
home; update the README badge/link, THIRD-PARTY-NOTICES, and the source header
to point at LICENSE.md. GitHub still detects it as GPL-3.0.

The bundled third-party license (licenses/Apache-2.0.txt) stays plain text: it
is the verbatim Apache 2.0 text (including the standard bracketed placeholders
in its "how to apply" appendix, which are meant to stay as-is in a license copy).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@almothafar
almothafar merged commit 2000b03 into master Jul 13, 2026
2 checks passed
@almothafar
almothafar deleted the chore/141-relicense-gplv3 branch July 13, 2026 02:24
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.

Relicense from Apache 2.0 to GNU GPLv3 (copyleft, still open source)

1 participant