About to do some dhalllll! \o/ Change-Id: Ie58c335d80f4a5abeb8296ece5a24377f07e6369 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2585 Tested-by: BuildkiteCI Reviewed-by: lukegb <lukegb@tvl.fyi>
		
			
				
	
	
		
			91 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
# 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 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;
 | 
						|
 | 
						|
  };
 | 
						|
 | 
						|
  # binary releases of dhall tools, since the build in nixpkgs is broken most of the time.
 | 
						|
  # The binaries are also fully static builds, instead of the half-static crap that nixpkgs produces.
 | 
						|
  easy-dhall-nix =
 | 
						|
    import (builtins.fetchTarball {
 | 
						|
      url = "https://github.com/justinwoo/easy-dhall-nix/archive/eae7f64c4d6c70681e5a56c84198236930ba425e.tar.gz";
 | 
						|
      sha256 = "1y2x15v8a679vlpxazjpibfwajp6zph60f8wjcm4xflbvazk0dx7";
 | 
						|
    }) { pkgs = nixpkgs; };
 | 
						|
 | 
						|
  dhall = self.easy-dhall-nix.dhall-simple;
 | 
						|
  dhall-bash = self.easy-dhall-nix.dhall-bash-simple;
 | 
						|
  dhall-docs = self.easy-dhall-nix.dhall-docs-simple;
 | 
						|
  dhall-json = self.easy-dhall-nix.dhall-json-simple;
 | 
						|
  dhall-lsp-server = self.easy-dhall-nix.dhall-lsp-simple;
 | 
						|
  dhall-nix = self.easy-dhall-nix.dhall-nix-simple;
 | 
						|
  # not yet in dhall-simple
 | 
						|
  # dhall-nixpkgs = self.easy-dhall-nix.dhall-nixpkgs-simple;
 | 
						|
  dhall-yaml = self.easy-dhall-nix.dhall-yaml-simple;
 | 
						|
 | 
						|
  # 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";
 | 
						|
})
 |