Skip to content
Snippets Groups Projects
Select Git revision
  • a129ad47dd8d4202e3e64e9868e9eba4ff004fb2
  • main default protected
  • 75389691-a67c-422a-91e9-aa58bfb5-main-patch-32205
  • test-pipe
  • extended-scripts
  • structured-badges
  • guix-pipeline
  • cabal-pipeline
8 results

sources.nix

  • sources.nix 6.51 KiB
    # This file has been generated by Niv.
    
    let
    
      #
      # The fetchers. fetch_<type> fetches specs of type <type>.
      #
    
      fetch_file = pkgs: name: spec:
        let
          name' = sanitizeName name + "-src";
        in
          if spec.builtin or true then
            builtins_fetchurl { inherit (spec) url sha256; name = name'; }
          else
            pkgs.fetchurl { inherit (spec) url sha256; name = name'; };
    
      fetch_tarball = pkgs: name: spec:
        let
          name' = sanitizeName name + "-src";
        in
          if spec.builtin or true then
            builtins_fetchTarball { name = name'; inherit (spec) url sha256; }
          else
            pkgs.fetchzip { name = name'; inherit (spec) url sha256; };
    
      fetch_git = name: spec:
        let
          ref =
            if spec ? ref then spec.ref else
              if spec ? branch then "refs/heads/${spec.branch}" else
                if spec ? tag then "refs/tags/${spec.tag}" else
                  abort "In git source '${name}': Please specify `ref`, `tag` or `branch`!";
        in
          builtins.fetchGit { url = spec.repo; inherit (spec) rev; inherit ref; };
    
      fetch_local = spec: spec.path;
    
      fetch_builtin-tarball = name: throw
        ''[${name}] The niv type "builtin-tarball" is deprecated. You should instead use `builtin = true`.
            $ niv modify ${name} -a type=tarball -a builtin=true'';
    
      fetch_builtin-url = name: throw
        ''[${name}] The niv type "builtin-url" will soon be deprecated. You should instead use `builtin = true`.
            $ niv modify ${name} -a type=file -a builtin=true'';
    
      #
      # Various helpers
      #
    
      # https://github.com/NixOS/nixpkgs/pull/83241/files#diff-c6f540a4f3bfa4b0e8b6bafd4cd54e8bR695
      sanitizeName = name:
        (
          concatMapStrings (s: if builtins.isList s then "-" else s)
            (
              builtins.split "[^[:alnum:]+._?=-]+"
                ((x: builtins.elemAt (builtins.match "\\.*(.*)" x) 0) name)
            )
        );
    
      # The set of packages used when specs are fetched using non-builtins.
      mkPkgs = sources: system:
        let
          sourcesNixpkgs =
            import (builtins_fetchTarball { inherit (sources.nixpkgs) url sha256; }) { inherit system; };
          hasNixpkgsPath = builtins.any (x: x.prefix == "nixpkgs") builtins.nixPath;
          hasThisAsNixpkgsPath = <nixpkgs> == ./.;
        in
          if builtins.hasAttr "nixpkgs" sources
          then sourcesNixpkgs