about summary refs log tree commit diff
path: root/third_party/nix
diff options
context:
space:
mode:
authorVincent Ambo <tazjin@google.com>2020-05-17T15·43+0100
committerVincent Ambo <tazjin@google.com>2020-05-17T15·43+0100
commit40395860c721165f0cc36dfd15b06bc1ea8590bc (patch)
tree0d335c4964d04a84c7827c7b05b1e1116b3b6524 /third_party/nix
parent0f2cf531f705d370321843e5ba9135b2ebdb5d19 (diff)
chore(3p/nix): Remove old build system and other miscellanies r/741
There are still remnants of the old build system (for example, the
build derivations are not yet updated at all), but we'll get there.
Diffstat (limited to 'third_party/nix')
-rw-r--r--third_party/nix/Makefile22
-rw-r--r--third_party/nix/Makefile.config.in41
-rwxr-xr-xthird_party/nix/bootstrap-ac.sh4
-rwxr-xr-xthird_party/nix/bootstrap-meson.sh8
-rwxr-xr-xthird_party/nix/bootstrap.sh4
-rw-r--r--third_party/nix/configure.ac316
-rw-r--r--third_party/nix/corepkgs/local.mk5
-rw-r--r--third_party/nix/doc/manual/local.mk86
-rw-r--r--third_party/nix/local.mk12
-rw-r--r--third_party/nix/m4/ax_boost_base.m4302
-rw-r--r--third_party/nix/m4/ax_cxx_compile_stdcxx.m4951
-rw-r--r--third_party/nix/m4/ax_cxx_compile_stdcxx_17.m435
-rw-r--r--third_party/nix/misc/launchd/local.mk5
-rw-r--r--third_party/nix/misc/launchd/meson.build19
-rw-r--r--third_party/nix/misc/launchd/org.nixos.nix-daemon.plist.in27
-rw-r--r--third_party/nix/misc/meson.build6
-rw-r--r--third_party/nix/misc/systemd/local.mk5
-rw-r--r--third_party/nix/misc/systemv/meson.build8
-rwxr-xr-xthird_party/nix/misc/systemv/nix-daemon113
-rw-r--r--third_party/nix/misc/upstart/local.mk5
-rw-r--r--third_party/nix/misc/upstart/meson.build26
-rw-r--r--third_party/nix/misc/upstart/nix-daemon.conf.in5
-rw-r--r--third_party/nix/mk/clean.mk11
-rw-r--r--third_party/nix/mk/dist.mk17
-rw-r--r--third_party/nix/mk/functions.mk14
-rw-r--r--third_party/nix/mk/install.mk62
-rw-r--r--third_party/nix/mk/jars.mk36
-rw-r--r--third_party/nix/mk/lib.mk160
-rw-r--r--third_party/nix/mk/libraries.mk162
-rw-r--r--third_party/nix/mk/patterns.mk11
-rw-r--r--third_party/nix/mk/programs.mk79
-rw-r--r--third_party/nix/mk/templates.mk19
-rw-r--r--third_party/nix/mk/tests.mk45
-rw-r--r--third_party/nix/mk/tracing.mk17
-rw-r--r--third_party/nix/nix.spec.in173
-rw-r--r--third_party/nix/perl/MANIFEST7
-rw-r--r--third_party/nix/perl/Makefile7
-rw-r--r--third_party/nix/perl/Makefile.config.in18
-rw-r--r--third_party/nix/perl/configure.ac101
-rw-r--r--third_party/nix/perl/lib/Nix/Config.pm.in34
-rw-r--r--third_party/nix/perl/lib/Nix/CopyClosure.pm61
-rw-r--r--third_party/nix/perl/lib/Nix/Manifest.pm325
-rw-r--r--third_party/nix/perl/lib/Nix/SSH.pm110
-rw-r--r--third_party/nix/perl/lib/Nix/Store.pm95
-rw-r--r--third_party/nix/perl/lib/Nix/Store.xs346
-rw-r--r--third_party/nix/perl/lib/Nix/Utils.pm47
-rw-r--r--third_party/nix/perl/local.mk43
-rw-r--r--third_party/nix/scripts/local.mk13
-rw-r--r--third_party/nix/src/libexpr/local.mk33
-rw-r--r--third_party/nix/src/libmain/local.mk15
-rw-r--r--third_party/nix/src/libstore/local.mk60
-rw-r--r--third_party/nix/src/libutil/local.mk9
-rw-r--r--third_party/nix/src/nix/local.mk25
-rw-r--r--third_party/nix/src/resolve-system-dependencies/local.mk11
-rw-r--r--third_party/nix/tests/local.mk42
-rw-r--r--third_party/nix/tests/plugins/local.mk9
56 files changed, 0 insertions, 4222 deletions
diff --git a/third_party/nix/Makefile b/third_party/nix/Makefile
deleted file mode 100644
index 9ac82fda657d..000000000000
--- a/third_party/nix/Makefile
+++ /dev/null
@@ -1,22 +0,0 @@
-makefiles = \
-  local.mk \
-  src/libutil/local.mk \
-  src/libstore/local.mk \
-  src/libmain/local.mk \
-  src/libexpr/local.mk \
-  src/nix/local.mk \
-  src/resolve-system-dependencies/local.mk \
-  scripts/local.mk \
-  corepkgs/local.mk \
-  misc/systemd/local.mk \
-  misc/launchd/local.mk \
-  misc/upstart/local.mk \
-  doc/manual/local.mk \
-  tests/local.mk \
-  tests/plugins/local.mk
-
-GLOBAL_CXXFLAGS += -g -Wall -include config.h
-
--include Makefile.config
-
-include mk/lib.mk
diff --git a/third_party/nix/Makefile.config.in b/third_party/nix/Makefile.config.in
deleted file mode 100644
index 7e3b35b98196..000000000000
--- a/third_party/nix/Makefile.config.in
+++ /dev/null
@@ -1,41 +0,0 @@
-AR = @AR@
-BDW_GC_LIBS = @BDW_GC_LIBS@
-BUILD_SHARED_LIBS = @BUILD_SHARED_LIBS@
-CC = @CC@
-CFLAGS = @CFLAGS@
-CXX = @CXX@
-CXXFLAGS = @CXXFLAGS@
-LDFLAGS = @LDFLAGS@
-ENABLE_S3 = @ENABLE_S3@
-HAVE_SODIUM = @HAVE_SODIUM@
-HAVE_SECCOMP = @HAVE_SECCOMP@
-BOOST_LDFLAGS = @BOOST_LDFLAGS@
-LIBCURL_LIBS = @LIBCURL_LIBS@
-OPENSSL_LIBS = @OPENSSL_LIBS@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-SODIUM_LIBS = @SODIUM_LIBS@
-LIBLZMA_LIBS = @LIBLZMA_LIBS@
-SQLITE3_LIBS = @SQLITE3_LIBS@
-LIBBROTLI_LIBS = @LIBBROTLI_LIBS@
-EDITLINE_LIBS = @EDITLINE_LIBS@
-bash = @bash@
-bindir = @bindir@
-lsof = @lsof@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-exec_prefix = @exec_prefix@
-includedir = @includedir@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-pkglibdir = $(libdir)/$(PACKAGE_NAME)
-prefix = @prefix@
-sandbox_shell = @sandbox_shell@
-storedir = @storedir@
-sysconfdir = @sysconfdir@
-doc_generate = @doc_generate@
-xmllint = @xmllint@
-xsltproc = @xsltproc@
diff --git a/third_party/nix/bootstrap-ac.sh b/third_party/nix/bootstrap-ac.sh
deleted file mode 100755
index e3e259351675..000000000000
--- a/third_party/nix/bootstrap-ac.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-#! /bin/sh -e
-rm -f aclocal.m4
-mkdir -p config
-exec autoreconf -vfi
diff --git a/third_party/nix/bootstrap-meson.sh b/third_party/nix/bootstrap-meson.sh
deleted file mode 100755
index 4515789d6f35..000000000000
--- a/third_party/nix/bootstrap-meson.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#! /usr/bin/env bash
-
-rm -rf build*
-meson build-gcc
-
-cd build-gcc
-ninja -j2
-
diff --git a/third_party/nix/bootstrap.sh b/third_party/nix/bootstrap.sh
deleted file mode 100755
index e3e259351675..000000000000
--- a/third_party/nix/bootstrap.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-#! /bin/sh -e
-rm -f aclocal.m4
-mkdir -p config
-exec autoreconf -vfi
diff --git a/third_party/nix/configure.ac b/third_party/nix/configure.ac
deleted file mode 100644
index a52830b3835f..000000000000
--- a/third_party/nix/configure.ac
+++ /dev/null
@@ -1,316 +0,0 @@
-AC_INIT(nix, m4_esyscmd([bash -c "echo -n $(cat ./.version)$VERSION_SUFFIX"]))
-AC_CONFIG_MACRO_DIRS([m4])
-AC_CONFIG_SRCDIR(README.md)
-AC_CONFIG_AUX_DIR(config)
-
-AC_PROG_SED
-
-# Construct a Nix system name (like "i686-linux").
-AC_CANONICAL_HOST
-AC_MSG_CHECKING([for the canonical Nix system name])
-
-AC_ARG_WITH(system, AC_HELP_STRING([--with-system=SYSTEM],
-  [Platform identifier (e.g., `i686-linux').]),
-  [system=$withval],
-  [case "$host_cpu" in
-     i*86)
-        machine_name="i686";;
-     amd64)
-        machine_name="x86_64";;
-     armv6|armv7)
-        machine_name="${host_cpu}l";;
-     *)
-        machine_name="$host_cpu";;
-   esac
-
-   case "$host_os" in
-     linux-gnu*|linux-musl*)
-        # For backward compatibility, strip the `-gnu' part.
-        system="$machine_name-linux";;
-     *)
-        # Strip the version number from names such as `gnu0.3',
-        # `darwin10.2.0', etc.
-        system="$machine_name-`echo $host_os | "$SED" -e's/@<:@0-9.@:>@*$//g'`";;
-   esac])
-
-sys_name=$(uname -s | tr 'A-Z ' 'a-z_')
-
-case $sys_name in
-    cygwin*)
-        sys_name=cygwin
-        ;;
-esac
-
-AC_MSG_RESULT($system)
-AC_SUBST(system)
-AC_DEFINE_UNQUOTED(SYSTEM, ["$system"], [platform identifier ('cpu-os')])
-
-
-# State should be stored in /nix/var, unless the user overrides it explicitly.
-test "$localstatedir" = '${prefix}/var' && localstatedir=/nix/var
-
-
-# Set default flags for nix (as per AC_PROG_CC/CXX docs),
-# while still allowing the user to override them from the command line.
-: ${CFLAGS="-O3"}
-: ${CXXFLAGS="-O3"}
-AC_PROG_CC
-AC_PROG_CXX
-AC_PROG_CPP
-AX_CXX_COMPILE_STDCXX_17([noext], [mandatory])
-
-AC_CHECK_TOOL([AR], [ar])
-
-# Use 64-bit file system calls so that we can support files > 2 GiB.
-AC_SYS_LARGEFILE
-
-
-# Solaris-specific stuff.
-AC_STRUCT_DIRENT_D_TYPE
-if test "$sys_name" = sunos; then
-    # Solaris requires -lsocket -lnsl for network functions
-    LIBS="-lsocket -lnsl $LIBS"
-fi
-
-
-# Check for pubsetbuf.
-AC_MSG_CHECKING([for pubsetbuf])
-AC_LANG_PUSH(C++)
-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <iostream>
-using namespace std;
-static char buf[1024];]],
-    [[cerr.rdbuf()->pubsetbuf(buf, sizeof(buf));]])],
-    [AC_MSG_RESULT(yes) AC_DEFINE(HAVE_PUBSETBUF, 1, [Whether pubsetbuf is available.])],
-    AC_MSG_RESULT(no))
-AC_LANG_POP(C++)
-
-
-AC_CHECK_FUNCS([statvfs pipe2])
-
-
-# Check for lutimes, optionally used for changing the mtime of
-# symlinks.
-AC_CHECK_FUNCS([lutimes])
-
-
-# Check whether the store optimiser can optimise symlinks.
-AC_MSG_CHECKING([whether it is possible to create a link to a symlink])
-ln -s bla tmp_link
-if ln tmp_link tmp_link2 2> /dev/null; then
-    AC_MSG_RESULT(yes)
-    AC_DEFINE(CAN_LINK_SYMLINK, 1, [Whether link() works on symlinks.])
-else
-    AC_MSG_RESULT(no)
-fi
-rm -f tmp_link tmp_link2
-
-
-# Check for <locale>.
-AC_LANG_PUSH(C++)
-AC_CHECK_HEADERS([locale])
-AC_LANG_POP(C++)
-
-
-AC_DEFUN([NEED_PROG],
-[
-AC_PATH_PROG($1, $2)
-if test -z "$$1"; then
-    AC_MSG_ERROR([$2 is required])
-fi
-])
-
-NEED_PROG(bash, bash)
-NEED_PROG(patch, patch)
-AC_PATH_PROG(xmllint, xmllint, false)
-AC_PATH_PROG(xsltproc, xsltproc, false)
-AC_PATH_PROG(flex, flex, false)
-AC_PATH_PROG(bison, bison, false)
-NEED_PROG(sed, sed)
-NEED_PROG(tar, tar)
-NEED_PROG(bzip2, bzip2)
-NEED_PROG(gzip, gzip)
-NEED_PROG(xz, xz)
-AC_PATH_PROG(dot, dot)
-AC_PATH_PROG(lsof, lsof, lsof)
-
-
-NEED_PROG(cat, cat)
-NEED_PROG(tr, tr)
-AC_ARG_WITH(coreutils-bin, AC_HELP_STRING([--with-coreutils-bin=PATH],
-  [path of cat, mkdir, etc.]),
-  coreutils=$withval, coreutils=$(dirname $cat))
-AC_SUBST(coreutils)
-
-
-AC_ARG_WITH(store-dir, AC_HELP_STRING([--with-store-dir=PATH],
-  [path of the Nix store (defaults to /nix/store)]),
-  storedir=$withval, storedir='/nix/store')
-AC_SUBST(storedir)
-
-
-# Look for boost, a required dependency.
-# Note that AX_BOOST_BASE only exports *CPP* BOOST_CPPFLAGS, no CXX flags,
-# and CPPFLAGS are not passed to the C++ compiler automatically.
-# Thus we append the returned CPPFLAGS to the CXXFLAGS here.
-AX_BOOST_BASE([1.66], [CXXFLAGS="$BOOST_CPPFLAGS $CXXFLAGS"], [AC_MSG_ERROR([Nix requires boost.])])
-# For unknown reasons, setting this directly in the ACTION-IF-FOUND above
-# ends up with LDFLAGS being empty, so we set it afterwards.
-LDFLAGS="$BOOST_LDFLAGS $LDFLAGS"
-
-
-# Look for OpenSSL, a required dependency.
-PKG_CHECK_MODULES([OPENSSL], [libcrypto], [CXXFLAGS="$OPENSSL_CFLAGS $CXXFLAGS"])
-
-
-# Look for libbz2, a required dependency.
-AC_CHECK_LIB([bz2], [BZ2_bzWriteOpen], [true],
-  [AC_MSG_ERROR([Nix requires libbz2, which is part of bzip2.  See https://web.archive.org/web/20180624184756/http://www.bzip.org/.])])
-AC_CHECK_HEADERS([bzlib.h], [true],
-  [AC_MSG_ERROR([Nix requires libbz2, which is part of bzip2.  See https://web.archive.org/web/20180624184756/http://www.bzip.org/.])])
-
-
-# Look for SQLite, a required dependency.
-PKG_CHECK_MODULES([SQLITE3], [sqlite3 >= 3.6.19], [CXXFLAGS="$SQLITE3_CFLAGS $CXXFLAGS"])
-
-
-# Look for libcurl, a required dependency.
-PKG_CHECK_MODULES([LIBCURL], [libcurl], [CXXFLAGS="$LIBCURL_CFLAGS $CXXFLAGS"])
-
-# Look for editline, a required dependency.
-# The the libeditline.pc file was added only in libeditline >= 1.15.2,
-# see https://github.com/troglobit/editline/commit/0a8f2ef4203c3a4a4726b9dd1336869cd0da8607,
-# but e.g. Ubuntu 16.04 has an older version, so we fall back to searching for
-# editline.h when the pkg-config approach fails.
-PKG_CHECK_MODULES([EDITLINE], [libeditline], [CXXFLAGS="$EDITLINE_CFLAGS $CXXFLAGS"], [
-  AC_CHECK_HEADERS([editline.h], [true],
-    [AC_MSG_ERROR([Nix requires libeditline; it was found neither via pkg-config nor its normal header.])])
-  AC_SEARCH_LIBS([readline read_history], [editline], [],
-    [AC_MSG_ERROR([Nix requires libeditline; it was not found via pkg-config, but via its header, but required functions do not work. Maybe it is too old? >= 1.14 is required.])])
-])
-
-# Look for libsodium, an optional dependency.
-PKG_CHECK_MODULES([SODIUM], [libsodium],
-  [AC_DEFINE([HAVE_SODIUM], [1], [Whether to use libsodium for cryptography.])
-   CXXFLAGS="$SODIUM_CFLAGS $CXXFLAGS"
-   have_sodium=1], [have_sodium=])
-AC_SUBST(HAVE_SODIUM, [$have_sodium])
-
-
-# Look for liblzma, a required dependency.
-PKG_CHECK_MODULES([LIBLZMA], [liblzma], [CXXFLAGS="$LIBLZMA_CFLAGS $CXXFLAGS"])
-AC_CHECK_LIB([lzma], [lzma_stream_encoder_mt],
-  [AC_DEFINE([HAVE_LZMA_MT], [1], [xz multithreaded compression support])])
-
-
-# Look for libbrotli{enc,dec}.
-PKG_CHECK_MODULES([LIBBROTLI], [libbrotlienc libbrotlidec], [CXXFLAGS="$LIBBROTLI_CFLAGS $CXXFLAGS"])
-
-
-# Look for libseccomp, required for Linux sandboxing.
-if test "$sys_name" = linux; then
-  AC_ARG_ENABLE([seccomp-sandboxing],
-                AC_HELP_STRING([--disable-seccomp-sandboxing],
-                               [Don't build support for seccomp sandboxing (only recommended if your arch doesn't support libseccomp yet!)]
-                              ))
-  if test "x$enable_seccomp_sandboxing" != "xno"; then
-    PKG_CHECK_MODULES([LIBSECCOMP], [libseccomp],
-                      [CXXFLAGS="$LIBSECCOMP_CFLAGS $CXXFLAGS"])
-    have_seccomp=1
-    AC_DEFINE([HAVE_SECCOMP], [1], [Whether seccomp is available and should be used for sandboxing.])
-  else
-    have_seccomp=
-  fi
-else
-  have_seccomp=
-fi
-AC_SUBST(HAVE_SECCOMP, [$have_seccomp])
-
-
-# Look for aws-cpp-sdk-s3.
-AC_LANG_PUSH(C++)
-AC_CHECK_HEADERS([aws/s3/S3Client.h],
-  [AC_DEFINE([ENABLE_S3], [1], [Whether to enable S3 support via aws-sdk-cpp.])
-  enable_s3=1], [enable_s3=])
-AC_SUBST(ENABLE_S3, [$enable_s3])
-AC_LANG_POP(C++)
-
-if test -n "$enable_s3"; then
-  declare -a aws_version_tokens=($(printf '#include <aws/core/VersionConfig.h>\nAWS_SDK_VERSION_STRING' | $CPP $CPPFLAGS - | grep -v '^#.*' | sed 's/"//g' | tr '.' ' '))
-  AC_DEFINE_UNQUOTED([AWS_VERSION_MAJOR], ${aws_version_tokens@<:@0@:>@}, [Major version of aws-sdk-cpp.])
-  AC_DEFINE_UNQUOTED([AWS_VERSION_MINOR], ${aws_version_tokens@<:@1@:>@}, [Minor version of aws-sdk-cpp.])
-fi
-
-
-# Whether to use the Boehm garbage collector.
-AC_ARG_ENABLE(gc, AC_HELP_STRING([--enable-gc],
-  [enable garbage collection in the Nix expression evaluator (requires Boehm GC) [default=no]]),
-  gc=$enableval, gc=no)
-if test "$gc" = yes; then
-  PKG_CHECK_MODULES([BDW_GC], [bdw-gc])
-  CXXFLAGS="$BDW_GC_CFLAGS $CXXFLAGS"
-  AC_DEFINE(HAVE_BOEHMGC, 1, [Whether to use the Boehm garbage collector.])
-fi
-
-
-# documentation generation switch
-AC_ARG_ENABLE(doc-gen, AC_HELP_STRING([--disable-doc-gen],
-  [disable documentation generation]),
-  doc_generate=$enableval, doc_generate=yes)
-AC_SUBST(doc_generate)
-
-
-# Setuid installations.
-AC_CHECK_FUNCS([setresuid setreuid lchown])
-
-
-# Nice to have, but not essential.
-AC_CHECK_FUNCS([strsignal posix_fallocate sysconf])
-
-
-# This is needed if bzip2 is a static library, and the Nix libraries
-# are dynamic.
-if test "$(uname)" = "Darwin"; then
-    LDFLAGS="-all_load $LDFLAGS"
-fi
-
-
-# Do we have GNU tar?
-AC_MSG_CHECKING([if you have a recent GNU tar])
-if $tar --version 2> /dev/null | grep -q GNU && tar cvf /dev/null --warning=no-timestamp ./config.log > /dev/null; then
-    AC_MSG_RESULT(yes)
-    tarFlags="--warning=no-timestamp"
-else
-    AC_MSG_RESULT(no)
-fi
-AC_SUBST(tarFlags)
-
-
-AC_ARG_WITH(sandbox-shell, AC_HELP_STRING([--with-sandbox-shell=PATH],
-  [path of a statically-linked shell to use as /bin/sh in sandboxes]),
-  sandbox_shell=$withval)
-AC_SUBST(sandbox_shell)
-
-AC_ARG_ENABLE(shared, AC_HELP_STRING([--enable-shared],
-  [Build shared libraries for Nix [default=yes]]),
-  shared=$enableval, shared=yes)
-if test "$shared" = yes; then
-  AC_SUBST(BUILD_SHARED_LIBS, 1, [Whether to build shared libraries.])
-else
-  AC_SUBST(BUILD_SHARED_LIBS, 0, [Whether to build shared libraries.])
-fi
-
-
-# Expand all variables in config.status.
-test "$prefix" = NONE && prefix=$ac_default_prefix
-test "$exec_prefix" = NONE && exec_prefix='${prefix}'
-for name in $ac_subst_vars; do
-    declare $name="$(eval echo "${!name}")"
-    declare $name="$(eval echo "${!name}")"
-    declare $name="$(eval echo "${!name}")"
-done
-
-rm -f Makefile.config
-
-AC_CONFIG_HEADER([config.h])
-AC_CONFIG_FILES([])
-AC_OUTPUT
diff --git a/third_party/nix/corepkgs/local.mk b/third_party/nix/corepkgs/local.mk
deleted file mode 100644
index 362c8eb612eb..000000000000
--- a/third_party/nix/corepkgs/local.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-corepkgs_FILES = buildenv.nix unpack-channel.nix derivation.nix fetchurl.nix imported-drv-to-derivation.nix
-
-$(foreach file,config.nix $(corepkgs_FILES),$(eval $(call install-data-in,$(d)/$(file),$(datadir)/nix/corepkgs)))
-
-template-files += $(d)/config.nix
diff --git a/third_party/nix/doc/manual/local.mk b/third_party/nix/doc/manual/local.mk
deleted file mode 100644
index b4e7f35d5017..000000000000
--- a/third_party/nix/doc/manual/local.mk
+++ /dev/null
@@ -1,86 +0,0 @@
-
-ifeq ($(doc_generate),yes)
-
-XSLTPROC = $(xsltproc) --nonet $(xmlflags) \
-  --param section.autolabel 1 \
-  --param section.label.includes.component.label 1 \
-  --param xref.with.number.and.title 1 \
-  --param toc.section.depth 3 \
-  --param admon.style \'\' \
-  --param callout.graphics.extension \'.gif\' \
-  --param contrib.inline.enabled 0 \
-  --stringparam generate.toc "book toc" \
-  --param keep.relative.image.uris 0
-
-docbookxsl = http://docbook.sourceforge.net/release/xsl-ns/current
-docbookrng = http://docbook.org/xml/5.0/rng/docbook.rng
-
-MANUAL_SRCS := $(call rwildcard, $(d), *.xml)
-
-
-# Do XInclude processing / RelaxNG validation
-$(d)/manual.xmli: $(d)/manual.xml $(MANUAL_SRCS) $(d)/version.txt
-	$(trace-gen) $(xmllint) --nonet --xinclude $< -o $@.tmp
-	@mv $@.tmp $@
-
-$(d)/version.txt:
-	$(trace-gen) echo -n $(PACKAGE_VERSION) > $@
-
-# Note: RelaxNG validation requires xmllint >= 2.7.4.
-$(d)/manual.is-valid: $(d)/manual.xmli
-	$(trace-gen) $(XSLTPROC) --novalid --stringparam profile.condition manual \
-	  $(docbookxsl)/profiling/profile.xsl $< 2> /dev/null | \
-	  $(xmllint) --nonet --noout --relaxng $(docbookrng) -
-	@touch $@
-
-clean-files += $(d)/manual.xmli $(d)/version.txt $(d)/manual.is-valid
-
-dist-files += $(d)/manual.xmli $(d)/version.txt $(d)/manual.is-valid
-
-
-# Generate man pages.
-man-pages := $(foreach n, \
-  nix-env.1 nix-build.1 nix-shell.1 nix-store.1 nix-instantiate.1 \
-  nix-collect-garbage.1 \
-  nix-prefetch-url.1 nix-channel.1 \
-  nix-hash.1 nix-copy-closure.1 \
-  nix.conf.5 nix-daemon.8, \
-  $(d)/$(n))
-
-$(firstword $(man-pages)): $(d)/manual.xmli $(d)/manual.is-valid
-	$(trace-gen) $(XSLTPROC) --novalid --stringparam profile.condition manpage \
-	  $(docbookxsl)/profiling/profile.xsl $< 2> /dev/null | \
-	  (cd doc/manual && $(XSLTPROC) $(docbookxsl)/manpages/docbook.xsl -)
-
-$(wordlist 2, $(words $(man-pages)), $(man-pages)): $(firstword $(man-pages))
-
-clean-files += $(d)/*.1 $(d)/*.5 $(d)/*.8
-
-dist-files += $(man-pages)
-
-
-# Generate the HTML manual.
-$(d)/manual.html: $(d)/manual.xml $(MANUAL_SRCS) $(d)/manual.is-valid
-	$(trace-gen) $(XSLTPROC) --xinclude --stringparam profile.condition manual \
-	  $(docbookxsl)/profiling/profile.xsl $< | \
-	  $(XSLTPROC) --output $@ $(docbookxsl)/xhtml/docbook.xsl -
-
-$(foreach file, $(d)/manual.html, $(eval $(call install-data-in, $(file), $(docdir)/manual)))
-
-$(foreach file, $(wildcard $(d)/figures/*.png), $(eval $(call install-data-in, $(file), $(docdir)/manual/figures)))
-
-$(foreach file, $(wildcard $(d)/images/callouts/*.gif), $(eval $(call install-data-in, $(file), $(docdir)/manual/images/callouts)))
-
-$(eval $(call install-symlink, manual.html, $(docdir)/manual/index.html))
-
-
-all: $(d)/manual.html
-
-
-
-clean-files += $(d)/manual.html
-
-dist-files += $(d)/manual.html
-
-
-endif
diff --git a/third_party/nix/local.mk b/third_party/nix/local.mk
deleted file mode 100644
index 4b380176f2ec..000000000000
--- a/third_party/nix/local.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-ifeq ($(MAKECMDGOALS), dist)
-  dist-files += $(shell cat .dist-files)
-endif
-
-dist-files += configure config.h.in nix.spec perl/configure
-
-clean-files += Makefile.config
-
-GLOBAL_CXXFLAGS += -I . -I src -I src/libutil -I src/libstore -I src/libmain -I src/libexpr -I src/nix
-
-$(foreach i, config.h $(call rwildcard, src/lib*, *.hh), \
-  $(eval $(call install-file-in, $(i), $(includedir)/nix, 0644)))
diff --git a/third_party/nix/m4/ax_boost_base.m4 b/third_party/nix/m4/ax_boost_base.m4
deleted file mode 100644
index 16fa69b41f5b..000000000000
--- a/third_party/nix/m4/ax_boost_base.m4
+++ /dev/null
@@ -1,302 +0,0 @@
-# ===========================================================================
-#      https://www.gnu.org/software/autoconf-archive/ax_boost_base.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-#   AX_BOOST_BASE([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
-#
-# DESCRIPTION
-#
-#   Test for the Boost C++ libraries of a particular version (or newer)
-#
-#   If no path to the installed boost library is given the macro searchs
-#   under /usr, /usr/local, /opt and /opt/local and evaluates the
-#   $BOOST_ROOT environment variable. Further documentation is available at
-#   <http://randspringer.de/boost/index.html>.
-#
-#   This macro calls:
-#
-#     AC_SUBST(BOOST_CPPFLAGS) / AC_SUBST(BOOST_LDFLAGS)
-#
-#   And sets:
-#
-#     HAVE_BOOST
-#
-# LICENSE
-#
-#   Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de>
-#   Copyright (c) 2009 Peter Adolphs
-#
-#   Copying and distribution of this file, with or without modification, are
-#   permitted in any medium without royalty provided the copyright notice
-#   and this notice are preserved. This file is offered as-is, without any
-#   warranty.
-
-#serial 47
-
-# example boost program (need to pass version)
-m4_define([_AX_BOOST_BASE_PROGRAM],
-          [AC_LANG_PROGRAM([[
-#include <boost/version.hpp>
-]],[[
-(void) ((void)sizeof(char[1 - 2*!!((BOOST_VERSION) < ($1))]));
-]])])
-
-AC_DEFUN([AX_BOOST_BASE],
-[
-AC_ARG_WITH([boost],
-  [AS_HELP_STRING([--with-boost@<:@=ARG@:>@],
-    [use Boost library from a standard location (ARG=yes),
-     from the specified location (ARG=<path>),
-     or disable it (ARG=no)
-     @<:@ARG=yes@:>@ ])],
-    [
-     AS_CASE([$withval],
-       [no],[want_boost="no";_AX_BOOST_BASE_boost_path=""],
-       [yes],[want_boost="yes";_AX_BOOST_BASE_boost_path=""],
-       [want_boost="yes";_AX_BOOST_BASE_boost_path="$withval"])
-    ],
-    [want_boost="yes"])
-
-
-AC_ARG_WITH([boost-libdir],
-  [AS_HELP_STRING([--with-boost-libdir=LIB_DIR],
-    [Force given directory for boost libraries.
-     Note that this will override library path detection,
-     so use this parameter only if default library detection fails
-     and you know exactly where your boost libraries are located.])],
-  [
-   AS_IF([test -d "$withval"],
-         [_AX_BOOST_BASE_boost_lib_path="$withval"],
-    [AC_MSG_ERROR([--with-boost-libdir expected directory name])])
-  ],
-  [_AX_BOOST_BASE_boost_lib_path=""])
-
-BOOST_LDFLAGS=""
-BOOST_CPPFLAGS=""
-AS_IF([test "x$want_boost" = "xyes"],
-      [_AX_BOOST_BASE_RUNDETECT([$1],[$2],[$3])])
-AC_SUBST(BOOST_CPPFLAGS)
-AC_SUBST(BOOST_LDFLAGS)
-])
-
-
-# convert a version string in $2 to numeric and affect to polymorphic var $1
-AC_DEFUN([_AX_BOOST_BASE_TONUMERICVERSION],[
-  AS_IF([test "x$2" = "x"],[_AX_BOOST_BASE_TONUMERICVERSION_req="1.20.0"],[_AX_BOOST_BASE_TONUMERICVERSION_req="$2"])
-  _AX_BOOST_BASE_TONUMERICVERSION_req_shorten=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req : '\([[0-9]]*\.[[0-9]]*\)'`
-  _AX_BOOST_BASE_TONUMERICVERSION_req_major=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req : '\([[0-9]]*\)'`
-  AS_IF([test "x$_AX_BOOST_BASE_TONUMERICVERSION_req_major" = "x"],
-        [AC_MSG_ERROR([You should at least specify libboost major version])])
-  _AX_BOOST_BASE_TONUMERICVERSION_req_minor=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req : '[[0-9]]*\.\([[0-9]]*\)'`
-  AS_IF([test "x$_AX_BOOST_BASE_TONUMERICVERSION_req_minor" = "x"],
-        [_AX_BOOST_BASE_TONUMERICVERSION_req_minor="0"])
-  _AX_BOOST_BASE_TONUMERICVERSION_req_sub_minor=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'`
-  AS_IF([test "X$_AX_BOOST_BASE_TONUMERICVERSION_req_sub_minor" = "X"],
-        [_AX_BOOST_BASE_TONUMERICVERSION_req_sub_minor="0"])
-  _AX_BOOST_BASE_TONUMERICVERSION_RET=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req_major \* 100000 \+  $_AX_BOOST_BASE_TONUMERICVERSION_req_minor \* 100 \+ $_AX_BOOST_BASE_TONUMERICVERSION_req_sub_minor`
-  AS_VAR_SET($1,$_AX_BOOST_BASE_TONUMERICVERSION_RET)
-])
-
-dnl Run the detection of boost should be run only if $want_boost
-AC_DEFUN([_AX_BOOST_BASE_RUNDETECT],[
-    _AX_BOOST_BASE_TONUMERICVERSION(WANT_BOOST_VERSION,[$1])
-    succeeded=no
-
-
-    AC_REQUIRE([AC_CANONICAL_HOST])
-    dnl On 64-bit systems check for system libraries in both lib64 and lib.
-    dnl The former is specified by FHS, but e.g. Debian does not adhere to
-    dnl this (as it rises problems for generic multi-arch support).
-    dnl The last entry in the list is chosen by default when no libraries
-    dnl are found, e.g. when only header-only libraries are installed!
-    AS_CASE([${host_cpu}],
-      [x86_64],[libsubdirs="lib64 libx32 lib lib64"],
-      [mips*64*],[libsubdirs="lib64 lib32 lib lib64"],
-      [ppc64|powerpc64|s390x|sparc64|aarch64|ppc64le|powerpc64le|riscv64],[libsubdirs="lib64 lib lib64"],
-      [libsubdirs="lib"]
-    )
-
-    dnl allow for real multi-arch paths e.g. /usr/lib/x86_64-linux-gnu. Give
-    dnl them priority over the other paths since, if libs are found there, they
-    dnl are almost assuredly the ones desired.
-    AS_CASE([${host_cpu}],
-      [i?86],[multiarch_libsubdir="lib/i386-${host_os}"],
-      [multiarch_libsubdir="lib/${host_cpu}-${host_os}"]
-    )
-
-    dnl first we check the system location for boost libraries
-    dnl this location ist chosen if boost libraries are installed with the --layout=system option
-    dnl or if you install boost with RPM
-    AS_IF([test "x$_AX_BOOST_BASE_boost_path" != "x"],[
-        AC_MSG_CHECKING([for boostlib >= $1 ($WANT_BOOST_VERSION) includes in "$_AX_BOOST_BASE_boost_path/include"])
-         AS_IF([test -d "$_AX_BOOST_BASE_boost_path/include" && test -r "$_AX_BOOST_BASE_boost_path/include"],[
-           AC_MSG_RESULT([yes])
-           BOOST_CPPFLAGS="-I$_AX_BOOST_BASE_boost_path/include"
-           for _AX_BOOST_BASE_boost_path_tmp in $multiarch_libsubdir $libsubdirs; do
-                AC_MSG_CHECKING([for boostlib >= $1 ($WANT_BOOST_VERSION) lib path in "$_AX_BOOST_BASE_boost_path/$_AX_BOOST_BASE_boost_path_tmp"])
-                AS_IF([test -d "$_AX_BOOST_BASE_boost_path/$_AX_BOOST_BASE_boost_path_tmp" && test -r "$_AX_BOOST_BASE_boost_path/$_AX_BOOST_BASE_boost_path_tmp" ],[
-                        AC_MSG_RESULT([yes])
-                        BOOST_LDFLAGS="-L$_AX_BOOST_BASE_boost_path/$_AX_BOOST_BASE_boost_path_tmp";
-                        break;
-                ],
-      [AC_MSG_RESULT([no])])
-           done],[
-      AC_MSG_RESULT([no])])
-    ],[
-        if test X"$cross_compiling" = Xyes; then
-            search_libsubdirs=$multiarch_libsubdir
-        else
-            search_libsubdirs="$multiarch_libsubdir $libsubdirs"
-        fi
-        for _AX_BOOST_BASE_boost_path_tmp in /usr /usr/local /opt /opt/local ; do
-            if test -d "$_AX_BOOST_BASE_boost_path_tmp/include/boost" && test -r "$_AX_BOOST_BASE_boost_path_tmp/include/boost" ; then
-                for libsubdir in $search_libsubdirs ; do
-                    if ls "$_AX_BOOST_BASE_boost_path_tmp/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
-                done
-                BOOST_LDFLAGS="-L$_AX_BOOST_BASE_boost_path_tmp/$libsubdir"
-                BOOST_CPPFLAGS="-I$_AX_BOOST_BASE_boost_path_tmp/include"
-                break;
-            fi
-        done
-    ])
-
-    dnl overwrite ld flags if we have required special directory with
-    dnl --with-boost-libdir parameter
-    AS_IF([test "x$_AX_BOOST_BASE_boost_lib_path" != "x"],
-          [BOOST_LDFLAGS="-L$_AX_BOOST_BASE_boost_lib_path"])
-
-    AC_MSG_CHECKING([for boostlib >= $1 ($WANT_BOOST_VERSION)])
-    CPPFLAGS_SAVED="$CPPFLAGS"
-    CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
-    export CPPFLAGS
-
-    LDFLAGS_SAVED="$LDFLAGS"
-    LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
-    export LDFLAGS
-
-    AC_REQUIRE([AC_PROG_CXX])
-    AC_LANG_PUSH(C++)
-        AC_COMPILE_IFELSE([_AX_BOOST_BASE_PROGRAM($WANT_BOOST_VERSION)],[
-        AC_MSG_RESULT(yes)
-    succeeded=yes
-    found_system=yes
-        ],[
-        ])
-    AC_LANG_POP([C++])
-
-
-
-    dnl if we found no boost with system layout we search for boost libraries
-    dnl built and installed without the --layout=system option or for a staged(not installed) version
-    if test "x$succeeded" != "xyes" ; then
-        CPPFLAGS="$CPPFLAGS_SAVED"
-        LDFLAGS="$LDFLAGS_SAVED"
-        BOOST_CPPFLAGS=
-        if test -z "$_AX_BOOST_BASE_boost_lib_path" ; then
-            BOOST_LDFLAGS=
-        fi
-        _version=0
-        if test -n "$_AX_BOOST_BASE_boost_path" ; then
-            if test -d "$_AX_BOOST_BASE_boost_path" && test -r "$_AX_BOOST_BASE_boost_path"; then
-                for i in `ls -d $_AX_BOOST_BASE_boost_path/include/boost-* 2>/dev/null`; do
-                    _version_tmp=`echo $i | sed "s#$_AX_BOOST_BASE_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'`
-                    V_CHECK=`expr $_version_tmp \> $_version`
-                    if test "x$V_CHECK" = "x1" ; then
-                        _version=$_version_tmp
-                    fi
-                    VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'`
-                    BOOST_CPPFLAGS="-I$_AX_BOOST_BASE_boost_path/include/boost-$VERSION_UNDERSCORE"
-                done
-                dnl if nothing found search for layout used in Windows distributions
-                if test -z "$BOOST_CPPFLAGS"; then
-                    if test -d "$_AX_BOOST_BASE_boost_path/boost" && test -r "$_AX_BOOST_BASE_boost_path/boost"; then
-                        BOOST_CPPFLAGS="-I$_AX_BOOST_BASE_boost_path"
-                    fi
-                fi
-                dnl if we found something and BOOST_LDFLAGS was unset before
-                dnl (because "$_AX_BOOST_BASE_boost_lib_path" = ""), set it here.
-                if test -n "$BOOST_CPPFLAGS" && test -z "$BOOST_LDFLAGS"; then
-                    for libsubdir in $libsubdirs ; do
-                        if ls "$_AX_BOOST_BASE_boost_path/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
-                    done
-                    BOOST_LDFLAGS="-L$_AX_BOOST_BASE_boost_path/$libsubdir"
-                fi
-            fi
-        else
-            if test "x$cross_compiling" != "xyes" ; then
-                for _AX_BOOST_BASE_boost_path in /usr /usr/local /opt /opt/local ; do
-                    if test -d "$_AX_BOOST_BASE_boost_path" && test -r "$_AX_BOOST_BASE_boost_path" ; then
-                        for i in `ls -d $_AX_BOOST_BASE_boost_path/include/boost-* 2>/dev/null`; do
-                            _version_tmp=`echo $i | sed "s#$_AX_BOOST_BASE_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'`
-                            V_CHECK=`expr $_version_tmp \> $_version`
-                            if test "x$V_CHECK" = "x1" ; then
-                                _version=$_version_tmp
-                                best_path=$_AX_BOOST_BASE_boost_path
-                            fi
-                        done
-                    fi
-                done
-
-                VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'`
-                BOOST_CPPFLAGS="-I$best_path/include/boost-$VERSION_UNDERSCORE"
-                if test -z "$_AX_BOOST_BASE_boost_lib_path" ; then
-                    for libsubdir in $libsubdirs ; do
-                        if ls "$best_path/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
-                    done
-                    BOOST_LDFLAGS="-L$best_path/$libsubdir"
-                fi
-            fi
-
-            if test -n "$BOOST_ROOT" ; then
-                for libsubdir in $libsubdirs ; do
-                    if ls "$BOOST_ROOT/stage/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
-                done
-                if test -d "$BOOST_ROOT" && test -r "$BOOST_ROOT" && test -d "$BOOST_ROOT/stage/$libsubdir" && test -r "$BOOST_ROOT/stage/$libsubdir"; then
-                    version_dir=`expr //$BOOST_ROOT : '.*/\(.*\)'`
-                    stage_version=`echo $version_dir | sed 's/boost_//' | sed 's/_/./g'`
-                        stage_version_shorten=`expr $stage_version : '\([[0-9]]*\.[[0-9]]*\)'`
-                    V_CHECK=`expr $stage_version_shorten \>\= $_version`
-                    if test "x$V_CHECK" = "x1" && test -z "$_AX_BOOST_BASE_boost_lib_path" ; then
-                        AC_MSG_NOTICE(We will use a staged boost library from $BOOST_ROOT)
-                        BOOST_CPPFLAGS="-I$BOOST_ROOT"
-                        BOOST_LDFLAGS="-L$BOOST_ROOT/stage/$libsubdir"
-                    fi
-                fi
-            fi
-        fi
-
-        CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
-        export CPPFLAGS
-        LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
-        export LDFLAGS
-
-        AC_LANG_PUSH(C++)
-            AC_COMPILE_IFELSE([_AX_BOOST_BASE_PROGRAM($WANT_BOOST_VERSION)],[
-            AC_MSG_RESULT(yes)
-        succeeded=yes
-        found_system=yes
-            ],[
-            ])
-        AC_LANG_POP([C++])
-    fi
-
-    if test "x$succeeded" != "xyes" ; then
-        if test "x$_version" = "x0" ; then
-            AC_MSG_NOTICE([[We could not detect the boost libraries (version $1 or higher). If you have a staged boost library (still not installed) please specify \$BOOST_ROOT in your environment and do not give a PATH to --with-boost option.  If you are sure you have boost installed, then check your version number looking in <boost/version.hpp>. See http://randspringer.de/boost for more documentation.]])
-        else
-            AC_MSG_NOTICE([Your boost libraries seems to old (version $_version).])
-        fi
-        # execute ACTION-IF-NOT-FOUND (if present):
-        ifelse([$3], , :, [$3])
-    else
-        AC_DEFINE(HAVE_BOOST,,[define if the Boost library is available])
-        # execute ACTION-IF-FOUND (if present):
-        ifelse([$2], , :, [$2])
-    fi
-
-    CPPFLAGS="$CPPFLAGS_SAVED"
-    LDFLAGS="$LDFLAGS_SAVED"
-
-])
diff --git a/third_party/nix/m4/ax_cxx_compile_stdcxx.m4 b/third_party/nix/m4/ax_cxx_compile_stdcxx.m4
deleted file mode 100644
index 43087b2e6889..000000000000
--- a/third_party/nix/m4/ax_cxx_compile_stdcxx.m4
+++ /dev/null
@@ -1,951 +0,0 @@
-# ===========================================================================
-#  https://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-#   AX_CXX_COMPILE_STDCXX(VERSION, [ext|noext], [mandatory|optional])
-#
-# DESCRIPTION
-#
-#   Check for baseline language coverage in the compiler for the specified
-#   version of the C++ standard.  If necessary, add switches to CXX and
-#   CXXCPP to enable support.  VERSION may be '11' (for the C++11 standard)
-#   or '14' (for the C++14 standard).
-#
-#   The second argument, if specified, indicates whether you insist on an
-#   extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g.
-#   -std=c++11).  If neither is specified, you get whatever works, with
-#   preference for an extended mode.
-#
-#   The third argument, if specified 'mandatory' or if left unspecified,
-#   indicates that baseline support for the specified C++ standard is
-#   required and that the macro should error out if no mode with that
-#   support is found.  If specified 'optional', then configuration proceeds
-#   regardless, after defining HAVE_CXX${VERSION} if and only if a
-#   supporting mode is found.
-#
-# LICENSE
-#
-#   Copyright (c) 2008 Benjamin Kosnik <bkoz@redhat.com>
-#   Copyright (c) 2012 Zack Weinberg <zackw@panix.com>
-#   Copyright (c) 2013 Roy Stogner <roystgnr@ices.utexas.edu>
-#   Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov <sokolov@google.com>
-#   Copyright (c) 2015 Paul Norman <penorman@mac.com>
-#   Copyright (c) 2015 Moritz Klammler <moritz@klammler.eu>
-#   Copyright (c) 2016, 2018 Krzesimir Nowak <qdlacz@gmail.com>
-#   Copyright (c) 2019 Enji Cooper <yaneurabeya@gmail.com>
-#
-#   Copying and distribution of this file, with or without modification, are
-#   permitted in any medium without royalty provided the copyright notice
-#   and this notice are preserved.  This file is offered as-is, without any
-#   warranty.
-
-#serial 11
-
-dnl  This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro
-dnl  (serial version number 13).
-
-AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl
-  m4_if([$1], [11], [ax_cxx_compile_alternatives="11 0x"],
-        [$1], [14], [ax_cxx_compile_alternatives="14 1y"],
-        [$1], [17], [ax_cxx_compile_alternatives="17 1z"],
-        [m4_fatal([invalid first argument `$1' to AX_CXX_COMPILE_STDCXX])])dnl
-  m4_if([$2], [], [],
-        [$2], [ext], [],
-        [$2], [noext], [],
-        [m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX])])dnl
-  m4_if([$3], [], [ax_cxx_compile_cxx$1_required=true],
-        [$3], [mandatory], [ax_cxx_compile_cxx$1_required=true],
-        [$3], [optional], [ax_cxx_compile_cxx$1_required=false],
-        [m4_fatal([invalid third argument `$3' to AX_CXX_COMPILE_STDCXX])])
-  AC_LANG_PUSH([C++])dnl
-  ac_success=no
-
-  m4_if([$2], [noext], [], [dnl
-  if test x$ac_success = xno; then
-    for alternative in ${ax_cxx_compile_alternatives}; do
-      switch="-std=gnu++${alternative}"
-      cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch])
-      AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch,
-                     $cachevar,
-        [ac_save_CXX="$CXX"
-         CXX="$CXX $switch"
-         AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
-          [eval $cachevar=yes],
-          [eval $cachevar=no])
-         CXX="$ac_save_CXX"])
-      if eval test x\$$cachevar = xyes; then
-        CXX="$CXX $switch"
-        if test -n "$CXXCPP" ; then
-          CXXCPP="$CXXCPP $switch"
-        fi
-        ac_success=yes
-        break
-      fi
-    done
-  fi])
-
-  m4_if([$2], [ext], [], [dnl
-  if test x$ac_success = xno; then
-    dnl HP's aCC needs +std=c++11 according to:
-    dnl http://h21007.www2.hp.com/portal/download/files/unprot/aCxx/PDF_Release_Notes/769149-001.pdf
-    dnl Cray's crayCC needs "-h std=c++11"
-    for alternative in ${ax_cxx_compile_alternatives}; do
-      for switch in -std=c++${alternative} +std=c++${alternative} "-h std=c++${alternative}"; do
-        cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch])
-        AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch,
-                       $cachevar,
-          [ac_save_CXX="$CXX"
-           CXX="$CXX $switch"
-           AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
-            [eval $cachevar=yes],
-            [eval $cachevar=no])
-           CXX="$ac_save_CXX"])
-        if eval test x\$$cachevar = xyes; then
-          CXX="$CXX $switch"
-          if test -n "$CXXCPP" ; then
-            CXXCPP="$CXXCPP $switch"
-          fi
-          ac_success=yes
-          break
-        fi
-      done
-      if test x$ac_success = xyes; then
-        break
-      fi
-    done
-  fi])
-  AC_LANG_POP([C++])
-  if test x$ax_cxx_compile_cxx$1_required = xtrue; then
-    if test x$ac_success = xno; then
-      AC_MSG_ERROR([*** A compiler with support for C++$1 language features is required.])
-    fi
-  fi
-  if test x$ac_success = xno; then
-    HAVE_CXX$1=0
-    AC_MSG_NOTICE([No compiler with C++$1 support was found])
-  else
-    HAVE_CXX$1=1
-    AC_DEFINE(HAVE_CXX$1,1,
-              [define if the compiler supports basic C++$1 syntax])
-  fi
-  AC_SUBST(HAVE_CXX$1)
-])
-
-
-dnl  Test body for checking C++11 support
-
-m4_define([_AX_CXX_COMPILE_STDCXX_testbody_11],
-  _AX_CXX_COMPILE_STDCXX_testbody_new_in_11
-)
-
-
-dnl  Test body for checking C++14 support
-
-m4_define([_AX_CXX_COMPILE_STDCXX_testbody_14],
-  _AX_CXX_COMPILE_STDCXX_testbody_new_in_11
-  _AX_CXX_COMPILE_STDCXX_testbody_new_in_14
-)
-
-m4_define([_AX_CXX_COMPILE_STDCXX_testbody_17],
-  _AX_CXX_COMPILE_STDCXX_testbody_new_in_11
-  _AX_CXX_COMPILE_STDCXX_testbody_new_in_14
-  _AX_CXX_COMPILE_STDCXX_testbody_new_in_17
-)
-
-dnl  Tests for new features in C++11
-
-m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_11], [[
-
-// If the compiler admits that it is not ready for C++11, why torture it?
-// Hopefully, this will speed up the test.
-
-#ifndef __cplusplus
-
-#error "This is not a C++ compiler"
-
-#elif __cplusplus < 201103L
-
-#error "This is not a C++11 compiler"
-
-#else
-
-namespace cxx11
-{
-
-  namespace test_static_assert
-  {
-
-    template <typename T>
-    struct check
-    {
-      static_assert(sizeof(int) <= sizeof(T), "not big enough");
-    };
-
-  }
-
-  namespace test_final_override
-  {
-
-    struct Base
-    {
-      virtual ~Base() {}
-      virtual void f() {}
-    };
-
-    struct Derived : public Base
-    {
-      virtual ~Derived() override {}
-      virtual void f() override {}
-    };
-
-  }
-
-  namespace test_double_right_angle_brackets
-  {
-
-    template < typename T >
-    struct check {};
-
-    typedef check<void> single_type;
-    typedef check<check<void>> double_type;
-    typedef check<check<check<void>>> triple_type;
-    typedef check<check<check<check<void>>>> quadruple_type;
-
-  }
-
-  namespace test_decltype
-  {
-
-    int
-    f()
-    {
-      int a = 1;
-      decltype(a) b = 2;
-      return a + b;
-    }
-
-  }
-
-  namespace test_type_deduction
-  {
-
-    template < typename T1, typename T2 >
-    struct is_same
-    {
-      static const bool value = false;
-    };
-
-    template < typename T >
-    struct is_same<T, T>
-    {
-      static const bool value = true;
-    };
-
-    template < typename T1, typename T2 >
-    auto
-    add(T1 a1, T2 a2) -> decltype(a1 + a2)
-    {
-      return a1 + a2;
-    }
-
-    int
-    test(const int c, volatile int v)
-    {
-      static_assert(is_same<int, decltype(0)>::value == true, "");
-      static_assert(is_same<int, decltype(c)>::value == false, "");
-      static_assert(is_same<int, decltype(v)>::value == false, "");
-      auto ac = c;
-      auto av = v;
-      auto sumi = ac + av + 'x';
-      auto sumf = ac + av + 1.0;
-      static_assert(is_same<int, decltype(ac)>::value == true, "");
-      static_assert(is_same<int, decltype(av)>::value == true, "");
-      static_assert(is_same<int, decltype(sumi)>::value == true, "");
-      static_assert(is_same<int, decltype(sumf)>::value == false, "");
-      static_assert(is_same<int, decltype(add(c, v))>::value == true, "");
-      return (sumf > 0.0) ? sumi : add(c, v);
-    }
-
-  }
-
-  namespace test_noexcept
-  {
-
-    int f() { return 0; }
-    int g() noexcept { return 0; }
-
-    static_assert(noexcept(f()) == false, "");
-    static_assert(noexcept(g()) == true, "");
-
-  }
-
-  namespace test_constexpr
-  {
-
-    template < typename CharT >
-    unsigned long constexpr
-    strlen_c_r(const CharT *const s, const unsigned long acc) noexcept
-    {
-      return *s ? strlen_c_r(s + 1, acc + 1) : acc;
-    }
-
-    template < typename CharT >
-    unsigned long constexpr
-    strlen_c(const CharT *const s) noexcept
-    {
-      return strlen_c_r(s, 0UL);
-    }
-
-    static_assert(strlen_c("") == 0UL, "");
-    static_assert(strlen_c("1") == 1UL, "");
-    static_assert(strlen_c("example") == 7UL, "");
-    static_assert(strlen_c("another\0example") == 7UL, "");
-
-  }
-
-  namespace test_rvalue_references
-  {
-
-    template < int N >
-    struct answer
-    {
-      static constexpr int value = N;
-    };
-
-    answer<1> f(int&)       { return answer<1>(); }
-    answer<2> f(const int&) { return answer<2>(); }
-    answer<3> f(int&&)      { return answer<3>(); }
-
-    void
-    test()
-    {
-      int i = 0;
-      const int c = 0;
-      static_assert(decltype(f(i))::value == 1, "");
-      static_assert(decltype(f(c))::value == 2, "");
-      static_assert(decltype(f(0))::value == 3, "");
-    }
-
-  }
-
-  namespace test_uniform_initialization
-  {
-
-    struct test
-    {
-      static const int zero {};
-      static const int one {1};
-    };
-
-    static_assert(test::zero == 0, "");
-    static_assert(test::one == 1, "");
-
-  }
-
-  namespace test_lambdas
-  {
-
-    void
-    test1()
-    {
-      auto lambda1 = [](){};
-      auto lambda2 = lambda1;
-      lambda1();
-      lambda2();
-    }
-
-    int
-    test2()
-    {
-      auto a = [](int i, int j){ return i + j; }(1, 2);
-      auto b = []() -> int { return '0'; }();
-      auto c = [=](){ return a + b; }();
-      auto d = [&](){ return c; }();
-      auto e = [a, &b](int x) mutable {
-        const auto identity = [](int y){ return y; };
-        for (auto i = 0; i < a; ++i)
-          a += b--;
-        return x + identity(a + b);
-      }(0);
-      return a + b + c + d + e;
-    }
-
-    int
-    test3()
-    {
-      const auto nullary = [](){ return 0; };
-      const auto unary = [](int x){ return x; };
-      using nullary_t = decltype(nullary);
-      using unary_t = decltype(unary);
-      const auto higher1st = [](nullary_t f){ return f(); };
-      const auto higher2nd = [unary](nullary_t f1){
-        return [unary, f1](unary_t f2){ return f2(unary(f1())); };
-      };
-      return higher1st(nullary) + higher2nd(nullary)(unary);
-    }
-
-  }
-
-  namespace test_variadic_templates
-  {
-
-    template <int...>
-    struct sum;
-
-    template <int N0, int... N1toN>
-    struct sum<N0, N1toN...>
-    {
-      static constexpr auto value = N0 + sum<N1toN...>::value;
-    };
-
-    template <>
-    struct sum<>
-    {
-      static constexpr auto value = 0;
-    };
-
-    static_assert(sum<>::value == 0, "");
-    static_assert(sum<1>::value == 1, "");
-    static_assert(sum<23>::value == 23, "");
-    static_assert(sum<1, 2>::value == 3, "");
-    static_assert(sum<5, 5, 11>::value == 21, "");
-    static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, "");
-
-  }
-
-  // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae
-  // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function
-  // because of this.
-  namespace test_template_alias_sfinae
-  {
-
-    struct foo {};
-
-    template<typename T>
-    using member = typename T::member_type;
-
-    template<typename T>
-    void func(...) {}
-
-    template<typename T>
-    void func(member<T>*) {}
-
-    void test();
-
-    void test() { func<foo>(0); }
-
-  }
-
-}  // namespace cxx11
-
-#endif  // __cplusplus >= 201103L
-
-]])
-
-
-dnl  Tests for new features in C++14
-
-m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_14], [[
-
-// If the compiler admits that it is not ready for C++14, why torture it?
-// Hopefully, this will speed up the test.
-
-#ifndef __cplusplus
-
-#error "This is not a C++ compiler"
-
-#elif __cplusplus < 201402L
-
-#error "This is not a C++14 compiler"
-
-#else
-
-namespace cxx14
-{
-
-  namespace test_polymorphic_lambdas
-  {
-
-    int
-    test()
-    {
-      const auto lambda = [](auto&&... args){
-        const auto istiny = [](auto x){
-          return (sizeof(x) == 1UL) ? 1 : 0;
-        };
-        const int aretiny[] = { istiny(args)... };
-        return aretiny[0];
-      };
-      return lambda(1, 1L, 1.0f, '1');
-    }
-
-  }
-
-  namespace test_binary_literals
-  {
-
-    constexpr auto ivii = 0b0000000000101010;
-    static_assert(ivii == 42, "wrong value");
-
-  }
-
-  namespace test_generalized_constexpr
-  {
-
-    template < typename CharT >
-    constexpr unsigned long
-    strlen_c(const CharT *const s) noexcept
-    {
-      auto length = 0UL;
-      for (auto p = s; *p; ++p)
-        ++length;
-      return length;
-    }
-
-    static_assert(strlen_c("") == 0UL, "");
-    static_assert(strlen_c("x") == 1UL, "");
-    static_assert(strlen_c("test") == 4UL, "");
-    static_assert(strlen_c("another\0test") == 7UL, "");
-
-  }
-
-  namespace test_lambda_init_capture
-  {
-
-    int
-    test()
-    {
-      auto x = 0;
-      const auto lambda1 = [a = x](int b){ return a + b; };
-      const auto lambda2 = [a = lambda1(x)](){ return a; };
-      return lambda2();
-    }
-
-  }
-
-  namespace test_digit_separators
-  {
-
-    constexpr auto ten_million = 100'000'000;
-    static_assert(ten_million == 100000000, "");
-
-  }
-
-  namespace test_return_type_deduction
-  {
-
-    auto f(int& x) { return x; }
-    decltype(auto) g(int& x) { return x; }
-
-    template < typename T1, typename T2 >
-    struct is_same
-    {
-      static constexpr auto value = false;
-    };
-
-    template < typename T >
-    struct is_same<T, T>
-    {
-      static constexpr auto value = true;
-    };
-
-    int
-    test()
-    {
-      auto x = 0;
-      static_assert(is_same<int, decltype(f(x))>::value, "");
-      static_assert(is_same<int&, decltype(g(x))>::value, "");
-      return x;
-    }
-
-  }
-
-}  // namespace cxx14
-
-#endif  // __cplusplus >= 201402L
-
-]])
-
-
-dnl  Tests for new features in C++17
-
-m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_17], [[
-
-// If the compiler admits that it is not ready for C++17, why torture it?
-// Hopefully, this will speed up the test.
-
-#ifndef __cplusplus
-
-#error "This is not a C++ compiler"
-
-#elif __cplusplus < 201703L
-
-#error "This is not a C++17 compiler"
-
-#else
-
-#include <initializer_list>
-#include <utility>
-#include <type_traits>
-
-namespace cxx17
-{
-
-  namespace test_constexpr_lambdas
-  {
-
-    constexpr int foo = [](){return 42;}();
-
-  }
-
-  namespace test::nested_namespace::definitions
-  {
-
-  }
-
-  namespace test_fold_expression
-  {
-
-    template<typename... Args>
-    int multiply(Args... args)
-    {
-      return (args * ... * 1);
-    }
-
-    template<typename... Args>
-    bool all(Args... args)
-    {
-      return (args && ...);
-    }
-
-  }
-
-  namespace test_extended_static_assert
-  {
-
-    static_assert (true);
-
-  }
-
-  namespace test_auto_brace_init_list
-  {
-
-    auto foo = {5};
-    auto bar {5};
-
-    static_assert(std::is_same<std::initializer_list<int>, decltype(foo)>::value);
-    static_assert(std::is_same<int, decltype(bar)>::value);
-  }
-
-  namespace test_typename_in_template_template_parameter
-  {
-
-    template<template<typename> typename X> struct D;
-
-  }
-
-  namespace test_fallthrough_nodiscard_maybe_unused_attributes
-  {
-
-    int f1()
-    {
-      return 42;
-    }
-
-    [[nodiscard]] int f2()
-    {
-      [[maybe_unused]] auto unused = f1();
-
-      switch (f1())
-      {
-      case 17:
-        f1();
-        [[fallthrough]];
-      case 42:
-        f1();
-      }
-      return f1();
-    }
-
-  }
-
-  namespace test_extended_aggregate_initialization
-  {
-
-    struct base1
-    {
-      int b1, b2 = 42;
-    };
-
-    struct base2
-    {
-      base2() {
-        b3 = 42;
-      }
-      int b3;
-    };
-
-    struct derived : base1, base2
-    {
-        int d;
-    };
-
-    derived d1 {{1, 2}, {}, 4};  // full initialization
-    derived d2 {{}, {}, 4};      // value-initialized bases
-
-  }
-
-  namespace test_general_range_based_for_loop
-  {
-
-    struct iter
-    {
-      int i;
-
-      int& operator* ()
-      {
-        return i;
-      }
-
-      const int& operator* () const
-      {
-        return i;
-      }
-
-      iter& operator++()
-      {
-        ++i;
-        return *this;
-      }
-    };
-
-    struct sentinel
-    {
-      int i;
-    };
-
-    bool operator== (const iter& i, const sentinel& s)
-    {
-      return i.i == s.i;
-    }
-
-    bool operator!= (const iter& i, const sentinel& s)
-    {
-      return !(i == s);
-    }
-
-    struct range
-    {
-      iter begin() const
-      {
-        return {0};
-      }
-
-      sentinel end() const
-      {
-        return {5};
-      }
-    };
-
-    void f()
-    {
-      range r {};
-
-      for (auto i : r)
-      {
-        [[maybe_unused]] auto v = i;
-      }
-    }
-
-  }
-
-  namespace test_lambda_capture_asterisk_this_by_value
-  {
-
-    struct t
-    {
-      int i;
-      int foo()
-      {
-        return [*this]()
-        {
-          return i;
-        }();
-      }
-    };
-
-  }
-
-  namespace test_enum_class_construction
-  {
-
-    enum class byte : unsigned char
-    {};
-
-    byte foo {42};
-
-  }
-
-  namespace test_constexpr_if
-  {
-
-    template <bool cond>
-    int f ()
-    {
-      if constexpr(cond)
-      {
-        return 13;
-      }
-      else
-      {
-        return 42;
-      }
-    }
-
-  }
-
-  namespace test_selection_statement_with_initializer
-  {
-
-    int f()
-    {
-      return 13;
-    }
-
-    int f2()
-    {
-      if (auto i = f(); i > 0)
-      {
-        return 3;
-      }
-
-      switch (auto i = f(); i + 4)
-      {
-      case 17:
-        return 2;
-
-      default:
-        return 1;
-      }
-    }
-
-  }
-
-  namespace test_template_argument_deduction_for_class_templates
-  {
-
-    template <typename T1, typename T2>
-    struct pair
-    {
-      pair (T1 p1, T2 p2)
-        : m1 {p1},
-          m2 {p2}
-      {}
-
-      T1 m1;
-      T2 m2;
-    };
-
-    void f()
-    {
-      [[maybe_unused]] auto p = pair{13, 42u};
-    }
-
-  }
-
-  namespace test_non_type_auto_template_parameters
-  {
-
-    template <auto n>
-    struct B
-    {};
-
-    B<5> b1;
-    B<'a'> b2;
-
-  }
-
-  namespace test_structured_bindings
-  {
-
-    int arr[2] = { 1, 2 };
-    std::pair<int, int> pr = { 1, 2 };
-
-    auto f1() -> int(&)[2]
-    {
-      return arr;
-    }
-
-    auto f2() -> std::pair<int, int>&
-    {
-      return pr;
-    }
-
-    struct S
-    {
-      int x1 : 2;
-      volatile double y1;
-    };
-
-    S f3()
-    {
-      return {};
-    }
-
-    auto [ x1, y1 ] = f1();
-    auto& [ xr1, yr1 ] = f1();
-    auto [ x2, y2 ] = f2();
-    auto& [ xr2, yr2 ] = f2();
-    const auto [ x3, y3 ] = f3();
-
-  }
-
-  namespace test_exception_spec_type_system
-  {
-
-    struct Good {};
-    struct Bad {};
-
-    void g1() noexcept;
-    void g2();
-
-    template<typename T>
-    Bad
-    f(T*, T*);
-
-    template<typename T1, typename T2>
-    Good
-    f(T1*, T2*);
-
-    static_assert (std::is_same_v<Good, decltype(f(g1, g2))>);
-
-  }
-
-  namespace test_inline_variables
-  {
-
-    template<class T> void f(T)
-    {}
-
-    template<class T> inline T g(T)
-    {
-      return T{};
-    }
-
-    template<> inline void f<>(int)
-    {}
-
-    template<> int g<>(int)
-    {
-      return 5;
-    }
-
-  }
-
-}  // namespace cxx17
-
-#endif  // __cplusplus < 201703L
-
-]])
diff --git a/third_party/nix/m4/ax_cxx_compile_stdcxx_17.m4 b/third_party/nix/m4/ax_cxx_compile_stdcxx_17.m4
deleted file mode 100644
index a6834171739b..000000000000
--- a/third_party/nix/m4/ax_cxx_compile_stdcxx_17.m4
+++ /dev/null
@@ -1,35 +0,0 @@
-# =============================================================================
-#  https://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_17.html
-# =============================================================================
-#
-# SYNOPSIS
-#
-#   AX_CXX_COMPILE_STDCXX_17([ext|noext], [mandatory|optional])
-#
-# DESCRIPTION
-#
-#   Check for baseline language coverage in the compiler for the C++17
-#   standard; if necessary, add switches to CXX and CXXCPP to enable
-#   support.
-#
-#   This macro is a convenience alias for calling the AX_CXX_COMPILE_STDCXX
-#   macro with the version set to C++17.  The two optional arguments are
-#   forwarded literally as the second and third argument respectively.
-#   Please see the documentation for the AX_CXX_COMPILE_STDCXX macro for
-#   more information.  If you want to use this macro, you also need to
-#   download the ax_cxx_compile_stdcxx.m4 file.
-#
-# LICENSE
-#
-#   Copyright (c) 2015 Moritz Klammler <moritz@klammler.eu>
-#   Copyright (c) 2016 Krzesimir Nowak <qdlacz@gmail.com>
-#
-#   Copying and distribution of this file, with or without modification, are
-#   permitted in any medium without royalty provided the copyright notice
-#   and this notice are preserved. This file is offered as-is, without any
-#   warranty.
-
-#serial 2
-
-AX_REQUIRE_DEFINED([AX_CXX_COMPILE_STDCXX])
-AC_DEFUN([AX_CXX_COMPILE_STDCXX_17], [AX_CXX_COMPILE_STDCXX([17], [$1], [$2])])
diff --git a/third_party/nix/misc/launchd/local.mk b/third_party/nix/misc/launchd/local.mk
deleted file mode 100644
index 0ba722efbf19..000000000000
--- a/third_party/nix/misc/launchd/local.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-ifeq ($(OS), Darwin)
-
-  $(eval $(call install-data-in, $(d)/org.nixos.nix-daemon.plist, $(prefix)/Library/LaunchDaemons))
-
-endif
diff --git a/third_party/nix/misc/launchd/meson.build b/third_party/nix/misc/launchd/meson.build
deleted file mode 100644
index c7f362cdf239..000000000000
--- a/third_party/nix/misc/launchd/meson.build
+++ /dev/null
@@ -1,19 +0,0 @@
-# nix launchd build file
-#============================================================================
-
-if (sys_name.contains('darwin'))
-
-    launchd_data = []
-
-    org_nixos_nix_dameon_plist = configuration_data()
-    org_nixos_nix_dameon_plist.set('bindir', bindir)
-
-    launchd_data += configure_file(
-        input : 'org.nixos.nix-daemon.plist.in',
-        output : 'org.nixos.nix-daemon.plist',
-        configuration : org_nixos_nix_dameon_plist)
-
-    install_data(
-        corepkgs_data,
-        install_dir : join_paths(prefix, 'Library/LaunchDaemons'))
-endif
diff --git a/third_party/nix/misc/launchd/org.nixos.nix-daemon.plist.in b/third_party/nix/misc/launchd/org.nixos.nix-daemon.plist.in
deleted file mode 100644
index 9f26296a9d7b..000000000000
--- a/third_party/nix/misc/launchd/org.nixos.nix-daemon.plist.in
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-  <dict>
-    <key>EnvironmentVariables</key>
-    <dict>
-      <key>OBJC_DISABLE_INITIALIZE_FORK_SAFETY</key>
-      <string>YES</string>
-    </dict>
-    <key>Label</key>
-    <string>org.nixos.nix-daemon</string>
-    <key>KeepAlive</key>
-    <true/>
-    <key>RunAtLoad</key>
-    <true/>
-    <key>ProgramArguments</key>
-    <array>
-      <string>/bin/sh</string>
-      <string>-c</string>
-      <string>/bin/wait4path /nix/var/nix/profiles/default/bin/nix-daemon &amp;&amp; /nix/var/nix/profiles/default/bin/nix-daemon</string>
-    </array>
-    <key>StandardErrorPath</key>
-    <string>/var/log/nix-daemon.log</string>
-    <key>StandardOutPath</key>
-    <string>/dev/null</string>
-  </dict>
-</plist>
diff --git a/third_party/nix/misc/meson.build b/third_party/nix/misc/meson.build
index 0d53faf278d5..1b381de5a16e 100644
--- a/third_party/nix/misc/meson.build
+++ b/third_party/nix/misc/meson.build
@@ -1,11 +1,5 @@
-# nix src build file
-#============================================================================
-
 misc_dirs = [
-  'launchd',
   'systemd',
-  'systemv',
-  'upstart'
 ]
 
 foreach dir : misc_dirs
diff --git a/third_party/nix/misc/systemd/local.mk b/third_party/nix/misc/systemd/local.mk
deleted file mode 100644
index 004549fd2776..000000000000
--- a/third_party/nix/misc/systemd/local.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-ifeq ($(OS), Linux)
-
-  $(foreach n, nix-daemon.socket nix-daemon.service, $(eval $(call install-file-in, $(d)/$(n), $(prefix)/lib/systemd/system, 0644)))
-
-endif
diff --git a/third_party/nix/misc/systemv/meson.build b/third_party/nix/misc/systemv/meson.build
deleted file mode 100644
index 275714bf7759..000000000000
--- a/third_party/nix/misc/systemv/meson.build
+++ /dev/null
@@ -1,8 +0,0 @@
-# nix systemd build file
-#============================================================================
-
-systemv_data = []
-
-# install_data(
-#     systemv_data,
-#     install_dir : join_paths(prefix, 'lib/systemd/system'))
diff --git a/third_party/nix/misc/systemv/nix-daemon b/third_party/nix/misc/systemv/nix-daemon
deleted file mode 100755
index fea53716721d..000000000000
--- a/third_party/nix/misc/systemv/nix-daemon
+++ /dev/null
@@ -1,113 +0,0 @@
-#!/bin/sh
-#
-# nix-daemon: Starts the nix package manager daemon
-#
-# chkconfig:   345 24 02
-# description: This is a daemon which enable the multi-user mode 
-#               of the nix package manager.
-# processname: nix-daemon
-# pidfile:     /var/run/nix/nix-daemon.pid
-
-### BEGIN INIT INFO
-# Required-Start:    
-# Required-Stop:     
-# Should-Start:      
-# Should-Stop:       
-# Default-Start:     3 4 5
-# Default-Stop:      0 1 2 6
-# Short-Description: Starts the nix daemon
-# Description:       This is a daemon which enable the multi-user mode 
-#                     of the nix package manager.
-### END INIT INFO
-
-NIX_DAEMON_BIN=/usr/bin/nix-daemon
-#NIX_DAEMON_USER="root"
-NIX_DAEMON_USER="nix-daemon"
-NIX_DAEMON_OPTS="--daemon"
-
-umask 0022
-
-if [ "$1" = 'status' ]; then
-    test -x $NIX_DAEMON_BIN || exit 4
-else
-    test -x $NIX_DAEMON_BIN || exit 5
-fi
-
-# Source function library.
-. /etc/init.d/functions
-
-LOCKFILE=/var/lock/subsys/nix-daemon
-RUNDIR=/var/run/nix
-PIDFILE=${RUNDIR}/nix-daemon.pid
-RETVAL=0
-
-base=${0##*/}
-
-start() {
-
-    mkdir -p ${RUNDIR}
-    chown ${NIX_DAEMON_USER}:${NIX_DAEMON_USER} ${RUNDIR}
-
-    echo -n $"Starting nix daemon... "
-
-    daemonize -u $NIX_DAEMON_USER -p ${PIDFILE} $NIX_DAEMON_BIN $NIX_DAEMON_OPTS
-    RETVAL=$?
-    echo
-    [ $RETVAL -eq 0 ] && touch ${LOCKFILE}
-    return $RETVAL
-}
-
-stop() {
-    echo -n $"Shutting down nix daemon: "
-    killproc -p ${PIDFILE} $NIX_DAEMON_BIN
-    RETVAL=$?
-    [ $RETVAL -eq 0 ] && rm -f ${LOCKFILE} ${PIDFILE}
-    echo
-    return $RETVAL
-}
-
-reload() {
-    echo -n $"Reloading nix daemon... "
-    killproc -p ${PIDFILE} $NIX_DAEMON_BIN -HUP
-    RETVAL=$?
-    echo
-    return $RETVAL
-}
-
-restart() {
-    stop
-    start
-}
-
-RETVAL=0
-
-# caller switch
-case "$1" in
-  start)
-        start
-    ;;
-  stop)
-        stop
-    ;;
-  status)
-        status -p ${PIDFILE} $NIX_DAEMON_BIN
-            RETVAL=$?
-    ;;
-  restart)
-        restart
-    ;;
-  reload)
-        reload
-    ;;
-  condrestart)
-        if [ -f $LOCKFILE ]; then
-            restart
-        fi
-    ;;
-  *)
-        echo $"Usage: $0 {start|stop|status|restart|condrestart}"
-        exit 2
-    ;;
-esac
-
-exit $RETVAL
diff --git a/third_party/nix/misc/upstart/local.mk b/third_party/nix/misc/upstart/local.mk
deleted file mode 100644
index a73dc061e4fc..000000000000
--- a/third_party/nix/misc/upstart/local.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-ifeq ($(OS), Linux)
-
-  $(foreach n, nix-daemon.conf, $(eval $(call install-file-in, $(d)/$(n), $(sysconfdir)/init, 0644)))
-
-endif
diff --git a/third_party/nix/misc/upstart/meson.build b/third_party/nix/misc/upstart/meson.build
deleted file mode 100644
index 24731addd4ee..000000000000
--- a/third_party/nix/misc/upstart/meson.build
+++ /dev/null
@@ -1,26 +0,0 @@
-# ifeq ($(OS), Linux)
-
-#   $(foreach n, nix-daemon.conf, $(eval $(call install-file-in, $(d)/$(n), $(sysconfdir)/init, 0644)))
-
-# endif
-
-
-# nix systemd build file
-#============================================================================
-
-if (sys_name.contains('linux'))
-
-    upstart_data = []
-
-    upstart_nix_daemon = configuration_data()
-    upstart_nix_daemon.set('bindir', bindir)
-
-    upstart_data += configure_file(
-        input : 'nix-daemon.conf.in',
-        output : 'nix-daemon.conf',
-        configuration : upstart_nix_daemon)
-
-    install_data(
-        upstart_data,
-        install_dir : join_paths(sysconfdir, 'init'))
-endif
diff --git a/third_party/nix/misc/upstart/nix-daemon.conf.in b/third_party/nix/misc/upstart/nix-daemon.conf.in
deleted file mode 100644
index 0e806edbd770..000000000000
--- a/third_party/nix/misc/upstart/nix-daemon.conf.in
+++ /dev/null
@@ -1,5 +0,0 @@
-description "Nix Daemon"
-start on filesystem
-stop on shutdown
-respawn
-exec @bindir@/nix-daemon --daemon
diff --git a/third_party/nix/mk/clean.mk b/third_party/nix/mk/clean.mk
deleted file mode 100644
index ce9afb3b0db7..000000000000
--- a/third_party/nix/mk/clean.mk
+++ /dev/null
@@ -1,11 +0,0 @@
-clean-files :=
-
-clean:
-	$(suppress) rm -fv -- $(clean-files)
-
-dryclean:
-	@for i in $(clean-files); do if [ -e $$i ]; then echo $$i; fi; done | sort
-
-print-top-help += \
-  echo "  clean: Delete generated files"; \
-  echo "  dryclean: Show what files would be deleted by 'make clean'";
diff --git a/third_party/nix/mk/dist.mk b/third_party/nix/mk/dist.mk
deleted file mode 100644
index 794b277713d4..000000000000
--- a/third_party/nix/mk/dist.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-ifdef PACKAGE_NAME
-
-dist-name = $(PACKAGE_NAME)-$(PACKAGE_VERSION)
-
-dist: $(dist-name).tar.bz2 $(dist-name).tar.xz
-
-$(dist-name).tar.bz2: $(dist-files)
-	$(trace-gen) tar cfj $@ $(sort $(dist-files)) --transform 's,^,$(dist-name)/,'
-
-$(dist-name).tar.xz: $(dist-files)
-	$(trace-gen) tar cfJ $@ $(sort $(dist-files)) --transform 's,^,$(dist-name)/,'
-
-clean-files += $(dist-name).tar.bz2 $(dist-name).tar.xz
-
-print-top-help += echo "  dist: Generate a source distribution";
-
-endif
diff --git a/third_party/nix/mk/functions.mk b/third_party/nix/mk/functions.mk
deleted file mode 100644
index c48775db8c3b..000000000000
--- a/third_party/nix/mk/functions.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# Utility function for recursively finding files, e.g.
-# ‘$(call rwildcard, path/to/dir, *.c *.h)’.
-rwildcard=$(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2) $(filter $(subst *,%,$2),$d))
-
-# Given a file name, produce the corresponding dependency file
-# (e.g. ‘foo/bar.o’ becomes ‘foo/.bar.o.dep’).
-filename-to-dep = $(dir $1).$(notdir $1).dep
-
-# Return the full path to a program by looking it up in $PATH, or the
-# empty string if not found.
-find-program = $(shell for i in $$(IFS=: ; echo $$PATH); do p=$$i/$(strip $1); if [ -e $$p ]; then echo $$p; break; fi; done)
-
-# Ensure that the given string ends in a single slash.
-add-trailing-slash = $(patsubst %/,%,$(1))/
diff --git a/third_party/nix/mk/install.mk b/third_party/nix/mk/install.mk
deleted file mode 100644
index dad0fd8533ab..000000000000
--- a/third_party/nix/mk/install.mk
+++ /dev/null
@@ -1,62 +0,0 @@
-# Add a rule for creating $(1) as a directory.  This template may be
-# called multiple times for the same directory.
-define create-dir
-   _i := $$(call add-trailing-slash, $(DESTDIR)$$(strip $(1)))
-  ifndef $$(_i)_SEEN
-    $$(_i)_SEEN = 1
-    $$(_i):
-	$$(trace-mkdir) install -d "$$@"
-  endif
-endef
-
-
-# Add a rule for installing file $(1) as file $(2) with mode $(3).
-# The directory containing $(2) will be created automatically.
-define install-file-as
-
-  _i := $(DESTDIR)$$(strip $(2))
-
-  install: $$(_i)
-
-  $$(_i): $(1) | $$(dir $$(_i))
-	$$(trace-install) install -m $(3) $(1) "$$@"
-
-  $$(eval $$(call create-dir, $$(dir $(2))))
-
-endef
-
-
-# Add a rule for installing file $(1) in directory $(2) with mode
-# $(3).  The directory will be created automatically.
-define install-file-in
-  $$(eval $$(call install-file-as,$(1),$(2)/$$(notdir $(1)),$(3)))
-endef
-
-
-define install-program-in
-  $$(eval $$(call install-file-in,$(1),$(2),0755))
-endef
-
-
-define install-data-in
-  $$(eval $$(call install-file-in,$(1),$(2),0644))
-endef
-
-
-# Install a symlink from $(2) to $(1).  Note that $(1) need not exist.
-define install-symlink
-
-  _i := $(DESTDIR)$$(strip $(2))
-
-  install: $$(_i)
-
-  $$(_i): | $$(dir $$(_i))
-	$$(trace-install) ln -sfn $(1) "$$@"
-
-  $$(eval $$(call create-dir, $$(dir $(2))))
-
-endef
-
-
-print-top-help += \
-  echo "  install: Install into \$$(prefix) (currently set to '$(prefix)')";
diff --git a/third_party/nix/mk/jars.mk b/third_party/nix/mk/jars.mk
deleted file mode 100644
index c8513e664ed5..000000000000
--- a/third_party/nix/mk/jars.mk
+++ /dev/null
@@ -1,36 +0,0 @@
-define build-jar
-
-  $(1)_NAME ?= $(1)
-
-  _d := $$(strip $$($(1)_DIR))
-
-  $(1)_PATH := $$(_d)/$$($(1)_NAME).jar
-
-  $(1)_TMPDIR := $$(_d)/.$$($(1)_NAME).jar.tmp
-
-  _jars := $$(foreach jar, $$($(1)_JARS), $$($$(jar)_PATH))
-
-  $$($(1)_PATH): $$($(1)_SOURCES) $$(_jars) $$($(1)_EXTRA_DEPS)| $$($(1)_ORDER_AFTER)
-	@rm -rf $$($(1)_TMPDIR)
-	@mkdir -p $$($(1)_TMPDIR)
-	$$(trace-javac) javac $(GLOBAL_JAVACFLAGS) $$($(1)_JAVACFLAGS) -d $$($(1)_TMPDIR) \
-	  $$(foreach fn, $$($(1)_SOURCES), '$$(fn)') \
-	  -cp "$$(subst $$(space),,$$(foreach jar,$$($(1)_JARS),$$($$(jar)_PATH):))$$$$CLASSPATH"
-	@echo -e '$$(subst $$(newline),\n,$$($(1)_MANIFEST))' > $$($(1)_PATH).manifest
-	$$(trace-jar) jar cfm $$($(1)_PATH) $$($(1)_PATH).manifest -C $$($(1)_TMPDIR) .
-	@rm $$($(1)_PATH).manifest
-	@rm -rf $$($(1)_TMPDIR)
-
-  $(1)_INSTALL_DIR ?= $$(jardir)
-
-  $(1)_INSTALL_PATH := $$($(1)_INSTALL_DIR)/$$($(1)_NAME).jar
-
-  $$(eval $$(call install-file-as, $$($(1)_PATH), $$($(1)_INSTALL_PATH), 0644))
-
-  install: $$($(1)_INSTALL_PATH)
-
-  jars-list += $$($(1)_PATH)
-
-  clean-files += $$($(1)_PATH)
-
-endef
diff --git a/third_party/nix/mk/lib.mk b/third_party/nix/mk/lib.mk
deleted file mode 100644
index 1da51d879734..000000000000
--- a/third_party/nix/mk/lib.mk
+++ /dev/null
@@ -1,160 +0,0 @@
-default: all
-
-
-# Get rid of default suffixes. FIXME: is this a good idea?
-.SUFFIXES:
-
-
-# Initialise some variables.
-bin-scripts :=
-noinst-scripts :=
-man-pages :=
-install-tests :=
-dist-files :=
-OS = $(shell uname -s)
-
-
-# Hack to define a literal space.
-space :=
-space +=
-
-
-# Hack to define a literal newline.
-define newline
-
-
-endef
-
-
-# Default installation paths.
-prefix ?= /usr/local
-libdir ?= $(prefix)/lib
-bindir ?= $(prefix)/bin
-libexecdir ?= $(prefix)/libexec
-datadir ?= $(prefix)/share
-jardir ?= $(datadir)/java
-localstatedir ?= $(prefix)/var
-sysconfdir ?= $(prefix)/etc
-mandir ?= $(prefix)/share/man
-
-
-# Initialise support for build directories.
-builddir ?=
-
-ifdef builddir
-  buildprefix = $(builddir)/
-else
-  buildprefix =
-endif
-
-
-# Pass -fPIC if we're building dynamic libraries.
-BUILD_SHARED_LIBS ?= 1
-
-ifeq ($(BUILD_SHARED_LIBS), 1)
-  ifeq (CYGWIN,$(findstring CYGWIN,$(OS)))
-    GLOBAL_CFLAGS += -U__STRICT_ANSI__ -D_GNU_SOURCE
-    GLOBAL_CXXFLAGS += -U__STRICT_ANSI__ -D_GNU_SOURCE
-  else
-    GLOBAL_CFLAGS += -fPIC
-    GLOBAL_CXXFLAGS += -fPIC
-  endif
-  ifneq ($(OS), Darwin)
-   ifneq ($(OS), SunOS)
-    ifneq ($(OS), FreeBSD)
-     GLOBAL_LDFLAGS += -Wl,--no-copy-dt-needed-entries
-    endif
-   endif
-  endif
-  SET_RPATH_TO_LIBS ?= 1
-endif
-
-# Pass -g if we want debug info.
-BUILD_DEBUG ?= 1
-
-ifeq ($(BUILD_DEBUG), 1)
-  GLOBAL_CFLAGS += -g
-  GLOBAL_CXXFLAGS += -g
-  GLOBAL_JAVACFLAGS += -g
-endif
-
-
-include mk/functions.mk
-include mk/tracing.mk
-include mk/clean.mk
-include mk/install.mk
-include mk/libraries.mk
-include mk/programs.mk
-include mk/jars.mk
-include mk/patterns.mk
-include mk/templates.mk
-include mk/tests.mk
-
-
-# Include all sub-Makefiles.
-define include-sub-makefile
-  d := $$(patsubst %/,%,$$(dir $(1)))
-  include $(1)
-endef
-
-$(foreach mf, $(makefiles), $(eval $(call include-sub-makefile, $(mf))))
-
-
-# Instantiate stuff.
-$(foreach lib, $(libraries), $(eval $(call build-library,$(lib))))
-$(foreach prog, $(programs), $(eval $(call build-program,$(prog))))
-$(foreach jar, $(jars), $(eval $(call build-jar,$(jar))))
-$(foreach script, $(bin-scripts), $(eval $(call install-program-in,$(script),$(bindir))))
-$(foreach script, $(bin-scripts), $(eval programs-list += $(script)))
-$(foreach script, $(noinst-scripts), $(eval programs-list += $(script)))
-$(foreach template, $(template-files), $(eval $(call instantiate-template,$(template))))
-$(foreach test, $(install-tests), $(eval $(call run-install-test,$(test))))
-$(foreach file, $(man-pages), $(eval $(call install-data-in, $(file), $(mandir)/man$(patsubst .%,%,$(suffix $(file))))))
-
-
-include mk/dist.mk
-
-
-.PHONY: default all man help
-
-all: $(programs-list) $(libs-list) $(jars-list) $(man-pages)
-
-man: $(man-pages)
-
-
-help:
-	@echo "The following targets are available:"
-	@echo ""
-	@echo "  default: Build default targets"
-ifdef man-pages
-	@echo "  man: Generate manual pages"
-endif
-	@$(print-top-help)
-ifdef programs-list
-	@echo ""
-	@echo "The following programs can be built:"
-	@echo ""
-	@for i in $(programs-list); do echo "  $$i"; done
-endif
-ifdef libs-list
-	@echo ""
-	@echo "The following libraries can be built:"
-	@echo ""
-	@for i in $(libs-list); do echo "  $$i"; done
-endif
-ifdef jars-list
-	@echo ""
-	@echo "The following JARs can be built:"
-	@echo ""
-	@for i in $(jars-list); do echo "  $$i"; done
-endif
-	@echo ""
-	@echo "The following variables control the build:"
-	@echo ""
-	@echo "  BUILD_SHARED_LIBS ($(BUILD_SHARED_LIBS)): Whether to build shared libraries"
-	@echo "  BUILD_DEBUG ($(BUILD_DEBUG)): Whether to include debug symbols"
-	@echo "  CC ($(CC)): C compiler to be used"
-	@echo "  CFLAGS: Flags for the C compiler"
-	@echo "  CXX ($(CXX)): C++ compiler to be used"
-	@echo "  CXXFLAGS: Flags for the C++ compiler"
-	@$(print-var-help)
diff --git a/third_party/nix/mk/libraries.mk b/third_party/nix/mk/libraries.mk
deleted file mode 100644
index 307e29b9d05b..000000000000
--- a/third_party/nix/mk/libraries.mk
+++ /dev/null
@@ -1,162 +0,0 @@
-libs-list :=
-
-ifeq ($(OS), Darwin)
-  SO_EXT = dylib
-else
-  ifeq (CYGWIN,$(findstring CYGWIN,$(OS)))
-    SO_EXT = dll
-  else
-    SO_EXT = so
-  endif
-endif
-
-# Build a library with symbolic name $(1).  The library is defined by
-# various variables prefixed by ‘$(1)_’:
-#
-# - $(1)_NAME: the name of the library (e.g. ‘libfoo’); defaults to
-#   $(1).
-#
-# - $(1)_DIR: the directory where the (non-installed) library will be
-#   placed.
-#
-# - $(1)_SOURCES: the source files of the library.
-#
-# - $(1)_CFLAGS: additional C compiler flags.
-#
-# - $(1)_CXXFLAGS: additional C++ compiler flags.
-#
-# - $(1)_ORDER_AFTER: a set of targets on which the object files of
-#   this libraries will have an order-only dependency.
-#
-# - $(1)_LIBS: the symbolic names of other libraries on which this
-#   library depends.
-#
-# - $(1)_ALLOW_UNDEFINED: if set, the library is allowed to have
-#   undefined symbols.  Has no effect for static libraries.
-#
-# - $(1)_LDFLAGS: additional linker flags.
-#
-# - $(1)_LDFLAGS_PROPAGATED: additional linker flags, also propagated
-#   to the linking of programs/libraries that use this library.
-#
-# - $(1)_FORCE_INSTALL: if defined, the library will be installed even
-#   if it's not needed (i.e. dynamically linked) by a program.
-#
-# - $(1)_INSTALL_DIR: the directory where the library will be
-#   installed.  Defaults to $(libdir).
-#
-# - $(1)_EXCLUDE_FROM_LIBRARY_LIST: if defined, the library will not
-#   be automatically marked as a dependency of the top-level all
-#   target andwill not be listed in the make help output. This is
-#   useful for libraries built solely for testing, for example.
-#
-# - BUILD_SHARED_LIBS: if equal to ‘1’, a dynamic library will be
-#   built, otherwise a static library.
-define build-library
-  $(1)_NAME ?= $(1)
-  _d := $(buildprefix)$$(strip $$($(1)_DIR))
-  _srcs := $$(sort $$(foreach src, $$($(1)_SOURCES), $$(src)))
-  $(1)_OBJS := $$(addprefix $(buildprefix), $$(addsuffix .o, $$(basename $$(_srcs))))
-  _libs := $$(foreach lib, $$($(1)_LIBS), $$($$(lib)_PATH))
-
-  ifeq (CYGWIN,$(findstring CYGWIN,$(OS)))
-    $(1)_INSTALL_DIR ?= $$(bindir)
-  else
-    $(1)_INSTALL_DIR ?= $$(libdir)
-  endif
-
-  $(1)_LDFLAGS_USE :=
-  $(1)_LDFLAGS_USE_INSTALLED :=
-
-  $$(eval $$(call create-dir, $$(_d)))
-
-  ifeq ($(BUILD_SHARED_LIBS), 1)
-
-    ifdef $(1)_ALLOW_UNDEFINED
-      ifeq ($(OS), Darwin)
-        $(1)_LDFLAGS += -undefined suppress -flat_namespace
-      endif
-    else
-      ifneq ($(OS), Darwin)
-        ifneq (CYGWIN,$(findstring CYGWIN,$(OS)))
-          $(1)_LDFLAGS += -Wl,-z,defs
-        endif
-      endif
-    endif
-
-    ifneq ($(OS), Darwin)
-      $(1)_LDFLAGS += -Wl,-soname=$$($(1)_NAME).$(SO_EXT)
-    endif
-
-    $(1)_PATH := $$(_d)/$$($(1)_NAME).$(SO_EXT)
-
-    $$($(1)_PATH): $$($(1)_OBJS) $$(_libs) | $$(_d)/
-	$$(trace-ld) $(CXX) -o $$(abspath $$@) -shared $$(LDFLAGS) $$(GLOBAL_LDFLAGS) $$($(1)_OBJS) $$($(1)_LDFLAGS) $$($(1)_LDFLAGS_PROPAGATED) $$(foreach lib, $$($(1)_LIBS), $$($$(lib)_LDFLAGS_USE)) $$($(1)_LDFLAGS_UNINSTALLED)
-
-    ifneq ($(OS), Darwin)
-      $(1)_LDFLAGS_USE += -Wl,-rpath,$$(abspath $$(_d))
-    endif
-    $(1)_LDFLAGS_USE += -L$$(_d) -l$$(patsubst lib%,%,$$(strip $$($(1)_NAME)))
-
-    $(1)_INSTALL_PATH := $(DESTDIR)$$($(1)_INSTALL_DIR)/$$($(1)_NAME).$(SO_EXT)
-
-    _libs_final := $$(foreach lib, $$($(1)_LIBS), $$($$(lib)_INSTALL_PATH))
-
-    $$(eval $$(call create-dir, $$($(1)_INSTALL_DIR)))
-
-    $$($(1)_INSTALL_PATH): $$($(1)_OBJS) $$(_libs_final) | $(DESTDIR)$$($(1)_INSTALL_DIR)/
-	$$(trace-ld) $(CXX) -o $$@ -shared $$(LDFLAGS) $$(GLOBAL_LDFLAGS) $$($(1)_OBJS) $$($(1)_LDFLAGS) $$($(1)_LDFLAGS_PROPAGATED) $$(foreach lib, $$($(1)_LIBS), $$($$(lib)_LDFLAGS_USE_INSTALLED))
-
-    $(1)_LDFLAGS_USE_INSTALLED += -L$$(DESTDIR)$$($(1)_INSTALL_DIR) -l$$(patsubst lib%,%,$$(strip $$($(1)_NAME)))
-    ifneq ($(OS), Darwin)
-      ifeq ($(SET_RPATH_TO_LIBS), 1)
-        $(1)_LDFLAGS_USE_INSTALLED += -Wl,-rpath,$$($(1)_INSTALL_DIR)
-      else
-        $(1)_LDFLAGS_USE_INSTALLED += -Wl,-rpath-link,$$($(1)_INSTALL_DIR)
-      endif
-    endif
-
-    ifdef $(1)_FORCE_INSTALL
-      install: $$($(1)_INSTALL_PATH)
-    endif
-
-  else
-
-    $(1)_PATH := $$(_d)/$$($(1)_NAME).a
-
-    $$($(1)_PATH): $$($(1)_OBJS) | $$(_d)/
-	$(trace-ar) $(AR) crs $$@ $$?
-
-    $(1)_LDFLAGS_USE += $$($(1)_PATH) $$($(1)_LDFLAGS)
-
-    $(1)_INSTALL_PATH := $$(libdir)/$$($(1)_NAME).a
-
-  endif
-
-  $(1)_LDFLAGS_USE += $$($(1)_LDFLAGS_PROPAGATED)
-  $(1)_LDFLAGS_USE_INSTALLED += $$($(1)_LDFLAGS_PROPAGATED)
-
-  # Propagate CFLAGS and CXXFLAGS to the individual object files.
-  $$(foreach obj, $$($(1)_OBJS), $$(eval $$(obj)_CFLAGS=$$($(1)_CFLAGS)))
-  $$(foreach obj, $$($(1)_OBJS), $$(eval $$(obj)_CXXFLAGS=$$($(1)_CXXFLAGS)))
-
-  # Make each object file depend on the common dependencies.
-  $$(foreach obj, $$($(1)_OBJS), $$(eval $$(obj): $$($(1)_COMMON_DEPS) $$(GLOBAL_COMMON_DEPS)))
-
-  # Make each object file have order-only dependencies on the common
-  # order-only dependencies. This includes the order-only dependencies
-  # of libraries we're depending on.
-  $(1)_ORDER_AFTER_CLOSED = $$($(1)_ORDER_AFTER) $$(foreach lib, $$($(1)_LIBS), $$($$(lib)_ORDER_AFTER_CLOSED))
-
-  $$(foreach obj, $$($(1)_OBJS), $$(eval $$(obj): | $$($(1)_ORDER_AFTER_CLOSED) $$(GLOBAL_ORDER_AFTER)))
-
-  # Include .dep files, if they exist.
-  $(1)_DEPS := $$(foreach fn, $$($(1)_OBJS), $$(call filename-to-dep, $$(fn)))
-  -include $$($(1)_DEPS)
-
-  ifndef $(1)_EXCLUDE_FROM_LIBRARY_LIST
-  libs-list += $$($(1)_PATH)
-  endif
-  clean-files += $$(_d)/*.a $$(_d)/*.$(SO_EXT) $$(_d)/*.o $$(_d)/.*.dep $$($(1)_DEPS) $$($(1)_OBJS)
-  dist-files += $$(_srcs)
-endef
diff --git a/third_party/nix/mk/patterns.mk b/third_party/nix/mk/patterns.mk
deleted file mode 100644
index 3219d9629fbf..000000000000
--- a/third_party/nix/mk/patterns.mk
+++ /dev/null
@@ -1,11 +0,0 @@
-$(buildprefix)%.o: %.cc
-	@mkdir -p "$(dir $@)"
-	$(trace-cxx) $(CXX) -o $@ -c $< $(GLOBAL_CXXFLAGS) $(GLOBAL_CXXFLAGS_PCH) $(CXXFLAGS) $($@_CXXFLAGS) -MMD -MF $(call filename-to-dep, $@) -MP
-
-$(buildprefix)%.o: %.cpp
-	@mkdir -p "$(dir $@)"
-	$(trace-cxx) $(CXX) -o $@ -c $< $(GLOBAL_CXXFLAGS) $(GLOBAL_CXXFLAGS_PCH) $(CXXFLAGS) $($@_CXXFLAGS) -MMD -MF $(call filename-to-dep, $@) -MP
-
-$(buildprefix)%.o: %.c
-	@mkdir -p "$(dir $@)"
-	$(trace-cc) $(CC) -o $@ -c $< $(GLOBAL_CFLAGS) $(CFLAGS) $($@_CFLAGS) -MMD -MF $(call filename-to-dep, $@) -MP
diff --git a/third_party/nix/mk/programs.mk b/third_party/nix/mk/programs.mk
deleted file mode 100644
index d93df4468086..000000000000
--- a/third_party/nix/mk/programs.mk
+++ /dev/null
@@ -1,79 +0,0 @@
-programs-list :=
-
-# Build a program with symbolic name $(1).  The program is defined by
-# various variables prefixed by ‘$(1)_’:
-#
-# - $(1)_DIR: the directory where the (non-installed) program will be
-#   placed.
-#
-# - $(1)_SOURCES: the source files of the program.
-#
-# - $(1)_CFLAGS: additional C compiler flags.
-#
-# - $(1)_CXXFLAGS: additional C++ compiler flags.
-#
-# - $(1)_ORDER_AFTER: a set of targets on which the object files of
-#   this program will have an order-only dependency.
-#
-# - $(1)_LIBS: the symbolic names of libraries on which this program
-#   depends.
-#
-# - $(1)_LDFLAGS: additional linker flags.
-#
-# - $(1)_INSTALL_DIR: the directory where the program will be
-#   installed; defaults to $(bindir).
-define build-program
-  _d := $(buildprefix)$$($(1)_DIR)
-  _srcs := $$(sort $$(foreach src, $$($(1)_SOURCES), $$(src)))
-  $(1)_OBJS := $$(addprefix $(buildprefix), $$(addsuffix .o, $$(basename $$(_srcs))))
-  _libs := $$(foreach lib, $$($(1)_LIBS), $$($$(lib)_PATH))
-  $(1)_PATH := $$(_d)/$(1)
-
-  $$(eval $$(call create-dir, $$(_d)))
-
-  $$($(1)_PATH): $$($(1)_OBJS) $$(_libs) | $$(_d)/
-	$$(trace-ld) $(CXX) -o $$@ $$(LDFLAGS) $$(GLOBAL_LDFLAGS) $$($(1)_OBJS) $$($(1)_LDFLAGS) $$(foreach lib, $$($(1)_LIBS), $$($$(lib)_LDFLAGS_USE))
-
-  $(1)_INSTALL_DIR ?= $$(bindir)
-  $(1)_INSTALL_PATH := $$($(1)_INSTALL_DIR)/$(1)
-
-  $$(eval $$(call create-dir, $$($(1)_INSTALL_DIR)))
-
-  install: $(DESTDIR)$$($(1)_INSTALL_PATH)
-
-  ifeq ($(BUILD_SHARED_LIBS), 1)
-
-    _libs_final := $$(foreach lib, $$($(1)_LIBS), $$($$(lib)_INSTALL_PATH))
-
-    $(DESTDIR)$$($(1)_INSTALL_PATH): $$($(1)_OBJS) $$(_libs_final) | $(DESTDIR)$$($(1)_INSTALL_DIR)/
-	$$(trace-ld) $(CXX) -o $$@ $$(LDFLAGS) $$(GLOBAL_LDFLAGS) $$($(1)_OBJS) $$($(1)_LDFLAGS) $$(foreach lib, $$($(1)_LIBS), $$($$(lib)_LDFLAGS_USE_INSTALLED))
-
-  else
-
-    $(DESTDIR)$$($(1)_INSTALL_PATH): $$($(1)_PATH) | $(DESTDIR)$$($(1)_INSTALL_DIR)/
-	install -t $(DESTDIR)$$($(1)_INSTALL_DIR) $$<
-
-  endif
-
-  # Propagate CFLAGS and CXXFLAGS to the individual object files.
-  $$(foreach obj, $$($(1)_OBJS), $$(eval $$(obj)_CFLAGS=$$($(1)_CFLAGS)))
-  $$(foreach obj, $$($(1)_OBJS), $$(eval $$(obj)_CXXFLAGS=$$($(1)_CXXFLAGS)))
-
-  # Make each object file depend on the common dependencies.
-  $$(foreach obj, $$($(1)_OBJS), $$(eval $$(obj): $$($(1)_COMMON_DEPS) $$(GLOBAL_COMMON_DEPS)))
-
-  # Make each object file have order-only dependencies on the common
-  # order-only dependencies. This includes the order-only dependencies
-  # of libraries we're depending on.
-  $(1)_ORDER_AFTER_CLOSED = $$($(1)_ORDER_AFTER) $$(foreach lib, $$($(1)_LIBS), $$($$(lib)_ORDER_AFTER_CLOSED))
-
-  $$(foreach obj, $$($(1)_OBJS), $$(eval $$(obj): | $$($(1)_ORDER_AFTER_CLOSED) $$(GLOBAL_ORDER_AFTER)))
-
-  # Include .dep files, if they exist.
-  $(1)_DEPS := $$(foreach fn, $$($(1)_OBJS), $$(call filename-to-dep, $$(fn)))
-  -include $$($(1)_DEPS)
-
-  programs-list += $$($(1)_PATH)
-  clean-files += $$($(1)_PATH) $$(_d)/*.o $$(_d)/.*.dep $$($(1)_DEPS) $$($(1)_OBJS)
-  dist-files += $$(_srcs)
-endef
diff --git a/third_party/nix/mk/templates.mk b/third_party/nix/mk/templates.mk
deleted file mode 100644
index c7ac7afbff27..000000000000
--- a/third_party/nix/mk/templates.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-template-files :=
-
-# Create the file $(1) from $(1).in by running config.status (which
-# substitutes all ‘@var@’ variables set by the configure script).
-define instantiate-template
-
-  clean-files += $(1)
-
-endef
-
-ifneq ($(MAKECMDGOALS), clean)
-
-%.h: %.h.in
-	$(trace-gen) rm -f $@ && ./config.status --quiet --header=$@
-
-%: %.in
-	$(trace-gen) rm -f $@ && ./config.status --quiet --file=$@
-
-endif
diff --git a/third_party/nix/mk/tests.mk b/third_party/nix/mk/tests.mk
deleted file mode 100644
index 70c30661b95f..000000000000
--- a/third_party/nix/mk/tests.mk
+++ /dev/null
@@ -1,45 +0,0 @@
-# Run program $1 as part of ‘make installcheck’.
-define run-install-test
-
-  installcheck: $1
-
-  _installcheck-list += $1
-
-endef
-
-# Color code from https://unix.stackexchange.com/a/10065
-installcheck:
-	@total=0; failed=0; \
-	red=""; \
-	green=""; \
-	yellow=""; \
-	normal=""; \
-	if [ -t 1 ]; then \
-		red=""; \
-		green=""; \
-		yellow=""; \
-		normal=""; \
-	fi; \
-	for i in $(_installcheck-list); do \
-	  total=$$((total + 1)); \
-	  printf "running test $$i..."; \
-	  log="$$(cd $$(dirname $$i) && $(tests-environment) $$(basename $$i) 2>&1)"; \
-	  status=$$?; \
-	  if [ $$status -eq 0 ]; then \
-	    echo " [$${green}PASS$$normal]"; \
-	  elif [ $$status -eq 99 ]; then \
-	    echo " [$${yellow}SKIP$$normal]"; \
-	  else \
-	    echo " [$${red}FAIL$$normal]"; \
-	    echo "$$log" | sed 's/^/    /'; \
-	    failed=$$((failed + 1)); \
-	  fi; \
-	done; \
-	if [ "$$failed" != 0 ]; then \
-	  echo "$${red}$$failed out of $$total tests failed $$normal"; \
-	  exit 1; \
-	else \
-		echo "$${green}All tests succeeded$$normal"; \
-	fi
-
-.PHONY: check installcheck
diff --git a/third_party/nix/mk/tracing.mk b/third_party/nix/mk/tracing.mk
deleted file mode 100644
index 13912d3c7821..000000000000
--- a/third_party/nix/mk/tracing.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-V ?= 0
-
-ifeq ($(V), 0)
-
-  trace-gen     = @echo "  GEN   " $@;
-  trace-cc      = @echo "  CC    " $@;
-  trace-cxx     = @echo "  CXX   " $@;
-  trace-ld      = @echo "  LD    " $@;
-  trace-ar      = @echo "  AR    " $@;
-  trace-install = @echo "  INST  " $@;
-  trace-javac   = @echo "  JAVAC " $@;
-  trace-jar     = @echo "  JAR   " $@;
-  trace-mkdir   = @echo "  MKDIR " $@;
-
-  suppress  = @
-
-endif
diff --git a/third_party/nix/nix.spec.in b/third_party/nix/nix.spec.in
deleted file mode 100644
index 6b9e3763738f..000000000000
--- a/third_party/nix/nix.spec.in
+++ /dev/null
@@ -1,173 +0,0 @@
-%undefine _hardened_build
-
-%global nixbld_user "nix-builder-"
-%global nixbld_group "nixbld"
-
-# NOTE: BUILD on EL7 requires
-# - Centos / RHEL7 software collection repository 
-#   yum install centos-release-scl
-#
-# - Recent boost backport
-#   curl https://copr.fedorainfracloud.org/coprs/whosthere/boost/repo/epel-7/whosthere-boost-epel-7.repo -o /etc/yum.repos.d/whosthere-boost-epel-7.repo
-#
-
-# Disable documentation generation
-# necessary on some platforms
-%bcond_without docgen
-
-Summary: The Nix software deployment system
-Name: nix
-Version: @PACKAGE_VERSION@
-Release: 2%{?dist}
-License: LGPLv2+
-Group: Applications/System
-URL: http://nixos.org/
-Source0: %{name}-%{version}.tar.bz2
-
-Requires: curl
-Requires: bzip2
-Requires: gzip
-Requires: xz
-BuildRequires: bison
-BuildRequires: boost-devel >= 1.60
-BuildRequires: bzip2-devel
-
-# for RHEL <= 7, we need software collections for a C++14 compatible compatible compiler
-%if 0%{?rhel}
-BuildRequires: devtoolset-7-gcc
-BuildRequires: devtoolset-7-gcc-c++
-%endif
-
-BuildRequires: flex
-BuildRequires: libcurl-devel
-BuildRequires: libseccomp-devel
-BuildRequires: openssl-devel
-BuildRequires: sqlite-devel
-BuildRequires: xz-devel
-
-%description
-Nix is a purely functional package manager. It allows multiple
-versions of a package to be installed side-by-side, ensures that
-dependency specifications are complete, supports atomic upgrades and
-rollbacks, allows non-root users to install software, and has many
-other features. It is the basis of the NixOS Linux distribution, but
-it can be used equally well under other Unix systems.
-
-%package        devel
-Summary:        Development files for %{name}
-Requires:       %{name}%{?_isa} = %{version}-%{release}
-
-%description   devel
-The %{name}-devel package contains libraries and header files for
-developing applications that use %{name}.
-
-
-%package doc
-Summary:        Documentation files for %{name}
-BuildArch:      noarch
-Requires:       %{name} = %{version}-%{release}
-
-%description   doc
-The %{name}-doc package contains documentation files for %{name}.
-
-%prep
-%setup -q
-
-
-%build
-%if 0%{?rhel}
-source /opt/rh/devtoolset-7/enable 
-%endif
-extraFlags=
-# - override docdir so large documentation files are owned by the
-#   -doc subpackage
-# - set localstatedir by hand to the preferred nix value
-%configure --localstatedir=/nix/var \
-	   %{!?without_docgen:--disable-doc-gen} \
-           --docdir=%{_defaultdocdir}/%{name}-doc-%{version} \
-           $extraFlags
-make V=1 %{?_smp_mflags}
-
-
-%install
-%if 0%{?rhel}
-source /opt/rh/devtoolset-7/enable 
-%endif
-
-make DESTDIR=$RPM_BUILD_ROOT install
-
-find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
-
-# make the store
-mkdir -p $RPM_BUILD_ROOT/nix/store
-chmod 1775 $RPM_BUILD_ROOT/nix/store
-
-# make per-user directories
-for d in profiles gcroots;
-do
-  mkdir -p $RPM_BUILD_ROOT/nix/var/nix/$d/per-user
-  chmod 755 $RPM_BUILD_ROOT/nix/var/nix/$d/per-user
-done
-
-# fix permission of nix profile
-# (until this is fixed in the relevant Makefile)
-chmod -x $RPM_BUILD_ROOT%{_sysconfdir}/profile.d/nix.sh
-
-# we ship this file in the base package
-rm -f $RPM_BUILD_ROOT%{_defaultdocdir}/%{name}-doc-%{version}/README
-
-# Get rid of Upstart job.
-rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/init
-
-
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-
-%pre
-getent group %{nixbld_group} >/dev/null || groupadd -r %{nixbld_group}
-for i in $(seq 10);
-do
-  getent passwd %{nixbld_user}$i >/dev/null || \
-    useradd -r -g %{nixbld_group} -G %{nixbld_group} -d /var/empty \
-      -s %{_sbindir}/nologin \
-      -c "Nix build user $i" %{nixbld_user}$i
-done
-
-%post
-chgrp %{nixbld_group} /nix/store
-%if ! 0%{?rhel} || 0%{?rhel} >= 7
-# Enable and start Nix worker
-systemctl enable nix-daemon.socket nix-daemon.service
-systemctl start  nix-daemon.socket
-%endif
-
-%files
-%license COPYING
-%{_bindir}/nix*
-%{_libdir}/*.so
-%{_prefix}/libexec/*
-%if ! 0%{?rhel} || 0%{?rhel} >= 7
-%{_prefix}/lib/systemd/system/nix-daemon.socket
-%{_prefix}/lib/systemd/system/nix-daemon.service
-%endif
-%{_datadir}/nix
-#%if ! %{without docgen}
-#%{_mandir}/man1/*.1*
-#%{_mandir}/man5/*.5*
-#%{_mandir}/man8/*.8*
-#%endif
-%config(noreplace) %{_sysconfdir}/profile.d/nix.sh
-%config(noreplace) %{_sysconfdir}/profile.d/nix-daemon.sh
-/nix
-
-%files devel
-%{_includedir}/nix
-%{_prefix}/lib/pkgconfig/*.pc
-
-
-#%if ! %{without docgen}
-#%files doc
-#%docdir %{_defaultdocdir}/%{name}-doc-%{version}
-#%{_defaultdocdir}/%{name}-doc-%{version}
-#%endif
diff --git a/third_party/nix/perl/MANIFEST b/third_party/nix/perl/MANIFEST
deleted file mode 100644
index 08897647c978..000000000000
--- a/third_party/nix/perl/MANIFEST
+++ /dev/null
@@ -1,7 +0,0 @@
-Changes
-Makefile.PL
-MANIFEST
-Nix.xs
-README
-t/Nix.t
-lib/Nix.pm
diff --git a/third_party/nix/perl/Makefile b/third_party/nix/perl/Makefile
deleted file mode 100644
index f36f5d0e9d88..000000000000
--- a/third_party/nix/perl/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-makefiles = local.mk
-
-GLOBAL_CXXFLAGS += -g -Wall
-
--include Makefile.config
-
-include mk/lib.mk
diff --git a/third_party/nix/perl/Makefile.config.in b/third_party/nix/perl/Makefile.config.in
deleted file mode 100644
index c87d4817e172..000000000000
--- a/third_party/nix/perl/Makefile.config.in
+++ /dev/null
@@ -1,18 +0,0 @@
-CC = @CC@
-CFLAGS = @CFLAGS@
-CXX = @CXX@
-CXXFLAGS = @CXXFLAGS@
-HAVE_SODIUM = @HAVE_SODIUM@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-SODIUM_LIBS = @SODIUM_LIBS@
-NIX_CFLAGS = @NIX_CFLAGS@
-NIX_LIBS = @NIX_LIBS@
-nixbindir = @nixbindir@
-curl = @curl@
-nixlibexecdir = @nixlibexecdir@
-nixlocalstatedir = @nixlocalstatedir@
-perl = @perl@
-perllibdir = @perllibdir@
-nixstoredir = @nixstoredir@
-nixsysconfdir = @nixsysconfdir@
diff --git a/third_party/nix/perl/configure.ac b/third_party/nix/perl/configure.ac
deleted file mode 100644
index e8e3610a860d..000000000000
--- a/third_party/nix/perl/configure.ac
+++ /dev/null
@@ -1,101 +0,0 @@
-AC_INIT(nix-perl, m4_esyscmd([bash -c "echo -n $(cat ../.version)$VERSION_SUFFIX"]))
-AC_CONFIG_SRCDIR(MANIFEST)
-AC_CONFIG_AUX_DIR(../config)
-
-# Set default flags for nix (as per AC_PROG_CC/CXX docs),
-# while still allowing the user to override them from the command line.
-: ${CFLAGS="-O3"}
-: ${CXXFLAGS="-O3"}
-AC_PROG_CC
-AC_PROG_CXX
-AX_CXX_COMPILE_STDCXX_11
-
-# Use 64-bit file system calls so that we can support files > 2 GiB.
-AC_SYS_LARGEFILE
-
-AC_DEFUN([NEED_PROG],
-[
-AC_PATH_PROG($1, $2)
-if test -z "$$1"; then
-    AC_MSG_ERROR([$2 is required])
-fi
-])
-
-NEED_PROG(perl, perl)
-NEED_PROG(curl, curl)
-NEED_PROG(bzip2, bzip2)
-NEED_PROG(xz, xz)
-
-# Test that Perl has the open/fork feature (Perl 5.8.0 and beyond).
-AC_MSG_CHECKING([whether Perl is recent enough])
-if ! $perl -e 'open(FOO, "-|", "true"); while (<FOO>) { print; }; close FOO or die;'; then
-    AC_MSG_RESULT(no)
-    AC_MSG_ERROR([Your Perl version is too old.  Nix requires Perl 5.8.0 or newer.])
-fi
-AC_MSG_RESULT(yes)
-
-
-# Figure out where to install Perl modules.
-AC_MSG_CHECKING([for the Perl installation prefix])
-perlversion=$($perl -e 'use Config; print $Config{version};')
-perlarchname=$($perl -e 'use Config; print $Config{archname};')
-AC_SUBST(perllibdir, [${libdir}/perl5/site_perl/$perlversion/$perlarchname])
-AC_MSG_RESULT($perllibdir)
-
-# Look for libsodium, an optional dependency.
-PKG_CHECK_MODULES([SODIUM], [libsodium],
-  [AC_DEFINE([HAVE_SODIUM], [1], [Whether to use libsodium for cryptography.])
-   CXXFLAGS="$SODIUM_CFLAGS $CXXFLAGS"
-   have_sodium=1], [have_sodium=])
-AC_SUBST(HAVE_SODIUM, [$have_sodium])
-
-# Check for the required Perl dependencies (DBI and DBD::SQLite).
-perlFlags="-I$perllibdir"
-
-AC_ARG_WITH(dbi, AC_HELP_STRING([--with-dbi=PATH],
-  [prefix of the Perl DBI library]),
-  perlFlags="$perlFlags -I$withval")
-
-AC_ARG_WITH(dbd-sqlite, AC_HELP_STRING([--with-dbd-sqlite=PATH],
-  [prefix of the Perl DBD::SQLite library]),
-  perlFlags="$perlFlags -I$withval")
-
-AC_MSG_CHECKING([whether DBD::SQLite works])
-if ! $perl $perlFlags -e 'use DBI; use DBD::SQLite;' 2>&5; then
-    AC_MSG_RESULT(no)
-    AC_MSG_FAILURE([The Perl modules DBI and/or DBD::SQLite are missing.])
-fi
-AC_MSG_RESULT(yes)
-
-AC_SUBST(perlFlags)
-
-PKG_CHECK_MODULES([NIX], [nix-store])
-
-NEED_PROG([NIX_INSTANTIATE_PROGRAM], [nix-instantiate])
-
-# Get nix configure values
-nixbindir=$("$NIX_INSTANTIATE_PROGRAM" --eval '<nix/config.nix>' -A nixBinDir | tr -d \")
-nixlibexecdir=$("$NIX_INSTANTIATE_PROGRAM" --eval '<nix/config.nix>' -A nixLibexecDir | tr -d \")
-nixlocalstatedir=$("$NIX_INSTANTIATE_PROGRAM" --eval '<nix/config.nix>' -A nixLocalstateDir | tr -d \")
-nixsysconfdir=$("$NIX_INSTANTIATE_PROGRAM" --eval '<nix/config.nix>' -A nixSysconfDir | tr -d \")
-nixstoredir=$("$NIX_INSTANTIATE_PROGRAM" --eval '<nix/config.nix>' -A nixStoreDir | tr -d \")
-AC_SUBST(nixbindir)
-AC_SUBST(nixlibexecdir)
-AC_SUBST(nixlocalstatedir)
-AC_SUBST(nixsysconfdir)
-AC_SUBST(nixstoredir)
-
-# Expand all variables in config.status.
-test "$prefix" = NONE && prefix=$ac_default_prefix
-test "$exec_prefix" = NONE && exec_prefix='${prefix}'
-for name in $ac_subst_vars; do
-    declare $name="$(eval echo "${!name}")"
-    declare $name="$(eval echo "${!name}")"
-    declare $name="$(eval echo "${!name}")"
-done
-
-rm -f Makefile.config
-ln -sfn ../mk mk
-
-AC_CONFIG_FILES([])
-AC_OUTPUT
diff --git a/third_party/nix/perl/lib/Nix/Config.pm.in b/third_party/nix/perl/lib/Nix/Config.pm.in
deleted file mode 100644
index 67a20c3f41d7..000000000000
--- a/third_party/nix/perl/lib/Nix/Config.pm.in
+++ /dev/null
@@ -1,34 +0,0 @@
-package Nix::Config;
-
-use MIME::Base64;
-
-$version = "@PACKAGE_VERSION@";
-
-$binDir = $ENV{"NIX_BIN_DIR"} || "@nixbindir@";
-$libexecDir = $ENV{"NIX_LIBEXEC_DIR"} || "@nixlibexecdir@";
-$stateDir = $ENV{"NIX_STATE_DIR"} || "@nixlocalstatedir@/nix";
-$logDir = $ENV{"NIX_LOG_DIR"} || "@nixlocalstatedir@/log/nix";
-$confDir = $ENV{"NIX_CONF_DIR"} || "@nixsysconfdir@/nix";
-$storeDir = $ENV{"NIX_STORE_DIR"} || "@nixstoredir@";
-
-$bzip2 = "@bzip2@";
-$xz = "@xz@";
-$curl = "@curl@";
-
-$useBindings = 1;
-
-%config = ();
-
-sub readConfig {
-    my $config = "$confDir/nix.conf";
-    return unless -f $config;
-
-    open CONFIG, "<$config" or die "cannot open '$config'";
-    while (<CONFIG>) {
-        /^\s*([\w\-\.]+)\s*=\s*(.*)$/ or next;
-        $config{$1} = $2;
-    }
-    close CONFIG;
-}
-
-return 1;
diff --git a/third_party/nix/perl/lib/Nix/CopyClosure.pm b/third_party/nix/perl/lib/Nix/CopyClosure.pm
deleted file mode 100644
index 902ee1a1bc9f..000000000000
--- a/third_party/nix/perl/lib/Nix/CopyClosure.pm
+++ /dev/null
@@ -1,61 +0,0 @@
-package Nix::CopyClosure;
-
-use utf8;
-use strict;
-use Nix::Config;
-use Nix::Store;
-use Nix::SSH;
-use List::Util qw(sum);
-use IPC::Open2;
-
-
-sub copyToOpen {
-    my ($from, $to, $sshHost, $storePaths, $includeOutputs, $dryRun, $useSubstitutes) = @_;
-
-    $useSubstitutes = 0 if $dryRun || !defined $useSubstitutes;
-
-    # Get the closure of this path.
-    my @closure = reverse(topoSortPaths(computeFSClosure(0, $includeOutputs,
-        map { followLinksToStorePath $_ } @{$storePaths})));
-
-    # Send the "query valid paths" command with the "lock" option
-    # enabled. This prevents a race where the remote host
-    # garbage-collect paths that are already there. Optionally, ask
-    # the remote host to substitute missing paths.
-    syswrite($to, pack("L<x4L<x4L<x4", 1, 1, $useSubstitutes)) or die;
-    writeStrings(\@closure, $to);
-
-    # Get back the set of paths that are already valid on the remote host.
-    my %present;
-    $present{$_} = 1 foreach readStrings($from);
-
-    my @missing = grep { !$present{$_} } @closure;
-    return if !@missing;
-
-    my $missingSize = 0;
-    $missingSize += (queryPathInfo($_, 1))[3] foreach @missing;
-
-    printf STDERR "copying %d missing paths (%.2f MiB) to '$sshHost'...\n",
-        scalar(@missing), $missingSize / (1024**2);
-    return if $dryRun;
-
-    # Send the "import paths" command.
-    syswrite($to, pack("L<x4", 4)) or die;
-    exportPaths(fileno($to), @missing);
-    readInt($from) == 1 or die "remote machine '$sshHost' failed to import closure\n";
-}
-
-
-sub copyTo {
-    my ($sshHost, $storePaths, $includeOutputs, $dryRun, $useSubstitutes) = @_;
-
-    # Connect to the remote host.
-    my ($from, $to) = connectToRemoteNix($sshHost, []);
-
-    copyToOpen($from, $to, $sshHost, $storePaths, $includeOutputs, $dryRun, $useSubstitutes);
-
-    close $to;
-}
-
-
-1;
diff --git a/third_party/nix/perl/lib/Nix/Manifest.pm b/third_party/nix/perl/lib/Nix/Manifest.pm
deleted file mode 100644
index 6438398e1766..000000000000
--- a/third_party/nix/perl/lib/Nix/Manifest.pm
+++ /dev/null
@@ -1,325 +0,0 @@
-package Nix::Manifest;
-
-use utf8;
-use strict;
-use DBI;
-use DBD::SQLite;
-use Cwd;
-use File::stat;
-use File::Path;
-use Fcntl ':flock';
-use MIME::Base64;
-use Nix::Config;
-use Nix::Store;
-
-our @ISA = qw(Exporter);
-our @EXPORT = qw(readManifest writeManifest addPatch parseNARInfo fingerprintPath);
-
-
-sub addNAR {
-    my ($narFiles, $storePath, $info) = @_;
-
-    $$narFiles{$storePath} = []
-        unless defined $$narFiles{$storePath};
-
-    my $narFileList = $$narFiles{$storePath};
-
-    my $found = 0;
-    foreach my $narFile (@{$narFileList}) {
-        $found = 1 if $narFile->{url} eq $info->{url};
-    }
-
-    push @{$narFileList}, $info if !$found;
-}
-
-
-sub addPatch {
-    my ($patches, $storePath, $patch) = @_;
-
-    $$patches{$storePath} = []
-        unless defined $$patches{$storePath};
-
-    my $patchList = $$patches{$storePath};
-
-    my $found = 0;
-    foreach my $patch2 (@{$patchList}) {
-        $found = 1 if
-            $patch2->{url} eq $patch->{url} &&
-            $patch2->{basePath} eq $patch->{basePath};
-    }
-
-    push @{$patchList}, $patch if !$found;
-
-    return !$found;
-}
-
-
-sub readManifest_ {
-    my ($manifest, $addNAR, $addPatch) = @_;
-
-    # Decompress the manifest if necessary.
-    if ($manifest =~ /\.bz2$/) {
-        open MANIFEST, "$Nix::Config::bzip2 -d < $manifest |"
-            or die "cannot decompress '$manifest': $!";
-    } else {
-        open MANIFEST, "<$manifest"
-            or die "cannot open '$manifest': $!";
-    }
-
-    my $inside = 0;
-    my $type;
-
-    my $manifestVersion = 2;
-
-    my ($storePath, $url, $hash, $size, $basePath, $baseHash, $patchType);
-    my ($narHash, $narSize, $references, $deriver, $copyFrom, $system, $compressionType);
-
-    while (<MANIFEST>) {
-        chomp;
-        s/\#.*$//g;
-        next if (/^$/);
-
-        if (!$inside) {
-
-            if (/^\s*(\w*)\s*\{$/) {
-                $type = $1;
-                $type = "narfile" if $type eq "";
-                $inside = 1;
-                undef $storePath;
-                undef $url;
-                undef $hash;
-                undef $size;
-                undef $narHash;
-                undef $narSize;
-                undef $basePath;
-                undef $baseHash;
-                undef $patchType;
-                undef $system;
-                $references = "";
-                $deriver = "";
-                $compressionType = "bzip2";
-            }
-
-        } else {
-
-            if (/^\}$/) {
-                $inside = 0;
-
-                if ($type eq "narfile") {
-                    &$addNAR($storePath,
-                        { url => $url, hash => $hash, size => $size
-                        , narHash => $narHash, narSize => $narSize
-                        , references => $references
-                        , deriver => $deriver
-                        , system => $system
-                        , compressionType => $compressionType
-                        });
-                }
-
-                elsif ($type eq "patch") {
-                    &$addPatch($storePath,
-                        { url => $url, hash => $hash, size => $size
-                        , basePath => $basePath, baseHash => $baseHash
-                        , narHash => $narHash, narSize => $narSize
-                        , patchType => $patchType
-                        });
-                }
-
-            }
-
-            elsif (/^\s*StorePath:\s*(\/\S+)\s*$/) { $storePath = $1; }
-            elsif (/^\s*CopyFrom:\s*(\/\S+)\s*$/) { $copyFrom = $1; }
-            elsif (/^\s*Hash:\s*(\S+)\s*$/) { $hash = $1; }
-            elsif (/^\s*URL:\s*(\S+)\s*$/) { $url = $1; }
-            elsif (/^\s*Compression:\s*(\S+)\s*$/) { $compressionType = $1; }
-            elsif (/^\s*Size:\s*(\d+)\s*$/) { $size = $1; }
-            elsif (/^\s*BasePath:\s*(\/\S+)\s*$/) { $basePath = $1; }
-            elsif (/^\s*BaseHash:\s*(\S+)\s*$/) { $baseHash = $1; }
-            elsif (/^\s*Type:\s*(\S+)\s*$/) { $patchType = $1; }
-            elsif (/^\s*NarHash:\s*(\S+)\s*$/) { $narHash = $1; }
-            elsif (/^\s*NarSize:\s*(\d+)\s*$/) { $narSize = $1; }
-            elsif (/^\s*References:\s*(.*)\s*$/) { $references = $1; }
-            elsif (/^\s*Deriver:\s*(\S+)\s*$/) { $deriver = $1; }
-            elsif (/^\s*ManifestVersion:\s*(\d+)\s*$/) { $manifestVersion = $1; }
-            elsif (/^\s*System:\s*(\S+)\s*$/) { $system = $1; }
-
-            # Compatibility;
-            elsif (/^\s*NarURL:\s*(\S+)\s*$/) { $url = $1; }
-            elsif (/^\s*MD5:\s*(\S+)\s*$/) { $hash = "md5:$1"; }
-
-        }
-    }
-
-    close MANIFEST;
-
-    return $manifestVersion;
-}
-
-
-sub readManifest {
-    my ($manifest, $narFiles, $patches) = @_;
-    readManifest_($manifest,
-        sub { addNAR($narFiles, @_); },
-        sub { addPatch($patches, @_); } );
-}
-
-
-sub writeManifest {
-    my ($manifest, $narFiles, $patches, $noCompress) = @_;
-
-    open MANIFEST, ">$manifest.tmp"; # !!! check exclusive
-
-    print MANIFEST "version {\n";
-    print MANIFEST "  ManifestVersion: 3\n";
-    print MANIFEST "}\n";
-
-    foreach my $storePath (sort (keys %{$narFiles})) {
-        my $narFileList = $$narFiles{$storePath};
-        foreach my $narFile (@{$narFileList}) {
-            print MANIFEST "{\n";
-            print MANIFEST "  StorePath: $storePath\n";
-            print MANIFEST "  NarURL: $narFile->{url}\n";
-            print MANIFEST "  Compression: $narFile->{compressionType}\n";
-            print MANIFEST "  Hash: $narFile->{hash}\n" if defined $narFile->{hash};
-            print MANIFEST "  Size: $narFile->{size}\n" if defined $narFile->{size};
-            print MANIFEST "  NarHash: $narFile->{narHash}\n";
-            print MANIFEST "  NarSize: $narFile->{narSize}\n" if $narFile->{narSize};
-            print MANIFEST "  References: $narFile->{references}\n"
-                if defined $narFile->{references} && $narFile->{references} ne "";
-            print MANIFEST "  Deriver: $narFile->{deriver}\n"
-                if defined $narFile->{deriver} && $narFile->{deriver} ne "";
-            print MANIFEST "  System: $narFile->{system}\n" if defined $narFile->{system};
-            print MANIFEST "}\n";
-        }
-    }
-
-    foreach my $storePath (sort (keys %{$patches})) {
-        my $patchList = $$patches{$storePath};
-        foreach my $patch (@{$patchList}) {
-            print MANIFEST "patch {\n";
-            print MANIFEST "  StorePath: $storePath\n";
-            print MANIFEST "  NarURL: $patch->{url}\n";
-            print MANIFEST "  Hash: $patch->{hash}\n";
-            print MANIFEST "  Size: $patch->{size}\n";
-            print MANIFEST "  NarHash: $patch->{narHash}\n";
-            print MANIFEST "  NarSize: $patch->{narSize}\n" if $patch->{narSize};
-            print MANIFEST "  BasePath: $patch->{basePath}\n";
-            print MANIFEST "  BaseHash: $patch->{baseHash}\n";
-            print MANIFEST "  Type: $patch->{patchType}\n";
-            print MANIFEST "}\n";
-        }
-    }
-
-
-    close MANIFEST;
-
-    rename("$manifest.tmp", $manifest)
-        or die "cannot rename $manifest.tmp: $!";
-
-
-    # Create a bzipped manifest.
-    unless (defined $noCompress) {
-        system("$Nix::Config::bzip2 < $manifest > $manifest.bz2.tmp") == 0
-            or die "cannot compress manifest";
-
-        rename("$manifest.bz2.tmp", "$manifest.bz2")
-            or die "cannot rename $manifest.bz2.tmp: $!";
-    }
-}
-
-
-# Return a fingerprint of a store path to be used in binary cache
-# signatures. It contains the store path, the base-32 SHA-256 hash of
-# the contents of the path, and the references.
-sub fingerprintPath {
-    my ($storePath, $narHash, $narSize, $references) = @_;
-    die if substr($storePath, 0, length($Nix::Config::storeDir)) ne $Nix::Config::storeDir;
-    die if substr($narHash, 0, 7) ne "sha256:";
-    # Convert hash from base-16 to base-32, if necessary.
-    $narHash = "sha256:" . convertHash("sha256", substr($narHash, 7), 1)
-        if length($narHash) == 71;
-    die if length($narHash) != 59;
-    foreach my $ref (@{$references}) {
-        die if substr($ref, 0, length($Nix::Config::storeDir)) ne $Nix::Config::storeDir;
-    }
-    return "1;" . $storePath . ";" . $narHash . ";" . $narSize . ";" . join(",", @{$references});
-}
-
-
-# Parse a NAR info file.
-sub parseNARInfo {
-    my ($storePath, $content, $requireValidSig, $location) = @_;
-
-    my ($storePath2, $url, $fileHash, $fileSize, $narHash, $narSize, $deriver, $system, $sig);
-    my $compression = "bzip2";
-    my @refs;
-
-    foreach my $line (split "\n", $content) {
-        return undef unless $line =~ /^(.*): (.*)$/;
-        if ($1 eq "StorePath") { $storePath2 = $2; }
-        elsif ($1 eq "URL") { $url = $2; }
-        elsif ($1 eq "Compression") { $compression = $2; }
-        elsif ($1 eq "FileHash") { $fileHash = $2; }
-        elsif ($1 eq "FileSize") { $fileSize = int($2); }
-        elsif ($1 eq "NarHash") { $narHash = $2; }
-        elsif ($1 eq "NarSize") { $narSize = int($2); }
-        elsif ($1 eq "References") { @refs = split / /, $2; }
-        elsif ($1 eq "Deriver") { $deriver = $2; }
-        elsif ($1 eq "System") { $system = $2; }
-        elsif ($1 eq "Sig") { $sig = $2; }
-    }
-
-    return undef if $storePath ne $storePath2 || !defined $url || !defined $narHash;
-
-    my $res =
-        { url => $url
-        , compression => $compression
-        , fileHash => $fileHash
-        , fileSize => $fileSize
-        , narHash => $narHash
-        , narSize => $narSize
-        , refs => [ @refs ]
-        , deriver => $deriver
-        , system => $system
-        };
-
-    if ($requireValidSig) {
-        # FIXME: might be useful to support multiple signatures per .narinfo.
-
-        if (!defined $sig) {
-            warn "NAR info file '$location' lacks a signature; ignoring\n";
-            return undef;
-        }
-        my ($keyName, $sig64) = split ":", $sig;
-        return undef unless defined $keyName && defined $sig64;
-
-        my $publicKey = $Nix::Config::binaryCachePublicKeys{$keyName};
-        if (!defined $publicKey) {
-            warn "NAR info file '$location' is signed by unknown key '$keyName'; ignoring\n";
-            return undef;
-        }
-
-        my $fingerprint;
-        eval {
-            $fingerprint = fingerprintPath(
-                $storePath, $narHash, $narSize,
-                [ map { "$Nix::Config::storeDir/$_" } @refs ]);
-        };
-        if ($@) {
-            warn "cannot compute fingerprint of '$location'; ignoring\n";
-            return undef;
-        }
-
-        if (!checkSignature($publicKey, decode_base64($sig64), $fingerprint)) {
-            warn "NAR info file '$location' has an incorrect signature; ignoring\n";
-            return undef;
-        }
-
-        $res->{signedBy} = $keyName;
-    }
-
-    return $res;
-}
-
-
-return 1;
diff --git a/third_party/nix/perl/lib/Nix/SSH.pm b/third_party/nix/perl/lib/Nix/SSH.pm
deleted file mode 100644
index 490ba0ea991e..000000000000
--- a/third_party/nix/perl/lib/Nix/SSH.pm
+++ /dev/null
@@ -1,110 +0,0 @@
-package Nix::SSH;
-
-use utf8;
-use strict;
-use File::Temp qw(tempdir);
-use IPC::Open2;
-
-our @ISA = qw(Exporter);
-our @EXPORT = qw(
-  @globalSshOpts
-  readN readInt readString readStrings
-  writeInt writeString writeStrings
-  connectToRemoteNix
-);
-
-
-our @globalSshOpts = split ' ', ($ENV{"NIX_SSHOPTS"} or "");
-
-
-sub readN {
-    my ($bytes, $from) = @_;
-    my $res = "";
-    while ($bytes > 0) {
-        my $s;
-        my $n = sysread($from, $s, $bytes);
-        die "I/O error reading from remote side\n" if !defined $n;
-        die "got EOF while expecting $bytes bytes from remote side\n" if !$n;
-        $bytes -= $n;
-        $res .= $s;
-    }
-    return $res;
-}
-
-
-sub readInt {
-    my ($from) = @_;
-    return unpack("L<x4", readN(8, $from));
-}
-
-
-sub readString {
-    my ($from) = @_;
-    my $len = readInt($from);
-    my $s = readN($len, $from);
-    readN(8 - $len % 8, $from) if $len % 8; # skip padding
-    return $s;
-}
-
-
-sub readStrings {
-    my ($from) = @_;
-    my $n = readInt($from);
-    my @res;
-    push @res, readString($from) while $n--;
-    return @res;
-}
-
-
-sub writeInt {
-    my ($n, $to) = @_;
-    syswrite($to, pack("L<x4", $n)) or die;
-}
-
-
-sub writeString {
-    my ($s, $to) = @_;
-    my $len = length $s;
-    my $req .= pack("L<x4", $len);
-    $req .= $s;
-    $req .= "\000" x (8 - $len % 8) if $len % 8;
-    syswrite($to, $req) or die;
-}
-
-
-sub writeStrings {
-    my ($ss, $to) = @_;
-    writeInt(scalar(@{$ss}), $to);
-    writeString($_, $to) foreach @{$ss};
-}
-
-
-sub connectToRemoteNix {
-    my ($sshHost, $sshOpts, $extraFlags) = @_;
-
-    $extraFlags ||= "";
-
-    # Start ‘nix-store --serve’ on the remote host.
-    my ($from, $to);
-    # FIXME: don't start a shell, start ssh directly.
-    my $pid = open2($from, $to, "exec ssh -x -a $sshHost @globalSshOpts @{$sshOpts} nix-store --serve --write $extraFlags");
-
-    # Do the handshake.
-    my $magic;
-    eval {
-        my $SERVE_MAGIC_1 = 0x390c9deb; # FIXME
-        my $clientVersion = 0x200;
-        syswrite($to, pack("L<x4L<x4", $SERVE_MAGIC_1, $clientVersion)) or die;
-        $magic = readInt($from);
-    };
-    die "unable to connect to '$sshHost'\n" if $@;
-    die "did not get valid handshake from remote host\n" if $magic  != 0x5452eecb;
-
-    my $serverVersion = readInt($from);
-    die "unsupported server version\n" if $serverVersion < 0x200 || $serverVersion >= 0x300;
-
-    return ($from, $to, $pid);
-}
-
-
-1;
diff --git a/third_party/nix/perl/lib/Nix/Store.pm b/third_party/nix/perl/lib/Nix/Store.pm
deleted file mode 100644
index d226264d4df3..000000000000
--- a/third_party/nix/perl/lib/Nix/Store.pm
+++ /dev/null
@@ -1,95 +0,0 @@
-package Nix::Store;
-
-use strict;
-use warnings;
-use Nix::Config;
-
-require Exporter;
-
-our @ISA = qw(Exporter);
-
-our %EXPORT_TAGS = ( 'all' => [ qw( ) ] );
-
-our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
-
-our @EXPORT = qw(
-    setVerbosity
-    isValidPath queryReferences queryPathInfo queryDeriver queryPathHash
-    queryPathFromHashPart
-    topoSortPaths computeFSClosure followLinksToStorePath exportPaths importPaths
-    hashPath hashFile hashString convertHash
-    signString checkSignature
-    addToStore makeFixedOutputPath
-    derivationFromPath
-    addTempRoot
-);
-
-our $VERSION = '0.15';
-
-sub backtick {
-    open(RES, "-|", @_) or die;
-    local $/;
-    my $res = <RES> || "";
-    close RES or die;
-    return $res;
-}
-
-if ($Nix::Config::useBindings) {
-    require XSLoader;
-    XSLoader::load('Nix::Store', $VERSION);
-} else {
-
-    # Provide slow fallbacks of some functions on platforms that don't
-    # support the Perl bindings.
-
-    use File::Temp;
-    use Fcntl qw/F_SETFD/;
-
-    *hashFile = sub {
-        my ($algo, $base32, $path) = @_;
-        my $res = backtick("$Nix::Config::binDir/nix-hash", "--flat", $path, "--type", $algo, $base32 ? "--base32" : ());
-        chomp $res;
-        return $res;
-    };
-
-    *hashPath = sub {
-        my ($algo, $base32, $path) = @_;
-        my $res = backtick("$Nix::Config::binDir/nix-hash", $path, "--type", $algo, $base32 ? "--base32" : ());
-        chomp $res;
-        return $res;
-    };
-
-    *hashString = sub {
-        my ($algo, $base32, $s) = @_;
-        my $fh = File::Temp->new();
-        print $fh $s;
-        my $res = backtick("$Nix::Config::binDir/nix-hash", $fh->filename, "--type", $algo, $base32 ? "--base32" : ());
-        chomp $res;
-        return $res;
-    };
-
-    *addToStore = sub {
-        my ($srcPath, $recursive, $algo) = @_;
-        die "not implemented" if $recursive || $algo ne "sha256";
-        my $res = backtick("$Nix::Config::binDir/nix-store", "--add", $srcPath);
-        chomp $res;
-        return $res;
-    };
-
-    *isValidPath = sub {
-        my ($path) = @_;
-        my $res = backtick("$Nix::Config::binDir/nix-store", "--check-validity", "--print-invalid", $path);
-        chomp $res;
-        return $res ne $path;
-    };
-
-    *queryPathHash = sub {
-        my ($path) = @_;
-        my $res = backtick("$Nix::Config::binDir/nix-store", "--query", "--hash", $path);
-        chomp $res;
-        return $res;
-    };
-}
-
-1;
-__END__
diff --git a/third_party/nix/perl/lib/Nix/Store.xs b/third_party/nix/perl/lib/Nix/Store.xs
deleted file mode 100644
index ce553bb53ebc..000000000000
--- a/third_party/nix/perl/lib/Nix/Store.xs
+++ /dev/null
@@ -1,346 +0,0 @@
-#include "config.h"
-
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-
-/* Prevent a clash between some Perl and libstdc++ macros. */
-#undef do_open
-#undef do_close
-
-#include "derivations.hh"
-#include "globals.hh"
-#include "store-api.hh"
-#include "util.hh"
-#include "crypto.hh"
-
-#if HAVE_SODIUM
-#include <sodium.h>
-#endif
-
-
-using namespace nix;
-
-
-static ref<Store> store()
-{
-    static std::shared_ptr<Store> _store;
-    if (!_store) {
-        try {
-            loadConfFile();
-            settings.lockCPU = false;
-            _store = openStore();
-        } catch (Error & e) {
-            croak("%s", e.what());
-        }
-    }
-    return ref<Store>(_store);
-}
-
-
-MODULE = Nix::Store PACKAGE = Nix::Store
-PROTOTYPES: ENABLE
-
-
-#undef dNOOP // Hack to work around "error: declaration of 'Perl___notused' has a different language linkage" error message on clang.
-#define dNOOP
-
-
-void init()
-    CODE:
-        store();
-
-
-void setVerbosity(int level)
-    CODE:
-        verbosity = (Verbosity) level;
-
-
-int isValidPath(char * path)
-    CODE:
-        try {
-            RETVAL = store()->isValidPath(path);
-        } catch (Error & e) {
-            croak("%s", e.what());
-        }
-    OUTPUT:
-        RETVAL
-
-
-SV * queryReferences(char * path)
-    PPCODE:
-        try {
-            PathSet paths = store()->queryPathInfo(path)->references;
-            for (PathSet::iterator i = paths.begin(); i != paths.end(); ++i)
-                XPUSHs(sv_2mortal(newSVpv(i->c_str(), 0)));
-        } catch (Error & e) {
-            croak("%s", e.what());
-        }
-
-
-SV * queryPathHash(char * path)
-    PPCODE:
-        try {
-            auto s = store()->queryPathInfo(path)->narHash.to_string();
-            XPUSHs(sv_2mortal(newSVpv(s.c_str(), 0)));
-        } catch (Error & e) {
-            croak("%s", e.what());
-        }
-
-
-SV * queryDeriver(char * path)
-    PPCODE:
-        try {
-            auto deriver = store()->queryPathInfo(path)->deriver;
-            if (deriver == "") XSRETURN_UNDEF;
-            XPUSHs(sv_2mortal(newSVpv(deriver.c_str(), 0)));
-        } catch (Error & e) {
-            croak("%s", e.what());
-        }
-
-
-SV * queryPathInfo(char * path, int base32)
-    PPCODE:
-        try {
-            auto info = store()->queryPathInfo(path);
-            if (info->deriver == "")
-                XPUSHs(&PL_sv_undef);
-            else
-                XPUSHs(sv_2mortal(newSVpv(info->deriver.c_str(), 0)));
-            auto s = info->narHash.to_string(base32 ? Base32 : Base16);
-            XPUSHs(sv_2mortal(newSVpv(s.c_str(), 0)));
-            mXPUSHi(info->registrationTime);
-            mXPUSHi(info->narSize);
-            AV * arr = newAV();
-            for (PathSet::iterator i = info->references.begin(); i != info->references.end(); ++i)
-                av_push(arr, newSVpv(i->c_str(), 0));
-            XPUSHs(sv_2mortal(newRV((SV *) arr)));
-        } catch (Error & e) {
-            croak("%s", e.what());
-        }
-
-
-SV * queryPathFromHashPart(char * hashPart)
-    PPCODE:
-        try {
-            Path path = store()->queryPathFromHashPart(hashPart);
-            XPUSHs(sv_2mortal(newSVpv(path.c_str(), 0)));
-        } catch (Error & e) {
-            croak("%s", e.what());
-        }
-
-
-SV * computeFSClosure(int flipDirection, int includeOutputs, ...)
-    PPCODE:
-        try {
-            PathSet paths;
-            for (int n = 2; n < items; ++n)
-                store()->computeFSClosure(SvPV_nolen(ST(n)), paths, flipDirection, includeOutputs);
-            for (PathSet::iterator i = paths.begin(); i != paths.end(); ++i)
-                XPUSHs(sv_2mortal(newSVpv(i->c_str(), 0)));
-        } catch (Error & e) {
-            croak("%s", e.what());
-        }
-
-
-SV * topoSortPaths(...)
-    PPCODE:
-        try {
-            PathSet paths;
-            for (int n = 0; n < items; ++n) paths.insert(SvPV_nolen(ST(n)));
-            Paths sorted = store()->topoSortPaths(paths);
-            for (Paths::iterator i = sorted.begin(); i != sorted.end(); ++i)
-                XPUSHs(sv_2mortal(newSVpv(i->c_str(), 0)));
-        } catch (Error & e) {
-            croak("%s", e.what());
-        }
-
-
-SV * followLinksToStorePath(char * path)
-    CODE:
-        try {
-            RETVAL = newSVpv(store()->followLinksToStorePath(path).c_str(), 0);
-        } catch (Error & e) {
-            croak("%s", e.what());
-        }
-    OUTPUT:
-        RETVAL
-
-
-void exportPaths(int fd, ...)
-    PPCODE:
-        try {
-            Paths paths;
-            for (int n = 1; n < items; ++n) paths.push_back(SvPV_nolen(ST(n)));
-            FdSink sink(fd);
-            store()->exportPaths(paths, sink);
-        } catch (Error & e) {
-            croak("%s", e.what());
-        }
-
-
-void importPaths(int fd, int dontCheckSigs)
-    PPCODE:
-        try {
-            FdSource source(fd);
-            store()->importPaths(source, nullptr, dontCheckSigs ? NoCheckSigs : CheckSigs);
-        } catch (Error & e) {
-            croak("%s", e.what());
-        }
-
-
-SV * hashPath(char * algo, int base32, char * path)
-    PPCODE:
-        try {
-            Hash h = hashPath(parseHashType(algo), path).first;
-            auto s = h.to_string(base32 ? Base32 : Base16, false);
-            XPUSHs(sv_2mortal(newSVpv(s.c_str(), 0)));
-        } catch (Error & e) {
-            croak("%s", e.what());
-        }
-
-
-SV * hashFile(char * algo, int base32, char * path)
-    PPCODE:
-        try {
-            Hash h = hashFile(parseHashType(algo), path);
-            auto s = h.to_string(base32 ? Base32 : Base16, false);
-            XPUSHs(sv_2mortal(newSVpv(s.c_str(), 0)));
-        } catch (Error & e) {
-            croak("%s", e.what());
-        }
-
-
-SV * hashString(char * algo, int base32, char * s)
-    PPCODE:
-        try {
-            Hash h = hashString(parseHashType(algo), s);
-            auto s = h.to_string(base32 ? Base32 : Base16, false);
-            XPUSHs(sv_2mortal(newSVpv(s.c_str(), 0)));
-        } catch (Error & e) {
-            croak("%s", e.what());
-        }
-
-
-SV * convertHash(char * algo, char * s, int toBase32)
-    PPCODE:
-        try {
-            Hash h(s, parseHashType(algo));
-            string s = h.to_string(toBase32 ? Base32 : Base16, false);
-            XPUSHs(sv_2mortal(newSVpv(s.c_str(), 0)));
-        } catch (Error & e) {
-            croak("%s", e.what());
-        }
-
-
-SV * signString(char * secretKey_, char * msg)
-    PPCODE:
-        try {
-#if HAVE_SODIUM
-            auto sig = SecretKey(secretKey_).signDetached(msg);
-            XPUSHs(sv_2mortal(newSVpv(sig.c_str(), sig.size())));
-#else
-            throw Error("Nix was not compiled with libsodium, required for signed binary cache support");
-#endif
-        } catch (Error & e) {
-            croak("%s", e.what());
-        }
-
-
-int checkSignature(SV * publicKey_, SV * sig_, char * msg)
-    CODE:
-        try {
-#if HAVE_SODIUM
-            STRLEN publicKeyLen;
-            unsigned char * publicKey = (unsigned char *) SvPV(publicKey_, publicKeyLen);
-            if (publicKeyLen != crypto_sign_PUBLICKEYBYTES)
-                throw Error("public key is not valid");
-
-            STRLEN sigLen;
-            unsigned char * sig = (unsigned char *) SvPV(sig_, sigLen);
-            if (sigLen != crypto_sign_BYTES)
-                throw Error("signature is not valid");
-
-            RETVAL = crypto_sign_verify_detached(sig, (unsigned char *) msg, strlen(msg), publicKey) == 0;
-#else
-            throw Error("Nix was not compiled with libsodium, required for signed binary cache support");
-#endif
-        } catch (Error & e) {
-            croak("%s", e.what());
-        }
-    OUTPUT:
-        RETVAL
-
-
-SV * addToStore(char * srcPath, int recursive, char * algo)
-    PPCODE:
-        try {
-            Path path = store()->addToStore(baseNameOf(srcPath), srcPath, recursive, parseHashType(algo));
-            XPUSHs(sv_2mortal(newSVpv(path.c_str(), 0)));
-        } catch (Error & e) {
-            croak("%s", e.what());
-        }
-
-
-SV * makeFixedOutputPath(int recursive, char * algo, char * hash, char * name)
-    PPCODE:
-        try {
-            Hash h(hash, parseHashType(algo));
-            Path path = store()->makeFixedOutputPath(recursive, h, name);
-            XPUSHs(sv_2mortal(newSVpv(path.c_str(), 0)));
-        } catch (Error & e) {
-            croak("%s", e.what());
-        }
-
-
-SV * derivationFromPath(char * drvPath)
-    PREINIT:
-        HV *hash;
-    CODE:
-        try {
-            Derivation drv = store()->derivationFromPath(drvPath);
-            hash = newHV();
-
-            HV * outputs = newHV();
-            for (DerivationOutputs::iterator i = drv.outputs.begin(); i != drv.outputs.end(); ++i)
-                hv_store(outputs, i->first.c_str(), i->first.size(), newSVpv(i->second.path.c_str(), 0), 0);
-            hv_stores(hash, "outputs", newRV((SV *) outputs));
-
-            AV * inputDrvs = newAV();
-            for (DerivationInputs::iterator i = drv.inputDrvs.begin(); i != drv.inputDrvs.end(); ++i)
-                av_push(inputDrvs, newSVpv(i->first.c_str(), 0)); // !!! ignores i->second
-            hv_stores(hash, "inputDrvs", newRV((SV *) inputDrvs));
-
-            AV * inputSrcs = newAV();
-            for (PathSet::iterator i = drv.inputSrcs.begin(); i != drv.inputSrcs.end(); ++i)
-                av_push(inputSrcs, newSVpv(i->c_str(), 0));
-            hv_stores(hash, "inputSrcs", newRV((SV *) inputSrcs));
-
-            hv_stores(hash, "platform", newSVpv(drv.platform.c_str(), 0));
-            hv_stores(hash, "builder", newSVpv(drv.builder.c_str(), 0));
-
-            AV * args = newAV();
-            for (Strings::iterator i = drv.args.begin(); i != drv.args.end(); ++i)
-                av_push(args, newSVpv(i->c_str(), 0));
-            hv_stores(hash, "args", newRV((SV *) args));
-
-            HV * env = newHV();
-            for (StringPairs::iterator i = drv.env.begin(); i != drv.env.end(); ++i)
-                hv_store(env, i->first.c_str(), i->first.size(), newSVpv(i->second.c_str(), 0), 0);
-            hv_stores(hash, "env", newRV((SV *) env));
-
-            RETVAL = newRV_noinc((SV *)hash);
-        } catch (Error & e) {
-            croak("%s", e.what());
-        }
-    OUTPUT:
-        RETVAL
-
-
-void addTempRoot(char * storePath)
-    PPCODE:
-        try {
-            store()->addTempRoot(storePath);
-        } catch (Error & e) {
-            croak("%s", e.what());
-        }
diff --git a/third_party/nix/perl/lib/Nix/Utils.pm b/third_party/nix/perl/lib/Nix/Utils.pm
deleted file mode 100644
index 44955a70698c..000000000000
--- a/third_party/nix/perl/lib/Nix/Utils.pm
+++ /dev/null
@@ -1,47 +0,0 @@
-package Nix::Utils;
-
-use utf8;
-use File::Temp qw(tempdir);
-
-our @ISA = qw(Exporter);
-our @EXPORT = qw(checkURL uniq writeFile readFile mkTempDir);
-
-$urlRE = "(?: [a-zA-Z][a-zA-Z0-9\+\-\.]*\:[a-zA-Z0-9\%\/\?\:\@\&\=\+\$\,\-\_\.\!\~\*]+ )";
-
-sub checkURL {
-    my ($url) = @_;
-    die "invalid URL '$url'\n" unless $url =~ /^ $urlRE $ /x;
-}
-
-sub uniq {
-    my %seen;
-    my @res;
-    foreach my $name (@_) {
-        next if $seen{$name};
-        $seen{$name} = 1;
-        push @res, $name;
-    }
-    return @res;
-}
-
-sub writeFile {
-    my ($fn, $s) = @_;
-    open TMP, ">$fn" or die "cannot create file '$fn': $!";
-    print TMP "$s" or die;
-    close TMP or die;
-}
-
-sub readFile {
-    local $/ = undef;
-    my ($fn) = @_;
-    open TMP, "<$fn" or die "cannot open file '$fn': $!";
-    my $s = <TMP>;
-    close TMP or die;
-    return $s;
-}
-
-sub mkTempDir {
-    my ($name) = @_;
-    return tempdir("$name.XXXXXX", CLEANUP => 1, DIR => $ENV{"TMPDIR"} // $ENV{"XDG_RUNTIME_DIR"} // "/tmp")
-        || die "cannot create a temporary directory";
-}
diff --git a/third_party/nix/perl/local.mk b/third_party/nix/perl/local.mk
deleted file mode 100644
index b13d4c0d6396..000000000000
--- a/third_party/nix/perl/local.mk
+++ /dev/null
@@ -1,43 +0,0 @@
-nix_perl_sources := \
-  lib/Nix/Store.pm \
-  lib/Nix/Manifest.pm \
-  lib/Nix/SSH.pm \
-  lib/Nix/CopyClosure.pm \
-  lib/Nix/Config.pm.in \
-  lib/Nix/Utils.pm
-
-nix_perl_modules := $(nix_perl_sources:.in=)
-
-$(foreach x, $(nix_perl_modules), $(eval $(call install-data-in, $(x), $(perllibdir)/Nix)))
-
-lib/Nix/Store.cc: lib/Nix/Store.xs
-	$(trace-gen) xsubpp $^ -output $@
-
-libraries += Store
-
-Store_DIR := lib/Nix
-
-Store_SOURCES := $(Store_DIR)/Store.cc
-
-Store_CXXFLAGS = \
-  $(NIX_CFLAGS) \
-  -I$(shell perl -e 'use Config; print $$Config{archlibexp};')/CORE \
-  -D_FILE_OFFSET_BITS=64 \
-  -Wno-unknown-warning-option -Wno-unused-variable -Wno-literal-suffix \
-  -Wno-reserved-user-defined-literal -Wno-duplicate-decl-specifier -Wno-pointer-bool-conversion
-
-Store_LDFLAGS := $(SODIUM_LIBS) $(NIX_LIBS)
-
-ifeq (CYGWIN,$(findstring CYGWIN,$(OS)))
-  archlib = $(shell perl -E 'use Config; print $$Config{archlib};')
-  libperl = $(shell perl -E 'use Config; print $$Config{libperl};')
-  Store_LDFLAGS += $(shell find ${archlib} -name ${libperl})
-endif
-
-Store_ALLOW_UNDEFINED = 1
-
-Store_FORCE_INSTALL = 1
-
-Store_INSTALL_DIR = $(perllibdir)/auto/Nix/Store
-
-clean-files += lib/Nix/Config.pm lib/Nix/Store.cc Makefile.config
diff --git a/third_party/nix/scripts/local.mk b/third_party/nix/scripts/local.mk
deleted file mode 100644
index 2a00558521b2..000000000000
--- a/third_party/nix/scripts/local.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-nix_noinst_scripts := \
-  $(d)/nix-http-export.cgi \
-  $(d)/nix-profile.sh \
-  $(d)/nix-reduce-build
-
-noinst-scripts += $(nix_noinst_scripts)
-
-profiledir = $(sysconfdir)/profile.d
-
-$(eval $(call install-file-as, $(d)/nix-profile.sh, $(profiledir)/nix.sh, 0644))
-$(eval $(call install-file-as, $(d)/nix-profile-daemon.sh, $(profiledir)/nix-daemon.sh, 0644))
-
-clean-files += $(nix_noinst_scripts)
diff --git a/third_party/nix/src/libexpr/local.mk b/third_party/nix/src/libexpr/local.mk
deleted file mode 100644
index ccd5293e4e5e..000000000000
--- a/third_party/nix/src/libexpr/local.mk
+++ /dev/null
@@ -1,33 +0,0 @@
-libraries += libexpr
-
-libexpr_NAME = libnixexpr
-
-libexpr_DIR := $(d)
-
-libexpr_SOURCES := $(wildcard $(d)/*.cc) $(wildcard $(d)/primops/*.cc) $(d)/lexer-tab.cc $(d)/parser-tab.cc
-
-libexpr_LIBS = libutil libstore
-
-libexpr_LDFLAGS =
-ifneq ($(OS), FreeBSD)
- libexpr_LDFLAGS += -ldl
-endif
-
-# The dependency on libgc must be propagated (i.e. meaning that
-# programs/libraries that use libexpr must explicitly pass -lgc),
-# because inline functions in libexpr's header files call libgc.
-libexpr_LDFLAGS_PROPAGATED = $(BDW_GC_LIBS)
-
-libexpr_ORDER_AFTER := $(d)/parser-tab.cc $(d)/parser-tab.hh $(d)/lexer-tab.cc $(d)/lexer-tab.hh
-
-$(d)/parser-tab.cc $(d)/parser-tab.hh: $(d)/parser.y
-	$(trace-gen) bison -v -o $(libexpr_DIR)/parser-tab.cc $< -d
-
-$(d)/lexer-tab.cc $(d)/lexer-tab.hh: $(d)/lexer.l
-	$(trace-gen) flex --outfile $(libexpr_DIR)/lexer-tab.cc --header-file=$(libexpr_DIR)/lexer-tab.hh $<
-
-clean-files += $(d)/parser-tab.cc $(d)/parser-tab.hh $(d)/lexer-tab.cc $(d)/lexer-tab.hh
-
-dist-files += $(d)/parser-tab.cc $(d)/parser-tab.hh $(d)/lexer-tab.cc $(d)/lexer-tab.hh
-
-$(eval $(call install-file-in, $(d)/nix-expr.pc, $(prefix)/lib/pkgconfig, 0644))
diff --git a/third_party/nix/src/libmain/local.mk b/third_party/nix/src/libmain/local.mk
deleted file mode 100644
index 0c80f5a0a037..000000000000
--- a/third_party/nix/src/libmain/local.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-libraries += libmain
-
-libmain_NAME = libnixmain
-
-libmain_DIR := $(d)
-
-libmain_SOURCES := $(wildcard $(d)/*.cc)
-
-libmain_LDFLAGS = $(OPENSSL_LIBS)
-
-libmain_LIBS = libstore libutil
-
-libmain_ALLOW_UNDEFINED = 1
-
-$(eval $(call install-file-in, $(d)/nix-main.pc, $(prefix)/lib/pkgconfig, 0644))
diff --git a/third_party/nix/src/libstore/local.mk b/third_party/nix/src/libstore/local.mk
deleted file mode 100644
index d690fea28c23..000000000000
--- a/third_party/nix/src/libstore/local.mk
+++ /dev/null
@@ -1,60 +0,0 @@
-libraries += libstore
-
-libstore_NAME = libnixstore
-
-libstore_DIR := $(d)
-
-libstore_SOURCES := $(wildcard $(d)/*.cc $(d)/builtins/*.cc)
-
-libstore_LIBS = libutil
-
-libstore_LDFLAGS = $(SQLITE3_LIBS) -lbz2 $(LIBCURL_LIBS) $(SODIUM_LIBS) -pthread
-ifneq ($(OS), FreeBSD)
- libstore_LDFLAGS += -ldl
-endif
-
-libstore_FILES = sandbox-defaults.sb sandbox-minimal.sb sandbox-network.sb
-
-$(foreach file,$(libstore_FILES),$(eval $(call install-data-in,$(d)/$(file),$(datadir)/nix/sandbox)))
-
-ifeq ($(ENABLE_S3), 1)
-	libstore_LDFLAGS += -laws-cpp-sdk-transfer -laws-cpp-sdk-s3 -laws-cpp-sdk-core
-endif
-
-ifeq ($(OS), SunOS)
-	libstore_LDFLAGS += -lsocket
-endif
-
-ifeq ($(HAVE_SECCOMP), 1)
-	libstore_LDFLAGS += -lseccomp
-endif
-
-libstore_CXXFLAGS = \
- -DNIX_PREFIX=\"$(prefix)\" \
- -DNIX_STORE_DIR=\"$(storedir)\" \
- -DNIX_DATA_DIR=\"$(datadir)\" \
- -DNIX_STATE_DIR=\"$(localstatedir)/nix\" \
- -DNIX_LOG_DIR=\"$(localstatedir)/log/nix\" \
- -DNIX_CONF_DIR=\"$(sysconfdir)/nix\" \
- -DNIX_LIBEXEC_DIR=\"$(libexecdir)\" \
- -DNIX_BIN_DIR=\"$(bindir)\" \
- -DNIX_MAN_DIR=\"$(mandir)\" \
- -DLSOF=\"$(lsof)\"
-
-ifneq ($(sandbox_shell),)
-libstore_CXXFLAGS += -DSANDBOX_SHELL="\"$(sandbox_shell)\""
-endif
-
-$(d)/local-store.cc: $(d)/schema.sql.gen.hh
-
-$(d)/build.cc:
-
-%.gen.hh: %
-	@echo 'R"foo(' >> $@.tmp
-	$(trace-gen) cat $< >> $@.tmp
-	@echo ')foo"' >> $@.tmp
-	@mv $@.tmp $@
-
-clean-files += $(d)/schema.sql.gen.hh
-
-$(eval $(call install-file-in, $(d)/nix-store.pc, $(prefix)/lib/pkgconfig, 0644))
diff --git a/third_party/nix/src/libutil/local.mk b/third_party/nix/src/libutil/local.mk
deleted file mode 100644
index e41a67d1f9e1..000000000000
--- a/third_party/nix/src/libutil/local.mk
+++ /dev/null
@@ -1,9 +0,0 @@
-libraries += libutil
-
-libutil_NAME = libnixutil
-
-libutil_DIR := $(d)
-
-libutil_SOURCES := $(wildcard $(d)/*.cc)
-
-libutil_LDFLAGS = $(LIBLZMA_LIBS) -lbz2 -pthread $(OPENSSL_LIBS) $(LIBBROTLI_LIBS) $(BOOST_LDFLAGS) -lboost_context
diff --git a/third_party/nix/src/nix/local.mk b/third_party/nix/src/nix/local.mk
deleted file mode 100644
index c09efd1fc895..000000000000
--- a/third_party/nix/src/nix/local.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-programs += nix
-
-nix_DIR := $(d)
-
-nix_SOURCES := \
-  $(wildcard $(d)/*.cc) \
-  $(wildcard src/build-remote/*.cc) \
-  $(wildcard src/nix-build/*.cc) \
-  $(wildcard src/nix-channel/*.cc) \
-  $(wildcard src/nix-collect-garbage/*.cc) \
-  $(wildcard src/nix-copy-closure/*.cc) \
-  $(wildcard src/nix-daemon/*.cc) \
-  $(wildcard src/nix-env/*.cc) \
-  $(wildcard src/nix-instantiate/*.cc) \
-  $(wildcard src/nix-prefetch-url/*.cc) \
-  $(wildcard src/nix-store/*.cc) \
-
-nix_LIBS = libexpr libmain libstore libutil
-
-nix_LDFLAGS = -pthread $(SODIUM_LIBS) $(EDITLINE_LIBS) $(BOOST_LDFLAGS) -lboost_context -lboost_thread -lboost_system
-
-$(foreach name, \
-  nix-build nix-channel nix-collect-garbage nix-copy-closure nix-daemon nix-env nix-hash nix-instantiate nix-prefetch-url nix-shell nix-store, \
-  $(eval $(call install-symlink, nix, $(bindir)/$(name))))
-$(eval $(call install-symlink, $(bindir)/nix, $(libexecdir)/nix/build-remote))
diff --git a/third_party/nix/src/resolve-system-dependencies/local.mk b/third_party/nix/src/resolve-system-dependencies/local.mk
deleted file mode 100644
index f9db16268be0..000000000000
--- a/third_party/nix/src/resolve-system-dependencies/local.mk
+++ /dev/null
@@ -1,11 +0,0 @@
-ifeq ($(OS), Darwin)
-  programs += resolve-system-dependencies
-endif
-
-resolve-system-dependencies_DIR := $(d)
-
-resolve-system-dependencies_INSTALL_DIR := $(libexecdir)/nix
-
-resolve-system-dependencies_LIBS := libstore libmain libutil
-
-resolve-system-dependencies_SOURCES := $(d)/resolve-system-dependencies.cc
diff --git a/third_party/nix/tests/local.mk b/third_party/nix/tests/local.mk
deleted file mode 100644
index 187f96ea2069..000000000000
--- a/third_party/nix/tests/local.mk
+++ /dev/null
@@ -1,42 +0,0 @@
-check:
-	@echo "Warning: Nix has no 'make check'. Please install Nix and run 'make installcheck' instead."
-
-nix_tests = \
-  init.sh hash.sh lang.sh add.sh simple.sh dependencies.sh \
-  gc.sh \
-  gc-concurrent.sh \
-  gc-auto.sh \
-  referrers.sh user-envs.sh logging.sh nix-build.sh misc.sh fixed.sh \
-  gc-runtime.sh check-refs.sh filter-source.sh \
-  remote-store.sh export.sh export-graph.sh \
-  timeout.sh secure-drv-outputs.sh nix-channel.sh \
-  multiple-outputs.sh import-derivation.sh fetchurl.sh optimise-store.sh \
-  binary-cache.sh nix-profile.sh repair.sh dump-db.sh case-hack.sh \
-  check-reqs.sh pass-as-file.sh tarball.sh restricted.sh \
-  placeholders.sh nix-shell.sh \
-  linux-sandbox.sh \
-  build-dry.sh \
-  build-remote.sh \
-  nar-access.sh \
-  structured-attrs.sh \
-  fetchGit.sh \
-  fetchMercurial.sh \
-  signing.sh \
-  run.sh \
-  brotli.sh \
-  pure-eval.sh \
-  check.sh \
-  plugins.sh \
-  search.sh \
-  nix-copy-ssh.sh \
-  post-hook.sh \
-  function-trace.sh
-  # parallel.sh
-
-install-tests += $(foreach x, $(nix_tests), tests/$(x))
-
-tests-environment = NIX_REMOTE= $(bash) -e
-
-clean-files += $(d)/common.sh
-
-installcheck: $(d)/common.sh $(d)/plugins/libplugintest.$(SO_EXT)
diff --git a/third_party/nix/tests/plugins/local.mk b/third_party/nix/tests/plugins/local.mk
deleted file mode 100644
index 1d2bac052fd2..000000000000
--- a/third_party/nix/tests/plugins/local.mk
+++ /dev/null
@@ -1,9 +0,0 @@
-libraries += libplugintest
-
-libplugintest_DIR := $(d)
-
-libplugintest_SOURCES := $(d)/plugintest.cc
-
-libplugintest_ALLOW_UNDEFINED := 1
-
-libplugintest_EXCLUDE_FROM_LIBRARY_LIST := 1