Xsnow "protestware" in Debian
Political "Protestware" Discovered in Debian's xsnow

Written by Joe Brockmeier on June 29, 2026, this report examines a curious case of political expression embedded within xsnow, a utility for X11 desktops that creates an animated snowfall effect. While the app is generally used for lighthearted visual diversions, it has recently become a flashpoint for a debate on neutrality and project guidelines.
The Controversy: A Hidden Trigger
An "Easter egg" was discovered in xsnow that activates specifically when the system language is configured to Russian ("ru"). This trigger increases the frequency of a specific visual element: Ukrainian flags, which are internally labeled as EXTRATREE.
Technical Analysis
The logic is located in src/scenery.c (starting at line 326) for version 3.8.3 (Debian 13 "trixie") and version 3.8.6 (unstable). The implementation looks like this:
#ifdef USE_EXTRATREE
if (global.Language !strcmp(global.Language,"ru") drand48() 0.3)
tt = MAXTREETYPE;
if (drand48() 0.02)
tt = MAXTREETYPE;
#endif
Probability Comparison
The likelihood of a Ukrainian flag appearing can be expressed mathematically. Let be the probability of a flag appearing:
- For Russian locales: (or 30%)
- For other locales: (or 2%)
| Locale Setting | Probability of Flag | Visual Result |
|---|---|---|
English (en) | Rare flags; mostly snow, bears, and Santa | |
Russian (ru) | Frequent flags appearing alongside decorations |
![[xsnow running on Debian Trixie]](https://static.lwn.net/images/2026/xsnow.png)
Logic Flow of the "Protestware"
The Debate over DFSG Compliance
On June 14, Alexander Ivanov alerted the Debian development mailing list, arguing that this "targeted behavior" was unacceptable.
The Allegation
Ivanov claimed the feature violated the Debian Free Software Guidelines (DFSG), specifically:
DFSG #5: No discrimination against persons or groups.DFSG #6: No discrimination against fields of endeavor.
The Rebuttal
Other developers quickly corrected this interpretation. Chris Hofstaedtler pointed out that the DFSG governs the license of the software, not the behavior of the code itself. Since xsnow is primarily under the GPLv3, the license remains compliant.
Russ Allbery further noted that invoking the Social Contract and DFSG often leads to "rules lawyering" rather than solving the core issue. However, he did express a philosophical concern:
"I would, in general, say that software that behaves in deceptive ways... based on usernames, locales, or other local settings... is probably not something that we want to have in Debian."
Path to Resolution
Despite the discussion, the situation remains unresolved because the proper channels were not utilized.
Current Status of the Complaint
- Report issue to the development mailing list
- File a formal bug report
- Maintainer (Willem Vermin) agrees to roll back
- Debian Technical Committee intervenes
Bill Allombert advised Ivanov that the mailing list is not the venue for such complaints and that a bug report is necessary for action.
Precedents for Overriding Maintainers
While Debian generally grants maintainers significant autonomy, there are cases where the project intervenes:
- August 2025: Removal of two "offensive"
fortunepackages before the trixie release. - October 2025: The Technical Committee forced a revert of a
systemdchange that broke programs relying on a world-writable/run/lockdirectory.
Conclusion
The xsnow incident highlights the tension between a maintainer's personal expression and the perceived neutrality of a distribution. While the "protestware" may not violate the legalistic requirements of the DFSG, it may violate the community's preference against deceptive locale-based behavior. However, as the project stands, complaining on a mailing list is not a substitute for the formal bug-tracking process.
