diff options
Diffstat (limited to 'third_party/default.nix')
-rw-r--r-- | third_party/default.nix | 94 |
1 files changed, 22 insertions, 72 deletions
diff --git a/third_party/default.nix b/third_party/default.nix index 774e634f9cef..0b1e94c7f86c 100644 --- a/third_party/default.nix +++ b/third_party/default.nix @@ -1,73 +1,23 @@ -# This file controls the import of external dependencies (i.e. -# third-party code) into my package tree. +# This file defines the root of all external dependency imports (i.e. +# third-party code) in the TVL package tree. # -# This includes *all packages needed from nixpkgs*. -{ ... }: - -let - # Tracking nixos-unstable as of 2021-03-25. - nixpkgsCommit = "60dd94fb7e01a8288f6638eee71d7cb354c49327"; - nixpkgsSrc = fetchTarball { - url = "https://github.com/NixOS/nixpkgs/archive/${nixpkgsCommit}.tar.gz"; - sha256 = "0skdwk9bdld295kzrymirs8xrzycqmhsclaz8s18jhcz75hb8sk3"; - }; - nixpkgs = import nixpkgsSrc { - config.allowUnfree = true; - config.allowBroken = true; - - # Lutris depends on p7zip, which is considered insecure. - config.permittedInsecurePackages = [ - "p7zip-16.02" - ]; - }; - - # Tracking nixos-20.09 as of 2021-03-25. - stableCommit = "223d0d733a66b46504ea6b4c15f88b7cc4db58fb"; - stableNixpkgsSrc = fetchTarball { - url = "https://github.com/NixOS/nixpkgs/archive/${stableCommit}.tar.gz"; - sha256 = "073327ris0frqa3kpid3nsjr9w8yx2z83xpsc24w898mrs9r7d5v"; - }; - stableNixpkgs = import stableNixpkgsSrc {}; - - exposed = import ./nixpkgs-exposed/exposed { inherit nixpkgs stableNixpkgs; }; - -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; - - # Expose upstream attributes so they can be overridden in readTree nodes - originals = { - inherit (nixpkgs) gtest openldap go grpc notmuch rr; - inherit (stableNixpkgs) git tdlib; - ffmpeg = nixpkgs.ffmpeg-full; - telega = stableNixpkgs.emacsPackages.telega; - - }; - - # Use LLVM 11 - llvmPackages = nixpkgs.llvmPackages_11; - clangStdenv = nixpkgs.llvmPackages_11.stdenv; - stdenv = nixpkgs.llvmPackages_11.stdenv; - - clang-tools = (nixpkgs.clang-tools.override { - llvmPackages = nixpkgs.llvmPackages_11; - }); - - # Provide Emacs 27 - # - # The assert exists because the name of the attribute is unversioned - # (which is different from previous versions). - emacs27 = assert ((exposed.lib.versions.major nixpkgs.emacs.version) == "27"); - nixpkgs.emacs.overrideAttrs(old: { - configureFlags = old.configureFlags ++ [ "--with-cairo" ]; - }); - - emacs27-nox = assert ((exposed.lib.versions.major nixpkgs.emacs.version) == "27"); - nixpkgs.emacs-nox; - - # Make NixOS available - nixos = import "${nixpkgsSrc}/nixos"; -}) +# There are two categories of third-party programs: +# +# 1) Programs in nixpkgs, the NixOS package set. For these, you might +# want to look at //third_party/nixpkgs (for the package set +# imports) and //third_party/overlays (for modifications in these +# imported package sets). +# +# 2) Third-party software packaged in this repository. This is all +# other folders below //third_party, other than the ones mentioned +# above. + +{ pkgs, ... }: + +{ + # Expose a partially applied NixOS, expecting an attribute set with + # a `configuration` key. Exposing it like this makes it possible to + # modify some of the base configuration used by NixOS. passed to + # this. + nixos = import "${pkgs.path}/nixos"; +} |