Setel bendera dalam paket nix

Sep 30 2020

Saya mencoba untuk menghubungkan proyek saya dengan opensl statis. Saya perhatikan bahwa ada flag staticdi paket openssl:https://github.com/NixOS/nixpkgs/blob/d6a12e8d9e0a4ac35ed401881e0d3160c764ac36/pkgs/development/libraries/openssl/default.nix#L5tetapi saya tidak tahu bagaimana cara menyetelnya saat menggunakannya. ( pkgs.openssl ...?).

Saat ini saya "memecahkan" dengan menggunakan pkgs.pkgsStatic.openssl, tetapi memiliki efek samping yang sangat mengganggu pada bentuk gccdan dependensi lain yang tidak terkait sedang dikompilasi ulang secara statis (apa sih?).

Bagaimana cara menggunakan opensslpaket dengan bendera statis diaktifkan?

Jawaban

1 AtnNn Oct 05 2020 at 04:42

Anda dapat mengubah argumen yang diteruskan ke paket dengan override. Ini cukup jika Anda hanya ingin membuat statis openssl:

pkgs.openssl.override {
    static = true;
}

Untuk membangun paket lain menggunakan kustomisasi ini openssl, itu harus ditambahkan kembali ke nixpkgsdalam overlay:

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

Overlay ini dapat ditempatkan dalam ~/.config/nixpkgs/overlays/openssl-static.nixatau ditambahkan ke configuration.nix's nixpkgs.overlays.