Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Phoenix & Dove: init at 2025.02.01.1 #380398

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

Conversation

jbgi
Copy link
Contributor

@jbgi jbgi commented Feb 8, 2025

Phoenix and Dove are suites of configurations & advanced modifications for Mozilla Firefox & Thunderbird (respectively) with a focus on privacy, security, freedom, & usability.

Fix #379289.

Usage:

  environment.etc."firefox/defaults/pref/phoenix-desktop.js".source =
    "${pkgs.phoenix}/prefs/phoenix-desktop.js";
  environment.etc."firefox/phoenix/userjs".source = "${pkgs.phoenix}/userjs";
  environment.etc."firefox/phoenix/configs".source = "${pkgs.phoenix}/configs";

  environment.etc."thunderbird/defaults/pref/dove.js".source =
    "${pkgs.dove}/prefs/dove.js";

  nixpkgs.overlays = [
    (self: super: {
      # Alternatively, use programs.firefox options, but this way also works for home-manager:
      firefox = super.firefox.override {
        extraPoliciesFiles = [ "${pkgs.phoenix}/policies.json" ];
        extraPrefsFiles = [ "${pkgs.phoenix}/phoenix.cfg" ];
      };

      thunderbird = super.thunderbird.override {
        extraPoliciesFiles = [ "${pkgs.dove}/policies.json" ];
        extraPrefsFiles = [ "${pkgs.dove}/dove.cfg" ];
      };
    })
  ];

WARNING: by default phoenix config will delete browsing history when closing firefox (got to setting to re-enabled if needed)

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 25.05 Release Notes (or backporting 24.11 and 25.05 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

Add a 👍 reaction to pull requests you find important.

@nixos-discourse
Copy link

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/prs-ready-for-review/3032/5191

 Phoenix is a suite of configurations & advanced modifications for
 Mozilla Firefox with a focus on privacy, security, freedom, & usability.
 https://phoenix.celenity.dev/
@jbgi jbgi changed the title phoenix: init at 2025.02.01.1 Phoenix & Dove: init at 2025.02.01.1 Feb 9, 2025
@jbgi jbgi requested a review from danth February 9, 2025 12:16
pname = "dove";
version = "2025.02.01.1";

src = fetchzip {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use fetchFromGitea.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this will fetch the whole repo with all the build scripts and more, whereas I'm only interested in the few files in the zip archive. Is that ok?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It also fetches the zip.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the current code does not fetch the zip of the repo, it only fetch a zip inside the repo that contains only necessary files.

stripRoot = false;
# general.config.filename is hard-coded to mozilla.cfg in wrapFirefox, so removing this setting:
postFetch = ''
sed -i '/general.config.filename/d' $out/dove.cfg $out/prefs/dove.js
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can't find this.

Copy link
Contributor Author

@jbgi jbgi Feb 9, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

meta = {
description = "A suite of configurations & advanced modifications for Mozilla Thunderbird with a focus on privacy, security, freedom, & usability";
homepage = "https://dove.celenity.dev/";
license = lib.licenses.gpl3Plus;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is this gpl3Plus instead of gpl3Only?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thoward the end of the license there is is this mention:

Phoenix
Copyright (C) 2024 Magnesium1062

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After the

END OF TERMS AND CONDITIONS

line? The GPL license itself should not be modified as this. The license header should be added in the source code instead.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah, it's probably not orthodox, for me the intent is GPL3+ but I'm not a lawyer. I can open an issue to get them add proper headers.

 Dove is a suite of configurations & advanced modifications for Mozilla Thunderbird,
 designed to put the user first - with a focus on privacy, security, freedom, & usability.
 https://dove.celenity.dev
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Package request: phoenix
5 participants