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!
This commit is contained in:
parent
77c64ed8f6
commit
39ba761663
1 changed files with 49 additions and 0 deletions
49
third_party/default.nix
vendored
Normal file
49
third_party/default.nix
vendored
Normal file
|
@ -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.<name>`
|
||||||
|
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;
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue