ui-canonical: Fix lvmcluster pools #636
This file contains 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
name: Builds | |
on: | |
push: | |
permissions: | |
contents: read | |
concurrency: | |
group: ${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
build-incus: | |
name: Build Incus | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- ubuntu-20.04 | |
- ubuntu-22.04 | |
- ubuntu-24.04 | |
- debian-11 | |
- debian-12 | |
arch: | |
- amd64 | |
- arm64 | |
exclude: | |
- os: debian-11 | |
arch: arm64 | |
runs-on: | |
- self-hosted | |
- cpu-4 | |
- mem-4G | |
- disk-50G | |
- arch-${{ matrix.arch }} | |
- image-${{ matrix.os }} | |
env: | |
OS_ARCH: ${{ matrix.arch }} | |
HOME: "/root/" | |
PKG_CONFIG_PATH: "/opt/incus/lib/pkgconfig/" | |
CGO_LDFLAGS: "-L/opt/incus/lib/" | |
CGO_CFLAGS: "-I/opt/incus/include/" | |
LD_LIBRARY_PATH: "/opt/incus/lib/" | |
CPATH: "/opt/incus/include/" | |
PATH: "/opt/incus/bin:/root/.cargo/bin:/usr/local/go/bin:/usr/local/node/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin" | |
LXC_TAG: "v6.0.1" | |
LXCFS_TAG: "v6.0.1" | |
INCUS_TAG: "v6.0.1" | |
INCUS_UI_CANONICAL_TAG: "0.12" | |
RAFT_TAG: "v0.22.1" | |
COWSQL_TAG: "v1.15.6" | |
CRIU_TAG: "v3.19" | |
EDK2_TAG: "edk2-stable202402" | |
GOLANG_TAG: "go1.21.13" | |
LIBTPMS_TAG: "v0.9.6" | |
LIBURING_TAG: "liburing-2.6" | |
MINIO_TAG: "RELEASE.2024-08-03T04-33-23Z" | |
MINIO_MC_TAG: "RELEASE.2024-07-31T15-58-33Z" | |
NASM_TAG: "nasm-2.16.03" | |
NVIDIA_CONTAINER_TAG: "v1.16.1" | |
QEMU_TAG: "v9.0.2" | |
SEABIOS_TAG: "rel-1.16.3" | |
SWTPM_TAG: "v0.9.0" | |
VIRTIOFSD_TAG: "v1.11.1" | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Configure git | |
run: | | |
git config --global --add advice.detachedHead false | |
git config --global user.email "[email protected]" | |
git config --global user.name "Zabbly Incus build" | |
- name: Install dependencies | |
run: | | |
apt-get update | |
apt-get install --no-install-recommends --yes \ | |
acpica-tools \ | |
asciidoc \ | |
autoconf \ | |
automake \ | |
bison \ | |
bmake \ | |
build-essential \ | |
curl \ | |
debhelper \ | |
devscripts \ | |
dosfstools \ | |
expect \ | |
flex \ | |
gawk \ | |
gettext \ | |
git \ | |
iproute2 \ | |
libacl1-dev \ | |
libaio-dev \ | |
libapparmor-dev \ | |
libcap-dev \ | |
libcap-ng-dev \ | |
libdbus-1-dev \ | |
libelf-dev \ | |
libfuse3-dev \ | |
libglib2.0-dev \ | |
libgnutls28-dev \ | |
libjson-glib-dev \ | |
libnet1-dev \ | |
libnl-3-dev \ | |
libnuma-dev \ | |
libpam0g-dev \ | |
libpixman-1-dev \ | |
libprotobuf-c-dev \ | |
libprotobuf-dev \ | |
librbd-dev \ | |
libseccomp-dev \ | |
libselinux1-dev \ | |
libspice-server-dev \ | |
libsqlite3-dev \ | |
libssl-dev \ | |
libtirpc-dev \ | |
libtool \ | |
libudev-dev \ | |
libusb-1.0-0-dev \ | |
libusbredirhost-dev \ | |
libuv1-dev \ | |
lsb-release \ | |
mtools \ | |
ninja-build \ | |
pkg-config \ | |
protobuf-c-compiler \ | |
protobuf-compiler \ | |
python3-cryptography \ | |
python3-jinja2 \ | |
python3-pexpect \ | |
python3-pip \ | |
python3-setuptools \ | |
python3-venv \ | |
rsync \ | |
socat \ | |
uuid-dev \ | |
xmlto \ | |
xorriso | |
pip3 install meson || pip3 install meson --break-system-packages | |
- name: Install backported debhelper (on focal) | |
if: ${{ matrix.os == 'ubuntu-20.04' }} | |
run: | | |
if [ "${OS_ARCH}" = "amd64" ]; then | |
echo "deb http://archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse" >> /etc/apt/sources.list | |
else | |
echo "deb http://ports.ubuntu.com/ubuntu-ports focal-backports main restricted universe multiverse" >> /etc/apt/sources.list | |
fi | |
apt-get install -t focal-backports debhelper --yes | |
- name: Install backported git (on focal) | |
if: ${{ matrix.os == 'ubuntu-20.04' }} | |
run: | | |
apt-get install software-properties-common --yes | |
add-apt-repository ppa:git-core/ppa --yes | |
apt-get install git --yes | |
- name: Install Go | |
run: | | |
curl -sL "https://go.dev/dl/${GOLANG_TAG}.linux-${OS_ARCH}.tar.gz" | tar -C /usr/local/ -zx | |
go version | |
- name: Install Rust | |
run: | | |
curl -sL https://sh.rustup.rs -o install-rust.sh | |
bash install-rust.sh -y | |
- name: Install Node | |
run: | | |
[ "${OS_ARCH}" = "amd64" ] && NODE_ARCH=x64 | |
[ "${OS_ARCH}" = "arm64" ] && NODE_ARCH=arm64 | |
mkdir /usr/local/node/ | |
curl -sL "https://nodejs.org/dist/v20.10.0/node-v20.10.0-linux-${NODE_ARCH}.tar.xz" | tar -C /usr/local/node/ -Jx --strip-components=1 | |
- name: Build environment | |
run: | | |
mkdir /build/ | |
mkdir -p \ | |
/opt/incus/bin/ \ | |
/opt/incus/include/ \ | |
/opt/incus/lib/ \ | |
/opt/incus/lib/systemd/system/ \ | |
/opt/incus/share/ | |
- name: Get the code | |
run: | | |
git clone https://github.com/axboe/liburing /build/liburing --depth 1 -b "${LIBURING_TAG}" | |
git clone https://github.com/cowsql/raft /build/raft --depth 1 -b "${RAFT_TAG}" | |
git clone https://github.com/cowsql/cowsql /build/cowsql --depth 1 -b "${COWSQL_TAG}" | |
git clone https://github.com/lxc/lxc /build/lxc --depth 1 -b "${LXC_TAG}" | |
git clone https://github.com/lxc/lxcfs /build/lxcfs --depth 1 -b "${LXCFS_TAG}" | |
git clone https://github.com/lxc/incus /build/incus -b "${INCUS_TAG}" | |
git clone https://github.com/checkpoint-restore/criu /build/criu --depth 1 -b "${CRIU_TAG}" | |
git clone https://github.com/NVIDIA/libnvidia-container /build/libnvidia-container --depth 1 -b "${NVIDIA_CONTAINER_TAG}" | |
git clone https://github.com/minio/minio /build/minio --depth 1 -b "${MINIO_TAG}" | |
git clone https://github.com/minio/mc /build/mc --depth 1 -b "${MINIO_MC_TAG}" | |
git clone https://gitlab.com/qemu-project/seabios /build/seabios --depth 1 -b "${SEABIOS_TAG}" | |
git clone https://github.com/tianocore/edk2 /build/edk2 --recurse-submodules --shallow-submodules --depth 1 -b "${EDK2_TAG}" | |
git clone https://github.com/stefanberger/libtpms /build/libtpms --depth 1 -b "${LIBTPMS_TAG}" | |
git clone https://github.com/stefanberger/swtpm /build/swtpm --depth 1 -b "${SWTPM_TAG}" | |
git clone https://gitlab.com/virtio-fs/virtiofsd /build/virtiofsd --depth 1 -b "${VIRTIOFSD_TAG}" | |
git clone https://gitlab.com/qemu-project/qemu /build/qemu --depth 1 -b "${QEMU_TAG}" | |
git clone https://github.com/canonical/lxd-ui /build/incus-ui-canonical --depth 1 -b "${INCUS_UI_CANONICAL_TAG}" | |
mkdir /build/nasm/ | |
curl -sL "https://www.nasm.us/pub/nasm/releasebuilds/$(echo ${NASM_TAG} | cut -d- -f2)/${NASM_TAG}.tar.gz" | tar -C /build/nasm/ -zx --strip-components=1 | |
- name: Build liburing | |
run: | | |
cd /build/liburing | |
./configure --prefix=/opt/incus | |
make | |
mkdir -p /build/target/liburing/ | |
DESTDIR=/build/target/liburing make install | |
rsync -a /build/target/liburing/opt/incus/include/* /opt/incus/include/ | |
rsync -a /build/target/liburing/opt/incus/lib/* /opt/incus/lib/ | |
- name: Build raft | |
run: | | |
cd /build/raft | |
autoreconf -i | |
./configure --prefix=/opt/incus | |
make | |
mkdir -p /build/target/raft/ | |
DESTDIR=/build/target/raft/ make install | |
rsync -a /build/target/raft/opt/incus/include/ /opt/incus/include/ | |
rsync -a /build/target/raft/opt/incus/lib/ /opt/incus/lib/ | |
- name: Build cowsql | |
run: | | |
cd /build/cowsql | |
autoreconf -i | |
./configure --prefix=/opt/incus | |
make | |
mkdir -p /build/target/cowsql/ | |
DESTDIR=/build/target/cowsql/ make install | |
rsync -a /build/target/cowsql/opt/incus/include/ /opt/incus/include/ | |
rsync -a /build/target/cowsql/opt/incus/lib/ /opt/incus/lib/ | |
- name: Build LXC | |
run: | | |
cd /build/lxc | |
meson setup build \ | |
--prefix=/opt/incus \ | |
--libdir=/opt/incus/lib \ | |
-Dexamples=false \ | |
-Dman=false \ | |
-Dtools=false \ | |
-Dtests=false \ | |
-Dmemfd-rexec=false \ | |
-Dapparmor=true \ | |
-Dseccomp=true \ | |
-Dselinux=true \ | |
-Dcapabilities=true \ | |
-Dio-uring-event-loop=false | |
meson compile -C build | |
mkdir -p /build/target/lxc/ | |
DESTDIR=/build/target/lxc/ meson install -C build | |
rsync -a /build/target/lxc/opt/incus/include/ /opt/incus/include/ | |
rsync -a /build/target/lxc/opt/incus/lib/ /opt/incus/lib/ | |
mkdir -p /opt/incus/share/lxc/config/common.conf.d/ | |
mkdir -p /opt/incus/share/lxc/hooks/ | |
cp /build/target/lxc/opt/incus/share/lxc/hooks/nvidia /opt/incus/share/lxc/hooks/ | |
- name: Build LXCFS | |
run: | | |
REPO="${PWD}" | |
cd /build/lxcfs | |
meson setup build \ | |
--prefix=/opt/incus \ | |
--libdir=/opt/incus/lib \ | |
-Ddocs=false \ | |
-Dtests=false | |
meson compile -C build | |
mkdir -p /build/target/lxcfs/ | |
DESTDIR=/build/target/lxcfs/ meson install -C build | |
rsync -a /build/target/lxcfs/opt/incus/bin/ /opt/incus/bin/ | |
rsync -a /build/target/lxcfs/opt/incus/share/ /opt/incus/share/ | |
rsync -a /build/target/lxcfs/opt/incus/lib/ /opt/incus/lib/ | |
sed -i "s#/var/lib/lxcfs#/var/lib/incus-lxcfs#g" /opt/incus/share/lxcfs/lxc.mount.hook | |
patch -p1 /opt/incus/share/lxcfs/lxc.mount.hook < "${REPO}/patches/lxcfs-0001-hook.patch" | |
- name: Build Incus | |
run: | | |
REPO="${PWD}" | |
cd /build/incus | |
git cherry-pick 3512d3770529c4b8f201d715b5111d37783058f7 # incusd/network/ovn: Port CreateLogicalRouterRoute to libovsdb | |
git cherry-pick 9f57273a6a22cf4b3ce0a2c0cf8f365acfd27290 # incusd/network/ovn: Port DeleteLogicalRouterRoute to libovsdb | |
git cherry-pick 46b9df75921cb83748b98903debe2a1fcdc7553c # incusd/network: Update for OVN function changes | |
git cherry-pick e99292988883f0936677760d61dde10aeee772b1 # incusd/network/ovn: Port DeleteLogicalRouterPort to libovsdb | |
git cherry-pick 4c03093e8fea6db4a457f76a6a10e9a7e18369fe # incusd/network/ovn: Remove LogicalRouterPortDeleteIPv6Advertisements | |
git cherry-pick c5dc10b04c02f6c5af50f0b83dbd138669095988 # incusd/network: Update for OVN function changes | |
git cherry-pick 7145515b9029a82f9991bc1c5874ca3294e62890 # incusd/network/ovn: Port DeleteLogicalSwitch to libovsdb | |
git cherry-pick b44fc09354356720b7bb674af231a75923840b73 # incusd/network: Update for OVN function changes | |
git cherry-pick 03f563b9c9b1dbfa64beb4f4221f405db46bbd67 # incusd/network/ovn: Remove logicalSwitchFindAssociatedPortGroups | |
git cherry-pick a5cba6a6ec5d2c8bfdfd0a8a51e850f7ac3ef490 # incusd/network/ovn: Special handling for Load Balancer table | |
git cherry-pick 3ff7d11fa77161e84179b63689f384047b1caa92 # incusd/network/ovn: Align functions context handling | |
git cherry-pick 6c2d981e2b260ab5d548c48748b07da98062bc4c # incusd/network/ovn: Port DeleteLogicalSwitchDHCPOption to libovsdb | |
git cherry-pick 550851bf4a12df05da5963fdb113ba7873df854f # incusd/network/ovn: Port GetLogicalSwitchPortLocation to libovsdb | |
git cherry-pick d37e47ae3cba8458629e8eaa33ba90f5219e813c # incusd/network/ovn: Port GetLogicalSwitchPortUUID to libovsdb | |
git cherry-pick 8f9cdbc2f4e0e0c4eadf1228b540f3b9614422d3 # incusd/network/ovn: Port GetLogicalRouterPortHardwareAddress to libovsdb | |
git cherry-pick 0e625d43d93bf33542a7467e4492583d100cec12 # incusd/network/ovn: Add GetLogicalRouter | |
git cherry-pick 743a85bcfccde4559844171485bda649de0ca137 # incusd/network/ovn: Port DeleteLoadBalancer to libovsdb | |
git cherry-pick 4ad5982aceba9347725b3a62a744f839c3d6cc02 # incusd/network/acl: Update for OVN function changes | |
git cherry-pick ab0e1924dbf4c968a19d134070777fc6561e19c0 # incusd/network: Update for OVN function changes | |
git cherry-pick a5f28375e5843b95e420e188389d7a13dc5c571c # incusd/network: Simplify OVN network deletion logic | |
git cherry-pick 77c4e09836700146a13417b3dceff2a282d9bfe5 # incusd/network/ovn: Port UpdateLogicalSwitchIPAllocation to libovsdb | |
git cherry-pick 8519da027c2cc6275e1fbfa1c24cbde3f0ab3d6d # incusd/network/ovn: Port UpdateLogicalSwitchDHCPv4Revervations to libovsdb | |
git cherry-pick 2947b57c2465db2d31ac92701291cbd76f161b81 # incusd/network/ovn: Port GetLogicalSwitchDHCPv4Revervations to libovsdb | |
git cherry-pick 696256fd434a35a5311a6dedaf7c905d32d7b6cf # incusd/network/ovn: Port GetLogicalSwitchDHCPOptions to libovsdb | |
git cherry-pick 0a945cbaceb34e68d9b6b3ccaf73e373f8515549 # incusd/network/ovn: Port UpdateLogicalSwitchDHCPv4Options to libovsdb | |
git cherry-pick 45d289fb2536ec2b3f6f87754b87da095d050d19 # incusd/network/ovn: Port UpdateLogicalSwitchDHCPv6Options to libovsdb | |
git cherry-pick 42261ff4859644df98333a83f8f8f8fcaa9c0ae4 # incusd/network: Update for OVN function changes | |
git cherry-pick fc49c52b2ce3a79fe2c5329d972d0678b26841fb # incusd/network/ovn: Port logicalSwitchPortACLRules to libovsdb | |
git cherry-pick b40da9f5a9b79d69d2083b9466e94c5ec4db24d1 # incusd/network/ovn: Port GetLogicalSwitchPorts to libovsdb | |
git cherry-pick fa1609ec2aee7925f2065a5b96cb1cbb01ad2c91 # incusd/network/ovn: Port UpdateLogicalSwitchPortOptions to libovsdb | |
git cherry-pick dea679fe081668e1fd6b2a93482ec88beec587c5 # incusd/network/ovn: Port CreatePortGroup to libovsdb | |
git cherry-pick 26f01d84290cf40fd1a847a9cc060749ef558671 # incusd/network: Update for OVN function changes | |
git cherry-pick c8ba6cf5fcb39efea4c89ee3f332c5f2aaea69c8 # incusd/device/nic: Update for OVN function changes | |
git cherry-pick 80f17907331ab853104201054fc8aa1f30c9a939 # incusd/network/acl: Update for OVN function changes | |
git cherry-pick 48abc8a3b043278bbec5299e7d7a5ac515e0e780 # incusd/network/ovn: Port GetPortGroupsByProject to libovsdb | |
git cherry-pick 04cc2a390591584729fc2feef423663713cc6739 # incusd/network/ovn: Port CreateAddressSet to libovsdb | |
git cherry-pick 5c23be431ca74443dd4795594023263fcfa0a6d7 # incusd/network/ovn: Port UpdateAddressSetAdd to libovsdb | |
git cherry-pick 762967eae8bd565daa76b1eef30788956668f99b # incusd/network/ovn: Port UpdateAddressSetRemove to libovsdb | |
git cherry-pick 0769b1525682797cdf7e4ed32d82e44a1d55f169 # incusd/network/ovn: Port DeleteAddressSet to libovsdb | |
git cherry-pick 2d3ce78a042ceed365378a04a065942958f975b8 # incusd/network/acl: Update for OVN function changes | |
git cherry-pick f825f08c42c83a24599bb85bbc0b161170b656f7 # incusd/network: Update for OVN function changes | |
git cherry-pick f6696d88e1003c3c36ebf7683ada8674242846c0 # incusd/network/ovn: Port UpdateLogicalSwitchPortLinkRouter to libovsdb | |
git cherry-pick de65389a8cf914a72dbdfde66dd32599fd483dbb # incusd/network/ovn: Port UpdateLogicalSwitchPortLinkProviderNetwork to libovsdb | |
git cherry-pick 1ebebf7356541125a614d6e3737490a4aa89a5ad # incusd/network/ovn: Port GetLogicalSwitchIPs to libovsdb | |
git cherry-pick fa5aed1a514801e2078d895316883b4b4ffbfc3a # incusd/network/ovn: Port GetLogicalSwitchPortDNS to libovsdb | |
git cherry-pick c40746092f08975cb2de1df03e9b45fe0aa28fa9 # incusd/network: Update for OVN function changes | |
git cherry-pick 70246e7b92b9b73a3ec027d8b16157b1473c0537 # incusd/network/ovn: Port UpdateLogicalSwitchPortDNS to libovsdb | |
git cherry-pick 2f9bbd24a8c367fad3598078810347a3d1bd02c9 # incusd/network/ovn: Port UpdatePortGroupMembers to libovsdb | |
git cherry-pick 625d72cc41739696da1441b27a304cce6cb3c9b3 # incusd/network/ovn: Port UpdateLogicalRouterPolicy to libovsdb | |
git cherry-pick 72d715002d5f947471d8c76da6e194f90e019c2a # incusd/network: Update for OVN function changes | |
git cherry-pick 9efde7ca08c9087a955c4b84b7d606bdacfc0d33 # incusd/network/ovn: Port CreateLoadBalancer to libovsdb | |
git cherry-pick c00cfdaa4bd631b58f369270ac1381133d73ca7a # incusd/network/ovn: Port GetLogicalRouterRoutes to libovsdb | |
git cherry-pick 3e0b0f6320e780b41b10ac0ce651dae9273ce531 # incusd/network/ovn: Port DeleteLogicalRouterPeering to libovsdb | |
git cherry-pick 99996103509bb557b21f968036b14dbe2c4903a9 # incusd/network: Update for OVN function changes | |
git cherry-pick beb1d679f25671bf575e3d3a5bece1f72a560bd4 # incusd/network/ovn: Port CreateLogicalRouterPeering to libovsdb | |
git cherry-pick 43c2ef0d582e9bd56ed7a03680f1ec76c4471449 # incusd/network: Update for OVN function changes | |
git cherry-pick 08f6d56b59251ea3d1f8e71ae32c2ef49cc35234 # incusd/network/ovn: Port logicalSwitchPortDeleteDNSOperations to libovsdb | |
git cherry-pick a2b90cd42561c3aaa501feb3eb87b2ebe35caddd # incusd/network/ovn: Port DeleteLogicalSwitchPortDNS to libovsdb | |
git cherry-pick 46ef843a412375fdb2486d63c276d5bd761e9aaa # incusd/network/ovn: Port logicalSwitchPortDeleteOperations to libovsdb | |
git cherry-pick 7395461cf1458f97eff8c8852b096627f5851ea7 # incusd/network/ovn: Port CleanupLogicalSwitchPort to libovsdb | |
git cherry-pick 56773d9a8c568c134d32ac1a23897e5060ec2769 # incusd/network/ovn: Port aclRuleDeleteOperations to libovsdb | |
git cherry-pick c37abeae6d0cf6efbc56fc5c06154d61263b5790 # incusd/network/ovn: Port aclRuleAddOperations to libovsdb | |
git cherry-pick a8576e25fd633957e39c45ca0c5a0887af553636 # incusd/network/ovn: Port ClearPortGroupPortACLRules to libovsdb | |
git cherry-pick b524c503331545d1ff9d67ae22d118a87b133d95 # incusd/network/ovn: Port UpdatePortGroupPortACLRules to libovsdb | |
git cherry-pick 6eab8432aadac51a054a1c864d6e08021c0275f7 # incusd/network/ovn: Port UpdateLogicalSwitchACLRules to libovsdb | |
git cherry-pick bab70830cd64e77d948d7cc048a88656c50f4622 # incusd/network/ovn: Port UpdatePortGroupACLRules to libovsdb | |
git cherry-pick 20e552557e5bb5bbfc0c0c089e7c342c856421d5 # incusd/network/acl: Update for OVN function changes | |
git cherry-pick 3219d15425fd1336ab880345bbdb559a8c181fd6 # incusd/network: Update for OVN function changes | |
git cherry-pick c49100a279d969d29f6a8d19d5158d92a5633d46 # incusd/network/ovn: Remove nbctl | |
git cherry-pick ed4d17e9ecf14148f0b814e7a645084ae1bd11f8 # incusd/instance/edk2: Add new package to track EDK2 firmwares | |
git cherry-pick 5ca9dff37f9467b6ae951dc833e9881dfc9daddd # incusd/instance/qemu: Update to the new edk2 package | |
git cherry-pick a8322c9b3a8da3ca9781a2e8d287cfc74729fee0 # incusd/apparmor: Update to the new edk2 package | |
git cherry-pick a0f00bf93c78d6b6e1eab926733c78e5e97a18ff # doc: Cleanup OVMF/EDK2 handling to cover aarch64 | |
git cherry-pick 2f8a458852ce60cb4beeea0c02ff3d621610740c # incus/storage_volume: Tweak help messages | |
git cherry-pick e770a71f77496e96b0315dc149c9ff20cab48259 # i18n: Update translation templates | |
git cherry-pick ddba6bce28fa361327b3a4af294e82e6bcc21508 # incus/storage_volume: Fix lint | |
git cherry-pick d90014dcc9b3804241b64add16365f137f240110 # doc/installing: Mention incus-tools package | |
git cherry-pick 579ee11e8fb791e561338b8bc8b19c6680090557 # incusd/apparmor: Allow devpts mounts | |
git cherry-pick db3931780d6406de5d6c1f500965a91bd4a618c0 # incusd: Improve profile rename errors | |
git cherry-pick b7c25c644556761d9bdf6f3f390adbc13b020713 # incusd/sys: Add cluster resources cache path | |
git cherry-pick 6d5cecde1e60969c79a668635334ecb38c675051 # incusd/daemon: Locally cache other server resources | |
git cherry-pick 7b090dc60d79e0332c120de67c73c2dabf1404ab # incusd/instance/drivers/qmp: Add QueryCPUModel | |
git cherry-pick 47df62388b5a81f8bcb80fe6d7468647dbfd9b2f # incus-user: Use shorter interrface name for long UIDs | |
git cherry-pick cc38d4ff6ad28478ae4dfc25717050eda576b2f5 # incusd/device/network: Fix Tap interface MTU when in OVN | |
git cherry-pick bde005e4f5db0e52b14b254ebeba14fbd20caef9 # incusd/isntance: Don't expose all internal flags in INFO message | |
git cherry-pick 50c8f44dbde8a988d495084d6e98e160a4698c1b # incusd/instance/lxc: Allow calling Update from a Create operation | |
git cherry-pick 768d47d044902250f82ef99ba570cd14f60b76b2 # shared/subprocess: Allow building on Windows | |
git cherry-pick 56a3b7f299f2e5c3a2ae5c4b0dce4a308ca278d1 # client: Add basic OCI registry client | |
git cherry-pick e976088de179584ae4481d052a7312b4c3eea30c # shared/cliconfig: Add OCI remote support | |
git cherry-pick 6eb970d1da6f4eb1fa35a3c5251fbd17f84df51c # shared/subprocess: Fix gofmt | |
git cherry-pick c1f4f32d7131e60e3c810da36e80d9da4716766f # incusd/storage/lvmcluster: Don't allow buckets | |
git cherry-pick 3a0c698df5b9cac8caf417c070e43638a63cf5de # incusd/storage/lvmcluster: Don't exclusively lock ISO volumes | |
git cherry-pick 5941015bcd88986146e6e3535b940045992b9702 # incusd/device/disk: Allow attaching the same ISO to multiple instances | |
git cherry-pick 15e6e522c764302ef6b46a36ba2bc047fa3c706e # incusd/device/disk: Allow live-migration with agent/cloud-init disks | |
git cherry-pick 95fb17cd3c1abffce0e8a89ae0048d2e9364cf9d # incusd/instance/qemu: Fix live-migration with agent/cloud-init disks | |
git cherry-pick f3caa114abdcbd60015dbb7329c3b6da9bd190a3 # incusd/device/disk: Don't crash on uninitialized pool | |
git cherry-pick 664ce7cfce3fedc0a6cc00c3272639fd1e9b4892 # incusd/storage/lvmcluster: Always use shared access | |
git cherry-pick b83b35399c089bffc91261eb43774eb44d9d6778 # incusd/instance/lxc: Don't report filesystem metrics when no per-instance value | |
git cherry-pick 471c0de3b90f4afa8fed6cf1bb760f83eb539ea1 # incus/top: Set interval to 10s (minimum server-side is 8) | |
git cherry-pick 2762921e22bcb2666498bcce30cf78568458ba8f # incus/top: Hide zero values | |
git cherry-pick 698aa57fd8996ff47b0d281024a9955c99449315 # incusd/device/disk: Mark virtual disks as always migratable | |
git cherry-pick ca64aa1c64fe484488041874ef700d5a8aca8960 # tests: Update metrics test for recent change | |
git cherry-pick e5179c23c8e6696832424a7d94a4f988b78592ba # doc/storage_backup: Fix command example | |
git cherry-pick 9ef3173980194067b823d2cd9df8063707c66645 # incusd/instance/edk2: Support OVMF filenames on arm64 | |
git cherry-pick ff744921840a06b970998ed6c371ad706b7b4761 # incus/s3: Fix mcli minio client executable name check | |
git cherry-pick a706df545f2b8c32e523412c0616bb6f241ca352 # Change RunDir file mode to 0711 | |
git cherry-pick c19644c610c0a451477bc7308b29ebd66a8a55d9 # incusd/apparmor/qemu: Relax apparmor rules a bit | |
git cherry-pick d33cf8693dc7c6971760888986edad286cc9cb0a # incusd/apparmor/qemu: Fix typo in rule | |
git cherry-pick 7e437290c84b2d36b097433d9264ec59d43bc304 # incusd/apparmor/dnsmasq: Relax rules a bit | |
git cherry-pick 2708c8bb843e04b3435c1da5ff469dbdcd06666c # incusd/db/node: Fix version check in GetAPI | |
git cherry-pick fa88a50fa3d12314254dba944f8851c234ac8acb # incusd/db: Allow cluster startup with differing API extensions | |
git cherry-pick db09e112b004c0a22b29279861b7cc86d5277bad # incusd: Extend heartbeat data for minimum API extension count | |
git cherry-pick d158502e5926865960425c68b0c6d23e3757fce8 # incusd/storage: Use writeback mode for qemu-img convert | |
git cherry-pick b92fe219fa2823d59d272ac6c16ec6d1b5c2dc1b # incusd/storage: Improve unpacking message | |
git cherry-pick f0d2151c127d730874908ced5ae9eb6b7517d233 # incusd/operations: Handle percentage only updates | |
git cherry-pick cbc101ac51a1eeb015c2564be6d237cee15d4c62 # incusd/storage: Pass through tracker to qemu-img | |
git cherry-pick 869e33c6ccd978296517077bbd1d4eb5f92cec65 # [lxd-import] lxd/db/cluster: Rename "node" to "cluster member". | |
git cherry-pick 62fc742993f905163036bd977b58ad4cec6025ba # [lxd-import] lxd/db/cluster: Update error messages in unit tests. | |
git cherry-pick 3a9756dc1628a01451f041fe09ea08dd479b96d1 # incusd/db/cluster: Update tests for relaxed API extensions checks | |
git cherry-pick 9750da5d5fffad1a35a9aaac5d3e4839f9163a92 # incusd/apparmor: Implement progress tracker for qemu-img | |
git cherry-pick 563e3f7fd47e019b3c3345749b0827ef0bb772be # incusd/cgroup: Handle unknown devices in io.stat | |
git cherry-pick f172368e4ee7c800e038be0d63c2e71d7a71eaf3 # incusd/instance_post: Always set the target project | |
git cherry-pick 5cd49ac7d74a58846c75ecf97fde239ba9227393 # incusd/storage/drivers: Consistently set VolumeMultiNode | |
git cherry-pick 294598769728b44e9a67069800da8fd1f516e3f8 # incusd/storage/lvm: Require an exclusive lock during snapshot | |
git cherry-pick 8a5a13697c4bbe58d39d35f15afd002e0c7184cd # incusd/storage/lvm: Properly handle activation during resize | |
git cherry-pick 407c83246fad4dfda4e84f1142e72f41f9450d2e # incusd/storage: Properly detect filesystem on remote block | |
git cherry-pick 1375589aa0a230c794e793cf832c6d4db7878cb2 # incusd/cluster: Always attempt to forward custom volume requests | |
git cherry-pick 8086a0d3a0e0eb71db87c0c7fe085adc80d0cd3f # client: Always set GetBody | |
git cherry-pick c87420bc2cbcef748453a82e34ba74138edca3a6 # client: Report OIDC refresh failure | |
git cherry-pick 2e959348065d95582fc763a0c16331bd11072a9a # incus/remote: Forward OIDC auth failures | |
git cherry-pick 759f39d02496da6c989590f7e3803937e9327e99 # client: Retry when told to by the proxy | |
git cherry-pick e63fc73112176ce0d73bb27062caa8d237d2d5df # Use qemu-img convert output to update progress | |
git cherry-pick 2928a8e9731e5af8a6b75bddf9305a9ae633d90c # incusd/cluster: Add flagFormat | |
git cherry-pick f1b35e0b8a97e7418e7b4360a21627a0b31befac # incusd/isntance/edk2: Move seabios to /usr/share/qemu | |
git cherry-pick 99d1fe855db6ecc6c3ae5e467530284eaa5846f3 # incusd/isntance/edk2: Add ArchLinux x86_64 paths | |
git cherry-pick 46fef15ab8c546e2c9ced3ed82321c518af75efa # tests: Use future values in property test | |
git cherry-pick 66214e629d65b20184d312f72df4a2d018f9da59 # incusd/db/cluster: Cleanup indentation | |
git cherry-pick b05cc4fa89082ae6ce3fdc57f975130c11c42bda # incusd/db/cluster: Update schema | |
git cherry-pick ce3537aa8bc0739041bbedebef23c2cd3f94dd3d # incusd/db/generate: Add exception for cluster tables | |
git cherry-pick 37604a8dfd529956bb51017c78cd3f61531966f2 # incusd/resources: Add sortedMapKeys | |
git cherry-pick 2cf9941baa9b47cd5e403b598d25cd986dceafe0 # incusd/resources/cpu: Sort sockets, cores and threads | |
git cherry-pick e04dae41592ad46b1ab4085012e27faf2c9b1303 # incusd/auth: Fill missing local volume location | |
git cherry-pick 19b95f968d4b97cc80341e1f0b1d4945da23a393 # incusd/cluster: Correctly record volatile.cluster.group on move | |
git cherry-pick e45cfc1dae0e1b9f45ae76631539c9da5a69acfc # incusd/migration: Show source errors first | |
git cherry-pick 5cd7c9f6f1c7b5a65d980dfe123c66bd21942ed8 # incusd/instance/qemu: Clarify live migration error | |
git cherry-pick 1787edef813f214c4fd70d163333baacd0d9d0eb # incusd/cluster: Attempt to ping the server prior to healing | |
git cherry-pick 65be2914530df38863e3bd9d8c1578802d7e35ba # incusd/instance/qemu: Fix bad timeout errors | |
git cherry-pick 6b5e0709435550149ce0b00a526ab686791a0bdd # incusd/instance/qemu: Send two ACPI events on shutdown | |
git cherry-pick cb8fb00568b0c2452bd1dd85e56e9f25457110cf # incusd/instance: Add progress tracking to export | |
git cherry-pick e17afcf9f76c2de6f8252545ef72dcc93513ae32 # client: Remove GetBody when can't seek back | |
git cherry-pick 81ba3463b3e82d3f81bc180fcf15d39d6620f8bd # client: Add Seek call to GetBody | |
git cherry-pick 356d75ca81e67783ebfea57e9f260a7dd7d9313d # incusd: Simplify image replication | |
git cherry-pick 97174c564f01d6707347fee08fa41c20835278d7 # incusd/images: Only remove from authorizer once | |
git cherry-pick 337e11546f14133671c5212276a167900324042a # incusd/images: Correctly record new aliases | |
git cherry-pick 62247d7b0ac65a7d69c0575b9e98ab3a3141dd54 # incusd/images: Correctly remove aliases | |
git cherry-pick 26a5a27378b43d687b3f92cd499579b94812c12b # incusd/images: Set authorizer entries at the correct time | |
git cherry-pick 278346e4f36fa672bfae65b4ea2d358534b6af18 # incusd/images: Don't alter image info on cluster copy | |
git cherry-pick c6b408b3a46f49b6df8905b06b6d876d2e5615dc # incusd/storage_pools: Set authorizer for pending pools | |
git cherry-pick cb1a1eb8596b565339bc2005d96fc585181918a9 # incusd/networks: Set authorizer for pending networks | |
git cherry-pick 6f29617971c617aecf07d7a786603972f9af4d51 # incusd/network: Handle long interface names | |
git cherry-pick 2a2a3e90db645df48584587c0eb270b3e54a58d7 # incus/cluster: Cleanup certificate update message | |
git cherry-pick 2f5f50c605e6d4fbdc277af01ac69f74008043d7 # [lxd-import] github: stop purging core20 | |
git cherry-pick 1ded3b81b2d5b4ad4f1068b518df0f958493c830 # [lxd-import] github: purge disabled/superseded snaps | |
git cherry-pick 75feddc00c34681417c9024f120902ba21599b4d # [lxd-import] github: move snap removal to "Reclaim some space" step | |
git cherry-pick c2270df3f6158e09e5eb4a105aea95e7c53aa8f7 # [lxd-import] github: put docker removal its own step | |
git cherry-pick 17506e403463f03716d657be14285abafe369942 # [lxd-import] github: mask lxc{,-net}.service in a singe command | |
git cherry-pick c2f943c527daf63bc5bcda871c40f8ecf377db87 # [lxd-import] lxd/instance/drivers/driver/qemu: Don't leak file descriptor when probing for Direct I/O support | |
git cherry-pick 218c9695592dcf1fa0ecff018e78ee3f04790aad # [lxd-import] lxd/network/acl: Change protocol field for ovn logs | |
git cherry-pick 4abe78277cf9462695dd187fe26e1bf4943fe3b5 # [lxd-import] lxd/instance: Reject limits.kernel config for VMs | |
git cherry-pick d6ab4777bcbae09182445fbce06df266dee9d200 # [lxd-import] doc: `limits.kernel` only applies to containers (see #12874) | |
git cherry-pick 03f5f175662c921dc1e1c759081c0a71bb0e2cca # [lxd-import] lxd/storage: Fix resize for pools with custom zfs.pool_name | |
git cherry-pick 11787472e572c6864801901710a7846354c5be21 # [lxd-import] lxd/storage/drivers/driver_zfs_utils: fix typos | |
git cherry-pick 1acf8694624411034e91191fc7e5e1492088e389 # [lxd-import] lxd/storage/drivers/driver_zfs_utils: make it explicit that blocksize is in bytes | |
git cherry-pick b9c8f8f50b966591bdc2cd0fd88418aa5c76aaac # [lxd-import] lxd/task/group: Make cancel type of context.CancelFunc for clarity | |
git cherry-pick 878ac6d6f6ac3fc13a5979621063d25eb48fb78a # [lxd-import] doc: Add paragraph on how to delete images | |
git cherry-pick 3ae9f423b59d990fc287715ba25226da8e688e57 # [lxd-import] test: Add exec exit code test | |
git cherry-pick d67f737d95cddbf2833312904ffbdce3c1460869 # [lxd-import] lxd/apparmor: allow confined services to receive required signals | |
git cherry-pick d613c51ff82a04fee3196da997855a62d4bb4751 # [lxd-import] lxd/rsync: Consistently compare files on nanosecond basis | |
git cherry-pick f8c45bde4ad62b0bd863eac989953be89496fc0b # [lxd-import] test/suites/migration: Check for file contents after refresh | |
git cherry-pick e20744076b338bd19e131e3208054657da79094a # [lxd-import] test/suites/migration: Check local and remote instance refreshes based on nanoseconds | |
git cherry-pick 8e4d1d9f9684d80156359ad49cd7ca1e8b54b10c # [lxd-import] doc: add paragraph on how to delete images | |
git cherry-pick f90674bae7bf64f5bb6a7960f32cef18eb7e407e # [lxd-import] doc: enable multiprocessing for pyspelling | |
git cherry-pick aabd94b8bd5673a797d388e13b448a8c36137c29 # [lxd-import] Makefile: have run-parts report which script it runs | |
git cherry-pick ffa5f71570140e94e1cb71c0bd13dcf887f4d89b # [lxd-import] lxd/storage/drivers/ceph: Disable filesystem config keys on block volumes | |
git cherry-pick 11835641028b8946338fc233d030e875b3916e96 # [lxd-import] lxd/storage/drivers/lvm: Disable filesystem config keys on block volumes | |
git cherry-pick 6175a1b51c61bd52b1f02a9f86cb1f780e5da057 # [lxd-import] test: Add check to restore custom volumes of type block | |
git cherry-pick 78cae123e76aedf4159be839d00a37a9af271440 # [lxd-import] lxd/storage/drivers/ceph: Update UnmountVolumeSnapshot docstring | |
git cherry-pick 74696c1d2df5c8523951a1b78a373ae865e71b51 # [lxd-import] lxd: Improve error check for existing certificates | |
git cherry-pick 6bc4224c5a70d17c9ed5f16baa966b5c2b0bbdef # [lxd-import] shared/api: Updates swagger description for certificate field. | |
git cherry-pick f10b26707fcfc2880b509a5b2fd4c48d9ac83eb0 # [lxd-import] shared/api: Fix lint errors (receiver-naming). | |
git cherry-pick f9748b706c41b446693ea3c931b4efbbe14906a5 # [lxd-import] lxd/db/cluster: Fix lint error (revive: var-naming). | |
git cherry-pick 8a82dab9cafc2e80ea2f8b164a0acbb3c0ea26f6 # [lxd-import] lxd-migrate: Ignore lint error (revive: deep-exit). | |
git cherry-pick 6e17cbb5bc99c5d59acbde29ee32c09601fb2681 # [lxd-import] lxc/remote: Fix lint errors (revive: exported). | |
git cherry-pick 98a8572d32d04f2d536500637a25102c4abfddb5 # [lxd-import] lxd/storage/backend: Don't validate custom storage volumes twice | |
git cherry-pick 61260262d98c9874f446d0d5d1dd2d3792608c72 # [lxd-import] lxd-generate: Return helpful error instead of panicking. | |
git cherry-pick 67ff1d2201067839935f2d33b7536787c00265cc # [lxd-import] lxd/storage/backend: Use quotes consistently for error messages | |
git cherry-pick dc79fde4e4d715d5fa336788bcef9f4c9c66c562 # [lxd-import] lxd/project: Don't panic on StorageVolumeParts | |
git cherry-pick e1afcee931a6abe4d3770b362a7f3ffd95ffcea6 # [lxd-import] github: don't abort on remount failures | |
git cherry-pick f8e8ebaa12f509f599ba699cbb18037b0c30e977 # [lxd-import] test/main: add log grouping (GHA) | |
git cherry-pick e4f308b04840f2c157db98182c7a50773629d3cd # [lxd-import] test/main: show dmesg on failure | |
git cherry-pick eef97b1af9236926ef8442b7a86b6322b1190fa9 # [lxd-import] lxd/api/internal: Use correct quoting for error in internalImportFromBackup | |
git cherry-pick 20b42987b081fcc16151adcf8ebb7ec28f0f934a # [lxd-import] lxd/db/cluster/devices: Use correct string quoting of device type for error in NewDeviceType | |
git cherry-pick 921deab0241912de16ff8c1b448002328f82e379 # [lxd-import] lxd/instances/post: Improve error in createFromBackup | |
git cherry-pick 41bf4f6b21cd79feecb07e4b714171cff1fe9d9b # [lxd-import] lxd/storage/backend/lxd: Update backup.yaml after instance and volume DB records have been generated in CreateInstanceFromBackup | |
git cherry-pick 9760ca660379c48e5a4acceca610b62cf4d3d17b # [lxd-import] test/main: don't wrap tests logs in log groups | |
git cherry-pick 76227143984bf88003de365d79eef127a95bea10 # [lxd-import] lxd/device/disk: Remove config.iso file when the cloud-init:config disk device is removed | |
git cherry-pick 11d8efe016e401633638b63a4b44b3ddcb55fd6d # [lxd-import] lxd/images: Add project to error in autoSyncImages | |
git cherry-pick 2484ebb9fd91dfbb718fefe9bc0ee04ee6559564 # [lxd-import] lxd/project/project: Remove optimisation from StorageVolumeProject | |
git cherry-pick 323b4cbc9c58aadff5cb27fdb2922d1db5721072 # [lxd-import] lxd/storage/volumes: Remove unnecessary 2 line variable definition in doCustomVolumeRefresh | |
git cherry-pick 0177bf986809920c891a458450d4ae053b4aaddc # [lxd-import] lxd/storage/volumes: Remove unnecessary 2 line variable definition in doVolumeCreateOrCopy | |
git cherry-pick 8fca9bccb730700d22a7f12dcbc17c80c21b79e2 # [lxd-import] lxd/storage/volumes: Validate source project in doCustomVolumeRefresh | |
git cherry-pick f6d23bb02debc2d8246b309dae23da0bfdbfb605 # [lxd-import] [lxd-import] lxd/storage/volumes: Validate source project in doVolumeCreateOrCopy | |
git cherry-pick 176783d11e98aea66a028fa1c8ee508759763f58 # [lxd-import] lxd/db/cluster: Remove redunant parentheses. | |
git cherry-pick 657aaee2ceaa1ce2b158de4ca53a837535daf547 # [lxd-import] lxd/migrate/storage/volumes: Use volume name from DB in migrationSourceWs.DoStorage | |
git cherry-pick b54c60999f2a23b1536c86abe57c03ae2c857e3d # [lxd-import] lxd/network/network/utils: Fix incorrect conversion from int64 to int in inRoutingTable | |
git cherry-pick 29ce617c1935b37b89d2cacb09f1e4f9bb8877c2 # [lxd-import] lxd/network/network/utils: Remove unnecessary call to fmt.Sprintf by passing base to ParseInt | |
git cherry-pick d57e14de4faba053762b6f16c9fe8ea5b89b9af7 # [lxd-import] lxd/response: Use SmartError if SyncResponse success=false | |
git cherry-pick 3b0ec4c9b771441d8e2518cfbe920cb12daf2112 # [lxd-import] lxd/storage/drivers/driver/zfs/volumes: Fix error scoping in CreateVolumeFromCopy | |
git cherry-pick 97523ce986e8c0050a1e1b4414934c7dab56721c # [lxd-import] lxd/storage/drivers/driver/zfs/volumes: Define send/receive channels together in CreateVolumeFromCopy | |
git cherry-pick bafa1103a743a0463f12676b6b187b83a66a3c06 # [lxd-import] lxd/storage/drivers/driver/zfs/volumes: Kill sender if receiver fails in CreateVolumeFromCopy | |
git cherry-pick 2ad9fc13a8bf48504b7b9e49ce76b45fcb1e67c0 # [lxd-import] lxd/storage/drivers/driver/zfs/volumes: Handle multi-line errors in CreateVolumeFromCopy | |
git cherry-pick 60e89a426f17cf21fee3f5ebca762f31c7b6d957 # [lxd-import] lxd/storage/drivers/driver/btrfs/volumes: Fix hang when btrfs receive fails in RefreshVolume | |
git cherry-pick 7c0b2379953f877049a5a290c48b52e3b5dcf563 # [lxd-import] lxd/storage/drivers/driver/btrfs/volumes: Handle multi-line errors in RefreshVolume | |
git cherry-pick f78c18826aac49d42f9e52f3b654db430535af71 # [lxd-import] lxd/storage/drivers/driver/zfs/volumes: Aligns RefreshVolume with BTRFS driver | |
git cherry-pick 90bbf39748d1df309f0ce257b210546c89d2a9e7 # [lxd-import] lxd/response: Fallback to error response after setting headers | |
git cherry-pick 3c0a5b873b2feb2850f8746e91f4c579d2d5b999 # [lxd-import] lxd/storage/backend/lxd: Use volume name from VolumeDBGet in BackupCustomVolume | |
git cherry-pick c01d9b7db8856f9561e04e1e1f125972bff7ed1f # [lxd-import] lxd/storage/drivers/btrfs: Clarify fallback in case UUID discovery times out | |
git cherry-pick 82c30f103fbd9e96fd0836f688f8bc7278fdf488 # incusd/db/cluster: Fix import shadowing | |
git cherry-pick d8e7540b5b9fdcb736ffc70cf10e68db0ac16f11 # doc/rest-api: Refresh swagger YAML | |
git cherry-pick e1258e27e653a96f05d1f46f7749ea8941021085 # [lxd-import] lxd/storage/drivers: Add volume param to roundVolumeBlockSizeBytes | |
git cherry-pick 123fca0b83c8c51b091038f23ea9c1b88a08697c # [lxd-import] lxd/storage/drivers/zfs: Round to zfs.blocksize or 16KiB | |
git cherry-pick 3f96ea3381fe0163f5004808cfba6633412af505 # [lxd-import] test/storage: Add non-power-of-two sized storage check | |
git cherry-pick 7a402d002203f803fd85ef28dcc8b522fdce3b48 # [lxd-import] test/storage: Remove zfs rounding test | |
git cherry-pick daa460626798310a45d63756d35f342e4120d2b3 # [lxd-import] lxd/storage/drivers: Refactor volume size rounding logic | |
git cherry-pick 058cfe868a61eb63e81490e7fb708bf6cec3bf20 # [lxd-import] lxd/storage/drivers/zfs: Wait for device to appear when activating a volume | |
git cherry-pick 435c2c329c04bdb3e7edc1a5366b38b4bf25e43d # [lxd-import] lxd/storage/drivers/zfs: Check for non /dev/zvol/* paths | |
git cherry-pick 3a637e7f53c0307016ee015cace70cc376cc4765 # incusd/storage/zfs: Fix import shadowing | |
git cherry-pick fa79f0c17ea16d92c1ba64e17a9f372999ee2a7d # Make run-parts running compatible with different versions | |
git cherry-pick ab8fca0e52852c91787f1ed91521a47ce555cbf9 # incus/top: Properly filter disk usage | |
git cherry-pick cbc404e493c854125f439c70828bbfb2ad24d3a6 # incusd/state: Add Cluster gateway | |
git cherry-pick 5b9afebdd04a973c6d97013bf4a397c7da7f8a8c # incusd/daemon: Sort state fields | |
git cherry-pick b026c0f3a68f4904597f8b3209db8dc61b55add6 # incusd/daemon: Add cluster gateway to state | |
git cherry-pick aad0a63b1847918977ba4537524529fa8fca4c7b # incusd/acme: Update for state change | |
git cherry-pick 224d17ed943ffea343e01a94e7241d7d8f7c9a67 # incusd/images: Update for state change | |
git cherry-pick 80e17d141de10f3ffeb4da6ec9eddb51dae004e8 # incusd/operations: Update for state change | |
git cherry-pick 7d8963a3182d549a834cbf265636cba7a6d54d23 # incusd/instances: Update for state change | |
git cherry-pick 1d7824a6fd24baa24caa99db178615b4df3fe20b # incusd/patches: Update for state change | |
git cherry-pick cc6e08666f655f6ee3ebe007ec8d1ccb66803668 # incusd/cluster: Update for state change | |
git cherry-pick c06d87494214680974a5e1c4c1286348f0f49e32 # incusd/instances: Use targetGroupPrefix | |
git cherry-pick 8ac27779b0311d49bd9a444c7ab9bd8b2d650f9c # incusd/cluster: Split files | |
git cherry-pick 98af3f57e571823869c6f26b0ae49ee6983bb6c4 # incusd/cluster: Fix import shadowing | |
git cherry-pick 513bccc3d32da1729844a6e5d8176e2ceeb54534 # incusd/cluster: Re-factor healing logic | |
git cherry-pick fa187d31cbe5a48ac8255b5debd2d9781834ac00 # incusd/cluster: Improve logging | |
git cherry-pick 047d8b090103d93a0f883cedba3e6bd809522bd1 # incusd/cluster: Reduce dqlite logging | |
git cherry-pick f2e91a1835338d2900cc72509f074cda9e147610 # incusd/cluster: Extend HasConnectivity to do API checking | |
git cherry-pick e7bf949cc84cb14d341f6706ec36eaa56c43b983 # incusd/cluster: Add HasConnectivity check to event handling | |
git cherry-pick ae0c4a26486763f5ab0039d4dcc1e26c369e4268 # incusd: Don't block on startup for cluster queries | |
git cherry-pick 5b5ce64d00819a2e04ea670fc65895f14c065e73 # incusd/cluster: Rework offline server detection | |
git cherry-pick 3b86b6ee4b681b25d7baa1d1478bef42dc4938f8 # incusd/cluster/evacuation: Add separate healing mode | |
git cherry-pick a65879bc7f3b9df940eff1a33094defcff3592e3 # incusd/cluster/healing: Try up to 5 times | |
git cherry-pick 4c76cbf8eb603ef58e32646479ab5b0914bd51ff # incusd/cluster/healing: Add logging | |
git cherry-pick 22da35d4c4a1191febd36d8875015d59da5c3f5c # incusd/device/disk: Fix bad CanMigrate logic | |
git cherry-pick db00b8f89d791e2dc32f33b91b134c7c4409021f # incusd/storage/lvm: Properly activate/deactivate ISOs | |
git cherry-pick 2c7774cde94c93a5394d35913082c90b420337b1 # incusd/images: Expose image type as header | |
git cherry-pick 9d58f4efa96502626e7872561941c4681172d7ca # client: Skip image hash if OCI | |
git cherry-pick 022d28c2ceca9f5363c7d992d0392466d13315fa # incusd/device: Don't fail on LXCFS device entry | |
git cherry-pick 9b88efcdd9cc2a308cce687c7071718473c02a55 # client: Report source errors too on copy | |
git cherry-pick e922b5d5bedc4563d43f1b264537e7adca1b3df1 # incusd/storage: Have roundVolumeBlockSizeBytes return an error | |
git cherry-pick 0173de4d9754035865f190390e6d531acedbdfff # incusd/instance_post: Fix cross-server live-migration | |
git cherry-pick f6e8eb1308c4abee608a9ee1c8288fe96fa48adf # incus/image: Correct image copy logic | |
git cherry-pick eb7c1379d2bb447d10d6728e243b59aa659996f4 # incusd/storage/lvm: Hardden common functions | |
git cherry-pick 476652105646f8d4a16c63b502bd8b4ae4cba7f5 # incusd/api: Don't panic on missing config | |
git cherry-pick 97f6c52c4c66a4c2ac9f518dd6709fc31190bb6a # incusd/storage: Add Deactivate flag | |
git cherry-pick 53eb6348422409105e9c3866c1189011b6506286 # incusd/storage/lvm: Add deactivation step for clusters | |
git cherry-pick 61692509bf78a4d19d8a93304d918c9aa758d8c2 # incusd/cluster: Return clear status for servers currently starting up | |
git cherry-pick 30ffea29d81d683718ab31b908751ded7005ae45 # incusd/instance/lxc: Reduce logging level | |
git cherry-pick a34ca847b4cb3f9461f8048989d45857cdda566d # incusd/instance/qemu: Reduce logging level | |
git cherry-pick 9f5902bff0fbf31b630d03e06a2a2696c9265c5d # incusd/migrate: Reduce logging | |
git cherry-pick ca5b2cb2d54ae51d196e1bd380bbf5cf52e851bc # incusd/storage: Reduce logging | |
git cherry-pick a277d933a1bfafd5e198a18887b1dd8c49fd92d9 # incusd/instance/qemu: Remove double lifecycle event | |
git cherry-pick b0622c5d3bf6cc60f5a8ecc9847688ded8401dd9 # tests/clustering: Use correct target project argument | |
git cherry-pick dd47cb8bfca95da26767e62e24bdc04d4e4aa8c9 # incusd/isntance/edk2: Fix CSM handling | |
git cherry-pick c687ed61fb26eefea0de54399a68252d5def1e63 # incusd/storage/zfs: Always call tryGetVolumeDiskPathFromDataset | |
git cherry-pick 9d7cdeb956cb3982379e124822dc24fd9635f98e # incusd/network/ovn: Require functional uplink | |
git cherry-pick 5d2c563e9f1625019088f6f6685a3e5b8c9c8264 # doc: add colima instructions | |
git cherry-pick a191a62e8f6ee32eab9a55cb6e74be5f837d00a4 # doc: Update incus_alias.md | |
git cherry-pick 3ddb5d86b8f7894248782a06c0e170153168b5a3 # incus/network/load_balancer: Fix example | |
git cherry-pick 3d1ff2da78e6129f1853b9585a86f03be2c377a9 # i18n: Update translation templates | |
git cherry-pick 3c865cc7b568bfcb9425a8d9ab105bdf37150cb0 # incusd/network/ovn: Fix crash on uninitialized external IDs | |
git cherry-pick fe8fa44e77430c7d28627dd6e8cdad2302f6719d # doc/instances: Add VM agent install instructions | |
git cherry-pick b4f27e3041dc8ce8e6b212ee8caba9c2ad71bb9e # shared/api: Add Config to ServerUntrusted | |
git cherry-pick 59289d3c126d367f4c098a376d40c82234920d5a # doc/rest-api: Refresh swagger YAML | |
git cherry-pick 89aade9256c24191eb2bfa15cfb4917d19fbd199 # incusd/api_1.0: Expose user.ui config keys to all clients | |
git cherry-pick 5fc4448d90ac6222b47dc0c2beaf487429f5ceb4 # doc/server: Mention user.ui config keys | |
git cherry-pick c1d0849983f81caebf8a4c6432f63cdb0d198ff1 # incusd/auth/oidc: Better handle logout | |
git cherry-pick 3fe3417c001f064d646c486fd595959d19343ec8 # incusd/networks: Emit lifecycle event and authz entries for OVN networks | |
git cherry-pick 7eea07763d15eedd26d2af88f52a85fc6953d3f1 # incusd/network/ovn: Fix indent | |
git cherry-pick 2091a1a3ebbba83b5e0c0e7d61dcff0d3ede4384 # doc/storage_volume: Fix snapshot command | |
git cherry-pick 7b15d2e5f6d8f4f68b012e4c30015d25a7647757 # shared/api: Add EventLifecycleInstanceMigrated | |
git cherry-pick 345fdc12bf57d26f45ba0b851aae84a63e9dcd40 # shared/api: Sort lifecycle events | |
git cherry-pick dd19fa95202e2a93b173d6463cedcda943620c20 # incusd/lifecycle: Add InstanceMigrated | |
git cherry-pick 1d8cd983677f6ee0fea53be43c328221b2eb3e54 # incusd/lifecycle: Sort lifecycle events | |
git cherry-pick d5d5e0b80b11df60eb5450d79d31216814377848 # incusd/isntance/operationlock: Add ActionMigrate | |
git cherry-pick 9c4fef2bad9a02ae94ae3559421fdd843c35948f # incusd/instance/common: Add support for migration operation | |
git cherry-pick a8ebc0b41ac9494a7e5341012ef0f1df8e249efc # incusd/instance/qemu: Add support for migration operation and lifecycle | |
git cherry-pick cab076397481689bbb0e95fb9e5bcd8e111f0c3f # incusd/instance/lxc: Add support for migration operation and lifecycle | |
git cherry-pick e803b0ac4848c2d9861f59c9221b8522b42e91f0 # shared/api: Add lifecycle events for cluster evacuation and healing | |
git cherry-pick 9b53ed7de7a56c4a1ff4b743829c4abae8c5f113 # incusd/lifecycle: Add lifecycle events for cluster evacuation and healing | |
git cherry-pick 438f4248ada84005bf699a9a5aa1122b9f8ef15e # incusd/cluster: Add lifecycle events for evacuation | |
git cherry-pick b6356f8e2098f83c686c0a58b88d87fd7af1e1f5 # incusd/request: Strip port from event address | |
git cherry-pick 2811cbdcf089ec52d5ac61b5a99da77aafdb9db3 # incusd/instance: Properly link instance and operation | |
git cherry-pick ce275a4735021d817a6bacdd93c9edb8195ae7cc # incusd/operations: Add CopyRequestor for nested operations | |
git cherry-pick ae7fd874689b56df885664c052390ef59439ba9e # incusd/instance: Track operation during exec/console | |
git cherry-pick b9006bd1aaddc23642406587a22467e88913d6e0 # doc/clustering: Better document healing | |
git cherry-pick 61bfb13af11b8031b1ab3fa79923ce0dcc8318f4 # incusd/instance: Track operation during creation | |
git cherry-pick fd621c3eb22501760174cdf262fdb151a7596b16 # incusd/instance: Track operation during deletion | |
git cherry-pick fb26d616930d6868626a8801fbd2f14b0fb68002 # incusd/instance: Keep track of API operations | |
git cherry-pick 2ba57b1b7976718f664d45078fb7bfe96b5973b1 # incusd/instance: Set operations on snapshot | |
git cherry-pick af106e12c5f9ba59f5785a613446b2af754689f0 # incus-migrate: Properly handle projects | |
git cherry-pick 626ff5229b749f52fdb7efd104aabaa144ce1d9f # incusd/apparmor: Allow mounting zfs when delegation is supported | |
git cherry-pick 301c36eeb44036ccca57b75b256fa4b827714525 # doc/clustering: Add howto on cluster access | |
git cherry-pick bfbb712cb74d7ee5d99ab75352db5928a62de215 # cmd/incusd: Set keep-alive timeout | |
git cherry-pick 112af836365c79c5aa7a100f65ffd12c3a2e02bb # incusd/auth/oidc: Handle cases where we can't set cookies | |
git cherry-pick 2d611a29a3f9750a67856b71ea66989ac1501947 # incusd/instance/qemu: Deref ceph config path | |
git cherry-pick 0f35cd586256496e735d8be4eace77baad4896c7 # incusd/apparmor/qemu: Guess ceph config paths | |
git cherry-pick 9151058c8a7d29992bd1c831cd6f42a87dcbec6e # incusd: Switch OVN to a getter function | |
git cherry-pick e05556493733d9498d5110fd0912e265436d4c42 # incusd/network: Port to new OVN state function | |
git cherry-pick 624c100a19c7eb878203e56bcd94b97ddd1167d9 # incusd/storage/lvm: Re-try activation/deactivation | |
git cherry-pick fb84a5862c83dd4014ba9af7521c9bd8b3b598c3 # incusd/storage/lvm: Don't activate volumes during cold migration | |
go build -o "/opt/incus/bin/fuidshift" github.com/lxc/incus/v6/cmd/fuidshift | |
go build -o "/opt/incus/bin/incus" github.com/lxc/incus/v6/cmd/incus | |
go build -o "/opt/incus/bin/incus-benchmark" github.com/lxc/incus/v6/cmd/incus-benchmark | |
go build -o "/opt/incus/bin/incus-migrate" github.com/lxc/incus/v6/cmd/incus-migrate | |
go build -o "/opt/incus/bin/incus-simplestreams" github.com/lxc/incus/v6/cmd/incus-simplestreams | |
go build -o "/opt/incus/bin/incus-user" github.com/lxc/incus/v6/cmd/incus-user | |
go build -o "/opt/incus/bin/incusd" -tags=libsqlite3 github.com/lxc/incus/v6/cmd/incusd | |
go build -o "/opt/incus/bin/lxc-to-incus" github.com/lxc/incus/v6/cmd/lxc-to-incus | |
go build -o "/opt/incus/bin/lxd-to-incus" -tags=libsqlite3 github.com/lxc/incus/v6/cmd/lxd-to-incus | |
mkdir -p /opt/incus/agent | |
if [ "$(uname -m)" = "x86_64" ]; then | |
GOARCH=amd64 CGO_ENABLED=0 go build -o "/opt/incus/agent/incus-agent.linux.x86_64" -tags=agent,netgo github.com/lxc/incus/v6/cmd/incus-agent | |
GOARCH=386 CGO_ENABLED=0 go build -o "/opt/incus/agent/incus-agent.linux.i686" -tags=agent,netgo github.com/lxc/incus/v6/cmd/incus-agent | |
elif [ "$(uname -m)" = "aarch64" ]; then | |
GOARCH=arm64 CGO_ENABLED=0 go build -o "/opt/incus/agent/incus-agent.linux.aarch64" -tags=agent,netgo github.com/lxc/incus/v6/cmd/incus-agent | |
fi | |
make build-mo | |
mkdir -p /opt/incus/share/locale | |
cp po/*.mo /opt/incus/share/locale/ | |
make doc | |
cp -R doc/html /opt/incus/doc | |
mkdir -p /opt/incus/share/bash_completion.d/ | |
/opt/incus/bin/incus completion bash > /opt/incus/share/bash_completion.d/incus | |
- name: Build UI (canonical) | |
run: | | |
REPO="${PWD}" | |
cd /build/incus-ui-canonical | |
# Specific tweaking | |
git am "${REPO}/patches/ui-canonical-0001-Branding.patch" | |
git am "${REPO}/patches/ui-canonical-0002-Update-navigation.patch" | |
git am "${REPO}/patches/ui-canonical-0003-Update-certificate-generation.patch" | |
git am "${REPO}/patches/ui-canonical-0004-Remove-external-links.patch" | |
git am "${REPO}/patches/ui-canonical-0005-Remove-Canonical-image-servers.patch" | |
git am "${REPO}/patches/ui-canonical-0006-Remove-version-check.patch" | |
git am "${REPO}/patches/ui-canonical-0007-Improve-OpenFGA-support.patch" | |
git am "${REPO}/patches/ui-canonical-0008-Update-keys-that-aren-t-VM-specific.patch" | |
git am "${REPO}/patches/ui-canonical-0009-Fix-cluster-evacuation.patch" | |
git am "${REPO}/patches/ui-canonical-0010-Rename-user.ui_title-to-user.ui.title.patch" | |
git am "${REPO}/patches/ui-canonical-0011-Add-user.uid.sso_only.patch" | |
git am "${REPO}/patches/ui-canonical-0012-Skip-LXD-identity-API.patch" | |
git am "${REPO}/patches/ui-canonical-0013-Fix-network-forward-count-logic.patch" | |
git am "${REPO}/patches/ui-canonical-0014-Hide-Cluster-option-when-not-clustered.patch" | |
git am "${REPO}/patches/ui-canonical-0015-Add-optional-location-column.patch" | |
git am "${REPO}/patches/ui-canonical-0016-Make-migration-an-action.patch" | |
git am "${REPO}/patches/ui-canonical-0017-Wait-for-projects-list-to-be-loaded.patch" | |
git am "${REPO}/patches/ui-canonical-0018-Respect-image-profile-list.patch" | |
git am "${REPO}/patches/ui-canonical-0019-Add-support-for-LVM-Cluster.patch" | |
sed -i -f "${REPO}/patches/ui-canonical-renames.sed" src/*/*.ts* src/*/*/*.ts* src/*/*/*/*.ts* src/*/*/*/*/*.ts* | |
npm install yarn --global | |
yarn install | |
yarn build | |
mkdir -p /opt/incus/ui-canonical/ | |
rsync -a /build/incus-ui-canonical/build/ui/ /opt/incus/ui-canonical/ | |
- name: Build CRIU | |
run: | | |
cd /build/criu | |
make WERROR=0 | |
cp criu/criu /opt/incus/bin/ | |
- name: Build libnvidia-container | |
run: | | |
REPO="${PWD}" | |
cd /build/libnvidia-container | |
patch -p1 < "${REPO}/patches/nvidia-0001-Fix-for-22.04-build.patch" | |
patch -p1 < "${REPO}/patches/nvidia-0002-pre-load-libdl.patch" | |
make prefix=/ | |
mkdir /build/target/libnvidia-container | |
DESTDIR=/build/target/libnvidia-container make install prefix=/ | |
rsync -a /build/target/libnvidia-container/bin/ /opt/incus/bin/ | |
rsync -a /build/target/libnvidia-container/include/ /opt/incus/include/ | |
rsync -a /build/target/libnvidia-container/lib/ /opt/incus/lib/ | |
- name: Build minio | |
run: | | |
cd /build/minio | |
make build | |
cp minio /opt/incus/bin/ | |
- name: Build minio client | |
run: | | |
cd /build/mc | |
make build | |
cp mc /opt/incus/bin/ | |
- name: Build seabios | |
if: ${{ matrix.arch == 'amd64' }} | |
run: | | |
REPO="${PWD}" | |
cd /build/seabios | |
# Build a traditional seabios. | |
make clean distclean | |
echo "CONFIG_QEMU=y" >> .config | |
echo "CONFIG_QEMU_HARDWARE=y" > .config | |
echo "CONFIG_BOOTSPLASH=n" >> .config | |
echo "CONFIG_ROM_SIZE=256" >> .config | |
echo "CONFIG_XEN=n" >> .config | |
echo "CONFIG_PVSCSI=n" >> .config | |
echo "CONFIG_ESP_SCSI=n" >> .config | |
echo "CONFIG_LSI_SCSI=n" >> .config | |
echo "CONFIG_MEGASAS=n" >> .config | |
echo "CONFIG_MPT_SCSI=n" >> .config | |
echo "CONFIG_FLOPPY=n" >> .config | |
echo "CONFIG_FLASH_FLOPPY=n" >> .config | |
make oldnoconfig V=1 | |
make V=1 PYTHON=python3 | |
mkdir -p /opt/incus/share/qemu/ | |
cp out/bios.bin /opt/incus/share/qemu/seabios.bin | |
- name: Build nasm | |
run: | | |
REPO="${PWD}" | |
cd /build/nasm | |
patch -p1 < "${REPO}/patches/nasm-0000-disable-manpages.patch" | |
./configure --prefix=/opt/incus | |
make | |
mkdir -p /build/target/nasm/ | |
DESTDIR=/build/target/nasm make install | |
rsync -a /build/target/nasm/opt/incus/bin/ /opt/incus/bin/ | |
- name: Build EDK2 | |
run: | | |
REPO="${PWD}" | |
cd /build/edk2 | |
patch -p1 < "${REPO}/patches/edk2-0001-force-DUID-LLT.patch" | |
cp "${REPO}/patches/edk2-0002-logo.bmp" MdeModulePkg/Logo/Logo.bmp | |
patch -p1 < "${REPO}/patches/edk2-0003-boot-delay.patch" | |
patch -p1 < "${REPO}/patches/edk2-0004-gcc-errors.patch" | |
patch -p1 < "${REPO}/patches/edk2-0005-Revert-ArmVirtPkg-make-EFI_LOADER_DATA-non-executabl.patch" | |
patch -p1 < "${REPO}/patches/edk2-0006-disable-EFI-memory-attributes-protocol.patch" | |
patch -p1 < "${REPO}/patches/edk2-0007-disable-UEFI-shell-under-SecureBoot.patch" | |
EDK2_ARCH="X64" | |
EDK2_PKG="OvmfPkg/OvmfPkgX64.dsc" | |
EDK2_FV_CODE="OVMF_CODE" | |
EDK2_FV_VARS="OVMF_VARS" | |
if [ "$(uname -m)" = "aarch64" ]; then | |
EDK2_ARCH="AARCH64" | |
EDK2_PKG="ArmVirtPkg/ArmVirtQemu.dsc" | |
EDK2_FV_CODE="QEMU_EFI" | |
EDK2_FV_VARS="QEMU_VARS" | |
fi | |
build_edk2() { | |
TARGET_CODE="$1" | |
shift | |
TARGET_VARS="$1" | |
shift | |
set -ex | |
( | |
cat << EOF | |
. ./edksetup.sh | |
make -C BaseTools ARCH=${EDK2_ARCH} | |
build -a ${EDK2_ARCH} -t GCC5 -b RELEASE -p ${EDK2_PKG} \ | |
-DSMM_REQUIRE=FALSE \ | |
-DSECURE_BOOT_ENABLE=TRUE \ | |
-DNETWORK_IP4_ENABLE=TRUE \ | |
-DNETWORK_IP6_ENABLE=TRUE \ | |
-DNETWORK_TLS_ENABLE=TRUE \ | |
-DNETWORK_HTTP_BOOT_ENABLE=TRUE \ | |
-DTPM2_ENABLE=TRUE \ | |
-DTPM2_CONFIG_ENABLE=TRUE \ | |
$@ | |
EOF | |
) | bash -e | |
cp Build/*/*/FV/${EDK2_FV_CODE}.fd "${TARGET_CODE}" | |
cp Build/*/*/FV/${EDK2_FV_VARS}.fd "${TARGET_VARS}" | |
if [ "$(uname -m)" = "aarch64" ]; then | |
truncate -s 64m "${TARGET_CODE}" | |
truncate -s 64m "${TARGET_VARS}" | |
fi | |
} | |
mkdir -p "/opt/incus/share/qemu/" | |
build_edk2 \ | |
"/opt/incus/share/qemu/OVMF_CODE.4MB.fd" \ | |
"/opt/incus/share/qemu/OVMF_VARS.4MB.fd" \ | |
-DFD_SIZE_4MB | |
ln -s OVMF_CODE.4MB.fd /opt/incus/share/qemu/OVMF_CODE.fd | |
ln -s OVMF_VARS.4MB.fd /opt/incus/share/qemu/OVMF_VARS.fd | |
- name: Build libtmps | |
run: | | |
cd /build/libtpms | |
./autogen.sh | |
./configure --prefix=/opt/incus --with-tpm2 --with-openssl | |
make | |
mkdir -p /build/target/libtpms/ | |
DESTDIR=/build/target/libtpms make install | |
rsync -a /build/target/libtpms/opt/incus/include/ /opt/incus/include/ | |
rsync -a /build/target/libtpms/opt/incus/lib/ /opt/incus/lib/ | |
- name: Build swtpm | |
run: | | |
cd /build/swtpm | |
./autogen.sh | |
./configure --prefix=/opt/incus --with-seccomp --with-openssl --without-cuse | |
make | |
mkdir -p /build/target/swtpm/ | |
DESTDIR=/build/target/swtpm make install | |
rsync -a /build/target/swtpm/opt/incus/bin/ /opt/incus/bin/ | |
rsync -a /build/target/swtpm/opt/incus/include/ /opt/incus/include/ | |
rsync -a /build/target/swtpm/opt/incus/lib/ /opt/incus/lib/ | |
- name: Build virtiofsd | |
run: | | |
cd /build/virtiofsd | |
cargo build --release | |
cp target/release/virtiofsd /opt/incus/bin/ | |
- name: Build QEMU | |
run: | | |
cd /build/qemu | |
sed -i "s/^unset target_list$/target_list=\"$(uname -m)-softmmu\"/" configure | |
sed -i 's#libseccomp_minver=".*#libseccomp_minver="0.0"#g' configure | |
./configure \ | |
--prefix=/opt/incus \ | |
--libexecdir=bin \ | |
--libdir=lib \ | |
--disable-bochs \ | |
--disable-cloop \ | |
--disable-dmg \ | |
--disable-docs \ | |
--disable-guest-agent \ | |
--disable-parallels \ | |
--disable-qed \ | |
--disable-slirp \ | |
--disable-user \ | |
--disable-vdi \ | |
--disable-vnc \ | |
--disable-xen \ | |
--disable-install-blobs \ | |
--enable-attr \ | |
--enable-cap-ng \ | |
--enable-kvm \ | |
--enable-libusb \ | |
--enable-usb-redir \ | |
--enable-linux-aio \ | |
--enable-linux-io-uring \ | |
--enable-numa \ | |
--enable-pie \ | |
--enable-rbd \ | |
--enable-seccomp \ | |
--enable-spice \ | |
--enable-system \ | |
--enable-tcg \ | |
--enable-tools \ | |
--enable-vhost-crypto \ | |
--enable-vhost-kernel \ | |
--enable-vhost-net \ | |
--enable-vhost-user \ | |
--enable-virtfs | |
make | |
mkdir /build/target/qemu/ | |
DESTDIR=/build/target/qemu/ make install | |
rsync -a /build/target/qemu/opt/incus/bin/ /opt/incus/bin/ | |
rsync -a /build/target/qemu/opt/incus/lib/ /opt/incus/lib/ | |
rsync -a /build/target/qemu/opt/incus/share/qemu/ /opt/incus/share/qemu/ | |
cp /build/qemu/pc-bios/kvmvapic.bin /opt/incus/share/qemu/ | |
cp /build/qemu/pc-bios/vgabios-qxl.bin /opt/incus/share/qemu/ | |
cp /build/qemu/pc-bios/vgabios-virtio.bin /opt/incus/share/qemu/ | |
cp /build/qemu/pc-bios/efi-virtio.rom /opt/incus/share/qemu/ | |
- name: Build Secure Boot firmware | |
run: | | |
REPO="${PWD}" | |
cd /build/edk2 | |
FIRMWARE="OVMF" | |
if [ "$(uname -m)" = "aarch64" ]; then | |
FIRMWARE="AAVMF" | |
fi | |
cd "${REPO}/edk2-vars-generator" | |
./edk2-vars-generator -f "${FIRMWARE}" \ | |
-e /build/edk2/Build/*/*/*/EnrollDefaultKeys.efi \ | |
-s /build/edk2/Build/*/*/*/Shell.efi \ | |
-c "/opt/incus/share/qemu/OVMF_CODE.4MB.fd" \ | |
-V "/opt/incus/share/qemu/OVMF_VARS.4MB.fd" \ | |
-C "$(cat ${REPO}/zabbly-sb.oem.crt)" \ | |
-o "/opt/incus/share/qemu/OVMF_VARS.4MB.ms.fd" | |
- name: Systemd units | |
run: | | |
cp systemd/*.service systemd/*.socket /opt/incus/lib/systemd/system/ | |
cp systemd/incusd /opt/incus/lib/systemd/ | |
cp systemd/incus-startup /opt/incus/lib/systemd/ | |
cp systemd/incus-user /opt/incus/lib/systemd/ | |
- name: Strip and cleanup binaries | |
run: | | |
rm -Rf /opt/incus/lib/debug/ | |
rm -Rf /opt/incus/include/ | |
rm -Rf /opt/incus/lib/pkgconfig/ | |
rm /opt/incus/lib/*.a /opt/incus/lib/*.la /opt/incus/lib/*/*.a /opt/incus/lib/*/*.la | |
rm /opt/incus/bin/nasm | |
rm /opt/incus/bin/ndisasm | |
rm /opt/incus/bin/qemu-bridge-helper | |
rm /opt/incus/bin/qemu-edid | |
rm /opt/incus/bin/qemu-io | |
rm /opt/incus/bin/qemu-nbd | |
rm /opt/incus/bin/qemu-pr-helper | |
rm /opt/incus/bin/qemu-storage-daemon | |
rm /opt/incus/bin/swtpm_* | |
rm /opt/incus/share/qemu/trace-events-all | |
strip /opt/incus/bin/* | |
strip /opt/incus/lib/*so* | |
- name: Make a Debian package | |
env: | |
PKGOS: ${{ matrix.os }} | |
run: | | |
[ "${PKGOS}" = "debian-11" ] && CODENAME=bullseye | |
[ "${PKGOS}" = "debian-12" ] && CODENAME=bookworm | |
[ "${PKGOS}" = "ubuntu-20.04" ] && CODENAME=focal | |
[ "${PKGOS}" = "ubuntu-22.04" ] && CODENAME=jammy | |
[ "${PKGOS}" = "ubuntu-24.04" ] && CODENAME=noble | |
mkdir -p pkg/ pkg/lib/systemd/ pkg/opt/ pkg/usr/bin/ pkg/usr/share/bash-completion/completions/ | |
cp -R debian pkg/debian | |
cp bin/* pkg/usr/bin/ | |
cp -R /opt/incus pkg/opt/ | |
cp -R etc pkg/etc | |
mv pkg/opt/incus/lib/systemd/system pkg/lib/systemd/system | |
ln -s /opt/incus/share/bash_completion.d/incus pkg/usr/share/bash-completion/completions/incus | |
ln -s /opt/incus/bin/lxd-to-incus pkg/usr/bin/lxd-to-incus | |
ln -s /opt/incus/bin/fuidshift pkg/usr/bin/fuidshift | |
ln -s /opt/incus/bin/incus-migrate pkg/usr/bin/incus-migrate | |
ln -s /opt/incus/bin/incus-simplestreams pkg/usr/bin/incus-simplestreams | |
mkdir -p pkg/var/lib/incus | |
chmod 711 pkg/var/lib/incus | |
mkdir -p pkg/var/log/incus | |
chmod 700 pkg/var/log/incus | |
mkdir -p pkg/usr/share/locale | |
for i in /opt/incus/share/locale/*.mo; do | |
LANG=$(echo $i | sed -e "s#.*/locale/##g" -e "s#.mo\$##g") | |
mkdir -p pkg/usr/share/locale/${LANG}/LC_MESSAGES | |
ln -s ${i} pkg/usr/share/locale/${LANG}/LC_MESSAGES/incus.mo | |
done | |
cd pkg | |
dch --package incus --create -D ${CODENAME} -M -m "Automated Incus stable build" -v 1:$(echo ${INCUS_TAG} | sed -e "s/v//" -e "s/.0$//")-$(date -u +%Y%m%d%H%M)-$(echo ${PKGOS} | sed "s/-//g") --force-distribution | |
dpkg-buildpackage -b | |
cd .. | |
mkdir out | |
mv incus_* out/ | |
mv incus-base_* out/ | |
mv incus-client_* out/ | |
mv incus-extra_* out/ | |
mv incus-ui-canonical_* out/ | |
- name: Upload resulting build | |
uses: actions/upload-artifact@v3 | |
continue-on-error: true | |
with: | |
name: ${{ matrix.os }}-${{ matrix.arch }} | |
path: out/* |