summary refs log tree commit diff
diff options
context:
space:
mode:
authorEmery Hemingway <ehmry@c3d2.de>2022-03-03 11:14:03 -0600
committerehmry <ehmry@posteo.net>2022-03-25 15:59:05 +0000
commitad15abe7ffbc68ba8a41fdb9270c31b75e2e7fd8 (patch)
tree8969291414446c0bbc619f4ae70302e66016bfd5
parentb861f07f8203abd3702281eda6fb7f264200fc49 (diff)
downloadnixpkgs-ad15abe7ffbc68ba8a41fdb9270c31b75e2e7fd8.tar
nixpkgs-ad15abe7ffbc68ba8a41fdb9270c31b75e2e7fd8.tar.gz
nixpkgs-ad15abe7ffbc68ba8a41fdb9270c31b75e2e7fd8.tar.bz2
nixpkgs-ad15abe7ffbc68ba8a41fdb9270c31b75e2e7fd8.tar.lz
nixpkgs-ad15abe7ffbc68ba8a41fdb9270c31b75e2e7fd8.tar.xz
nixpkgs-ad15abe7ffbc68ba8a41fdb9270c31b75e2e7fd8.tar.zst
nixpkgs-ad15abe7ffbc68ba8a41fdb9270c31b75e2e7fd8.zip
squid: 4.17 -> 5.4.1
* enable HTCP
* enable systemd support
* add NixOS option "services.squid.package"
-rw-r--r--nixos/modules/services/networking/squid.nix17
-rw-r--r--pkgs/servers/squid/default.nix14
2 files changed, 22 insertions, 9 deletions
diff --git a/nixos/modules/services/networking/squid.nix b/nixos/modules/services/networking/squid.nix
index 4f3881af8bb..db4f0d26b6f 100644
--- a/nixos/modules/services/networking/squid.nix
+++ b/nixos/modules/services/networking/squid.nix
@@ -111,6 +111,13 @@ in
         description = "Whether to run squid web proxy.";
       };
 
+      package = mkOption {
+        default = pkgs.squid;
+        defaultText = literalExpression "pkgs.squid";
+        type = types.package;
+        description = "Squid package to use.";
+      };
+
       proxyAddress = mkOption {
         type = types.nullOr types.str;
         default = null;
@@ -157,17 +164,21 @@ in
     users.groups.squid = {};
 
     systemd.services.squid = {
-      description = "Squid caching web proxy";
+      description = "Squid caching proxy";
+      documentation = [ "man:squid(8)" ];
       after = [ "network.target" "nss-lookup.target" ];
       wantedBy = [ "multi-user.target"];
       preStart = ''
         mkdir -p "/var/log/squid"
         chown squid:squid "/var/log/squid"
+        ${cfg.package}/bin/squid --foreground -z -f ${squidConfig}
       '';
       serviceConfig = {
-        Type="forking";
         PIDFile="/run/squid.pid";
-        ExecStart  = "${pkgs.squid}/bin/squid -YCs -f ${squidConfig}";
+        ExecStart  = "${cfg.package}/bin/squid --foreground -YCs -f ${squidConfig}";
+        ExecReload="kill -HUP $MAINPID";
+        KillMode="mixed";
+        NotifyAccess="all";
       };
     };
 
diff --git a/pkgs/servers/squid/default.nix b/pkgs/servers/squid/default.nix
index dae9d21c7f5..70b9c869f11 100644
--- a/pkgs/servers/squid/default.nix
+++ b/pkgs/servers/squid/default.nix
@@ -1,20 +1,20 @@
 { lib, stdenv, fetchurl, perl, openldap, pam, db, cyrus_sasl, libcap
-, expat, libxml2, openssl, pkg-config
+, expat, libxml2, openssl, pkg-config, systemd
 }:
 
 stdenv.mkDerivation rec {
   pname = "squid";
-  version = "4.17";
+  version = "5.4.1";
 
   src = fetchurl {
-    url = "http://www.squid-cache.org/Versions/v4/${pname}-${version}.tar.xz";
-    sha256 = "sha256-y5KKwIx8hrFRscj4J6vhqE2DGBoqhuDVEihhY+HjFBg=";
+    url = "http://www.squid-cache.org/Versions/v5/${pname}-${version}.tar.xz";
+    sha256 = "sha256-300xCpFmOuWcKbD4GD8iYjxeb3MYaa95OAWYerlMpBw=";
   };
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
     perl openldap db cyrus_sasl expat libxml2 openssl
-  ] ++ lib.optionals stdenv.isLinux [ libcap pam ];
+  ] ++ lib.optionals stdenv.isLinux [ libcap pam systemd ];
 
   configureFlags = [
     "--enable-ipv6"
@@ -26,7 +26,9 @@ stdenv.mkDerivation rec {
     "--enable-removal-policies=lru,heap"
     "--enable-delay-pools"
     "--enable-x-accelerator-vary"
-  ] ++ lib.optional (stdenv.isLinux && !stdenv.hostPlatform.isMusl) "--enable-linux-netfilter";
+    "--enable-htcp"
+  ] ++ lib.optional (stdenv.isLinux && !stdenv.hostPlatform.isMusl)
+    "--enable-linux-netfilter";
 
   meta = with lib; {
     description = "A caching proxy for the Web supporting HTTP, HTTPS, FTP, and more";