summaryrefslogtreecommitdiff
blob: d269bd1ad40f81e0a6c252e3ead00610cc78efdb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
function bundle_livecd($I, $W, &$opts) {
	$profile=new sql_gentoo_profile($opts['profile']);
	$headers=$profile->get_headers();
	if (strpos($headers['chost'], 'x86_64') === false)
		$minimaliso='/home/eitan/soc/install-x86-minimal-20090623.iso';
	else
		$minimaliso='/home/eitan/soc/install-amd64-minimal-20090625.iso';
	makedir("$I/boot");
	execute_command('Extract kernel, initrd, and squashfs from CD image ', LIB."/bkisofs-cli '$minimaliso' extract /isolinux/gentoo '$I/boot/kernel' extract /isolinux/gentoo.igz '$I/boot/initrd' extract /image.squashfs '$W/'");
	file_put_contents("$W/unsquashfs-files", "/lib64/modules\n/lib/modules\n");
	execute_command('Copy kernel modules from SquashFS to image', "unsquashfs -i -d '$I' -e '$W/unsquashfs-files' '$W/image.squashfs'");
	execute_command('Compress finished image to squashfs', "mksquashfs '$I' '$W/image.squashfs' -noappend -info");
	execute_command('Create ISO image', LIB."/bkisofs-cli '$minimaliso' replace /image.squashfs '$W/image.squashfs' write '$W/image.iso'");
/*	execute_command('Mount minimal CD image', "mount -o loop -t iso9660 '$minimaliso' '$W/tmp'");
	execute_command('Copy CD image to writable temp directory', "cp -va '$W/tmp' '$W/cd'");
	execute_command('Unmount CD image', "umount '$W/tmp'");
	execute_command('Copy kernel and initrd from CD to image', "cp -va '$W/cd/isolinux/gentoo' '$W/cd/isolinux/gentoo.igz' '$I/boot/'");
	file_put_contents("$W/unsquashfs-files", "/lib64/modules\n\lib\modules\n");
	execute_command('Copy kernel modules from SquashFS to image', "unsquashfs -i -d '$I' -e '$W/unsquashfs-files' '$W/cd/image.squashfs'");
	rename("$W/cd/image.squashfs", "$W/image.squashfs.old") || debug('Failed to move old SquashFS');
	execute_command('Compress finished image to squashfs', "mksquashfs '$I' '$W/cd/image.squashfs' -noappend -info");
	// TODO port the rest of /usr/lib/catalyst/targets/support/create-iso.sh to support other bootloaders
	// ISOLINUX bootloader
	// mkisofs -J -R -l ${mkisofs_zisofs_opts} -V "${clst_iso_volume_id}" -o ${1} -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table ${clst_target_path}
	execute_command('Create ISO image', "mkisofs -J -R -l -V 'Ingenue Build $build->id' -o '$W/image.iso' -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table '$W/cd'");*/
	return "$W/image.iso";
}
?>