summaryrefslogtreecommitdiffstats
path: root/nixos/lib
diff options
context:
space:
mode:
authorLuca Bruno <lucabru@src.gnome.org>2014-11-08 13:09:08 +0100
committerLuca Bruno <lucabru@src.gnome.org>2014-11-08 14:33:27 +0100
commit7885c2ed12a353aa92da2087b2ba1e6adac7c069 (patch)
tree52e11d4dad0e2b19002fcf84f42db18d44799a9a /nixos/lib
parente3611709d6ab459be0ed16fe0fdeb7e4c4acc05d (diff)
Revert "nixos: iso-image: use syslinux bootloader for USB booting support"
Diffstat (limited to 'nixos/lib')
-rw-r--r--nixos/lib/make-iso9660-image.nix13
-rw-r--r--nixos/lib/make-iso9660-image.sh48
2 files changed, 11 insertions, 50 deletions
diff --git a/nixos/lib/make-iso9660-image.nix b/nixos/lib/make-iso9660-image.nix
index b2409c6006bc..5ad546e9534d 100644
--- a/nixos/lib/make-iso9660-image.nix
+++ b/nixos/lib/make-iso9660-image.nix
@@ -1,4 +1,4 @@
-{ stdenv, perl, pathsFromGraph, xorriso, syslinux
+{ stdenv, perl, cdrkit, pathsFromGraph
, # The file name of the resulting ISO image.
isoName ? "cd.iso"
@@ -22,18 +22,12 @@
, # Whether this should be an efi-bootable El-Torito CD.
efiBootable ? false
-, # Wheter this should be an hybrid CD (bootable from USB as well as CD).
- usbBootable ? false
-
, # The path (in the ISO file system) of the boot image.
bootImage ? ""
, # The path (in the ISO file system) of the efi boot image.
efiBootImage ? ""
-, # The path (outside the ISO file system) of the isohybrid-mbr image.
- isohybridMbrImage ? ""
-
, # Whether to compress the resulting ISO image with bzip2.
compressImage ? false
@@ -44,14 +38,13 @@
assert bootable -> bootImage != "";
assert efiBootable -> efiBootImage != "";
-assert usbBootable -> isohybridMbrImage != "";
stdenv.mkDerivation {
name = "iso9660-image";
builder = ./make-iso9660-image.sh;
- buildInputs = [perl xorriso syslinux];
+ buildInputs = [perl cdrkit];
- inherit isoName bootable bootImage compressImage volumeID pathsFromGraph efiBootImage efiBootable isohybridMbrImage usbBootable;
+ inherit isoName bootable bootImage compressImage volumeID pathsFromGraph efiBootImage efiBootable;
# !!! should use XML.
sources = map (x: x.source) contents;
diff --git a/nixos/lib/make-iso9660-image.sh b/nixos/lib/make-iso9660-image.sh
index c8522513aa23..675b5bb35148 100644
--- a/nixos/lib/make-iso9660-image.sh
+++ b/nixos/lib/make-iso9660-image.sh
@@ -31,20 +31,11 @@ if test -n "$bootable"; then
fi
done
- isoBootFlags="-eltorito-boot ${bootImage}
- -eltorito-catalog .boot.cat
- -no-emul-boot -boot-load-size 4 -boot-info-table"
-fi
-
-if test -n "$usbBootable"; then
- usbBootFlags="-isohybrid-mbr ${isohybridMbrImage}"
+ bootFlags="-b $bootImage -c .boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table"
fi
if test -n "$efiBootable"; then
- efiBootFlags="-eltorito-alt-boot
- -e $efiBootImage
- -no-emul-boot
- -isohybrid-gpt-basdat"
+ bootFlags="$bootFlags -eltorito-alt-boot -e $efiBootImage -no-emul-boot"
fi
touch pathlist
@@ -83,41 +74,18 @@ for ((n = 0; n < ${#objects[*]}; n++)); do
fi
done
-# Escape filenames that contain '='.
-# TODO: Handle this properly. This fails for filenames
-# that contain multiple '=' symbols.
+# !!! what does this do?
cat pathlist | sed -e 's/=\(.*\)=\(.*\)=/\\=\1=\2\\=/' | tee pathlist.safer
mkdir -p $out/iso
-
-xorriso="xorriso
- -as mkisofs
- -iso-level 3
- -volid ${volumeID}
- -appid nixos
- -publisher nixos
- -graft-points
- -full-iso9660-filenames
- ${isoBootFlags}
- ${usbBootFlags}
- ${efiBootFlags}
- -r
- -path-list pathlist.safer
- --sort-weight 0 /
- --sort-weight 1 /isolinux" # Make sure isolinux is near the beginning of the ISO
-
-$xorriso -output $out/iso/$isoName
-
-if test -n "$usbBootable"; then
- echo "Making image hybrid..."
- isohybrid --uefi $out/iso/$isoName
+genCommand="genisoimage -iso-level 4 -r -J $bootFlags -hide-rr-moved -graft-points -path-list pathlist.safer ${volumeID:+-V $volumeID}"
+if test -z "$compressImage"; then
+ $genCommand -o $out/iso/$isoName
+else
+ $genCommand | bzip2 > $out/iso/$isoName.bz2
fi
-if test -n "$compressImage"; then
- echo "Compressing image..."
- bzip2 $out/iso/$isoName
-fi
mkdir -p $out/nix-support
echo $system > $out/nix-support/system