<%page args="kernels, runtime_img, basearch, libdir, inroot, outroot, product"/> <% ANABOOTDIR="tmp/config_files" BOOTDIR="ppc" MACDIR=BOOTDIR+"/mac" NETBOOTDIR="images/netboot" WRAPPER="usr/sbin/wrapper" WRAPPER_DATA="usr/"+libdir+"/kernel-wrapper" MAPPING=ANABOOTDIR+"/mapping" bitsizes = set() prepboot = "" %> mkdir images install ${runtime_img} images/install.img mkdir ${BOOTDIR} ${BOOTDIR}/chrp etc install ${ANABOOTDIR}/bootinfo.txt ${BOOTDIR} install boot/efika.forth ${BOOTDIR} install usr/lib/yaboot/yaboot ${BOOTDIR}/chrp ## boot dir for PowerMacs mkdir ${MACDIR} install usr/lib/yaboot/yaboot ${MACDIR} install ${ANABOOTDIR}/ofboot.b ${MACDIR} %for kernel in kernels: <% bits = 64 if kernel.arch == "ppc64" else 32 KERNELDIR=BOOTDIR+"/ppc%s" % bits NETIMG=NETBOOTDIR+"/ppc%s.img" % bits bitsizes.add(bits) %> mkdir ${KERNELDIR} ${NETBOOTDIR} install ${ANABOOTDIR}/yaboot.conf.in ${KERNELDIR}/yaboot.conf installkernel images-${kernel.arch} ${kernel.path} ${KERNELDIR}/vmlinuz installinitrd images-${kernel.arch} ${kernel.initrd.path} ${KERNELDIR}/initrd.img replace @PRODUCT@ ${product.name} ${KERNELDIR}/yaboot.conf replace @VERSION@ ${product.version} ${KERNELDIR}/yaboot.conf replace @BITS@ ${bits} ${KERNELDIR}/yaboot.conf replace @ROOT@ root=live:CDLABEL=PBOOT ${KERNELDIR}/yaboot.conf ## kernel-wrapper magic that makes the netboot combined ppc{32,64}.img runcmd ${inroot}/${WRAPPER} -p of \ -D ${inroot}/${WRAPPER_DATA} \ -i ${outroot}/${KERNELDIR}/initrd.img \ ${outroot}/${KERNELDIR}/vmlinuz \ -o ${outroot}/${NETIMG} treeinfo images-${kernel.arch} zimage ${NETIMG} ## PReP is 32-bit only %if bits == 32: ## Yes, this is supposed to be a relative path <% prepboot="-prep-boot " + NETIMG %> %endif %endfor runcmd ${inroot}/usr/lib/yaboot/addnote ${outroot}/${BOOTDIR}/chrp/yaboot ## copy yaboot.conf into /etc %if len(bitsizes) == 2: ## magic ppc biarch tree! we need magic ppc biarch config. install ${ANABOOTDIR}/yaboot.conf.3264 etc/yaboot.conf replace @PRODUCT@ ${product.name} etc/yaboot.conf replace @VERSION@ ${product.version} etc/yaboot.conf replace @ROOT@ root=live:CDLABEL=PBOOT etc/yaboot.conf %else: copy ${KERNELDIR}/yaboot.conf etc/yaboot.conf %endif runcmd mkisofs -o ${outroot}/images/boot.iso -chrp-boot -U \ ${prepboot} -part -hfs -T -r -l -J \ -A "${product.name} ${product.version}" -sysid PPC -V PBOOT \ -volset "${product.version}" -volset-size 1 -volset-seqno 1 \ -hfs-volid ${product.version} -hfs-bless ${outroot}/${MACDIR} \ -map ${inroot}/${MAPPING} \ -no-desktop -allow-multidot -graft-points \ etc=${outroot}/etc \ ${BOOTDIR}=${outroot}/${BOOTDIR} \ ${NETBOOTDIR}=${outroot}/${NETBOOTDIR} \ LiveOS/squashfs.img=${outroot}/images/install.img %if len(bitsizes) == 2: treeinfo images-ppc boot.iso images/boot.iso treeinfo images-ppc64 boot.iso images/boot.iso %else: treeinfo images-${kernel.arch} boot.iso images/boot.iso %endif