a3e1a275ff
fedup is deprecated and abandoned. Let's save time and disk by not building `upgrade.img` when nothing is going to use it anymore. For the record, performing upgrades using an initramfs from the new system turns out to be fragile and hard to support: * dracut initramfs isn't generic enough to handle booting all systems (e.g. missing vconsole.conf means you get keymaps wrong, so users can't unlock encrypted disks) * The ABI differences between the two versions of plymouth, systemd, etc. requires nasty workarounds at best and causes nightmarish systemd crashes at worst This patch removes all the code that built and installed `upgrade.img`. For backwards compatibility, the API retains the `doupgrade` keyword argument, and the `--noupgrade` flag is still accepted.
106 lines
3.8 KiB
Cheetah
106 lines
3.8 KiB
Cheetah
<%page args="kernels, runtime_img, runtime_base, basearch, outroot, product, isolabel"/>
|
|
<%
|
|
configdir="tmp/config_files/x86"
|
|
SYSLINUXDIR="usr/share/syslinux"
|
|
PXEBOOTDIR="images/pxeboot"
|
|
STAGE2IMG="images/install.img"
|
|
BOOTDIR="isolinux"
|
|
KERNELDIR=PXEBOOTDIR
|
|
LORAXDIR="usr/share/lorax/"
|
|
|
|
## Don't allow spaces or escape characters in the iso label
|
|
def valid_label(ch):
|
|
return ch.isalnum() or ch == '_'
|
|
|
|
isolabel = ''.join(ch if valid_label(ch) else '-' for ch in isolabel)
|
|
%>
|
|
|
|
mkdir images
|
|
install ${runtime_img} ${STAGE2IMG}
|
|
treeinfo stage2 mainimage images/${runtime_base}
|
|
|
|
## install bootloader and config files
|
|
mkdir ${BOOTDIR}
|
|
install ${SYSLINUXDIR}/isolinux.bin ${BOOTDIR}
|
|
install ${SYSLINUXDIR}/vesamenu.c32 ${BOOTDIR}
|
|
install ${SYSLINUXDIR}/ldlinux.c32 ${BOOTDIR}
|
|
install ${SYSLINUXDIR}/libcom32.c32 ${BOOTDIR}
|
|
install ${SYSLINUXDIR}/libutil.c32 ${BOOTDIR}
|
|
install ${configdir}/isolinux.cfg ${BOOTDIR}
|
|
install ${configdir}/boot.msg ${BOOTDIR}
|
|
install ${configdir}/grub.conf ${BOOTDIR}
|
|
install usr/share/anaconda/boot/syslinux-splash.png ${BOOTDIR}/splash.png
|
|
install boot/memtest* ${BOOTDIR}/memtest
|
|
|
|
## configure bootloader
|
|
replace @VERSION@ ${product.version} ${BOOTDIR}/grub.conf ${BOOTDIR}/isolinux.cfg ${BOOTDIR}/*.msg
|
|
replace @PRODUCT@ '${product.name}' ${BOOTDIR}/grub.conf ${BOOTDIR}/isolinux.cfg ${BOOTDIR}/*.msg
|
|
replace @ROOT@ 'inst.stage2=hd:LABEL=${isolabel|udev}' ${BOOTDIR}/isolinux.cfg
|
|
|
|
## install kernels
|
|
mkdir ${KERNELDIR}
|
|
%for kernel in kernels:
|
|
%if kernel.flavor:
|
|
## i386 PAE
|
|
installkernel images-xen ${kernel.path} ${KERNELDIR}/vmlinuz-${kernel.flavor}
|
|
installinitrd images-xen ${kernel.initrd.path} ${KERNELDIR}/initrd-${kernel.flavor}.img
|
|
%else:
|
|
## normal i386, x86_64
|
|
installkernel images-${basearch} ${kernel.path} ${KERNELDIR}/vmlinuz
|
|
installinitrd images-${basearch} ${kernel.initrd.path} ${KERNELDIR}/initrd.img
|
|
%endif
|
|
%endfor
|
|
|
|
hardlink ${KERNELDIR}/vmlinuz ${BOOTDIR}
|
|
hardlink ${KERNELDIR}/initrd.img ${BOOTDIR}
|
|
%if basearch == 'x86_64':
|
|
treeinfo images-xen kernel ${KERNELDIR}/vmlinuz
|
|
treeinfo images-xen initrd ${KERNELDIR}/initrd.img
|
|
%endif
|
|
|
|
## WHeeeeeeee, EFI.
|
|
## We could remove the basearch restriction someday..
|
|
<% efiargs=""; efigraft=""; efihybrid="" %>
|
|
%if exists("boot/efi/EFI/*/gcdx64.efi") and basearch != 'i386':
|
|
<%
|
|
efiarch = 'X64' if basearch=='x86_64' else 'IA32'
|
|
efigraft="EFI/BOOT={0}/EFI/BOOT".format(outroot)
|
|
images = ["images/efiboot.img"]
|
|
if domacboot:
|
|
images.append("images/macboot.img")
|
|
for img in images:
|
|
efiargs += " -eltorito-alt-boot -e {0} -no-emul-boot".format(img)
|
|
efigraft += " {0}={1}/{0}".format(img,outroot)
|
|
efihybrid = "--uefi --mac" if domacboot else "--uefi"
|
|
%>
|
|
<%include file="efi.tmpl" args="configdir=configdir, KERNELDIR=KERNELDIR, efiarch=efiarch, isolabel=isolabel"/>
|
|
%endif
|
|
|
|
# Create optional product.img and updates.img
|
|
<% imggraft=""; images=["product", "updates"] %>
|
|
%for img in images:
|
|
%if exists("%s/%s/" % (LORAXDIR, img)):
|
|
installimg ${LORAXDIR}/${img}/ images/${img}.img
|
|
<% imggraft += " 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"):
|
|
imggraft += " " + workdir + "/iso-graft"
|
|
%>
|
|
|
|
## make boot.iso
|
|
runcmd mkisofs -o ${outroot}/images/boot.iso \
|
|
-b ${BOOTDIR}/isolinux.bin -c ${BOOTDIR}/boot.cat \
|
|
-boot-load-size 4 -boot-info-table -no-emul-boot \
|
|
${efiargs} -R -J -V '${isolabel}' -T -graft-points \
|
|
${STAGE2IMG}=${outroot}/${STAGE2IMG} \
|
|
${BOOTDIR}=${outroot}/${BOOTDIR} \
|
|
${KERNELDIR}=${outroot}/${KERNELDIR} \
|
|
${efigraft} ${imggraft}
|
|
runcmd isohybrid ${efihybrid} ${outroot}/images/boot.iso
|
|
treeinfo images-${basearch} boot.iso images/boot.iso
|