The previous hash was too short and caused evaluation-time errors like:
    invalid SRI hash 'sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA='
Additionally, since the fact that this is broken implies that nobody
could have been using it, "SRI" is a bit of a vague and obscure term,
`fakeSriHash` would be somewhat of a mouthful, and the relevant fetcher
parameters are just called `hash`, rename it to `fakeHash`.
		
	
			
		
			
				
	
	
		
			150 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			150 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
/* Library of low-level helper functions for nix expressions.
 | 
						|
 *
 | 
						|
 * Please implement (mostly) exhaustive unit tests
 | 
						|
 * for new functions in `./tests.nix'.
 | 
						|
 */
 | 
						|
let
 | 
						|
 | 
						|
  inherit (import ./fixed-points.nix {}) makeExtensible;
 | 
						|
 | 
						|
  lib = makeExtensible (self: let
 | 
						|
    callLibs = file: import file { lib = self; };
 | 
						|
  in with self; {
 | 
						|
 | 
						|
    # often used, or depending on very little
 | 
						|
    trivial = callLibs ./trivial.nix;
 | 
						|
    fixedPoints = callLibs ./fixed-points.nix;
 | 
						|
 | 
						|
    # datatypes
 | 
						|
    attrsets = callLibs ./attrsets.nix;
 | 
						|
    lists = callLibs ./lists.nix;
 | 
						|
    strings = callLibs ./strings.nix;
 | 
						|
    stringsWithDeps = callLibs ./strings-with-deps.nix;
 | 
						|
 | 
						|
    # packaging
 | 
						|
    customisation = callLibs ./customisation.nix;
 | 
						|
    maintainers = import ../maintainers/maintainer-list.nix;
 | 
						|
    teams = callLibs ../maintainers/team-list.nix;
 | 
						|
    meta = callLibs ./meta.nix;
 | 
						|
    sources = callLibs ./sources.nix;
 | 
						|
    versions = callLibs ./versions.nix;
 | 
						|
 | 
						|
    # module system
 | 
						|
    modules = callLibs ./modules.nix;
 | 
						|
    options = callLibs ./options.nix;
 | 
						|
    types = callLibs ./types.nix;
 | 
						|
 | 
						|
    # constants
 | 
						|
    licenses = callLibs ./licenses.nix;
 | 
						|
    systems = callLibs ./systems;
 | 
						|
 | 
						|
    # serialization
 | 
						|
    cli = callLibs ./cli.nix;
 | 
						|
    generators = callLibs ./generators.nix;
 | 
						|
 | 
						|
    # misc
 | 
						|
    asserts = callLibs ./asserts.nix;
 | 
						|
    debug = callLibs ./debug.nix;
 | 
						|
    misc = callLibs ./deprecated.nix;
 | 
						|
 | 
						|
    # domain-specific
 | 
						|
    fetchers = callLibs ./fetchers.nix;
 | 
						|
 | 
						|
    # Eval-time filesystem handling
 | 
						|
    filesystem = callLibs ./filesystem.nix;
 | 
						|
 | 
						|
    # back-compat aliases
 | 
						|
    platforms = systems.doubles;
 | 
						|
 | 
						|
    # linux kernel configuration
 | 
						|
    kernel = callLibs ./kernel.nix;
 | 
						|
 | 
						|
    inherit (builtins) add addErrorContext attrNames concatLists
 | 
						|
      deepSeq elem elemAt filter genericClosure genList getAttr
 | 
						|
      hasAttr head isAttrs isBool isInt isList isString length
 | 
						|
      lessThan listToAttrs pathExists readFile replaceStrings seq
 | 
						|
      stringLength sub substring tail;
 | 
						|
    inherit (trivial) id const pipe concat or and bitAnd bitOr bitXor
 | 
						|
      bitNot boolToString mergeAttrs flip mapNullable inNixShell min max
 | 
						|
      importJSON warn info showWarnings nixpkgsVersion version mod compare
 | 
						|
      splitByAndCompare functionArgs setFunctionArgs isFunction;
 | 
						|
    inherit (fixedPoints) fix fix' converge extends composeExtensions
 | 
						|
      makeExtensible makeExtensibleWithCustomName;
 | 
						|
    inherit (attrsets) attrByPath hasAttrByPath setAttrByPath
 | 
						|
      getAttrFromPath attrVals attrValues getAttrs catAttrs filterAttrs
 | 
						|
      filterAttrsRecursive foldAttrs collect nameValuePair mapAttrs
 | 
						|
      mapAttrs' mapAttrsToList mapAttrsRecursive mapAttrsRecursiveCond
 | 
						|
      genAttrs isDerivation toDerivation optionalAttrs
 | 
						|
      zipAttrsWithNames zipAttrsWith zipAttrs recursiveUpdateUntil
 | 
						|
      recursiveUpdate matchAttrs overrideExisting getOutput getBin
 | 
						|
      getLib getDev chooseDevOutputs zipWithNames zip
 | 
						|
      recurseIntoAttrs dontRecurseIntoAttrs;
 | 
						|
    inherit (lists) singleton forEach foldr fold foldl foldl' imap0 imap1
 | 
						|
      concatMap flatten remove findSingle findFirst any all count
 | 
						|
      optional optionals toList range partition zipListsWith zipLists
 | 
						|
      reverseList listDfs toposort sort naturalSort compareLists take
 | 
						|
      drop sublist last init crossLists unique intersectLists
 | 
						|
      subtractLists mutuallyExclusive groupBy groupBy';
 | 
						|
    inherit (strings) concatStrings concatMapStrings concatImapStrings
 | 
						|
      intersperse concatStringsSep concatMapStringsSep
 | 
						|
      concatImapStringsSep makeSearchPath makeSearchPathOutput
 | 
						|
      makeLibraryPath makeBinPath optionalString
 | 
						|
      hasInfix hasPrefix hasSuffix stringToCharacters stringAsChars escape
 | 
						|
      escapeShellArg escapeShellArgs replaceChars lowerChars
 | 
						|
      upperChars toLower toUpper addContextFrom splitString
 | 
						|
      removePrefix removeSuffix versionOlder versionAtLeast
 | 
						|
      getName getVersion
 | 
						|
      nameFromURL enableFeature enableFeatureAs withFeature
 | 
						|
      withFeatureAs fixedWidthString fixedWidthNumber isStorePath
 | 
						|
      toInt readPathsFromFile fileContents;
 | 
						|
    inherit (stringsWithDeps) textClosureList textClosureMap
 | 
						|
      noDepEntry fullDepEntry packEntry stringAfter;
 | 
						|
    inherit (customisation) overrideDerivation makeOverridable
 | 
						|
      callPackageWith callPackagesWith extendDerivation hydraJob
 | 
						|
      makeScope;
 | 
						|
    inherit (meta) addMetaAttrs dontDistribute setName updateName
 | 
						|
      appendToName mapDerivationAttrset setPrio lowPrio lowPrioSet hiPrio
 | 
						|
      hiPrioSet;
 | 
						|
    inherit (sources) pathType pathIsDirectory cleanSourceFilter
 | 
						|
      cleanSource sourceByRegex sourceFilesBySuffices
 | 
						|
      commitIdFromGitRepo cleanSourceWith pathHasContext
 | 
						|
      canCleanSource pathIsRegularFile pathIsGitRepo;
 | 
						|
    inherit (modules) evalModules unifyModuleSyntax
 | 
						|
      applyIfFunction mergeModules
 | 
						|
      mergeModules' mergeOptionDecls evalOptionValue mergeDefinitions
 | 
						|
      pushDownProperties dischargeProperties filterOverrides
 | 
						|
      sortProperties fixupOptionType mkIf mkAssert mkMerge mkOverride
 | 
						|
      mkOptionDefault mkDefault mkForce mkVMOverride mkStrict
 | 
						|
      mkFixStrictness mkOrder mkBefore mkAfter mkAliasDefinitions
 | 
						|
      mkAliasAndWrapDefinitions fixMergeModules mkRemovedOptionModule
 | 
						|
      mkRenamedOptionModule mkMergedOptionModule mkChangedOptionModule
 | 
						|
      mkAliasOptionModule doRename;
 | 
						|
    inherit (options) isOption mkEnableOption mkSinkUndeclaredOptions
 | 
						|
      mergeDefaultOption mergeOneOption mergeEqualOption getValues
 | 
						|
      getFiles optionAttrSetToDocList optionAttrSetToDocList'
 | 
						|
      scrubOptionValue literalExample showOption showFiles
 | 
						|
      unknownModule mkOption;
 | 
						|
    inherit (types) isType setType defaultTypeMerge defaultFunctor
 | 
						|
      isOptionType mkOptionType;
 | 
						|
    inherit (asserts)
 | 
						|
      assertMsg assertOneOf;
 | 
						|
    inherit (debug) addErrorContextToAttrs traceIf traceVal traceValFn
 | 
						|
      traceXMLVal traceXMLValMarked traceSeq traceSeqN traceValSeq
 | 
						|
      traceValSeqFn traceValSeqN traceValSeqNFn traceShowVal
 | 
						|
      traceShowValMarked showVal traceCall traceCall2 traceCall3
 | 
						|
      traceValIfNot runTests testAllTrue traceCallXml attrNamesToStr;
 | 
						|
    inherit (misc) maybeEnv defaultMergeArg defaultMerge foldArgs
 | 
						|
      maybeAttrNullable maybeAttr ifEnable checkFlag getValue
 | 
						|
      checkReqs uniqList uniqListExt condConcat lazyGenericClosure
 | 
						|
      innerModifySumArgs modifySumArgs innerClosePropagation
 | 
						|
      closePropagation mapAttrsFlatten nvs setAttr setAttrMerge
 | 
						|
      mergeAttrsWithFunc mergeAttrsConcatenateValues
 | 
						|
      mergeAttrsNoOverride mergeAttrByFunc mergeAttrsByFuncDefaults
 | 
						|
      mergeAttrsByFuncDefaultsClean mergeAttrBy
 | 
						|
      fakeHash fakeSha256 fakeSha512
 | 
						|
      nixType imap;
 | 
						|
    inherit (versions)
 | 
						|
      splitVersion;
 | 
						|
  });
 | 
						|
in lib
 |