On macOS 27+, wrapped package will have no Mozilla signature and will
fail to access the default datadir. Move users with recent stateVersion
to a non-default datadir recommended by:
https://github.com/NixOS/nixpkgs/pull/556611
Users with existing profiles under default datadir will have to migrate
them to a different location on macOS 27 upgrade. Migrating existing
directory is out of scope for Home Manager.
This is a counterpart for: https://github.com/NixOS/nixpkgs/pull/556611
When configPath is overridden, if wrapper supports the new appDataDir
argument, we pass configPath's absolute form to tell the app to look for
its datadir in the correct directory.
This will become necessary on macOS 27+ where Firefox that is not signed
by Mozilla has no access to its default datadir.
The deferred state-version warning helper keeps .default on the current branch so warnings can be emitted from config. Firefox passed that .default through as the Linux configPath default, which made home.stateVersion < 26.05 still use the XDG path.
Use effectiveDefault for the platform default so legacy state versions keep .mozilla/firefox, while preserving the warning. Adjust the config-path tests to cover explicit legacy and XDG paths.
Use `lib.hm.deprecations.mkStateVersionOptionDefault` to keep the legacy `.mozilla/firefox` default for existing configurations while switching new Linux configurations to `"${config.xdg.configHome}/mozilla/firefox"`.
Add focused tests for the legacy and XDG defaults plus a news entry describing the transition.
Closes#8200.
Supersedes #8716 and the earlier attempt in #8672.
Co-authored-by: Heitor <44377258+HeitorAugustoLN@users.noreply.github.com>
Adds support for Firefox forks by introducing methods that create
generic configs and options. Additional configs and options can be
added in separate modules.
This makes the
programs.firefox.package
option take a pre-wrapped Firefox package as value if state version is
set to "19.09" or later. This should make the Firefox module work with
a wider range of Firefox packages.