Remove F-PROT package and service module (EoL) (#160372)
parent
6fc2b4b5e9
commit
671a068a01
@ -1,82 +0,0 @@ |
||||
{ config, lib, pkgs, ... }: |
||||
with lib; |
||||
let |
||||
fprotUser = "fprot"; |
||||
stateDir = "/var/lib/fprot"; |
||||
fprotGroup = fprotUser; |
||||
cfg = config.services.fprot; |
||||
in { |
||||
options = { |
||||
|
||||
services.fprot = { |
||||
updater = { |
||||
enable = mkEnableOption "automatic F-Prot virus definitions database updates"; |
||||
|
||||
productData = mkOption { |
||||
description = '' |
||||
product.data file. Defaults to the one supplied with installation package. |
||||
''; |
||||
type = types.path; |
||||
}; |
||||
|
||||
frequency = mkOption { |
||||
default = 30; |
||||
type = types.int; |
||||
description = '' |
||||
Update virus definitions every X minutes. |
||||
''; |
||||
}; |
||||
|
||||
licenseKeyfile = mkOption { |
||||
type = types.path; |
||||
description = '' |
||||
License keyfile. Defaults to the one supplied with installation package. |
||||
''; |
||||
}; |
||||
|
||||
}; |
||||
}; |
||||
}; |
||||
|
||||
###### implementation |
||||
|
||||
config = mkIf cfg.updater.enable { |
||||
|
||||
services.fprot.updater.productData = mkDefault "${pkgs.fprot}/opt/f-prot/product.data"; |
||||
services.fprot.updater.licenseKeyfile = mkDefault "${pkgs.fprot}/opt/f-prot/license.key"; |
||||
|
||||
environment.systemPackages = [ pkgs.fprot ]; |
||||
environment.etc."f-prot.conf" = { |
||||
source = "${pkgs.fprot}/opt/f-prot/f-prot.conf"; |
||||
}; |
||||
|
||||
users.users.${fprotUser} = |
||||
{ uid = config.ids.uids.fprot; |
||||
description = "F-Prot daemon user"; |
||||
home = stateDir; |
||||
}; |
||||
|
||||
users.groups.${fprotGroup} = |
||||
{ gid = config.ids.gids.fprot; }; |
||||
|
||||
services.cron.systemCronJobs = [ "*/${toString cfg.updater.frequency} * * * * root start fprot-updater" ]; |
||||
|
||||
systemd.services.fprot-updater = { |
||||
serviceConfig = { |
||||
Type = "oneshot"; |
||||
RemainAfterExit = false; |
||||
}; |
||||
wantedBy = [ "multi-user.target" ]; |
||||
|
||||
# have to copy fpupdate executable because it insists on storing the virus database in the same dir |
||||
preStart = '' |
||||
mkdir -m 0755 -p ${stateDir} |
||||
chown ${fprotUser}:${fprotGroup} ${stateDir} |
||||
cp ${pkgs.fprot}/opt/f-prot/fpupdate ${stateDir} |
||||
ln -sf ${cfg.updater.productData} ${stateDir}/product.data |
||||
''; |
||||
|
||||
script = "/var/lib/fprot/fpupdate --keyfile ${cfg.updater.licenseKeyfile}"; |
||||
}; |
||||
}; |
||||
} |
@ -1,42 +0,0 @@ |
||||
{ lib, stdenv, fetchurl }: |
||||
|
||||
stdenv.mkDerivation { |
||||
|
||||
pname = "f-prot"; |
||||
version = "6.2.1"; |
||||
|
||||
src = fetchurl { |
||||
url = "http://files.f-prot.com/files/unix-trial/fp-Linux.x86.32-ws.tar.gz"; |
||||
sha256 = "0qlsrkanf0inplwv1i6hqbimdg91syf5ggd1vahsm9lhivmnr0v5"; |
||||
}; |
||||
|
||||
installPhase = '' |
||||
mkdir -p $out/bin |
||||
cp fpscan $out/bin |
||||
|
||||
mkdir -p $out/opt/f-prot |
||||
cp fpupdate $out/opt/f-prot |
||||
cp product.data.default $out/opt/f-prot/product.data |
||||
cp license.key $out/opt/f-prot/ |
||||
cp f-prot.conf.default $out/opt/f-prot/f-prot.conf |
||||
ln -s $out/opt/f-prot/fpupdate $out/bin/fpupdate |
||||
|
||||
patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/opt/f-prot/fpupdate |
||||
|
||||
mkdir -p $out/share/man/ |
||||
mkdir -p $out/share/man/man1 |
||||
cp doc/man/fpscan.1 $out/share/man/man1 |
||||
mkdir -p $out/share/man/man5 |
||||
cp doc/man/f-prot.conf.5 $out/share/man/man5 |
||||
mkdir -p $out/share/man/man8 |
||||
cp doc/man/fpupdate.8 $out/share/man/man8 |
||||
''; |
||||
|
||||
meta = with lib; { |
||||
homepage = "http://www.f-prot.com"; |
||||
description = "A popular proprietary antivirus program"; |
||||
license = licenses.unfree; |
||||
maintainers = [ ]; |
||||
platforms = platforms.linux; |
||||
}; |
||||
} |
Loading…
Reference in new issue