Unverified Commit 67fa2bd4 authored by K900's avatar K900 Committed by GitHub
Browse files

nixos/polipo, polipo: drop (#408271)

parents d0afebfe 27734eb9
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@

<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->

- Create the first release note entry in this section!
- The `services.polipo` module has been removed as `polipo` is unmaintained and archived upstream.

## Other Notable Changes {#sec-release-25.11-notable-changes}

+2 −2
Original line number Diff line number Diff line
@@ -167,7 +167,7 @@ in
      nsd = 126;
      gitolite = 127;
      znc = 128;
      polipo = 129;
      # polipo = 129; removed 2025-05-18
      mopidy = 130;
      #docker = 131; # unused
      gdm = 132;
@@ -507,7 +507,7 @@ in
      nsd = 126;
      gitolite = 127;
      znc = 128;
      polipo = 129;
      # polipo = 129; removed 2025-05-18
      mopidy = 130;
      docker = 131;
      gdm = 132;
+0 −1
Original line number Diff line number Diff line
@@ -1268,7 +1268,6 @@
  ./services/networking/picosnitch.nix
  ./services/networking/pixiecore.nix
  ./services/networking/pleroma.nix
  ./services/networking/polipo.nix
  ./services/networking/powerdns.nix
  ./services/networking/pppd.nix
  ./services/networking/pptpd.nix
+3 −0
Original line number Diff line number Diff line
@@ -193,6 +193,9 @@ in
    (mkRemovedOptionModule [ "services" "pantheon" "files" ] ''
      This module was removed, please add pkgs.pantheon.elementary-files to environment.systemPackages directly.
    '')
    (mkRemovedOptionModule [ "services" "polipo" ] ''
      The polipo project is unmaintained and archived upstream.
    '')
    (mkRemovedOptionModule [ "services" "prey" ] ''
      prey-bash-client is deprecated upstream
    '')
+0 −124
Original line number Diff line number Diff line
{
  config,
  lib,
  pkgs,
  ...
}:

with lib;

let

  cfg = config.services.polipo;

  polipoConfig = pkgs.writeText "polipo.conf" ''
    proxyAddress = ${cfg.proxyAddress}
    proxyPort = ${toString cfg.proxyPort}
    allowedClients = ${concatStringsSep ", " cfg.allowedClients}
    ${optionalString (cfg.parentProxy != "") "parentProxy = ${cfg.parentProxy}"}
    ${optionalString (cfg.socksParentProxy != "") "socksParentProxy = ${cfg.socksParentProxy}"}
    ${config.services.polipo.extraConfig}
  '';

in

{

  options = {

    services.polipo = {

      enable = mkEnableOption "polipo caching web proxy";

      proxyAddress = mkOption {
        type = types.str;
        default = "127.0.0.1";
        description = "IP address on which Polipo will listen.";
      };

      proxyPort = mkOption {
        type = types.port;
        default = 8123;
        description = "TCP port on which Polipo will listen.";
      };

      allowedClients = mkOption {
        type = types.listOf types.str;
        default = [
          "127.0.0.1"
          "::1"
        ];
        example = [
          "127.0.0.1"
          "::1"
          "134.157.168.0/24"
          "2001:660:116::/48"
        ];
        description = ''
          List of IP addresses or network addresses that may connect to Polipo.
        '';
      };

      parentProxy = mkOption {
        type = types.str;
        default = "";
        example = "localhost:8124";
        description = ''
          Hostname and port number of an HTTP parent proxy;
          it should have the form ‘host:port’.
        '';
      };

      socksParentProxy = mkOption {
        type = types.str;
        default = "";
        example = "localhost:9050";
        description = ''
          Hostname and port number of an SOCKS parent proxy;
          it should have the form ‘host:port’.
        '';
      };

      extraConfig = mkOption {
        type = types.lines;
        default = "";
        description = ''
          Polio configuration. Contents will be added
          verbatim to the configuration file.
        '';
      };

    };

  };

  config = mkIf cfg.enable {

    users.users.polipo = {
      uid = config.ids.uids.polipo;
      description = "Polipo caching proxy user";
      home = "/var/cache/polipo";
      createHome = true;
    };

    users.groups.polipo = {
      gid = config.ids.gids.polipo;
      members = [ "polipo" ];
    };

    systemd.services.polipo = {
      description = "caching web proxy";
      after = [
        "network.target"
        "nss-lookup.target"
      ];
      wantedBy = [ "multi-user.target" ];
      serviceConfig = {
        ExecStart = "${pkgs.polipo}/bin/polipo -c ${polipoConfig}";
        User = "polipo";
      };
    };

  };

}
Loading