summary refs log tree commit diff
path: root/nixos/lib
diff options
context:
space:
mode:
authorTimo Kaufmann <timokau@zoho.com>2020-07-21 00:30:57 +0200
committerGitHub <noreply@github.com>2020-07-21 00:30:57 +0200
commit830a8d6ee1137c446107c998c69ea73f691f5281 (patch)
tree35a17f894f8ef925829e9f0f5dc34d1f913d6785 /nixos/lib
parentfec45bdfbcc0136b0ede1f4ec75162675ca5fa66 (diff)
parentbe006eab1f3df27c405a02897d735768f180260f (diff)
downloadnixpkgs-830a8d6ee1137c446107c998c69ea73f691f5281.tar
nixpkgs-830a8d6ee1137c446107c998c69ea73f691f5281.tar.gz
nixpkgs-830a8d6ee1137c446107c998c69ea73f691f5281.tar.bz2
nixpkgs-830a8d6ee1137c446107c998c69ea73f691f5281.tar.lz
nixpkgs-830a8d6ee1137c446107c998c69ea73f691f5281.tar.xz
nixpkgs-830a8d6ee1137c446107c998c69ea73f691f5281.tar.zst
nixpkgs-830a8d6ee1137c446107c998c69ea73f691f5281.zip
Merge pull request #74174 from raboof/fix-74047-stable-gpt-disk-guid
make-iso9660-image: produce stable GPT disk GUID
Diffstat (limited to 'nixos/lib')
-rw-r--r--nixos/lib/make-iso9660-image.nix4
-rw-r--r--nixos/lib/make-iso9660-image.sh14
2 files changed, 7 insertions, 11 deletions
diff --git a/nixos/lib/make-iso9660-image.nix b/nixos/lib/make-iso9660-image.nix
index 12a6cf64996..6a0e0e7c635 100644
--- a/nixos/lib/make-iso9660-image.nix
+++ b/nixos/lib/make-iso9660-image.nix
@@ -1,4 +1,4 @@
-{ stdenv, closureInfo, xorriso, syslinux
+{ stdenv, closureInfo, xorriso, syslinux, libossp_uuid
 
 , # The file name of the resulting ISO image.
   isoName ? "cd.iso"
@@ -48,7 +48,7 @@ assert usbBootable -> isohybridMbrImage != "";
 stdenv.mkDerivation {
   name = isoName;
   builder = ./make-iso9660-image.sh;
-  buildInputs = [ xorriso syslinux zstd ];
+  buildInputs = [ xorriso syslinux zstd libossp_uuid ];
 
   inherit isoName bootable bootImage compressImage volumeID efiBootImage efiBootable isohybridMbrImage usbBootable;
 
diff --git a/nixos/lib/make-iso9660-image.sh b/nixos/lib/make-iso9660-image.sh
index d64fe9a365e..4740b05f955 100644
--- a/nixos/lib/make-iso9660-image.sh
+++ b/nixos/lib/make-iso9660-image.sh
@@ -99,7 +99,12 @@ done
 
 mkdir -p $out/iso
 
+# daed2280-b91e-42c0-aed6-82c825ca41f3 is an arbitrary namespace, to prevent
+# independent applications from generating the same UUID for the same value.
+# (the chance of that being problematic seem pretty slim here, but that's how
+# version-5 UUID's work)
 xorriso="xorriso
+ -boot_image any gpt_disk_guid=$(uuid -v 5 daed2280-b91e-42c0-aed6-82c825ca41f3 $out | tr -d -)
  -as mkisofs
  -iso-level 3
  -volid ${volumeID}
@@ -118,15 +123,6 @@ xorriso="xorriso
 
 $xorriso -output $out/iso/$isoName
 
-if test -n "$usbBootable"; then
-    echo "Making image hybrid..."
-    if test -n "$efiBootable"; then
-        isohybrid --uefi $out/iso/$isoName
-    else
-        isohybrid $out/iso/$isoName
-    fi
-fi
-
 if test -n "$compressImage"; then
     echo "Compressing image..."
     zstd -T$NIX_BUILD_CORES --rm $out/iso/$isoName