1{
2 config,
3 lib,
4 pkgs,
5 ...
6}:
7let
8 cfg = config.programs.pqos-wrapper;
9in
10{
11 options.programs.pqos-wrapper = {
12 enable = lib.mkEnableOption "PQoS Wrapper for BenchExec";
13 package = lib.mkPackageOption pkgs "pqos-wrapper" { };
14 };
15
16 config = lib.mkIf cfg.enable {
17 hardware.cpu.x86.msr.enable = true;
18
19 security.wrappers.${cfg.package.meta.mainProgram} = {
20 owner = "nobody";
21 group = config.hardware.cpu.x86.msr.group;
22 source = lib.getExe cfg.package;
23 capabilities = "cap_sys_rawio=eip";
24 };
25 };
26
27 meta.maintainers = with lib.maintainers; [ lorenzleutgeb ];
28}