# This file controls the import of external dependencies (i.e. # third-party code) into my package tree. # # This includes *all packages needed from nixpkgs*. { ... }: let # Tracking nixos-unstable as of 2020-06-10. nixpkgsCommit = "467ce5a9f45aaf96110b41eb863a56866e1c2c3c"; nixpkgsSrc = fetchTarball { url = "https://github.com/NixOS/nixpkgs-channels/archive/${nixpkgsCommit}.tar.gz"; sha256 = "0qz7wgi61pdb335n18xm8rfwddckwv0vg8n7fii5abrrx47vnqcj"; }; nixpkgs = import nixpkgsSrc { config.allowUnfree = true; config.allowBroken = true; }; # Tracking nixos-20.03 as of 2020-05-22 stableCommit = "48723f48ab92381f0afd50143f38e45cf3080405"; stableNixpkgsSrc = fetchTarball { url = "https://github.com/NixOS/nixpkgs-channels/archive/${stableCommit}.tar.gz"; sha256 = "0h3b3l867j3ybdgimfn76lw7w6yjhszd5x02pq5827l659ihcf53"; }; stableNixpkgs = import stableNixpkgsSrc {}; exposed = { # Inherit the packages from nixos-unstable that should be available inside # of the repo. They become available under `pkgs.third_party.<name>` inherit (nixpkgs) age autoconf autoreconfHook awscli bashInteractive bat buildBazelPackage buildFHSUserEnv buildGoModule buildGoPackage buildPackages bzip2 c-ares cacert cachix cairo cargo cgit clang-tools clang_10 cmake coreutils cudatoolkit darwin dockerTools fetchFromGitHub fetchgit fetchurl fetchzip fira fira-code fira-mono fontconfig freetype gettext glibc gmock gnutar go google-cloud-sdk graphviz gzip haskell iana-etc imagemagickBig installShellFiles jdk jetbrains-mono jq kontemplate lib libredirect luajit luatex makeFontsConf makeWrapper mdbook meson mime-types moreutils nano nginx ninja nix openssh openssl overrideCC pandoc parallel pkgconfig postgresql pounce python3 python3Packages remarshal rink ripgrep rsync runCommand runCommandNoCC rustPlatform rustc sbcl sqlite stern symlinkJoin systemd tdlib terraform_0_12 texlive thttpd tree which writeShellScript writeShellScriptBin writeText writeTextFile xorg xz zlib zstd; # Inherit packages that should come from a stable channel inherit (stableNixpkgs) emacs26 emacs26-nox emacsPackages emacsPackagesGen; # Required by //third_party/nix inherit (nixpkgs) aws-sdk-cpp bison boehmgc boost # urgh brotli busybox-sandbox-shell curl docbook5 docbook_xsl_ns editline flex libseccomp libsodium libxml2 libxslt mercurial perl perlPackages utillinuxMinimal; }; in exposed.lib.fix(self: exposed // { callPackage = nixpkgs.lib.callPackageWith self; # Provide the source code of nixpkgs, but do not provide an imported # version of it. inherit nixpkgsCommit nixpkgsSrc stableNixpkgsSrc; # Packages to be overridden originals = { inherit (nixpkgs) grpc notmuch; inherit (stableNixpkgs) git; ffmpeg = nixpkgs.ffmpeg-full; }; # Use LLVM 10 llvmPackages = nixpkgs.llvmPackages_10; clangStdenv = nixpkgs.llvmPackages_10.stdenv; stdenv = nixpkgs.llvmPackages_10.stdenv; # Make NixOS available nixos = import "${nixpkgsSrc}/nixos"; })