X-Face avatars: decoding needs compface's tables (licence question) #166

Closed
opened 2026-10-19 14:22:00 +00:00 by littlefox · 2 comments
Owner

Split out of #151 (profiles and avatars). Avatars there are coloured initials. Showing a person's X-Face (aux item 9, which elisp shows) needs a decoder, and that raises a licensing question.

  • X-Face is compface's format: 48×48 bits, compressed with an arithmetic coder plus a prediction step (Gen). The prediction step is driven by large fixed tables in compface's gen.c.
  • There's no Rust crate, and no system library on the build machines. Decoding means porting compface: the coder is small, but the tables have to come over as they are.
  • compface's licence: "Permission is given to distribute these sources, as long as the copyright messages are not removed, and no monies are exchanged." NeoKOM is GPL-3.0-or-later, and the GPL allows selling copies. A port of the tables is probably a derived work, so this looks incompatible.

Options:

  1. Don't decode X-Face. Keep initials (and later perhaps an avatar NeoKOM stores itself, which elisp wouldn't show).
  2. Ask compface's author or maintainers for a GPL-compatible grant for the tables.
  3. Treat the tables as functional data that isn't copyrightable, and port them. That's a legal judgement I can't make for the project.

How common X-Faces are on kom.lysator.liu.se is unknown. Counting them needs a logged-in scan, which needs your OK (D-007).

Split out of #151 (profiles and avatars). Avatars there are coloured initials. Showing a person's X-Face (aux item 9, which elisp shows) needs a decoder, and that raises a licensing question. - X-Face is compface's format: 48×48 bits, compressed with an arithmetic coder plus a prediction step (`Gen`). The prediction step is driven by large fixed tables in compface's `gen.c`. - There's no Rust crate, and no system library on the build machines. Decoding means porting compface: the coder is small, but the tables have to come over as they are. - compface's licence: "Permission is given to distribute these sources, as long as the copyright messages are not removed, and no monies are exchanged." NeoKOM is GPL-3.0-or-later, and the GPL allows selling copies. A port of the tables is probably a derived work, so this looks incompatible. Options: 1. Don't decode X-Face. Keep initials (and later perhaps an avatar NeoKOM stores itself, which elisp wouldn't show). 2. Ask compface's author or maintainers for a GPL-compatible grant for the tables. 3. Treat the tables as functional data that isn't copyrightable, and port them. That's a legal judgement I can't make for the project. How common X-Faces are on kom.lysator.liu.se is unknown. Counting them needs a logged-in scan, which needs your OK (D-007).
Author
Owner

We will do 1.

Decoding X-Face is not interesting, largely since the image is so low resolution and that the format is evidently heavily outdated since many years.

From what I can tell, X-Faces are not common at all, and the aux-item is largely vestigial.

We will do 1. Decoding X-Face is not interesting, largely since the image is so low resolution and that the format is evidently heavily outdated since many years. From what I can tell, X-Faces are not common at all, and the aux-item is largely vestigial.
Author
Owner

Recorded as D-048 (PR #167). Profiles (#151) use coloured initials, and the X-Face aux item isn't decoded. Closing.

Recorded as D-048 (PR #167). Profiles (#151) use coloured initials, and the X-Face aux item isn't decoded. Closing.
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
littlefox/neokom#166
No description provided.