summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2017-07-05 09:48:12 +0200
committerVladimír Čunát <vcunat@gmail.com>2017-07-05 09:48:12 +0200
commit7205dfadec4363e0846d6c65266d92a9dddfef6a (patch)
tree0db5545a4a407afdca382f0f2b4e325a0f85cb46 /pkgs
parent1db1ba9048483005ea86709cb33f23a946a990b5 (diff)
parentb935b21ffd06284d0c8297651d7d28c0961d3274 (diff)
downloadnixpkgs-7205dfadec4363e0846d6c65266d92a9dddfef6a.tar
nixpkgs-7205dfadec4363e0846d6c65266d92a9dddfef6a.tar.gz
nixpkgs-7205dfadec4363e0846d6c65266d92a9dddfef6a.tar.bz2
nixpkgs-7205dfadec4363e0846d6c65266d92a9dddfef6a.tar.lz
nixpkgs-7205dfadec4363e0846d6c65266d92a9dddfef6a.tar.xz
nixpkgs-7205dfadec4363e0846d6c65266d92a9dddfef6a.tar.zst
nixpkgs-7205dfadec4363e0846d6c65266d92a9dddfef6a.zip
Merge #26877: fetchFromGitHub: fix fetchSubmodules
... when revision is not hexadecimal. (omitting the last commit in PR)
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/audio/sisco.lv2/default.nix2
-rw-r--r--pkgs/build-support/fetchgit/default.nix16
-rw-r--r--pkgs/build-support/fetchgit/gitrepotoname.nix14
-rwxr-xr-xpkgs/build-support/fetchgit/nix-prefetch-git4
-rw-r--r--pkgs/development/interpreters/ruby/default.nix2
-rw-r--r--pkgs/servers/mail/postfix/pfixtools.nix2
-rw-r--r--pkgs/tools/networking/email/default.nix2
-rw-r--r--pkgs/top-level/all-packages.nix12
8 files changed, 29 insertions, 25 deletions
diff --git a/pkgs/applications/audio/sisco.lv2/default.nix b/pkgs/applications/audio/sisco.lv2/default.nix
index d429d545234..8ac7a9115ca 100644
--- a/pkgs/applications/audio/sisco.lv2/default.nix
+++ b/pkgs/applications/audio/sisco.lv2/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   inherit name;
 
   srcs = [ src robtkSrc ];
-  sourceRoot = "sisco.lv2-${src.rev}-src";
+  sourceRoot = src.name;
 
   buildInputs = [ pkgconfig lv2 pango cairo libjack2 mesa ];
 
diff --git a/pkgs/build-support/fetchgit/default.nix b/pkgs/build-support/fetchgit/default.nix
index 8e060b87ebd..57afb1c4ab8 100644
--- a/pkgs/build-support/fetchgit/default.nix
+++ b/pkgs/build-support/fetchgit/default.nix
@@ -1,21 +1,9 @@
-{stdenv, git, cacert}: let
-  urlToName = url: rev: let
-    inherit (stdenv.lib) removeSuffix splitString last;
-    base = last (splitString ":" (baseNameOf (removeSuffix "/" url)));
+{stdenv, git, cacert, gitRepoToName}:
 
-    matched = builtins.match "(.*).git" base;
-
-    short = builtins.substring 0 7 rev;
-
-    appendShort = if (builtins.match "[a-f0-9]*" rev) != null
-      then "-${short}"
-      else "";
-  in "${if matched == null then base else builtins.head matched}${appendShort}";
-in
 { url, rev ? "HEAD", md5 ? "", sha256 ? "", leaveDotGit ? deepClone
 , fetchSubmodules ? true, deepClone ? false
 , branchName ? null
-, name ? urlToName url rev
+, name ? gitRepoToName url rev
 , # Shell code executed after the file has been fetched
   # successfully. This can do things like check or transform the file.
   postFetch ? ""
diff --git a/pkgs/build-support/fetchgit/gitrepotoname.nix b/pkgs/build-support/fetchgit/gitrepotoname.nix
new file mode 100644
index 00000000000..9f4392c387f
--- /dev/null
+++ b/pkgs/build-support/fetchgit/gitrepotoname.nix
@@ -0,0 +1,14 @@
+{ lib }:
+
+urlOrRepo: rev: let
+  inherit (lib) removeSuffix splitString last;
+  base = last (splitString ":" (baseNameOf (removeSuffix "/" urlOrRepo)));
+
+  matched = builtins.match "(.*).git" base;
+
+  short = builtins.substring 0 7 rev;
+
+  appendShort = if (builtins.match "[a-f0-9]*" rev) != null
+    then "-${short}"
+    else "";
+in "${if matched == null then base else builtins.head matched}${appendShort}"
\ No newline at end of file
diff --git a/pkgs/build-support/fetchgit/nix-prefetch-git b/pkgs/build-support/fetchgit/nix-prefetch-git
index 9e4f346f7a5..c3ba15d5902 100755
--- a/pkgs/build-support/fetchgit/nix-prefetch-git
+++ b/pkgs/build-support/fetchgit/nix-prefetch-git
@@ -282,8 +282,8 @@ _clone_user_rev() {
             if test -z "$(echo "$rev" | tr -d 0123456789abcdef)"; then
                 clone "$dir" "$url" "$rev" "" 1>&2
             else
-                echo 1>&2 "Bad commit hash or bad reference."
-                exit 1
+                # if revision is not hexadecimal it might be a tag
+                clone "$dir" "$url" "" "refs/tags/$rev" 1>&2
             fi;;
     esac
 
diff --git a/pkgs/development/interpreters/ruby/default.nix b/pkgs/development/interpreters/ruby/default.nix
index a552b2719bb..f3d4ae4bb00 100644
--- a/pkgs/development/interpreters/ruby/default.nix
+++ b/pkgs/development/interpreters/ruby/default.nix
@@ -59,7 +59,7 @@ let
         srcs = [ rubySrc rubygemsSrc ];
         sourceRoot =
           if useRailsExpress then
-            "ruby-${tag}-src"
+            rubySrc.name
           else
             unpackdir rubySrc;
 
diff --git a/pkgs/servers/mail/postfix/pfixtools.nix b/pkgs/servers/mail/postfix/pfixtools.nix
index 1bbe6f3466b..6a0d7fb588f 100644
--- a/pkgs/servers/mail/postfix/pfixtools.nix
+++ b/pkgs/servers/mail/postfix/pfixtools.nix
@@ -10,7 +10,7 @@ let
     sha256 = "1vmbrw686f41n6xfjphfshn96vl07ynvnsyjdw9yfn9bfnldcjcq";
   };
 
-  srcRoot = "pfixtools-${pfixtoolsSrc.rev}-src";
+  srcRoot = pfixtoolsSrc.name;
 
   libCommonSrc = fetchFromGitHub {
     owner = "Fruneau";
diff --git a/pkgs/tools/networking/email/default.nix b/pkgs/tools/networking/email/default.nix
index 017da63a1e9..c7a6fbcfd7c 100644
--- a/pkgs/tools/networking/email/default.nix
+++ b/pkgs/tools/networking/email/default.nix
@@ -8,7 +8,7 @@ let
     sha256 = "1cxxzhm36civ6vjdgrk7mfmlzkih44kdii6l2xgy4r434s8rzcpn";
   };
 
-  srcRoot = "eMail-${eMailSrc.rev}-src";
+  srcRoot = eMailSrc.name;
 
   dlibSrc = fetchFromGitHub {
     owner = "deanproxy";
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 5114b46bf39..aa6259c3f84 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -185,8 +185,10 @@ with pkgs;
 
   fetchzip = callPackage ../build-support/fetchzip { };
 
+  gitRepoToName = callPackage ../build-support/fetchgit/gitrepotoname.nix { };
+
   fetchFromGitHub = {
-    owner, repo, rev, name ? "${repo}-${rev}-src",
+    owner, repo, rev, name ? gitRepoToName repo rev,
     fetchSubmodules ? false, private ? false,
     githubBase ? "github.com", varPrefix ? null,
     ... # For hash agility
@@ -223,7 +225,7 @@ with pkgs;
     } // passthruAttrs) // { inherit rev; };
 
   fetchFromBitbucket = {
-    owner, repo, rev, name ? "${repo}-${rev}-src",
+    owner, repo, rev, name ? gitRepoToName repo rev,
     ... # For hash agility
   }@args: fetchzip ({
     inherit name;
@@ -234,7 +236,7 @@ with pkgs;
 
   # cgit example, snapshot support is optional in cgit
   fetchFromSavannah = {
-    repo, rev, name ? "${repo}-${rev}-src",
+    repo, rev, name ? gitRepoToName repo rev,
     ... # For hash agility
   }@args: fetchzip ({
     inherit name;
@@ -244,7 +246,7 @@ with pkgs;
 
   # gitlab example
   fetchFromGitLab = {
-    owner, repo, rev, name ? "${repo}-${rev}-src",
+    owner, repo, rev, name ? gitRepoToName repo rev,
     ... # For hash agility
   }@args: fetchzip ({
     inherit name;
@@ -254,7 +256,7 @@ with pkgs;
 
   # gitweb example, snapshot support is optional in gitweb
   fetchFromRepoOrCz = {
-    repo, rev, name ? "${repo}-${rev}-src",
+    repo, rev, name ? gitRepoToName repo rev,
     ... # For hash agility
   }@args: fetchzip ({
     inherit name;