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…
Reference in a new issue