|
654 | 654 | # See comments on `statify_curl_including_exe` for the interaction with krb5!
|
655 | 655 | curl = statify_curl_including_exe previous.curl;
|
656 | 656 |
|
657 |
| - # TODO: All of this can be removed once https://github.com/NixOS/nixpkgs/pull/66506 |
658 |
| - # is available. |
659 |
| - # Given that we override `krb5` (above) in this overlay so that it has |
660 |
| - # static libs only, the `curl` used by `fetchurl` (e.g. via `fetchpatch`, |
661 |
| - # which some packages may use) cannot be dynamically linked against it. |
662 |
| - # Note this `curl` via `fetchurl` is NOT EXACTLY the same curl as our `curl` above |
663 |
| - # in the overlay, but has a peculiarity: |
664 |
| - # It forces `gssSupport = true` on Linux, undoing us setting it to `false` above! |
665 |
| - # See https://github.com/NixOS/nixpkgs/blob/73493b2a2df75b487c6056e577b6cf3e6aa9fc91/pkgs/top-level/all-packages.nix#L295 |
666 |
| - # So we have to turn it back off again here, *inside* `fetchurl`. |
667 |
| - # Because `fetchurl` is a form of boostrap package, |
668 |
| - # (which make ssense, as `curl`'s source code itself must be fetchurl'd), |
669 |
| - # we can't just `fetchurl.override { curl = the_curl_from_the_overlay_above; }`; |
670 |
| - # that would give an infinite evaluation loop. |
671 |
| - # Instead, we have override the `curl` *after* `all-packages.nix` has force-set |
672 |
| - # `gssSupport = false`. |
673 |
| - # Other alternatives are to just use a statically linked `curl` binary for |
674 |
| - # `fetchurl`, or to keep `gssSupport = true` and give it a `krb5` that has |
675 |
| - # static libs switched off again. |
676 |
| - # |
677 |
| - # Note: This needs the commit from https://github.com/NixOS/nixpkgs/pull/66503 to work, |
678 |
| - # which allows us to do `fetchurl.override`. |
679 |
| - fetchurl = previous.fetchurl.override (old: { |
680 |
| - curl = |
681 |
| - # We have the 3 choices mentioned above: |
682 |
| - |
683 |
| - # 1) Turning `gssSupport` back off: |
684 |
| - |
685 |
| - (old.curl.override { gssSupport = false; }).overrideAttrs (old: { |
686 |
| - makeFlags = builtins.filter (x: x != "curl_LDFLAGS=-all-static") (old.makeFlags or []); |
687 |
| - }); |
688 |
| - |
689 |
| - # 2) Static `curl` binary: |
690 |
| - |
691 |
| - # statify_curl old.curl; |
692 |
| - |
693 |
| - # 3) Non-statick krb5: |
694 |
| - |
695 |
| - # (old.curl.override (old: { |
696 |
| - # libkrb5 = old.libkrb5.override { staticOnly = false; }; |
697 |
| - # })).overrideAttrs (old: { |
698 |
| - # makeFlags = builtins.filter (x: x != "curl_LDFLAGS=-all-static") old.makeFlags; |
699 |
| - # }); |
700 |
| - }); |
701 | 657 | };
|
702 | 658 |
|
703 | 659 |
|
|
0 commit comments