2

Nixpkgs オーバーレイを使用して Firefox パッケージに makeFlag を追加したいのですが、簡単ではないようです。

w3m をオーバーライドすると動作します...

(import <nixpkgs> {
  overlays = [
    (self: super: {
      w3m = super.w3m.overrideAttrs (oldAttrs: {
        # that makeFlag makes no sense for w3m, it's just for demonstration
        makeFlags = oldAttrs.makeFlags ++ [ "BUILD_OFFICIAL=1" ];
      });
    })
  ];
}).w3m

...しかし、Firefox をオーバーライドしてもそうではありません。

(import <nixpkgs> {
  overlays = [
    (self: super: {
      firefox = super.firefox.overrideAttrs (oldAttrs: {
        makeFlags = oldAttrs.makeFlags ++ [ "BUILD_OFFICIAL=1" ];
      });
    })
  ];
}).firefox
$ nix build -f default.nix
error: attribute 'makeFlags' missing, at /path/to/default.nix:5:21
(use '--show-trace' to show detailed location information)
4

1 に答える 1

3

firefox-unwrapped属性をオーバーライドする必要があることが判明しました。

(import <nixpkgs> {
  overlays = [
    (self: super: {
      firefox-unwrapped = super.firefox-unwrapped.overrideAttrs (oldAttrs: {
        makeFlags = oldAttrs.makeFlags ++ [ "BUILD_OFFICIAL=1" ];
      });
    })
  ];
}).firefox-unwrapped

そのように式が評価されます。

于 2019-06-21T15:35:30.533 に答える