Firefox 147 Will Support the XDG Base Directory Specification

Significance of Firefox adopting XDG

  • Many see this as an important symbolic win: a major, widely used app finally honoring the XDG Base Directory spec after a ~21-year-old bug.
  • People hope this nudges other applications toward compliance and reduces $HOME clutter over time.
  • Some note Firefox already used ~/.cache/mozilla for years, so the big change is moving config/data out of ~/.mozilla.

Home directory clutter & XDG benefits

  • Several comments complain about having dozens or even hundreds of dotfiles/directories in $HOME, many of unknown origin.
  • XDG is praised for:
    • Centralizing configs ($XDG_CONFIG_HOME), data ($XDG_DATA_HOME), and caches ($XDG_CACHE_HOME).
    • Making backups and cleanup easier (e.g., “back up .config, ignore .cache”).
  • Others draw analogies to Windows and macOS where ignoring platform conventions similarly creates messy user directories.

Security and multiple config paths

  • OpenSSH’s refusal to adopt XDG is cited: extra config paths can confuse admins and create brittle setups, especially for security-critical tools like SSH.
  • Some argue complexity itself is a security risk (e.g., missing an alternate authorized_keys path when revoking access).
  • Others push back that it’s mainly a manageability issue, not directly a vulnerability, though they accept the complexity argument.

Firefox’s implementation details & migration worries

  • Current behavior (per code reading):
    • If ~/.mozilla exists or MOZ_LEGACY_HOME=1 is set, Firefox continues to use it.
    • Otherwise, it uses $XDG_CONFIG_HOME/mozilla.
  • There is no official automated migration; manual moves are “at your own risk.”
  • Concerns:
    • Some profile files may contain absolute paths, so naïve mv could break extensions or profiles.
    • Firefox still does not fully split config vs data vs cache per XDG; everything non-cache goes under .config/mozilla.
    • Debate whether partial compliance without migration is worth the effort; some say “better imperfect progress than nothing.”

Debate on XDG itself and user control

  • One camp calls XDG “petty” and sees ~/.mozilla vs ~/.config/mozilla as trivial.
  • Others strongly disagree, emphasizing:
    • It’s “my $HOME,” not a dumping ground.
    • XDG variables let users relocate config/data cleanly.
    • Noncompliant apps complicate backups and housekeeping, sometimes forcing users into tricks like making $HOME non-writable.

Broader filesystem and partitioning side-discussion

  • Thread digresses into Unix directory layout and partitioning:
    • Some dislike the traditional Unix tree and multi-partition setups, seeing them as confusing and inflexible.
    • Others defend them as crucial for multi-user systems, isolating logs and critical services from user or log-driven disk exhaustion, and enabling different filesystems/policies by mountpoint.