From 16bcd6949f5701df35fd4ffe9174bd2b77c47446 Mon Sep 17 00:00:00 2001 From: anas Date: Wed, 7 Oct 2026 14:58:28 +0200 Subject: [PATCH] Say plainly that this is an unofficial client, and name what it is built on MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Someone arriving from ganjoor.net had to infer from the credits that this is a separate project. The About page now opens with it, before the licence list, in all three interface languages: independent, unofficial, maintained by Anas Rashid, not affiliated with or endorsed by the owners of ganjoor.net, who carry no responsibility for it. The README leads with the same paragraph and points issues here rather than at the Ganjoor project. The README also gains a full inventory of the open source this app is built on — Ganjoor and GanjoorService, ganjoor-data, Daneshjoo, Wiktionary and Urdu Wiktionary, wiktextract, the three fonts, and every library — each with its repository and terms. licenses/README.md already carried most of it, but a reader looking for "which repos does this use" should not have to open a second file to find out. GanjoorService is listed with the point that matters: GPL-3.0, no code used, only data over HTTPS. Co-Authored-By: Claude Opus 5 (1M context) --- README.md | 68 ++++++++++++++++++- .../com/ganjoor/android/ui/AboutScreen.kt | 8 +++ app/src/main/res/values-fa/strings.xml | 1 + app/src/main/res/values-ur/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 5 files changed, 78 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ed518a6..5c89878 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,14 @@
گنجور — خوانندهٔ شعر پارسی برای اندروید
+> **Unofficial.** This is an independent, unofficial Android client for +> [ganjoor.net](https://ganjoor.net). It is a **separate project** from ganjoor.net and its +> GitHub repositories ([`ganjoor/ganjoor`](https://github.com/ganjoor), +> `GanjoorService`, and the rest), built and maintained by **Anas Rashid**. It is not +> affiliated with, endorsed by, or managed by the owners of ganjoor.net, and they bear no +> responsibility for it. Please direct any issue with this app +> [here](https://github.com/anas-rashid/ganjoorandroid/issues) — never to the Ganjoor project. + An Android reader for [Ganjoor](https://ganjoor.net), the open archive of Persian poetry — 240 poets and ~135,000 poems, laid out for comfortable long-form reading in Persian, Urdu and Arabic script, online or fully offline. @@ -164,6 +172,61 @@ guide](https://f-droid.org/en/docs/Submitting_to_F-Droid_Quick_Start_Guide/): Two things to do before submitting: tag a release (`v0.1.0`), and check that F-Droid's build server supports **AGP 9.4.1** — it is new, and that is the most likely thing to hold up a merge. +## Open source this app is built on + +Every third-party project this app uses, with its repository and terms. None of these projects +endorse or maintain this app. Full licence texts are in [`licenses/`](licenses/) and ship inside +the APK. + +### Content and data + +| Project | Repository / source | Terms | How it is used | +|---|---|---|---| +| Ganjoor | [ganjoor.net](https://ganjoor.net) | Classical Persian verse, long out of copyright | The poems themselves | +| GanjoorService | [ganjoor/GanjoorService](https://github.com/ganjoor/GanjoorService) | GPL-3.0 | **No code used.** Only `api.ganjoor.net` over HTTPS, for poem search, opening lines and poet portraits — so this app is not a derivative work | +| ganjoor-data | [anas-rashid/ganjoor-data](https://github.com/anas-rashid/ganjoor-data) | **No licence file stated** | The static JSON export every poem is read from | + +### Dictionary + +| Project | Repository / source | Terms | How it is used | +|---|---|---|---| +| Daneshjoo Dictionary | [0xdolan/Daneshjoo](https://github.com/0xdolan/Daneshjoo) | Repository states MIT (see caveat below) | Persian → English definitions | +| Wiktionary | [en.wiktionary.org](https://en.wiktionary.org) | CC BY-SA 3.0 | Persian/Urdu/Arabic → English definitions, IPA, form→lemma index | +| Urdu Wiktionary | [ur.wiktionary.org](https://ur.wiktionary.org) | CC BY-SA 3.0 | The only Urdu → Urdu definitions, plus vowelled spelling and syllable split | +| wiktextract / kaikki.org | [tatuylonen/wiktextract](https://github.com/tatuylonen/wiktextract) | See repository | Produces the machine-readable Wiktionary exports the build consumes | +| readmdict | [readmdict](https://pypi.org/project/readmdict/) | See project | Build-time only — reads Daneshjoo's `.mdx` | + +Because four of the five dictionary sources are CC BY-SA 3.0, **the generated `dictionary.db` is +CC BY-SA 3.0**. The Daneshjoo caveat: the repository states MIT, but the underlying lexicon is a +published Iranian dictionary, so that relicensing is worth verifying before relying on it. + +### Fonts + +| Project | Repository | Terms | +|---|---|---| +| Noto Naskh Arabic | [notofonts/arabic](https://github.com/notofonts/arabic) | SIL OFL 1.1 | +| Noto Nastaliq Urdu | [notofonts/nastaliq](https://github.com/notofonts/nastaliq) | SIL OFL 1.1 | +| Libron | [nicoverbruggen/libron](https://github.com/nicoverbruggen/libron) | SIL OFL 1.1 | + +### Libraries and icons + +All Apache-2.0. + +| Project | Repository | +|---|---| +| Jetpack Compose, AndroidX (core, activity, lifecycle, navigation) | [androidx/androidx](https://github.com/androidx/androidx) | +| Kotlin standard library | [JetBrains/kotlin](https://github.com/JetBrains/kotlin) | +| kotlinx.serialization | [Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) | +| kotlinx.coroutines | [Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) | +| OkHttp | [square/okhttp](https://github.com/square/okhttp) | +| Okio | [square/okio](https://github.com/square/okio) | +| Coil 3 | [coil-kt/coil](https://github.com/coil-kt/coil) | +| Accompanist (drawablepainter, via Coil) | [google/accompanist](https://github.com/google/accompanist) | +| Material Symbols (share, lookup, assistant glyphs, copied as vector paths) | [google/material-design-icons](https://github.com/google/material-design-icons) | + +No Google Play Services, Firebase, analytics or trackers. The only permission requested is +`INTERNET`. + ## Licensing The app code is MIT (see [`LICENSE`](LICENSE)). Every other component — the poems, the three @@ -175,4 +238,7 @@ The two things worth knowing up front: the **data set** carries no licence file, **GanjoorService** is GPL-3.0 but none of its code is used here — only data over HTTPS — so this app is not a derivative work of it. -Not affiliated with or endorsed by Ganjoor. +This app is an **unofficial, independent** client, maintained by **Anas Rashid**. It is not +affiliated with, endorsed by, or managed by ganjoor.net or its maintainers, and it is a wholly +separate project from the Ganjoor GitHub repositories. The same statement is shown in the app +itself, at **Reading settings → About & licences**. diff --git a/app/src/main/java/com/ganjoor/android/ui/AboutScreen.kt b/app/src/main/java/com/ganjoor/android/ui/AboutScreen.kt index 609a1ad..6116711 100644 --- a/app/src/main/java/com/ganjoor/android/ui/AboutScreen.kt +++ b/app/src/main/java/com/ganjoor/android/ui/AboutScreen.kt @@ -181,6 +181,14 @@ fun AboutScreen(onUp: () -> Unit, onHome: () -> Unit) { ) { insets -> LazyColumn(modifier = Modifier.fillMaxSize(), contentPadding = insets) { item { + // Stated before anything else: readers arriving from ganjoor.net should not have + // to infer from the credits below that this is someone else's app. + Text( + text = stringResource(R.string.about_unofficial), + style = MaterialTheme.typography.titleSmall, + color = MaterialTheme.colorScheme.primary, + modifier = Modifier.padding(start = 16.dp, end = 16.dp, top = 16.dp), + ) Text( text = stringResource(R.string.about_intro), style = MaterialTheme.typography.bodyMedium, diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml index 58ad7ff..1f0d4a2 100644 --- a/app/src/main/res/values-fa/strings.xml +++ b/app/src/main/res/values-fa/strings.xml @@ -59,6 +59,7 @@ بیشتر تمام درباره و پروانه‌ها + غیررسمی. «گنجور برای اندروید» یک کارخواه اندرویدیِ مستقل و غیررسمی برای ganjoor.net است. این برنامه پروژه‌ای جدا از ganjoor.net و مخزن‌های گیت‌هاب آن است و به‌دست انس رشید ساخته و نگهداری می‌شود. هیچ وابستگی، تأیید یا مدیریتی از سوی صاحبان ganjoor.net ندارد و آنان هیچ مسئولیتی در قبال آن بر عهده ندارند. گنجور برای اندروید نرم‌افزار آزاد است. شعرها، قلم‌ها و همهٔ کتابخانه‌هایی که این برنامه بر آن‌ها ساخته شده در زیر آمده‌اند؛ برای خواندن متن کامل پروانه روی هر مورد بزنید. برای این واژه مدخلی یافت نشد. ویکی‌واژه — فارسی به انگلیسی (CC BY-SA 3.0) diff --git a/app/src/main/res/values-ur/strings.xml b/app/src/main/res/values-ur/strings.xml index c6a95da..2a2bfb6 100644 --- a/app/src/main/res/values-ur/strings.xml +++ b/app/src/main/res/values-ur/strings.xml @@ -59,6 +59,7 @@ مزید مکمل تعارف اور لائسنس + غیر سرکاری۔ ”گنجور فار اینڈرائیڈ“ ganjoor.net کا ایک خودمختار اور غیر سرکاری اینڈرائیڈ کلائنٹ ہے۔ یہ ganjoor.net اور اس کی گِٹ ہب ریپازٹریز سے بالکل الگ منصوبہ ہے، جسے انس رشید نے بنایا اور وہی اسے سنبھالتے ہیں۔ اسے ganjoor.net کے مالکان کی نہ تائید حاصل ہے، نہ وہ اسے چلاتے ہیں، اور نہ ہی اس کے ذمہ دار ہیں۔ گنجور فار اینڈرائیڈ آزاد سافٹ ویئر ہے۔ کلام، فونٹس اور تمام لائبریریاں ذیل میں درج ہیں؛ مکمل لائسنس پڑھنے کے لیے کسی اندراج پر ٹیپ کریں۔ اس لفظ کا کوئی اندراج نہیں ملا۔ ویکی لغت — فارسی سے انگریزی (CC BY-SA 3.0) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index fd37aa3..60c57d2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -64,6 +64,7 @@ Load more Done About & licences + Unofficial. Ganjoor for Android is an independent, unofficial Android client for ganjoor.net. It is a separate project from ganjoor.net and its GitHub repositories, built and maintained by Anas Rashid. It is not affiliated with, endorsed by, or managed by the owners of ganjoor.net, who bear no responsibility for it. Ganjoor for Android is free software. The poems, the fonts and every library it is built on are credited below; tap an entry to read its full licence. No entry for this word. Wiktionary — Persian to English (CC BY-SA 3.0)