diff options
author | Vincent Ambo <tazjin@google.com> | 2020-05-17T19·46+0100 |
---|---|---|
committer | Vincent Ambo <tazjin@google.com> | 2020-05-17T19·46+0100 |
commit | 8944370b7f92c99c3a872218f717f11ebbf716ca (patch) | |
tree | 8b4be49b292623f29e917bf554564698ffbd0eed | |
parent | 9d865dbb1fed8da4ff471379f803814521298d16 (diff) |
feat(3p/nix): Add new Meson-based derivation for building Nix r/745
This builds the mesonified Nix and is compatible with the depot structure and nix-shell.
-rw-r--r-- | third_party/nix/default.nix | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/third_party/nix/default.nix b/third_party/nix/default.nix new file mode 100644 index 000000000000..a5a8831f0504 --- /dev/null +++ b/third_party/nix/default.nix @@ -0,0 +1,71 @@ +{ pkgs ? (import <nixpkgs> {}).third_party, ... }: + +let + stdenv = with pkgs; overrideCC clangStdenv clang_9; + + aws-s3-cpp = pkgs.aws-sdk-cpp.override { + apis = ["s3" "transfer"]; + customMemoryManagement = false; + }; + + # TODO(tazjin): this is copied from the original derivation, but what + # is it for? + largeBoehm = pkgs.boehmgc.override { + enableLargeConfig = true; + }; +in stdenv.mkDerivation { + name = "nix"; + src = ./.; + + nativeBuildInputs = with pkgs; [ + bison + meson + ninja + pkgconfig + libxml2 + libxslt + ]; + + # TODO(tazjin): Some of these might only be required for native inputs + buildInputs = with pkgs; [ + aws-s3-cpp + boost + brotli + bzip2 + curl + editline + flex + libseccomp + libsodium + openssl + sqlite + xz + ]; + + propagatedBuildInputs = [ + largeBoehm + ]; + + # Install the various symlinks to the Nix binary which users expect + # to exist. + postInstall = '' + ln -s $out/bin/nix $out/bin/nix-build + ln -s $out/bin/nix $out/bin/nix-channel + ln -s $out/bin/nix $out/bin/nix-collect-garbage + ln -s $out/bin/nix $out/bin/nix-copy-closure + ln -s $out/bin/nix $out/bin/nix-daemon + ln -s $out/bin/nix $out/bin/nix-env + ln -s $out/bin/nix $out/bin/nix-hash + ln -s $out/bin/nix $out/bin/nix-instantiate + ln -s $out/bin/nix $out/bin/nix-prefetch-url + ln -s $out/bin/nix $out/bin/nix-shell + ln -s $out/bin/nix $out/bin/nix-store + + mkdir -p $out/libexec/nix + ln -s $out/bin/nix $out/libexec/nix/remote-build + ''; + + # TODO(tazjin): equivalent of --enable-gc + # TODO(tazjin): integration test setup? + # TODO(tazjin): docs generation? +} |