Compare commits

..

49 Commits
main ... 8.3

Author SHA1 Message Date
jiangcuo
f99f0d7254 update pve-cluster verison 2024-11-23 08:36:19 +00:00
jiangcuo
e6c9f31782 update pve-installer to 8.3.3 2024-11-23 08:18:17 +00:00
jiangcuo
df00611edf Optimize the build process 2024-11-21 18:12:18 +08:00
jiangcuo
66e6610ed2 remove pve-installer lintian 2024-11-21 16:53:07 +08:00
jiangcuo
c64fc01440 set dsc build before deb build 2024-11-21 16:42:49 +08:00
jiangcuo
116502a2bd fix ceph build 2024-11-21 15:53:17 +08:00
jiangcuo
6478f682f4 remove ceph submodule 2024-11-21 15:42:50 +08:00
jiangcuo
71063b65c9 Fix the repeated quilt errors that occur when compiling packages that require quilt. 2024-11-21 15:11:08 +08:00
jiangcuo
469b65d0f4 add pixman autobuild.sh 2024-11-21 15:07:03 +08:00
jiangcuo
a1f4c084f4 add libqb autobuild.sh 2024-11-21 15:06:45 +08:00
jiangcuo
7bddd197c6 remove dsc on debian-pkg 2024-11-21 14:52:52 +08:00
jiangcuo
9b20c2ffdc fix dsc build command line 2024-11-21 13:58:20 +08:00
jiangcuo
b4c0b0afaa Re-optimize the automated build script 2024-11-21 13:56:29 +08:00
jiangcuo
9eacac198d update package version to dsc build 2024-11-21 12:59:34 +08:00
jiangcuo
7da8e2b23e
Update libtpms autobuild.sh 2024-11-20 16:23:44 +08:00
jiangcuo
60c4788a6e
Update swtpm autobuild 2024-11-20 16:23:04 +08:00
jiangcuo
f1e6c1838d add pixman and libqb 2024-11-16 18:06:29 +08:00
jiangcuo
1a407be511 add libpixman 2024-11-16 14:58:24 +08:00
jiangcuo
ecd6a5d26a
Update build.sh 2024-11-07 13:07:26 +08:00
jiangcuo
fc4e69a6bc Add debbuild env check and add dsc build 2024-11-07 13:05:58 +08:00
jiangcuo
d3696246f7 add pve-edk2-firmware 2024-11-04 03:24:00 +08:00
jiangcuo
66541d2c6d update proxmox-backup-restore-image submodule 2024-11-03 23:13:56 +08:00
jiangcuo
441bdcadf8 add proxmox-backup patches 2024-11-03 23:03:45 +08:00
jiangcuo
b1dc1e0064 fix quilt error 2024-11-03 23:00:25 +08:00
jiangcuo
ad6595d2b9 add proxmox-archive-keyring autobuild.sh 2024-11-01 16:43:12 +08:00
jiangcuo
ee8a6ab722 add ReadMe and dockerfile 2024-11-01 15:07:45 +08:00
jiangcuo
b83f897454 add smartmontools autobuild.sh 2024-11-01 14:55:09 +08:00
jiangcuo
6690f9fa2a add qemu-server autobuild.sh 2024-11-01 14:54:56 +08:00
jiangcuo
daff44a540 add pve-qemu autobuild.sh 2024-11-01 14:54:43 +08:00
jiangcuo
919e555632 add pve-container autobuild.sh 2024-11-01 14:54:34 +08:00
jiangcuo
f37a5e02e8 remove wasi-libc 2024-11-01 14:54:18 +08:00
jiangcuo
eb89fa132e add proxmox-offline-mirror autobuild.sh 2024-11-01 14:17:52 +08:00
jiangcuo
f2e7ff258b add proxmox-backup-patches 2024-11-01 14:05:59 +08:00
jiangcuo
21fd17da7e add proxmox-firewall patches 2024-11-01 14:05:27 +08:00
jiangcuo
bcf7527fce delete some devel package 2024-11-01 14:04:13 +08:00
jiangcuo
4e17e1ca24 update tpm build 2024-11-01 12:51:42 +08:00
jiangcuo
39078b1f15 add librados2-perl autobuild.sh 2024-11-01 11:48:57 +08:00
jiangcuo
ea8ab340a9 update libgit2 to proxmox/bookworm branch 2024-11-01 11:48:16 +08:00
jiangcuo
a68581305a add autobuild.sh 2024-10-31 20:51:57 +08:00
jiangcuo
f469ecc6dd add lxcfs patch and build.sh 2024-10-30 21:21:44 +08:00
jiangcuo
dd2c2db0d5 add new packages 2024-10-30 17:55:21 +08:00
jiangcuo
5faa3b8a0b add ceph for pve8 2024-10-30 16:06:00 +08:00
jiangcuo
dda4385924 add proxmox-mini-journalreader 2024-10-30 15:49:13 +08:00
jiangcuo
caf02fa93b add pve-storage 2024-10-30 14:56:24 +08:00
jiangcuo
88c6f1ea28 add proxmox-ve meta package 2024-10-30 14:56:24 +08:00
jiangcuo
b883b3ee1c add proxmox-archive-keyring 2024-10-30 14:56:19 +08:00
jiangcuo
f02477f3dd add pve-install pve-container pve-common-patch 2024-10-25 17:11:27 +08:00
jiangcuo
6778e5437a add pve-qemu zfsonlinux pve-common package 2024-10-19 14:21:48 +08:00
jiangcuo
916b8381e5 Add pve-manager & qemu-server patches 2024-10-18 15:49:49 +08:00
185 changed files with 6160 additions and 646 deletions

196
.gitmodules vendored Normal file
View File

@ -0,0 +1,196 @@
[submodule "packages/pve-manager/pve-manager"]
path = packages/pve-manager/pve-manager
url = https://git.proxmox.com/git/pve-manager.git
[submodule "packages/qemu-server/qemu-server"]
path = packages/qemu-server/qemu-server
url = https://git.proxmox.com/git/qemu-server.git
[submodule "packages/zfsonlinux/zfsonlinux"]
path = packages/zfsonlinux/zfsonlinux
url = https://git.proxmox.com/git/zfsonlinux.git
[submodule "packages/pve-qemu/pve-qemu"]
path = packages/pve-qemu/pve-qemu
url = https://git.proxmox.com/git/pve-qemu.git
[submodule "packages/pve-common/pve-common"]
path = packages/pve-common/pve-common
url = https://git.proxmox.com/git/pve-common
[submodule "packages/pve-installer/pve-installer"]
path = packages/pve-installer/pve-installer
url = https://git.proxmox.com/git/pve-installer.git
[submodule "packages/pve-container/pve-container"]
path = packages/pve-container/pve-container
url = https://git.proxmox.com/git/pve-container.git
[submodule "packages/proxmox-archive-keyring/proxmox-archive-keyring"]
path = packages/proxmox-archive-keyring/proxmox-archive-keyring
url = https://git.proxmox.com/git/proxmox-archive-keyring.git
[submodule "packages/proxmox-ve/proxmox-ve"]
path = packages/proxmox-ve/proxmox-ve
url = https://git.proxmox.com/git/proxmox-ve.git
[submodule "packages/pve-storage/pve-storage"]
path = packages/pve-storage/pve-storage
url = https://git.proxmox.com/git/pve-storage.git
[submodule "packages/proxmox-mini-journalreader/proxmox-mini-journalreader"]
path = packages/proxmox-mini-journalreader/proxmox-mini-journalreader
url = https://git.proxmox.com/git/proxmox-mini-journalreader.git
[submodule "packages/pve-cluster/pve-cluster"]
path = packages/pve-cluster/pve-cluster
url = https://git.proxmox.com/git/pve-cluster.git
[submodule "packages/proxmox-i18n/proxmox-i18n"]
path = packages/proxmox-i18n/proxmox-i18n
url = https://git.proxmox.com/git/proxmox-i18n
[submodule "packages/proxmox-widget-toolkit/proxmox-widget-toolkit"]
path = packages/proxmox-widget-toolkit/proxmox-widget-toolkit
url = https://git.proxmox.com/git/proxmox-widget-toolkit
[submodule "packages/pve-http-server/pve-http-server"]
path = packages/pve-http-server/pve-http-server
url = https://git.proxmox.com/git/pve-http-server
[submodule "packages/pve-docs/pve-docs"]
path = packages/pve-docs/pve-docs
url = https://git.proxmox.com/git/pve-docs
[submodule "packages/libgit2/libgit2"]
path = packages/libgit2/libgit2
url = https://git.proxmox.com/git/libgit2
[submodule "packages/pve-guest-common/pve-guest-common"]
path = packages/pve-guest-common/pve-guest-common
url = https://git.proxmox.com/git/pve-guest-common
[submodule "packages/pve-xtermjs/pve-xtermjs"]
path = packages/pve-xtermjs/pve-xtermjs
url = https://git.proxmox.com/git/pve-xtermjs
[submodule "packages/pve-access-control/pve-access-control"]
path = packages/pve-access-control/pve-access-control
url = https://git.proxmox.com/git/pve-access-control
[submodule "packages/ifupdown2/ifupdown2"]
path = packages/ifupdown2/ifupdown2
url = https://git.proxmox.com/git/ifupdown2
[submodule "packages/pve-ha-manager/pve-ha-manager"]
path = packages/pve-ha-manager/pve-ha-manager
url = https://git.proxmox.com/git/pve-ha-manager
[submodule "packages/pve-firewall/pve-firewall"]
path = packages/pve-firewall/pve-firewall
url = https://git.proxmox.com/git/pve-firewall
[submodule "packages/proxmox-acme/proxmox-acme"]
path = packages/proxmox-acme/proxmox-acme
url = https://git.proxmox.com/git/proxmox-acme
[submodule "packages/pve-network/pve-network"]
path = packages/pve-network/pve-network
url = https://git.proxmox.com/git/pve-network
[submodule "packages/pve-zsync/pve-zsync"]
path = packages/pve-zsync/pve-zsync
url = https://git.proxmox.com/git/pve-zsync
[submodule "packages/lxcfs/lxcfs"]
path = packages/lxcfs/lxcfs
url = https://git.proxmox.com/git/lxcfs
[submodule "packages/ksm-control-daemon/ksm-control-daemon"]
path = packages/ksm-control-daemon/ksm-control-daemon
url = https://git.proxmox.com/git/ksm-control-daemon
[submodule "packages/lxc/lxc"]
path = packages/lxc/lxc
url = https://git.proxmox.com/git/lxc
[submodule "packages/proxmox-kernel-helper/proxmox-kernel-helper"]
path = packages/proxmox-kernel-helper/proxmox-kernel-helper
url = https://git.proxmox.com/git/proxmox-kernel-helper
[submodule "packages/fonts-font-logos/fonts-font-logos"]
path = packages/fonts-font-logos/fonts-font-logos
url = https://git.proxmox.com/git/fonts-font-logos
[submodule "packages/kronosnet/kronosnet"]
path = packages/kronosnet/kronosnet
url = https://git.proxmox.com/git/kronosnet
[submodule "packages/pve-eslint/pve-eslint"]
path = packages/pve-eslint/pve-eslint
url = https://git.proxmox.com/git/pve-eslint
[submodule "packages/librados2-perl/librados2-perl"]
path = packages/librados2-perl/librados2-perl
url = https://git.proxmox.com/git/librados2-perl
[submodule "packages/extjs/extjs"]
path = packages/extjs/extjs
url = https://git.proxmox.com/git/extjs
[submodule "packages/libxdgmime-perl/libxdgmime-perl"]
path = packages/libxdgmime-perl/libxdgmime-perl
url = https://git.proxmox.com/git/libxdgmime-perl
[submodule "packages/libarchive-perl/libarchive-perl"]
path = packages/libarchive-perl/libarchive-perl
url = https://git.proxmox.com/git/libarchive-perl
[submodule "packages/smartmontools/smartmontools"]
path = packages/smartmontools/smartmontools
url = https://git.proxmox.com/git/smartmontools
[submodule "packages/vncterm/vncterm"]
path = packages/vncterm/vncterm
url = https://git.proxmox.com/git/vncterm
[submodule "packages/sencha-touch/sencha-touch"]
path = packages/sencha-touch/sencha-touch
url = https://git.proxmox.com/git/sencha-touch
[submodule "packages/spiceterm/spiceterm"]
path = packages/spiceterm/spiceterm
url = https://git.proxmox.com/git/spiceterm
[submodule "packages/swtpm/swtpm"]
path = packages/swtpm/swtpm
url = https://github.com/stefanberger/swtpm.git
[submodule "packages/libtpms/libtpms"]
path = packages/libtpms/libtpms
url = https://github.com/stefanberger/libtpms
[submodule "packages/libjs-qrcodejs/libjs-qrcodejs"]
path = packages/libjs-qrcodejs/libjs-qrcodejs
url = https://git.proxmox.com/git/libjs-qrcodejs
[submodule "packages/libpve-u2f-server-perl/libpve-u2f-server-perl"]
path = packages/libpve-u2f-server-perl/libpve-u2f-server-perl
url = https://git.proxmox.com/git/libpve-u2f-server-perl
[submodule "packages/corosync-pve/corosync-pve"]
path = packages/corosync-pve/corosync-pve
url = https://git.proxmox.com/git/corosync-pve
[submodule "packages/corosync-qdevice/corosync-qdevice"]
path = packages/corosync-qdevice/corosync-qdevice
url = https://git.proxmox.com/git/corosync-qdevice
[submodule "packages/proxmox-backup-qemu/proxmox-backup-qemu"]
path = packages/proxmox-backup-qemu/proxmox-backup-qemu
url = https://git.proxmox.com/git/proxmox-backup-qemu
[submodule "packages/proxmox-backup/proxmox-backup"]
path = packages/proxmox-backup/proxmox-backup
url = https://git.proxmox.com/git/proxmox-backup
[submodule "packages/debcargo-conf/debcargo-conf"]
path = packages/debcargo-conf/debcargo-conf
url = https://git.proxmox.com/git/debcargo-conf
[submodule "packages/proxmox-offline-mirror/proxmox-offline-mirror"]
path = packages/proxmox-offline-mirror/proxmox-offline-mirror
url = https://git.proxmox.com/git/proxmox-offline-mirror
[submodule "packages/proxmox-perl-rs/proxmox-perl-rs"]
path = packages/proxmox-perl-rs/proxmox-perl-rs
url = https://git.proxmox.com/git/proxmox-perl-rs
[submodule "packages/pxar/pxar"]
path = packages/pxar/pxar
url = https://git.proxmox.com/git/pxar
[submodule "packages/proxmox-firewall/proxmox-firewall"]
path = packages/proxmox-firewall/proxmox-firewall
url = https://git.proxmox.com/git/proxmox-firewall
[submodule "packages/pathpatterns/pathpatterns"]
path = packages/pathpatterns/pathpatterns
url = https://git.proxmox.com/git/pathpatterns
[submodule "packages/proxmox-backup-meta/proxmox-backup-meta"]
path = packages/proxmox-backup-meta/proxmox-backup-meta
url = https://git.proxmox.com/git/proxmox-backup-meta
[submodule "packages/proxmox-backup-restore-image/proxmox-backup-restore-image"]
path = packages/proxmox-backup-restore-image/proxmox-backup-restore-image
url = https://github.com/jiangcuo/proxmox-backup-restore-image
[submodule "packages/cargo/cargo"]
path = packages/cargo/cargo
url = https://git.proxmox.com/git/cargo
[submodule "packages/pve-lxc-syscalld/pve-lxc-syscalld"]
path = packages/pve-lxc-syscalld/pve-lxc-syscalld
url = https://git.proxmox.com/git/pve-lxc-syscalld
[submodule "packages/pve-edk2-firmware/pve-edk2-firmware"]
path = packages/pve-edk2-firmware/pve-edk2-firmware
url = https://github.com/jiangcuo/pve-edk2-firmware
branch = Port
[submodule "packages/pixman/pixman"]
path = packages/pixman/pixman
url = https://salsa.debian.org/xorg-team/lib/pixman
[submodule "packages/libqb/libqb"]
path = packages/libqb/libqb
url = https://salsa.debian.org/ha-team/libqb
[submodule "packages/ceph-17/ceph-17"]
path = packages/ceph-17/ceph-17
url = https://git.proxmox.com/git/ceph.git
[submodule "packages/ceph-18/ceph-18"]
path = packages/ceph-18/ceph-18
url = https://git.proxmox.com/git/ceph.git
[submodule "packages/ceph-19/ceph-19"]
path = packages/ceph-19/ceph-19
url = https://git.proxmox.com/git/ceph.git

View File

@ -1,377 +0,0 @@
diff -Nur -x .git a/Makefile b/Makefile
--- a/Makefile 2023-07-21 18:58:16.574930367 +0800
+++ b/Makefile 2023-07-21 18:56:39.570811493 +0800
@@ -98,18 +98,12 @@
cd ${BUILDDIR}; dpkg-buildpackage -S -us -uc -d
lintian ${DSC}
-.PHONY: test
-test:
- PVE_GENERATING_DOCS=1 perl -I. ./qm verifyapi
- $(MAKE) -C test
-
.PHONY: upload
upload: ${DEB}
tar cf - ${DEBS} | ssh -X repoman@repo.proxmox.com upload --product pve --dist buster
.PHONY: clean
clean:
- $(MAKE) -C test $@
rm -rf $(PACKAGE)-*/ *.deb *.buildinfo *.changes *.dsc $(PACKAGE)_*.tar.gz
$(MAKE) cleanup-docgen
find . -name '*~' -exec rm {} ';'
diff -Nur -x .git a/PVE/CLI/qm.pm b/PVE/CLI/qm.pm
--- a/PVE/CLI/qm.pm 2023-07-21 18:58:16.578930372 +0800
+++ b/PVE/CLI/qm.pm 2023-07-21 18:56:39.594811522 +0800
@@ -217,7 +217,7 @@
my $vnc_socket = PVE::QemuServer::Helpers::vnc_socket($vmid);
if (my $ticket = $ENV{LC_PVE_TICKET}) { # NOTE: ssh on debian only pass LC_* variables
- mon_cmd($vmid, "change", device => 'vnc', target => "unix:$vnc_socket,password");
+#no need this mon_cmd($vmid, "change", device => 'vnc', target => "unix:$vnc_socket,password");
mon_cmd($vmid, "set_password", protocol => 'vnc', password => $ticket);
mon_cmd($vmid, "expire_password", protocol => 'vnc', time => "+30");
} else {
diff -Nur -x .git a/PVE/QemuServer/CPUConfig.pm b/PVE/QemuServer/CPUConfig.pm
--- a/PVE/QemuServer/CPUConfig.pm 2023-07-21 18:58:16.578930372 +0800
+++ b/PVE/QemuServer/CPUConfig.pm 2023-07-21 18:56:39.598811527 +0800
@@ -456,9 +456,12 @@
my $cputype = $kvm ? "kvm64" : "qemu64";
if ($arch eq 'aarch64') {
- $cputype = 'cortex-a57';
+ $cputype = 'host';
+ } elsif ($arch eq 'riscv64') {
+ $cputype = 'rv64';
+ } elsif ($arch eq 'loongarch64'){
+ $cputype = 'la464-loongarch-cpu';
}
-
my $cpu = {};
my $custom_cpu;
my $hv_vendor_id;
@@ -519,7 +522,7 @@
$pve_forced_flags->{'vendor'} = {
value => $cpu_vendor,
} if $cpu_vendor ne 'default';
- } elsif ($arch ne 'aarch64') {
+ } elsif ($arch eq 'x86_64') {
die "internal error"; # should not happen
}
diff -Nur -x .git a/PVE/QemuServer/PCI.pm b/PVE/QemuServer/PCI.pm
--- a/PVE/QemuServer/PCI.pm 2023-07-21 18:58:16.582930377 +0800
+++ b/PVE/QemuServer/PCI.pm 2023-07-21 18:56:39.598811527 +0800
@@ -240,8 +240,8 @@
# using same bus slots on all HW, so we need to check special cases here:
my $busname = 'pci';
- if ($arch eq 'aarch64' && $machine =~ /^virt/) {
- die "aarch64/virt cannot use IDE devices\n" if $id =~ /^ide/;
+ if ($arch ne 'x86_64' && $machine =~ /^virt/) {
+ die "virt cannot use IDE devices\n" if $id =~ /^ide/;
$busname = 'pcie';
}
diff -Nur -x .git a/PVE/QemuServer/USB.pm b/PVE/QemuServer/USB.pm
--- a/PVE/QemuServer/USB.pm 2023-07-21 18:58:16.582930377 +0800
+++ b/PVE/QemuServer/USB.pm 2023-07-21 18:56:39.598811527 +0800
@@ -39,9 +39,9 @@
my $devices = [];
my $pciaddr = "";
- if ($arch eq 'aarch64') {
- $pciaddr = print_pci_addr('ehci', $bridges, $arch, $machine);
- push @$devices, '-device', "usb-ehci,id=ehci$pciaddr";
+ if ($arch ne 'x86_64') {
+ $pciaddr = print_pci_addr('qemu-xhci', $bridges, $arch, $machine);
+ push @$devices, '-device', "qemu-xhci,id=qemu-xhci";
} elsif ($machine !~ /q35/) { # FIXME: combine this and machine_type_is_q35
$pciaddr = print_pci_addr("piix3", $bridges, $arch, $machine);
push @$devices, '-device', "piix3-usb-uhci,id=uhci$pciaddr.0x2";
diff -Nur -x .git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
--- a/PVE/QemuServer.pm 2023-07-21 18:58:16.578930372 +0800
+++ b/PVE/QemuServer.pm 2023-07-21 18:56:39.594811522 +0800
@@ -71,6 +71,14 @@
"$EDK2_FW_BASE/AAVMF_CODE.fd",
"$EDK2_FW_BASE/AAVMF_VARS.fd"
],
+ loongarch64 => [
+ "$EDK2_FW_BASE/LOONGARCH_CODE.fd",
+ "$EDK2_FW_BASE/LOONGARCH_VARS.fd",
+ ],
+ riscv64 => [
+ "$EDK2_FW_BASE/RISCV_CODE.fd",
+ "$EDK2_FW_BASE/RISCV_VARS.fd",
+ ],
};
my $cpuinfo = PVE::ProcFSTools::read_cpuinfo();
@@ -607,7 +615,7 @@
description => "Virtual processor architecture. Defaults to the host.",
optional => 1,
type => 'string',
- enum => [qw(x86_64 aarch64)],
+ enum => [qw(x86_64 aarch64 riscv64 loongarch64)],
},
smbios1 => {
description => "Specify SMBIOS type 1 fields.",
@@ -1388,8 +1396,8 @@
# we use uhci for old VMs because tablet driver was buggy in older qemu
my $usbbus;
- if (PVE::QemuServer::Machine::machine_type_is_q35($conf) || $arch eq 'aarch64') {
- $usbbus = 'ehci';
+ if (PVE::QemuServer::Machine::machine_type_is_q35($conf) || $arch ne 'x86_64') {
+ $usbbus = 'qemu-xhci';
} else {
$usbbus = 'uhci';
}
@@ -1400,9 +1408,9 @@
sub print_keyboarddevice_full {
my ($conf, $arch, $machine) = @_;
- return if $arch ne 'aarch64';
+ return if $arch eq 'x86_64';
- return "usb-kbd,id=keyboard,bus=ehci.0,port=2";
+ return "usb-kbd,id=keyboard,bus=qemu-xhci.0,port=2";
}
my sub get_drive_id {
@@ -1753,7 +1761,7 @@
my ($conf, $vga, $arch, $machine_version, $machine, $id, $qxlnum, $bridges) = @_;
my $type = $vga_map->{$vga->{type}};
- if ($arch eq 'aarch64' && defined($type) && $type eq 'virtio-vga') {
+ if ($arch ne 'x86_64' && defined($type) && $type eq 'virtio-vga') {
$type = 'virtio-gpu';
}
my $vgamem_mb = $vga->{memory};
@@ -2934,6 +2942,8 @@
my $default_machines = {
x86_64 => 'pc',
aarch64 => 'virt',
+ loongarch64 => 'virt',
+ riscv64 => 'virt',
};
sub get_installed_machine_version {
@@ -3012,6 +3022,8 @@
my $Arch2Qemu = {
aarch64 => '/usr/bin/qemu-system-aarch64',
x86_64 => '/usr/bin/qemu-system-x86_64',
+ riscv64 => '/usr/bin/qemu-system-riscv64',
+ loongarch64 => '/usr/bin/qemu-system-loongarch64',
};
sub get_command_for_arch($) {
my ($arch) = @_;
@@ -3052,8 +3064,8 @@
# FIXME: Once this is merged, the code below should work for ARM as well:
# https://lists.nongnu.org/archive/html/qemu-devel/2019-06/msg04947.html
- die "QEMU/KVM cannot detect CPU flags on ARM (aarch64)\n" if
- $arch eq "aarch64";
+ die "QEMU/KVM only can detect CPU flags on x86_64\n" if
+ $arch ne "x86_64";
my $kvm_supported = defined(kvm_version());
my $qemu_cmd = get_command_for_arch($arch);
@@ -3069,7 +3081,7 @@
$qemu_cmd,
'-machine', $default_machine,
'-display', 'none',
- '-chardev', "socket,id=qmp,path=/var/run/qemu-server/$fakevmid.qmp,server,nowait",
+ '-chardev', "socket,id=qmp,path=/var/run/qemu-server/$fakevmid.qmp,server=on,wait=off",
'-mon', 'chardev=qmp,mode=control',
'-pidfile', $pidfile,
'-S', '-daemonize'
@@ -3226,7 +3238,7 @@
my $use_virtio = 0;
my $qmpsocket = PVE::QemuServer::Helpers::qmp_socket($vmid);
- push @$cmd, '-chardev', "socket,id=qmp,path=$qmpsocket,server,nowait";
+ push @$cmd, '-chardev', "socket,id=qmp,path=$qmpsocket,server=on,wait=off";
push @$cmd, '-mon', "chardev=qmp,mode=control";
if (min_version($machine_version, 2, 12)) {
@@ -3240,6 +3252,8 @@
if ($conf->{smbios1}) {
my $smbios_conf = parse_smbios1($conf->{smbios1});
+ # other not need smbios
+ if ( $arch eq 'x86_64' ||$arch eq 'aarch64' ){
if ($smbios_conf->{base64}) {
# Do not pass base64 flag to qemu
delete $smbios_conf->{base64};
@@ -3260,6 +3274,7 @@
push @$cmd, '-smbios', "type=1,$conf->{smbios1}";
}
}
+ }
if ($conf->{bios} && $conf->{bios} eq 'ovmf') {
my ($ovmf_code, $ovmf_vars) = get_ovmf_files($arch);
@@ -3293,12 +3308,20 @@
if ($format eq 'raw' && $version_guard->(4, 1, 2)) {
$size_str = ",size=" . (-s $ovmf_vars);
}
-
- push @$cmd, '-drive', "if=pflash,unit=0,format=raw,readonly,file=$ovmf_code";
- push @$cmd, '-drive', "if=pflash,unit=1,format=$format,id=drive-efidisk0$size_str,file=$path";
+ if ($arch eq 'loongarch64') {
+ push @$cmd, '-bios','/usr/share/pve-edk2-firmware//LOONGARCH_CODE.fd';
+ } elsif ($arch eq 'riscv64') {
+ push @$cmd, '-bios','/usr/share/pve-edk2-firmware//fw_dynamic.bin';
+ push @$cmd, '-drive', "if=pflash,unit=0,format=raw,readonly,file=$ovmf_code";
+ push @$cmd, '-drive', "if=pflash,unit=1,format=$format,id=drive-efidisk0$size_str,file=$path";
+ }else {
+ push @$cmd, '-drive', "if=pflash,unit=0,format=raw,readonly,file=$ovmf_code";
+ push @$cmd, '-drive', "if=pflash,unit=1,format=$format,id=drive-efidisk0$size_str,file=$path";
}
+ }
# load q35 config
+ if ($arch eq 'x86_64'){
if ($q35) {
# we use different pcie-port hardware for qemu >= 4.0 for passthrough
if (min_version($machine_version, 4, 0)) {
@@ -3307,10 +3330,16 @@
push @$devices, '-readconfig', '/usr/share/qemu-server/pve-q35.cfg';
}
}
+ } else {
+ push @$devices, '-readconfig', '/usr/share/qemu-server/pve-port.cfg';
+ }
- if ($conf->{vmgenid}) {
- push @$devices, '-device', 'vmgenid,guid='.$conf->{vmgenid};
- }
+ # only x86_64 need vmgenid
+ if ($arch eq 'x86_64'){
+ if ($conf->{vmgenid}) {
+ push @$devices, '-device', 'vmgenid,guid='.$conf->{vmgenid};
+ }
+ }
# add usb controllers
my @usbcontrollers = PVE::QemuServer::USB::get_usb_controllers(
@@ -3322,7 +3351,7 @@
$vga->{type} = 'qxl' if $qxlnum;
if (!$vga->{type}) {
- if ($arch eq 'aarch64') {
+ if ($arch ne 'x86_64') {
$vga->{type} = 'virtio';
} elsif (min_version($machine_version, 2, 9)) {
$vga->{type} = (!$winversion || $winversion >= 6) ? 'std' : 'cirrus';
@@ -3366,11 +3395,11 @@
if (my $path = $conf->{"serial$i"}) {
if ($path eq 'socket') {
my $socket = "/var/run/qemu-server/${vmid}.serial$i";
- push @$devices, '-chardev', "socket,id=serial$i,path=$socket,server,nowait";
+ push @$devices, '-chardev', "socket,id=serial$i,path=$socket,server=on,wait=off";
# On aarch64, serial0 is the UART device. Qemu only allows
# connecting UART devices via the '-serial' command line, as
# the device has a fixed slot on the hardware...
- if ($arch eq 'aarch64' && $i == 0) {
+ if ($arch ne 'x86_64' && $i == 0) {
push @$devices, '-serial', "chardev:serial$i";
} else {
push @$devices, '-device', "isa-serial,chardev=serial$i";
@@ -3438,7 +3467,7 @@
push @$devices, '-device', print_vga_device(
$conf, $vga, $arch, $machine_version, $machine_type, undef, $qxlnum, $bridges);
my $socket = PVE::QemuServer::Helpers::vnc_socket($vmid);
- push @$cmd, '-vnc', "unix:$socket,password";
+ push @$cmd, '-vnc', "unix:$socket,password=on";
} else {
push @$cmd, '-vga', 'none' if $vga->{type} eq 'none';
push @$cmd, '-nographic';
@@ -3486,7 +3515,7 @@
if ($guest_agent->{enabled}) {
my $qgasocket = PVE::QemuServer::Helpers::qmp_socket($vmid, 1);
- push @$devices, '-chardev', "socket,path=$qgasocket,server,nowait,id=qga0";
+ push @$devices, '-chardev', "socket,path=$qgasocket,server=on,wait=off,id=qga0";
if (!$guest_agent->{type} || $guest_agent->{type} eq 'virtio') {
my $pciaddr = print_pci_addr("qga0", $bridges, $arch, $machine_type);
@@ -4545,10 +4574,10 @@
if ($defaults->{tablet}) {
vm_deviceplug($storecfg, $conf, $vmid, 'tablet', $arch, $machine_type);
vm_deviceplug($storecfg, $conf, $vmid, 'keyboard', $arch, $machine_type)
- if $arch eq 'aarch64';
+ if $arch ne 'x86_x64';
} else {
vm_deviceunplug($vmid, $conf, 'tablet');
- vm_deviceunplug($vmid, $conf, 'keyboard') if $arch eq 'aarch64';
+ vm_deviceunplug($vmid, $conf, 'keyboard') if $arch ne 'x86_x64';
}
} elsif ($opt =~ m/^usb\d+/) {
die "skip\n";
@@ -4628,10 +4657,10 @@
if ($value == 1) {
vm_deviceplug($storecfg, $conf, $vmid, 'tablet', $arch, $machine_type);
vm_deviceplug($storecfg, $conf, $vmid, 'keyboard', $arch, $machine_type)
- if $arch eq 'aarch64';
+ if $arch ne 'x86_64';
} elsif ($value == 0) {
vm_deviceunplug($vmid, $conf, 'tablet');
- vm_deviceunplug($vmid, $conf, 'keyboard') if $arch eq 'aarch64';
+ vm_deviceunplug($vmid, $conf, 'keyboard') if $arch ne 'x86_64';
}
} elsif ($opt =~ m/^usb\d+$/) {
die "skip\n";
diff -Nur -x .git a/qemu-configs/Makefile b/qemu-configs/Makefile
--- a/qemu-configs/Makefile 2023-07-21 18:58:04.294915319 +0800
+++ b/qemu-configs/Makefile 2023-07-21 18:56:39.598811527 +0800
@@ -2,11 +2,12 @@
USRSHAREDIR=$(DESTDIR)/usr/share/qemu-server
.PHONY: install
-install: pve-usb.cfg pve-q35.cfg pve-q35-4.0.cfg
+install: pve-usb.cfg pve-q35.cfg pve-q35-4.0.cfg pve-port.cfg
install -d $(USRSHAREDIR)
install -m 0644 pve-usb.cfg $(USRSHAREDIR)
install -m 0644 pve-q35.cfg $(USRSHAREDIR)
install -m 0644 pve-q35-4.0.cfg $(USRSHAREDIR)
+ install -m 0644 pve-port.cfg $(USRSHAREDIR)
.PHONY: clean
clean:
diff -Nur -x .git a/qemu-configs/pve-port.cfg b/qemu-configs/pve-port.cfg
--- a/qemu-configs/pve-port.cfg 1970-01-01 08:00:00.000000000 +0800
+++ b/qemu-configs/pve-port.cfg 2023-07-21 18:56:39.598811527 +0800
@@ -0,0 +1,30 @@
+[device "pcie.1"]
+ driver = "pci-bridge"
+ bus = "pcie.0"
+ addr = "0xa"
+ chassis_nr = "1"
+
+#[device "pciroot"]
+# driver = "pci-bridge"
+# bus = "pci.1"
+# addr = "1.0"
+# chassis_nr = "1"
+
+[device "pcie.2"]
+ driver = "pci-bridge"
+ bus = "pci.1"
+ addr = "1.0"
+ chassis_nr = "2"
+
+
+[device "pcie.3"]
+ driver = "pci-bridge"
+ bus = "pci.2"
+ addr = "1.0"
+ chassis_nr = "3"
+
+[device "pcie.4"]
+ driver = "pci-bridge"
+ bus = "pci.2"
+ addr = "2.0"
+ chassis_nr = "4"
\ No newline at end of file

66
README.md Normal file → Executable file
View File

@ -1,51 +1,29 @@
# Proxmox-Port # Proxmox VE Port package source
Arm64/Riscv64/Loongarch64 are ok. ## How to Build
There is a detailed introduction in the wiki. ### Initializing the build host
We need Debian 12 for this code
## 1. Tested platform: ```bash
- Rockpi (arm64) apt update
- Raspberry Pi (arm64) apt install quilt docker.io -y
- Amlogic TV box (arm64) cd docker
- Kunpeng (arm64) docker build -t pvebuilder -f dockerfile.arm64 .
- FT (arm64) ```
- Ampere (arm64)
- Apple (arm64,vm only,no kvm support) ### Build via Docker
- 3A5000/3A6000/3C5000 (loongarch64)
- VisionFive2 (riscv64) ```bash
bash build.sh pve-common
Detailed: https://github.com/jiangcuo/Proxmox-Port/wiki/Support-List ```
The built package will be under /tmp/pve-common
## 2. screen shot ### Custom Docker Image
arm64
<img width="800" alt="image" src="https://github.com/jiangcuo/Proxmox-Port/assets/49061187/0628e750-e0ff-4b74-a90e-865aac4df8fa"> ```bash
BUILDERNAME=dockerpull.com/pvebuilder:20241101 bash build.sh pve-common
```
riscv64
<img width="800" alt="image" src="https://github.com/jiangcuo/Proxmox-Port/assets/49061187/841799fc-85c0-4227-ab12-e999ee66ffd3">
loongarch64
<img width="800" alt="image" src="https://github.com/jiangcuo/Proxmox-Port/assets/49061187/1d01de5a-455c-46d4-9ff1-12ba199a5e66">
## 3. Installation
If you are using server that supports EFI,you can install proxmox-ve with iso.
https://mirrors.apqa.cn/proxmox/isos/
If you are using u-boot device or failed with iso, you can install proxmox-ve from repo.
Head to the wiki page to learn more.
## Star History
[![Star History Chart](https://api.star-history.com/svg?repos=jiangcuo/Proxmox-Arm64,jiangcuo/Proxmox-Port&type=Date)](https://star-history.com/#jiangcuo/Proxmox-Arm64&jiangcuo/Proxmox-Port&Date)

128
build.sh Executable file
View File

@ -0,0 +1,128 @@
#!/bin/bash
PKGNAME=$1
SH_PATH=$(readlink -f `dirname "$0"`)
PKG_LOCATION_PATH="/tmp/2022"
DEB_OPT="dd"
errlog(){
echo $1;
exit 1;
}
copy_dir(){
rsync -ra $SH_DIR/$PKGNAME /build
cd /build/$PKGNAME
}
if [ ! -n "$PKGNAME" ];then
errlog "Useage: ./build.sh pve-common"
fi
if [ ! -d "$SH_PATH/packages/$PKGNAME" ];then
errlog "$PKGNAME is not exsited!"
fi
if [ -n "$PKG_DIR" ];then
PKG_LOCATION_PATH=$PKG_DIR
fi
if [ -n "$DEB_BUILD_OPTIONS" ];then
DEB_OPT=$DEB_BUILD_OPTIONS
fi
dscflag="dsc"
if [[ "$DEB_BUILD_OPTIONS" == *"nodsc"* ]];then
dscflag="nodsc"
fi
echo "--------------info------------------"
echo "This is Proxmox-Port package build scripts"
echo "Package is $PKGNAME"
echo "Docker build is $BUILDERNAME"
echo "Package dir is $PKG_LOCATION_PATH/$PKGNAME"
if [ -n "$DEB_BUILD_OPTIONS" ];
then
echo "DEB_BUILD_OPTIONS = $DEB_BUILD_OPTIONS"
fi
echo "--------------start-----------------"
dockerbuild(){
rm $SH_PATH/packages/$PKGNAME/$PKGNAME/pvebuild -rf
if [ -n "$BUILDERNAME" ];then
docker run -it -e DEB_BUILD_OPTIONS=$DEB_OPT -e PKGDIR=$SH_PATH/packages/$PKGNAME/$PKGNAME -v $SH_PATH/:$SH_PATH --name $PKGNAME --rm $BUILDERNAME || errlog "builderror"
else
docker run -it -e DEB_BUILD_OPTIONS=$DEB_OPT -e PKGDIR=$SH_PATH/packages/$PKGNAME/$PKGNAME -v $SH_PATH/:$SH_PATH --name $PKGNAME --rm pvebuilder|| errlog "builderror"
fi
}
upload_pkg(){
rm $PKG_LOCATION_PATH/$PKGNAME -rf
mkdir $PKG_LOCATION_PATH/$PKGNAME -p
find "$SH_PATH/packages/$PKGNAME/$PKGNAME" -name "*.deb" -exec cp {} $PKG_LOCATION_PATH/$PKGNAME \;
find "$SH_PATH/packages/$PKGNAME/$PKGNAME" -name "*.buildinfo" -exec cp {} $PKG_LOCATION_PATH/$PKGNAME \;
find "$SH_PATH/packages/$PKGNAME/$PKGNAME" -name "*.changes" -exec cp {} $PKG_LOCATION_PATH/$PKGNAME \;
find "$SH_PATH/packages/$PKGNAME/$PKGNAME" -name "*.dsc" -exec cp {} $PKG_LOCATION_PATH/$PKGNAME \;
find "$SH_PATH/packages/$PKGNAME/$PKGNAME" -name "*.tar*" -exec cp {} $PKG_LOCATION_PATH/$PKGNAME \;
ls $PKG_LOCATION_PATH/$PKGNAME/
for i in `ls $PKG_LOCATION_PATH/$PKGNAME/*.deb`;
do
md5sum $i > $i.md5
cat $i.md5
done
for i in `ls $PKG_LOCATION_PATH/$PKGNAME/*.buildinfo`;
do
md5sum $i > $i.md5
cat $i.md5
done
for i in `ls $PKG_LOCATION_PATH/$PKGNAME/*.changes`;
do
md5sum $i > $i.md5
cat $i.md5
done
if [ $dscflag == "dsc" ];then
for i in `ls $PKG_LOCATION_PATH/$PKGNAME/*.dsc`;
do
md5sum $i > $i.md5
cat $i.md5
done
for i in `ls $PKG_LOCATION_PATH/$PKGNAME/*.tar*`;
do
md5sum $i > $i.md5
cat $i.md5
done
fi
}
update_submodues(){
rm $SH_PATH/packages/$PKGNAME/$PKGNAME/ -rf
mkdir $SH_PATH/packages/$PKGNAME/$PKGNAME/
git submodule update --init --recursive "$SH_PATH/packages/$PKGNAME/$PKGNAME"
}
update_submodues || errlog "Failed to update submodule"
if [ -f "$SH_PATH/packages/$PKGNAME/series" ];then
cd "$SH_PATH/packages/$PKGNAME/$PKGNAME"
for i in `cat $SH_PATH/packages/$PKGNAME/series`;
do patch -p1 < $SH_PATH/packages/$PKGNAME/$i
done
fi
ARCH=$(arch)
if [ -f "$SH_PATH/packages/$PKGNAME/series.$ARCH" ];then
cd "$SH_PATH/packages/$PKGNAME/$PKGNAME"
for i in `cat $SH_PATH/packages/$PKGNAME/series.$ARCH`;
do patch -p1 < $SH_PATH/packages/$PKGNAME/$i
done
fi
cd $SH_PATH
dockerbuild
upload_pkg || errlog "upload pkg failed"

43
docker/dockerfile.arm64 Normal file
View File

@ -0,0 +1,43 @@
FROM debian:12
ARG DEBIAN_APT=http://mirrors.ustc.edu.cn
ARG PVE_APT=https://mirrors.lierfang.com
ARG ARCH=
RUN rm /etc/apt/sources.list.d/* \
&& echo "deb $DEBIAN_APT/debian bookworm main contrib non-free non-free-firmware" >/etc/apt/sources.list \
&& echo "deb $DEBIAN_APT/debian bookworm-updates main contrib non-free non-free-firmware" >> /etc/apt/sources.list \
&& echo "deb $DEBIAN_APT/debian bookworm-backports main contrib non-free non-free-firmware" >> /etc/apt/sources.list \
&& echo "deb $DEBIAN_APT/debian-security bookworm-security main contrib non-free non-free-firmware " >> /etc/apt/sources.list
RUN apt update && apt install -y wget nano curl gnupg ca-certificates apt-utils
RUN ARCH=$(dpkg --print-architecture) \
&& if [ "$ARCH" = "amd64" ]; then \
echo "deb $PVE_APT/proxmox/debian/pve bookworm pve-no-subscription" >> /etc/apt/sources.list; \
echo "deb $PVE_APT/proxmox/debian/devel bookworm main" >> /etc/apt/sources.list; \
curl -l -o /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg $PVE_APT/proxmox/debian/proxmox-release-bookworm.gpg; \
else \
echo "deb $PVE_APT/proxmox/debian/pve bookworm port" >> /etc/apt/sources.list; \
echo "deb $PVE_APT/proxmox/debian/devel bookworm port" >> /etc/apt/sources.list; \
curl -l -o /etc/apt/trusted.gpg.d/pveport.gpg $PVE_APT/proxmox/debian/pveport.gpg; \
fi
RUN apt update && apt -y install build-* devscripts cargo dh-cargo devscripts rsync debcargo pkg-config debhelper git bison dwarves flex meson equivs
RUN apt update \
&& DEBIAN_FRONTEND=noninteractiv apt-get -y --no-install-recommends install proxmox-ve || echo ok
RUN rm /var/lib/dpkg/info/pve-manager.postinst \
&& rm /var/lib/dpkg/info/proxmox-ve.postinst \
&& dpkg --configure -a
ADD ./start.sh /
CMD ["bash","/start.sh"]

48
docker/start.sh Normal file
View File

@ -0,0 +1,48 @@
#!/bin/bash
errlog(){
echo $1
exit 1
}
export dscflag="dsc"
if [[ "$DEB_BUILD_OPTIONS" == *"nodsc"* ]];then
dscflag="nodsc"
fi
exec_build(){
echo "install depends"
apt update
yes |mk-build-deps --install --remove
mkdir /tmp/$PKGDIR -p
if [ -f "Makefile" ];then
echo "clean "
make clean || echo ok
echo "build deb in `pwd` "
if [ $dscflag == "dsc" ];then
make dsc || errlog "build dsc error"
cp *.dsc *.tar.* /tmp/$PKGDIR
fi
make deb || errlog "build deb error"
# We need copy deb files first beacuse of deb will be clean when dsc build
cp -r /tmp/$PKGDIR/* ./
else
dpkg-buildpackage -b -us -uc ||errlog "build deb error"
mv ../*.deb ../*.buildinfo ../*.changes ../*.dsc ../*.tar.* $PKGDIR
fi
}
if [ ! -d "$PKGDIR" ];then
errlog "$PKGDIR dir is not existd,Exitting !"
fi
if [ -f "$PKGDIR/../autobuild.sh" ];then
cd $PKGDIR/../
bash autobuild.sh
else
cd $PKGDIR
exec_build
fi

View File

@ -1,9 +0,0 @@
# Help
## Kernel
[kernel.md](./kernel.md)
## Port Registry
[repo.md](./repo.md)

View File

@ -1,95 +0,0 @@
# Proxmox Port Kernel
I forked a kernel project:
`https://github.com/jiangcuo/pve-port-kernel.git`
The pre-build kernel file of this project is stored in the repo:
`deb https://global.mirrors.apqa.cn/proxmox/debian/kernel sid port`
Currently, there are two architectures: LoongArch64 and ARM64.
The config in the kernel selects all arm64 devices and can theoretically be used for all.
## 1. How to install the kernel
### 1.1 Use apt
```bash
#add repo
$ echo "deb https://global.mirrors.apqa.cn/proxmox/debian/kernel sid port" >> /etc/apt/sources.list.d/pveport.list
#fresh
$ apt update
#Lists the available kernels
$ apt search pve-kernel
#install latest kernel by metapackage
$ apt install pve-kernel-6.1-generic
```
### 1.2 Use dpkg
download kernel package form project releases or repo, use
`dpkg -i pve-kernel-*` to install.
### 1.3 Boot from new kernel
A PC booted with should automatically set the latest kernel as the first boot kernel. You just need reboot to apply.
If you encounter a failure with a new kernel ,reboot to grub, select Advanced, and in the next options, select the previous kernel.
### 1.3 uboot devices
The uboot device will read the `/{boot_partition}/extlinux/extlinux.conf` file on the boot.
```bash
# if your boot_partition is /dev/mmcblk0p3
$ mount /dev/mmcblk0p3 /opt
# if pve kernel vmlinuz is vmlinuz-6.1.60-generic
$ cp /boot/vmlinuz-6.1.60-generic /opt
$ sync
```
You can edit your extlinux.conf.
```bash
$ nano /opt/extlinux/extlinux.conf
```
```
default l0
menu title QuartzPro64 Boot Menu
prompt 0
timeout 50
# create a new item with new kernel.
label l0
menu label Boot Linux Kernel SDMMC
linux /vmlinuz-6.1.60-generic
fdt /rk3588-quartzpro64.dtb
append earlycon=uart8250,mmio32,0xfeb50000 console=ttyS2,1500000n8 root=/dev/mmcblk1p5 rw rootwait
# backup old boot item
label 20
menu label Boot Linux Kernel SDMMC Backup
linux /Image
fdt /rk3588-quartzpro64.dtb
append earlycon=uart8250,mmio32,0xfeb50000 console=ttyS2,1500000n8 root=/dev/mmcblk1p5 rw rootwait
```
The kernel package has compiled the DTB file, if you need it, you can go to the "/boot/dtbs/{kernel_version}/" folder.
!!! NOTE
*** Make sure you can access your device using the serial port. If your changes are wrong, you may not be able to boot the system, so you have a serial port that you can debug again. ***
## 2. Manual build
See https://github.com/jiangcuo/pve-port-kernel readme.md

View File

@ -1,85 +0,0 @@
# Proxmox-Port Repo List
### Mirrors
```bash
Golbal: https://global.mirrors.apqa.cn (Cloudflare)
Korea: https://mirrors.apqa.cn (Cloudflare)
Hong Kong: https://hk.mirrors.apqa.cn (direct)
China: https://mirrors.lierfang.com (direct)
Germany: https://de.mirrors.apqa.cn (direct)
```
### key
https://mirrors.apqa.cn/proxmox/debian/pveport.gpg
```bash
curl -L https://mirrors.apqa.cn/proxmox/debian/pveport.gpg -o /etc/apt/trusted.gpg.d/pveport.gpg
```
### pve repo
pve7
```bash
deb https://mirrors.apqa.cn/proxmox/debian/pve bullseye port
```
pve8
```bash
deb https://mirrors.apqa.cn/proxmox/debian/pve bookworm port
```
If you want to use test repo:
```bash
deb https://mirrors.apqa.cn/proxmox/debian/pve bookworm pvetest
```
ceph-reef
```bash
deb https://mirrors.apqa.cn/proxmox/debian/pve bookworm ceph-reef
```
loong64 sid only
```bash
deb https://mirrors.apqa.cn/proxmox/debian/pve sid port
```
### pbs repo
pve7
```bash
deb https://mirrors.apqa.cn/proxmox/debian/pbs bullseye port
```
pve8
```bash
deb https://mirrors.apqa.cn/proxmox/debian/pbs bookworm port
```
### devel
pve7
```bash
deb https://mirrors.apqa.cn/proxmox/debian/devel bullseye port
```
pve8
```bash
deb https://mirrors.apqa.cn/proxmox/debian/devel bookworm port
```
### Kernel Repo
```bash
deb https://mirrors.apqa.cn/proxmox/debian/kernel sid port
```
kernel build form https://github.com/jiangcuo/pve-port-kernel and may not compatible all machine

1
packages/cargo/cargo Submodule

@ -0,0 +1 @@
Subproject commit f1ba41e0910163a360d824811b8ceaeda5302e17

View File

@ -0,0 +1,13 @@
#!/bin/bash
SCRIPT_DIR=$(cd $(dirname ${BASH_SOURCE[0]}); pwd)
PKGNAME=$(basename $SCRIPT_DIR)
echo "This is $PKGNAME build scripts"
. ../common.sh
cd $SCRIPT_DIR/$PKGNAME/ceph
apt update
yes |mk-build-deps --install --remove
cd $SCRIPT_DIR/$PKGNAME
exec_build_make

@ -0,0 +1 @@
Subproject commit eccf199d63457659c09677399928203b7903c888

View File

@ -0,0 +1,13 @@
#!/bin/bash
SCRIPT_DIR=$(cd $(dirname ${BASH_SOURCE[0]}); pwd)
PKGNAME=$(basename $SCRIPT_DIR)
echo "This is $PKGNAME build scripts"
. ../common.sh
cd $SCRIPT_DIR/$PKGNAME/ceph
apt update
yes |mk-build-deps --install --remove
cd $SCRIPT_DIR/$PKGNAME
exec_build_make

@ -0,0 +1 @@
Subproject commit 2064df84afc61c7e63928121bfdd74c59453c893

View File

@ -0,0 +1,13 @@
#!/bin/bash
SCRIPT_DIR=$(cd $(dirname ${BASH_SOURCE[0]}); pwd)
PKGNAME=$(basename $SCRIPT_DIR)
echo "This is $PKGNAME build scripts"
. ../common.sh
cd $SCRIPT_DIR/$PKGNAME/ceph
apt update
yes |mk-build-deps --install --remove
cd $SCRIPT_DIR/$PKGNAME
exec_build_make

@ -0,0 +1 @@
Subproject commit 3815e3391b18c593539df6fa952c9f45c37ee4d0

32
packages/common.sh Normal file
View File

@ -0,0 +1,32 @@
#!/bin/bash
copy_dir(){
rsync -ra $SH_DIR/$PKGNAME /build
cd /build/$PKGNAME
}
exec_build_make(){
apt update
yes |mk-build-deps --install --remove
echo "clean "
make clean || echo ok
echo "build deb in `pwd` "
if [ $dscflag == "dsc" ];then
make dsc || errlog "build dsc error"
fi
DEB_BUILD_OPTIONS=nocheck make deb || errlog "build deb error"
}
exec_build_dpkg(){
apt update
yes |mk-build-deps --install --remove
echo "clean "
make clean || echo ok
echo "build deb in `pwd` "
dpkg-buildpackage -b -us -uc || errlog "build deb error"
}
errlog(){
echo $1;
exit 1;
}

@ -0,0 +1 @@
Subproject commit 89610ded4948736e822e2348e8b94051d5b22b1e

@ -0,0 +1 @@
Subproject commit b101bf59c3979c076e3406062021aae1fd36ed21

@ -0,0 +1 @@
Subproject commit e66fc12f82bc1a420fb9e045b84a1719ec26ef98

1
packages/extjs/extjs Submodule

@ -0,0 +1 @@
Subproject commit c0c1b0b6335618415ada92f04bd35774e3edb856

@ -0,0 +1 @@
Subproject commit 063091d1a7ea70eba36c5684d20428ba215cb769

@ -0,0 +1 @@
Subproject commit 48bff42bc2022d8569616244f20c1717c0f04ca2

@ -0,0 +1 @@
Subproject commit e14981235facc99b29b36fcc15d06bd0b2b0045a

@ -0,0 +1 @@
Subproject commit 23493367096149c17219da76c035c127cd7e19f1

@ -0,0 +1 @@
Subproject commit a58f726945c5ff565d596726df04de591182d9a6

@ -0,0 +1 @@
Subproject commit 903bba0abb02cc36f969e5df22c897517792bc32

@ -0,0 +1 @@
Subproject commit ff240abbe9dbb226d9b37cc95c181a3e09920a8c

@ -0,0 +1 @@
Subproject commit 6567779c7cb2f2216f3037d77f238fed4138e258

View File

@ -0,0 +1,14 @@
#!/bin/bash
SCRIPT_DIR=$(cd $(dirname ${BASH_SOURCE[0]}); pwd)
PKGNAME=$(basename $SCRIPT_DIR)
echo "This is $PKGNAME build scripts"
SH_PATH=$(realpath "$0")
SH_DIR=$(dirname $SH_PATH)
. ../common.sh
copy_dir
exec_build_dpkg
cp /build/*.changes /build/*.buildinfo /build/*.deb $SH_DIR/$PKGNAME

1
packages/libqb/libqb Submodule

@ -0,0 +1 @@
Subproject commit bd3c7387ede5949d4f9f6621697a18450f8335e0

View File

@ -0,0 +1,53 @@
From 1a783707b03c7219c22816ca7af6befc6559f791 Mon Sep 17 00:00:00 2001
From: jiangcuo <jiangcuo@bingsin.com>
Date: Sat, 16 Nov 2024 17:27:31 +0800
Subject: [PATCH] add-support-for-loongson
---
configure.ac | 5 +++++
lib/unix.c | 2 +-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 879ad154..ec9b35b8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -353,6 +353,11 @@ case $host_cpu in
AC_DEFINE_UNQUOTED([QB_ARCH_MIPS], [1], [mips])
arch_force_shmlba=yes
;;
+ loongson*)
+ AC_MSG_RESULT([loongson])
+ AC_DEFINE_UNQUOTED([QB_ARCH_LOONGSON], [1], [loongson])
+ arch_force_shmlba=yes
+ ;;
*)
AC_MSG_RESULT([${host_cpu}])
;;
diff --git a/lib/unix.c b/lib/unix.c
index 6bd3cc24..0dc76470 100644
--- a/lib/unix.c
+++ b/lib/unix.c
@@ -229,7 +229,7 @@ qb_sys_circular_mmap(int32_t fd, void **buf, size_t bytes)
flags |= MAP_PRIVATE;
#endif /* QB_FORCE_SHM_ALIGN */
-#if defined(QB_ARCH_HPPA)
+#if defined(QB_ARCH_HPPA) || defined(QB_ARCH_LOONGSON)
/* map twice the size we want to make sure we have already mapped
the second memory location behind it too. Otherwise the Linux
kernel may map it in the upper memory so that we can't map
diff --git a/debian/changelog b/debian/changelog
index 5f009af..e53f81c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+libqb (2.0.8-2+port) unstable; urgency=medium
+
+ * Add loongarch64 support
+
+ -- Jiangcuo <jiangcuo@lierfang.com> Thu, 21 Nov 2024 13:59:33 +0800
+
libqb (2.0.8-2) unstable; urgency=medium
* [ca9bf88] Add procps build dependency for resources.test

1
packages/libqb/series Normal file
View File

@ -0,0 +1 @@
patches/001-add-loongarch-support.patch

View File

@ -0,0 +1,22 @@
#!/bin/bash
SCRIPT_DIR=$(cd $(dirname ${BASH_SOURCE[0]}); pwd)
PKGNAME=$(basename $SCRIPT_DIR)
. ../common.sh
echo "This is $PKGNAME build scripts"
exec_build(){
apt update
apt install libpve-access-control librados2 librados-dev -y
yes |mk-build-deps --install --remove
echo "clean "
make clean || echo ok
echo "build deb in `pwd` "
make deb || errlog "build deb error"
if [ $dscflag == "dsc" ];then
make dsc || errlog "build dsc error"
fi
}
cd $SCRIPT_DIR/$PKGNAME
exec_build

@ -0,0 +1 @@
Subproject commit b2017399cac82628e15ec14e95551c14fdfbf14f

View File

@ -0,0 +1,14 @@
#!/bin/bash
SCRIPT_DIR=$(cd $(dirname ${BASH_SOURCE[0]}); pwd)
PKGNAME=$(basename $SCRIPT_DIR)
echo "This is $PKGNAME build scripts"
SH_PATH=$(realpath "$0")
SH_DIR=$(dirname $SH_PATH)
. ../common.sh
copy_dir
exec_build_dpkg
cp /build/*.changes /build/*.buildinfo /build/*.deb /build/*.tar.* /build/*.dsc $SH_DIR/$PKGNAME

@ -0,0 +1 @@
Subproject commit b8c9153a3f74d0c80a34b21b527625524063216c

@ -0,0 +1 @@
Subproject commit 77017fd76baaa3cd6e90ca75bf50a736fe9f9b05

1
packages/lxc/lxc Submodule

@ -0,0 +1 @@
Subproject commit 12c47dd66cd23c96259e8c38eb009cfb2098be2e

1
packages/lxcfs/lxcfs Submodule

@ -0,0 +1 @@
Subproject commit 9a51a616a09dd8ffeb0c920128ced3cfe50af66d

View File

@ -0,0 +1,16 @@
From 1590a0be2c1b7b238f4962d4f28ec36af91f10f4 Mon Sep 17 00:00:00 2001
From: jiangcuo <49061187+jiangcuo@users.noreply.github.com>
Date: Wed, 30 Oct 2024 21:11:26 +0800
Subject: [PATCH] fix lib patch
---
debian/lxcfs.links | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/debian/lxcfs.links b/debian/lxcfs.links
index 36e0af9..78a35d3 100644
--- a/debian/lxcfs.links
+++ b/debian/lxcfs.links
@@ -1 +1 @@
-usr/lib/x86_64-linux-gnu/lxcfs/liblxcfs.so usr/lib/x86_64-linux-gnu/liblxcfs.so
+usr/lib/aarch64-linux-gnu/lxcfs/liblxcfs.so usr/lib/aarch64-linux-gnu/liblxcfs.so

View File

@ -0,0 +1,16 @@
From 1590a0be2c1b7b238f4962d4f28ec36af91f10f4 Mon Sep 17 00:00:00 2001
From: jiangcuo <49061187+jiangcuo@users.noreply.github.com>
Date: Wed, 30 Oct 2024 21:11:26 +0800
Subject: [PATCH] fix lib patch
---
debian/lxcfs.links | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/debian/lxcfs.links b/debian/lxcfs.links
index 36e0af9..78a35d3 100644
--- a/debian/lxcfs.links
+++ b/debian/lxcfs.links
@@ -1 +1 @@
-usr/lib/x86_64-linux-gnu/lxcfs/liblxcfs.so usr/lib/x86_64-linux-gnu/liblxcfs.so
+usr/lib/loongarch64-linux-gnu/lxcfs/liblxcfs.so usr/lib/loongarch64-linux-gnu/liblxcfs.so

View File

@ -0,0 +1,16 @@
From 1590a0be2c1b7b238f4962d4f28ec36af91f10f4 Mon Sep 17 00:00:00 2001
From: jiangcuo <49061187+jiangcuo@users.noreply.github.com>
Date: Wed, 30 Oct 2024 21:11:26 +0800
Subject: [PATCH] fix lib patch
---
debian/lxcfs.links | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/debian/lxcfs.links b/debian/lxcfs.links
index 36e0af9..78a35d3 100644
--- a/debian/lxcfs.links
+++ b/debian/lxcfs.links
@@ -1 +1 @@
-usr/lib/x86_64-linux-gnu/lxcfs/liblxcfs.so usr/lib/x86_64-linux-gnu/liblxcfs.so
+usr/lib/riscv64-linux-gnu/lxcfs/liblxcfs.so usr/lib/riscv64-linux-gnu/liblxcfs.so

View File

@ -0,0 +1 @@
patches/001-fix-aarch64-lib-path.patch

View File

@ -0,0 +1 @@
patches/other/001-fix-loongarch64-lib-path.patch

View File

@ -0,0 +1 @@
patches/other/001-fix-riscv64-lib-path.patch

@ -0,0 +1 @@
Subproject commit 394f6f679a54d014f8a29241b9f03e124f2a7726

View File

@ -0,0 +1,14 @@
#!/bin/bash
SCRIPT_DIR=$(cd $(dirname ${BASH_SOURCE[0]}); pwd)
PKGNAME=$(basename $SCRIPT_DIR)
echo "This is $PKGNAME build scripts"
SH_PATH=$(realpath "$0")
SH_DIR=$(dirname $SH_PATH)
. ../common.sh
copy_dir
exec_build_dpkg
cp /build/*.changes /build/*.buildinfo /build/*.deb $SH_DIR/$PKGNAME

View File

@ -0,0 +1,13 @@
diff --git a/pixman/pixman-arma64-neon-asm.S b/pixman/pixman-arma64-neon-asm.S
index 7329d4b..1c1fdd5 100644
--- a/pixman/pixman-arma64-neon-asm.S
+++ b/pixman/pixman-arma64-neon-asm.S
@@ -1325,7 +1325,7 @@ generate_composite_function \
.macro pixman_composite_src_8888_8888_process_pixblock_tail_head
st1 {v0.2s, v1.2s, v2.2s, v3.2s}, [DST_W], #32
fetch_src_pixblock
- cache_preload 8, 8
+ /* cache_preload 8, 8 */
.endm
generate_composite_function \

@ -0,0 +1 @@
Subproject commit 7d26aad890739b5d2152638f26624e4167cf2d44

1
packages/pixman/series Normal file
View File

@ -0,0 +1 @@
patches/001-fix-vm-crush-on-aarch64.patch

@ -0,0 +1 @@
Subproject commit bb6df0b8185829b5c1757330c12f977e196ed2b8

View File

@ -0,0 +1,3 @@
## proxmox-archive-keyring
This repository stores Promxox VE and my gpg signature.

View File

@ -0,0 +1,11 @@
#!/bin/bash
SCRIPT_DIR=$(cd $(dirname ${BASH_SOURCE[0]}); pwd)
PKGNAME=$(basename $SCRIPT_DIR)
echo "This is $PKGNAME build scripts"
. ../common.sh
cd $SCRIPT_DIR/$PKGNAME
cp ../pveport.gpg debian/
exec_build_make

View File

@ -0,0 +1,23 @@
diff --git a/debian/changelog b/debian/changelog
index f0481b7..d5ed5d3 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+proxmox-archive-keyring (3.0+port1) bookworm; urgency=medium
+
+ * Add pveport key.
+
+ -- Jiangcuo <jiangcuo@bingsin.com> Sun, 24 Dec 2023 06:28:45 +0000
+
proxmox-archive-keyring (3.0) bookworm; urgency=medium
* drop key for Debian Buster based installations
diff --git a/debian/proxmox-archive-keyring.install b/debian/proxmox-archive-keyring.install
index 05d99cb..934ebfc 100644
--- a/debian/proxmox-archive-keyring.install
+++ b/debian/proxmox-archive-keyring.install
@@ -1,3 +1,4 @@
+debian/pveport.gpg etc/apt/trusted.gpg.d/
debian/proxmox-release-bullseye.gpg etc/apt/trusted.gpg.d/
debian/proxmox-release-bookworm.gpg etc/apt/trusted.gpg.d/
debian/proxmox-offline-signing-key.pub /usr/share/keyrings/

@ -0,0 +1 @@
Subproject commit 05ecf7b18223f6dcb3cefb0913e6f6450f776140

Binary file not shown.

View File

@ -0,0 +1 @@
patches/001-add-port-gpg.patch

@ -0,0 +1 @@
Subproject commit 92fce779be77901d741ad2f56e33fa4f60cb0fa4

View File

@ -0,0 +1,14 @@
#!/bin/bash
SCRIPT_DIR=$(cd $(dirname ${BASH_SOURCE[0]}); pwd)
PKGNAME=$(basename $SCRIPT_DIR)
echo "This is $PKGNAME build scripts"
. ../common.sh
cd $SCRIPT_DIR/$PKGNAME/submodules/proxmox-backup/
apt update
yes |mk-build-deps --install --remove
cd $SCRIPT_DIR/$PKGNAME
exec_build_make

@ -0,0 +1 @@
Subproject commit 261437c26fd2937efef6d3e37efbe8f4a24d5c70

@ -0,0 +1 @@
Subproject commit 800220bc897d24ac703c248a28e652947c290f32

View File

@ -0,0 +1,72 @@
From 1faf5a07df1a39bd9dced247a46441ae00b01bc4 Mon Sep 17 00:00:00 2001
From: jiangcuo <jiangcuo@bingsin.com>
Date: Tue, 14 Nov 2023 18:05:35 +0800
Subject: [PATCH] add for aarch64
---
debian/lintian-overrides | 6 +++---
debian/proxmox-backup-file-restore.install | 2 +-
debian/proxmox-backup-file-restore.postinst | 2 +-
debian/proxmox-backup-server.install | 10 +++++-----
pbs-buildcfg/src/lib.rs | 4 ++--
5 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/debian/lintian-overrides b/debian/lintian-overrides
index 809cd2972..49f1429e6 100644
--- a/debian/lintian-overrides
+++ b/debian/lintian-overrides
@@ -1,7 +1,7 @@
proxmox-backup-server: mail-transport-agent-dependency-does-not-specify-default-mta
proxmox-backup-server: package-installs-apt-sources [etc/apt/sources.list.d/pbs-enterprise.list]
-proxmox-backup-server: elevated-privileges 4755 root/root [usr/lib/x86_64-linux-gnu/proxmox-backup/sg-tape-cmd]
+proxmox-backup-server: elevated-privileges 4755 root/root [usr/lib/aarch64-linux-gnu/proxmox-backup/sg-tape-cmd]
proxmox-backup-server: systemd-service-file-refers-to-unusual-wantedby-target getty.target [lib/systemd/system/proxmox-backup-banner.service]
-proxmox-backup-server: uses-dpkg-database-directly [usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-backup-api]
-proxmox-backup-server: uses-dpkg-database-directly [usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-backup-proxy]
+proxmox-backup-server: uses-dpkg-database-directly [usr/lib/aarch64-linux-gnu/proxmox-backup/proxmox-backup-api]
+proxmox-backup-server: uses-dpkg-database-directly [usr/lib/aarch64-linux-gnu/proxmox-backup/proxmox-backup-proxy]
proxmox-backup-server: uses-dpkg-database-directly [usr/sbin/proxmox-backup-debug]
diff --git a/debian/proxmox-backup-file-restore.install b/debian/proxmox-backup-file-restore.install
index 409988a34..baf1d0422 100644
--- a/debian/proxmox-backup-file-restore.install
+++ b/debian/proxmox-backup-file-restore.install
@@ -1,4 +1,4 @@
usr/bin/proxmox-file-restore
-usr/lib/x86_64-linux-gnu/proxmox-backup/file-restore/proxmox-restore-daemon
+usr/lib/aarch64-linux-gnu/proxmox-backup/file-restore/proxmox-restore-daemon
usr/share/man/man1/proxmox-file-restore.1
usr/share/zsh/vendor-completions/_proxmox-file-restore
diff --git a/debian/proxmox-backup-file-restore.postinst b/debian/proxmox-backup-file-restore.postinst
index 9792bfb46..89ff4d792 100755
--- a/debian/proxmox-backup-file-restore.postinst
+++ b/debian/proxmox-backup-file-restore.postinst
@@ -4,7 +4,7 @@ set -e
update_initramfs() {
# regenerate initramfs for single file restore VM
- INST_PATH="/usr/lib/x86_64-linux-gnu/proxmox-backup/file-restore"
+ INST_PATH="/usr/lib/aarch64-linux-gnu/proxmox-backup/file-restore"
CACHE_PATH="/var/cache/proxmox-backup/file-restore-initramfs.img"
CACHE_PATH_DBG="/var/cache/proxmox-backup/file-restore-initramfs-debug.img"
diff --git a/debian/proxmox-backup-server.install b/debian/proxmox-backup-server.install
index ee114ea34..09951b8f2 100644
--- a/debian/proxmox-backup-server.install
+++ b/debian/proxmox-backup-server.install
@@ -7,11 +7,11 @@ etc/proxmox-backup.service /lib/systemd/system/
usr/bin/pmt
usr/bin/pmtx
usr/bin/proxmox-tape
-usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-backup-api
-usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-backup-banner
-usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-backup-proxy
-usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-daily-update
-usr/lib/x86_64-linux-gnu/proxmox-backup/sg-tape-cmd
+usr/lib/aarch64-linux-gnu/proxmox-backup/proxmox-backup-api
+usr/lib/aarch64-linux-gnu/proxmox-backup/proxmox-backup-banner
+usr/lib/aarch64-linux-gnu/proxmox-backup/proxmox-backup-proxy
+usr/lib/aarch64-linux-gnu/proxmox-backup/proxmox-daily-update
+usr/lib/aarch64-linux-gnu/proxmox-backup/sg-tape-cmd
usr/sbin/pbs2to3
usr/sbin/proxmox-backup-debug
usr/sbin/proxmox-backup-manager

View File

@ -0,0 +1,158 @@
diff --git a/pbs-buildcfg/src/lib.rs b/pbs-buildcfg/src/lib.rs
index 3d087015b..ba3b5702a 100644
--- a/pbs-buildcfg/src/lib.rs
+++ b/pbs-buildcfg/src/lib.rs
@@ -53,8 +53,9 @@ macro_rules! PROXMOX_BACKUP_CACHE_DIR_M {
#[macro_export]
macro_rules! PROXMOX_BACKUP_FILE_RESTORE_BIN_DIR_M {
- () => {
- "/usr/lib/x86_64-linux-gnu/proxmox-backup/file-restore"
+ ($arch:expr) => {
+ // Different architectures have different paths.
+ format!("/usr/lib/{}-linux-gnu/proxmox-backup/file-restore", $arch)
};
}
@@ -93,8 +94,16 @@ pub const PROXMOX_BACKUP_INITRAMFS_DBG_FN: &str = concat!(
);
/// filename of the kernel to use for booting single file restore VMs
-pub const PROXMOX_BACKUP_KERNEL_FN: &str =
- concat!(PROXMOX_BACKUP_FILE_RESTORE_BIN_DIR_M!(), "/bzImage");
+pub fn PROXMOX_BACKUP_KERNEL_FN() -> String {
+ let arch = std::env::consts::ARCH;
+ let file_restore_dir = PROXMOX_BACKUP_FILE_RESTORE_BIN_DIR_M!(arch);
+
+ if arch == "x86_64" {
+ format!("{}/bzImage", file_restore_dir)
+ } else {
+ format!("{}/Image", file_restore_dir)
+ }
+}
pub const PROXMOX_BACKUP_SUBSCRIPTION_FN: &str = configdir!("/subscription");
diff --git a/proxmox-file-restore/src/qemu_helper.rs b/proxmox-file-restore/src/qemu_helper.rs
index 471010aa1..adea944d2 100644
--- a/proxmox-file-restore/src/qemu_helper.rs
+++ b/proxmox-file-restore/src/qemu_helper.rs
@@ -4,6 +4,7 @@ use std::io::prelude::*;
use std::os::unix::io::AsRawFd;
use std::path::PathBuf;
use std::time::{Duration, Instant};
+use std::env;
use anyhow::{bail, format_err, Error};
use serde_json::json;
@@ -52,7 +53,7 @@ fn create_restore_log_dir() -> Result<String, Error> {
}
fn validate_img_existence(debug: bool) -> Result<(), Error> {
- let kernel = PathBuf::from(pbs_buildcfg::PROXMOX_BACKUP_KERNEL_FN);
+ let kernel = PathBuf::from(pbs_buildcfg::PROXMOX_BACKUP_KERNEL_FN());
let initramfs = PathBuf::from(if debug {
pbs_buildcfg::PROXMOX_BACKUP_INITRAMFS_DBG_FN
} else {
@@ -253,9 +254,8 @@ pub async fn start_vm(
"chardev:log",
"-vnc",
"none",
- "-enable-kvm",
"-kernel",
- pbs_buildcfg::PROXMOX_BACKUP_KERNEL_FN,
+ &pbs_buildcfg::PROXMOX_BACKUP_KERNEL_FN(),
"-initrd",
&ramfs_path,
"-append",
@@ -294,38 +294,56 @@ pub async fn start_vm(
"file=pbs:repository={}{},,snapshot={},,archive={}{},read-only=on,if=none,id=drive{}",
details.repo, namespace, details.snapshot, file, keyfile, id
));
-
+ let arch = std::env::consts::ARCH;
// a PCI bus can only support 32 devices, so add a new one every 32
let bus = (id / 32) + 2;
- if id % 32 == 0 {
- drives.push("-device".to_owned());
- drives.push(format!("pci-bridge,id=bridge{bus},chassis_nr={bus}"));
+ if arch == "x86_64" {
+ if id % 32 == 0 {
+ drives.push("-device".to_owned());
+ drives.push(format!("pci-bridge,id=bridge{bus},chassis_nr={bus}"));
+ }
}
drives.push("-device".to_owned());
// drive serial is used by VM to map .fidx files to /dev paths
let serial = file.strip_suffix(".img.fidx").unwrap_or(&file);
- drives.push(format!(
- "virtio-blk-pci,drive=drive{id},serial={serial},bus=bridge{bus}"
- ));
+ if arch == "x86_64" {
+ drives.push(format!(
+ "virtio-blk-pci,drive=drive{id},serial={serial},bus=bridge{bus}"
+ ));
+ } else {
+ drives.push(format!(
+ // We use virtio-blk-device because QEMU will automatically assigns PCI addresses.
+ "virtio-blk-device,drive=drive{id},serial={serial}"
+ ));
+ }
id += 1;
}
- let ram = if debug {
+ let arch = std::env::consts::ARCH;
+
+ let mut ram = if debug {
1024
} else {
// add more RAM if many drives are given
+ // We need more memory for !x86 device
match id {
- f if f < 10 => 192,
- f if f < 20 => 256,
- _ => 384,
+ f if f < 10 => 512,
+ f if f < 20 => 768,
+ _ => 1024,
}
};
+ // loongarch minimum memeory is 1024
+ if arch == "loongarch64" {
+ ram = 1024;
+ }
+
// Try starting QEMU in a loop to retry if we fail because of a bad 'cid' value
+ let qemu_bin = format!("qemu-system-{}", arch);
let mut attempts = 0;
loop {
- let mut qemu_cmd = std::process::Command::new("qemu-system-x86_64");
+ let mut qemu_cmd = std::process::Command::new(&qemu_bin);
qemu_cmd.args(base_args.iter());
qemu_cmd.arg("-m");
qemu_cmd.arg(format!(
@@ -346,6 +364,21 @@ pub async fn start_vm(
qemu_cmd.arg("-mon");
qemu_cmd.arg("chardev=qmp,mode=control");
+ // Use virt and tcg to start file-restore.
+ // If pve run in neasted env ,this will be ok.
+ // If you make sure that pve run on host, -accel kvm will be better!
+ if arch != "x86_64" {
+ qemu_cmd.arg("-M");
+ qemu_cmd.arg("virt");
+ qemu_cmd.arg("-accel");
+ qemu_cmd.arg("tcg");
+ qemu_cmd.arg("-cpu");
+ qemu_cmd.arg("max");
+ } else {
+ qemu_cmd.arg("-accel");
+ qemu_cmd.arg("kvm");
+ }
+
if debug {
let debug_args = [
"-chardev",

View File

@ -0,0 +1,73 @@
From 1faf5a07df1a39bd9dced247a46441ae00b01bc4 Mon Sep 17 00:00:00 2001
From: jiangcuo <jiangcuo@bingsin.com>
Date: Tue, 14 Nov 2023 18:05:35 +0800
Subject: [PATCH] add for loongarch64
---
debian/lintian-overrides | 6 +++---
debian/proxmox-backup-file-restore.install | 2 +-
debian/proxmox-backup-file-restore.postinst | 2 +-
debian/proxmox-backup-server.install | 10 +++++-----
pbs-buildcfg/src/lib.rs | 4 ++--
5 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/debian/lintian-overrides b/debian/lintian-overrides
index 809cd2972..49f1429e6 100644
--- a/debian/lintian-overrides
+++ b/debian/lintian-overrides
@@ -1,7 +1,7 @@
proxmox-backup-server: mail-transport-agent-dependency-does-not-specify-default-mta
proxmox-backup-server: package-installs-apt-sources [etc/apt/sources.list.d/pbs-enterprise.list]
-proxmox-backup-server: elevated-privileges 4755 root/root [usr/lib/x86_64-linux-gnu/proxmox-backup/sg-tape-cmd]
+proxmox-backup-server: elevated-privileges 4755 root/root [usr/lib/loongarch64-linux-gnu/proxmox-backup/sg-tape-cmd]
proxmox-backup-server: systemd-service-file-refers-to-unusual-wantedby-target getty.target [lib/systemd/system/proxmox-backup-banner.service]
-proxmox-backup-server: uses-dpkg-database-directly [usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-backup-api]
-proxmox-backup-server: uses-dpkg-database-directly [usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-backup-proxy]
+proxmox-backup-server: uses-dpkg-database-directly [usr/lib/loongarch64-linux-gnu/proxmox-backup/proxmox-backup-api]
+proxmox-backup-server: uses-dpkg-database-directly [usr/lib/loongarch64-linux-gnu/proxmox-backup/proxmox-backup-proxy]
proxmox-backup-server: uses-dpkg-database-directly [usr/sbin/proxmox-backup-debug]
diff --git a/debian/proxmox-backup-file-restore.install b/debian/proxmox-backup-file-restore.install
index 409988a34..baf1d0422 100644
--- a/debian/proxmox-backup-file-restore.install
+++ b/debian/proxmox-backup-file-restore.install
@@ -1,4 +1,4 @@
usr/bin/proxmox-file-restore
-usr/lib/x86_64-linux-gnu/proxmox-backup/file-restore/proxmox-restore-daemon
+usr/lib/loongarch64-linux-gnu/proxmox-backup/file-restore/proxmox-restore-daemon
usr/share/man/man1/proxmox-file-restore.1
usr/share/zsh/vendor-completions/_proxmox-file-restore
diff --git a/debian/proxmox-backup-file-restore.postinst b/debian/proxmox-backup-file-restore.postinst
index 9792bfb46..89ff4d792 100755
--- a/debian/proxmox-backup-file-restore.postinst
+++ b/debian/proxmox-backup-file-restore.postinst
@@ -4,7 +4,7 @@ set -e
update_initramfs() {
# regenerate initramfs for single file restore VM
- INST_PATH="/usr/lib/x86_64-linux-gnu/proxmox-backup/file-restore"
+ INST_PATH="/usr/lib/loongarch64-linux-gnu/proxmox-backup/file-restore"
CACHE_PATH="/var/cache/proxmox-backup/file-restore-initramfs.img"
CACHE_PATH_DBG="/var/cache/proxmox-backup/file-restore-initramfs-debug.img"
diff --git a/debian/proxmox-backup-server.install b/debian/proxmox-backup-server.install
index ee114ea34..09951b8f2 100644
--- a/debian/proxmox-backup-server.install
+++ b/debian/proxmox-backup-server.install
@@ -7,11 +7,11 @@ etc/proxmox-backup.service /lib/systemd/system/
usr/bin/pmt
usr/bin/pmtx
usr/bin/proxmox-tape
-usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-backup-api
-usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-backup-banner
-usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-backup-proxy
-usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-daily-update
-usr/lib/x86_64-linux-gnu/proxmox-backup/sg-tape-cmd
+usr/lib/loongarch64-linux-gnu/proxmox-backup/proxmox-backup-api
+usr/lib/loongarch64-linux-gnu/proxmox-backup/proxmox-backup-banner
+usr/lib/loongarch64-linux-gnu/proxmox-backup/proxmox-backup-proxy
+usr/lib/loongarch64-linux-gnu/proxmox-backup/proxmox-daily-update
+usr/lib/loongarch64-linux-gnu/proxmox-backup/sg-tape-cmd
usr/sbin/pbs2to3
usr/sbin/proxmox-backup-debug
usr/sbin/proxmox-backup-manager

View File

@ -0,0 +1,73 @@
From 1faf5a07df1a39bd9dced247a46441ae00b01bc4 Mon Sep 17 00:00:00 2001
From: jiangcuo <jiangcuo@bingsin.com>
Date: Tue, 14 Nov 2023 18:05:35 +0800
Subject: [PATCH] add for riscv64
---
debian/lintian-overrides | 6 +++---
debian/proxmox-backup-file-restore.install | 2 +-
debian/proxmox-backup-file-restore.postinst | 2 +-
debian/proxmox-backup-server.install | 10 +++++-----
pbs-buildcfg/src/lib.rs | 4 ++--
5 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/debian/lintian-overrides b/debian/lintian-overrides
index 809cd2972..49f1429e6 100644
--- a/debian/lintian-overrides
+++ b/debian/lintian-overrides
@@ -1,7 +1,7 @@
proxmox-backup-server: mail-transport-agent-dependency-does-not-specify-default-mta
proxmox-backup-server: package-installs-apt-sources [etc/apt/sources.list.d/pbs-enterprise.list]
-proxmox-backup-server: elevated-privileges 4755 root/root [usr/lib/x86_64-linux-gnu/proxmox-backup/sg-tape-cmd]
+proxmox-backup-server: elevated-privileges 4755 root/root [usr/lib/riscv64-linux-gnu/proxmox-backup/sg-tape-cmd]
proxmox-backup-server: systemd-service-file-refers-to-unusual-wantedby-target getty.target [lib/systemd/system/proxmox-backup-banner.service]
-proxmox-backup-server: uses-dpkg-database-directly [usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-backup-api]
-proxmox-backup-server: uses-dpkg-database-directly [usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-backup-proxy]
+proxmox-backup-server: uses-dpkg-database-directly [usr/lib/riscv64-linux-gnu/proxmox-backup/proxmox-backup-api]
+proxmox-backup-server: uses-dpkg-database-directly [usr/lib/riscv64-linux-gnu/proxmox-backup/proxmox-backup-proxy]
proxmox-backup-server: uses-dpkg-database-directly [usr/sbin/proxmox-backup-debug]
diff --git a/debian/proxmox-backup-file-restore.install b/debian/proxmox-backup-file-restore.install
index 409988a34..baf1d0422 100644
--- a/debian/proxmox-backup-file-restore.install
+++ b/debian/proxmox-backup-file-restore.install
@@ -1,4 +1,4 @@
usr/bin/proxmox-file-restore
-usr/lib/x86_64-linux-gnu/proxmox-backup/file-restore/proxmox-restore-daemon
+usr/lib/riscv64-linux-gnu/proxmox-backup/file-restore/proxmox-restore-daemon
usr/share/man/man1/proxmox-file-restore.1
usr/share/zsh/vendor-completions/_proxmox-file-restore
diff --git a/debian/proxmox-backup-file-restore.postinst b/debian/proxmox-backup-file-restore.postinst
index 9792bfb46..89ff4d792 100755
--- a/debian/proxmox-backup-file-restore.postinst
+++ b/debian/proxmox-backup-file-restore.postinst
@@ -4,7 +4,7 @@ set -e
update_initramfs() {
# regenerate initramfs for single file restore VM
- INST_PATH="/usr/lib/x86_64-linux-gnu/proxmox-backup/file-restore"
+ INST_PATH="/usr/lib/riscv64-linux-gnu/proxmox-backup/file-restore"
CACHE_PATH="/var/cache/proxmox-backup/file-restore-initramfs.img"
CACHE_PATH_DBG="/var/cache/proxmox-backup/file-restore-initramfs-debug.img"
diff --git a/debian/proxmox-backup-server.install b/debian/proxmox-backup-server.install
index ee114ea34..09951b8f2 100644
--- a/debian/proxmox-backup-server.install
+++ b/debian/proxmox-backup-server.install
@@ -7,11 +7,11 @@ etc/proxmox-backup.service /lib/systemd/system/
usr/bin/pmt
usr/bin/pmtx
usr/bin/proxmox-tape
-usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-backup-api
-usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-backup-banner
-usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-backup-proxy
-usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-daily-update
-usr/lib/x86_64-linux-gnu/proxmox-backup/sg-tape-cmd
+usr/lib/riscv64-linux-gnu/proxmox-backup/proxmox-backup-api
+usr/lib/riscv64-linux-gnu/proxmox-backup/proxmox-backup-banner
+usr/lib/riscv64-linux-gnu/proxmox-backup/proxmox-backup-proxy
+usr/lib/riscv64-linux-gnu/proxmox-backup/proxmox-daily-update
+usr/lib/riscv64-linux-gnu/proxmox-backup/sg-tape-cmd
usr/sbin/pbs2to3
usr/sbin/proxmox-backup-debug
usr/sbin/proxmox-backup-manager

@ -0,0 +1 @@
Subproject commit 59243d200e713f6c14a14f7eddc3015186dc6eb7

View File

@ -0,0 +1 @@
patches/002-fix-qemu-cmdline.patch

View File

@ -0,0 +1 @@
patches/001-add-aarch64-build.patch

View File

@ -0,0 +1 @@
patches/other/001-add-loongarch64-build.patch

View File

@ -0,0 +1 @@
patches/other/001-add-riscv64-build.patch

View File

@ -0,0 +1,7 @@
diff --git a/debian/proxmox-firewall.install b/debian/proxmox-firewall.install
index 8eb376c..5e5c5f0 100644
--- a/debian/proxmox-firewall.install
+++ b/debian/proxmox-firewall.install
@@ -1 +1 @@
-target/x86_64-unknown-linux-gnu/release/proxmox-firewall usr/libexec/proxmox
+target/aarch64-unknown-linux-gnu/release/proxmox-firewall usr/libexec/proxmox

View File

@ -0,0 +1,7 @@
diff --git a/debian/proxmox-firewall.install b/debian/proxmox-firewall.install
index 8eb376c..5e5c5f0 100644
--- a/debian/proxmox-firewall.install
+++ b/debian/proxmox-firewall.install
@@ -1 +1 @@
-target/x86_64-unknown-linux-gnu/release/proxmox-firewall usr/libexec/proxmox
+target/loongarch64-unknown-linux-gnu/release/proxmox-firewall usr/libexec/proxmox

View File

@ -0,0 +1,7 @@
diff --git a/debian/proxmox-firewall.install b/debian/proxmox-firewall.install
index 8eb376c..5e5c5f0 100644
--- a/debian/proxmox-firewall.install
+++ b/debian/proxmox-firewall.install
@@ -1 +1 @@
-target/x86_64-unknown-linux-gnu/release/proxmox-firewall usr/libexec/proxmox
+target/riscv64-unknown-linux-gnu/release/proxmox-firewall usr/libexec/proxmox

@ -0,0 +1 @@
Subproject commit ac39ec3c660e2e258731a2a6349b7a9370de183d

View File

@ -0,0 +1 @@
patches/001-add-aarch64-support.patch

View File

@ -0,0 +1 @@
patches/other/001-add-loongarch64-support.patch

View File

@ -0,0 +1 @@
patches/other/001-add-riscv64-support.patch

@ -0,0 +1 @@
Subproject commit 7ad0dd7af88a60be1c5ce55aff2463e57ce321f6

@ -0,0 +1 @@
Subproject commit 7007b33cbb9a0b77f0f04d5b053a3739441bd9d6

View File

@ -0,0 +1,37 @@
From d8725bc9a988c81c713e17a4cdde62d23630ac3e Mon Sep 17 00:00:00 2001
From: jiangcuo <jiangcuo@bingsin.com>
Date: Mon, 16 Oct 2023 12:24:22 +0800
Subject: [PATCH] init
---
src/mini-journalreader.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/mini-journalreader.c b/src/mini-journalreader.c
index 98bcaac..1396d2e 100644
--- a/src/mini-journalreader.c
+++ b/src/mini-journalreader.c
@@ -169,7 +169,8 @@ static bool print_field(sd_journal *j, const char *field) {
if (json) {
char tmp[7];
for (size_t i = 0; i < l;i++) {
- if (d[i] == '"' || d[i] == '\\' || (d[i] >= 0 && d[i] <= 0x1F)) {
+ int x = (int)d[i];
+ if (d[i] == '"' || d[i] == '\\' || (x >= 0 && x <= 0x1F)) {
sprintf(tmp, "\\u%04X", d[i]);
print_to_buf(tmp, 6);
} else {
@@ -256,11 +257,11 @@ int main(int argc, char *argv[]) {
const char *endcursor = NULL;
uint64_t begin = 0;
uint64_t end = 0;
- char c;
+ int c;
progname = argv[0];
- while ((c = (char)getopt (argc, argv, "b:e:d:n:f:t:jh")) != -1) {
+while ((c = getopt (argc, argv, "b:e:d:n:f:t:jh")) != -1) {
switch (c) {
case 'b':
begin = arg_to_uint64(optarg);

@ -0,0 +1 @@
Subproject commit 3dff2a5a7d696a5a659f2f384236aa6672874f18

View File

@ -0,0 +1 @@
patches/001-add-for-port.patch

View File

@ -0,0 +1,28 @@
#!/bin/bash
PKGNAME="proxmox-offline-mirror"
errlog(){
echo $1
exit 1
}
exec_build(){
apt update
apt install librust-proxmox-router-dev=2.2.4-1 librust-proxmox-router-2+cli-dev=2.2.4-1 -y
yes |mk-build-deps --install --remove
echo "clean "
make clean || echo ok
echo "build deb in `pwd` "
make dsc || errlog "build dsc error"
make deb || errlog "build deb error"
}
echo "This is $PKGNAME build scripts"
SH_PATH=$(realpath "$0")
SH_DIR=$(dirname $SH_PATH)
cd $SH_DIR/$PKGNAME
exec_build

@ -0,0 +1 @@
Subproject commit d4a4d278b345e4bddaa89754976e441edc305673

View File

@ -0,0 +1,15 @@
#!/bin/bash
#!/bin/bash
SCRIPT_DIR=$(cd $(dirname ${BASH_SOURCE[0]}); pwd)
PKGNAME=$(basename $SCRIPT_DIR)
echo "This is $PKGNAME build scripts"
. ../common.sh
for i in common/pkg pve-rs;
do
cd $SCRIPT_DIR/$PKGNAME/$i
exec_build_make
done

@ -0,0 +1 @@
Subproject commit ae27b307b8593c652d18afd41658c43a1e68070a

View File

@ -0,0 +1,34 @@
From 974e952c2b49e3c25005a846cbd20b02429c3652 Mon Sep 17 00:00:00 2001
From: jiangcuo <jiangcuo@bingsin.com>
Date: Sat, 2 Dec 2023 05:11:40 -0500
Subject: [PATCH] update
---
debian/control | 10 ----------
1 file changed, 10 deletions(-)
diff --git a/debian/control b/debian/control
index d14e449..98157e9 100644
--- a/debian/control
+++ b/debian/control
@@ -14,7 +14,6 @@ Depends: apt,
openssh-server,
proxmox-archive-keyring,
proxmox-kernel-helper (>= 8.0.3),
- proxmox-default-kernel,
pve-manager (>= 8.0.4),
pve-qemu-kvm,
qemu-server,
@@ -24,12 +23,3 @@ Description: Proxmox Virtual Environment
virtualization platform for running Virtual Appliances and Virtual
Machines. This is a meta package which will install everything
needed.
-
-Package: pve-headers
-Architecture: all
-Depends: proxmox-default-headers,
- ${misc:Depends},
-Section: oldlibs
-Description: Default Proxmox Kernel Headers (transitional package)
- This is a dummy transitional package to transition to proxmox-default-headers.
- It can be safely removed.

@ -0,0 +1 @@
Subproject commit 73261d652c34ebacb810de812aedb9a2e6c4872f

View File

@ -0,0 +1 @@
patches/001-remove-default-kernel-and-pve-headers.patch

@ -0,0 +1 @@
Subproject commit 6af66f9626459af252a63ec26ad32042d22ed4fe

@ -0,0 +1 @@
Subproject commit 37a813d72178de69e2bc20ddf70c05968bb6bd05

View File

@ -0,0 +1,13 @@
diff --git a/src/pmxcfs/Makefile b/src/pmxcfs/Makefile
index 42ea4b6..85ba91f 100644
--- a/src/pmxcfs/Makefile
+++ b/src/pmxcfs/Makefile
@@ -3,7 +3,7 @@ DEPENDENCIES=libcpg libcmap libquorum libqb glib-2.0 fuse sqlite3 librrd
CC = gcc
CFLAGS += -std=gnu99
-CFLAGS += -Wall -Werror -Wno-unknown-pragmas -Wno-strict-aliasing
+CFLAGS += -Wall -Werror -Wno-unknown-pragmas -Wno-strict-aliasing -Wno-unused-result
CFLAGS += -Wpedantic
CFLAGS += -g -O2
CFLAGS += -I.

@ -0,0 +1 @@
Subproject commit 3749d370ac2e1e73d2558f8dbe5d7f001651157c

View File

@ -0,0 +1 @@
patches/other/001-fix-port-build-on-pmxcfs.patch

View File

@ -0,0 +1,26 @@
diff --git a/src/PVE/Syscall.pm b/src/PVE/Syscall.pm
index 9ef3d5d..d7b0b3f 100644
--- a/src/PVE/Syscall.pm
+++ b/src/PVE/Syscall.pm
@@ -16,7 +16,6 @@ BEGIN {
openat => &SYS_openat,
close => &SYS_close,
mkdirat => &SYS_mkdirat,
- mknod => &SYS_mknod,
faccessat => &SYS_faccessat,
setresuid => &SYS_setresuid,
fchownat => &SYS_fchownat,
diff --git a/src/PVE/Tools.pm b/src/PVE/Tools.pm
index bd305bd..2aab9e2 100644
--- a/src/PVE/Tools.pm
+++ b/src/PVE/Tools.pm
@@ -1753,7 +1753,8 @@ sub mkdirat($$$) {
sub mknod($$$) {
my ($filename, $mode, $dev) = @_;
- return syscall(PVE::Syscall::mknod, $filename, int($mode), int($dev)) == 0;
+ die "https://github.com/jiangcuo/Proxmox-Arm64/issues/58";
+ #return syscall(PVE::Syscall::SYS_mknod, $filename, int($mode), int($dev)) == 0;
}
sub fchownat($$$$$) {

View File

@ -0,0 +1,17 @@
diff --git a/debian/changelog b/debian/changelog
index e628a2a..ff213c4 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -158,6 +158,12 @@ libpve-common-perl (8.0.2) bookworm; urgency=medium
* remove unused SysFSTools::pci_cleanup_mdev_device
-- Proxmox Support Team <support@proxmox.com> Wed, 07 Jun 2023 13:12:18 +0200
+
+libpve-common-perl (8.1.0-1) bookworm; urgency=medium
+
+ * tools: remove mknod syscall#
+
+ -- Jiangcuo <jiangcuo@bingsin.com> Tue, 21 Nov 2023 13:04:21 +0100
libpve-common-perl (8.0.1) bookworm; urgency=medium

@ -0,0 +1 @@
Subproject commit 8915b9669cdb67e5222e174fc6c5d079c69b02c3

View File

@ -0,0 +1,2 @@
patches/001-add-for-port.patch
patches/changelog/001-add-changlog-8.1.0-1.patch

Some files were not shown because too many files have changed in this diff Show More