* Set the CD volume ID and the ISO filename.

svn path=/nixos/branches/modular-nixos/; revision=15912
This commit is contained in:
Eelco Dolstra 2009-06-09 15:23:03 +00:00
parent 803d8b646f
commit ba43b5d000
2 changed files with 46 additions and 12 deletions

View file

@ -4,6 +4,18 @@
let
options = {
system.nixosVersion = pkgs.lib.mkOption {
default = "${builtins.readFile ../../../VERSION}";
description = ''
NixOS version number.
'';
};
};
# We need a copy of the Nix expressions for Nixpkgs and NixOS on the
# CD. We put them in a tarball because accessing that many small
# files from a slow device like a CD-ROM takes too long. !!! Once
@ -25,11 +37,17 @@ in
{
require =
[ ./iso-image.nix
[ options
./iso-image.nix
./memtest.nix
../../../hardware/network/intel-3945abg.nix
];
# ISO naming.
isoImage.isoName = "nixos-${config.system.nixosVersion}-${pkgs.stdenv.system}.iso";
isoImage.volumeID = "NIXOS_INSTALLATION_CD_${config.system.nixosVersion}";
# Use Linux 2.6.29.
boot.kernelPackages = pkgs.kernelPackages_2_6_29;

View file

@ -8,6 +8,30 @@ let
options = {
isoImage.isoName = pkgs.lib.mkOption {
default = "cd.iso";
description = ''
Name of the generated ISO image file.
'';
};
isoImage.compressImage = pkgs.lib.mkOption {
default = false;
description = ''
Whether the ISO image should be compressed using
<command>bzip2</command>.
'';
};
isoImage.volumeID = pkgs.lib.mkOption {
default = "NIXOS_BOOT_CD";
description = ''
Specifies the label or volume ID of the generated ISO image.
Note that the label is used by stage 1 of the boot process to
mount the CD, so it should be reasonably distinctive.
'';
};
isoImage.contents = pkgs.lib.mkOption {
example =
[ { source = pkgs.memtest86 + "/memtest.bin";
@ -35,8 +59,6 @@ let
};
cdLabel = "NIXOS_INSTALLATION_CD";
# The configuration file for Grub.
grubCfg =
''
@ -56,7 +78,7 @@ in
# so that we don't need to know its device.
fileSystems =
[ { mountPoint = "/";
label = cdLabel;
label = config.isoImage.volumeID;
}
];
@ -115,17 +137,11 @@ in
# Create the ISO image.
system.build.isoImage = import ../../../lib/make-iso9660-image.nix {
inherit (pkgs) stdenv perl cdrkit pathsFromGraph;
#isoName = "${relName}-${platform}.iso";
inherit (config.isoImage) isoName compressImage volumeID contents storeContents;
bootable = true;
bootImage = "/boot/grub/stage2_eltorito";
#compressImage = ...;
volumeID = cdLabel;
contents = config.isoImage.contents;
storeContents = config.isoImage.storeContents;
};
# After booting, register the contents of the Nix store on the CD in