0236440581
move arch-specific stuff to arch-specific subdirs and move all the common stuff to a subdir named 'common'. Also, rename '.profile' and '.bash_history' so you actually see them when you 'ls' the 'common' dir. also added some helpful(?) comments to the templates.
102 lines
3.4 KiB
Cheetah
102 lines
3.4 KiB
Cheetah
<%page args="kernels, runtime_img, basearch, libdir, inroot, outroot, product, isolabel"/>
|
|
<%
|
|
configdir="tmp/config_files/ppc"
|
|
BOOTDIR="ppc"
|
|
LIVEDIR="LiveOS"
|
|
MACDIR=BOOTDIR+"/mac"
|
|
NETBOOTDIR="images/netboot"
|
|
|
|
WRAPPER="usr/sbin/wrapper"
|
|
WRAPPER_DATA="usr/"+libdir+"/kernel-wrapper"
|
|
|
|
bitsizes = set()
|
|
prepboot = ""
|
|
%>
|
|
|
|
mkdir ${LIVEDIR}
|
|
install ${runtime_img} ${LIVEDIR}/squashfs.img
|
|
|
|
## install bootloaders
|
|
mkdir ${BOOTDIR}
|
|
## basic ppc stuff
|
|
install ${configdir}/bootinfo.txt ${BOOTDIR}
|
|
install boot/efika.forth ${BOOTDIR}
|
|
## boot dir for CHRP systems
|
|
mkdir ${BOOTDIR}/chrp
|
|
install usr/lib/yaboot/yaboot ${BOOTDIR}/chrp
|
|
runcmd ${inroot}/usr/lib/yaboot/addnote ${outroot}/${BOOTDIR}/chrp/yaboot
|
|
## boot dir for PowerMacs
|
|
mkdir ${MACDIR}
|
|
install usr/lib/yaboot/yaboot ${MACDIR}
|
|
install ${configdir}/ofboot.b ${MACDIR}
|
|
|
|
## NOTE: PPC is kind of funky. There's three possible "arch" setups here:
|
|
## ppc, ppc64, and 'hybrid' (ppc userspace, both ppc & ppc64 kernels).
|
|
|
|
## Install kernel and bootloader config (in separate places for each arch)
|
|
%for kernel in kernels:
|
|
<%
|
|
bits = 64 if kernel.arch == "ppc64" else 32
|
|
## separate dirs/images for each arch
|
|
KERNELDIR=BOOTDIR+"/ppc%s" % bits
|
|
NETIMG=NETBOOTDIR+"/ppc%s.img" % bits
|
|
bitsizes.add(bits)
|
|
%>
|
|
## install kernel
|
|
mkdir ${KERNELDIR} ${NETBOOTDIR}
|
|
installkernel images-${kernel.arch} ${kernel.path} ${KERNELDIR}/vmlinuz
|
|
installinitrd images-${kernel.arch} ${kernel.initrd.path} ${KERNELDIR}/initrd.img
|
|
|
|
## install bootloader config
|
|
install ${configdir}/yaboot.conf.in ${KERNELDIR}/yaboot.conf
|
|
replace @BITS@ ${bits} ${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
|
|
|
|
## copy correct yaboot.conf into /etc
|
|
mkdir etc
|
|
%if len(bitsizes) == 2:
|
|
## hybrid - use the magic hybrid config
|
|
install ${configdir}/yaboot.conf.3264 etc/yaboot.conf
|
|
%else:
|
|
## single arch - use the yaboot.conf we created above
|
|
copy ${KERNELDIR}/yaboot.conf etc/yaboot.conf
|
|
%endif
|
|
|
|
## configure bootloader
|
|
replace @PRODUCT@ ${product.name} etc/yaboot.conf
|
|
replace @VERSION@ ${product.version} etc/yaboot.conf
|
|
replace @ROOT@ 'root=live:CDLABEL=${isolabel|udev}' etc/yaboot.conf
|
|
|
|
## make boot.iso
|
|
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 '${isolabel}' \
|
|
-volset "${product.version}" -volset-size 1 -volset-seqno 1 \
|
|
-hfs-volid ${product.version} -hfs-bless ${outroot}/${MACDIR} \
|
|
-map ${inroot}/${configdir}/mapping \
|
|
-no-desktop -allow-multidot -graft-points \
|
|
etc=${outroot}/etc \
|
|
${BOOTDIR}=${outroot}/${BOOTDIR} \
|
|
${NETBOOTDIR}=${outroot}/${NETBOOTDIR} \
|
|
${LIVEDIR}=${outroot}/${LIVEDIR}
|
|
|
|
%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
|