Установить флаг в пакете nix

#nix

#nix

Вопрос:

Я пытаюсь связать свой проект со статическим openssl. Я заметил static , что в пакете openssl есть флаг: https://github.com/NixOS/nixpkgs/blob/d6a12e8d9e0a4ac35ed401881e0d3160c764ac36/pkgs/development/libraries/openssl/default.nix#L5 но я понятия не имею, как его можно настроить при его использовании. ( pkgs.openssl ... ?).

В настоящее время я «решил» это с помощью pkgs.pkgsStatic.openssl , но это имеет очень раздражающий побочный эффект при статической перекомпиляции form of gcc и других не связанных зависимостей (какого черта?).

Как можно использовать openssl пакет с включенным статическим флагом?

Ответ №1:

Вы можете изменить аргументы, передаваемые в пакет с override помощью . Этого достаточно, если вы просто хотите создать статический openssl :

 pkgs.openssl.override {
    static = true;
}
  

Чтобы создавать другие пакеты с использованием этого настроенного openssl , его необходимо добавить обратно в nixpkgs использование наложения:

 self: super: {
    openssl = super.openssl.override {
        static = true;
    };
}
  

Это наложение может быть помещено в ~/.config/nixpkgs/overlays/openssl-static.nix configuration.nix ‘s или добавлено к nixpkgs.overlays нему.