9381205bbd
xorrisofs needs to use iso-level 3 when creating images with large files. This adds tests to all the relevant templates, just like we used to do for udf and mkisofs. (cherry picked from commit 2264496fe85cedae77af35b509b140a5811d5743)
87 lines
2.7 KiB
Cheetah
87 lines
2.7 KiB
Cheetah
<%page args="kernels, runtime_img, basearch, inroot, outroot, product, isolabel"/>
|
|
<%
|
|
configdir="tmp/config_files/aarch64"
|
|
PXEBOOTDIR="images/pxeboot"
|
|
KERNELDIR=PXEBOOTDIR
|
|
STAGE2IMG="images/install.img"
|
|
LORAXDIR="usr/share/lorax/"
|
|
|
|
import os
|
|
from os.path import basename
|
|
from pylorax.sysutils import joinpaths
|
|
|
|
# Test the runtime_img, if it is > 4GiB we need to set -iso-level to 3
|
|
if os.stat(joinpaths(inroot, runtime_img)).st_size >= 4*1024**3:
|
|
isoargs = "-iso-level 3"
|
|
else:
|
|
isoargs = ""
|
|
%>
|
|
|
|
mkdir images
|
|
install ${runtime_img} ${STAGE2IMG}
|
|
treeinfo stage2 mainimage ${STAGE2IMG}
|
|
|
|
## install kernels
|
|
mkdir ${KERNELDIR}
|
|
%for kernel in kernels:
|
|
## normal aarch64
|
|
installkernel images-${basearch} ${kernel.path} ${KERNELDIR}/vmlinuz
|
|
installinitrd images-${basearch} ${kernel.initrd.path} ${KERNELDIR}/initrd.img
|
|
%endfor
|
|
|
|
#FIXME: this will need adjusted when we have a real bootloader.
|
|
## WHeeeeeeee, EFI.
|
|
## We could remove the basearch restriction someday..
|
|
<% efiargs=""; efigraft="" %>
|
|
%if exists("boot/efi/EFI/*/gcdaa64.efi"):
|
|
<%
|
|
efiarch32 = None
|
|
efiarch64 = 'AA64'
|
|
efigraft="EFI/BOOT={0}/EFI/BOOT".format(outroot)
|
|
images = ["images/efiboot.img"]
|
|
%>
|
|
%for img in images:
|
|
<%
|
|
efiargs += " -eltorito-alt-boot -e {0} -no-emul-boot".format(img)
|
|
efigraft += " {0}={1}/{0}".format(img,outroot)
|
|
%>
|
|
treeinfo images-${basearch} ${img|basename} ${img}
|
|
%endfor
|
|
<%include file="efi.tmpl" args="configdir=configdir, KERNELDIR=KERNELDIR, efiarch32=efiarch32, efiarch64=efiarch64, isolabel=isolabel"/>
|
|
%endif
|
|
|
|
# Create optional product.img and updates.img
|
|
<% filegraft=""; images=["product", "updates"] %>
|
|
%for img in images:
|
|
%if exists("%s/%s/" % (LORAXDIR, img)):
|
|
installimg ${LORAXDIR}/${img}/ images/${img}.img
|
|
treeinfo images-${basearch} ${img}.img images/${img}.img
|
|
<% filegraft += " images/{0}.img={1}/images/{0}.img".format(img, outroot) %>
|
|
%endif
|
|
%endfor
|
|
|
|
# Inherit iso-graft/ if it exists from external templates
|
|
<%
|
|
import os
|
|
if os.path.exists(workdir + "/iso-graft"):
|
|
filegraft += " " + workdir + "/iso-graft"
|
|
%>
|
|
|
|
# Add the license files
|
|
%for f in glob("/usr/share/licenses/*-release/*"):
|
|
install ${f} ${f|basename}
|
|
<% filegraft += " {0}={1}/{0}".format(basename(f), outroot) %>
|
|
%endfor
|
|
|
|
%if exists("boot/efi/EFI/*/gcdaa64.efi"):
|
|
## make boot.iso
|
|
runcmd xorrisofs ${isoargs} -o ${outroot}/images/boot.iso \
|
|
${efiargs} -R -J -V '${isolabel}' \
|
|
-graft-points \
|
|
.discinfo=${outroot}/.discinfo \
|
|
${KERNELDIR}=${outroot}/${KERNELDIR} \
|
|
${STAGE2IMG}=${outroot}/${STAGE2IMG} \
|
|
${efigraft} ${filegraft}
|
|
treeinfo images-${basearch} boot.iso images/boot.iso
|
|
%endif
|