From 9b513c833b77881c92b2ee6a5b7631b66dfcc323 Mon Sep 17 00:00:00 2001 From: Wenlong Zhang Date: Thu, 7 Dec 2023 07:13:53 +0000 Subject: [PATCH] add loongarch64 support for lorax-templates-anolis --- ...4-support-for-lorax-templates-anolis.patch | 266 ++++++++++++++++++ lorax-templates-anolis.spec | 6 +- 2 files changed, 271 insertions(+), 1 deletion(-) create mode 100644 1014-add-loongarch64-support-for-lorax-templates-anolis.patch diff --git a/1014-add-loongarch64-support-for-lorax-templates-anolis.patch b/1014-add-loongarch64-support-for-lorax-templates-anolis.patch new file mode 100644 index 0000000..26075de --- /dev/null +++ b/1014-add-loongarch64-support-for-lorax-templates-anolis.patch @@ -0,0 +1,266 @@ +From e6c244af46b6edc40244bc632b9b34d2bd4301cf Mon Sep 17 00:00:00 2001 +From: Wenlong Zhang +Date: Thu, 7 Dec 2023 07:12:16 +0000 +Subject: [PATCH] add loongarch64 support for lorax-templates-anolis + +--- + 80-anolis/config_files/loongarch64/boot.cfg | 13 ++ + .../config_files/loongarch64/grub2-efi.cfg | 27 ++++ + 80-anolis/efi.tmpl | 7 +- + 80-anolis/loongarch64.tmpl | 146 ++++++++++++++++++ + 80-anolis/runtime-install.tmpl | 7 + + 5 files changed, 199 insertions(+), 1 deletion(-) + create mode 100644 80-anolis/config_files/loongarch64/boot.cfg + create mode 100644 80-anolis/config_files/loongarch64/grub2-efi.cfg + create mode 100644 80-anolis/loongarch64.tmpl + +diff --git a/80-anolis/config_files/loongarch64/boot.cfg b/80-anolis/config_files/loongarch64/boot.cfg +new file mode 100644 +index 0000000..c07d6ea +--- /dev/null ++++ b/80-anolis/config_files/loongarch64/boot.cfg +@@ -0,0 +1,13 @@ ++timeout 5 ++showmenu 1 ++default 0 ++ ++title Install @PRODUCT@ @VERSION@ (USB) ++ kernel (usb0,0)@KERNELPATH@ ++ initrd (usb0,0)@INITRDPATH@ ++ args @ROOT@ rhgb ++ ++title Install @PRODUCT@ @VERSION@ (SATA-CD) ++ kernel (cd0,0)@KERNELPATH@ ++ initrd (cd0,0)@INITRDPATH@ ++ args @ROOT@ rhgb +diff --git a/80-anolis/config_files/loongarch64/grub2-efi.cfg b/80-anolis/config_files/loongarch64/grub2-efi.cfg +new file mode 100644 +index 0000000..250d48b +--- /dev/null ++++ b/80-anolis/config_files/loongarch64/grub2-efi.cfg +@@ -0,0 +1,27 @@ ++ ++set default="0" ++ ++function load_video { ++ insmod efi_gop ++ insmod efi_uga ++ insmod video_bochs ++ insmod video_cirrus ++ insmod all_video ++} ++ ++load_video ++set gfxpayload=keep ++insmod gzio ++insmod part_gpt ++insmod ext2 ++ ++set timeout=60 ++### END /etc/grub.d/00_header ### ++ ++search --no-floppy --set=root -l '@ISOLABEL@' ++ ++### BEGIN /etc/grub.d/10_linux ### ++menuentry 'Install @PRODUCT@ @VERSION@' --class fedora --class gnu-linux --class gnu --class os { ++ linux @KERNELPATH@ @ROOT@ quiet ++ initrd @INITRDPATH@ ++} +diff --git a/80-anolis/efi.tmpl b/80-anolis/efi.tmpl +index bb1aa4f..5e43ee6 100644 +--- a/80-anolis/efi.tmpl ++++ b/80-anolis/efi.tmpl +@@ -7,7 +7,7 @@ APPLE_EFI_DISKNAME=inroot+"/usr/share/pixmaps/bootloader/fedora-media.vol" + + mkdir ${EFIBOOTDIR} + mkdir ${EFIBOOTDIR}/fonts/ +-%if efiarch64: ++%if efiarch64 and efiarch64 != 'LOONGARCH64': + install boot/efi/EFI/*/shim${efiarch64|lower}.efi ${EFIBOOTDIR}/BOOT${efiarch64}.EFI + install boot/efi/EFI/*/mm${efiarch64|lower}.efi ${EFIBOOTDIR}/ + install boot/efi/EFI/*/gcd${efiarch64|lower}.efi ${EFIBOOTDIR}/grub${efiarch64|lower}.efi +@@ -17,6 +17,11 @@ install boot/efi/EFI/*/shim${efiarch32|lower}.efi ${EFIBOOTDIR}/BOOT${efiarch32} + install boot/efi/EFI/*/mm${efiarch32|lower}.efi ${EFIBOOTDIR}/ + install boot/efi/EFI/*/gcd${efiarch32|lower}.efi ${EFIBOOTDIR}/grub${efiarch32|lower}.efi + %endif ++%if efiarch64 == 'LOONGARCH64': ++install boot/efi/EFI/*/grubloongarch64.efi ${EFIBOOTDIR}/BOOT${efiarch64}.EFI ++install boot/efi/EFI/*/grubloongarch64.efi ${EFIBOOTDIR}/BOOTLOONGARCH.EFI ++install boot/efi/EFI/*/grubloongarch64.efi ${EFIBOOTDIR}/grub${efiarch64|lower}.efi ++%endif + install boot/grub2/fonts/unicode.pf2 ${EFIBOOTDIR}/fonts/ + + ## actually make the EFI images +diff --git a/80-anolis/loongarch64.tmpl b/80-anolis/loongarch64.tmpl +new file mode 100644 +index 0000000..c1a2988 +--- /dev/null ++++ b/80-anolis/loongarch64.tmpl +@@ -0,0 +1,146 @@ ++<%page args="kernels, runtime_img, basearch, inroot, outroot, product, isolabel"/> ++<% ++configdir="tmp/config_files/loongarch64" ++PXEBOOTDIR="images/pxeboot" ++KERNELDIR=PXEBOOTDIR ++STAGE2IMG="images/install.img" ++LORAXDIR="usr/share/lorax/" ++ ++from os.path import basename ++%> ++ ++## Test ${runtime_img} to see if udf is needed ++<% ++ import os ++ from pylorax.sysutils import joinpaths ++ if os.stat(joinpaths(inroot, runtime_img)).st_size >= 4*1024**3: ++ udfargs = "-allow-limited-size" ++ else: ++ udfargs = "" ++%> ++ ++mkdir images ++install ${runtime_img} ${STAGE2IMG} ++treeinfo stage2 mainimage ${STAGE2IMG} ++ ++## install kernels ++mkdir ${KERNELDIR} ++%for kernel in kernels: ++ ## normal loongarch64 ++ 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/*/grubloongarch64.efi"): ++ <% ++ efigraft="EFI/BOOT={0}/EFI/BOOT".format(outroot) ++ images = ["images/efiboot.img"] ++ EFIBOOTDIR="EFI/BOOT" ++ %> ++ %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="kernels=kernels, configdir=configdir, KERNELDIR=KERNELDIR, efiarch32=efiarch32, efiarch64=efiarch64, isolabel=isolabel"/> ++ ++ mkdir ${EFIBOOTDIR} ++ mkdir ${EFIBOOTDIR}/fonts/ ++ ++ install boot/efi/EFI/*/grubloongarch64.efi ${EFIBOOTDIR}/BOOTLOONGARCH.EFI ++ install boot/efi/EFI/*/grubloongarch64.efi ${EFIBOOTDIR}/BOOTLOONGARCH64.EFI ++ install boot/efi/EFI/*/fonts/unicode.pf2 ${EFIBOOTDIR}/fonts/ ++ ++ ## actually make the EFI images ++ ${make_efiboot("images/efiboot.img")} ++ ++ <%def name="make_efiboot(img, include_kernel=False, disk=False, imgtype='default')"> ++ <% ++ kdir = EFIBOOTDIR if include_kernel else KERNELDIR ++ eficonf = "%s/grub.cfg" % (EFIBOOTDIR, ) ++ args = "--label=ANACONDA --debug" ++ if disk: args += " --disk" ++ %> ++ %if include_kernel: ++ copy ${KERNELDIR}/vmlinuz ${EFIBOOTDIR} ++ copy ${KERNELDIR}/initrd.img ${EFIBOOTDIR} ++ %endif ++ install ${configdir}/grub2-efi.cfg ${eficonf} ++ replace @PRODUCT@ '${product.name}' ${eficonf} ++ replace @VERSION@ ${product.version} ${eficonf} ++ replace @KERNELNAME@ vmlinuz ${eficonf} ++ replace @KERNELPATH@ /${kdir}/vmlinuz ${eficonf} ++ replace @INITRDPATH@ /${kdir}/initrd.img ${eficonf} ++ replace @ISOLABEL@ '${isolabel}' ${eficonf} ++ %if disk: ++ replace @ROOT@ inst.stage2=hd:LABEL=ANACONDA ${eficonf} ++ %else: ++ replace @ROOT@ 'inst.stage2=hd:LABEL=${isolabel|udev}' ${eficonf} ++ %endif ++ runcmd mkefiboot ${args} ${outroot}/${EFIBOOTDIR} ${outroot}/${img} ++ %if include_kernel: ++ remove ${EFIBOOTDIR}/vmlinuz ++ remove ${EFIBOOTDIR}/initrd.img ++ %endif ++ ++ ++ ## Loongson PMON boot.cfg ++ <% ++ pmonbootdir = "boot" ++ kdir = KERNELDIR ++ bootconf = "%s/boot.cfg" % (pmonbootdir,) ++ args = "--label=ANACONDA --debug" ++ if disk: args += " --disk" ++ %> ++ ++ ##pmon bios ++ mkdir ${pmonbootdir} ++ install ${configdir}/boot.cfg ${bootconf} ++ ++ replace @PRODUCT@ '${product.name}' ${bootconf} ++ replace @VERSION@ ${product.version} ${bootconf} ++ replace @KERNELPATH@ /${kdir}/vmlinuz ${bootconf} ++ replace @INITRDPATH@ /${kdir}/initrd.img ${bootconf} ++ replace @ROOT@ 'inst.stage2=hd:LABEL=${isolabel|udev}' ${bootconf} ++%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/*/grubloongarch64.efi"): ++## make boot.iso ++runcmd mkisofs -o ${outroot}/images/boot.iso \ ++ ${efiargs} -R -J -V '${isolabel}' ${udfargs} \ ++ -graft-points -full-iso9660-filenames \ ++ ${KERNELDIR}=${outroot}/${KERNELDIR} \ ++ ${STAGE2IMG}=${outroot}/${STAGE2IMG} \ ++ ${efigraft} ${filegraft} ++treeinfo images-${basearch} boot.iso images/boot.iso ++%endif +diff --git a/80-anolis/runtime-install.tmpl b/80-anolis/runtime-install.tmpl +index 474523d..25ef0f8 100644 +--- a/80-anolis/runtime-install.tmpl ++++ b/80-anolis/runtime-install.tmpl +@@ -74,6 +74,13 @@ installpkg glibc-all-langpacks + %if basearch == "s390x": + installpkg lsscsi s390utils-base s390utils-cmsfs-fuse s390utils-hmcdrvfs + %endif ++%if basearch == "loongarch64": ++ installpkg grub2-efi-loongarch64-cdboot grubby grub2-tools-minimal ++ installpkg grub2-common grub2-tools-extra grubby-deprecated grub2-tools grub2-efi-loongarch64 ++ installpkg efibootmgr ++ installpkg avahi-libs avahi-glib ++%endif ++ + + ## yay, plymouth + installpkg plymouth +-- +2.41.0 + diff --git a/lorax-templates-anolis.spec b/lorax-templates-anolis.spec index 9b03e1a..3ddcac6 100644 --- a/lorax-templates-anolis.spec +++ b/lorax-templates-anolis.spec @@ -1,4 +1,4 @@ -%define anolis_release 14 +%define anolis_release 15 Name: lorax-templates-anolis Version: 37.0 @@ -24,6 +24,7 @@ Patch1010: 1010-remove-ia32-package.patch Patch1011: 1011-remove-the-nm-applet.patch Patch1012: 1012-add-kmod-ast-in-anaconda.patch Patch1013: 1013-remove-strace-in-loongarch.patch +Patch1014: 1014-add-loongarch64-support-for-lorax-templates-anolis.patch # Where are these supposed to end up? @@ -49,6 +50,9 @@ cp -a 80-anolis/* $RPM_BUILD_ROOT/%{templatedir} %{templatedir}/* %changelog +* Wed Dec 6 2023 Wenlong Zhang - 37.0.1-15 +- add loongarch64 support for lorax-templates-anolis + * Tue Dec 05 2023 happy_orange - 37.0.1-14 - remove strace in loongarch -- Gitee