Xsnow "protestware" in Debian [LWN.net]
LWN<br>.net<br>News from the source
Content Weekly Edition<br>Archives<br>Search<br>Kernel<br>Security<br>Events calendar<br>Unread comments
LWN FAQ<br>Write for us
User:<br>Password: |
Log in /<br>Subscribe /<br>Register
Xsnow "protestware" in Debian
[LWN subscriber-only content]
Welcome to LWN.net
The following subscription-only content has been made available to you<br>by an LWN subscriber. Thousands of subscribers depend on LWN for the<br>best news from the Linux and free software communities. If you enjoy this<br>article, please consider subscribing to LWN. Thank you<br>for visiting LWN.net!
By Joe Brockmeier<br>June 29, 2026
The xsnow<br>application, which generates an animated snowfall effect (and other<br>pleasant diversions) for X11 desktops, does not seem like an obvious<br>channel for political statements. Nevertheless, xsnow's maintainer<br>seems to have included a political protest in the program: an<br>Easter egg that is triggered when the program's language is set to Russia<br>("ru"). One user has complained that this functionality should be<br>removed from the Debian xsnow<br>package, but Debian does not seem to have any rules that forbid<br>such a feature outright.
The complaint
On June 14, Alexander Ivanov sent a message to Debian's<br>development list to complain that if a user's language settings were<br>set to Russian, it would trigger "a disguised visual element<br>(Ukrainian flags labeled as 'EXTRATREE') with a significantly higher<br>probability". The code is found in the src/scenery.c<br>file beginning on line 326 in xsnow 3.8.3, the version packaged for<br>Debian 13 ("trixie") and in 3.8.6, which is in unstable:
#ifdef USE_EXTRATREE<br>if (global.Language && !strcmp(global.Language,"ru") && drand48()
Xsnow is more likely to display Ukrainian flags (src/Pixmaps/extratree.xpm)<br>if the language is set to Russian. Xsnow allows users to pick from one<br>of several languages; when the application was set to English, I did<br>not see any Ukrainian flags but they should pop up about 2% of the<br>time. I did see the expected decorations such as a moon, snow, trees,<br>polar bears, birds, and Santa with his sleigh. After I changed the<br>language setting to Russian, xsnow immediately placed several<br>flags on the desktop along with the other decorations. The screenshot<br>below shows what this looks like on Debian 13.
DFSG violation
Ivanov claimed that the behavior violated the Debian Free<br>Software Guidelines (DFSG) that are part of the project's Social<br>Contract. Specifically, he said that the "targeted<br>behavior" violated the principles of no discrimination against<br>persons or groups (DFSG #5) and no discrimination against fields of<br>endeavor (DFSG #6).
Ivanov had not filed a bug, but was, instead reporting the problem<br>to "the wider Debian development community". He said he took<br>that route because the maintainer of the Debian package, Willem<br>Vermin, is also the maintainer of the xsnow project and had been the<br>one to introduce the change in the first place.
Chris Hofstaedtler replied<br>that Ivanov was mistaken; the DFSG does not require that the<br>software is non-discriminatory, but that the license for the<br>software is. "The licenses in use do not appear to violate the<br>DFSG's points 5 or 6. Please read the DFSG carefully next<br>time." Xsnow is primarily licensed under the GPLv3, though some<br>files carry other Debian-approved licenses.
Russ Allbery agreed<br>that the DFSG was not relevant; he also warned that citing the Social<br>Contract and DFSG "turns the conversation into rules lawyering<br>without addressing the actual issue". However, even though xsnow<br>is DFSG-compliant, he did say that the flag display may be something<br>Debian does not want in its archives:
I would, in general, say that software that behaves in deceptive ways,<br>which includes hidden behavior changes based on usernames, locales, or<br>other local settings or information that no user would reasonably<br>expect to change behavior in this way is probably not something that<br>we want to have in Debian. It's a very slippery slope and also likely<br>to create a lot of drama to very little benefit.
Ivanov said<br>that he understood the point that xsnow did not violate the DFSG. But,<br>he asked, shouldn't its hidden functionality be treated as a bug or<br>behavior that should be patched out "to restore the application's neutral and<br>intended functionality for all users equally?" Bill Allombert suggested<br>that he open a bug report, since the Debian development list was not<br>the correct venue for the complaint.
Forecast calls for no xsnow changes
To date, Ivanov has not opened a bug report, and the conversation<br>seems to have run its course. I have emailed Vermin to ask if<br>he was aware of the complaint, and if he would be willing to roll back<br>the Ukrainian flag display if a bug were filed. So far, I have not<br>received a response.
Even though Vermin may not want to change xsnow's behavior, Debian<br>package maintainers have been required to make changes for technical<br>reasons—or have had packages removed from the archive...