👋
nixpkgsの更新を待たずにoverrideしてパッケージをインストールする(git 2.39.1の例)
背景
gitのセキュリティアナウンスがあった。更新を待たずに自分でパッチを当てて最新版のgitをいれたい
nixpkgsへのPRはこっちにある。これがマージされる前に最新版をいれたい。
やったこと
.config/nixpkgs/config.nix
に以下のようなoverrideを書いて nix-env -iA nixpkgs.git
した。バージョンが2.39.1より前かどうか確認するとよりよさそうだけど、次の機会に譲ることにした
{
packageOverrides = pkgs:
with pkgs;
let git_2_39_1 = git.overrideDerivation (drv:
let version = "2.39.1";
in {
inherit version;
name = "git-${version}";
src = fetchurl {
url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
sha256 = "sha256-QKOKCEezDDcbNYc7OvzxI4hd1B6j7Lv1EO+pfzzlwWE=";
};
});
in {
git = git_2_39_1;
};
}
より詳しく
overrideDerivationを使うとderivationの値を差し替えられる。
versionの指定によって置き換えられる部分を調べて置き換えた。
調査メモを残しているので必要があれば参考にください。
Discussion