oemaker/0001-add-riscv64-support.patch

2910 lines
123 KiB
Diff
Raw Normal View History

From 924f6801cb6af7d897c4de5b9ae7965426a98335 Mon Sep 17 00:00:00 2001
2024-05-28 10:43:31 +08:00
From: ouuleilei <wangliu@iscas.ac.cn>
Date: Thu, 13 Jun 2024 13:11:27 +0800
2024-05-28 10:43:31 +08:00
Subject: [PATCH] add riscv64 support
---
envmaker/config/compile_env_rpmlist.xml | 4 +
2024-05-28 10:43:31 +08:00
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 +
2024-05-28 10:43:31 +08:00
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 +
2024-05-28 10:43:31 +08:00
isomaker/80-openeuler/runtime-cleanup.tmpl | 2 +
isomaker/80-openeuler/runtime-install.tmpl | 7 +-
isomaker/config/common/livecd/live/efi.tmpl | 3 +
2024-05-28 10:43:31 +08:00
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 ++
2024-05-28 10:43:31 +08:00
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(-)
2024-05-28 10:43:31 +08:00
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
2024-05-28 10:43:31 +08:00
--- 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
2024-05-28 10:43:31 +08:00
--- /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
2024-05-28 10:43:31 +08:00
diff --git a/isocut/config/riscv64/anaconda-ks.cfg b/isocut/config/riscv64/anaconda-ks.cfg
new file mode 100644
index 0000000..f586d14
2024-05-28 10:43:31 +08:00
--- /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
2024-05-28 10:43:31 +08:00
diff --git a/isocut/config/riscv64/rpmlist b/isocut/config/riscv64/rpmlist
new file mode 100644
index 0000000..78c2220
2024-05-28 10:43:31 +08:00
--- /dev/null
+++ b/isocut/config/riscv64/rpmlist
@@ -0,0 +1 @@
+kernel.riscv64
\ No newline at end of file
2024-05-28 10:43:31 +08:00
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
2024-05-28 10:43:31 +08:00
--- /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@
2024-05-28 10:43:31 +08:00
+title Test this media & install @PRODUCT@ @VERSION@
+ findiso
+ kernel @KERNELPATH@ @ROOT@ rd.live.check quiet
+ initrd @INITRDPATH@
\ No newline at end of file
2024-05-28 10:43:31 +08:00
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
2024-05-28 10:43:31 +08:00
--- /dev/null
+++ b/isomaker/80-openeuler/config_files/riscv64/grub2-efi.cfg
@@ -0,0 +1,46 @@
2024-05-28 10:43:31 +08:00
+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@
2024-05-28 10:43:31 +08:00
+}
+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@
2024-05-28 10:43:31 +08:00
+}
+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@
+ }
2024-05-28 10:43:31 +08:00
+}
\ No newline at end of file
2024-05-28 10:43:31 +08:00
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
2024-05-28 10:43:31 +08:00
--- a/isomaker/80-openeuler/live/efi.tmpl
+++ b/isomaker/80-openeuler/live/efi.tmpl
@@ -6,10 +6,15 @@ EFIBOOTDIR="EFI/BOOT"
2024-05-28 10:43:31 +08:00
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}/
2024-05-28 10:43:31 +08:00
diff --git a/isomaker/80-openeuler/live/riscv64.tmpl b/isomaker/80-openeuler/live/riscv64.tmpl
new file mode 100644
index 0000000..5f160b5
2024-05-28 10:43:31 +08:00
--- /dev/null
+++ b/isomaker/80-openeuler/live/riscv64.tmpl
@@ -0,0 +1,82 @@
2024-05-28 10:43:31 +08:00
+<%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
2024-05-28 10:43:31 +08:00
diff --git a/isomaker/80-openeuler/riscv64.tmpl b/isomaker/80-openeuler/riscv64.tmpl
new file mode 100644
index 0000000..c6afbff
2024-05-28 10:43:31 +08:00
--- /dev/null
+++ b/isomaker/80-openeuler/riscv64.tmpl
@@ -0,0 +1,75 @@
2024-05-28 10:43:31 +08:00
+<%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
2024-05-28 10:43:31 +08:00
diff --git a/isomaker/80-openeuler/runtime-cleanup.tmpl b/isomaker/80-openeuler/runtime-cleanup.tmpl
index 8d4b423..f3c2664 100644
2024-05-28 10:43:31 +08:00
--- 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
2024-05-28 10:43:31 +08:00
--- 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}/
2024-05-28 10:43:31 +08:00
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
2024-05-28 10:43:31 +08:00
--- /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
2024-05-28 10:43:31 +08:00
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
2024-05-28 10:43:31 +08:00
--- /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
2024-05-28 10:43:31 +08:00
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
2024-05-28 10:43:31 +08:00
--- /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
2024-05-28 10:43:31 +08:00
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
2024-05-28 10:43:31 +08:00
--- /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
2024-05-28 10:43:31 +08:00
diff --git a/isomaker/config/riscv64/livecd/rpmlist b/isomaker/config/riscv64/livecd/rpmlist
new file mode 100644
index 0000000..a35b61f
2024-05-28 10:43:31 +08:00
--- /dev/null
+++ b/isomaker/config/riscv64/livecd/rpmlist
@@ -0,0 +1,111 @@
2024-05-28 10:43:31 +08:00
+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
2024-05-28 10:43:31 +08:00
+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
2024-05-28 10:43:31 +08:00
diff --git a/isomaker/config/riscv64/normal.xml b/isomaker/config/riscv64/normal.xml
new file mode 100644
index 0000000..5677a02
2024-05-28 10:43:31 +08:00
--- /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>
2024-05-28 10:43:31 +08:00
+ <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
2024-05-28 10:43:31 +08:00
diff --git a/isomaker/config/riscv64/standard.conf b/isomaker/config/riscv64/standard.conf
new file mode 100644
index 0000000..83dc26d
2024-05-28 10:43:31 +08:00
--- /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
2024-05-28 10:43:31 +08:00
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
2024-05-28 10:43:31 +08:00
--- 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
2024-05-28 10:43:31 +08:00
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
2024-05-28 10:43:31 +08:00
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
2024-05-28 10:43:31 +08:00