logo
Kurashizu Blogwhere ideas flow
  • Home
  • News
  • Blog
  • About
  • Home
  • News
  • Blog
  • About

© 2026 Kurashizu. All rights reserved.

Admin·New Post·Service Status
Powered by Cloudflare·05.11.26
← Back to news

Xsnow "protestware" in Debian

Original article
lwn.net|46 points|17 comments|by 6581|Jun 30, 2026

Political "Protestware" Discovered in Debian's xsnow

LWN.net Logo

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 P(F)P(F)P(F) be the probability of a flag appearing:

  • For Russian locales: P(F∣ru)≈0.30P(F|ru) \approx 0.30P(F∣ru)≈0.30 (or 30%)
  • For other locales: P(F∣other)≈0.02P(F|other) \approx 0.02P(F∣other)≈0.02 (or 2%)
Locale SettingProbability of FlagVisual Result
English (en)≈2%\approx 2\%≈2%Rare flags; mostly snow, bears, and Santa
Russian (ru)≈30%\approx 30\%≈30%Frequent flags appearing alongside decorations

[xsnow running on Debian Trixie]

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:

  1. August 2025: Removal of two "offensive" fortune packages before the trixie release.
  2. October 2025: The Technical Committee forced a revert of a systemd change that broke programs relying on a world-writable /run/lock directory.

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.

LWN