oemaker/0001-add-riscv64-support.patch

2910 lines
123 KiB
Diff
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

From 924f6801cb6af7d897c4de5b9ae7965426a98335 Mon Sep 17 00:00:00 2001
From: ouuleilei <wangliu@iscas.ac.cn>
Date: Thu, 13 Jun 2024 13:11:27 +0800
Subject: [PATCH] add riscv64 support
---
envmaker/config/compile_env_rpmlist.xml | 4 +
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 | 46 +
isomaker/80-openeuler/efi.tmpl | 14 +-
isomaker/80-openeuler/live/efi.tmpl | 5 +
isomaker/80-openeuler/live/riscv64.tmpl | 82 +
isomaker/80-openeuler/riscv64.tmpl | 75 +
isomaker/80-openeuler/runtime-cleanup.tmpl | 2 +
isomaker/80-openeuler/runtime-install.tmpl | 7 +-
isomaker/config/common/livecd/live/efi.tmpl | 3 +
isomaker/config/riscv64/desktop_normal.xml | 0
isomaker/config/riscv64/edge_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 | 111 ++
isomaker/config/riscv64/normal.xml | 1569 +++++++++++++++++
isomaker/config/riscv64/standard.conf | 6 +
isomaker/init.sh | 2 +-
isomaker/iso.sh | 18 +-
27 files changed, 2538 insertions(+), 17 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/edge_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..b7b99ce 100644
--- a/envmaker/config/compile_env_rpmlist.xml
+++ b/envmaker/config/compile_env_rpmlist.xml
@@ -17,6 +17,10 @@
<packagereq>grub2-efi-x64-modules</packagereq>
</packagelist>
+ <packagelist type="riscv64">
+ <packagereq>grub2-efi-riscv64-modules</packagereq>
+ </packagelist>
+
<packagelist type="common">
<packagereq>acl</packagereq>
<packagereq>acpica-tools</packagereq>
diff --git a/envmaker/config/riscv64/openEuler_repo.conf b/envmaker/config/riscv64/openEuler_repo.conf
new file mode 100644
index 0000000..d2a677c
--- /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
\ No newline at end of file
diff --git a/isocut/config/riscv64/anaconda-ks.cfg b/isocut/config/riscv64/anaconda-ks.cfg
new file mode 100644
index 0000000..f586d14
--- /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
\ No newline at end of file
diff --git a/isocut/config/riscv64/rpmlist b/isocut/config/riscv64/rpmlist
new file mode 100644
index 0000000..78c2220
--- /dev/null
+++ b/isocut/config/riscv64/rpmlist
@@ -0,0 +1 @@
+kernel.riscv64
\ No newline at end of file
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 01<ENTER>07 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..a36d183
--- /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@
\ No newline at end of file
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..b19ceb2
--- /dev/null
+++ b/isomaker/80-openeuler/config_files/riscv64/grub2-efi.cfg
@@ -0,0 +1,46 @@
+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
+### 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@
+ }
+}
\ No newline at end of file
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..25e07f3 100644
--- a/isomaker/80-openeuler/live/efi.tmpl
+++ b/isomaker/80-openeuler/live/efi.tmpl
@@ -6,10 +6,15 @@ 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
%endif
+%endif
%if efiarch32:
install boot/efi/EFI/*/shim${efiarch32|lower}.efi ${EFIBOOTDIR}/BOOT${efiarch32}.EFI
install boot/efi/EFI/*/mm${efiarch32|lower}.efi ${EFIBOOTDIR}/
diff --git a/isomaker/80-openeuler/live/riscv64.tmpl b/isomaker/80-openeuler/live/riscv64.tmpl
new file mode 100644
index 0000000..5f160b5
--- /dev/null
+++ b/isomaker/80-openeuler/live/riscv64.tmpl
@@ -0,0 +1,82 @@
+<%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
\ No newline at end of file
diff --git a/isomaker/80-openeuler/riscv64.tmpl b/isomaker/80-openeuler/riscv64.tmpl
new file mode 100644
index 0000000..c6afbff
--- /dev/null
+++ b/isomaker/80-openeuler/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
+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
\ No newline at end of file
diff --git a/isomaker/80-openeuler/runtime-cleanup.tmpl b/isomaker/80-openeuler/runtime-cleanup.tmpl
index 8d4b423..f3c2664 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 fdfc489..31fe163 100644
--- a/isomaker/config/common/livecd/live/efi.tmpl
+++ b/isomaker/config/common/livecd/live/efi.tmpl
@@ -15,6 +15,9 @@ mkdir ${EFIBOOTDIR}/fonts/
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/*/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}/
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/edge_normal.xml b/isomaker/config/riscv64/edge_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 01<ENTER>07 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..ee47854
--- /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@
\ No newline at end of file
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..182fdd2
--- /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@
+ }
+}
\ No newline at end of file
diff --git a/isomaker/config/riscv64/livecd/live/riscv64.tmpl b/isomaker/config/riscv64/livecd/live/riscv64.tmpl
new file mode 100644
index 0000000..9c14d3f
--- /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
\ No newline at end of file
diff --git a/isomaker/config/riscv64/livecd/livecd_riscv64.ks b/isomaker/config/riscv64/livecd/livecd_riscv64.ks
new file mode 100644
index 0000000..fba4995
--- /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
\ No newline at end of file
diff --git a/isomaker/config/riscv64/livecd/rpmlist b/isomaker/config/riscv64/livecd/rpmlist
new file mode 100644
index 0000000..a35b61f
--- /dev/null
+++ b/isomaker/config/riscv64/livecd/rpmlist
@@ -0,0 +1,111 @@
+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
+grub2-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-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
\ No newline at end of file
diff --git a/isomaker/config/riscv64/normal.xml b/isomaker/config/riscv64/normal.xml
new file mode 100644
index 0000000..5677a02
--- /dev/null
+++ b/isomaker/config/riscv64/normal.xml
@@ -0,0 +1,1569 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE comps
+ PUBLIC '-//openEuler//DTD Comps info//EN'
+ 'comps.dtd'>
+<comps>
+ <group>
+ <id>additional-devel</id>
+ <name>Additional Development</name>
+ <name xml:lang="zh_CN">附加开发</name>
+ <description>Additional development headers and libraries for building open-source applications.</description>
+ <description xml:lang="zh_CN">用于构建开源应用程序的附加开发标头及程序可。</description>
+ <default>true</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="mandatory">audit-libs-devel</packagereq>
+ <packagereq type="mandatory">bzip2-devel</packagereq>
+ <packagereq type="mandatory">c-ares-devel</packagereq>
+ <packagereq type="mandatory">cyrus-sasl-devel</packagereq>
+ <packagereq type="mandatory">e2fsprogs-devel</packagereq>
+ <packagereq type="mandatory">elfutils-devel</packagereq>
+ <packagereq type="mandatory">elfutils-libelf-devel</packagereq>
+ <packagereq type="mandatory">expat-devel</packagereq>
+ <packagereq type="mandatory">fuse3-devel</packagereq>
+ <packagereq type="mandatory">gmp-devel</packagereq>
+ <packagereq type="mandatory">lksctp-tools-devel</packagereq>
+ <packagereq type="mandatory">iptables-devel</packagereq>
+ <packagereq type="mandatory">libacl-devel</packagereq>
+ <packagereq type="mandatory">libaio-devel</packagereq>
+ <packagereq type="mandatory">libattr-devel</packagereq>
+ <packagereq type="mandatory">libblkid-devel</packagereq>
+ <packagereq type="mandatory">libcap-devel</packagereq>
+ <packagereq type="mandatory">libcap-ng-devel</packagereq>
+ <packagereq type="mandatory">libcurl-devel</packagereq>
+ <packagereq type="mandatory">libffi-devel</packagereq>
+ <packagereq type="mandatory">libgcrypt-devel</packagereq>
+ <packagereq type="mandatory">libnl3-devel</packagereq>
+ <packagereq type="mandatory">libselinux-devel</packagereq>
+ <packagereq type="mandatory">libusbx-devel</packagereq>
+ <packagereq type="mandatory">libuuid-devel</packagereq>
+ <packagereq type="mandatory">lksctp-tools-devel</packagereq>
+ <packagereq type="mandatory">lz4</packagereq>
+ <packagereq type="mandatory">lz4-devel</packagereq>
+ <packagereq type="mandatory">lzo</packagereq>
+ <packagereq type="mandatory">lzo-devel</packagereq>
+ <packagereq type="mandatory">numactl-devel</packagereq>
+ <packagereq type="mandatory">pciutils-devel</packagereq>
+ <packagereq type="mandatory">pcre-devel</packagereq>
+ <packagereq type="mandatory">polkit-devel</packagereq>
+ <packagereq type="mandatory">popt-devel</packagereq>
+ <packagereq type="mandatory">rdma-core-devel</packagereq>
+ <packagereq type="mandatory">readline-devel</packagereq>
+ <packagereq type="mandatory">sqlite-devel</packagereq>
+ <packagereq type="mandatory">systemd-devel</packagereq>
+ <packagereq type="mandatory">tcl-devel</packagereq>
+ <packagereq type="mandatory">xfsprogs-devel</packagereq>
+ <packagereq type="mandatory">xz-devel</packagereq>
+ <packagereq type="mandatory">SDL-devel</packagereq>
+ <packagereq type="mandatory">alsa-lib-devel</packagereq>
+ <packagereq type="mandatory">binutils-devel</packagereq>
+ <packagereq type="mandatory">boost-devel</packagereq>
+ <packagereq type="mandatory">dbus-glib-devel</packagereq>
+ <packagereq type="mandatory">gd-devel</packagereq>
+ <packagereq type="mandatory">gnutls-devel</packagereq>
+ <packagereq type="mandatory">gpm-devel</packagereq>
+ <packagereq type="mandatory">gstreamer1-devel</packagereq>
+ <packagereq type="mandatory">gstreamer1-plugins-base-devel</packagereq>
+ <packagereq type="mandatory">hunspell-devel</packagereq>
+ <packagereq type="mandatory">java-1.8.0-openjdk-devel</packagereq>
+ <packagereq type="mandatory">libXau-devel</packagereq>
+ <packagereq type="mandatory">libXaw-devel</packagereq>
+ <packagereq type="mandatory">libXinerama-devel</packagereq>
+ <packagereq type="mandatory">libXmu-devel</packagereq>
+ <packagereq type="mandatory">libXrandr-devel</packagereq>
+ <packagereq type="mandatory">libcanberra-devel</packagereq>
+ <packagereq type="mandatory">libdrm-devel</packagereq>
+ <packagereq type="mandatory">libnotify-devel</packagereq>
+ <packagereq type="mandatory">libpfm-devel</packagereq>
+ <packagereq type="mandatory">libpq-devel</packagereq>
+ <packagereq type="mandatory">librsvg2-devel</packagereq>
+ <packagereq type="mandatory">libsoup-devel</packagereq>
+ <packagereq type="mandatory">libssh-devel</packagereq>
+ <packagereq type="mandatory">libtiff-devel</packagereq>
+ <packagereq type="mandatory">libxslt-devel</packagereq>
+ <packagereq type="mandatory">mariadb-devel</packagereq>
+ <packagereq type="mandatory">mpfr-devel</packagereq>
+ <packagereq type="mandatory">net-snmp-devel</packagereq>
+ <packagereq type="mandatory">newt-devel</packagereq>
+ <packagereq type="mandatory">openscap-devel</packagereq>
+ <packagereq type="mandatory">papi-devel</packagereq>
+ <packagereq type="mandatory">protobuf-c</packagereq>
+ <packagereq type="mandatory">sane-backends-devel</packagereq>
+ <packagereq type="mandatory">slang-devel</packagereq>
+ <packagereq type="mandatory">startup-notification-devel</packagereq>
+ <packagereq type="mandatory">tbb-devel</packagereq>
+ <packagereq type="mandatory">tk-devel</packagereq>
+ <packagereq type="mandatory">unixODBC-devel</packagereq>
+ <packagereq type="mandatory">xorg-x11-proto-devel</packagereq>
+ <packagereq type="optional">flatpak</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>anaconda-tools</id>
+ <name>Anaconda tools</name>
+ <name xml:lang="zh_CN">Anaconda 工具</name>
+ <description/>
+ <default>false</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="mandatory">lorax</packagereq>
+ <packagereq type="mandatory">chrony</packagereq>
+ <packagereq type="mandatory">cryptsetup</packagereq>
+ <packagereq type="mandatory">device-mapper-multipath</packagereq>
+ <packagereq type="mandatory">dosfstools</packagereq>
+ <packagereq type="mandatory">dracut-network</packagereq>
+ <packagereq type="mandatory">e2fsprogs</packagereq>
+ <packagereq type="mandatory">efibootmgr</packagereq>
+ <packagereq type="mandatory">fcoe-utils</packagereq>
+ <packagereq type="mandatory">firewalld</packagereq>
+ <packagereq type="mandatory">gfs2-utils</packagereq>
+ <packagereq type="mandatory">glibc-all-langpacks</packagereq>
+ <packagereq type="mandatory">grub2-efi-riscv64</packagereq>
+ <packagereq type="mandatory">grub2-efi-riscv64-cdboot</packagereq>
+ <packagereq type="mandatory">grub2-tools</packagereq>
+ <packagereq type="mandatory">grub2-tools-extra</packagereq>
+ <packagereq type="mandatory">iscsi-initiator-utils</packagereq>
+ <packagereq type="mandatory">lvm2</packagereq>
+ <packagereq type="mandatory">mdadm</packagereq>
+ <packagereq type="mandatory">realmd</packagereq>
+ <packagereq type="mandatory">libteam</packagereq>
+ <packagereq type="mandatory">tmux</packagereq>
+ <packagereq type="mandatory">xfsprogs</packagereq>
+ <packagereq type="mandatory">authselect-compat</packagereq>
+ <packagereq type="mandatory">kdump-anaconda-addon</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>base</id>
+ <name>Base</name>
+ <name xml:lang="zh_CN">基本</name>
+ <description>The standard installation.</description>
+ <default>true</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="mandatory">acl</packagereq>
+ <packagereq type="mandatory">at</packagereq>
+ <packagereq type="mandatory">attr</packagereq>
+ <packagereq type="mandatory">bc</packagereq>
+ <packagereq type="mandatory">cpio</packagereq>
+ <packagereq type="mandatory">crontabs</packagereq>
+ <packagereq type="mandatory">cyrus-sasl</packagereq>
+ <packagereq type="mandatory">dbus</packagereq>
+ <packagereq type="mandatory">ed</packagereq>
+ <packagereq type="mandatory">file</packagereq>
+ <packagereq type="mandatory">iptstate</packagereq>
+ <packagereq type="mandatory">irqbalance</packagereq>
+ <packagereq type="mandatory">kpatch</packagereq>
+ <packagereq type="mandatory">logrotate</packagereq>
+ <packagereq type="mandatory">lsof</packagereq>
+ <packagereq type="mandatory">net-tools</packagereq>
+ <packagereq type="mandatory">pciutils</packagereq>
+ <packagereq type="mandatory">psacct</packagereq>
+ <packagereq type="mandatory">quota</packagereq>
+ <packagereq type="mandatory">openEuler-release</packagereq>
+ <packagereq type="mandatory">openEuler-latest-release</packagereq>
+ <packagereq type="mandatory">sudo</packagereq>
+ <packagereq type="mandatory">symlinks</packagereq>
+ <packagereq type="mandatory">systemd-udev</packagereq>
+ <packagereq type="mandatory">tar</packagereq>
+ <packagereq type="mandatory">tree</packagereq>
+ <packagereq type="mandatory">util-linux-user</packagereq>
+ <packagereq type="default">bash-completion</packagereq>
+ <packagereq type="default">bpftool</packagereq>
+ <packagereq type="default">bzip2</packagereq>
+ <packagereq type="default">chrony</packagereq>
+ <packagereq type="default">cockpit</packagereq>
+ <packagereq type="default">cryptsetup</packagereq>
+ <packagereq type="default">dos2unix</packagereq>
+ <packagereq type="default">dosfstools</packagereq>
+ <packagereq type="default">ethtool</packagereq>
+ <packagereq type="default">gnupg2</packagereq>
+ <packagereq type="default">libstoragemgmt</packagereq>
+ <packagereq type="default">lvm2</packagereq>
+ <packagereq type="default">mailcap</packagereq>
+ <packagereq type="default">man-pages</packagereq>
+ <packagereq type="default">mdadm</packagereq>
+ <packagereq type="default">mlocate</packagereq>
+ <packagereq type="default">mtr</packagereq>
+ <packagereq type="default">nano</packagereq>
+ <packagereq type="default">realmd</packagereq>
+ <packagereq type="default">rng-tools</packagereq>
+ <packagereq type="default">rsync</packagereq>
+ <packagereq type="default">smartmontools</packagereq>
+ <packagereq type="default">sssd</packagereq>
+ <packagereq type="default">strace</packagereq>
+ <packagereq type="default">libteam</packagereq>
+ <packagereq type="default">time</packagereq>
+ <packagereq type="default">unzip</packagereq>
+ <packagereq type="default">usbutils</packagereq>
+ <packagereq type="default">virt-what</packagereq>
+ <packagereq type="default">which</packagereq>
+ <packagereq type="default">words</packagereq>
+ <packagereq type="default">xfsdump</packagereq>
+ <packagereq type="default">zip</packagereq>
+ <packagereq type="optional">cifs-utils</packagereq>
+ <packagereq type="optional">cockpit-doc</packagereq>
+ <packagereq type="optional">ima-evm-utils</packagereq>
+ <packagereq type="optional">nfs-utils</packagereq>
+ <packagereq type="optional">traceroute</packagereq>
+ <packagereq type="optional">zsh</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>conflicts-baseos</id>
+ <name>Conflicts BaseOS</name>
+ <name xml:lang="zh_CN">与 BaseOS 冲突</name>
+ <description>This group includes packages conflicting with an everything installation from the BaseOS repo</description>
+ <description xml:lang="zh_CN">这个组包括了与通过 BaseOS repo 安装的软件冲突的软件包</description>
+ <default>false</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ </packagelist>
+ </group>
+ <group>
+ <id>container-management</id>
+ <name>Container Management</name>
+ <name xml:lang="zh_CN">容器管理</name>
+ <description>Tools for managing Linux containers</description>
+ <description xml:lang="zh_CN">用于管理 Linux 容器的工具</description>
+ <default>true</default>
+ <uservisible>true</uservisible>
+ <packagelist>
+ <packagereq type="mandatory">containernetworking-plugins</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>core</id>
+ <name>Core</name>
+ <name xml:lang="zh_CN">核心</name>
+ <description>Smallest possible installation</description>
+ <description xml:lang="zh_CN">最小安装</description>
+ <default>true</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="mandatory">audit</packagereq>
+ <packagereq type="mandatory">kernel</packagereq>
+ <packagereq type="mandatory">basesystem</packagereq>
+ <packagereq type="mandatory">bash</packagereq>
+ <packagereq type="mandatory">coreutils</packagereq>
+ <packagereq type="mandatory">cronie</packagereq>
+ <packagereq type="mandatory">curl</packagereq>
+ <packagereq type="mandatory">dnf</packagereq>
+ <packagereq type="mandatory">e2fsprogs</packagereq>
+ <packagereq type="mandatory">filesystem</packagereq>
+ <packagereq type="mandatory">firewalld</packagereq>
+ <packagereq type="mandatory">glibc</packagereq>
+ <packagereq type="mandatory">grubby</packagereq>
+ <packagereq type="mandatory">hostname</packagereq>
+ <packagereq type="mandatory">initscripts</packagereq>
+ <packagereq type="mandatory">iproute</packagereq>
+ <packagereq type="mandatory">iprutils</packagereq>
+ <packagereq type="mandatory">iputils</packagereq>
+ <packagereq type="mandatory">irqbalance</packagereq>
+ <packagereq type="mandatory">kbd</packagereq>
+ <packagereq type="mandatory">kexec-tools</packagereq>
+ <packagereq type="mandatory">less</packagereq>
+ <packagereq type="mandatory">man-db</packagereq>
+ <packagereq type="mandatory">ncurses</packagereq>
+ <packagereq type="mandatory">openssh</packagereq>
+ <packagereq type="mandatory">openssh-server</packagereq>
+ <packagereq type="mandatory">openssh-clients</packagereq>
+ <packagereq type="mandatory">openEuler-release</packagereq>
+ <packagereq type="mandatory">openEuler-latest-release</packagereq>
+ <packagereq type="mandatory">parted</packagereq>
+ <packagereq type="mandatory">passwd</packagereq>
+ <packagereq type="mandatory">policycoreutils</packagereq>
+ <packagereq type="mandatory">procps-ng</packagereq>
+ <packagereq type="mandatory">rng-tools</packagereq>
+ <packagereq type="mandatory">rootfiles</packagereq>
+ <packagereq type="mandatory">rpm</packagereq>
+ <packagereq type="mandatory">selinux-policy-targeted</packagereq>
+ <packagereq type="mandatory">setup</packagereq>
+ <packagereq type="mandatory">shadow</packagereq>
+ <packagereq type="mandatory">sssd</packagereq>
+ <packagereq type="mandatory">sudo</packagereq>
+ <packagereq type="mandatory">systemd</packagereq>
+ <packagereq type="mandatory">tuned</packagereq>
+ <packagereq type="mandatory">util-linux</packagereq>
+ <packagereq type="mandatory">vim-minimal</packagereq>
+ <packagereq type="mandatory">xfsprogs</packagereq>
+ <packagereq type="mandatory">yum</packagereq>
+ <packagereq type="mandatory">wget</packagereq>
+ <packagereq type="default">NetworkManager</packagereq>
+ <packagereq type="default">NetworkManager-config-server</packagereq>
+ <packagereq type="default">authselect</packagereq>
+ <packagereq type="default">dnf-plugins-core</packagereq>
+ <packagereq type="default">dracut-config-rescue</packagereq>
+ <packagereq type="default">kernel-tools</packagereq>
+ <packagereq type="default">sysfsutils</packagereq>
+ <packagereq type="default">linux-firmware</packagereq>
+ <packagereq type="default">lshw</packagereq>
+ <packagereq type="default">lsscsi</packagereq>
+ <packagereq type="default">rsyslog</packagereq>
+ <packagereq type="default">security-tool</packagereq>
+ <packagereq type="default">sg3_utils</packagereq>
+ <packagereq type="optional">dracut-config-generic</packagereq>
+ <packagereq type="optional">dracut-network</packagereq>
+ <packagereq type="optional">rdma-core</packagereq>
+ <packagereq type="optional">selinux-policy-mls</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>desktop-debugging</id>
+ <name>Desktop Debugging and Performance Tools</name>
+ <name xml:lang="zh_CN">桌面调试和运行工具</name>
+ <description>GUI tools for debugging applications and performance.</description>
+ <description xml:lang="zh_CN">调试应用程序和性能的 GUI 工具。</description>
+ <default>true</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="default">crash</packagereq>
+ <packagereq type="default">crash-gcore-command</packagereq>
+ <packagereq type="default">crash-trace-command</packagereq>
+ <packagereq type="optional">xrestop</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>development</id>
+ <name>Development Tools</name>
+ <name xml:lang="zh_CN">开发工具</name>
+ <description>A basic development environment.</description>
+ <description xml:lang="zh_CN">基本开发环境。</description>
+ <default>true</default>
+ <uservisible>true</uservisible>
+ <packagelist>
+ <packagereq type="mandatory">autoconf</packagereq>
+ <packagereq type="mandatory">automake</packagereq>
+ <packagereq type="mandatory">binutils</packagereq>
+ <packagereq type="mandatory">bison</packagereq>
+ <packagereq type="mandatory">flex</packagereq>
+ <packagereq type="mandatory">gcc</packagereq>
+ <packagereq type="mandatory">gcc-c++</packagereq>
+ <packagereq type="mandatory">glibc-devel</packagereq>
+ <packagereq type="mandatory">gettext</packagereq>
+ <packagereq type="mandatory">gdb</packagereq>
+ <packagereq type="mandatory">libtool</packagereq>
+ <packagereq type="mandatory">make</packagereq>
+ <packagereq type="mandatory">patch</packagereq>
+ <packagereq type="mandatory">pkgconf</packagereq>
+ <packagereq type="mandatory">openEuler-rpm-config</packagereq>
+ <packagereq type="mandatory">rpm-build</packagereq>
+ <packagereq type="mandatory">rpm</packagereq>
+ <packagereq type="default">asciidoc</packagereq>
+ <packagereq type="default">byacc</packagereq>
+ <packagereq type="default">ctags</packagereq>
+ <packagereq type="default">diffstat</packagereq>
+ <packagereq type="default">elfutils</packagereq>
+ <packagereq type="default">gcc-gfortran</packagereq>
+ <packagereq type="default">git</packagereq>
+ <packagereq type="default">subversion</packagereq>
+ <packagereq type="default">intltool</packagereq>
+ <packagereq type="default">ltrace</packagereq>
+ <packagereq type="default">patchutils</packagereq>
+ <packagereq type="default">perl-Fedora-VSP</packagereq>
+ <packagereq type="default">perl-generators</packagereq>
+ <packagereq type="default">pesign</packagereq>
+ <packagereq type="default">source-highlight</packagereq>
+ <packagereq type="default">systemtap</packagereq>
+ <packagereq type="optional">babel</packagereq>
+ <packagereq type="optional">chrpath</packagereq>
+ <packagereq type="optional">expect</packagereq>
+ <packagereq type="optional">gcc-objc</packagereq>
+ <packagereq type="optional">gcc-objc++</packagereq>
+ <packagereq type="optional">mercurial</packagereq>
+ <packagereq type="optional">mod_dav_svn</packagereq>
+ <packagereq type="optional">systemtap-sdt-devel</packagereq>
+ <packagereq type="optional">systemtap-server</packagereq>
+ <packagereq type="optional">cmake</packagereq>
+ <packagereq type="optional">rpmdevtools</packagereq>
+ <packagereq type="optional">rpmlint</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>dial-up</id>
+ <name>Dial-up Networking Support</name>
+ <name xml:lang="zh_CN">拨号网络支持</name>
+ <description/>
+ <default>true</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="mandatory">ppp</packagereq>
+ <packagereq type="default">ModemManager</packagereq>
+ <packagereq type="default">NetworkManager-adsl</packagereq>
+ <packagereq type="default">lrzsz</packagereq>
+ <packagereq type="default">minicom</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>dns-server</id>
+ <name>DNS Name Server</name>
+ <name xml:lang="zh_CN">DNS 名称服务器</name>
+ <description>This package group allows you to run a DNS name server (BIND) on the system.</description>
+ <description xml:lang="zh_CN">该软件包组允许您在系统上运行 DNS 名称服务器(BIND)。</description>
+ <default>false</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="default">bind</packagereq>
+ <packagereq type="default">bind-chroot</packagereq>
+ <packagereq type="optional">bind-dyndb-ldap</packagereq>
+ <packagereq type="optional">unbound</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>directory-client</id>
+ <name>Directory Client</name>
+ <name xml:lang="zh_CN">目录客户端</name>
+ <description>Clients for integration into a network managed by a directory service.</description>
+ <description xml:lang="zh_CN">用于整合到使用目录服务管理的网络的客户端。</description>
+ <default>false</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="default">adcli</packagereq>
+ <packagereq type="default">oddjob-mkhomedir</packagereq>
+ <packagereq type="default">realmd</packagereq>
+ <packagereq type="default">sssd</packagereq>
+ <packagereq type="optional">clevis-dracut</packagereq>
+ <packagereq type="optional">clevis-udisks2</packagereq>
+ <packagereq type="optional">krb5-pkinit</packagereq>
+ <packagereq type="optional">krb5-workstation</packagereq>
+ <packagereq type="optional">luksmeta</packagereq>
+ <packagereq type="optional">nss-pam-ldapd</packagereq>
+ <packagereq type="optional">openldap-clients</packagereq>
+ <packagereq type="optional">samba-winbind</packagereq>
+ <packagereq type="optional">samba-winbind-clients</packagereq>
+ <packagereq type="optional">sssd-dbus</packagereq>
+ <packagereq type="optional">sssd-tools</packagereq>
+ <packagereq type="optional">sssd-winbind-idmap</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>file-server</id>
+ <name>File and Storage Server</name>
+ <name xml:lang="zh_CN">文件及存储服务器</name>
+ <description>CIFS, SMB, NFS, iSCSI, iSER, and iSNS network storage server.</description>
+ <description xml:lang="zh_CN">CIFS, SMB, NFS, iSCSI, iSER 及 iSNS 网络存储服务器。</description>
+ <default>true</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="mandatory">cifs-utils</packagereq>
+ <packagereq type="mandatory">gssproxy</packagereq>
+ <packagereq type="mandatory">nfs-utils</packagereq>
+ <packagereq type="mandatory">nfs4-acl-tools</packagereq>
+ <packagereq type="mandatory">samba</packagereq>
+ <packagereq type="optional">open-isns</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>opengauss-server</id>
+ <name>openGauss Server</name>
+ <name xml:lang="zh_CN">openGauss数据库</name>
+ <description>openGauss is an open source relational database management system.</description>
+ <description xml:lang="zh_CN">openGauss一款开源的关系数据库管理系统。</description>
+ <default>true</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="mandatory">lz4-devel</packagereq>
+ <packagereq type="mandatory">protobuf-devel</packagereq>
+ <packagereq type="mandatory">snappy-devel</packagereq>
+ <packagereq type="mandatory">zstd-devel</packagereq>
+ <packagereq type="mandatory">boost-devel</packagereq>
+ <packagereq type="mandatory">libcgroup-devel</packagereq>
+ <packagereq type="mandatory">unixODBC-devel</packagereq>
+ <packagereq type="mandatory">jemalloc-devel</packagereq>
+ <packagereq type="mandatory">java-1.8.0-openjdk-devel</packagereq>
+ <packagereq type="mandatory">libedit-devel</packagereq>
+ <packagereq type="mandatory">libaio-devel</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>fonts</id>
+ <name>Fonts</name>
+ <name xml:lang="zh_CN">字体</name>
+ <description>Fonts packages for rendering text on the desktop.</description>
+ <description xml:lang="zh_CN">用于在桌面显示文字的字体软件包。</description>
+ <default>true</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="default">dejavu-sans-fonts</packagereq>
+ <packagereq type="default">dejavu-sans-mono-fonts</packagereq>
+ <packagereq type="default">dejavu-serif-fonts</packagereq>
+ <packagereq type="default">abattis-cantarell-fonts</packagereq>
+ <packagereq type="default">gnu-free-mono-fonts</packagereq>
+ <packagereq type="default">gnu-free-sans-fonts</packagereq>
+ <packagereq type="default">gnu-free-serif-fonts</packagereq>
+ <packagereq type="default">google-noto-sans-cjk-ttc-fonts</packagereq>
+ <packagereq type="default">google-noto-serif-cjk-ttc-fonts</packagereq>
+ <packagereq type="default">jomolhari-fonts</packagereq>
+ <packagereq type="default">julietaula-montserrat-fonts</packagereq>
+ <packagereq type="default">paktype-naskh-basic-fonts</packagereq>
+ <packagereq type="default">paratype-pt-sans-fonts</packagereq>
+ <packagereq type="default">sil-abyssinica-fonts</packagereq>
+ <packagereq type="default">sil-nuosu-fonts</packagereq>
+ <packagereq type="default">sil-padauk-fonts</packagereq>
+ <packagereq type="default">smc-meera-fonts</packagereq>
+ <packagereq type="default">stix-fonts</packagereq>
+ <packagereq type="default">thai-scalable-waree-fonts</packagereq>
+ <packagereq type="optional">bpg-algeti-fonts</packagereq>
+ <packagereq type="optional">bpg-chveulebrivi-fonts</packagereq>
+ <packagereq type="optional">bpg-courier-fonts</packagereq>
+ <packagereq type="optional">bpg-courier-s-fonts</packagereq>
+ <packagereq type="optional">bpg-elite-fonts</packagereq>
+ <packagereq type="optional">bpg-excelsior-fonts</packagereq>
+ <packagereq type="optional">bpg-glaho-fonts</packagereq>
+ <packagereq type="optional">bpg-ingiri-fonts</packagereq>
+ <packagereq type="optional">bpg-nino-medium-cond-fonts</packagereq>
+ <packagereq type="optional">bpg-nino-medium-fonts</packagereq>
+ <packagereq type="optional">bpg-sans-fonts</packagereq>
+ <packagereq type="optional">bpg-sans-medium-fonts</packagereq>
+ <packagereq type="optional">bpg-sans-modern-fonts</packagereq>
+ <packagereq type="optional">bpg-sans-regular-fonts</packagereq>
+ <packagereq type="optional">bpg-serif-fonts</packagereq>
+ <packagereq type="optional">bpg-serif-modern-fonts</packagereq>
+ <packagereq type="optional">fontawesome-fonts</packagereq>
+ <packagereq type="optional">google-droid-kufi-fonts</packagereq>
+ <packagereq type="optional">google-droid-sans-fonts</packagereq>
+ <packagereq type="optional">google-droid-sans-mono-fonts</packagereq>
+ <packagereq type="optional">google-droid-serif-fonts</packagereq>
+ <packagereq type="optional">gubbi-fonts</packagereq>
+ <packagereq type="optional">kacst-art-fonts</packagereq>
+ <packagereq type="optional">kacst-book-fonts</packagereq>
+ <packagereq type="optional">kacst-decorative-fonts</packagereq>
+ <packagereq type="optional">kacst-digital-fonts</packagereq>
+ <packagereq type="optional">kacst-farsi-fonts</packagereq>
+ <packagereq type="optional">kacst-letter-fonts</packagereq>
+ <packagereq type="optional">kacst-naskh-fonts</packagereq>
+ <packagereq type="optional">kacst-office-fonts</packagereq>
+ <packagereq type="optional">kacst-one-fonts</packagereq>
+ <packagereq type="optional">kacst-pen-fonts</packagereq>
+ <packagereq type="optional">kacst-poster-fonts</packagereq>
+ <packagereq type="optional">kacst-qurn-fonts</packagereq>
+ <packagereq type="optional">kacst-screen-fonts</packagereq>
+ <packagereq type="optional">kacst-title-fonts</packagereq>
+ <packagereq type="optional">kacst-titlel-fonts</packagereq>
+ <packagereq type="optional">kurdit-unikurd-web-fonts</packagereq>
+ <packagereq type="optional">lato-fonts</packagereq>
+ <packagereq type="optional">madan-fonts</packagereq>
+ <packagereq type="optional">nafees-web-naskh-fonts</packagereq>
+ <packagereq type="optional">navilu-fonts</packagereq>
+ <packagereq type="optional">overpass-fonts</packagereq>
+ <packagereq type="optional">paktype-naqsh-fonts</packagereq>
+ <packagereq type="optional">paktype-tehreer-fonts</packagereq>
+ <packagereq type="optional">saab-fonts</packagereq>
+ <packagereq type="optional">samyak-devanagari-fonts</packagereq>
+ <packagereq type="optional">samyak-gujarati-fonts</packagereq>
+ <packagereq type="optional">samyak-malayalam-fonts</packagereq>
+ <packagereq type="optional">samyak-odia-fonts</packagereq>
+ <packagereq type="optional">samyak-tamil-fonts</packagereq>
+ <packagereq type="optional">sil-scheherazade-fonts</packagereq>
+ <packagereq type="optional">smc-anjalioldlipi-fonts</packagereq>
+ <packagereq type="optional">smc-dyuthi-fonts</packagereq>
+ <packagereq type="optional">smc-kalyani-fonts</packagereq>
+ <packagereq type="optional">smc-rachana-fonts</packagereq>
+ <packagereq type="optional">smc-raghumalayalam-fonts</packagereq>
+ <packagereq type="optional">smc-suruma-fonts</packagereq>
+ <packagereq type="optional">stix-math-fonts</packagereq>
+ <packagereq type="optional">thai-scalable-garuda-fonts</packagereq>
+ <packagereq type="optional">thai-scalable-kinnari-fonts</packagereq>
+ <packagereq type="optional">thai-scalable-loma-fonts</packagereq>
+ <packagereq type="optional">thai-scalable-norasi-fonts</packagereq>
+ <packagereq type="optional">thai-scalable-purisa-fonts</packagereq>
+ <packagereq type="optional">thai-scalable-sawasdee-fonts</packagereq>
+ <packagereq type="optional">thai-scalable-tlwgmono-fonts</packagereq>
+ <packagereq type="optional">thai-scalable-tlwgtypewriter-fonts</packagereq>
+ <packagereq type="optional">thai-scalable-tlwgtypist-fonts</packagereq>
+ <packagereq type="optional">thai-scalable-tlwgtypo-fonts</packagereq>
+ <packagereq type="optional">thai-scalable-umpush-fonts</packagereq>
+ <packagereq type="optional">tibetan-machine-uni-fonts</packagereq>
+ <packagereq type="optional">wqy-microhei-fonts</packagereq>
+ <packagereq type="optional">xorg-x11-fonts-100dpi</packagereq>
+ <packagereq type="optional">xorg-x11-fonts-75dpi</packagereq>
+ <packagereq type="optional">xorg-x11-fonts-ISO8859-1-100dpi</packagereq>
+ <packagereq type="optional">xorg-x11-fonts-ISO8859-1-75dpi</packagereq>
+ <packagereq type="optional">xorg-x11-fonts-ISO8859-14-100dpi</packagereq>
+ <packagereq type="optional">xorg-x11-fonts-ISO8859-14-75dpi</packagereq>
+ <packagereq type="optional">xorg-x11-fonts-ISO8859-15-100dpi</packagereq>
+ <packagereq type="optional">xorg-x11-fonts-ISO8859-15-75dpi</packagereq>
+ <packagereq type="optional">xorg-x11-fonts-ISO8859-2-100dpi</packagereq>
+ <packagereq type="optional">xorg-x11-fonts-ISO8859-2-75dpi</packagereq>
+ <packagereq type="optional">xorg-x11-fonts-ISO8859-9-100dpi</packagereq>
+ <packagereq type="optional">xorg-x11-fonts-ISO8859-9-75dpi</packagereq>
+ <packagereq type="optional">xorg-x11-fonts-Type1</packagereq>
+ <packagereq type="optional">xorg-x11-fonts-cyrillic</packagereq>
+ <packagereq type="optional">xorg-x11-fonts-misc</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>ftp-server</id>
+ <name>FTP Server</name>
+ <name xml:lang="zh_CN">FTP 服务器</name>
+ <description>These tools allow you to run an FTP server on the system.</description>
+ <description xml:lang="zh_CN">这些工具允许您在系统上运行 FTP 服务器。</description>
+ <default>true</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="mandatory">vsftpd</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>gnome-apps</id>
+ <name>GNOME Applications</name>
+ <name xml:lang="zh_CN">GNOME 应用程序</name>
+ <description>A set of commonly used GNOME Applications.</description>
+ <description xml:lang="zh_CN">一组经常使用的 GNOME 应用程序。</description>
+ <default>false</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ </packagelist>
+ </group>
+ <group>
+ <id>guest-desktop-agents</id>
+ <name>Guest Desktop Agents</name>
+ <name xml:lang="zh_CN">虚拟机桌面代理</name>
+ <description>Agents used when running as a virtualized desktop.</description>
+ <description xml:lang="zh_CN">作为虚拟桌面运行时使用的代理。</description>
+ <default>true</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="mandatory">qemu-guest-agent</packagereq>
+ <packagereq type="mandatory">spice-vdagent</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>hardware-monitoring</id>
+ <name>Hardware Monitoring Utilities</name>
+ <name xml:lang="zh_CN">硬件监控工具</name>
+ <description>A set of tools to monitor server hardware.</description>
+ <description xml:lang="zh_CN">一组用来监控服务器硬件的工具。</description>
+ <default>true</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="default">rasdaemon</packagereq>
+ <packagereq type="default">smartmontools</packagereq>
+ <packagereq type="optional">lm_sensors</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>hardware-support</id>
+ <name>Hardware Support</name>
+ <description>This group is a collection of tools for various hardware specific utilities.</description>
+ <default>true</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="default">bolt</packagereq>
+ <packagereq type="default">usb_modeswitch</packagereq>
+ <packagereq type="default">linux-firmware</packagereq>
+ <packagereq type="optional">lsscsi</packagereq>
+ <packagereq type="optional">opensc</packagereq>
+ <packagereq type="optional">openssl-pkcs11</packagereq>
+ <packagereq type="optional">pcsc-lite</packagereq>
+ <packagereq type="optional">pcsc-lite-ccid</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>headless-management</id>
+ <name>Headless Management</name>
+ <name xml:lang="zh_CN">无图形终端系统管理工具</name>
+ <description>Tools for managing the system without an attached graphical console.</description>
+ <description xml:lang="zh_CN">用于管理无图像终端系统的工具。</description>
+ <default>true</default>
+ <uservisible>true</uservisible>
+ <packagelist>
+ <packagereq type="mandatory">PackageKit</packagereq>
+ <packagereq type="mandatory">cockpit</packagereq>
+ <packagereq type="mandatory">openssh-server</packagereq>
+ <packagereq type="default">sscg</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>infiniband</id>
+ <name>Infiniband Support</name>
+ <name xml:lang="zh_CN">Infiniband 支持</name>
+ <description>Software designed for supporting clustering, grid connectivity, and low-latency, high bandwidth storage using RDMA-based InfiniBand, iWARP, RoCE, and OPA fabrics.</description>
+ <default>true</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="mandatory">libibverbs</packagereq>
+ <packagereq type="mandatory">libibverbs-utils</packagereq>
+ <packagereq type="mandatory">librdmacm</packagereq>
+ <packagereq type="mandatory">librdmacm-utils</packagereq>
+ <packagereq type="mandatory">rdma-core</packagereq>
+ <packagereq type="default">ibacm</packagereq>
+ <packagereq type="default">iwpmd</packagereq>
+ <packagereq type="default">perftest</packagereq>
+ <packagereq type="default">srp_daemon</packagereq>
+ <packagereq type="optional">opensm</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>input-methods</id>
+ <name>Input Methods</name>
+ <name xml:lang="zh_CN">输入法</name>
+ <description>Input method packages for the input of international text.</description>
+ <description xml:lang="zh_CN">输入非英文文本的输入法软件包</description>
+ <default>true</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="default">ibus-m17n</packagereq>
+ <packagereq type="optional">ibus-sayura</packagereq>
+ <packagereq type="optional">ibus-table</packagereq>
+ <packagereq type="optional">ibus-table-array30</packagereq>
+ <packagereq requires="gtk2" type="conditional">gtk2-immodule-xim</packagereq>
+ <packagereq requires="gtk3" type="conditional">gtk3-immodule-xim</packagereq>
+ <packagereq requires="gtk2" type="conditional">ibus-gtk2</packagereq>
+ <packagereq requires="gtk3" type="conditional">ibus-gtk3</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>internet-applications</id>
+ <name>Internet Applications</name>
+ <name xml:lang="zh_CN">互联网应用程序</name>
+ <description>Email, chat, and video conferencing software.</description>
+ <description xml:lang="zh_CN">电子邮件、聊天和视频会议软件。</description>
+ <default>false</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ </packagelist>
+ </group>
+ <group>
+ <id>internet-browser</id>
+ <name>Internet Browser</name>
+ <name xml:lang="zh_CN">互联网浏览器</name>
+ <description>The Firefox web browser</description>
+ <description xml:lang="zh_CN">Firefox web 浏览器</description>
+ <default>true</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="mandatory">firefox</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>java-platform</id>
+ <name>Java Platform</name>
+ <name xml:lang="zh_CN">Java 平台</name>
+ <description>Java support for the Red Hat Enterprise Linux Server and Desktop Platforms.</description>
+ <description xml:lang="zh_CN">Red Hat Enterprise Linux 服务器和桌面平台的 Java 支持。</description>
+ <default>true</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="mandatory">java-1.8.0-openjdk</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>large-systems</id>
+ <name>Large Systems Performance</name>
+ <name xml:lang="zh_CN">大系统性能</name>
+ <description>Performance support tools for large systems.</description>
+ <description xml:lang="zh_CN">用于大型系统的性能支持工具。</description>
+ <default>true</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="mandatory">numactl</packagereq>
+ <packagereq type="mandatory">numad</packagereq>
+ <packagereq type="default">hwloc</packagereq>
+ <packagereq type="default">mstflint</packagereq>
+ <packagereq type="default">qperf</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>legacy-unix</id>
+ <name>Legacy UNIX Compatibility</name>
+ <name xml:lang="zh_CN">传统 UNIX 兼容性</name>
+ <description>Compatibility programs for migration from or working with legacy UNIX environments.</description>
+ <description xml:lang="zh_CN">用于从继承 UNIX 环境中迁移或者可用于该环境的兼容程序。</description>
+ <default>true</default>
+ <uservisible>true</uservisible>
+ <packagelist>
+ <packagereq type="optional">mksh</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>legacy-x</id>
+ <name>Legacy X Window System Compatibility</name>
+ <name xml:lang="zh_CN">传统 X Windows 系统的兼容性</name>
+ <description>Compatibility programs for migration from or working with legacy X Window System environments.</description>
+ <description xml:lang="zh_CN">用于从继承 X Windows 环境中迁移或者可用于该环境的兼容程序。</description>
+ <default>true</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="default">libXmu</packagereq>
+ <packagereq type="default">xorg-x11-fonts-ISO8859-1-100dpi</packagereq>
+ <packagereq type="default">xorg-x11-fonts-Type1</packagereq>
+ <packagereq type="default">xorg-x11-fonts-misc</packagereq>
+ <packagereq type="optional">xterm</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>mail-server</id>
+ <name>Mail Server</name>
+ <name xml:lang="zh_CN">邮件服务器</name>
+ <description>These packages allow you to configure an IMAP or SMTP mail server.</description>
+ <description xml:lang="zh_CN">这些软件包允许您配置 IMAP 或 Postfix 邮件服务器。</description>
+ <default>true</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="default">cyrus-sasl</packagereq>
+ <packagereq type="default">postfix</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>mainframe-access</id>
+ <name>Mainframe Access</name>
+ <name xml:lang="zh_CN">主框架访问</name>
+ <description>Tools for accessing mainframe computing resources.</description>
+ <description xml:lang="zh_CN">访问主框架计算源的工具。</description>
+ <default>true</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="default">x3270-text</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>network-file-system-client</id>
+ <name>Network File System Client</name>
+ <name xml:lang="zh_CN">网络文件系统客户端</name>
+ <description>Enables the system to attach to network storage.</description>
+ <description xml:lang="zh_CN">启用该系统附加到网络存储。</description>
+ <default>true</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="mandatory">cifs-utils</packagereq>
+ <packagereq type="mandatory">device-mapper-multipath</packagereq>
+ <packagereq type="mandatory">fcoe-utils</packagereq>
+ <packagereq type="mandatory">gssproxy</packagereq>
+ <packagereq type="mandatory">iscsi-initiator-utils</packagereq>
+ <packagereq type="mandatory">lldpad</packagereq>
+ <packagereq type="mandatory">nfs-utils</packagereq>
+ <packagereq type="mandatory">nfs4-acl-tools</packagereq>
+ <packagereq type="mandatory">samba-client</packagereq>
+ <packagereq type="optional">cachefilesd</packagereq>
+ <packagereq type="mandatory">cgdcbxd</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>network-server</id>
+ <name>Network Servers</name>
+ <name xml:lang="zh_CN">网络服务器</name>
+ <description>These packages include network-based servers such as DHCP, Kerberos and NIS.</description>
+ <description xml:lang="zh_CN">这些软件包包括基于网络的服务器,例如 DHCP、Kerberos 和 NIS。</description>
+ <default>true</default>
+ <uservisible>true</uservisible>
+ <packagelist>
+ <packagereq type="optional">dhcp-server</packagereq>
+ <packagereq type="optional">krb5-server</packagereq>
+ <packagereq type="optional">dnsmasq</packagereq>
+ <packagereq type="optional">freeradius</packagereq>
+ <packagereq type="optional">libreswan</packagereq>
+ <packagereq type="optional">radvd</packagereq>
+ <packagereq type="optional">rsyslog</packagereq>
+ <packagereq type="optional">rsyslog-mysql</packagereq>
+ <packagereq type="optional">rsyslog-pgsql</packagereq>
+ <packagereq type="optional">rsyslog-relp</packagereq>
+ <packagereq type="optional">tang</packagereq>
+ <packagereq type="optional">tftp-server</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>network-tools</id>
+ <name>Networking Tools</name>
+ <name xml:lang="zh_CN">联网工具</name>
+ <description>Tools for configuring and analyzing computer networks.</description>
+ <description xml:lang="zh_CN">配置和分析计算机网络的工具。</description>
+ <default>true</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="optional">arpwatch</packagereq>
+ <packagereq type="optional">ipset</packagereq>
+ <packagereq type="optional">iptraf-ng</packagereq>
+ <packagereq type="optional">iptstate</packagereq>
+ <packagereq type="optional">dnsmasq</packagereq>
+ <packagereq type="optional">freeradius</packagereq>
+ <packagereq type="optional">libreswan</packagereq>
+ <packagereq type="optional">radvd</packagereq>
+ <packagereq type="optional">rsyslog</packagereq>
+ <packagereq type="optional">rsyslog-mysql</packagereq>
+ <packagereq type="optional">rsyslog-pgsql</packagereq>
+ <packagereq type="optional">rsyslog-relp</packagereq>
+ <packagereq type="optional">tang</packagereq>
+ <packagereq type="optional">tftp-server</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>networkmanager-submodules</id>
+ <name>Common NetworkManager submodules</name>
+ <description>This group contains NetworkManager submodules that are commonly used, but may not be wanted in some streamlined configurations.</description>
+ <default>true</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="default">NetworkManager-bluetooth</packagereq>
+ <packagereq type="default">NetworkManager-wifi</packagereq>
+ <packagereq type="default">NetworkManager-wwan</packagereq>
+ <packagereq type="default">dhcp</packagereq>
+ <packagereq type="default">iptables</packagereq>
+ <packagereq type="default">dnsmasq</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>performance</id>
+ <name>Performance Tools</name>
+ <name xml:lang="zh_CN">性能工具</name>
+ <description>Tools for diagnosing system and application-level performance problems.</description>
+ <description xml:lang="zh_CN">诊断系统和程序级别性能问题的工具。</description>
+ <default>true</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="default">iotop</packagereq>
+ <packagereq type="default">perf</packagereq>
+ <packagereq type="optional">hdparm</packagereq>
+ <packagereq type="optional">tuned</packagereq>
+ <packagereq type="mandatory">sysstat</packagereq>
+ <packagereq type="default">pcp</packagereq>
+ <packagereq type="default">pcp-conf</packagereq>
+ <packagereq type="default">pcp-devel</packagereq>
+ <packagereq type="default">pcp-doc</packagereq>
+ <packagereq type="default">pcp-export-pcp2graphite</packagereq>
+ <packagereq type="default">pcp-export-pcp2influxdb</packagereq>
+ <packagereq type="default">pcp-export-pcp2json</packagereq>
+ <packagereq type="default">pcp-export-pcp2xml</packagereq>
+ <packagereq type="default">pcp-export-pcp2zabbix</packagereq>
+ <packagereq type="default">pcp-export-zabbix-agent</packagereq>
+ <packagereq type="default">pcp-import-collectl2pcp</packagereq>
+ <packagereq type="default">pcp-import-ganglia2pcp</packagereq>
+ <packagereq type="default">pcp-import-iostat2pcp</packagereq>
+ <packagereq type="default">pcp-import-mrtg2pcp</packagereq>
+ <packagereq type="default">pcp-libs</packagereq>
+ <packagereq type="default">pcp-libs-devel</packagereq>
+ <packagereq type="default">pcp-pmda-apache</packagereq>
+ <packagereq type="default">pcp-pmda-bash</packagereq>
+ <packagereq type="default">pcp-pmda-bonding</packagereq>
+ <packagereq type="default">pcp-pmda-cifs</packagereq>
+ <packagereq type="default">pcp-pmda-cisco</packagereq>
+ <packagereq type="default">pcp-pmda-dbping</packagereq>
+ <packagereq type="default">pcp-pmda-dm</packagereq>
+ <packagereq type="default">pcp-pmda-docker</packagereq>
+ <packagereq type="default">pcp-pmda-ds389</packagereq>
+ <packagereq type="default">pcp-pmda-gfs2</packagereq>
+ <packagereq type="default">pcp-pmda-gluster</packagereq>
+ <packagereq type="default">pcp-pmda-gpfs</packagereq>
+ <packagereq type="default">pcp-pmda-gpsd</packagereq>
+ <packagereq type="default">pcp-pmda-haproxy</packagereq>
+ <packagereq type="default">pcp-pmda-infiniband</packagereq>
+ <packagereq type="default">pcp-pmda-json</packagereq>
+ <packagereq type="default">pcp-pmda-kvm</packagereq>
+ <packagereq type="default">pcp-pmda-libvirt</packagereq>
+ <packagereq type="default">pcp-pmda-lio</packagereq>
+ <packagereq type="default">pcp-pmda-lmsensors</packagereq>
+ <packagereq type="default">pcp-pmda-logger</packagereq>
+ <packagereq type="default">pcp-pmda-lustre</packagereq>
+ <packagereq type="default">pcp-pmda-lustrecomm</packagereq>
+ <packagereq type="default">pcp-pmda-mailq</packagereq>
+ <packagereq type="default">pcp-pmda-memcache</packagereq>
+ <packagereq type="default">pcp-pmda-mic</packagereq>
+ <packagereq type="default">pcp-pmda-mounts</packagereq>
+ <packagereq type="default">pcp-pmda-mysql</packagereq>
+ <packagereq type="default">pcp-pmda-named</packagereq>
+ <packagereq type="default">pcp-pmda-netfilter</packagereq>
+ <packagereq type="default">pcp-pmda-news</packagereq>
+ <packagereq type="default">pcp-pmda-nfsclient</packagereq>
+ <packagereq type="default">pcp-pmda-nvidia-gpu</packagereq>
+ <packagereq type="default">pcp-pmda-oracle</packagereq>
+ <packagereq type="default">pcp-pmda-pdns</packagereq>
+ <packagereq type="default">pcp-pmda-perfevent</packagereq>
+ <packagereq type="default">pcp-pmda-prometheus</packagereq>
+ <packagereq type="default">pcp-pmda-redis</packagereq>
+ <packagereq type="default">pcp-pmda-roomtemp</packagereq>
+ <packagereq type="default">pcp-pmda-rsyslog</packagereq>
+ <packagereq type="default">pcp-pmda-samba</packagereq>
+ <packagereq type="default">pcp-pmda-sendmail</packagereq>
+ <packagereq type="default">pcp-pmda-shping</packagereq>
+ <packagereq type="default">pcp-pmda-slurm</packagereq>
+ <packagereq type="default">pcp-pmda-smart</packagereq>
+ <packagereq type="default">pcp-pmda-snmp</packagereq>
+ <packagereq type="default">pcp-pmda-summary</packagereq>
+ <packagereq type="default">pcp-pmda-systemd</packagereq>
+ <packagereq type="default">pcp-pmda-trace</packagereq>
+ <packagereq type="default">pcp-pmda-unbound</packagereq>
+ <packagereq type="default">pcp-pmda-weblog</packagereq>
+ <packagereq type="default">pcp-pmda-zimbra</packagereq>
+ <packagereq type="default">pcp-pmda-zswap</packagereq>
+ <packagereq type="default">pcp-selinux</packagereq>
+ <packagereq type="default">pcp-system-tools</packagereq>
+ <packagereq type="default">pcp-testsuite</packagereq>
+ <packagereq type="default">pcp-webapi</packagereq>
+ <packagereq type="default">pcp-zeroconf</packagereq>
+ <packagereq type="default">perl-PCP-LogImport</packagereq>
+ <packagereq type="default">perl-PCP-LogSummary</packagereq>
+ <packagereq type="default">perl-PCP-MMV</packagereq>
+ <packagereq type="default">perl-PCP-PMDA</packagereq>
+ <packagereq type="default">powertop</packagereq>
+ <packagereq type="optional">iperf3</packagereq>
+ <packagereq type="optional">libpfm</packagereq>
+ <packagereq type="optional">papi</packagereq>
+ <packagereq type="optional">tuned-utils</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>platform-devel</id>
+ <name>Platform Development</name>
+ <name xml:lang="zh_CN">平台开发</name>
+ <description>Recommended development headers and libraries for developing applications.</description>
+ <description xml:lang="zh_CN">推荐用于开发应用程序的标头及程序库。</description>
+ <default>true</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="mandatory">fontconfig-devel</packagereq>
+ <packagereq type="mandatory">freetype-devel</packagereq>
+ <packagereq type="mandatory">glib2-devel</packagereq>
+ <packagereq type="mandatory">glibc-devel</packagereq>
+ <packagereq type="mandatory">krb5-devel</packagereq>
+ <packagereq type="mandatory">libjpeg-turbo-devel</packagereq>
+ <packagereq type="mandatory">libpng-devel</packagereq>
+ <packagereq type="mandatory">libstdc++-devel</packagereq>
+ <packagereq type="mandatory">ncurses-devel</packagereq>
+ <packagereq type="mandatory">openldap-devel</packagereq>
+ <packagereq type="mandatory">openssl-devel</packagereq>
+ <packagereq type="mandatory">pam-devel</packagereq>
+ <packagereq type="mandatory">zlib-devel</packagereq>
+ <packagereq type="mandatory">atk-devel</packagereq>
+ <packagereq type="mandatory">cairo-devel</packagereq>
+ <packagereq type="mandatory">dbus-devel</packagereq>
+ <packagereq type="mandatory">desktop-file-utils</packagereq>
+ <packagereq type="mandatory">gtk2-devel</packagereq>
+ <packagereq type="mandatory">gtk3-devel</packagereq>
+ <packagereq type="mandatory">libICE-devel</packagereq>
+ <packagereq type="mandatory">libSM-devel</packagereq>
+ <packagereq type="mandatory">libX11-devel</packagereq>
+ <packagereq type="mandatory">libXext-devel</packagereq>
+ <packagereq type="mandatory">libXft-devel</packagereq>
+ <packagereq type="mandatory">libXi-devel</packagereq>
+ <packagereq type="mandatory">libXrender-devel</packagereq>
+ <packagereq type="mandatory">libXt-devel</packagereq>
+ <packagereq type="mandatory">libXtst-devel</packagereq>
+ <packagereq type="mandatory">libXv-devel</packagereq>
+ <packagereq type="mandatory">libXxf86dga-devel</packagereq>
+ <packagereq type="mandatory">libdb-devel</packagereq>
+ <packagereq type="mandatory">libjpeg-turbo-devel</packagereq>
+ <packagereq type="mandatory">libstdc++-devel</packagereq>
+ <packagereq type="mandatory">libvirt-devel</packagereq>
+ <packagereq type="mandatory">libxml2-devel</packagereq>
+ <packagereq type="mandatory">libxshmfence-devel</packagereq>
+ <packagereq type="mandatory">mesa-libGL-devel</packagereq>
+ <packagereq type="mandatory">mesa-libGLU-devel</packagereq>
+ <packagereq type="mandatory">nss-devel</packagereq>
+ <packagereq type="mandatory">pango-devel</packagereq>
+ <packagereq type="mandatory">qt5-qtdoc</packagereq>
+ <packagereq type="mandatory">qt5-qttranslations</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>print-client</id>
+ <name>Printing Client</name>
+ <name xml:lang="zh_CN">打印客户端</name>
+ <description>Tools for printing to a local printer or a remote print server.</description>
+ <description xml:lang="zh_CN">在本地打印机和远程打印服务器中打印的工具。</description>
+ <default>true</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ </packagelist>
+ </group>
+ <group>
+ <id>python-web</id>
+ <name>Python Web</name>
+ <description>Basic Python web application support.</description>
+ <description xml:lang="zh_CN">基本 Python 网页应用程序支持。</description>
+ <default>true</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="mandatory">freetype-devel</packagereq>
+ <packagereq type="mandatory">libcurl</packagereq>
+ <packagereq type="mandatory">libcurl-devel</packagereq>
+ <packagereq type="mandatory">libjpeg-turbo</packagereq>
+ <packagereq type="mandatory">libjpeg-turbo-devel</packagereq>
+ <packagereq type="mandatory">python3-magic</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>remote-system-management</id>
+ <name>Remote Management for Linux</name>
+ <name xml:lang="zh_CN">Linux 的远程管理</name>
+ <description>Remote management interface.</description>
+ <description xml:lang="zh_CN">Linux 的远程管理界面。</description>
+ <default>true</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="default">cockpit</packagereq>
+ <packagereq type="default">net-snmp</packagereq>
+ <packagereq type="default">net-snmp-utils</packagereq>
+ <packagereq type="default">openwsman-client</packagereq>
+ <packagereq type="default">tog-pegasus</packagereq>
+ <packagereq type="optional">openwsman-server</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>scientific</id>
+ <name>Scientific Support</name>
+ <name xml:lang="zh_CN">科学记数法支持</name>
+ <description>Tools for mathematical and scientific computations, and parallel computing.</description>
+ <description xml:lang="zh_CN">用于数学和科学计算以及平行计算的工具。</description>
+ <default>true</default>
+ <uservisible>true</uservisible>
+ <packagelist>
+ <packagereq type="optional">units</packagereq>
+ <packagereq type="optional">fftw</packagereq>
+ <packagereq type="optional">fftw-devel</packagereq>
+ <packagereq type="optional">fftw-static</packagereq>
+ <packagereq type="optional">gsl-devel</packagereq>
+ <packagereq type="optional">lapack</packagereq>
+ <packagereq type="optional">python3-numpy</packagereq>
+ <packagereq type="optional">python3-scipy</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>security-tools</id>
+ <name>Security Tools</name>
+ <name xml:lang="zh_CN">安全性工具</name>
+ <description>Security tools for integrity and trust verification.</description>
+ <description xml:lang="zh_CN">用于完整性和可信验证的安全性工具。</description>
+ <default>true</default>
+ <uservisible>true</uservisible>
+ <packagelist>
+ <packagereq type="optional">hmaccalc</packagereq>
+ <packagereq type="optional">tpm-quote-tools</packagereq>
+ <packagereq type="optional">tpm-tools</packagereq>
+ <packagereq type="optional">trousers</packagereq>
+ <packagereq type="default">scap-security-guide</packagereq>
+ <packagereq type="optional">aide</packagereq>
+ <packagereq type="optional">openscap</packagereq>
+ <packagereq type="optional">openscap-engine-sce</packagereq>
+ <packagereq type="optional">openscap-utils</packagereq>
+ <packagereq type="optional">scap-security-guide-doc</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>server-product</id>
+ <name>Server product core</name>
+ <description>Packages mandatory for the server product.</description>
+ <default>true</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="mandatory">chrony</packagereq>
+ <packagereq type="mandatory">polkit</packagereq>
+ <packagereq type="mandatory">realmd</packagereq>
+ <packagereq type="mandatory">openEuler-release</packagereq>
+ <packagereq type="mandatory">openEuler-latest-release</packagereq>
+ <packagereq type="mandatory">timedatex</packagereq>
+ <packagereq type="default">dhcp</packagereq>
+ <packagereq type="default">NetworkManager-config-server</packagereq>
+ <packagereq type="default">NetworkManager</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>smb-server</id>
+ <name>Windows File Server</name>
+ <name xml:lang="zh_CN">Windows 文件服务器</name>
+ <description>This package group allows you to share files between Linux and MS Windows(tm) systems.</description>
+ <description xml:lang="zh_CN">该软件包组允许您在 Linux 和 MS Windows(tm) 系统间共享文件。</description>
+ <default>true</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="mandatory">samba</packagereq>
+ <packagereq type="mandatory">samba-client</packagereq>
+ <packagereq type="default">cifs-utils</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>standard</id>
+ <name>Standard</name>
+ <name xml:lang="zh_CN">标准</name>
+ <description>The standard installation.</description>
+ <description xml:lang="zh_CN">标准安装。</description>
+ <default>true</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="mandatory">acl</packagereq>
+ <packagereq type="mandatory">at</packagereq>
+ <packagereq type="mandatory">attr</packagereq>
+ <packagereq type="mandatory">bc</packagereq>
+ <packagereq type="mandatory">cpio</packagereq>
+ <packagereq type="mandatory">crontabs</packagereq>
+ <packagereq type="mandatory">cyrus-sasl</packagereq>
+ <packagereq type="mandatory">dbus</packagereq>
+ <packagereq type="mandatory">ed</packagereq>
+ <packagereq type="mandatory">file</packagereq>
+ <packagereq type="mandatory">iptstate</packagereq>
+ <packagereq type="mandatory">irqbalance</packagereq>
+ <packagereq type="mandatory">kpatch</packagereq>
+ <packagereq type="mandatory">logrotate</packagereq>
+ <packagereq type="mandatory">lsof</packagereq>
+ <packagereq type="mandatory">net-tools</packagereq>
+ <packagereq type="mandatory">pciutils</packagereq>
+ <packagereq type="mandatory">quota</packagereq>
+ <packagereq type="mandatory">openEuler-release</packagereq>
+ <packagereq type="mandatory">openEuler-latest-release</packagereq>
+ <packagereq type="mandatory">sudo</packagereq>
+ <packagereq type="mandatory">symlinks</packagereq>
+ <packagereq type="mandatory">systemd-udev</packagereq>
+ <packagereq type="mandatory">tar</packagereq>
+ <packagereq type="mandatory">tree</packagereq>
+ <packagereq type="mandatory">util-linux-user</packagereq>
+ <packagereq type="default">bash-completion</packagereq>
+ <packagereq type="default">bpftool</packagereq>
+ <packagereq type="default">bzip2</packagereq>
+ <packagereq type="default">chrony</packagereq>
+ <packagereq type="default">cockpit</packagereq>
+ <packagereq type="default">cryptsetup</packagereq>
+ <packagereq type="default">dos2unix</packagereq>
+ <packagereq type="default">dosfstools</packagereq>
+ <packagereq type="default">ethtool</packagereq>
+ <packagereq type="default">gnupg2</packagereq>
+ <packagereq type="default">lvm2</packagereq>
+ <packagereq type="default">mailcap</packagereq>
+ <packagereq type="default">man-pages</packagereq>
+ <packagereq type="default">mdadm</packagereq>
+ <packagereq type="default">mlocate</packagereq>
+ <packagereq type="default">mtr</packagereq>
+ <packagereq type="default">realmd</packagereq>
+ <packagereq type="default">rsync</packagereq>
+ <packagereq type="default">smartmontools</packagereq>
+ <packagereq type="default">sssd</packagereq>
+ <packagereq type="default">strace</packagereq>
+ <packagereq type="default">libteam</packagereq>
+ <packagereq type="default">time</packagereq>
+ <packagereq type="default">unzip</packagereq>
+ <packagereq type="default">usbutils</packagereq>
+ <packagereq type="default">virt-what</packagereq>
+ <packagereq type="default">which</packagereq>
+ <packagereq type="default">words</packagereq>
+ <packagereq type="default">xfsdump</packagereq>
+ <packagereq type="default">zip</packagereq>
+ <packagereq type="optional">cifs-utils</packagereq>
+ <packagereq type="optional">cockpit-doc</packagereq>
+ <packagereq type="optional">ima-evm-utils</packagereq>
+ <packagereq type="optional">nfs-utils</packagereq>
+ <packagereq type="optional">traceroute</packagereq>
+ <packagereq type="optional">zsh</packagereq>
+ <packagereq type="mandatory">psacct</packagereq>
+ <packagereq type="default">libstoragemgmt</packagereq>
+ <packagereq type="default">nano</packagereq>
+ <packagereq type="default">rng-tools</packagereq>
+ <packagereq type="mandatory">rsyslog</packagereq>
+ <packagereq type="mandatory">rsyslog-relp</packagereq>
+ <packagereq type="default">nmap</packagereq>
+ <packagereq type="default">pinfo</packagereq>
+ <packagereq type="default">plymouth</packagereq>
+ <packagereq type="default">tcpdump</packagereq>
+ <packagereq type="default">vim-enhanced</packagereq>
+ <packagereq type="default">wget</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>system-tools</id>
+ <name>System Tools</name>
+ <name xml:lang="zh_CN">系统工具</name>
+ <description>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.</description>
+ <description xml:lang="zh_CN">这组软件包是各类系统工具的集合,如:连接 SMB 共享的客户;监控网络交通的工具。</description>
+ <default>true</default>
+ <uservisible>true</uservisible>
+ <packagelist>
+ <packagereq type="default">chrony</packagereq>
+ <packagereq type="default">cifs-utils</packagereq>
+ <packagereq type="default">openldap-clients</packagereq>
+ <packagereq type="default">samba-client</packagereq>
+ <packagereq type="default">setserial</packagereq>
+ <packagereq type="default">tmux</packagereq>
+ <packagereq type="default">zsh</packagereq>
+ <packagereq type="optional">arpwatch</packagereq>
+ <packagereq type="optional">chrpath</packagereq>
+ <packagereq type="optional">fuse</packagereq>
+ <packagereq type="optional">iotop</packagereq>
+ <packagereq type="optional">lzop</packagereq>
+ <packagereq type="default">xdelta</packagereq>
+ <packagereq type="optional">environment-modules</packagereq>
+ <packagereq type="default">libreswan</packagereq>
+ <packagereq type="default">nmap</packagereq>
+ <packagereq type="default">tigervnc</packagereq>
+ <packagereq type="optional">PackageKit-command-not-found</packagereq>
+ <packagereq type="optional">aide</packagereq>
+ <packagereq type="optional">amanda-client</packagereq>
+ <packagereq type="optional">convmv</packagereq>
+ <packagereq type="optional">createrepo_c</packagereq>
+ <packagereq type="optional">freerdp</packagereq>
+ <packagereq type="optional">gpm</packagereq>
+ <packagereq type="optional">gssdp</packagereq>
+ <packagereq type="optional">gupnp</packagereq>
+ <packagereq type="optional">mc</packagereq>
+ <packagereq type="optional">mtx</packagereq>
+ <packagereq type="optional">net-snmp-utils</packagereq>
+ <packagereq type="optional">oddjob</packagereq>
+ <packagereq type="optional">oddjob-mkhomedir</packagereq>
+ <packagereq type="optional">sysstat</packagereq>
+ <packagereq type="optional">x3270-x11</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>virtualization-hypervisor</id>
+ <name>Virtualization Hypervisor</name>
+ <name xml:lang="zh_CN">虚拟化 Hypervisor</name>
+ <description>Smallest possible virtualization host installation.</description>
+ <description xml:lang="zh_CN">最小的虚拟化主机安装。</description>
+ <default>false</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="mandatory">libvirt</packagereq>
+ <packagereq type="mandatory">libvirt-client</packagereq>
+ <packagereq type="mandatory">libvirt-daemon</packagereq>
+ <packagereq type="mandatory">libvirt-daemon-config-network</packagereq>
+ <packagereq type="mandatory">libvirt-daemon-config-nwfilter</packagereq>
+ <packagereq type="mandatory">libvirt-daemon-driver-interface</packagereq>
+ <packagereq type="mandatory">libvirt-daemon-driver-network</packagereq>
+ <packagereq type="mandatory">libvirt-daemon-driver-nodedev</packagereq>
+ <packagereq type="mandatory">libvirt-daemon-driver-nwfilter</packagereq>
+ <packagereq type="mandatory">libvirt-daemon-driver-qemu</packagereq>
+ <packagereq type="mandatory">libvirt-daemon-driver-secret</packagereq>
+ <packagereq type="mandatory">libvirt-daemon-driver-storage</packagereq>
+ <packagereq type="mandatory">libvirt-daemon-driver-storage-core</packagereq>
+ <packagereq type="mandatory">libvirt-daemon-driver-storage-disk</packagereq>
+ <packagereq type="mandatory">libvirt-daemon-driver-storage-gluster</packagereq>
+ <packagereq type="mandatory">libvirt-daemon-driver-storage-iscsi</packagereq>
+ <packagereq type="mandatory">libvirt-daemon-driver-storage-iscsi-direct</packagereq>
+ <packagereq type="mandatory">libvirt-daemon-driver-storage-logical</packagereq>
+ <packagereq type="mandatory">libvirt-daemon-driver-storage-mpath</packagereq>
+ <packagereq type="mandatory">libvirt-daemon-driver-storage-rbd</packagereq>
+ <packagereq type="mandatory">libvirt-daemon-driver-storage-scsi</packagereq>
+ <packagereq type="mandatory">libvirt-daemon-kvm</packagereq>
+ <packagereq type="mandatory">libvirt-daemon-plugin-sanlock</packagereq>
+ <packagereq type="mandatory">libvirt-daemon-qemu</packagereq>
+ <packagereq type="mandatory">libvirt-devel</packagereq>
+ <packagereq type="mandatory">libvirt-docs</packagereq>
+ <packagereq type="mandatory">libvirt-libs</packagereq>
+ <packagereq type="mandatory">libvirt-nss</packagereq>
+ <packagereq type="mandatory">python3-libvirt</packagereq>
+ <packagereq type="mandatory">qemu-help</packagereq>
+ <packagereq type="mandatory">qemu</packagereq>
+ <packagereq type="mandatory">qemu-block-iscsi</packagereq>
+ <packagereq type="mandatory">qemu-img</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>openvswitch</id>
+ <name>Virtualization Openvswitch</name>
+ <name xml:lang="zh_CN">虚拟switch </name>
+ <description>vswitch installation.</description>
+ <description xml:lang="zh_CN">安装vswitch。</description>
+ <default>false</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="mandatory">openvswitch</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>remote-desktop-clients</id>
+ <name>Remote Desktop Clients</name>
+ <name xml:lang="zh_CN">远程桌面客户端</name>
+ <description/>
+ <default>true</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="optional">freerdp</packagereq>
+ <packagereq type="optional">tigervnc</packagereq>
+ <packagereq type="optional">vinagre</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>web-server</id>
+ <name>Basic Web Server</name>
+ <name xml:lang="zh_CN">基本网页服务器</name>
+ <description>These tools allow you to run a Web server on the system.</description>
+ <description xml:lang="zh_CN">这些工具允许您在系统上运行万维网服务器。</description>
+ <default>true</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="mandatory">httpd</packagereq>
+ <packagereq type="default">mod_fcgid</packagereq>
+ <packagereq type="default">mod_ssl</packagereq>
+ <packagereq type="optional">libmemcached</packagereq>
+ <packagereq type="optional">memcached</packagereq>
+ <packagereq type="optional">mod_security</packagereq>
+ </packagelist>
+ </group>
+ <group>
+ <id>x11</id>
+ <name>X Window System</name>
+ <name xml:lang="zh_CN">X 窗口系统</name>
+ <description>X Window System Support.</description>
+ <description xml:lang="zh_CN">X 窗口系统支持。</description>
+ <default>false</default>
+ <uservisible>false</uservisible>
+ <packagelist>
+ <packagereq type="mandatory">glx-utils</packagereq>
+ <packagereq type="mandatory">mesa-dri-drivers</packagereq>
+ <packagereq type="mandatory">plymouth-system-theme</packagereq>
+ <packagereq type="mandatory">spice-vdagent</packagereq>
+ <packagereq type="mandatory">xorg-x11-drivers</packagereq>
+ <packagereq type="mandatory">xorg-x11-server-Xorg</packagereq>
+ <packagereq type="mandatory">xorg-x11-utils</packagereq>
+ <packagereq type="mandatory">xorg-x11-xauth</packagereq>
+ <packagereq type="mandatory">xorg-x11-xinit</packagereq>
+ <packagereq type="mandatory">xvattr</packagereq>
+ <packagereq type="optional">mesa-libGLES</packagereq>
+ <packagereq type="optional">tigervnc-server</packagereq>
+ <packagereq type="optional">wayland-protocols-devel</packagereq>
+ <packagereq type="optional">xorg-x11-drv-libinput</packagereq>
+ </packagelist>
+ </group>
+ <category>
+ <id>development</id>
+ <name>Development</name>
+ <name xml:lang="zh_CN">开发</name>
+ <description>Packages which provide functionality for developing and building applications.</description>
+ <description xml:lang="zh_CN">用于开发和构建应用程序的软件包。</description>
+ <display_order>90</display_order>
+ <grouplist>
+ <groupid>additional-devel</groupid>
+ <groupid>development</groupid>
+ <groupid>platform-devel</groupid>
+ </grouplist>
+ </category>
+ <category>
+ <id>servers</id>
+ <name>Servers</name>
+ <name xml:lang="zh_CN">服务器</name>
+ <description>Software used for running network servers</description>
+ <description xml:lang="zh_CN">用于运行网络服务器的软件</description>
+ <display_order>20</display_order>
+ <grouplist>
+ <groupid>file-server</groupid>
+ <groupid>ftp-server</groupid>
+ <groupid>mail-server</groupid>
+ <groupid>network-server</groupid>
+ <groupid>web-server</groupid>
+ </grouplist>
+ </category>
+ <category>
+ <id>base-system</id>
+ <name>System</name>
+ <name xml:lang="zh_CN">系统</name>
+ <description>Core system components.</description>
+ <description xml:lang="zh_CN">核系统组件。</description>
+ <display_order>10</display_order>
+ <grouplist>
+ <groupid>backup-client</groupid>
+ <groupid>debugging</groupid>
+ <groupid>java-platform</groupid>
+ <groupid>print-client</groupid>
+ <groupid>smart-card</groupid>
+ <groupid>dial-up</groupid>
+ <groupid>hardware-monitoring</groupid>
+ <groupid>infiniband</groupid>
+ <groupid>large-systems</groupid>
+ <groupid>legacy-unix</groupid>
+ <groupid>mainframe-access</groupid>
+ <groupid>network-tools</groupid>
+ <groupid>performance</groupid>
+ <groupid>scientific</groupid>
+ <groupid>security-tools</groupid>
+ <groupid>standard</groupid>
+ </grouplist>
+ </category>
+ <category>
+ <id>desktops</id>
+ <name>Desktops</name>
+ <name xml:lang="zh_CN">桌面环境</name>
+ <description>Desktops and thin clients.</description>
+ <description xml:lang="zh_CN">桌面和瘦客户端。</description>
+ <display_order>70</display_order>
+ <grouplist>
+ <groupid>base-x</groupid>
+ <groupid>desktop-debugging</groupid>
+ <groupid>fonts</groupid>
+ <groupid>input-methods</groupid>
+ <groupid>legacy-x</groupid>
+ <groupid>remote-desktop-clients</groupid>
+ </grouplist>
+ </category>
+ <category>
+ <id>apps</id>
+ <name>Applications</name>
+ <name xml:lang="zh_CN">应用程序</name>
+ <description>Applications to perform a variety of tasks</description>
+ <description xml:lang="zh_CN">执行不同任务的应用程序</description>
+ <display_order>80</display_order>
+ <grouplist>
+ <groupid>graphics</groupid>
+ </grouplist>
+ </category>
+ <environment>
+ <id>minimal-environment</id>
+ <name>Minimal Install</name>
+ <name xml:lang="zh_CN">最小安装</name>
+ <description>Basic functionality.</description>
+ <description xml:lang="zh_CN">基本功能。</description>
+ <display_order>1</display_order>
+ <grouplist>
+ <groupid>core</groupid>
+ </grouplist>
+ <optionlist>
+ <groupid>standard</groupid>
+ </optionlist>
+ </environment>
+ <environment>
+ <id>server-product-environment</id>
+ <name>Server</name>
+ <name xml:lang="zh_CN">服务器</name>
+ <description>An integrated, easy-to-manage server.</description>
+ <description xml:lang="zh_CN">集成的易于管理的服务器</description>
+ <display_order>2</display_order>
+ <grouplist>
+ <groupid>container-management</groupid>
+ <groupid>core</groupid>
+ <groupid>hardware-support</groupid>
+ <groupid>headless-management</groupid>
+ <groupid>server-product</groupid>
+ <groupid>standard</groupid>
+ </grouplist>
+ <optionlist>
+ <groupid>debugging</groupid>
+ <groupid>dns-server</groupid>
+ <groupid>file-server</groupid>
+ <groupid>ftp-server</groupid>
+ <groupid>hardware-monitoring</groupid>
+ <groupid>infiniband</groupid>
+ <groupid>mail-server</groupid>
+ <groupid>network-file-system-client</groupid>
+ <groupid>network-server</groupid>
+ <groupid>performance</groupid>
+ <groupid>remote-system-management</groupid>
+ <groupid>smb-server</groupid>
+ <groupid>virtualization-hypervisor</groupid>
+ <groupid>web-server</groupid>
+ <groupid>opengauss-server</groupid>
+ </optionlist>
+ </environment>
+ <environment>
+ <id>virtualization-host-environment</id>
+ <name>Virtualization Host</name>
+ <name xml:lang="zh_CN">虚拟化主机</name>
+ <description>Minimal virtualization host.</description>
+ <description xml:lang="zh_CN">最小虚拟化主机。</description>
+ <display_order>40</display_order>
+ <grouplist>
+ <groupid>base</groupid>
+ <groupid>core</groupid>
+ <groupid>virtualization-hypervisor</groupid>
+ </grouplist>
+ <optionlist>
+ <groupid>debugging</groupid>
+ <groupid>network-file-system-client</groupid>
+ <groupid>remote-system-management</groupid>
+ <groupid>openvswitch</groupid>
+ </optionlist>
+ </environment>
+ <langpacks>
+ <match install="aspell-%s" name="aspell"/>
+ <match install="autocorr-%s" name="autocorr-en"/>
+ <match install="hunspell-%s" name="hunspell"/>
+ <match install="hyphen-%s" name="hyphen"/>
+ <match install="libreoffice-help-%s" name="libreoffice-core"/>
+ <match install="man-pages-%s" name="man-pages"/>
+ <match install="mythes-%s" name="mythes"/>
+ </langpacks>
+</comps>
\ No newline at end of file
diff --git a/isomaker/config/riscv64/standard.conf b/isomaker/config/riscv64/standard.conf
new file mode 100644
index 0000000..83dc26d
--- /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"
\ No newline at end of file
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 3badcd7..be14649 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.45.2