diff --git a/kernel.spec.in b/kernel.spec.in index 877c080..14e1c8c 100644 --- a/kernel.spec.in +++ b/kernel.spec.in @@ -404,6 +404,7 @@ cp -a %buildroot/lib/firmware/%kernelrelease %buildroot%vm_install_dir/modules/f rm -f %buildroot%vm_install_dir/modules/%kernelrelease/build cp -a %buildroot/%src_install_dir %buildroot%vm_install_dir/modules/%kernelrelease/build +%if 0%{?fedora} >= 25 # include kernel+initramfs also inside modules.img, for direct kernel boot with # stubdomain cp %buildroot%vm_install_dir/vmlinuz %buildroot%vm_install_dir/modules/ @@ -416,6 +417,7 @@ PATH="/sbin:$PATH" mkfs.ext3 -d %buildroot%vm_install_dir/modules \ -U dcee2318-92bd-47a5-a15d-e79d1412cdce \ %buildroot%vm_install_dir/modules.img 500M rm -rf %buildroot%vm_install_dir/modules +%endif # remove files that will be auto generated by depmod at rpm -i time for i in alias alias.bin ccwmap dep dep.bin ieee1394map inputmap isapnpmap ofmap pcimap seriomap symbols symbols.bin usbmap @@ -526,6 +528,21 @@ Qubes domU kernel. %post qubes-vm +%if 0%{?fedora} < 25 +mkdir /tmp/qubes-modules-%kernelrelease +truncate -s 500M /tmp/qubes-modules-%kernelrelease.img +mkfs -t ext3 -F /tmp/qubes-modules-%kernelrelease.img > /dev/null +mount /tmp/qubes-modules-%kernelrelease.img /tmp/qubes-modules-%kernelrelease -o loop +cp -a -t /tmp/qubes-modules-%kernelrelease %vm_install_dir/modules/%kernelrelease +mkdir /tmp/qubes-modules-%kernelrelease/firmware +cp -a -t /tmp/qubes-modules-%kernelrelease/firmware %vm_install_dir/modules/firmware/%kernelrelease +cp %vm_install_dir/vmlinuz /tmp/qubes-modules-%kernelrelease/ +cp %vm_install_dir/initramfs /tmp/qubes-modules-%kernelrelease/ +umount /tmp/qubes-modules-%kernelrelease +rmdir /tmp/qubes-modules-%kernelrelease +mv /tmp/qubes-modules-%kernelrelease.img %vm_install_dir/modules.img +%endif + %if "%{name_suffix}" == "" # Set kernel as default VM kernel if we are the default package. @@ -552,9 +569,16 @@ exit 0 %files qubes-vm %defattr(-, root, root) %dir %vm_install_dir +%if 0%{?fedora} < 25 +%ghost %attr(0644, root, root) %vm_install_dir/modules.img +%else %attr(0644, root, root) %vm_install_dir/modules.img +%endif %attr(0644, root, root) %vm_install_dir/initramfs %attr(0644, root, root) %vm_install_dir/vmlinuz +%if 0%{?fedora} < 25 +%vm_install_dir/modules +%endif %attr(0644, root, root) %vm_install_dir/default-kernelopts-common.txt %changelog