assets/distro/README.md
Four logos, shipped with the app and drawn beside a server's name when nothing
else says where a mark comes from — in one colour, taking the colour of the
text beside them. A column of full-colour logos at the size of a line of text
reads as noise rather than as information, and that single decision is half the
reason this list is four and not five. Every other distribution is fetched from an
address the user configures — serverMarkUrl, expanding {DIST} — and this
directory has nothing to do with it.
Three questions have to be answered before a logo can be shipped here, and only the first is easy.
Trademark is the easy one. Showing a distribution's mark next to a server in order to say this server runs that distribution is nominative use — a mark used to refer to the thing it identifies. It is a doctrine rather than a permission any owner grants, and the usual test is three parts: the thing is not readily identifiable without the mark, no more of the mark is used than needed, and nothing suggests sponsorship or endorsement. A 20px mark in a row that also carries the server's own name and address meets all three.
Copyright in the artwork is the hard one, and it is what this directory is short because of. A logo is somebody's drawing. Redistributing it needs a licence, and almost no project grants one — a trademark policy permitting referential use says nothing about copying the file. Five projects do, and four of those five are here — the fifth is below:
| Mark | Licence | Source |
|---|---|---|
| debian | LGPL-3+ or CC BY-SA 3.0 | openlogo-nd.svg |
| gentoo | CC BY-SA 2.5 | gentoo-signet.svg |
| nixos | CC BY 4.0 | logo/nix-snowflake-colours.svg |
| alpine | no copyright subsists | alpinelinux-logo-icon.svg |
(Rocky Linux was the fifth, under CC BY-SA 4.0. See below for why it is not.)
Alpine is the odd one: its mark is simple geometry, which under 37 CFR 202.1
attracts no copyright at all ("familiar symbols or designs"), so there is
nothing to license. Wikimedia Commons files it as PD-textlogo. The trademark
is still the Alpine Linux Development Team's.
Whether the owner permits altering it is the third question, and it only came up once the marks were drawn in a single colour. Recolouring is a modification; every one of the licences above permits modification, but a trademark policy can still object to it. Of the five, one does — see Rocky below. Gentoo's guidelines restrict aspect ratio and shape and say nothing about colour; Debian, NixOS and Alpine publish nothing on the point.
The four Creative Commons licences all require attribution. That is discharged
in the app itself — Settings → About → License, registered by
lib/data/model/server/dist_license.dart — because this file ships inside the
bundle but nothing renders it, and a notice nobody can reach is not one.
Not for want of asking. Each of these permits the word or referential use and reserves the artwork:
openSUSE/artwork is CC BY-SA 3.0
at its root, but logos/official/LICENSE says, of the logos specifically:
"These logos are all rights reserved." A repository-level licence is not a
file-level one, and this is the only place so far where the two disagree.Find a statement from the project that licenses the artwork, not the trademark, and permits redistribution — and then check that nothing in the project's own terms forbids drawing it in a single colour, which is how it will be drawn. A CC licence, a GPL/LGPL, or a below-the-threshold mark like Alpine's. If all you can find is a trademark policy, however permissive, the answer is no — leave it to the address the user configures.
Then: drop the file in named after its Dist case, add the case to _bundled
in dist.dart, add a row to the table above, and add its notice to
dist_license.dart. test/dist_icon_test.dart fails if any of those is
missing.
Ship the file unmodified, as far as it will go. Not tidied, not
recoloured, not stripped of its metadata — under CC BY-SA a modified file is an
adaptation and carries the share-alike obligation, and the metadata is where
some of these carry their own attribution. flutter_svg logs
unhandled element <metadata/> once per run for the trouble, which is the
right trade.
Then check it draws, because "unmodified" is not the same as "works".
debian.svg is a 2001 Adobe Illustrator export and did not: the parser strips
namespaces before reading attribute names, so xmlns:x="http://ns.adobe.com/…"
arrives as an attribute called x and its value goes to double.parse. It
threw on load and flutter_svg drew an empty box — no exception reaching the
app, nothing in the log, just a gap where the swirl should be. What fixed it is
recorded with the file below.
test/dist_asset_render_test.dart compiles each of these the way flutter_svg
does and fails if one yields no geometry or no paint. It is the only test here
that would have caught that, and four others passed straight through it: the
file existed, the enum named it, the README listed it and the widget built.
xmlns:x/xmlns:i/xmlns:graph/xmlns:a declarations and
the i:-namespaced attributes under them removed. Nothing else: the twelve
d= path strings are byte-identical to what Debian publishes, and the two
render the same. Debian offers the logo under LGPL-3+ or CC BY-SA 3.0, and
either permits this so long as the change is stated — which is what this line
is for, and why it is repeated in the in-app notice.