Merge pull request #24239 from spacekitteh/fetchFromGitRepo

Added fetchRepoProject

authored by Daniel Peebles and committed by GitHub a9644fb1 306f2c65

+44
+42
pkgs/build-support/fetchrepoproject/default.nix
··· 1 + {stdenv, git, gitRepo, gnupg ? null, cacert}: 2 + 3 + {name, manifest, rev ? "HEAD", sha256 ? "", repoRepoURL ? "", repoRepoRev ? "", referenceDir ? "", 4 + localManifests ? [] }: 5 + 6 + assert repoRepoRev != "" -> repoRepoURL != ""; 7 + 8 + stdenv.mkDerivation { 9 + buildCommand = with stdenv.lib; '' 10 + mkdir ./.repo 11 + mkdir ./.repo/local_manifests 12 + for local_manifest in ${concatMapStringsSep " " (x: "${x}") localManifests} 13 + do 14 + cp $local_manifest ./.repo/local_manifests/$(stripHash $local_manifest; echo $strippedName) 15 + done 16 + 17 + export HOME=.repo 18 + repo init --manifest-url=${manifest} --manifest-branch=${rev} --depth=1 --no-clone-bundle'' 19 + + ${optionalString (repoRepoURL != "") " --repo-url=${repoRepoURL}"} 20 + + ${optionalString (repoRepoRev != "") " --repo-branch=${repoRepoRev}"} 21 + + ${optionalString (referenceDir != "") " --reference=${referenceDir}"} 22 + + '' 23 + repo sync --jobs=$NIX_BUILD_CORES --current-branch 24 + rm -rf $out/.repo 25 + ''; 26 + 27 + GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt"; 28 + 29 + impureEnvVars = stdenv.lib.fetchers.proxyImpureEnvVars ++ [ 30 + "GIT_PROXY_COMMAND" "SOCKS_SERVER" 31 + ]; 32 + 33 + buildInputs = [git gitRepo cacert] ++ stdenv.lib.optional (gnupg != null) [gnupg] ; 34 + 35 + outputHashAlgo = "sha256"; 36 + outputHashMode = "recursive"; 37 + outputHash = sha256; 38 + 39 + preferLocalBuild = true; 40 + enableParallelBuilding = true; 41 + inherit name cacert manifest rev repoRepoURL repoRepoRev referenceDir; 42 + }
+2
pkgs/top-level/all-packages.nix
··· 170 170 inherit curl stdenv; 171 171 }; 172 172 173 + fetchRepoProject = callPackage ../build-support/fetchrepoproject { }; 174 + 173 175 # fetchurlBoot is used for curl and its dependencies in order to 174 176 # prevent a cyclic dependency (curl depends on curl.tar.bz2, 175 177 # curl.tar.bz2 depends on fetchurl, fetchurl depends on curl). It