f59057de2a
Since Fedora 30, license files are missing from the ISO filesystem
of live or installer images (including official builds). The source
path to these files changed when they were moved into a subpackage
named fedora-release-common (or generic-release-common).
Also, copy the license files from the installroot, rather than the
existing root filesystem.
(cherry picked from commit 7df94aed4d
)
90 lines
3.1 KiB
Cheetah
90 lines
3.1 KiB
Cheetah
<%page args="kernels, runtime_img, runtime_base, basearch, inroot, outroot"/>
|
|
<%
|
|
configdir="tmp/config_files/s390"
|
|
BOOTDIR="images"
|
|
KERNELDIR=BOOTDIR
|
|
INITRD_ADDRESS="0x02000000"
|
|
LORAXDIR="usr/share/lorax/"
|
|
MKS390IMAGE="/usr/bin/mk-s390image"
|
|
# The assumption seems to be that there is only one s390 kernel, ever
|
|
kernel = kernels[0]
|
|
|
|
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} images
|
|
treeinfo stage2 mainimage images/${runtime_base}
|
|
|
|
## install bootloader (such as it is) and bootloader config
|
|
install ${configdir}/redhat.exec ${BOOTDIR}
|
|
install ${configdir}/generic.prm ${BOOTDIR}
|
|
install ${configdir}/genericdvd.prm ${BOOTDIR}
|
|
install ${configdir}/cdboot.prm ${BOOTDIR}
|
|
install ${configdir}/generic.ins .
|
|
|
|
## configure bootloader
|
|
replace @INITRD_LOAD_ADDRESS@ ${INITRD_ADDRESS} generic.ins
|
|
replace @ROOT@ 'inst.stage2=hd:LABEL=${isolabel|udev}' ${BOOTDIR}/cdboot.prm
|
|
|
|
## install kernel
|
|
installkernel images-${basearch} ${kernel.path} ${KERNELDIR}/kernel.img
|
|
installinitrd images-${basearch} ${kernel.initrd.path} ${KERNELDIR}/initrd.img
|
|
|
|
## s390 needs some extra boot config
|
|
createaddrsize ${INITRD_ADDRESS} ${outroot}/${BOOTDIR}/initrd.img ${outroot}/${BOOTDIR}/initrd.addrsize
|
|
|
|
## s390 also has some special treeinfo data
|
|
treeinfo images-${basearch} initrd.addrsize ${BOOTDIR}/initrd.addrsize
|
|
treeinfo images-${basearch} generic.prm ${BOOTDIR}/generic.prm
|
|
treeinfo images-${basearch} genericdvd.prm ${BOOTDIR}/genericdvd.prm
|
|
treeinfo images-${basearch} generic.ins generic.ins
|
|
treeinfo images-${basearch} redhat.exec ${BOOTDIR}/redhat.exec
|
|
|
|
# Create optional product.img and updates.img in /images/
|
|
<% 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
|
|
%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-common/*"):
|
|
install ${f} ${f|basename}
|
|
<% filegraft += " {0}={1}/{0}".format(basename(f), outroot) %>
|
|
%endfor
|
|
|
|
## Make a combined kernel+initrd image for the iso
|
|
runcmd ${MKS390IMAGE} ${outroot}/${KERNELDIR}/kernel.img \
|
|
${outroot}/${BOOTDIR}/cdboot.img \
|
|
-r ${outroot}/${KERNELDIR}/initrd.img \
|
|
-p ${outroot}/${BOOTDIR}/cdboot.prm
|
|
|
|
## make boot.iso
|
|
runcmd xorrisofs ${isoargs} -o ${outroot}/images/boot.iso \
|
|
-b ${BOOTDIR}/cdboot.img -c ${BOOTDIR}/boot.cat \
|
|
-boot-load-size 4 -no-emul-boot \
|
|
-R -J -V '${isolabel}' -graft-points \
|
|
.discinfo=${outroot}/.discinfo \
|
|
generic.ins=${outroot}/generic.ins \
|
|
${BOOTDIR}=${outroot}/${BOOTDIR} \
|
|
${filegraft}
|
|
treeinfo images-${basearch} boot.iso images/boot.iso
|