Merge pull request 'Brand protection: GPL section 7 terms, TRADEMARKS.md, the name and taglines in one file' (#77) from feature/brand-protection into main

Reviewed-on: #77
This commit is contained in:
anas 2026-10-09 16:01:30 +00:00
commit bc51aa66ab
5 changed files with 80 additions and 8 deletions

25
NOTICE Normal file
View File

@ -0,0 +1,25 @@
Divan (دیوان)
Copyright (C) 2026 Anas Rashid and Divan contributors
This program is free software under the GNU General Public License version 3 (see LICENSE), with the
additional terms below, which the GPL allows in its section 7. They apply to the code written for Divan by its
authors. (The earlier .NET code at the tag dotnet-final is a fork of GanjoorService and stays under that
project's licence; these terms do not apply to it.)
Additional terms under section 7 of the GNU GPL version 3
1. Attribution (section 7(b)). If you convey this work or a work based on it, keep this attribution in the
Appropriate Legal Notices it displays (for a website: its about page or footer):
"Based on Divan (https://git.anasrashid.net/anas/divan) by Anas Rashid, under the GNU GPL v3."
2. Origin (section 7(c)). A modified version must be marked as different from the original, and must not
be presented as Divan, or as made, approved or endorsed by Divan or its authors.
3. Names and logos (section 7(e)). This licence grants no rights under trademark law to the names, logos
and other brand features of Divan, listed in TRADEMARKS.md: among them the name دیوان / Divan for this
project and site, the shamsa and ترنج logos and icons, the tagline "ایک پاکستانی کی طرف سے، پاکستان کے
لیے", and the masthead and share-card designs. A modified version made available to the public must use
its own name and logo (see "Making your own site" in TRADEMARKS.md).
The texts shown on the site are in the public domain; the Divan data is CC BY-SA 4.0 (see the divan-data
repository). These terms concern only the software and Divan's brand.

View File

@ -79,4 +79,4 @@ v2 is reaching parity with Ganjoor's features in phases: reading, accounts, comm
## License
GPL-3.0 (see `LICENSE`). Texts are public domain; the divan-data compilation is CC BY-SA 4.0 (Urdu Wikisource and Wikipedia contributors).
GPL-3.0 (see `LICENSE`), with additional terms under its section 7 (see `NOTICE`): keep the attribution "Based on Divan by Anas Rashid", mark modified versions as different, and do not use Divan's name and logos for your own public site ([TRADEMARKS.md](TRADEMARKS.md); set your own in `web/src/lib/brand.ts`). Texts are public domain; the divan-data compilation is CC BY-SA 4.0 (Urdu Wikisource and Wikipedia contributors, and Divan).

37
TRADEMARKS.md Normal file
View File

@ -0,0 +1,37 @@
# Divan's name and logos
The code is free software (GNU GPL v3, with the additional terms in [NOTICE](NOTICE)), and you are welcome to
study it, change it and run your own site with it. Divan's **name and logos are not part of that licence**:
they identify this project and its site, so that readers know what is Divan and what is not.
## What belongs to Divan
- The name **دیوان / Divan** used for this project, its site and its apps.
- The logos and icons: the shamsa (illuminated medallion) and the ترنج (lobed medallion), in every form:
`web/public/logo/`, `web/public/favicon.*`, `web/public/icon-*.png`, `web/public/apple-touch-icon.png`,
`web/public/og-image.png`, and the logo drawn in the header and home page.
- The tagline **ایک پاکستانی کی طرف سے، پاکستان کے لیے** with Pakistan's flag in the footer.
- The masthead (the logo beside **اردو کا کلاسیکی ادب** between the couplet lines) and the share-card design.
## What you may do
- Say that your work is **based on Divan**, link to it, and describe what Divan is.
- Run Divan unchanged for yourself or for testing, privately.
- Use the name when writing about the project (articles, reviews, talks).
## What you may not do
- Run a public site, app or service from a modified copy under the Divan name or with its logos.
- Use a name, domain, logo or design that could make people think your site is Divan or is endorsed by it.
- Remove the attribution required by [NOTICE](NOTICE).
## Making your own site
1. Set your name and taglines in `web/src/lib/brand.ts`.
2. Replace the logo files listed above with your own, and the logo in the header (`web/src/layouts/Base.astro`)
and home page (`web/src/pages/index.astro`).
3. Rewrite the about page (`web/src/pages/about.astro`) for your project, keeping the attribution
"Based on Divan by Anas Rashid" from [NOTICE](NOTICE).
4. Update `web/public/site.webmanifest`.
Questions or permission requests: open an issue on the Divan repository.

View File

@ -8,9 +8,10 @@ import '../styles/global.css';
interface Props { title?: string; description?: string; q?: string; author?: string; jsonld?: object }
// author and jsonld describe a work for search engines and the browser's own reader view
const { title, description = 'اردو کا کلاسیکی ادب', q = '', author, jsonld } = Astro.props;
const fullTitle = title ? `${title} · دیوان` : 'دیوان · اردو کا کلاسیکی ادب';
const fullTitle = title ? `${title} · ${brand.name}` : `${brand.name} · ${brand.tagline}`;
import Icon from '../components/Icon.astro';
import logo from '../../public/logo/turanj.svg?raw'; // inline, so the page can turn its rays
import { brand } from '../lib/brand';
---
<!doctype html>
<html lang="ur-PK" dir="rtl">
@ -26,7 +27,7 @@ import logo from '../../public/logo/turanj.svg?raw'; // inline, so the page can
<meta name="theme-color" content="#fbf6ea" media="(prefers-color-scheme: light)" />
<meta name="theme-color" content="#14120f" media="(prefers-color-scheme: dark)" />
<!-- link previews (WhatsApp, Facebook, X, Slack): the logo and headline -->
<meta property="og:site_name" content="دیوان" />
<meta property="og:site_name" content={brand.name} />
<meta property="og:type" content="website" />
<meta property="og:locale" content="ur_PK" />
<meta property="og:title" content={fullTitle} />
@ -35,7 +36,7 @@ import logo from '../../public/logo/turanj.svg?raw'; // inline, so the page can
<meta property="og:image" content={new URL('/og-image.png', Astro.url.origin).href} />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:image:alt" content="دیوان: اردو کا کلاسیکی ادب" />
<meta property="og:image:alt" content={`${brand.name}: ${brand.tagline}`} />
<meta name="twitter:card" content="summary_large_image" />
{author && <meta name="author" content={author} />}
{jsonld && <script type="application/ld+json" set:html={JSON.stringify(jsonld).replace(/</g, '\\u003c')} />}
@ -128,10 +129,10 @@ import logo from '../../public/logo/turanj.svg?raw'; // inline, so the page can
</aside>
<footer class="site-footer">
<div class="wrap">
<a class="footer-logo" href="/" title="سرورق"><img src="/logo/turanj.svg" width="56" height="56" alt="دیوان" /></a>
<a class="footer-logo" href="/" title="سرورق"><img src="/logo/turanj.svg" width="56" height="56" alt={brand.name} /></a>
<nav class="footer-links" aria-label="سائٹ کے بارے میں">
<div><h2>دیوان</h2><ul>
<li><a href="/about"><Icon name="info" size={18} /><span>دیوان کے بارے میں<small>مقصد اور طریقۂ کار</small></span></a></li>
<div><h2>{brand.name}</h2><ul>
<li><a href="/about"><Icon name="info" size={18} /><span>{brand.name} کے بارے میں<small>مقصد اور طریقۂ کار</small></span></a></li>
<li><a href="/tags"><Icon name="tag" size={18} /><span>ٹیگ<small>موضوعات سے کلام</small></span></a></li>
</ul></div>
<div><h2>ماخذ</h2><ul>
@ -149,7 +150,7 @@ import logo from '../../public/logo/turanj.svg?raw'; // inline, so the page can
<circle cx="19.2" cy="10" r="6" fill="#fff" /><circle cx="20.6" cy="8.7" r="5.4" fill="#01411c" />
<polygon fill="#fff" points="23.65,5.99 23.12,7.39 24.25,8.39 22.75,8.32 22.15,9.69 21.75,8.25 20.26,8.11 21.51,7.28 21.19,5.82 22.36,6.75" />
</svg>
ایک پاکستانی کی طرف سے، پاکستان کے لیے
{brand.madeBy}
</p>
</div>
</footer>

9
web/src/lib/brand.ts Normal file
View File

@ -0,0 +1,9 @@
// The site's name and taglines in one place. They are Divan's brand (TRADEMARKS.md): a fork that runs its own
// public site sets its own here, replaces the logo files, and keeps the attribution required by NOTICE.
export const brand = {
name: 'دیوان',
tagline: 'اردو کا کلاسیکی ادب',
madeBy: 'ایک پاکستانی کی طرف سے، پاکستان کے لیے', // footer, beside Pakistan's flag
// the attribution forks keep (NOTICE, GPL v3 section 7(b))
basedOn: { text: 'Divan by Anas Rashid', url: 'https://git.anasrashid.net/anas/divan' },
};