From 39ba7616634522a0495f42034240ff9d114b45a0 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Mon, 9 Dec 2019 02:52:41 +0000 Subject: feat(third_party): Explicitly expose packages from nixpkgs Instead of exposing the entire package tree from nixpkgs, whitelist individual packages explicitly so that they show up in `pkgs.third_party`. This makes it much easier to control external dependencies used by my projects. Bonus: It even includes a working `third_party.callPackage` with only the whitelisted packages! --- third_party/default.nix | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 third_party/default.nix (limited to 'third_party') diff --git a/third_party/default.nix b/third_party/default.nix new file mode 100644 index 0000000000..075a4314ef --- /dev/null +++ b/third_party/default.nix @@ -0,0 +1,49 @@ +# This file controls the import of external dependencies (i.e. +# third-party code) into my package tree. +# +# This includes *all packages needed from nixpkgs*. + +{ pkgs, ... }: +let + # The pinned commit here is identical to the public nixery.dev + # version, since popularity data has been generated for that. + stableCommit = "80b42e630b23052d9525840a9742100a2ceaaa8f"; + stableSrc = fetchTarball { + url = "https://github.com/NixOS/nixpkgs-channels/archive/${stableCommit}.tar.gz"; + sha256 = "0243qiivxl3z51biy4f5y5cy81x5bki5dazl9wqwgnmd373gpmxy"; + }; + nixpkgs = import stableSrc { + config.allowUnfree = true; + config.allowBroken = true; + }; + + exposed = { + # Inherit the packages from nixpkgs that should be available inside + # of the repo. They become available under `pkgs.third_party.` + inherit (nixpkgs) + buildGoPackage + cargo + darwin + fetchFromGitHub + google-cloud-sdk + haskell + jq + lib + llvmPackages + remarshal + rsync + runCommand + rustc + stdenv + symlinkJoin + tree + writeShellScriptBin + writeText; + }; + +in exposed // { + callPackage = nixpkgs.lib.callPackageWith exposed; + # Provide the source code of nixpkgs, but do not provide an imported + # version of it. + nixpkgsSrc = stableSrc; +} -- cgit 1.4.1