about summary refs log tree commit diff
path: root/pkgs/build-support
diff options
context:
space:
mode:
authorVladimír Čunát <v@cunat.cz>2019-06-05 11:06:44 +0200
committerVladimír Čunát <v@cunat.cz>2019-06-05 11:06:44 +0200
commit576af1718704f9eca5db0983a94edcf8d06caddd (patch)
tree5abaed9414b2de580360f7fe1e1add62bff81dd5 /pkgs/build-support
parentc4724fb7bcc83a778632ce096e37b7dcdd3b034b (diff)
parente283999204ef8b7c3c3e10e93da82bf39f06d1fa (diff)
downloadnixlib-576af1718704f9eca5db0983a94edcf8d06caddd.tar
nixlib-576af1718704f9eca5db0983a94edcf8d06caddd.tar.gz
nixlib-576af1718704f9eca5db0983a94edcf8d06caddd.tar.bz2
nixlib-576af1718704f9eca5db0983a94edcf8d06caddd.tar.lz
nixlib-576af1718704f9eca5db0983a94edcf8d06caddd.tar.xz
nixlib-576af1718704f9eca5db0983a94edcf8d06caddd.tar.zst
nixlib-576af1718704f9eca5db0983a94edcf8d06caddd.zip
Merge branch 'master' into staging-next
Hydra nixpkgs: ?compare=1523575
Diffstat (limited to 'pkgs/build-support')
-rw-r--r--pkgs/build-support/kernel/make-initrd.nix14
1 files changed, 12 insertions, 2 deletions
diff --git a/pkgs/build-support/kernel/make-initrd.nix b/pkgs/build-support/kernel/make-initrd.nix
index 7ad1affb65a3..7a5642e565de 100644
--- a/pkgs/build-support/kernel/make-initrd.nix
+++ b/pkgs/build-support/kernel/make-initrd.nix
@@ -16,10 +16,16 @@
 , name ? "initrd"
 , compressor ? "gzip -9n"
 , prepend ? []
+, lib
 }:
+let 
+  # !!! Move this into a public lib function, it is probably useful for others
+  toValidStoreName = x: with builtins; 
+    lib.concatStringsSep "-" (filter (x: !(isList x)) (split "[^a-zA-Z0-9_=.?-]+" x));
 
-stdenv.mkDerivation rec {
+in stdenv.mkDerivation rec {
   inherit name;
+
   builder = ./make-initrd.sh;
 
   makeUInitrd = stdenv.hostPlatform.platform.kernelTarget == "uImage";
@@ -36,8 +42,12 @@ stdenv.mkDerivation rec {
   # Note: we don't use closureInfo yet, as that won't build with nix-1.x.
   # See #36268.
   exportReferencesGraph =
-    map (x: [("closure-" + baseNameOf x.symlink) x.object]) contents;
+    lib.zipListsWith 
+      (x: i: [("closure-${toValidStoreName (baseNameOf x.symlink)}-${toString i}") x.object]) 
+      contents 
+      (lib.range 0 (lib.length contents - 1));
   pathsFromGraph = ./paths-from-graph.pl;
 
   inherit compressor prepend;
 }
+