diff --git a/0001-add-riscv64-support.patch b/0001-add-riscv64-support.patch new file mode 100644 index 0000000000000000000000000000000000000000..6efe8941f4598b7d4167b816fd3402aa9cd3ab64 --- /dev/null +++ b/0001-add-riscv64-support.patch @@ -0,0 +1,2902 @@ +From 71b502cc354ce0b16c8a5e73e4b8af5c49f66813 Mon Sep 17 00:00:00 2001 +From: ouuleilei +Date: Sun, 26 May 2024 13:37:21 +0800 +Subject: [PATCH] add riscv64 support + +--- + envmaker/config/compile_env_rpmlist.xml | 6 +- + envmaker/config/riscv64/openEuler_repo.conf | 17 + + isocut/config/riscv64/anaconda-ks.cfg | 371 ++++ + isocut/config/riscv64/rpmlist | 1 + + isocut/isocut.py | 7 + + .../config_files/riscv64/boot.msg | 5 + + .../config_files/riscv64/grub.conf | 13 + + .../config_files/riscv64/grub2-efi.cfg | 47 + + isomaker/80-openeuler/efi.tmpl | 14 +- + isomaker/80-openeuler/live/efi.tmpl | 4 + + isomaker/80-openeuler/live/riscv64.tmpl | 83 + + isomaker/80-openeuler/riscv64.tmpl | 76 + + isomaker/80-openeuler/runtime-cleanup.tmpl | 2 + + isomaker/80-openeuler/runtime-install.tmpl | 7 +- + isomaker/config/common/livecd/live/efi.tmpl | 5 + + isomaker/config/riscv64/desktop_normal.xml | 0 + .../livecd/live/config_files/riscv64/boot.msg | 5 + + .../live/config_files/riscv64/grub.conf | 9 + + .../live/config_files/riscv64/grub2-efi.cfg | 38 + + .../config/riscv64/livecd/live/riscv64.tmpl | 75 + + .../config/riscv64/livecd/livecd_riscv64.ks | 70 + + isomaker/config/riscv64/livecd/rpmlist | 112 ++ + isomaker/config/riscv64/normal.xml | 1569 +++++++++++++++++ + isomaker/config/riscv64/standard.conf | 6 + + isomaker/init.sh | 2 +- + isomaker/iso.sh | 18 +- + 26 files changed, 2544 insertions(+), 18 deletions(-) + create mode 100644 envmaker/config/riscv64/openEuler_repo.conf + create mode 100644 isocut/config/riscv64/anaconda-ks.cfg + create mode 100644 isocut/config/riscv64/rpmlist + create mode 100644 isomaker/80-openeuler/config_files/riscv64/boot.msg + create mode 100644 isomaker/80-openeuler/config_files/riscv64/grub.conf + create mode 100644 isomaker/80-openeuler/config_files/riscv64/grub2-efi.cfg + create mode 100644 isomaker/80-openeuler/live/riscv64.tmpl + create mode 100644 isomaker/80-openeuler/riscv64.tmpl + create mode 100644 isomaker/config/riscv64/desktop_normal.xml + create mode 100644 isomaker/config/riscv64/livecd/live/config_files/riscv64/boot.msg + create mode 100644 isomaker/config/riscv64/livecd/live/config_files/riscv64/grub.conf + create mode 100644 isomaker/config/riscv64/livecd/live/config_files/riscv64/grub2-efi.cfg + create mode 100644 isomaker/config/riscv64/livecd/live/riscv64.tmpl + create mode 100644 isomaker/config/riscv64/livecd/livecd_riscv64.ks + create mode 100644 isomaker/config/riscv64/livecd/rpmlist + create mode 100644 isomaker/config/riscv64/normal.xml + create mode 100644 isomaker/config/riscv64/standard.conf + +diff --git a/envmaker/config/compile_env_rpmlist.xml b/envmaker/config/compile_env_rpmlist.xml +index d2461ea..eec1480 100644 +--- a/envmaker/config/compile_env_rpmlist.xml ++++ b/envmaker/config/compile_env_rpmlist.xml +@@ -17,6 +17,10 @@ + grub2-efi-x64-modules + + ++ ++ grub2-efi-riscv64-modules ++ ++ + + acl + acpica-tools +@@ -463,4 +467,4 @@ + clang + imageTailor + +- +\ No newline at end of file ++ +diff --git a/envmaker/config/riscv64/openEuler_repo.conf b/envmaker/config/riscv64/openEuler_repo.conf +new file mode 100644 +index 0000000..4bff406 +--- /dev/null ++++ b/envmaker/config/riscv64/openEuler_repo.conf +@@ -0,0 +1,17 @@ ++[main] ++debuglevel=2 ++gpgcheck=1 ++installonly_limit=3 ++clean_requirements_on_remove=True ++best=False ++skip_is_unavailable=False ++ ++ ++# This is the default, if you make this bigger yum won't see if the metadata ++ ++#in /etc/yum.repos.d ++[openEuler] ++name=openEuler ++baseurl=https://repo.openeuler.org/openEuler-23.09/OS/riscv64/ ++enabled=1 ++gpgcheck=0 +diff --git a/isocut/config/riscv64/anaconda-ks.cfg b/isocut/config/riscv64/anaconda-ks.cfg +new file mode 100644 +index 0000000..adcb6fe +--- /dev/null ++++ b/isocut/config/riscv64/anaconda-ks.cfg +@@ -0,0 +1,371 @@ ++#version=DEVEL ++# Use CDROM installation media ++cdrom ++# Use graphical install ++graphical ++# Run the Setup Agent on first boot ++firstboot --enable ++ignoredisk --only-use=sda ++# Keyboard layouts ++keyboard --vckeymap=us --xlayouts='us' ++# System language ++lang en_US.UTF-8 ++ ++# Network information ++network --bootproto=dhcp --device=ens3 --onboot=off --ipv6=auto ++network --hostname=localhost.localdomain ++ ++# Root password ++rootpw --iscrypted $6$xcWWTkm29Zd5V8hv$MrbjVgQ.BCaRXoTGcpq2snPnGx36HUuC7uqH0IEMV3QQXDT6lacPX32Zwdn3yeq4aywymTlaO6anqzZ8tnKFA1 ++# System timezone ++timezone Asia/Beijing --isUtc ++# Reboot after install ++reboot ++# System bootloader configuration ++bootloader --append=" net.ifnames=0 biosdevname=0" --location=mbr --boot-drive=sda ++autopart --type=lvm ++# Partition clearing information ++clearpart --all --initlabel --drives=sda ++ ++%packages --multilib --ignoremissing ++acl.riscv64 ++aide.riscv64 ++audit-libs.riscv64 ++audit.riscv64 ++autogen-libopts.riscv64 ++avahi-libs.riscv64 ++basesystem.noarch ++bash.riscv64 ++bind-libs-lite.riscv64 ++bind-libs.riscv64 ++bind-utils.riscv64 ++blktrace.riscv64 ++bridge-utils.riscv64 ++bzip2-libs.riscv64 ++bzip2.riscv64 ++chkconfig.riscv64 ++cifs-utils.riscv64 ++coreutils.riscv64 ++cpio.riscv64 ++cracklib-dicts.riscv64 ++cracklib.riscv64 ++cronie-anacron.riscv64 ++cronie.riscv64 ++crontabs.noarch ++cryptsetup-libs.riscv64 ++cups-libs.riscv64 ++curl.riscv64 ++cyrus-sasl-lib.riscv64 ++dbus-glib.riscv64 ++dbus-libs.riscv64 ++dbus.riscv64 ++deltarpm.riscv64 ++device-mapper-event-libs.riscv64 ++device-mapper-event.riscv64 ++device-mapper-libs.riscv64 ++device-mapper-persistent-data.riscv64 ++device-mapper.riscv64 ++dhcp-libs.riscv64 ++diffutils.riscv64 ++dmidecode.riscv64 ++dos2unix.riscv64 ++dracut-network.riscv64 ++dracut.riscv64 ++dump_mem_tool.riscv64 ++e2fsprogs-libs.riscv64 ++e2fsprogs.riscv64 ++elfutils-libelf.riscv64 ++elfutils-libs.riscv64 ++ethtool.riscv64 ++openEuler-release.riscv64 ++expat-devel.riscv64 ++expat.riscv64 ++expect.riscv64 ++file-libs.riscv64 ++filesystem.riscv64 ++file.riscv64 ++findutils.riscv64 ++fipscheck-lib.riscv64 ++fipscheck.riscv64 ++freetype.riscv64 ++fuse.riscv64 ++gawk.riscv64 ++gdbm.riscv64 ++genisoimage.riscv64 ++gettext-libs.riscv64 ++gettext.riscv64 ++glib2.riscv64 ++glibc-common.riscv64 ++glibc.riscv64 ++gmp.riscv64 ++gnupg2.riscv64 ++gobject-introspection.riscv64 ++gpgme.riscv64 ++gpm-libs.riscv64 ++grep.riscv64 ++grub2-tools.riscv64 ++grubby.riscv64 ++gssproxy.riscv64 ++gzip.riscv64 ++hardlink.riscv64 ++hdparm.riscv64 ++hostname.riscv64 ++hwdata.noarch ++info.riscv64 ++initscripts.riscv64 ++iotop.noarch ++ipmitool.riscv64 ++iproute.riscv64 ++iptables.riscv64 ++iputils.riscv64 ++irqbalance.riscv64 ++json-c.riscv64 ++kbox-kmod.riscv64 ++kernel-tools-libs.riscv64 ++kernel-tools.riscv64 ++kernel.riscv64 ++kexec-tools.riscv64 ++keyutils-libs.riscv64 ++keyutils.riscv64 ++kmod-libs.riscv64 ++kmod.riscv64 ++kpartx.riscv64 ++kpatch-runtime.noarch ++krb5-libs.riscv64 ++less.riscv64 ++libacl.riscv64 ++libaio.riscv64 ++libalarm.riscv64 ++libassuan.riscv64 ++libattr.riscv64 ++libbasicobjects.riscv64 ++libblkid.riscv64 ++libcap-ng.riscv64 ++libcap.riscv64 ++libcgroup-tools.riscv64 ++libcgroup.riscv64 ++libcollection.riscv64 ++libcom_err.riscv64 ++libcroco.riscv64 ++libcurl.riscv64 ++libdb-utils.riscv64 ++libdb.riscv64 ++libedit.riscv64 ++libestr.riscv64 ++libevent.riscv64 ++libffi.riscv64 ++libgcc.riscv64 ++libgcrypt.riscv64 ++libgomp.riscv64 ++libgpg-error.riscv64 ++libidn.riscv64 ++libini_config.riscv64 ++libldb.riscv64 ++libmnl.riscv64 ++libmount.riscv64 ++libnetfilter_conntrack.riscv64 ++libnfnetlink.riscv64 ++libnfsidmap.riscv64 ++libpath_utils.riscv64 ++libpcap.riscv64 ++libpciaccess.riscv64 ++libpwquality.riscv64 ++libref_array.riscv64 ++libsecurec.riscv64 ++libselinux.riscv64 ++libsemanage.riscv64 ++libsepol.riscv64 ++libssh2.riscv64 ++libss.riscv64 ++libstdc++.riscv64 ++libsysfs.riscv64 ++libtalloc.riscv64 ++libtasn1.riscv64 ++libtdb.riscv64 ++libtevent.riscv64 ++libtirpc.riscv64 ++libunistring.riscv64 ++libusal.riscv64 ++libuser.riscv64 ++libutempter.riscv64 ++libuuid.riscv64 ++libverto.riscv64 ++libwbclient.riscv64 ++libxml2.riscv64 ++libxslt.riscv64 ++linux-firmware.noarch ++lm_sensors-libs.riscv64 ++logrotate.riscv64 ++lsof.riscv64 ++lsscsi.riscv64 ++lua.riscv64 ++lvm2-libs.riscv64 ++lvm2.riscv64 ++lzo.riscv64 ++mailcap.noarch ++mailx.riscv64 ++man-db.riscv64 ++mtools.riscv64 ++ncurses-base.noarch ++ncurses-libs.riscv64 ++ncurses.riscv64 ++net-snmp-libs.riscv64 ++net-tools.riscv64 ++nfs-utils.riscv64 ++nscd.riscv64 ++nspr.riscv64 ++nss-softokn-freebl.riscv64 ++nss-softokn.riscv64 ++nss-sysinit.riscv64 ++nss-tools.riscv64 ++nss-util.riscv64 ++nss.riscv64 ++ntpdate.riscv64 ++numactl-libs.riscv64 ++numactl.riscv64 ++numad.riscv64 ++OpenIPMI-libs.riscv64 ++OpenIPMI.riscv64 ++openldap.riscv64 ++openssh-clients.riscv64 ++openssh-server.riscv64 ++openssh.riscv64 ++openssl-libs.riscv64 ++openssl.riscv64 ++p11-kit-trust.riscv64 ++p11-kit.riscv64 ++pam.riscv64 ++parted.riscv64 ++passwd.riscv64 ++pciutils-libs.riscv64 ++pciutils.riscv64 ++pcre.riscv64 ++perl-Business-ISBN-Data.noarch ++perl-Business-ISBN.noarch ++perl-Carp.noarch ++perl-Compress-Raw-Bzip2.riscv64 ++perl-Compress-Raw-Zlib.riscv64 ++perl-Config-IniFiles.noarch ++perl-constant.noarch ++perl-Data-Dumper.riscv64 ++perl-DBD-SQLite.riscv64 ++perl-DBI.riscv64 ++perl-Digest-MD5.riscv64 ++perl-Digest.noarch ++perl-Digest-SHA.riscv64 ++perl-Encode-Locale.noarch ++perl-Encode.riscv64 ++perl-Exporter.noarch ++perl-File-Listing.noarch ++perl-File-Path.noarch ++perl-File-Temp.noarch ++perl-Filter.riscv64 ++perl-Getopt-Long.noarch ++perl-HTML-Parser.riscv64 ++perl-HTML-Tagset.noarch ++perl-HTTP-Cookies.noarch ++perl-HTTP-Daemon.noarch ++perl-HTTP-Date.noarch ++perl-HTTP-Message.noarch ++perl-HTTP-Negotiate.noarch ++perl-HTTP-Tiny.noarch ++perl-IO-Compress.noarch ++perl-IO-HTML.noarch ++perl-IO-Socket-IP.noarch ++perl-IO-Socket-SSL.noarch ++perl-libs.riscv64 ++perl-libwww-perl.noarch ++perl-List-MoreUtils.noarch ++perl-LWP-MediaTypes.noarch ++perl-macros.riscv64 ++perl-Net-Daemon.noarch ++perl-Net-HTTP.noarch ++perl-Net-LibIDN.riscv64 ++perl-Net-SSLeay.riscv64 ++perl-parent.noarch ++perl-PathTools.riscv64 ++perl-Pod-Escapes.noarch ++perl-podlators.noarch ++perl-Pod-Perldoc.noarch ++perl-Pod-Simple.noarch ++perl-Pod-Usage.noarch ++perl-Scalar-List-Utils.riscv64 ++perl-Socket.riscv64 ++perl-Storable.riscv64 ++perl-Text-ParseWords.noarch ++perl-threads-shared.riscv64 ++perl-threads.riscv64 ++perl-TimeDate.noarch ++perl-Time-HiRes.riscv64 ++perl-Time-Local.noarch ++perl-URI.noarch ++perl-WWW-RobotRules.noarch ++perl.riscv64 ++perl-XML-LibXML.riscv64 ++perl-XML-NamespaceSupport.noarch ++perl-XML-SAX-Base.noarch ++perl-XML-SAX.noarch ++pinentry.riscv64 ++popt.riscv64 ++procps-ng.riscv64 ++psmisc.riscv64 ++qrencode-libs.riscv64 ++quota-nls.noarch ++quota.riscv64 ++rasdaemon.riscv64 ++readline.riscv64 ++rootfiles.noarch ++rpcbind.riscv64 ++rpm-build-libs.riscv64 ++rpm-libs.riscv64 ++rpm.riscv64 ++rsync.riscv64 ++rsyslog.riscv64 ++samba-libs.riscv64 ++screen.riscv64 ++security-tool.riscv64 ++sed.riscv64 ++setup.noarch ++shadow-utils.riscv64 ++smartmontools.riscv64 ++sqlite.riscv64 ++squashfs-tools.riscv64 ++sudo.riscv64 ++sysfsutils.riscv64 ++sysmonitor-kmod.riscv64 ++sysstat.riscv64 ++systemd-libs.riscv64 ++systemd.riscv64 ++tar.riscv64 ++tcp_wrappers-libs.riscv64 ++tcp_wrappers.riscv64 ++teamd.riscv64 ++tuned.noarch ++tzdata.noarch ++unzip.riscv64 ++util-linux.riscv64 ++vim-common.riscv64 ++vim-enhanced.riscv64 ++vim-filesystem.noarch ++vim-minimal.riscv64 ++virt-what.riscv64 ++wget.riscv64 ++which.riscv64 ++xfsprogs.riscv64 ++xz-libs.riscv64 ++xz.riscv64 ++zip.riscv64 ++zlib.riscv64 ++dnf.noarch ++dnf-utils.noarch ++authselect.riscv64 ++authselect-libs.riscv64 ++grub2-efi-riscv64.riscv64 ++grub2-efi-riscv64-cdboot.riscv64 ++grub2-common.noarch ++grub2-tools.riscv64 ++openEuler-logos.noarch ++network-scripts.riscv64 ++NetworkManager.riscv64 ++ ++%end +diff --git a/isocut/config/riscv64/rpmlist b/isocut/config/riscv64/rpmlist +new file mode 100644 +index 0000000..b134835 +--- /dev/null ++++ b/isocut/config/riscv64/rpmlist +@@ -0,0 +1 @@ ++kernel.riscv64 +diff --git a/isocut/isocut.py b/isocut/isocut.py +index 8578f83..be836ff 100755 +--- a/isocut/isocut.py ++++ b/isocut/isocut.py +@@ -442,6 +442,8 @@ def regen_repodata(): + pack.text = pack.text.split(".aarch64")[0] + elif os.uname()[-1].strip() == 'loongarch64': + pack.text = pack.text.split(".loongarch64")[0] ++ elif os.uname()[-1].strip() == 'riscv64': ++ pack.text = pack.text.split(".riscv64")[0] + pack.text = pack.text.split(".noarch")[0] + fp_rpm.close() + +@@ -687,6 +689,11 @@ def remake_iso(): + "-joliet-long -allow-multidot -allow-leading-dots -no-bak -V \"%s\" " \ + "-o \"%s\" -e images/efiboot.img -no-emul-boot \"%s\"" % ( + ICONFIG.new_iso_name, ICONFIG.dest_iso, ICONFIG.temp_path_new_image) ++ elif ICONFIG.src_iso_arch == 'riscv64': ++ make_iso_cmd = "genisoimage -R -J -T -r -l -d -input-charset utf-8 " \ ++ "-joliet-long -allow-multidot -allow-leading-dots -no-bak -V \"%s\" " \ ++ "-o \"%s\" -e images/efiboot.img -no-emul-boot \"%s\"" % ( ++ ICONFIG.new_iso_name, ICONFIG.dest_iso, ICONFIG.temp_path_new_image) + dest_iso_path = os.path.dirname(ICONFIG.dest_iso) + if not (dest_iso_path is None or dest_iso_path == + "") and not os.path.exists(dest_iso_path): +diff --git a/isomaker/80-openeuler/config_files/riscv64/boot.msg b/isomaker/80-openeuler/config_files/riscv64/boot.msg +new file mode 100644 +index 0000000..ff54899 +--- /dev/null ++++ b/isomaker/80-openeuler/config_files/riscv64/boot.msg +@@ -0,0 +1,5 @@ ++ ++splash.lss ++ ++ - Press the 0107 key to begin the installation process. ++ +diff --git a/isomaker/80-openeuler/config_files/riscv64/grub.conf b/isomaker/80-openeuler/config_files/riscv64/grub.conf +new file mode 100644 +index 0000000..49fa32b +--- /dev/null ++++ b/isomaker/80-openeuler/config_files/riscv64/grub.conf +@@ -0,0 +1,13 @@ ++#debug --graphics ++default=0 ++splashimage=@SPLASHPATH@ ++timeout 5 ++hiddenmenu ++title Install @PRODUCT@ @VERSION@ ++ findiso ++ kernel @KERNELPATH@ @ROOT@ quiet ++ initrd @INITRDPATH@ ++title Test this media & install @PRODUCT@ @VERSION@ ++ findiso ++ kernel @KERNELPATH@ @ROOT@ rd.live.check quiet ++ initrd @INITRDPATH@ +diff --git a/isomaker/80-openeuler/config_files/riscv64/grub2-efi.cfg b/isomaker/80-openeuler/config_files/riscv64/grub2-efi.cfg +new file mode 100644 +index 0000000..918b7d3 +--- /dev/null ++++ b/isomaker/80-openeuler/config_files/riscv64/grub2-efi.cfg +@@ -0,0 +1,47 @@ ++set default="1" ++ ++function load_video { ++ if [ x$feature_all_video_module = xy ]; then ++ insmod all_video ++ else ++ insmod efi_gop ++ insmod efi_uga ++ insmod ieee1275_fb ++ insmod vbe ++ insmod vga ++ insmod video_bochs ++ insmod video_cirrus ++ fi ++} ++ ++load_video ++set gfxpayload=keep ++insmod gzio ++insmod part_gpt ++insmod ext2 ++ ++set timeout=60 ++set debug="linux,loader,mm" ++### END /etc/grub.d/00_header ### ++ ++search --no-floppy --set=root -l '@ISOLABEL@' ++ ++### BEGIN /etc/grub.d/10_linux ### ++menuentry 'Install @PRODUCT@ @VERSION@' --class red --class gnu-linux --class gnu --class os { ++ linux @KERNELPATH@ @ROOT@ ro inst.geoloc=0 systemd.default_timeout_start_sec=600 selinux=0 highres=off earlycon no4lvl ++ initrd @INITRDPATH@ ++} ++menuentry 'Test this media & install @PRODUCT@ @VERSION@' --class red --class gnu-linux --class gnu --class os { ++ linux @KERNELPATH@ @ROOT@ rd.live.check inst.geoloc=0 systemd.default_timeout_start_sec=600 selinux=0 highres=off earlycon no4lvl ++ initrd @INITRDPATH@ ++} ++submenu 'Troubleshooting -->' { ++ menuentry 'Install @PRODUCT@ @VERSION@ in basic graphics mode' --class red --class gnu-linux --class gnu --class os { ++ linux @KERNELPATH@ @ROOT@ nomodeset inst.geoloc=0 systemd.default_timeout_start_sec=600 selinux=0 highres=off earlycon no4lvl ++ initrd @INITRDPATH@ ++ } ++ menuentry 'Rescue the @PRODUCT@ system' --class red --class gnu-linux --class gnu --class os { ++ linux @KERNELPATH@ @ROOT@ rescue systemd.default_timeout_start_sec=600 selinux=0 highres=off earlycon no4lvl ++ initrd @INITRDPATH@ ++ } ++} +diff --git a/isomaker/80-openeuler/efi.tmpl b/isomaker/80-openeuler/efi.tmpl +index 0b5e770..29a61d4 100644 +--- a/isomaker/80-openeuler/efi.tmpl ++++ b/isomaker/80-openeuler/efi.tmpl +@@ -5,7 +5,14 @@ EFIBOOTDIR="EFI/BOOT" + + mkdir ${EFIBOOTDIR} + mkdir ${EFIBOOTDIR}/fonts/ +-%if efiarch64 != 'LOONGARCH64': ++%if efiarch64 == 'LOONGARCH64': ++install boot/efi/EFI/openEuler/grubloongarch64.efi ${EFIBOOTDIR}/BOOT${efiarch64}.EFI ++install boot/efi/EFI/openEuler/grubloongarch64.efi ${EFIBOOTDIR}/BOOTLOONGARCH.EFI ++install boot/efi/EFI/openEuler/grubloongarch64.efi ${EFIBOOTDIR}/grub${efiarch64|lower}.efi ++%elif efiarch64 == 'RISCV64': ++install boot/efi/EFI/openEuler/gcd${efiarch64|lower}.efi ${EFIBOOTDIR}/BOOT${efiarch64}.EFI ++install boot/efi/EFI/openEuler/gcd${efiarch64|lower}.efi ${EFIBOOTDIR}/grub${efiarch64|lower}.EFI ++%else: + 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 +@@ -15,11 +22,6 @@ 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/openEuler/grubloongarch64.efi ${EFIBOOTDIR}/BOOT${efiarch64}.EFI +-install boot/efi/EFI/openEuler/grubloongarch64.efi ${EFIBOOTDIR}/BOOTLOONGARCH.EFI +-install boot/efi/EFI/openEuler/grubloongarch64.efi ${EFIBOOTDIR}/grub${efiarch64|lower}.efi +-%endif + install boot/efi/EFI/*/fonts/unicode.pf2 ${EFIBOOTDIR}/fonts/ + + ## actually make the EFI images +diff --git a/isomaker/80-openeuler/live/efi.tmpl b/isomaker/80-openeuler/live/efi.tmpl +index 79f6444..1fa7bf6 100644 +--- a/isomaker/80-openeuler/live/efi.tmpl ++++ b/isomaker/80-openeuler/live/efi.tmpl +@@ -6,6 +6,10 @@ EFIBOOTDIR="EFI/BOOT" + mkdir ${EFIBOOTDIR} + mkdir ${EFIBOOTDIR}/fonts/ + %if efiarch64: ++%if efiarch64 == 'RISCV64': ++install boot/efi/EFI/*/gcd${efiarch64|lower}.efi ${EFIBOOTDIR}/BOOT${efiarch64}.EFI ++install boot/efi/EFI/*/gcd${efiarch64|lower}.efi ${EFIBOOTDIR}/grub${efiarch64|lower}.EFI ++%else: + 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 +diff --git a/isomaker/80-openeuler/live/riscv64.tmpl b/isomaker/80-openeuler/live/riscv64.tmpl +new file mode 100644 +index 0000000..1944e5a +--- /dev/null ++++ b/isomaker/80-openeuler/live/riscv64.tmpl +@@ -0,0 +1,83 @@ ++<%page args="kernels, runtime_img, basearch, inroot, outroot, product, isolabel"/> ++<% ++configdir="tmp/config_files/riscv64" ++PXEBOOTDIR="images/pxeboot" ++KERNELDIR=PXEBOOTDIR ++LIVEDIR="LiveOS" ++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) ++ ++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 ${LIVEDIR} ++install ${runtime_img} ${LIVEDIR}/squashfs.img ++treeinfo stage2 mainimage ${LIVEDIR}/squashfs.img ++ ++## install kernels ++mkdir ${KERNELDIR} ++%for kernel in kernels: ++ ## normal riscv64 ++ 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/*/gcdriscv64.efi"): ++ <% ++ efiarch32 = None ++ efiarch64 = 'RISCV64' ++ efigraft="EFI/BOOT={0}/EFI/BOOT".format(outroot) ++ images = ["images/efiboot.img"] ++ %> ++ %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="configdir=configdir, KERNELDIR=KERNELDIR, efiarch32=efiarch32, efiarch64=efiarch64, isolabel=isolabel"/> ++%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 ++ +diff --git a/isomaker/80-openeuler/riscv64.tmpl b/isomaker/80-openeuler/riscv64.tmpl +new file mode 100644 +index 0000000..be9d81c +--- /dev/null ++++ b/isomaker/80-openeuler/riscv64.tmpl +@@ -0,0 +1,76 @@ ++<%page args="kernels, runtime_img, basearch, inroot, outroot, product, isolabel"/> ++<% ++configdir="tmp/config_files/riscv64" ++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 riscv64 ++ 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="";efiarch64=None %> ++%if exists("boot/efi/EFI/*/gcdriscv64.efi"): ++ <% ++ efiarch64 = 'RISCV64' ++ efigraft="EFI/BOOT={0}/EFI/BOOT".format(outroot) ++ images = ["images/efiboot.img"] ++ %> ++ %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="configdir=configdir, KERNELDIR=KERNELDIR, efiarch32=efiarch32, efiarch64=efiarch64, isolabel=isolabel"/> ++%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 ++ +diff --git a/isomaker/80-openeuler/runtime-cleanup.tmpl b/isomaker/80-openeuler/runtime-cleanup.tmpl +index 256d013..898f9c7 100644 +--- a/isomaker/80-openeuler/runtime-cleanup.tmpl ++++ b/isomaker/80-openeuler/runtime-cleanup.tmpl +@@ -337,8 +337,10 @@ runcmd chroot ${root} find /boot \! -name "vmlinuz*" \ + ## (broken systemd service links lead to confusing noise at boot) + ## NOTE: not checking /var because we want to keep /var/run + ## NOTE: Excluding /etc/mtab which links to /proc/self/mounts for systemd ++%if basearch != 'riscv64': + runcmd chroot ${root} find -L /etc /usr -xdev -type l -and \! -name "mtab" \ + -printf "removing broken symbolic link %p -> %l\n" -delete ++%endif + + ## Clean up some of the mess pulled in by webkitgtk via yelp + ## libwebkit2gtk links to a handful of libraries in gstreamer and +diff --git a/isomaker/80-openeuler/runtime-install.tmpl b/isomaker/80-openeuler/runtime-install.tmpl +index 9937e70..f38e5eb 100644 +--- a/isomaker/80-openeuler/runtime-install.tmpl ++++ b/isomaker/80-openeuler/runtime-install.tmpl +@@ -52,6 +52,11 @@ installpkg glibc-all-langpacks + installpkg grub2-efi-loongarch64 grub2-efi-loongarch64-cdboot grub2-efi-loongarch64-modules + installpkg grub2-tools grub2-tools-minimal grub2-tools-extra + %endif ++%if basearch == "riscv64": ++ installpkg efibootmgr ++ installpkg grub2-efi-riscv64 grub2-efi-riscv64-cdboot grub2-efi-riscv64-modules ++ installpkg grub2-tools grub2-tools-minimal grub2-tools-extra ++%endif + + ## yay, plymouth + installpkg plymouth +@@ -117,7 +122,7 @@ installpkg pciutils usbutils ipmitool + installpkg smartmontools + installpkg hdparm + ## see bug #1483278 +-%if basearch not in ("arm", "armhfp", "loongarch64"): ++%if basearch not in ("arm", "armhfp", "loongarch64", "riscv64"): + installpkg libmlx4 rdma-core + %endif + installpkg rng-tools +diff --git a/isomaker/config/common/livecd/live/efi.tmpl b/isomaker/config/common/livecd/live/efi.tmpl +index 9a57df4..abe9526 100644 +--- a/isomaker/config/common/livecd/live/efi.tmpl ++++ b/isomaker/config/common/livecd/live/efi.tmpl +@@ -11,10 +11,15 @@ mkdir ${EFIBOOTDIR}/fonts/ + install usr/share/shim/lockdown.efi ${EFIBOOTDIR}/ + %endif + %if efiarch64: ++%if efiarch64 == 'RISCV64': ++install boot/efi/EFI/*/gcd${efiarch64|lower}.efi ${EFIBOOTDIR}/BOOT${efiarch64}.EFI ++install boot/efi/EFI/*/gcd${efiarch64|lower}.efi ${EFIBOOTDIR}/grub${efiarch64}.EFI ++%else + 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 + %endif ++%endif + install boot/efi/EFI/*/fonts/unicode.pf2 ${EFIBOOTDIR}/fonts/ + + ## actually make the EFI images +diff --git a/isomaker/config/riscv64/desktop_normal.xml b/isomaker/config/riscv64/desktop_normal.xml +new file mode 100644 +index 0000000..e69de29 +diff --git a/isomaker/config/riscv64/livecd/live/config_files/riscv64/boot.msg b/isomaker/config/riscv64/livecd/live/config_files/riscv64/boot.msg +new file mode 100644 +index 0000000..ff54899 +--- /dev/null ++++ b/isomaker/config/riscv64/livecd/live/config_files/riscv64/boot.msg +@@ -0,0 +1,5 @@ ++ ++splash.lss ++ ++ - Press the 0107 key to begin the installation process. ++ +diff --git a/isomaker/config/riscv64/livecd/live/config_files/riscv64/grub.conf b/isomaker/config/riscv64/livecd/live/config_files/riscv64/grub.conf +new file mode 100644 +index 0000000..7e5e934 +--- /dev/null ++++ b/isomaker/config/riscv64/livecd/live/config_files/riscv64/grub.conf +@@ -0,0 +1,9 @@ ++#debug --graphics ++default=0 ++splashimage=@SPLASHPATH@ ++timeout 60 ++hiddenmenu ++title Start @PRODUCT@ @VERSION@ ++ findiso ++ kernel @KERNELPATH@ @ROOT@ quiet inst.text rd.live.ram net.ifnames=0 biosdevname=0 rd.shell=0 ++ initrd @INITRDPATH@ +diff --git a/isomaker/config/riscv64/livecd/live/config_files/riscv64/grub2-efi.cfg b/isomaker/config/riscv64/livecd/live/config_files/riscv64/grub2-efi.cfg +new file mode 100644 +index 0000000..aa36684 +--- /dev/null ++++ b/isomaker/config/riscv64/livecd/live/config_files/riscv64/grub2-efi.cfg +@@ -0,0 +1,38 @@ ++set default="0" ++ ++function load_video { ++ if [ x$feature_all_video_module = xy ]; then ++ insmod all_video ++ else ++ insmod efi_gop ++ insmod efi_uga ++ insmod ieee1275_fb ++ insmod vbe ++ insmod vga ++ insmod video_bochs ++ insmod video_cirrus ++ fi ++} ++ ++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 'Start @PRODUCT@ @VERSION@ with text mode' --class red --class gnu-linux --class gnu --class os { ++ linux @KERNELPATH@ @ROOT@ ro inst.text console=ttyS0 console=tty0 rd.live.ram net.ifnames=0 biosdevname=0 rd.shell=0 ++ initrd @INITRDPATH@ ++} ++submenu 'Troubleshooting -->' { ++ menuentry 'Rescue a @PRODUCT@ system' --class red --class gnu-linux --class gnu --class os { ++ linux @KERNELPATH@ @ROOT@ rescue console=ttyS0 console=tty0 rd.live.ram net.ifnames=0 biosdevname=0 rd.shell=0 ++ initrd @INITRDPATH@ ++ } ++} +diff --git a/isomaker/config/riscv64/livecd/live/riscv64.tmpl b/isomaker/config/riscv64/livecd/live/riscv64.tmpl +new file mode 100644 +index 0000000..e7a9309 +--- /dev/null ++++ b/isomaker/config/riscv64/livecd/live/riscv64.tmpl +@@ -0,0 +1,75 @@ ++<%page args="kernels, runtime_img, basearch, inroot, outroot, product, isolabel"/> ++<% ++configdir="tmp/config_files/riscv64" ++PXEBOOTDIR="images/pxeboot" ++KERNELDIR=PXEBOOTDIR ++LORAXDIR="usr/share/lorax/" ++LIVEDIR="LiveOS" ++ ++ ++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 ${LIVEDIR} ++install ${runtime_img} ${LIVEDIR}/squashfs.img ++treeinfo stage2 mainimage ${LIVEDIR}/squashfs.img ++ ++ ++## install kernels ++mkdir ${KERNELDIR} ++%for kernel in kernels: ++ ## normal riscv64 ++ installkernel images-${basearch} ${kernel.path} ${KERNELDIR}/vmlinuz ++ installinitrd images-${basearch} ${kernel.initrd.path} ${KERNELDIR}/initrd.img ++%endfor ++ ++ ++## WHeeeeeeee, EFI. ++## We could remove the basearch restriction someday.. ++<% efiargs=""; efigraft="" %> ++%if exists("boot/efi/EFI/*/gcdriscv64.efi"): ++ <% ++ efiarch32 = None ++ efiarch64 = 'RISCV64' ++ efigraft="EFI/BOOT={0}/EFI/BOOT".format(outroot) ++ images = ["images/efiboot.img"] ++ %> ++ %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="configdir=configdir, KERNELDIR=KERNELDIR, efiarch32=efiarch32, efiarch64=efiarch64, isolabel=isolabel"/> ++%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 ++ ++%if exists("boot/efi/EFI/*/gcdriscv64.efi"): ++## make boot.iso ++runcmd mkisofs -o ${outroot}/images/boot.iso \ ++ ${efiargs} -R -J -V '${isolabel}' -T ${udfargs} \ ++ -graft-points \ ++ ${KERNELDIR}=${outroot}/${KERNELDIR} \ ++ ${LIVEDIR}=${outroot}/${LIVEDIR} \ ++ ${efigraft} ${filegraft} ++treeinfo images-${basearch} boot.iso images/boot.iso ++%endif +diff --git a/isomaker/config/riscv64/livecd/livecd_riscv64.ks b/isomaker/config/riscv64/livecd/livecd_riscv64.ks +new file mode 100644 +index 0000000..192c4b1 +--- /dev/null ++++ b/isomaker/config/riscv64/livecd/livecd_riscv64.ks +@@ -0,0 +1,70 @@ ++# Minimal Disk Image ++# ++# Firewall configuration ++firewall --enabled ++# Use network installation ++url --url="INSTALL_REPO" ++# Root password ++rootpw --iscrypted ROOT_PWD ++ ++# Network information ++network --bootproto=dhcp --onboot=on --activate ++# System keyboard ++keyboard --xlayouts=us --vckeymap=us ++# System language ++lang en_US.UTF-8 ++# SELinux configuration ++selinux --enforcing ++# Installation logging level ++logging --level=info ++# Shutdown after installation ++shutdown ++# System timezone ++timezone Asia/Beijing ++# System bootloader configuration ++bootloader --location=mbr ++# Clear the Master Boot Record ++zerombr ++# Partition clearing information ++clearpart --all ++# Disk partitioning information ++part / --fstype="ext4" --size=40000 ++part swap --size=1000 ++%pre ++#!/bin/bash ++mkdir -p /mnt/sysimage/usr/lib64/ ++chmod 0755 /mnt/sysimage/usr/lib64/ ++cp /usr/lib64/libbep_env.so /mnt/sysimage/usr/lib64 ++%end ++%post ++ ++touch /etc/sysconfig/network ++ ++cat << EOF > /etc/sysconfig/network-scripts/ifcfg-eth0 ++TYPE=Ethernet ++BOOTPROTO=dhcp ++NAME=eth0 ++DEVICE=eth0 ++ONBOOT=yes ++EOF ++ ++rm -rf /etc/systemd/system/multi-user.target.wants/kbox.service ++rm -rf /etc/systemd/system/multi-user.target.wants/kdump.service ++rm -rf /usr/lib/systemd/system/kbox.service ++rm -rf /usr/lib/systemd/system/kdump.service ++rm -rf /boot/initramfs* ++ ++#fix shadows and shadows- time field ++awk 'BEGIN{FS=OFS=":"} {$3=18099; print $0 > "/etc/shadow"}' /etc/shadow; ++awk 'BEGIN{FS=OFS=":"} {$3=18099; print $0 > "/etc/shadow-"}' /etc/shadow-; ++ ++#fix /etc/pki/ca-trust/extracted/java/cacerts time field ++rm /etc/pki/ca-trust/extracted/java/cacerts ++/usr/bin/ca-legacy install ++/usr/bin/update-ca-trust ++ ++ ++%end ++ ++%packages --excludedocs ++%end +diff --git a/isomaker/config/riscv64/livecd/rpmlist b/isomaker/config/riscv64/livecd/rpmlist +new file mode 100644 +index 0000000..9f80b75 +--- /dev/null ++++ b/isomaker/config/riscv64/livecd/rpmlist +@@ -0,0 +1,112 @@ ++NetworkManager ++NetworkManager-config-server ++abattis-cantarell-fonts ++audit ++authselect ++basesystem ++bash ++bind ++bind-dnssec-utils ++boost-iostreams ++btrfs-progs ++coreutils ++cronie ++cryptsetup ++curl ++dejavu-fonts ++dhcp ++dnf ++dnf-plugins-core ++dosfstools ++dracut-config-generic ++dracut-config-rescue ++dracut-live ++dracut-network ++e2fsprogs ++filesystem ++findutils ++fipscheck ++firewalld ++genisoimage ++glibc ++grub2 ++gryb2-efi-riscv64 ++grub2-efi-riscv64-cdboot ++grubby ++gtk2 ++hostname ++initscripts ++ipmitool ++iproute ++iprutils ++iputils ++irqbalance ++kbd ++kernel ++kernel-tools ++kexec-tools ++lcms2 ++less ++lftp ++libX11 ++libdaemon ++libgusb ++libiscsi ++libnet ++libnl3 ++libpciaccess ++libteam ++libusbx ++linux-firmware ++lshw ++lsscsi ++lvm2 ++lzo ++man-db ++ncurses ++net-snmp ++net-tools ++nfs-utils ++openEuler-latest-release ++openEuler-logos ++openEuler-release ++openssh ++openssh-clients ++openssh-server ++parted ++passwd ++pciutils ++policycoreutils ++procps-ng ++python3-bind ++python3-decorator ++python3-ply ++python3-slip ++rdma-core ++rest ++rng-tools ++rootfiles ++rpm ++rsync ++rsyslog ++samba-client ++samba-libs ++security-tool ++selinux-policy-mls ++selinux-policy-targeted ++setup ++sg3_utils ++shadow ++smartmontools ++sssd ++sudo ++sysfsutils ++systemd ++tuned ++unzip ++util-linux ++vim-minimal ++wget ++xfsprogs ++yum ++zip +diff --git a/isomaker/config/riscv64/normal.xml b/isomaker/config/riscv64/normal.xml +new file mode 100644 +index 0000000..175a94c +--- /dev/null ++++ b/isomaker/config/riscv64/normal.xml +@@ -0,0 +1,1569 @@ ++ ++ ++ ++ ++ additional-devel ++ Additional Development ++ 附加开发 ++ Additional development headers and libraries for building open-source applications. ++ 用于构建开源应用程序的附加开发标头及程序可。 ++ true ++ false ++ ++ audit-libs-devel ++ bzip2-devel ++ c-ares-devel ++ cyrus-sasl-devel ++ e2fsprogs-devel ++ elfutils-devel ++ elfutils-libelf-devel ++ expat-devel ++ fuse3-devel ++ gmp-devel ++ lksctp-tools-devel ++ iptables-devel ++ libacl-devel ++ libaio-devel ++ libattr-devel ++ libblkid-devel ++ libcap-devel ++ libcap-ng-devel ++ libcurl-devel ++ libffi-devel ++ libgcrypt-devel ++ libnl3-devel ++ libselinux-devel ++ libusbx-devel ++ libuuid-devel ++ lksctp-tools-devel ++ lz4 ++ lz4-devel ++ lzo ++ lzo-devel ++ numactl-devel ++ pciutils-devel ++ pcre-devel ++ polkit-devel ++ popt-devel ++ rdma-core-devel ++ readline-devel ++ sqlite-devel ++ systemd-devel ++ tcl-devel ++ xfsprogs-devel ++ xz-devel ++ SDL-devel ++ alsa-lib-devel ++ binutils-devel ++ boost-devel ++ dbus-glib-devel ++ gd-devel ++ gnutls-devel ++ gpm-devel ++ gstreamer1-devel ++ gstreamer1-plugins-base-devel ++ hunspell-devel ++ java-1.8.0-openjdk-devel ++ libXau-devel ++ libXaw-devel ++ libXinerama-devel ++ libXmu-devel ++ libXrandr-devel ++ libcanberra-devel ++ libdrm-devel ++ libnotify-devel ++ libpfm-devel ++ libpq-devel ++ librsvg2-devel ++ libsoup-devel ++ libssh-devel ++ libtiff-devel ++ libxslt-devel ++ mariadb-devel ++ mpfr-devel ++ net-snmp-devel ++ newt-devel ++ openscap-devel ++ papi-devel ++ protobuf-c ++ sane-backends-devel ++ slang-devel ++ startup-notification-devel ++ tbb-devel ++ tk-devel ++ unixODBC-devel ++ xorg-x11-proto-devel ++ flatpak ++ ++ ++ ++ anaconda-tools ++ Anaconda tools ++ Anaconda 工具 ++ ++ false ++ false ++ ++ lorax ++ chrony ++ cryptsetup ++ device-mapper-multipath ++ dosfstools ++ dracut-network ++ e2fsprogs ++ efibootmgr ++ fcoe-utils ++ firewalld ++ gfs2-utils ++ glibc-all-langpacks ++ grub2-efi-riscv64 ++ grub2-efi-riscv64-cdboot ++ grub2-tools ++ grub2-tools-extra ++ iscsi-initiator-utils ++ lvm2 ++ mdadm ++ realmd ++ libteam ++ tmux ++ xfsprogs ++ authselect-compat ++ kdump-anaconda-addon ++ ++ ++ ++ base ++ Base ++ 基本 ++ The standard installation. ++ true ++ false ++ ++ acl ++ at ++ attr ++ bc ++ cpio ++ crontabs ++ cyrus-sasl ++ dbus ++ ed ++ file ++ iptstate ++ irqbalance ++ kpatch ++ logrotate ++ lsof ++ net-tools ++ pciutils ++ psacct ++ quota ++ openEuler-release ++ openEuler-latest-release ++ sudo ++ symlinks ++ systemd-udev ++ tar ++ tree ++ util-linux-user ++ bash-completion ++ bpftool ++ bzip2 ++ chrony ++ cockpit ++ cryptsetup ++ dos2unix ++ dosfstools ++ ethtool ++ gnupg2 ++ libstoragemgmt ++ lvm2 ++ mailcap ++ man-pages ++ mdadm ++ mlocate ++ mtr ++ nano ++ realmd ++ rng-tools ++ rsync ++ smartmontools ++ sssd ++ strace ++ libteam ++ time ++ unzip ++ usbutils ++ virt-what ++ which ++ words ++ xfsdump ++ zip ++ cifs-utils ++ cockpit-doc ++ ima-evm-utils ++ nfs-utils ++ traceroute ++ zsh ++ ++ ++ ++ conflicts-baseos ++ Conflicts BaseOS ++ 与 BaseOS 冲突 ++ This group includes packages conflicting with an everything installation from the BaseOS repo ++ 这个组包括了与通过 BaseOS repo 安装的软件冲突的软件包 ++ false ++ false ++ ++ ++ ++ ++ container-management ++ Container Management ++ 容器管理 ++ Tools for managing Linux containers ++ 用于管理 Linux 容器的工具 ++ true ++ true ++ ++ containernetworking-plugins ++ ++ ++ ++ core ++ Core ++ 核心 ++ Smallest possible installation ++ 最小安装 ++ true ++ false ++ ++ audit ++ kernel ++ basesystem ++ bash ++ coreutils ++ cronie ++ curl ++ dnf ++ e2fsprogs ++ filesystem ++ firewalld ++ glibc ++ grubby ++ hostname ++ initscripts ++ iproute ++ iprutils ++ iputils ++ irqbalance ++ kbd ++ kexec-tools ++ less ++ man-db ++ ncurses ++ openssh ++ openssh-server ++ openssh-clients ++ openEuler-release ++ openEuler-latest-release ++ parted ++ passwd ++ policycoreutils ++ procps-ng ++ rng-tools ++ rootfiles ++ rpm ++ selinux-policy-targeted ++ setup ++ shadow ++ sssd ++ sudo ++ systemd ++ tuned ++ util-linux ++ vim-minimal ++ xfsprogs ++ yum ++ wget ++ NetworkManager ++ NetworkManager-config-server ++ authselect ++ dnf-plugins-core ++ dracut-config-rescue ++ kernel-tools ++ sysfsutils ++ linux-firmware ++ lshw ++ lsscsi ++ rsyslog ++ security-tool ++ sg3_utils ++ dracut-config-generic ++ dracut-network ++ rdma-core ++ selinux-policy-mls ++ ++ ++ ++ desktop-debugging ++ Desktop Debugging and Performance Tools ++ 桌面调试和运行工具 ++ GUI tools for debugging applications and performance. ++ 调试应用程序和性能的 GUI 工具。 ++ true ++ false ++ ++ crash ++ crash-gcore-command ++ crash-trace-command ++ xrestop ++ ++ ++ ++ development ++ Development Tools ++ 开发工具 ++ A basic development environment. ++ 基本开发环境。 ++ true ++ true ++ ++ autoconf ++ automake ++ binutils ++ bison ++ flex ++ gcc ++ gcc-c++ ++ glibc-devel ++ gettext ++ gdb ++ libtool ++ make ++ patch ++ pkgconf ++ openEuler-rpm-config ++ rpm-build ++ rpm ++ asciidoc ++ byacc ++ ctags ++ diffstat ++ elfutils ++ gcc-gfortran ++ git ++ subversion ++ intltool ++ ltrace ++ patchutils ++ perl-Fedora-VSP ++ perl-generators ++ pesign ++ source-highlight ++ systemtap ++ babel ++ chrpath ++ expect ++ gcc-objc ++ gcc-objc++ ++ mercurial ++ mod_dav_svn ++ systemtap-sdt-devel ++ systemtap-server ++ cmake ++ rpmdevtools ++ rpmlint ++ ++ ++ ++ dial-up ++ Dial-up Networking Support ++ 拨号网络支持 ++ ++ true ++ false ++ ++ ppp ++ ModemManager ++ NetworkManager-adsl ++ lrzsz ++ minicom ++ ++ ++ ++ dns-server ++ DNS Name Server ++ DNS 名称服务器 ++ This package group allows you to run a DNS name server (BIND) on the system. ++ 该软件包组允许您在系统上运行 DNS 名称服务器(BIND)。 ++ false ++ false ++ ++ bind ++ bind-chroot ++ bind-dyndb-ldap ++ unbound ++ ++ ++ ++ directory-client ++ Directory Client ++ 目录客户端 ++ Clients for integration into a network managed by a directory service. ++ 用于整合到使用目录服务管理的网络的客户端。 ++ false ++ false ++ ++ adcli ++ oddjob-mkhomedir ++ realmd ++ sssd ++ clevis-dracut ++ clevis-udisks2 ++ krb5-pkinit ++ krb5-workstation ++ luksmeta ++ nss-pam-ldapd ++ openldap-clients ++ samba-winbind ++ samba-winbind-clients ++ sssd-dbus ++ sssd-tools ++ sssd-winbind-idmap ++ ++ ++ ++ file-server ++ File and Storage Server ++ 文件及存储服务器 ++ CIFS, SMB, NFS, iSCSI, iSER, and iSNS network storage server. ++ CIFS, SMB, NFS, iSCSI, iSER 及 iSNS 网络存储服务器。 ++ true ++ false ++ ++ cifs-utils ++ gssproxy ++ nfs-utils ++ nfs4-acl-tools ++ samba ++ open-isns ++ ++ ++ ++ opengauss-server ++ openGauss Server ++ openGauss数据库 ++ openGauss is an open source relational database management system. ++ openGauss一款开源的关系数据库管理系统。 ++ true ++ false ++ ++ lz4-devel ++ protobuf-devel ++ snappy-devel ++ zstd-devel ++ boost-devel ++ libcgroup-devel ++ unixODBC-devel ++ jemalloc-devel ++ java-1.8.0-openjdk-devel ++ libedit-devel ++ libaio-devel ++ ++ ++ ++ fonts ++ Fonts ++ 字体 ++ Fonts packages for rendering text on the desktop. ++ 用于在桌面显示文字的字体软件包。 ++ true ++ false ++ ++ dejavu-sans-fonts ++ dejavu-sans-mono-fonts ++ dejavu-serif-fonts ++ abattis-cantarell-fonts ++ gnu-free-mono-fonts ++ gnu-free-sans-fonts ++ gnu-free-serif-fonts ++ google-noto-sans-cjk-ttc-fonts ++ google-noto-serif-cjk-ttc-fonts ++ jomolhari-fonts ++ julietaula-montserrat-fonts ++ paktype-naskh-basic-fonts ++ paratype-pt-sans-fonts ++ sil-abyssinica-fonts ++ sil-nuosu-fonts ++ sil-padauk-fonts ++ smc-meera-fonts ++ stix-fonts ++ thai-scalable-waree-fonts ++ bpg-algeti-fonts ++ bpg-chveulebrivi-fonts ++ bpg-courier-fonts ++ bpg-courier-s-fonts ++ bpg-elite-fonts ++ bpg-excelsior-fonts ++ bpg-glaho-fonts ++ bpg-ingiri-fonts ++ bpg-nino-medium-cond-fonts ++ bpg-nino-medium-fonts ++ bpg-sans-fonts ++ bpg-sans-medium-fonts ++ bpg-sans-modern-fonts ++ bpg-sans-regular-fonts ++ bpg-serif-fonts ++ bpg-serif-modern-fonts ++ fontawesome-fonts ++ google-droid-kufi-fonts ++ google-droid-sans-fonts ++ google-droid-sans-mono-fonts ++ google-droid-serif-fonts ++ gubbi-fonts ++ kacst-art-fonts ++ kacst-book-fonts ++ kacst-decorative-fonts ++ kacst-digital-fonts ++ kacst-farsi-fonts ++ kacst-letter-fonts ++ kacst-naskh-fonts ++ kacst-office-fonts ++ kacst-one-fonts ++ kacst-pen-fonts ++ kacst-poster-fonts ++ kacst-qurn-fonts ++ kacst-screen-fonts ++ kacst-title-fonts ++ kacst-titlel-fonts ++ kurdit-unikurd-web-fonts ++ lato-fonts ++ madan-fonts ++ nafees-web-naskh-fonts ++ navilu-fonts ++ overpass-fonts ++ paktype-naqsh-fonts ++ paktype-tehreer-fonts ++ saab-fonts ++ samyak-devanagari-fonts ++ samyak-gujarati-fonts ++ samyak-malayalam-fonts ++ samyak-odia-fonts ++ samyak-tamil-fonts ++ sil-scheherazade-fonts ++ smc-anjalioldlipi-fonts ++ smc-dyuthi-fonts ++ smc-kalyani-fonts ++ smc-rachana-fonts ++ smc-raghumalayalam-fonts ++ smc-suruma-fonts ++ stix-math-fonts ++ thai-scalable-garuda-fonts ++ thai-scalable-kinnari-fonts ++ thai-scalable-loma-fonts ++ thai-scalable-norasi-fonts ++ thai-scalable-purisa-fonts ++ thai-scalable-sawasdee-fonts ++ thai-scalable-tlwgmono-fonts ++ thai-scalable-tlwgtypewriter-fonts ++ thai-scalable-tlwgtypist-fonts ++ thai-scalable-tlwgtypo-fonts ++ thai-scalable-umpush-fonts ++ tibetan-machine-uni-fonts ++ wqy-microhei-fonts ++ xorg-x11-fonts-100dpi ++ xorg-x11-fonts-75dpi ++ xorg-x11-fonts-ISO8859-1-100dpi ++ xorg-x11-fonts-ISO8859-1-75dpi ++ xorg-x11-fonts-ISO8859-14-100dpi ++ xorg-x11-fonts-ISO8859-14-75dpi ++ xorg-x11-fonts-ISO8859-15-100dpi ++ xorg-x11-fonts-ISO8859-15-75dpi ++ xorg-x11-fonts-ISO8859-2-100dpi ++ xorg-x11-fonts-ISO8859-2-75dpi ++ xorg-x11-fonts-ISO8859-9-100dpi ++ xorg-x11-fonts-ISO8859-9-75dpi ++ xorg-x11-fonts-Type1 ++ xorg-x11-fonts-cyrillic ++ xorg-x11-fonts-misc ++ ++ ++ ++ ftp-server ++ FTP Server ++ FTP 服务器 ++ These tools allow you to run an FTP server on the system. ++ 这些工具允许您在系统上运行 FTP 服务器。 ++ true ++ false ++ ++ vsftpd ++ ++ ++ ++ gnome-apps ++ GNOME Applications ++ GNOME 应用程序 ++ A set of commonly used GNOME Applications. ++ 一组经常使用的 GNOME 应用程序。 ++ false ++ false ++ ++ ++ ++ ++ guest-desktop-agents ++ Guest Desktop Agents ++ 虚拟机桌面代理 ++ Agents used when running as a virtualized desktop. ++ 作为虚拟桌面运行时使用的代理。 ++ true ++ false ++ ++ qemu-guest-agent ++ spice-vdagent ++ ++ ++ ++ hardware-monitoring ++ Hardware Monitoring Utilities ++ 硬件监控工具 ++ A set of tools to monitor server hardware. ++ 一组用来监控服务器硬件的工具。 ++ true ++ false ++ ++ rasdaemon ++ smartmontools ++ lm_sensors ++ ++ ++ ++ hardware-support ++ Hardware Support ++ This group is a collection of tools for various hardware specific utilities. ++ true ++ false ++ ++ bolt ++ usb_modeswitch ++ linux-firmware ++ lsscsi ++ opensc ++ openssl-pkcs11 ++ pcsc-lite ++ pcsc-lite-ccid ++ ++ ++ ++ headless-management ++ Headless Management ++ 无图形终端系统管理工具 ++ Tools for managing the system without an attached graphical console. ++ 用于管理无图像终端系统的工具。 ++ true ++ true ++ ++ PackageKit ++ cockpit ++ openssh-server ++ sscg ++ ++ ++ ++ infiniband ++ Infiniband Support ++ Infiniband 支持 ++ Software designed for supporting clustering, grid connectivity, and low-latency, high bandwidth storage using RDMA-based InfiniBand, iWARP, RoCE, and OPA fabrics. ++ true ++ false ++ ++ libibverbs ++ libibverbs-utils ++ librdmacm ++ librdmacm-utils ++ rdma-core ++ ibacm ++ iwpmd ++ perftest ++ srp_daemon ++ opensm ++ ++ ++ ++ input-methods ++ Input Methods ++ 输入法 ++ Input method packages for the input of international text. ++ 输入非英文文本的输入法软件包 ++ true ++ false ++ ++ ibus-m17n ++ ibus-sayura ++ ibus-table ++ ibus-table-array30 ++ gtk2-immodule-xim ++ gtk3-immodule-xim ++ ibus-gtk2 ++ ibus-gtk3 ++ ++ ++ ++ internet-applications ++ Internet Applications ++ 互联网应用程序 ++ Email, chat, and video conferencing software. ++ 电子邮件、聊天和视频会议软件。 ++ false ++ false ++ ++ ++ ++ ++ internet-browser ++ Internet Browser ++ 互联网浏览器 ++ The Firefox web browser ++ Firefox web 浏览器 ++ true ++ false ++ ++ firefox ++ ++ ++ ++ java-platform ++ Java Platform ++ Java 平台 ++ Java support for the Red Hat Enterprise Linux Server and Desktop Platforms. ++ Red Hat Enterprise Linux 服务器和桌面平台的 Java 支持。 ++ true ++ false ++ ++ java-1.8.0-openjdk ++ ++ ++ ++ large-systems ++ Large Systems Performance ++ 大系统性能 ++ Performance support tools for large systems. ++ 用于大型系统的性能支持工具。 ++ true ++ false ++ ++ numactl ++ numad ++ hwloc ++ mstflint ++ qperf ++ ++ ++ ++ legacy-unix ++ Legacy UNIX Compatibility ++ 传统 UNIX 兼容性 ++ Compatibility programs for migration from or working with legacy UNIX environments. ++ 用于从继承 UNIX 环境中迁移或者可用于该环境的兼容程序。 ++ true ++ true ++ ++ mksh ++ ++ ++ ++ legacy-x ++ Legacy X Window System Compatibility ++ 传统 X Windows 系统的兼容性 ++ Compatibility programs for migration from or working with legacy X Window System environments. ++ 用于从继承 X Windows 环境中迁移或者可用于该环境的兼容程序。 ++ true ++ false ++ ++ libXmu ++ xorg-x11-fonts-ISO8859-1-100dpi ++ xorg-x11-fonts-Type1 ++ xorg-x11-fonts-misc ++ xterm ++ ++ ++ ++ mail-server ++ Mail Server ++ 邮件服务器 ++ These packages allow you to configure an IMAP or SMTP mail server. ++ 这些软件包允许您配置 IMAP 或 Postfix 邮件服务器。 ++ true ++ false ++ ++ cyrus-sasl ++ postfix ++ ++ ++ ++ mainframe-access ++ Mainframe Access ++ 主框架访问 ++ Tools for accessing mainframe computing resources. ++ 访问主框架计算源的工具。 ++ true ++ false ++ ++ x3270-text ++ ++ ++ ++ network-file-system-client ++ Network File System Client ++ 网络文件系统客户端 ++ Enables the system to attach to network storage. ++ 启用该系统附加到网络存储。 ++ true ++ false ++ ++ cifs-utils ++ device-mapper-multipath ++ fcoe-utils ++ gssproxy ++ iscsi-initiator-utils ++ lldpad ++ nfs-utils ++ nfs4-acl-tools ++ samba-client ++ cachefilesd ++ cgdcbxd ++ ++ ++ ++ network-server ++ Network Servers ++ 网络服务器 ++ These packages include network-based servers such as DHCP, Kerberos and NIS. ++ 这些软件包包括基于网络的服务器,例如 DHCP、Kerberos 和 NIS。 ++ true ++ true ++ ++ dhcp-server ++ krb5-server ++ dnsmasq ++ freeradius ++ libreswan ++ radvd ++ rsyslog ++ rsyslog-mysql ++ rsyslog-pgsql ++ rsyslog-relp ++ tang ++ tftp-server ++ ++ ++ ++ network-tools ++ Networking Tools ++ 联网工具 ++ Tools for configuring and analyzing computer networks. ++ 配置和分析计算机网络的工具。 ++ true ++ false ++ ++ arpwatch ++ ipset ++ iptraf-ng ++ iptstate ++ dnsmasq ++ freeradius ++ libreswan ++ radvd ++ rsyslog ++ rsyslog-mysql ++ rsyslog-pgsql ++ rsyslog-relp ++ tang ++ tftp-server ++ ++ ++ ++ networkmanager-submodules ++ Common NetworkManager submodules ++ This group contains NetworkManager submodules that are commonly used, but may not be wanted in some streamlined configurations. ++ true ++ false ++ ++ NetworkManager-bluetooth ++ NetworkManager-wifi ++ NetworkManager-wwan ++ dhcp ++ iptables ++ dnsmasq ++ ++ ++ ++ performance ++ Performance Tools ++ 性能工具 ++ Tools for diagnosing system and application-level performance problems. ++ 诊断系统和程序级别性能问题的工具。 ++ true ++ false ++ ++ iotop ++ perf ++ hdparm ++ tuned ++ sysstat ++ pcp ++ pcp-conf ++ pcp-devel ++ pcp-doc ++ pcp-export-pcp2graphite ++ pcp-export-pcp2influxdb ++ pcp-export-pcp2json ++ pcp-export-pcp2xml ++ pcp-export-pcp2zabbix ++ pcp-export-zabbix-agent ++ pcp-import-collectl2pcp ++ pcp-import-ganglia2pcp ++ pcp-import-iostat2pcp ++ pcp-import-mrtg2pcp ++ pcp-libs ++ pcp-libs-devel ++ pcp-pmda-apache ++ pcp-pmda-bash ++ pcp-pmda-bonding ++ pcp-pmda-cifs ++ pcp-pmda-cisco ++ pcp-pmda-dbping ++ pcp-pmda-dm ++ pcp-pmda-docker ++ pcp-pmda-ds389 ++ pcp-pmda-gfs2 ++ pcp-pmda-gluster ++ pcp-pmda-gpfs ++ pcp-pmda-gpsd ++ pcp-pmda-haproxy ++ pcp-pmda-infiniband ++ pcp-pmda-json ++ pcp-pmda-kvm ++ pcp-pmda-libvirt ++ pcp-pmda-lio ++ pcp-pmda-lmsensors ++ pcp-pmda-logger ++ pcp-pmda-lustre ++ pcp-pmda-lustrecomm ++ pcp-pmda-mailq ++ pcp-pmda-memcache ++ pcp-pmda-mic ++ pcp-pmda-mounts ++ pcp-pmda-mysql ++ pcp-pmda-named ++ pcp-pmda-netfilter ++ pcp-pmda-news ++ pcp-pmda-nfsclient ++ pcp-pmda-nvidia-gpu ++ pcp-pmda-oracle ++ pcp-pmda-pdns ++ pcp-pmda-perfevent ++ pcp-pmda-prometheus ++ pcp-pmda-redis ++ pcp-pmda-roomtemp ++ pcp-pmda-rsyslog ++ pcp-pmda-samba ++ pcp-pmda-sendmail ++ pcp-pmda-shping ++ pcp-pmda-slurm ++ pcp-pmda-smart ++ pcp-pmda-snmp ++ pcp-pmda-summary ++ pcp-pmda-systemd ++ pcp-pmda-trace ++ pcp-pmda-unbound ++ pcp-pmda-weblog ++ pcp-pmda-zimbra ++ pcp-pmda-zswap ++ pcp-selinux ++ pcp-system-tools ++ pcp-testsuite ++ pcp-webapi ++ pcp-zeroconf ++ perl-PCP-LogImport ++ perl-PCP-LogSummary ++ perl-PCP-MMV ++ perl-PCP-PMDA ++ powertop ++ iperf3 ++ libpfm ++ papi ++ tuned-utils ++ ++ ++ ++ platform-devel ++ Platform Development ++ 平台开发 ++ Recommended development headers and libraries for developing applications. ++ 推荐用于开发应用程序的标头及程序库。 ++ true ++ false ++ ++ fontconfig-devel ++ freetype-devel ++ glib2-devel ++ glibc-devel ++ krb5-devel ++ libjpeg-turbo-devel ++ libpng-devel ++ libstdc++-devel ++ ncurses-devel ++ openldap-devel ++ openssl-devel ++ pam-devel ++ zlib-devel ++ atk-devel ++ cairo-devel ++ dbus-devel ++ desktop-file-utils ++ gtk2-devel ++ gtk3-devel ++ libICE-devel ++ libSM-devel ++ libX11-devel ++ libXext-devel ++ libXft-devel ++ libXi-devel ++ libXrender-devel ++ libXt-devel ++ libXtst-devel ++ libXv-devel ++ libXxf86dga-devel ++ libdb-devel ++ libjpeg-turbo-devel ++ libstdc++-devel ++ libvirt-devel ++ libxml2-devel ++ libxshmfence-devel ++ mesa-libGL-devel ++ mesa-libGLU-devel ++ nss-devel ++ pango-devel ++ qt5-qtdoc ++ qt5-qttranslations ++ ++ ++ ++ print-client ++ Printing Client ++ 打印客户端 ++ Tools for printing to a local printer or a remote print server. ++ 在本地打印机和远程打印服务器中打印的工具。 ++ true ++ false ++ ++ ++ ++ ++ python-web ++ Python Web ++ Basic Python web application support. ++ 基本 Python 网页应用程序支持。 ++ true ++ false ++ ++ freetype-devel ++ libcurl ++ libcurl-devel ++ libjpeg-turbo ++ libjpeg-turbo-devel ++ python3-magic ++ ++ ++ ++ remote-system-management ++ Remote Management for Linux ++ Linux 的远程管理 ++ Remote management interface. ++ Linux 的远程管理界面。 ++ true ++ false ++ ++ cockpit ++ net-snmp ++ net-snmp-utils ++ openwsman-client ++ tog-pegasus ++ openwsman-server ++ ++ ++ ++ scientific ++ Scientific Support ++ 科学记数法支持 ++ Tools for mathematical and scientific computations, and parallel computing. ++ 用于数学和科学计算以及平行计算的工具。 ++ true ++ true ++ ++ units ++ fftw ++ fftw-devel ++ fftw-static ++ gsl-devel ++ lapack ++ python3-numpy ++ python3-scipy ++ ++ ++ ++ security-tools ++ Security Tools ++ 安全性工具 ++ Security tools for integrity and trust verification. ++ 用于完整性和可信验证的安全性工具。 ++ true ++ true ++ ++ hmaccalc ++ tpm-quote-tools ++ tpm-tools ++ trousers ++ scap-security-guide ++ aide ++ openscap ++ openscap-engine-sce ++ openscap-utils ++ scap-security-guide-doc ++ ++ ++ ++ server-product ++ Server product core ++ Packages mandatory for the server product. ++ true ++ false ++ ++ chrony ++ polkit ++ realmd ++ openEuler-release ++ openEuler-latest-release ++ timedatex ++ dhcp ++ NetworkManager-config-server ++ NetworkManager ++ ++ ++ ++ smb-server ++ Windows File Server ++ Windows 文件服务器 ++ This package group allows you to share files between Linux and MS Windows(tm) systems. ++ 该软件包组允许您在 Linux 和 MS Windows(tm) 系统间共享文件。 ++ true ++ false ++ ++ samba ++ samba-client ++ cifs-utils ++ ++ ++ ++ standard ++ Standard ++ 标准 ++ The standard installation. ++ 标准安装。 ++ true ++ false ++ ++ acl ++ at ++ attr ++ bc ++ cpio ++ crontabs ++ cyrus-sasl ++ dbus ++ ed ++ file ++ iptstate ++ irqbalance ++ kpatch ++ logrotate ++ lsof ++ net-tools ++ pciutils ++ quota ++ openEuler-release ++ openEuler-latest-release ++ sudo ++ symlinks ++ systemd-udev ++ tar ++ tree ++ util-linux-user ++ bash-completion ++ bpftool ++ bzip2 ++ chrony ++ cockpit ++ cryptsetup ++ dos2unix ++ dosfstools ++ ethtool ++ gnupg2 ++ lvm2 ++ mailcap ++ man-pages ++ mdadm ++ mlocate ++ mtr ++ realmd ++ rsync ++ smartmontools ++ sssd ++ strace ++ libteam ++ time ++ unzip ++ usbutils ++ virt-what ++ which ++ words ++ xfsdump ++ zip ++ cifs-utils ++ cockpit-doc ++ ima-evm-utils ++ nfs-utils ++ traceroute ++ zsh ++ psacct ++ libstoragemgmt ++ nano ++ rng-tools ++ rsyslog ++ rsyslog-relp ++ nmap ++ pinfo ++ plymouth ++ tcpdump ++ vim-enhanced ++ wget ++ ++ ++ ++ system-tools ++ System Tools ++ 系统工具 ++ This group is a collection of various tools for the system, such as the client for connecting to SMB shares and tools to monitor network traffic. ++ 这组软件包是各类系统工具的集合,如:连接 SMB 共享的客户;监控网络交通的工具。 ++ true ++ true ++ ++ chrony ++ cifs-utils ++ openldap-clients ++ samba-client ++ setserial ++ tmux ++ zsh ++ arpwatch ++ chrpath ++ fuse ++ iotop ++ lzop ++ xdelta ++ environment-modules ++ libreswan ++ nmap ++ tigervnc ++ PackageKit-command-not-found ++ aide ++ amanda-client ++ convmv ++ createrepo_c ++ freerdp ++ gpm ++ gssdp ++ gupnp ++ mc ++ mtx ++ net-snmp-utils ++ oddjob ++ oddjob-mkhomedir ++ sysstat ++ x3270-x11 ++ ++ ++ ++ virtualization-hypervisor ++ Virtualization Hypervisor ++ 虚拟化 Hypervisor ++ Smallest possible virtualization host installation. ++ 最小的虚拟化主机安装。 ++ false ++ false ++ ++ libvirt ++ libvirt-client ++ libvirt-daemon ++ libvirt-daemon-config-network ++ libvirt-daemon-config-nwfilter ++ libvirt-daemon-driver-interface ++ libvirt-daemon-driver-network ++ libvirt-daemon-driver-nodedev ++ libvirt-daemon-driver-nwfilter ++ libvirt-daemon-driver-qemu ++ libvirt-daemon-driver-secret ++ libvirt-daemon-driver-storage ++ libvirt-daemon-driver-storage-core ++ libvirt-daemon-driver-storage-disk ++ libvirt-daemon-driver-storage-gluster ++ libvirt-daemon-driver-storage-iscsi ++ libvirt-daemon-driver-storage-iscsi-direct ++ libvirt-daemon-driver-storage-logical ++ libvirt-daemon-driver-storage-mpath ++ libvirt-daemon-driver-storage-rbd ++ libvirt-daemon-driver-storage-scsi ++ libvirt-daemon-kvm ++ libvirt-daemon-plugin-sanlock ++ libvirt-daemon-qemu ++ libvirt-devel ++ libvirt-docs ++ libvirt-libs ++ libvirt-nss ++ python3-libvirt ++ qemu-help ++ qemu ++ qemu-block-iscsi ++ qemu-img ++ ++ ++ ++ openvswitch ++ Virtualization Openvswitch ++ 虚拟switch ++ vswitch installation. ++ 安装vswitch。 ++ false ++ false ++ ++ openvswitch ++ ++ ++ ++ remote-desktop-clients ++ Remote Desktop Clients ++ 远程桌面客户端 ++ ++ true ++ false ++ ++ freerdp ++ tigervnc ++ vinagre ++ ++ ++ ++ web-server ++ Basic Web Server ++ 基本网页服务器 ++ These tools allow you to run a Web server on the system. ++ 这些工具允许您在系统上运行万维网服务器。 ++ true ++ false ++ ++ httpd ++ mod_fcgid ++ mod_ssl ++ libmemcached ++ memcached ++ mod_security ++ ++ ++ ++ x11 ++ X Window System ++ X 窗口系统 ++ X Window System Support. ++ X 窗口系统支持。 ++ false ++ false ++ ++ glx-utils ++ mesa-dri-drivers ++ plymouth-system-theme ++ spice-vdagent ++ xorg-x11-drivers ++ xorg-x11-server-Xorg ++ xorg-x11-utils ++ xorg-x11-xauth ++ xorg-x11-xinit ++ xvattr ++ mesa-libGLES ++ tigervnc-server ++ wayland-protocols-devel ++ xorg-x11-drv-libinput ++ ++ ++ ++ development ++ Development ++ 开发 ++ Packages which provide functionality for developing and building applications. ++ 用于开发和构建应用程序的软件包。 ++ 90 ++ ++ additional-devel ++ development ++ platform-devel ++ ++ ++ ++ servers ++ Servers ++ 服务器 ++ Software used for running network servers ++ 用于运行网络服务器的软件 ++ 20 ++ ++ file-server ++ ftp-server ++ mail-server ++ network-server ++ web-server ++ ++ ++ ++ base-system ++ System ++ 系统 ++ Core system components. ++ 核系统组件。 ++ 10 ++ ++ backup-client ++ debugging ++ java-platform ++ print-client ++ smart-card ++ dial-up ++ hardware-monitoring ++ infiniband ++ large-systems ++ legacy-unix ++ mainframe-access ++ network-tools ++ performance ++ scientific ++ security-tools ++ standard ++ ++ ++ ++ desktops ++ Desktops ++ 桌面环境 ++ Desktops and thin clients. ++ 桌面和瘦客户端。 ++ 70 ++ ++ base-x ++ desktop-debugging ++ fonts ++ input-methods ++ legacy-x ++ remote-desktop-clients ++ ++ ++ ++ apps ++ Applications ++ 应用程序 ++ Applications to perform a variety of tasks ++ 执行不同任务的应用程序 ++ 80 ++ ++ graphics ++ ++ ++ ++ minimal-environment ++ Minimal Install ++ 最小安装 ++ Basic functionality. ++ 基本功能。 ++ 1 ++ ++ core ++ ++ ++ standard ++ ++ ++ ++ server-product-environment ++ Server ++ 服务器 ++ An integrated, easy-to-manage server. ++ 集成的易于管理的服务器 ++ 2 ++ ++ container-management ++ core ++ hardware-support ++ headless-management ++ server-product ++ standard ++ ++ ++ debugging ++ dns-server ++ file-server ++ ftp-server ++ hardware-monitoring ++ infiniband ++ mail-server ++ network-file-system-client ++ network-server ++ performance ++ remote-system-management ++ smb-server ++ virtualization-hypervisor ++ web-server ++ opengauss-server ++ ++ ++ ++ virtualization-host-environment ++ Virtualization Host ++ 虚拟化主机 ++ Minimal virtualization host. ++ 最小虚拟化主机。 ++ 40 ++ ++ base ++ core ++ virtualization-hypervisor ++ ++ ++ debugging ++ network-file-system-client ++ remote-system-management ++ openvswitch ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/isomaker/config/riscv64/standard.conf b/isomaker/config/riscv64/standard.conf +new file mode 100644 +index 0000000..73bbb0b +--- /dev/null ++++ b/isomaker/config/riscv64/standard.conf +@@ -0,0 +1,6 @@ ++CONFIG_YUM_REPOS="https://mirror.iscas.ac.cn/openeuler-sig-riscv/openEuler-RISC-V/preview/openEuler-23.09-V1-riscv64/repo/23.09/mainline/" ++CONFIG_PACKAGES_LIST_FILE="config/riscv64/normal.xml" ++CONFIG_RPM_LIST="config/rpmlist.xml" ++CONFIG_PRODUCT="openEuler" ++CONFIG_VERSION="24.03" ++CONFIG_RELEASE="LTS" +diff --git a/isomaker/init.sh b/isomaker/init.sh +index f3222ec..1166d7f 100644 +--- a/isomaker/init.sh ++++ b/isomaker/init.sh +@@ -35,7 +35,7 @@ function parse_cmd_line() + { + #param init + ARCH="$(uname -m)" +- if [ "${ARCH}" = "aarch64" ] || [ "${ARCH}" = "x86_64" ] || [ "${ARCH}" = "loongarch64" ];then ++ if [ "${ARCH}" = "aarch64" ] || [ "${ARCH}" = "x86_64" ] || [ "${ARCH}" = "loongarch64" ] || [ "${ARCH}" = "riscv64" ];then + CONFIG_FILE="${CPATH}/config/${ARCH}/standard.conf" + source "${CONFIG_FILE}" + else +diff --git a/isomaker/iso.sh b/isomaker/iso.sh +index 7bf0bf9..78e3392 100644 +--- a/isomaker/iso.sh ++++ b/isomaker/iso.sh +@@ -26,7 +26,7 @@ function gen_debug_iso() + if [ "$ARCH" == "x86_64" ]; then + mkisofs -R -J -T -r -l -d -joliet-long -allow-multidot -allow-leading-dots -no-bak -V "${RELEASE_NAME}" -o "${OUTPUT_DIR}/${DBG_ISO_NAME}" -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e images/efiboot.img -no-emul-boot "${BUILD}"/iso + [ $? != 0 ] && return 1 +- elif [ "$ARCH" == "aarch64" ] || [ "$ARCH" == "loongarch64" ]; then ++ elif [ "$ARCH" == "aarch64" ] || [ "$ARCH" == "loongarch64" ] || [ "$ARCH" == "riscv64" ]; then + mkisofs -R -J -T -r -l -d -joliet-long -allow-multidot -allow-leading-dots -no-bak -V "${RELEASE_NAME}" -o "${OUTPUT_DIR}/${DBG_ISO_NAME}" -e images/efiboot.img -no-emul-boot "${BUILD}"/iso + [ $? != 0 ] && return 1 + fi +@@ -40,7 +40,7 @@ function gen_standard_iso() + mkisofs -R -J -T -r -l -d -joliet-long -allow-multidot -allow-leading-dots -no-bak -V "${RELEASE_NAME}" -o "${OUTPUT_DIR}/${STANDARD_ISO_NAME}" -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e images/efiboot.img -no-emul-boot "${BUILD}"/iso + [ $? != 0 ] && return 1 + isohybrid -u "${OUTPUT_DIR}/${STANDARD_ISO_NAME}" +- elif [ "$ARCH" == "aarch64" ] || [ "$ARCH" == "loongarch64" ]; then ++ elif [ "$ARCH" == "aarch64" ] || [ "$ARCH" == "loongarch64" ] || [ "$ARCH" == "riscv64" ]; then + mkisofs -R -J -T -r -l -d -joliet-long -allow-multidot -allow-leading-dots -no-bak -V "${RELEASE_NAME}" -o "${OUTPUT_DIR}/${STANDARD_ISO_NAME}" -e images/efiboot.img -no-emul-boot "${BUILD}"/iso + [ $? != 0 ] && return 1 + fi +@@ -57,7 +57,7 @@ function gen_edge_iso() + if [ "$ARCH" == "x86_64" ]; then + mkisofs -R -J -T -r -l -d -joliet-long -allow-multidot -allow-leading-dots -no-bak -V "${RELEASE_NAME}" -o "${OUTPUT_DIR}/${EDGE_ISO_NAME}" -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e images/efiboot.img -no-emul-boot "${BUILD}"/iso + [ $? != 0 ] && return 1 +- elif [ "$ARCH" == "aarch64" ] || [ "$ARCH" == "loongarch64" ]; then ++ elif [ "$ARCH" == "aarch64" ] || [ "$ARCH" == "loongarch64" ] || [ "$ARCH" == "riscv64" ]; then + mkisofs -R -J -T -r -l -d -joliet-long -allow-multidot -allow-leading-dots -no-bak -V "${RELEASE_NAME}" -o "${OUTPUT_DIR}/${EDGE_ISO_NAME}" -e images/efiboot.img -no-emul-boot "${BUILD}"/iso + [ $? != 0 ] && return 1 + fi +@@ -74,7 +74,7 @@ function gen_desktop_iso() + if [ "$ARCH" == "x86_64" ]; then + mkisofs -R -J -T -r -l -d -joliet-long -allow-multidot -allow-leading-dots -no-bak -V "${RELEASE_NAME}" -o "${OUTPUT_DIR}/${DESKTOP_ISO_NAME}" -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e images/efiboot.img -no-emul-boot "${BUILD}"/iso + [ $? != 0 ] && return 1 +- elif [ "$ARCH" == "aarch64" ] || [ "$ARCH" == "loongarch64" ]; then ++ elif [ "$ARCH" == "aarch64" ] || [ "$ARCH" == "loongarch64" ] || [ "$ARCH" == "riscv64" ] ; then + mkisofs -R -J -T -r -l -d -joliet-long -allow-multidot -allow-leading-dots -no-bak -V "${RELEASE_NAME}" -o "${OUTPUT_DIR}/${DESKTOP_ISO_NAME}" -e images/efiboot.img -no-emul-boot "${BUILD}"/iso + [ $? != 0 ] && return 1 + fi +@@ -91,7 +91,7 @@ function gen_src_iso() + if [ "$ARCH" == "x86_64" ]; then + mkisofs -R -J -T -r -l -d -joliet-long -allow-multidot -allow-leading-dots -no-bak -V "${RELEASE_NAME}" -o "${OUTPUT_DIR}/${SRC_ISO_NAME}" -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e images/efiboot.img -no-emul-boot "${BUILD}"/iso + [ $? != 0 ] && return 1 +- elif [ "$ARCH" == "aarch64" ] || [ "$ARCH" == "loongarch64" ]; then ++ elif [ "$ARCH" == "aarch64" ] || [ "$ARCH" == "loongarch64" ] || [ "$ARCH" == "riscv64" ]; then + mkisofs -R -J -T -r -l -d -joliet-long -allow-multidot -allow-leading-dots -no-bak -V "${RELEASE_NAME}" -o "${OUTPUT_DIR}/${SRC_ISO_NAME}" -e images/efiboot.img -no-emul-boot "${BUILD}"/iso + [ $? != 0 ] && return 1 + fi +@@ -110,7 +110,7 @@ function gen_everything_iso() + mkisofs -R -J -T -r -l -d -joliet-long -allow-multidot -allow-leading-dots -no-bak -V "${RELEASE_NAME}" -o /result/"${EVE_ISO_NAME}" -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e images/efiboot.img -no-emul-boot "${BUILD}"/iso + [ $? != 0 ] && return 1 + isohybrid -u /result/"${EVE_ISO_NAME}" +- elif [ "$ARCH" == "aarch64" ] || [ "$ARCH" == "loongarch64" ]; then ++ elif [ "$ARCH" == "aarch64" ] || [ "$ARCH" == "loongarch64" ] || [ "$ARCH" == "riscv64" ]; then + mkisofs -R -J -T -r -l -d -joliet-long -allow-multidot -allow-leading-dots -no-bak -V "${RELEASE_NAME}" -o /result/"${EVE_ISO_NAME}" -e images/efiboot.img -no-emul-boot "${BUILD}"/iso + [ $? != 0 ] && return 1 + fi +@@ -129,7 +129,7 @@ function gen_everything_debug_iso() + if [ "$ARCH" == "x86_64" ]; then + mkisofs -R -J -T -r -l -d -joliet-long -allow-multidot -allow-leading-dots -no-bak -V "${RELEASE_NAME}" -o /result/"${EVE_DEBUG_ISO_NAME}" -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e images/efiboot.img -no-emul-boot "${BUILD}"/iso + [ $? != 0 ] && return 1 +- elif [ "$ARCH" == "aarch64" ] || [ "$ARCH" == "loongarch64" ]; then ++ elif [ "$ARCH" == "aarch64" ] || [ "$ARCH" == "loongarch64" ] || [ "$ARCH" == "riscv64" ]; then + mkisofs -R -J -T -r -l -d -joliet-long -allow-multidot -allow-leading-dots -no-bak -V "${RELEASE_NAME}" -o /result/"${EVE_DEBUG_ISO_NAME}" -e images/efiboot.img -no-emul-boot "${BUILD}"/iso + [ $? != 0 ] && return 1 + fi +@@ -148,7 +148,7 @@ function gen_everything_src_iso() + if [ "$ARCH" == "x86_64" ]; then + mkisofs -R -J -T -r -l -d -joliet-long -allow-multidot -allow-leading-dots -no-bak -V "${RELEASE_NAME}" -o /result/"${EVE_SRC_ISO_NAME}" -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e images/efiboot.img -no-emul-boot "${BUILD}"/iso + [ $? != 0 ] && return 1 +- elif [ "$ARCH" == "aarch64" ] || [ "$ARCH" == "loongarch64" ]; then ++ elif [ "$ARCH" == "aarch64" ] || [ "$ARCH" == "loongarch64" ] || [ "$ARCH" == "riscv64" ]; then + mkisofs -R -J -T -r -l -d -joliet-long -allow-multidot -allow-leading-dots -no-bak -V "${RELEASE_NAME}" -o /result/"${EVE_SRC_ISO_NAME}" -e images/efiboot.img -no-emul-boot "${BUILD}"/iso + [ $? != 0 ] && return 1 + fi +@@ -162,7 +162,7 @@ function gen_netinst_iso() + mkisofs -R -J -T -r -l -d -joliet-long -allow-multidot -allow-leading-dots -no-bak -V "${RELEASE_NAME}" -o /result/"${NETINST_ISO_NAME}" -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e images/efiboot.img -no-emul-boot "${BUILD}"/iso + [ $? != 0 ] && return 1 + isohybrid -u /result/"${NETINST_ISO_NAME}" +- elif [ "$ARCH" == "aarch64" ] || [ "$ARCH" == "loongarch64" ]; then ++ elif [ "$ARCH" == "aarch64" ] || [ "$ARCH" == "loongarch64" ] || [ "$ARCH" == "riscv64" ] ; then + mkisofs -R -J -T -r -l -d -joliet-long -allow-multidot -allow-leading-dots -no-bak -V "${RELEASE_NAME}" -o /result/"${NETINST_ISO_NAME}" -e images/efiboot.img -no-emul-boot "${BUILD}"/iso + fi + implantisomd5 /result/"${NETINST_ISO_NAME}" +-- +2.41.0 + diff --git a/oemaker.spec b/oemaker.spec index f1c018985812df878b1f397fcb66107dd8ebd67b..516dc4f3ed90da4b1aa87e0c1517c59640bacbeb 100644 --- a/oemaker.spec +++ b/oemaker.spec @@ -11,7 +11,7 @@ Summary: a building tool for DVD ISO making and ISO cutting License: Mulan PSL v2 Group: System/Management Version: 3.1.0 -Release: 7 +Release: 8 BuildRoot: %{_tmppath}/%{name} Source: https://gitee.com/openeuler/oemaker/repository/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz @@ -23,10 +23,12 @@ Source5: edge_normal_x86_64.xml Source6: desktop_normal_aarch64.xml Source7: desktop_normal_x86_64.xml + Requires: createrepo dnf-plugins-core genisoimage isomd5sum grep bash libselinux-utils libxml2 anaconda libselinux-utils Requires: lorax >= 19.6.78-1 # Patch here +Patch0: 0001-add-riscv64-support.patch %description a building tool for DVD ISO making and ISO cutting @@ -100,6 +102,8 @@ install -m 400 %{name}/isomaker/config/${sys_arch}/standard.conf %{buildroot}/op %ifarch x86_64 install -m 700 %{name}/isomaker/config/x86_64/livecd/live/x86.tmpl %{buildroot}/opt/oemaker/config/x86_64/livecd/live/x86.tmpl install -m 400 %{name}/isomaker/config/x86_64/ks.cfg %{buildroot}/opt/oemaker/config/x86_64/ks.cfg +%elifarch riscv64 +install -m 700 %{name}/isomaker/config/riscv64/livecd/live/riscv64.tmpl %{buildroot}/opt/oemaker/config/riscv64/livecd/live/riscv64.tmpl %else install -m 700 %{name}/isomaker/config/aarch64/livecd/live/aarch64.tmpl %{buildroot}/opt/oemaker/config/aarch64/livecd/live/aarch64.tmpl %endif @@ -172,6 +176,9 @@ rm -rf %{buildroot} rm -rf $RPM_BUILD_DIR/%{name} %changelog +* Fri May 17 2024 Ouuleilei - 3.1.0-8 +- add riscv64 support + * Thu Mar 28 2024 mayunlong - 3.1.0-7 - ID:NA - SUG:NA diff --git a/rpmlist.xml b/rpmlist.xml index 5e553ce3c6cbdaec10bfd1dfe71a50d46989e92c..11ddd69af54da8c1f5982376a13d83484152c19b 100644 --- a/rpmlist.xml +++ b/rpmlist.xml @@ -69,6 +69,11 @@ grub2-efi-x64-modules shim + + edk2-ovmf-riscv64 + grub2-efi-riscv64 + grub2-efi-riscv64-modules + abattis-cantarell-fonts abattis-cantarell-fonts-help @@ -204,8 +209,6 @@ clutter-gtk clutter-gtk-help clutter-help - cockpit - cockpit-help cogl cogl-help color-filesystem @@ -355,7 +358,6 @@ git git-clang-format git-help - gjs glib2 glib2-help glibc @@ -461,7 +463,6 @@ json-c-help json-glib json-glib-help - kata-containers kbd kbd-help kbd-legacy @@ -648,7 +649,6 @@ libpsl-help libpwquality libpwquality-help - librados2 libref_array librepo libreport-filesystem @@ -716,7 +716,6 @@ libverto-devel libverto-glib libverto-libevent - libvirt libvirt-client libvirt-daemon libvirt-daemon-config-network @@ -727,7 +726,6 @@ libvirt-daemon-driver-nwfilter libvirt-daemon-driver-qemu libvirt-daemon-driver-secret - libvirt-daemon-driver-storage libvirt-daemon-driver-storage-core libvirt-daemon-driver-storage-disk libvirt-daemon-driver-storage-gluster @@ -735,10 +733,7 @@ libvirt-daemon-driver-storage-iscsi-direct libvirt-daemon-driver-storage-logical libvirt-daemon-driver-storage-mpath - libvirt-daemon-driver-storage-rbd libvirt-daemon-driver-storage-scsi - libvirt-daemon-kvm - libvirt-daemon-qemu libvirt-devel libvirt-docs libvirt-libs @@ -1378,8 +1373,6 @@ zziplib-utils unixODBC-devel jemalloc-devel - DCF - opengauss grub2-efi-aa64 @@ -1410,7 +1403,6 @@ grub2-help lvm2-help lvm2 - shim mdadm mdadm-help dosfstools-help