gpt4 book ai didi

overlay - 尼克斯): Set "permittedInsecurePackages" only for one package build (in an overlay?)

转载 作者:行者123 更新时间:2023-12-04 13:20:41 25 4
gpt4 key购买 nike

我只想为我在 nix 的叠加层中定义的构建应用配置点。

也就是我要设置

permittedInsecurePackages = [
"webkitgtk-2.4.11"
];

在叠加层中。我想在那里做,因为覆盖是为了设置我的爪子邮件配置;如果我不安装 claws-mail,我不想允许 webkitgtk(如果我将它放入 ~/.config/nixpkgs/config.nix 中,这可能会发生)。

有没有办法在叠加层中设置它?我尝试将其设置为 self.config。或 super.config.,但均无效。

最佳答案

您不能在本地覆盖配置,但您可以阻止该配置妨碍您尝试实现的目标。

此处最简单的事情是清除传递给 claws-mail 构建的 webkitgtk 副本中的 meta.knownVulnerabilities

展示这是如何做到的——

let
ignoringVulns = x: x // { meta = (x.meta // { knownVulnerabilities = []; }); };
webkitGtkIgnoringVulns = pkgs.webkitgtk24x-gtk2.overrideAttrs ignoringVulns;
in
pkgs.clawsMail.override { webkitgtk24x-gtk2 = webkitGtkIgnoringVulns; }

以上是在 nix repl 中测试的。在覆盖层中,您可以将 pkgs. 替换为 super. 以引用手头包的原始/未修改版本;将 webkitGtkIgnoringVulns 保留在 let 中仍然很重要(或者以其他方式将其引入覆盖评估的 attrset 中)如果你不这样做不希望它在任何其他范围内定义。

也就是说,在叠加层中执行此操作可能如下所示:

self: super: let
ignoringVulns = x: x // { meta = (x.meta // { knownVulnerabilities = []; }); };
in {
clawsMail = super.clawsMail.override {
webkitgtk24x-gtk2 = self.webkitgtk24x-gtk2.overrideAttrs ignoringVulns;
};
}

关于overlay - 尼克斯): Set "permittedInsecurePackages" only for one package build (in an overlay?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53566342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com