feat: Add loong64 architecture support to debian/control#23
Merged
Conversation
Add loong64 (LoongArch) architecture support to multiple packages
in debian/control, enabling libvirt to be built for loong64 systems.
The following Build-Depends and binary package Architecture fields
are updated:
- libglusterfs-dev, librados-dev, librbd-dev, qemu-utils (Build-Depends)
- libvirt-login-shell, libvirt-daemon-driver-qemu,
libvirt-daemon-driver-lxc, libvirt-daemon-driver-storage-gluster,
libvirt-daemon-driver-storage-rbd (Architecture)
Log: Add loong64 architecture support to debian/control
Influence:
1. Verify libvirt builds successfully on loong64 architecture
2. Ensure all loong64-specific binary packages are generated correctly
3. Validate no regression on existing architectures (amd64, arm64, etc.)
4. Check gluster/rbd storage drivers compile on loong64
5. Confirm qemu-utils dependency resolves on loong64
feat: 为 debian/control 添加 loong64 架构支持
在 debian/control 中为多个包添加 loong64 (龙芯) 架构支持,
使 libvirt 能够在 loong64 系统上构建。更新了以下 Build-Depends
和二进制包 Architecture 字段:
- libglusterfs-dev, librados-dev, librbd-dev, qemu-utils (Build-Depends)
- libvirt-login-shell, libvirt-daemon-driver-qemu,
libvirt-daemon-driver-lxc, libvirt-daemon-driver-storage-gluster,
libvirt-daemon-driver-storage-rbd (Architecture)
Log: 为 debian/control 添加 loong64 架构支持
Influence:
1. 验证 libvirt 在 loong64 架构上能成功构建
2. 确保所有 loong64 特定的二进制包能正确生成
3. 验证现有架构 (amd64, arm64 等) 没有回归
4. 检查 gluster/rbd 存储驱动在 loong64 上能正确编译
5. 确认 qemu-utils 依赖在 loong64 上能正确解析
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
TAG Bot TAG: 10.7.0+really9.10.0-1deepin16 |
Contributor
Author
|
/integrate |
|
AutoIntegrationPr Bot |
In qemuFirmwareFetchParsedConfigs(), a single unparseable firmware descriptor JSON file caused the entire firmware discovery to fail with -1. This prevented ARM aarch64 UEFI firmware from being found when virt-manager requests firmware='efi', even though valid aarch64 descriptors existed. The root cause is that the 9.10.0 code uses goto error when qemuFirmwareParse() returns NULL, while 10.7.0 gracefully skips the bad descriptor and continues processing remaining files. This fix restores the 10.7.0 behavior: iterate over all descriptor files, skip any that fail to parse, and accumulate only the successfully parsed firmwares. Patch: fix-firmware-descriptor-parsing.patch Log: Fix ARM UEFI firmware discovery failure caused by strict firmware descriptor parsing Influence: 1. Test ARM aarch64 VM creation with firmware='efi' via virt-manager 2. Verify UEFI firmware autoselection works on aarch64 3. Ensure x86_64 UEFI firmware still works correctly 4. Confirm firmware descriptor parse errors are logged but do not block discovery of other valid descriptors 5. Test with missing or malformed JSON files in /usr/share/qemu/firmware/ fix: 跳过格式异常的固件描述符而非中止固件发现 在 qemuFirmwareFetchParsedConfigs() 中,单个无法解析的固件描述符 JSON 文件会导致整个固件发现流程失败并返回 -1。这阻止了 ARM aarch64 UEFI 固件的发现,即使存在有效的 aarch64 描述符。 根本原因是 9.10.0 代码在 qemuFirmwareParse() 返回 NULL 时使用 goto error,而 10.7.0 会优雅地跳过有问题的描述符并继续处理 剩余文件。 此修复恢复了 10.7.0 的行为:遍历所有描述符文件,跳过解析失败 的文件,仅累积成功解析的固件。 补丁: fix-firmware-descriptor-parsing.patch Log: 修复因固件描述符严格解析导致的 ARM UEFI 固件发现失败 Influence: 1. 测试通过 virt-manager 使用 firmware='efi' 创建 ARM aarch64 虚拟机 2. 验证 aarch64 上 UEFI 固件自动选择正常工作 3. 确保 x86_64 UEFI 固件仍然正常工作 4. 确认固件描述符解析错误被记录但不阻止其他有效描述符的发现 5. 测试 /usr/share/qemu/firmware/ 中存在缺失或格式异常的 JSON 文件 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Contributor
Author
|
/integrate |
Add loong64 to the meson architecture lists in debian/rules so that QEMU driver, LXC driver, Ceph (RBD) storage backend, and GlusterFS storage backend are compiled for loong64. Previously loong64 was missing from ARCHES_QEMU, ARCHES_LXC, ARCHES_CEPH, and ARCHES_GLUSTER, causing meson to pass -Ddriver_qemu=disabled -Ddriver_lxc=disabled -Dstorage_rbd=disabled -Dstorage_gluster=disabled. This meant no driver .so files were built on loong64, and dh_install failed because the expected files did not exist in the build output. This change works together with the earlier loong64 additions to debian/control Architecture fields and Build-Depends. Log: Enable QEMU/LXC/Ceph/Gluster meson build for loong64 Influence: 1. Verify libvirt builds successfully on loong64 with QEMU driver 2. Verify libvirt_driver_qemu.so is produced in the build 3. Verify libvirt_driver_lxc.so is produced in the build 4. Verify storage backend .so files (rbd, gluster) are produced 5. Ensure no regression on other architectures (amd64, arm64, etc.) feat: 为 loong64 架构启用 QEMU/LXC/Ceph/Gluster 驱动 在 debian/rules 的 meson 架构列表中添加 loong64,以便为 loong64 编译 QEMU 驱动、LXC 驱动、Ceph (RBD) 存储后端和 GlusterFS 存储后端。 此前 loong64 缺失于 ARCHES_QEMU、ARCHES_LXC、ARCHES_CEPH 和 ARCHES_GLUSTER,导致 meson 传递 -Ddriver_qemu=disabled -Ddriver_lxc=disabled -Dstorage_rbd=disabled -Dstorage_gluster=disabled。这意味着 loong64 上不会编译任何 驱动 .so 文件,dh_install 因找不到预期文件而失败。 此变更与之前在 debian/control 中为 loong64 添加的 Architecture 字段和 Build-Depends 配合使用。 Log: 为 loong64 启用 QEMU/LXC/Ceph/Gluster meson 构建 Influence: 1. 验证 libvirt 在 loong64 上能成功构建并包含 QEMU 驱动 2. 验证构建产物中包含 libvirt_driver_qemu.so 3. 验证构建产物中包含 libvirt_driver_lxc.so 4. 验证存储后端 .so 文件 (rbd, gluster) 被正确生成 5. 确保其他架构 (amd64, arm64 等) 没有回归 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
After enabling QEMU driver for loong64, the build now produces virt-qemu-qmp-proxy and virt-qemu-sev-validate binaries which were not listed in any .install file. dh_missing reported them as uninstalled and aborted the build. Add these two binaries and their man pages to libvirt-daemon-driver-qemu.install. Fixes: dh_missing error for virt-qemu-qmp-proxy, virt-qemu-sev-validate Log: Fix dh_missing error by adding new QEMU tools to install file Influence: 1. Verify loong64 build completes without dh_missing errors 2. Verify virt-qemu-qmp-proxy is included in libvirt-daemon-driver-qemu 3. Verify virt-qemu-sev-validate is included in libvirt-daemon-driver-qemu 4. Ensure man pages are properly installed 5. No impact on other architectures fix: 将缺失的 QEMU 工具添加到 libvirt-daemon-driver-qemu.install 在为 loong64 启用 QEMU 驱动后,构建产物中新增了 virt-qemu-qmp-proxy 和 virt-qemu-sev-validate 二进制文件, 但它们未被任何 .install 文件收录。dh_missing 将其报告为 未安装文件并中止了构建。 将这两个二进制文件及其 man 页面添加到 libvirt-daemon-driver-qemu.install。 修复: 修复 virt-qemu-qmp-proxy、virt-qemu-sev-validate 的 dh_missing 错误 Log: 将新增的 QEMU 工具添加到 install 文件以修复 dh_missing 错误 Influence: 1. 验证 loong64 构建不再出现 dh_missing 错误 2. 验证 virt-qemu-qmp-proxy 已包含在 libvirt-daemon-driver-qemu 中 3. 验证 virt-qemu-sev-validate 已包含在 libvirt-daemon-driver-qemu 中 4. 确保 man 页面被正确安装 5. 对其他架构无影响 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
… libvirt-clients-qemu Remove virt-qemu-qmp-proxy, virt-qemu-sev-validate and their man pages from libvirt-daemon-driver-qemu.install because these files already belong to the libvirt-clients-qemu package. This fixes a dpkg error when both packages are installed: dpkg: error processing archive libvirt-daemon-driver-qemu (--unpack): trying to overwrite '/usr/bin/virt-qemu-qmp-proxy', which is also in package libvirt-clients-qemu Log: Fix dpkg file conflict for virt-qemu-qmp-proxy between qemu driver and clients packages Influence: 1. Test libvirt-daemon-driver-qemu installation on loong64 2. Test libvirt-clients-qemu installation on loong64 3. Verify both packages can be installed simultaneously without dpkg errors 4. Verify virt-qemu-qmp-proxy and virt-qemu-sev-validate are available after install 5. Ensure no regression on other architectures fix: 修复 libvirt-daemon-driver-qemu 与 libvirt-clients-qemu 之间的软件包文件冲突 从 libvirt-daemon-driver-qemu.install 中移除 virt-qemu-qmp-proxy、 virt-qemu-sev-validate 及其 man 手册页,因为这些文件已属于 libvirt-clients-qemu 软件包。修复 dpkg 安装时的错误: dpkg: error processing archive libvirt-daemon-driver-qemu (--unpack): trying to overwrite '/usr/bin/virt-qemu-qmp-proxy', which is also in package libvirt-clients-qemu Log: 修复 virt-qemu-qmp-proxy 在 qemu 驱动和客户端包之间的 dpkg 文件冲突 Influence: 1. 在 loong64 上测试 libvirt-daemon-driver-qemu 安装 2. 在 loong64 上测试 libvirt-clients-qemu 安装 3. 验证两个软件包可以同时安装而不出现 dpkg 错误 4. 验证安装后 virt-qemu-qmp-proxy 和 virt-qemu-sev-validate 可用 5. 确保其他架构没有回归 repo: libvirt #master
…ors on loong64 Add virt-qemu-qmp-proxy, virt-qemu-sev-validate and their man pages to debian/not-installed. On loong64 where libvirt-clients-qemu may be excluded from the build, these binaries are still compiled by the QEMU driver but have no package to claim them. Without this entry, dh_missing reports them as uninstalled and aborts the build. Log: Add orphaned QEMU tools to debian/not-installed for loong64 build Influence: 1. Verify loong64 build completes without dh_missing errors 2. Verify non-loong64 build (amd64) still installs these files via libvirt-clients-qemu 3. Verify virt-qemu-qmp-proxy is available after install on all architectures 4. Ensure no regression on other architectures fix: 将 QEMU 工具添加到 debian/not-installed 以防止 loong64 上的 dh_missing 错误 将 virt-qemu-qmp-proxy、virt-qemu-sev-validate 及其 man 手册页添加到 debian/not-installed。在 loong64 上 libvirt-clients-qemu 可能被排除在构建之外, 但这些二进制文件仍由 QEMU 驱动编译,没有包来认领它们。没有此条目时, dh_missing 会将它们报告为未安装并中止构建。 Log: 将孤立的 QEMU 工具添加到 debian/not-installed 以修复 loong64 构建 Influence: 1. 验证 loong64 构建不再出现 dh_missing 错误 2. 验证非 loong64 构建 (amd64) 仍通过 libvirt-clients-qemu 安装这些文件 3. 验证所有架构上安装后 virt-qemu-qmp-proxy 可用 4. 确保其他架构没有回归 repo: libvirt #master
Contributor
Author
|
/integrate |
Add VIR_ARCH_LOONGARCH64 to the architecture enum and all related infrastructure so that virt-manager shows loongarch64 as an architecture option on LoongArch hosts. Ported from libvirt 10.7.0 (develop/10.7.0). Changes include: - VIR_ARCH_LOONGARCH64 enum value and ARCH_IS_LOONGARCH macro in virarch.h - loongarch64 string mapping in virarch.c virArchData array - Host architecture detection for "loongarch64" uname machine name - Preferred QEMU machine type "virt" for loongarch64 in qemu_capabilities.c - ACPI guest feature support for loongarch64 - PCIe root controller default for loongarch64 guests in qemu_domain.c - qemuDomainMachineIsLoongArchVirt() and qemuDomainIsLoongArchVirt() helpers Log: Add LoongArch64 architecture support ported from 10.7.0 Influence: 1. Verify virt-manager shows loongarch64 architecture option on LoongArch host 2. Verify QEMU driver can create loongarch64 virtual machines 3. Verify loongarch64 VM uses virt machine type and PCIe root controller 4. Verify ACPI feature is enabled for loongarch64 guests 5. Ensure no regression on other architectures feat: 为 libvirt 添加 LoongArch64 架构支持 将 VIR_ARCH_LOONGARCH64 添加到架构枚举及相关基础设施, 使 virt-manager 在 LoongArch 宿主机上显示 loongarch64 架构选项。 从 libvirt 10.7.0 (develop/10.7.0) 移植。 修改包括: - virarch.h 中添加 VIR_ARCH_LOONGARCH64 枚举值和 ARCH_IS_LOONGARCH 宏 - virarch.c virArchData 数组中添加 loongarch64 字符串映射 - virArchFromHost() 中添加 loongarch64 宿主架构检测 - qemu_capabilities.c 中添加 loongarch64 首选 QEMU 机型 "virt" - 为 loongarch64 添加 ACPI 客户机特性支持 - qemu_domain.c 中为 loongarch64 客户机添加 PCIe 根控制器默认值 - 添加 qemuDomainMachineIsLoongArchVirt() 和 qemuDomainIsLoongArchVirt() 辅助函数 Log: 从 10.7.0 移植 LoongArch64 架构支持 Influence: 1. 验证 virt-manager 在 LoongArch 宿主机上显示 loongarch64 架构选项 2. 验证 QEMU 驱动可以创建 loongarch64 虚拟机 3. 验证 loongarch64 虚拟机使用 virt 机型和 PCIe 根控制器 4. 验证 loongarch64 客户机启用 ACPI 特性 5. 确保其他架构没有回归 repo: libvirt #master
The previous deepin13 commit added a malformed LoongArch64 patch that failed to apply during package build because it was concatenated from multiple git diffs and contained duplicate file entries. Regenerate the patch as a proper quilt patch that applies cleanly on top of all 14 preceding patches. The patch now covers all 17 files required for full LoongArch64 support: - virarch.h/virarch.c: architecture enum and host detection - cpu_loongarch.c/h: CPU driver for LoongArch - cpu.c, cpu/meson.build: wire up CPU driver - qemu_capabilities.c: arch string mapping, preferred machine "virt", CPU model expansion type, PCI multibus support - qemu_domain.c/h: virtio defaults, PCIe root, serial 16550A platform device, qemuDomainIsLoongArchVirt() helper - qemu_command.c, qemu_validate.c, qemu_domain_address.c: machine-type specific behavior for LoongArch virt - apparmor/libvirt-qemu.in, virt-aa-helper.c: QEMU binary and firmware paths for loongarch64 - virhostcpu.c, virsysinfo.c: host CPU info parsing for LoongArch Ported from libvirt 10.7.0 (develop/10.7.0 branch). Log: Fix malformed LoongArch64 support patch by regenerating as clean quilt patch Influence: 1. Verify patch applies cleanly with quilt push on clean source tree 2. Test dpkg-source build no longer fails with patch application errors 3. Check virt-manager shows loongarch64 as available architecture on LoongArch host 4. Validate QEMU virt machine defaults (PCIe root, virtio-net, virtio-video) 5. Ensure no regression on other architectures fix: 重新生成 LoongArch64 架构支持补丁 之前的 deepin13 提交添加了一个格式错误的 LoongArch64 补丁,由于它是从 多个 git diff 拼接而成且包含重复的文件条目,导致在打包构建时无法正确应用。 重新生成该补丁为规范的 quilt 补丁,确保其能在前面 14 个补丁之上干净地应用。 补丁现在覆盖了完整 LoongArch64 支持所需的全部 17 个文件: - virarch.h/virarch.c: 架构枚举和主机检测 - cpu_loongarch.c/h: LoongArch CPU 驱动 - cpu.c, cpu/meson.build: 注册 CPU 驱动 - qemu_capabilities.c: 架构字符串映射、首选机器 "virt"、 CPU 模型扩展类型、PCI multibus 支持 - qemu_domain.c/h: virtio 默认值、PCIe root、串口 16550A 平台设备、 qemuDomainIsLoongArchVirt() 辅助函数 - qemu_command.c, qemu_validate.c, qemu_domain_address.c: LoongArch virt 机器类型的特定行为 - apparmor/libvirt-qemu.in, virt-aa-helper.c: loongarch64 的 QEMU 二进制和固件路径 - virhostcpu.c, virsysinfo.c: LoongArch 主机 CPU 信息解析 从 libvirt 10.7.0 (develop/10.7.0 分支) 移植。 Log: 重新生成 LoongArch64 支持补丁以修复格式错误 Influence: 1. 验证补丁能在干净源码树上通过 quilt push 干净应用 2. 测试 dpkg-source 构建不再出现补丁应用错误 3. 检查 virt-manager 在 LoongArch 主机上显示 loongarch64 可用架构 4. 验证 QEMU virt 机器默认值(PCIe root、virtio-net、virtio-video) 5. 确保其他架构没有回归 repo: libvirt #loongarch64-full-temp
The LoongArch64 architecture support patch changed the error message for virtio-iommu validation from: 'only supported with Q35 and ARM Virt machines' to: 'only supported with Q35, ARM Virt and LoongArch Virt machines' However, the corresponding test expected output file was not updated, causing qemuxml2argvtest to fail during build. This fix adds a new patch to update the expected error message in the .err file to match the new error message format. Log: Fixed qemuxml2argvtest failure due to outdated expected error message Influence: 1. Test qemuxml2argvtest passes for virtio-iommu-wrong-machine test case 2. Verify build passes on x86_64 architecture 3. Check no other test files need similar updates repo: libvirt #master
cc66f13 to
4de93ea
Compare
Add ACPI default enable for LoongArch64 virt machines to fix black
screen issue after GRUB boot. LoongArch virt requires ACPI for proper
display initialization - without ACPI, the guest DRM driver cannot
initialize the display controller.
The patch modifies qemuDomainDefAddDefaultDevices() to set
FEATURE_ACPI to VIR_TRISTATE_SWITCH_ON for LoongArch virt machines.
This aligns with how libvirt 10.7.0 handles LoongArch display support.
Log: Enable ACPI by default for LoongArch virt to fix display initialization
Influence:
1. Test LoongArch64 VM display works correctly after GRUB boot
2. Verify ACPI is enabled in QEMU command line for LoongArch virt
3. Check display controller initialization in guest dmesg logs
4. Validate no regression on other architectures (x86, ARM, RISC-V)
5. Test virt-manager can create and run LoongArch64 VMs with display
feat: 为 LoongArch virt 机器默认启用 ACPI
为 LoongArch64 virt 机器添加 ACPI 默认启用,修复 GRUB 启动后黑屏问题。
LoongArch virt 需要 ACPI 来正确初始化显示 - 没有 ACPI,客 DRM 驱动
无法初始化显示控制器。
该补丁修改 qemuDomainDefAddDefaultDevices() 为 LoongArch virt 机器
设置 FEATURE_ACPI 为 VIR_TRISTATE_SWITCH_ON。
这与 libvirt 10.7.0 处理 LoongArch 显示支持的方式一致。
Log: 为 LoongArch virt 默认启用 ACPI 以修复显示初始化
Influence:
1. 测试 LoongArch64 虚拟机显示在 GRUB 启动后正常工作
2. 验证 ACPI 在 LoongArch virt 的 QEMU 命令行中已启用
3. 在客 dmesg 日志中检查显示控制器初始化
4. 验证其他架构无回归(x86, ARM, RISC-V)
5. 测试 virt-manager 可以创建并运行带显示的 LoongArch64 虚拟机
repo: libvirt #master
wxphaha
approved these changes
May 15, 2026
Contributor
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: wxphaha The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
Contributor
Author
|
/integrate |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add loong64 (LoongArch) architecture support to multiple packages in debian/control, enabling libvirt to be built for loong64 systems. The following Build-Depends and binary package Architecture fields are updated:
Log: Add loong64 architecture support to debian/control
Influence:
feat: 为 debian/control 添加 loong64 架构支持
在 debian/control 中为多个包添加 loong64 (龙芯) 架构支持,
使 libvirt 能够在 loong64 系统上构建。更新了以下 Build-Depends
和二进制包 Architecture 字段:
Log: 为 debian/control 添加 loong64 架构支持
Influence: