From 05c26844ca961a7ce8fda97e54295bd58091ac2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= Date: Tue, 27 Aug 2013 00:51:13 +0200 Subject: [PATCH] Enable the user choice of kernel for running installer (#581) Unfortunately single "install" command installs only one version of package, even if multiple matches, so must list all versions explicitly. Include all major releases from 3.2 to 3.11 to not require change it too often. Also exclude kernel from fedora repos to force use of qubes kernel. --- conf/qubes-kickstart.cfg | 4 ++-- .../templates/runtime-install.tmpl | 2 ++ lorax-templates-qubes/templates/x86.tmpl | 24 +++++++++++++++---- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/conf/qubes-kickstart.cfg b/conf/qubes-kickstart.cfg index c4c82da..21359f4 100644 --- a/conf/qubes-kickstart.cfg +++ b/conf/qubes-kickstart.cfg @@ -4,8 +4,8 @@ # (@base is added by default unless you add --nobase to %packages) # (default groups for the configured repos are added by --default) -repo --name=fedora --gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch --ignoregroups=true --mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-18&arch=$basearch -repo --name=fedora-updates --gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch --ignoregroups=true --mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f18&arch=$basearch +repo --name=fedora --gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch --ignoregroups=true --mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-18&arch=$basearch --excludepkgs=kernel,kernel-* +repo --name=fedora-updates --gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch --ignoregroups=true --mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f18&arch=$basearch --excludepkgs=kernel,kernel-* repo --name=installer --baseurl=file:///tmp/qubes-installer/yum/installer/ repo --name=qubes-dom0 --baseurl=file:///tmp/qubes-installer/yum/qubes-dom0/ repo --name=dom0-updates --baseurl=file:///tmp/qubes-installer/yum/dom0-updates/ diff --git a/lorax-templates-qubes/templates/runtime-install.tmpl b/lorax-templates-qubes/templates/runtime-install.tmpl index 797e708..b630a5a 100644 --- a/lorax-templates-qubes/templates/runtime-install.tmpl +++ b/lorax-templates-qubes/templates/runtime-install.tmpl @@ -17,6 +17,8 @@ installpkg firstaidkit-plugin-{passwd,key-recovery,mdadm-conf} ## kernel and firmware installpkg kernel +installpkg kernel-3.2* kernel-3.3* kernel-3.4* kernel-3.5* kernel-3.6* +installpkg kernel-3.7* kernel-3.8* kernel-3.9* kernel-3.10* kernel-3.11* %if basearch != "s390x": installpkg *-firmware installpkg b43-openfwwf diff --git a/lorax-templates-qubes/templates/x86.tmpl b/lorax-templates-qubes/templates/x86.tmpl index 84fb7d0..af4e639 100644 --- a/lorax-templates-qubes/templates/x86.tmpl +++ b/lorax-templates-qubes/templates/x86.tmpl @@ -24,14 +24,13 @@ 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: + # Use short kernel version because of ISO9660 filename length limitation + <% + shortkver = kernel.version.replace('.pvops.qubes','') + %> %if kernel.flavor: ## i386 PAE installkernel images-xen ${kernel.path} ${KERNELDIR}/vmlinuz-${kernel.flavor} @@ -47,8 +46,23 @@ mkdir ${KERNELDIR} installupgradeinitrd images-${basearch} ${kernel.upgrade.path} ${KERNELDIR}/upgrade.img %endif %endif + installkernel images-alt-${shortkver} ${kernel.path} ${BOOTDIR}/vmlinuz-${shortkver} + installinitrd images-alt-${shortkver} ${kernel.initrd.path} ${BOOTDIR}/initrd-${shortkver}.img + replace '@EXTRAKERNELS@' 'label kernel-${kernel.version}\n\ + menu indent count 5\n\ + menu label ^Install @PRODUCT@ using ${kernel.version} kernel\n\ + kernel mboot.c32\n\ + append xen.gz --- vmlinuz-${shortkver} @ROOT@ quiet --- initrd-${shortkver}.img\n\ + @EXTRAKERNELS@' ${BOOTDIR}/isolinux.cfg + %endfor +## 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 +replace @EXTRAKERNELS@ '' ${BOOTDIR}/isolinux.cfg + hardlink ${KERNELDIR}/vmlinuz ${BOOTDIR} hardlink ${KERNELDIR}/initrd.img ${BOOTDIR} %if doupgrade: