Something went wrong. Try again.
What happens if I push all of nixpkgs
Something went wrong. Try again.
Nix
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185/* This file contains all of the different variants of nixpkgs instances.
Unlike the other package sets like pkgsCross, pkgsi686Linux, etc., this contains non-critical package sets. The intent is to be a shorthand for things like using different toolchains in every package in nixpkgs.*/{ lib, stdenv, nixpkgsFun, overlays, makeMuslParsedPlatform,}:let makeLLVMParsedPlatform = parsed: ( parsed // { abi = lib.systems.parse.abis.llvm; } );inself: super: { pkgsLLVM = nixpkgsFun { overlays = [ (self': super': { pkgsLLVM = super'; }) ] ++ overlays; # Bootstrap a cross stdenv using the LLVM toolchain. # This is currently not possible when compiling natively, # so we don't need to check hostPlatform != buildPlatform. crossSystem = stdenv.hostPlatform // { useLLVM = true; linker = "lld"; }; };
pkgsArocc = nixpkgsFun { overlays = [ (self': super': { pkgsArocc = super'; }) ] ++ overlays; # Bootstrap a cross stdenv using the Aro C compiler. # This is currently not possible when compiling natively, # so we don't need to check hostPlatform != buildPlatform. crossSystem = stdenv.hostPlatform // { useArocc = true; linker = "lld"; }; };
pkgsZig = nixpkgsFun { overlays = [ (self': super': { pkgsZig = super'; }) ] ++ overlays; # Bootstrap a cross stdenv using the Zig toolchain. # This is currently not possible when compiling natively, # so we don't need to check hostPlatform != buildPlatform. crossSystem = stdenv.hostPlatform // { useZig = true; linker = "lld"; }; };
# All packages built with the Musl libc. This will override the # default GNU libc on Linux systems. Non-Linux systems are not # supported. 32-bit is also not supported. pkgsMusl = if stdenv.hostPlatform.isLinux && stdenv.buildPlatform.is64bit then nixpkgsFun { overlays = [ (self': super': { pkgsMusl = super'; }) ] ++ overlays; ${if stdenv.hostPlatform == stdenv.buildPlatform then "localSystem" else "crossSystem"} = { config = lib.systems.parse.tripleFromSystem (makeMuslParsedPlatform stdenv.hostPlatform.parsed); }; } else throw "Musl libc only supports 64-bit Linux systems.";
# x86_64-darwin packages for aarch64-darwin users to use with Rosetta for incompatible packages pkgsx86_64Darwin = if stdenv.hostPlatform.isDarwin then nixpkgsFun { overlays = [ (self': super': { pkgsx86_64Darwin = super'; }) ] ++ overlays; localSystem = { config = lib.systems.parse.tripleFromSystem ( stdenv.hostPlatform.parsed // { cpu = lib.systems.parse.cpuTypes.x86_64; } ); }; } else throw "x86_64 Darwin package set can only be used on Darwin systems.";
# Full package set with rocm on cuda off # Mostly useful for asserting pkgs.pkgsRocm.torchWithRocm == pkgs.torchWithRocm and similar pkgsRocm = nixpkgsFun ({ config = super.config // { cudaSupport = false; rocmSupport = true; }; });
# Full package set with cuda on rocm off # Mostly useful for asserting pkgs.pkgsCuda.torchWithCuda == pkgs.torchWithCuda and similar pkgsCuda = nixpkgsFun { config = super.config // { cudaSupport = true; rocmSupport = false; }; };
# `pkgsForCudaArch` maps each CUDA capability in _cuda.db.cudaCapabilityToInfo to a Nixpkgs variant configured for # that target system. For example, `pkgsForCudaArch.sm_90a.python3Packages.torch` refers to PyTorch built for the # Hopper architecture, leveraging architecture-specific features. # NOTE: Not every package set is supported on every architecture! # See `Using pkgsForCudaArch` in doc/languages-frameworks/cuda.section.md for more information. pkgsForCudaArch = lib.listToAttrs ( lib.map (cudaCapability: { name = self._cuda.lib.mkRealArchitecture cudaCapability; value = nixpkgsFun { config = super.config // { cudaSupport = true; rocmSupport = false; # Not supported by architecture-specific feature sets, so disable for all. # Users can choose to build for family-specific feature sets if they wish. cudaForwardCompat = false; cudaCapabilities = [ cudaCapability ]; }; }; }) (lib.attrNames self._cuda.db.cudaCapabilityToInfo) );
pkgsExtraHardening = nixpkgsFun { overlays = [ ( self': super': { pkgsExtraHardening = super'; stdenv = super'.withDefaultHardeningFlags ( super'.stdenv.cc.defaultHardeningFlags ++ [ "strictflexarrays1" "shadowstack" "nostrictaliasing" "pacret" "trivialautovarinit" ] ) super'.stdenv; glibc = super'.glibc.override rec { enableCET = if self'.stdenv.hostPlatform.isx86_64 then "permissive" else false; enableCETRuntimeDefault = enableCET != false; }; } // lib.optionalAttrs (with super'.stdenv.hostPlatform; isx86_64 && isLinux) { # causes shadowstack disablement pcre = super'.pcre.override { enableJit = false; }; pcre-cpp = super'.pcre-cpp.override { enableJit = false; }; } ) ] ++ overlays; };}