Linux lhjmq-records 5.15.0-118-generic #128-Ubuntu SMP Fri Jul 5 09:28:59 UTC 2024 x86_64
Your IP : 18.226.186.109
Current Path : /snap/lxd/29351/snap/ |
| Current File : //snap/lxd/29351/snap/snapcraft.yaml |
apps:
activate:
command: commands/daemon.activate
daemon: oneshot
plugs:
- lxd-support
- system-observe
benchmark:
command: commands/lxd-benchmark
plugs:
- lxd-support
- system-observe
buginfo:
command: commands/buginfo
plugs:
- lxd-support
- system-observe
check-kernel:
command: commands/lxd-check-kernel
plugs:
- lxd-support
- system-observe
daemon:
command: commands/daemon.start
daemon: simple
plugs:
- lxd-support
- network-bind
- system-observe
reload-command: commands/daemon.reload
restart-condition: on-failure
slots:
- lxd
sockets:
unix:
listen-stream: $SNAP_COMMON/lxd/unix.socket
socket-mode: 432
stop-command: commands/daemon.stop
stop-timeout: 600s
lxc:
command: commands/lxc
completer: etc/bash_completion.d/snap.lxd.lxc
plugs:
- lxd-support
- system-observe
lxc-to-lxd:
command: commands/lxc-to-lxd
plugs:
- lxd-support
- system-observe
lxd:
command: commands/lxd
plugs:
- lxd-support
- system-observe
migrate:
command: commands/lxd-migrate
plugs:
- lxd-support
- system-observe
user-daemon:
command: commands/lxd-user
daemon: simple
plugs:
- lxd-support
- network-bind
- system-observe
restart-condition: on-failure
sockets:
unix:
listen-stream: $SNAP_COMMON/lxd-user/unix.socket
socket-mode: 432
stop-timeout: 600s
assumes:
- snapd2.39
base: core20
confinement: strict
contact: lxd@lists.canonical.com
description: |-
LXD is a system container and virtual machine manager.
It offers a simple CLI and REST API to manage local or remote instances,
uses an image based workflow and support for a variety of advanced features.
Images are available for all Ubuntu releases and architectures as well
as for a wide number of other Linux distributions. Existing
integrations with many deployment and operation tools, makes it work
just like a public cloud, except everything is under your control.
LXD containers are lightweight, secure by default and a great
alternative to virtual machines when running Linux on Linux.
LXD virtual machines are modern and secure, using UEFI and secure-boot
by default and a great choice when a different kernel or operating
system is needed.
With clustering, up to 50 LXD servers can be easily joined and managed
together with the same tools and APIs and without needing any external
dependencies.
Supported configuration options for the snap (snap set lxd [<key>=<value>...]):
- ceph.builtin: Use snap-specific Ceph configuration [default=false]
- ceph.external: Use the system's ceph tools (ignores ceph.builtin) [default=false]
- criu.enable: Enable experimental live-migration support [default=false]
- daemon.debug: Increase logging to debug level [default=false]
- daemon.group: Set group of users that have full control over LXD [default=lxd]
- daemon.user.group: Set group of users that have restricted LXD access [default=lxd]
- daemon.preseed: Pass a YAML configuration to `lxd init` on initial start
- daemon.syslog: Send LXD log events to syslog [default=false]
- daemon.verbose: Increase logging to verbose level [default=false]
- lvm.external: Use the system's LVM tools [default=false]
- lxcfs.pidfd: Start per-container process tracking [default=false]
- lxcfs.loadavg: Start tracking per-container load average [default=false]
- lxcfs.cfs: Consider CPU shares for CPU usage [default=false]
- lxcfs.debug: Increase logging to debug level [default=false]
- openvswitch.builtin: Run a snap-specific OVS daemon [default=false]
- openvswitch.external: Use the system's OVS tools (ignores openvswitch.builtin) [default=false]
- ovn.builtin: Use snap-specific OVN configuration [default=false]
- shiftfs.enable: Enable shiftfs support [default=auto]
- ui.enable: Enable the web interface [default=false]
For system-wide configuration of the CLI, place your configuration in
/var/snap/lxd/common/global-conf/ (config.yml and servercerts)
grade: stable
hooks:
configure:
plugs:
- lxd-support
- network
- system-observe
remove:
plugs:
- lxd-support
- system-observe
issues: https://github.com/canonical/lxd/issues
name: lxd
parts:
btrfs:
build-attributes:
- core22-step-dependencies
organize:
sbin/: bin/
plugin: nil
prime:
- bin/btrfs
- bin/btrfstune
- bin/mkfs.btrfs
source: snapcraft/empty
stage-packages:
- btrfs-progs
ceph:
build-attributes:
- core22-step-dependencies
organize:
usr/bin/: bin/
usr/lib/: lib/
plugin: nil
prime:
- bin/ceph
- bin/radosgw-admin
- bin/rbd
- lib/*/ceph
- lib/*/libasn1.so*
- lib/*/libatomic.so*
- lib/*/libboost_context.so*
- lib/*/libboost_iostreams.so*
- lib/*/libboost_program_options.so*
- lib/*/libboost_thread.so*
- lib/*/libbrotlicommon.so*
- lib/*/libbrotlidec.so*
- lib/*/libcephfs*
- lib/*/libcurl-gnutls*
- lib/*/libgssapi.so*
- lib/*/libhcrypto.so*
- lib/*/libheimbase.so*
- lib/*/libheimntlm.so*
- lib/*/libhx509.so*
- lib/*/libibverbs.so*
- lib/*/libkrb5.so*
- lib/*/liblber-2.4.so*
- lib/*/libldap_r-2.4.so*
- lib/*/libnghttp2.so*
- lib/*/libpsl.so*
- lib/*/librabbitmq.so*
- lib/*/librados.so*
- lib/*/librbd.so*
- lib/*/librdmacm.so*
- lib/*/libroken.so*
- lib/*/librtmp.so*
- lib/*/libsasl2.so*
- lib/*/libsnappy.so*
- lib/*/libssh.so*
- lib/*/libwind.so*
- lib/liboath.so*
- lib/python3
source: snapcraft/empty
stage-packages:
- ceph-common
criu:
build-attributes:
- core22-step-dependencies
build-packages:
- asciidoc
- libcap-dev
- libnet1-dev
- libnl-3-dev
- libprotobuf-c-dev
- libprotobuf-dev
- protobuf-c-compiler
- protobuf-compiler
- xmlto
organize:
usr/lib/: lib/
override-build: |
set -ex
[ "$(uname -m)" != "x86_64" ] && \
[ "$(uname -m)" != "armv7l" ] && \
[ "$(uname -m)" != "aarch64" ] && \
[ "$(uname -m)" != "s390x" ] && \
[ "$(uname -m)" != "ppc64le" ] && exit 0
make
mkdir -p "${SNAPCRAFT_PART_INSTALL}/criu/"
cp criu/criu "${SNAPCRAFT_PART_INSTALL}/criu/"
plugin: nil
prime:
- criu/*
- lib/*/libnet*
- lib/*/libproto*
source: https://github.com/checkpoint-restore/criu
source-depth: 1
source-tag: v3.19
source-type: git
stage-packages:
- libnet1
- libprotobuf-c1
dqlite:
after:
- raft
- sqlite
autotools-configure-parameters:
- --prefix=
build-attributes:
- core22-step-dependencies
build-packages:
- libuv1-dev
organize:
usr/lib/: lib/
plugin: autotools
prime:
- lib/libdqlite*so*
- lib/*/libuv*
source: https://github.com/canonical/dqlite
source-depth: 1
source-tag: v1.15.1
source-type: git
stage-packages:
- libuv1
edk2:
after:
- nasm
build-attributes:
- core22-step-dependencies
build-packages:
- on amd64:
- acpica-tools
- uuid-dev
- on arm64:
- acpica-tools
- uuid-dev
override-build: |-
[ "$(uname -m)" != "x86_64" ] && [ "$(uname -m)" != "aarch64" ] && exit 0
# Fix submodules
sed -i "s#https://git.cryptomilk.org/projects/cmocka#https://gitlab.com/cmocka/cmocka#g" .gitmodules
git submodule update --init --recursive
# Apply patches
patch -p1 < "${SNAPCRAFT_PROJECT_DIR}/patches/edk2-0001-force-DUID-LLT.patch"
cp "${SNAPCRAFT_PROJECT_DIR}/patches/edk2-0002-logo.bmp" MdeModulePkg/Logo/Logo.bmp
patch -p1 < "${SNAPCRAFT_PROJECT_DIR}/patches/edk2-0003-boot-delay.patch"
patch -p1 < "${SNAPCRAFT_PROJECT_DIR}/patches/edk2-0004-gcc-errors.patch"
ARCH="X64"
PKG="OvmfPkg/OvmfPkgX64.dsc"
FV_CODE="OVMF_CODE"
FV_VARS="OVMF_VARS"
if [ "$(uname -m)" = "aarch64" ]; then
ARCH="AARCH64"
PKG="ArmVirtPkg/ArmVirtQemu.dsc"
FV_CODE="QEMU_EFI"
FV_VARS="QEMU_VARS"
fi
# Run in a bash sub-shell as edksetup.sh requires it
set -ex
(
cat << EOF
. ./edksetup.sh
make -C BaseTools ARCH=${ARCH}
build -a ${ARCH} -t GCC49 -b RELEASE -p ${PKG} \
-DSECURE_BOOT_ENABLE=TRUE \
-DNETWORK_IP4_ENABLE=TRUE \
-DNETWORK_IP6_ENABLE=TRUE \
-DNETWORK_TLS_ENABLE=TRUE \
-DNETWORK_HTTP_BOOT_ENABLE=TRUE \
-DFD_SIZE_2MB \
-DTPM_ENABLE=TRUE \
-DTPM_CONFIG_ENABLE=TRUE \
-DTPM2_ENABLE=TRUE \
-DTPM2_CONFIG_ENABLE=TRUE
EOF
) | bash -e
mkdir -p "${SNAPCRAFT_PART_INSTALL}/share/qemu/"
cp Build/*/*/FV/${FV_CODE}.fd "${SNAPCRAFT_PART_INSTALL}/share/qemu/OVMF_CODE.fd"
cp Build/*/*/FV/${FV_VARS}.fd "${SNAPCRAFT_PART_INSTALL}/share/qemu/OVMF_VARS.fd"
if [ "$(uname -m)" = "aarch64" ]; then
truncate -s 64m "${SNAPCRAFT_PART_INSTALL}/share/qemu/OVMF_CODE.fd"
truncate -s 64m "${SNAPCRAFT_PART_INSTALL}/share/qemu/OVMF_VARS.fd"
fi
override-pull: |-
[ "$(uname -m)" != "x86_64" ] && [ "$(uname -m)" != "aarch64" ] && exit 0
set -ex
git clone https://github.com/tianocore/edk2 . -b edk2-stable202208
git config user.email "noreply@lists.canonical.com"
git config user.name "LXD snap builder"
plugin: nil
prime:
- share/qemu/*
source: https://github.com/tianocore/edk2
source-depth: 1
source-tag: IRRELEVANT
source-type: git
libmnl:
autotools-configure-parameters:
- --prefix=
build-attributes:
- core22-step-dependencies
organize:
usr/lib/: lib/
plugin: autotools
prime:
- lib/libmnl*so*
source: https://git.netfilter.org/libmnl
source-tag: libmnl-1.0.5
source-type: git
libnftnl:
after:
- libmnl
autotools-configure-parameters:
- --prefix=
build-attributes:
- core22-step-dependencies
organize:
usr/lib/: lib/
override-build: |
snapcraftctl build
sed -i "s# /lib/libmnl.la# ${SNAPCRAFT_STAGE}/lib/libmnl.la#g" "${SNAPCRAFT_PART_INSTALL}/lib/libnftnl.la"
plugin: autotools
prime:
- lib/libnftnl*so*
source: https://git.netfilter.org/libnftnl
source-tag: libnftnl-1.2.6
source-type: git
libseccomp:
autotools-configure-parameters:
- --prefix=
build-attributes:
- core22-step-dependencies
build-packages:
- gperf
organize:
usr/lib/: lib/
plugin: autotools
prime:
- lib/libseccomp*so*
source: https://github.com/seccomp/libseccomp
source-depth: 1
source-tag: v2.5.5
source-type: git
libtpms:
autotools-configure-parameters:
- --prefix=
- --with-tpm2
- --with-openssl
build-attributes:
- core22-step-dependencies
organize:
usr/lib/: lib/
plugin: autotools
prime:
- lib/libtpms*so*
source: https://github.com/stefanberger/libtpms
source-depth: 1
source-tag: v0.9.6
source-type: git
liburing:
autotools-configure-parameters:
- --prefix=
build-attributes:
- core22-step-dependencies
organize:
usr/lib/: lib/
override-build: |-
[ "$(uname -m)" != "x86_64" ] && [ "$(uname -m)" != "aarch64" ] && [ "$(uname -m)" != "ppc64le" ] && [ "$(uname -m)" != "s390x" ] && exit 0
snapcraftctl build
plugin: autotools
prime:
- lib/liburing*so*
source: https://github.com/axboe/liburing
source-depth: 1
source-tag: liburing-2.5
source-type: git
libusb:
autotools-configure-parameters:
- --prefix=
build-attributes:
- core22-step-dependencies
organize:
usr/lib/: lib/
plugin: autotools
prime:
- lib/libusb*so*
source: https://github.com/libusb/libusb
source-depth: 1
source-tag: v1.0.26
source-type: git
logrotate:
build-attributes:
- core22-step-dependencies
organize:
usr/bin/: bin/
usr/lib/: lib/
usr/sbin/: bin/
plugin: nil
prime:
- bin/logrotate
source: snapcraft/empty
stage:
- bin/logrotate
stage-packages:
- logrotate
lvm:
build-attributes:
- core22-step-dependencies
organize:
sbin/: bin/
usr/lib/: lib/
usr/sbin/: bin/
plugin: nil
prime:
- bin/cache_*
- bin/dmeventd
- bin/era_*
- bin/lv*
- bin/pdata_tools
- bin/pv*
- bin/thin_*
- bin/vg*
- -bin/vgimportclone
- -bin/lvmconf
- -bin/lvmdump
- -bin/lvmetad
- -bin/lvmpolld
- etc/lvm/lvm.conf
- lib/*/device-mapper/*
- lib/*/libaio.so*
- lib/*/libdevmapper*
- lib/*/liblvm*
- lib/*/libreadline.so*
source: snapcraft/empty
stage-packages:
- dmeventd
- lvm2
- thin-provisioning-tools
lxc:
after:
- libseccomp
build-attributes:
- core22-step-dependencies
build-packages:
- libapparmor-dev
- libcap-dev
- libdbus-1-dev
- libgnutls28-dev
- libselinux1-dev
- pkg-config
meson-parameters:
- --prefix=/
- -Dexamples=false
- -Dman=false
- -Dtools=false
- -Dtests=false
- -Dmemfd-rexec=false
- -Dapparmor=true
- -Dseccomp=true
- -Dselinux=true
- -Dcapabilities=true
- -Drootfs-mount-path=/var/snap/lxd/common/lxc/
- -Dlibexecdir=/snap/lxd/current/libexec/
organize:
share/lxc/hooks: lxc/hooks
snap/lxd/current/libexec: libexec
snap/lxd/current/lxc: lxc
override-build: |
set -ex
cd ../src
git config user.email "noreply@lists.canonical.com"
git config user.name "LXD snap builder"
cd ../build
set +ex
snapcraftctl build
set -ex
mkdir -p $SNAPCRAFT_PART_INSTALL/lxc/config/common.conf.d/
ln -s /var/snap/lxd/common/lxc/local.conf $SNAPCRAFT_PART_INSTALL/lxc/config/common.conf.d/01-local.conf
plugin: meson
prime:
- bin/lxc-checkconfig
- lib/*/liblxc.so.1
- lib/*/liblxc.so.1.*
- lxc/config/common.conf.d
- lxc/hooks/nvidia
source: https://github.com/lxc/lxc
source-tag: lxc-5.0.3
source-type: git
lxcfs:
build-packages:
- libfuse3-dev
- libpam0g-dev
- pkg-config
- python3-jinja2
meson-parameters:
- --prefix=/
- --datadir=/snap/lxd/current/
- --localstatedir=/var/snap/lxd/common/var/
- -Ddocs=false
- -Dtests=false
organize:
lib/*/lxcfs/liblxcfs.so: lib/
snap/lxd/current/lxc/config/common.conf.d/*: lxc/config/common.conf.d/
snap/lxd/current/lxcfs/: lxcfs/
usr/lib/: lib/
override-build: |
set -ex
# Git cherry-picks
cd ../src
git config user.email "noreply@lists.canonical.com"
git config user.name "LXD snap builder"
set +ex
snapcraftctl build
set -ex
patch -p1 $SNAPCRAFT_PART_INSTALL/snap/lxd/current/lxcfs/lxc.mount.hook < "${SNAPCRAFT_PROJECT_DIR}/patches/lxcfs-0001-hook.patch"
plugin: meson
prime:
- bin/fusermount
- bin/fusermount3
- lib/*/libfuse3.so.*
- bin/lxcfs
- lib/liblxcfs.so
- lxc/config/common.conf.d/00-lxcfs.conf
- lxcfs/
source: https://github.com/lxc/lxcfs
source-tag: lxcfs-5.0.4
source-type: git
stage-packages:
- fuse3
lxd:
after:
- lxc
- dqlite
- sqlite
build-attributes:
- core22-step-dependencies
build-packages:
- libacl1-dev
- libudev-dev
- pkg-config
build-snaps:
- go/1.21/stable
organize:
sbin/: bin/
usr/bin/: bin/
usr/lib/: lib/
usr/sbin/: bin/
usr/share/misc/: share/misc/
var/lib/usbutils/usb.ids: share/misc/
override-build: |
set -ex
# Git cherry-picks
cd ../src
git config user.email "noreply@lists.canonical.com"
git config user.name "LXD snap builder"
git cherry-pick -x 827f1fce57898467b6b5d6eb909a5eb639e95c3c # lxd/storage/drivers/ceph: Restore the filesystems UUID on the volume
git cherry-pick -x 53e017a1db6a7f0667c55855b50220479f6fb827 # test/suites/storage: Add check for UUID generation on restore
git cherry-pick -x b737ae50e2590c7aa367254237f89ddc4d388ffb # lxd/storage/drivers/ceph: Restore the VM block filesystem volume too
git cherry-pick -x b61ffddda691d553eab3fbf23fb25ef2185ed6de # lxd/storage/drivers/lvm: Restore the VM block filesystem volume for thin-pools too
git cherry-pick -x 59cdc0a758b627083f729cd4b81dbb69035cb04d # lxd/storage/drivers/ceph: Double check the volumes content type
git cherry-pick -x fe71f2135bdc3aa6ea28de7ed1ac324f7d689ed6 # shared/simplestreams/products: Fix regression in parsing version files
git cherry-pick -x d3253e4cbc85b97e3bc6dba9a27fd2ab0c4d8685 # shared/simplestreams/simplestreams: Improve error messages
git cherry-pick -x 55bd4024dbfc315c0f57da57f2f9bd9c5c97dad1 # shared/simplestreams/products: Search only for lxd archives
git cherry-pick -x f1c377195a1febda39d6d99ecfbc647ffcd5d740 # lxd/rsync: Merge sendSetup and Send functions
git cherry-pick -x e1a37a5c240e068ffaff4fe20fa8af612e4143fe # lxd/rsync: Add description of cleanup function to RunWrappers
git cherry-pick -x 0fefac32ccd543494c07008eddb0bb621c94b19d # lxd/instance/drivers/driver/qemu: Don't leak file descriptor when probing for Direct I/O support
git cherry-pick -x 8e22091af07f29c0c626b1746689491c8bedbaa8 # incusd/instance/qemu: Cap hotplug CPU slots to 64
git cherry-pick -x eff4a63e9b5804066437df995fbc4fbcddf4daf0 # incusd/instance/qemu: Fix handling of > 64 limits.cpu
git cherry-pick -x 67705c0681301a2574bfbc9eef56b55c9bdccb88 # lxd: Update instance types URL
git cherry-pick -x ea99778d412f7cb3995844fcf905e0695ba9291a # lxc/config/default: Add images remote for images.lxd.canonical.com
git cherry-pick -x 8a43bac4ae9e278f2197b0eaaa229ec3c242dd02 # lxd/config/default: Add images to DefaultRemotes
git cherry-pick -x 43dfdce8d90bd029a503fe94d7609cb34359c1c2 # instance/drivers/driver_lxc: do not set "soft" limit when hard limit is set
git cherry-pick -x 79dcfe6bced1998fdf1c213a6bbad17fce6e540a # lxd/instance: Reject limits.kernel config for VMs
git cherry-pick -x 2b62f940826bfe2e18112f19e827a61f8b659c9d # lxd/device/device_utils_disk: fix diskAddRootUserNSEntry to add root mapping only if it's required
git cherry-pick -x 482241ed1f692be3c0bd45161dd0a8beca7e85c5 # lxd/network/acl: Change protocol field for ovn logs
git cherry-pick -x c35ac36962dd5cf691ff2b464055648ff8bcf463 # lxd/device/nic_ovn: Only stop device if network is populated
git cherry-pick -x 551c252d1653360ccfda981b7a9a42fc8eed5370 # lxd/storage/drivers: Always use default block.filesysem for VM volumes
git cherry-pick -x 6ae9c4e522c226efed94af447dd9e92ef658e28a # doc: pin version of myst-parser
git cherry-pick -x 6e96624b1cf707cfc5b511dd6f91b5a34d4db9a3 # lxd/storage/drivers: Add volume param to roundVolumeBlockSizeBytes
git cherry-pick -x a6e08cc8b897ea149ee5fa395cb9e242749f7db1 # lxd/storage/drivers/zfs: Round to zfs.blocksize or 16KiB
git cherry-pick -x 33d712497bfc5d6a8892bd8f6e1ddb3583bee1eb # lxd/storage/drivers: Refactor volume size rounding logic
git cherry-pick -x a7477c4cb0056efeb2ba781fad9f51230e21a664 # lxd/storage/drivers: Fix linter errors
git cherry-pick -x 3d90268df9774994a7f2807d6e3deff06a8fe145 # lxd/storage/drivers/zfs: Wait for device to appear when activating a volume
git cherry-pick -x 98c3f36f64d9f03740a3216fe7c68861e57fd917 # lxd/storage/drivers/zfs: Check for non /dev/zvol/* paths
git cherry-pick -x 27ad4c72b0ef44c70ac17267a955842f2f2e30e9 # lxd/util: Split CheckTrustState into two functions.
git cherry-pick -x 578bf456c04bc05a7b8496f6eb8fadb9d9c9c61d # lxd/cluster: Update calls to util.CheckTrustState
git cherry-pick -x dd16b59f84638d1268474fb31ccb510c84db65d3 # lxd-agent: Update calls to util.CheckTrustState.
git cherry-pick -x 879ebd254145cee5af5f51d98eee988e4eebddba # lxd: Update calls to util.CheckTrustState.
git cherry-pick -x 7af75b2749639e7a4634d6d6de6b781aa9dd1ed4 # lxd: Refactor `(*Daemon).Authenticate` method.
git cherry-pick -x dfae473d6cd8ee0df0b90c8e74a66ca4645a2b84 # lxd: Update comment on server certificate mTLS checks.
git cherry-pick -x fb0525e1bdd6a99c4eedacbe9e6c2c7b8e0d9a89 # lxd: Disallow certificate creation in CA mode if cert is not signed by CA.
git cherry-pick -x 356268c34eb17bebb8de740aaa82740d6a68ee5d # lxd/util: Update info log to indicate CA restriction applies to clients.
git cherry-pick -x 45126f2a54079799066abf6477a252605709b8e5 # shared: Set `GetClientCertificate` in TLS config.
git cherry-pick -x 52eaf3efa780d68fa51a74d9631f3c5e7a7fc879 # shared: Add comments to exported functions (revive: exported).
git cherry-pick -x 75fbdaeebea454fd074c9efac7a2c584a78762c7 # test/suites: Improve PKI test coverage.
git cherry-pick -x ce66fe3c1404c82183711bf7e35889bf19cfd5b9 # lxd/instance/exec: Only use keepalives on TCP sockets
# Setup build environment
export GOPATH=$(realpath ./.go)
export CGO_CFLAGS="-I${SNAPCRAFT_STAGE}/include/ -I${SNAPCRAFT_STAGE}/usr/local/include/"
export CGO_LDFLAGS="-L${SNAPCRAFT_STAGE}/lib/ -L${SNAPCRAFT_STAGE}/usr/local/lib/"
export CGO_LDFLAGS_ALLOW="(-Wl,-wrap,pthread_create)|(-Wl,-z,now)"
# Build the binaries
go build -o "${SNAPCRAFT_PART_INSTALL}/bin/lxc" github.com/canonical/lxd/lxc
go build -o "${SNAPCRAFT_PART_INSTALL}/bin/lxc-to-lxd" github.com/canonical/lxd/lxc-to-lxd
go build -o "${SNAPCRAFT_PART_INSTALL}/bin/lxd" -tags=libsqlite3 github.com/canonical/lxd/lxd
CGO_ENABLED=0 go build -o "${SNAPCRAFT_PART_INSTALL}/bin/lxd-agent" -tags=agent,netgo github.com/canonical/lxd/lxd-agent
go build -o "${SNAPCRAFT_PART_INSTALL}/bin/lxd-benchmark" github.com/canonical/lxd/lxd-benchmark
go build -o "${SNAPCRAFT_PART_INSTALL}/bin/lxd-user" github.com/canonical/lxd/lxd-user
# Setup bash completion
mkdir -p ${SNAPCRAFT_PART_INSTALL}/etc/bash_completion.d/
cp scripts/bash/lxd-client ${SNAPCRAFT_PART_INSTALL}/etc/bash_completion.d/snap.lxd.lxc
override-pull: |
snapcraftctl pull
set -ex
# Setup build environment
export GOPATH=$(realpath ./.go)
# Setup the GOPATH
rm -Rf "${GOPATH}"
mkdir -p "${GOPATH}/src/github.com/canonical"
ln -s "$(pwd)" "${GOPATH}/src/github.com/canonical/lxd"
# Download the dependencies
go get -d -v ./...
plugin: nil
prime:
- bin/dnsmasq
- bin/getfattr
- bin/setfattr
- bin/iw
- bin/pigz
- bin/rsync
- bin/setfacl
- bin/sgdisk
- bin/xdelta3
- lib/*/libidn.so.*
- etc/bash_completion.d/snap.lxd.lxc
- share/misc
- bin/lxc
- bin/lxc-to-lxd
- bin/lxd
- bin/lxd-agent
- bin/lxd-benchmark
- bin/lxd-user
source: https://github.com/canonical/lxd
source-tag: lxd-5.0.3
source-type: git
stage-packages:
- acl
- attr
- dnsmasq-base
- gdisk
- iw
- netbase
- pciutils
- pigz
- rsync
- squashfs-tools
- usbutils
- xdelta3
lxd-migrate:
after:
- lxd
- sqlite
build-attributes:
- core22-step-dependencies
build-snaps:
- go/1.21/stable
override-build: |
set -ex
# Setup build environment
export GOPATH=$(realpath ./.go)
export CGO_CFLAGS="-I${SNAPCRAFT_STAGE}/include/ -I${SNAPCRAFT_STAGE}/usr/local/include/"
export CGO_LDFLAGS="-L${SNAPCRAFT_STAGE}/lib/ -L${SNAPCRAFT_STAGE}/usr/local/lib/"
# Build the binaries
go build -o "${SNAPCRAFT_PART_INSTALL}/bin/lxd-migrate" -tags=libsqlite3 ./
# Install bridge script
mkdir -p ${SNAPCRAFT_PART_INSTALL}/bin/
cp scripts/upgrade-bridge ${SNAPCRAFT_PART_INSTALL}/bin/upgrade-bridge
override-pull: |
snapcraftctl pull
set -ex
# Setup build environment
export GOPATH=$(realpath ./.go)
# Download the dependencies
go get -d -v ./...
plugin: nil
prime:
- bin/lxd-migrate
- bin/upgrade-bridge
source: lxd-migrate/
lxd-ui:
override-build: |
[ "$(uname -m)" = "riscv64" ] && exit 0
set -ex
patch -p1 < "${SNAPCRAFT_PROJECT_DIR}/patches/lxd-ui-0.5-lxd-5.0-compat.patch"
npm install yarn --global
yarn install
yarn build
mkdir -p "${SNAPCRAFT_PART_INSTALL}/share"
cp -R build/ui "${SNAPCRAFT_PART_INSTALL}/share/lxd-ui/"
override-pull: |
[ "$(uname -m)" = "riscv64" ] && exit 0
snapcraftctl pull
set -ex
snap install node --channel=18/stable --classic || true
plugin: nil
prime:
- share/lxd-ui*
source: https://github.com/canonical/lxd-ui
source-tag: "0.5"
source-type: git
nano:
build-attributes:
- core22-step-dependencies
organize:
usr/bin/: bin/
plugin: nil
prime:
- bin/nano
- etc/nanorc
source: snapcraft/empty
stage-packages:
- nano
nasm:
autotools-configure-parameters:
- --prefix=
build-attributes:
- core22-step-dependencies
organize:
usr/bin/: bin/
override-build: |
patch -p1 < "${SNAPCRAFT_PROJECT_DIR}/patches/nasm-0000-disable-manpages.patch"
snapcraftctl build
plugin: autotools
prime:
- bin/nasm
source: https://github.com/netwide-assembler/nasm
source-depth: 1
source-tag: nasm-2.15.05
source-type: git
nftables:
after:
- libmnl
- libnftnl
autotools-configure-parameters:
- --prefix=
- --with-json
build-attributes:
- core22-step-dependencies
build-packages:
- libedit-dev
- libjansson-dev
- libreadline-dev
organize:
sbin/: bin/
usr/lib/: lib/
override-build: |
set -ex
git config user.email "noreply@lists.canonical.com"
git config user.name "LXD snap builder"
set +ex
snapcraftctl build
set -ex
plugin: autotools
prime:
- bin/nft
- lib/*/libjansson*so*
- lib/libnftables*so*
source: https://git.netfilter.org/nftables
source-tag: v1.0.9
source-type: git
stage-packages:
- libjansson4
nvidia-container:
after:
- libseccomp
build-attributes:
- core22-step-dependencies
build-packages:
- bmake
- curl
- lsb-release
organize:
usr/local/bin/nvidia-container-cli: bin/nvidia-container-cli.real
usr/local/lib: lib/
override-build: |-
set -ex
[ "$(uname -m)" != "x86_64" ] && [ "$(uname -m)" != "aarch64" ] && exit 0
git config user.email "noreply@lists.canonical.com"
git config user.name "LXD snap builder"
mkdir -p "${SNAPCRAFT_PART_INSTALL}/bin/"
cp ${SNAPCRAFT_PROJECT_DIR}/snapcraft/wrappers/nvidia-container-cli "${SNAPCRAFT_PART_INSTALL}/bin/"
set +ex
snapcraftctl build
plugin: make
prime:
- bin/nvidia-container-cli*
- lib/libnvidia-container*.so*
source: https://github.com/NVIDIA/libnvidia-container
source-depth: 1
source-tag: v1.14.3
source-type: git
openvswitch:
autotools-configure-parameters:
- --enable-ssl
- --prefix=
build-attributes:
- core22-step-dependencies
organize:
sbin/: bin/
usr/bin/: bin/
override-build: |
set -ex
git config user.email "noreply@lists.canonical.com"
git config user.name "LXD snap builder"
set +ex
snapcraftctl build
set -ex
plugin: autotools
prime:
- bin/ovs-appctl
- bin/ovs-vsctl
- bin/ovs-vswitchd
- bin/ovsdb-*
- bin/uuidgen
- share/openvswitch/
source: https://github.com/openvswitch/ovs
source-depth: 1
source-tag: v3.2.1
source-type: git
stage-packages:
- uuid-runtime
ovn:
after:
- openvswitch
autotools-configure-parameters:
- --enable-ssl
- --prefix=
- --with-ovs-source=../../openvswitch/build/
build-attributes:
- core22-step-dependencies
plugin: autotools
prime:
- bin/ovn-nbctl
- bin/ovn-sbctl
source: https://github.com/ovn-org/ovn
source-depth: 1
source-tag: v23.09.1
source-type: git
pull-meson-early:
override-build: |
# No-op
true
override-pull: |
# Fetch meson early to cause all downloads at the beginning of the build.
python3 -m pip install -U meson
override-stage: |
# No-op
true
plugin: nil
source: snapcraft/empty
qemu:
after:
- libseccomp
- liburing
- libusb
- spice-protocol
- spice-server
autotools-configure-parameters:
- --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
- --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
- --firmwarepath=/snap/lxd/current/share/qemu/
- --localstatedir=/var/
build-attributes:
- core22-step-dependencies
build-packages:
- bison
- flex
- pkg-config
- libaio-dev
- libcap-ng-dev
- libglib2.0-dev
- libnuma-dev
- libpixman-1-dev
- librbd-dev
- libusbredirhost-dev
organize:
usr/bin/: bin/
usr/lib/: lib/
usr/local/bin/: bin/
usr/local/lib/: lib/
usr/local/libexec/: bin/
usr/local/share/: share/
override-build: |-
[ "$(uname -m)" != "x86_64" ] && [ "$(uname -m)" != "aarch64" ] && [ "$(uname -m)" != "ppc64le" ] && [ "$(uname -m)" != "s390x" ] && exit 0
set -ex
# Mangle the configure a bit
QEMUARCH="$(uname -m)"
[ "${QEMUARCH}" = "ppc64le" ] && QEMUARCH="ppc64"
sed -i "s/^unset target_list$/target_list=\"${QEMUARCH}-softmmu\"/" configure
sed -i 's#libseccomp_minver=".*#libseccomp_minver="0.0"#g' configure
set +ex
snapcraftctl build
override-pull: |-
[ "$(uname -m)" != "x86_64" ] && [ "$(uname -m)" != "aarch64" ] && [ "$(uname -m)" != "ppc64le" ] && [ "$(uname -m)" != "s390x" ] && exit 0
set -ex
git clone https://gitlab.com/qemu/qemu . -b v8.0.5
plugin: autotools
prime:
- bin/genisoimage*
- bin/mkisofs*
- bin/qemu-system-*
- bin/qemu-img*
- bin/virtfs-proxy-helper*
- lib/*/libatomic.so*
- lib/*/libmagic*so*
- lib/*/libnuma*so*
- lib/*/libpixman*so*
- lib/*/libusbredir*so*
- share/qemu/keymaps*
- share/qemu/efi-virtio.rom*
- share/qemu/kvmvapic.bin*
- share/qemu/s390-*.img*
- share/qemu/slof.bin*
- share/qemu/vgabios-*.bin*
source: IRRELEVANT
source-depth: 1
source-tag: IRRELEVANT
source-type: git
stage-packages:
- genisoimage
- libatomic1
- libmagic1
- libnuma1
- libpixman-1-0
- libusbredirhost1
- libusbredirparser1
qemu-ovmf-secureboot:
after:
- edk2
- qemu
build-attributes:
- core22-step-dependencies
build-packages:
- xorriso
override-build: |-
[ "$(uname -m)" != "x86_64" ] && [ "$(uname -m)" != "aarch64" ] && exit 0
export ARCH="$(basename $(readlink -f ${SNAPCRAFT_STAGE}/lib/*-linux-gnu*/))"
export LD_LIBRARY_PATH="${SNAPCRAFT_STAGE}/lib:${SNAPCRAFT_STAGE}/lib/${ARCH}"
set -ex
rm -Rf iso-root vfat-root shell.iso
mkdir -p iso-root vfat-root/efi/boot
cp ../../edk2/build/Build/*/*/*/Shell.efi vfat-root/efi/boot/bootx64.efi
cp ../../edk2/build/Build/*/*/*/EnrollDefaultKeys.efi vfat-root/
"${SNAPCRAFT_STAGE}/bin/qemu-img" convert --image-opts driver=vvfat,floppy=on,fat-type=12,label=UEFI_SHELL,dir=vfat-root iso-root/shell.img
xorriso --as mkisofs -input-charset ASCII -J -rational-rock -e shell.img -no-emul-boot -o shell.iso iso-root/
# Basic aarch64 support
if [ "$(uname -m)" = "aarch64" ]; then
sed -i ovmf-vars-generator \
-e "s/'-machine', machinetype,/'-machine', 'virt', '-cpu', 'cortex-a57',/" \
-e "/charserial1/d" \
-e "s/ide-cd/scsi-cd/" \
-e "s/'-device',$/'-device', 'virtio-scsi-pci,id=scsi', '-device',/"
elif [ "$(uname -m)" = "x86_64" ]; then
cp -f "${SNAPCRAFT_STAGE}/share/qemu/kvmvapic.bin" .
fi
mkdir -p "${SNAPCRAFT_PART_INSTALL}/share/qemu/"
python3 ovmf-vars-generator \
--qemu-binary "${SNAPCRAFT_STAGE}/bin/qemu-system-$(uname -m)" \
--print-output --disable-smm --skip-testing \
--oem-string "$(cat ${SNAPCRAFT_PROJECT_DIR}/snapcraft/etc/ubuntu-sb.crt)" \
--ovmf-binary "${SNAPCRAFT_STAGE}/share/qemu/OVMF_CODE.fd" \
--ovmf-template-vars "${SNAPCRAFT_STAGE}/share/qemu/OVMF_VARS.fd" \
--uefi-shell-iso shell.iso \
"${SNAPCRAFT_PART_INSTALL}/share/qemu/OVMF_VARS.ms.fd"
plugin: nil
prime:
- share/qemu/*
source: https://github.com/puiterwijk/qemu-ovmf-secureboot
source-commit: 4da81a4cbdd6d96b7a653239865d3b1d92cc6117
source-depth: 1
source-type: git
raft:
autotools-configure-parameters:
- --prefix=
build-attributes:
- core22-step-dependencies
build-packages:
- libuv1-dev
- liblz4-dev
organize:
usr/lib/: lib/
plugin: autotools
prime:
- lib/libraft*so*
- lib/*/libuv.so*
source: https://github.com/canonical/raft
source-depth: 1
source-tag: v0.18.0
source-type: git
stage-packages:
- libuv1
- liblz4-1
shmounts:
build-attributes:
- core22-step-dependencies
plugin: make
prime:
- bin/setup-shmounts
source: shmounts/
snap-query:
build-attributes:
- core22-step-dependencies
build-snaps:
- go/1.21/stable
override-build: |
set -ex
# Setup build environment
export GOPATH=$(realpath ./.go)
# Build the binaries
go build -o "${SNAPCRAFT_PART_INSTALL}/bin/snap-query" snap-query.go
plugin: nil
prime:
- bin/snap-query
source: snap-query/
spice-protocol:
build-attributes:
- core22-step-dependencies
plugin: meson
prime: []
source: https://gitlab.freedesktop.org/spice/spice-protocol
source-depth: 1
source-tag: v0.14.4
source-type: git
spice-server:
after:
- spice-protocol
build-attributes:
- core22-step-dependencies
build-packages:
- libjpeg-turbo8-dev
- python3-pyparsing
- python3-six
meson-parameters:
- --prefix=/
- -Dgstreamer=no
- -Dmanual=false
- -Dlz4=false
- -Dsasl=false
- -Dopus=disabled
- -Dsmartcard=disabled
- -Dtests=false
organize:
sbin/: bin/
usr/lib: lib/
usr/local/lib/: lib/
plugin: meson
prime:
- lib/*/libjpeg*so*
- lib/*/libspice-server*so*
- lib/*/libpixman*so*
source: https://gitlab.freedesktop.org/spice/spice
source-depth: 1
source-tag: v0.15.2
source-type: git
stage-packages:
- libjpeg-turbo8
- libpixman-1-0
sqlite:
autotools-configure-parameters:
- --prefix=
build-attributes:
- core22-step-dependencies
build-packages:
- tcl
plugin: autotools
prime:
- bin/sqlite3
- lib/libsqlite3*so*
source: https://github.com/sqlite/sqlite
source-depth: 1
source-tag: version-3.44.2
source-type: git
squashfs-tools-ng:
autotools-configure-parameters:
- --prefix=
build-attributes:
- core22-step-dependencies
build-packages:
- liblzma-dev
plugin: autotools
prime:
- bin/sqfs2tar
- bin/tar2sqfs
- lib/libsquashfs.so*
source: https://github.com/AgentD/squashfs-tools-ng
source-depth: 1
source-tag: v1.2.0
source-type: git
strip:
after:
- btrfs
- ceph
- dqlite
- libseccomp
- logrotate
- lvm
- nano
- nvidia-container
- openvswitch
- ovn
- raft
- sqlite
- squashfs-tools-ng
- swtpm
- virtiofsd
- xfs
- xz
- wrappers
- xtables
- zfs-0-6
- zfs-0-7
- zfs-0-8
- zfs-2-0
- zfs-2-1
- zfs-2-2
- zstd
- lxc
- lxcfs
- criu
- lxd
- lxd-migrate
- shmounts
- snap-query
build-attributes:
- core22-step-dependencies
override-prime: |
set -x
# XXX: remove unneeded files/directories
rm -rf "${SNAPCRAFT_PRIME}/usr/local/"
# Strip some of the heavy bits
strip -s ${SNAPCRAFT_PRIME}/bin/lxc
strip -s ${SNAPCRAFT_PRIME}/bin/lxd*
strip -s ${SNAPCRAFT_PRIME}/bin/snap*
strip -s ${SNAPCRAFT_PRIME}/lib/libdqlite*
strip -s ${SNAPCRAFT_PRIME}/lib/libsqlite*
# Strip binaries (excluding shell scripts)
find "${SNAPCRAFT_PRIME}"/bin -type f \
-not -path "${SNAPCRAFT_PRIME}/bin/ceph" \
-not -path "${SNAPCRAFT_PRIME}/bin/editor" \
-not -path "${SNAPCRAFT_PRIME}/bin/lxc-checkconfig" \
-not -path "${SNAPCRAFT_PRIME}/bin/nvidia-container-cli" \
-not -path "${SNAPCRAFT_PRIME}/bin/remote-viewer" \
-not -path "${SNAPCRAFT_PRIME}/bin/sshfs" \
-not -path "${SNAPCRAFT_PRIME}/bin/upgrade-bridge" \
-not -path "${SNAPCRAFT_PRIME}/bin/xfs_admin" \
-exec strip -s {} +
# Strip binaries not under bin/ due to being dynamically
# added to the path with `snap set lxd`, like `criu.enable=true`
for binary in "${SNAPCRAFT_PRIME}/criu/criu"; do
[ -e "${binary}" ] || continue
strip -s "${binary}"
done
# Strip all versions of zfs utils
for v in "${SNAPCRAFT_PRIME}"/zfs-*; do
[ -d "${v}" ] || continue
find "${v}/" -type f -exec strip -s {} +
done
# Strip libraries (excluding python3 scripts)
find "${SNAPCRAFT_PRIME}"/lib -type f \
-not -path "${SNAPCRAFT_PRIME}/lib/python3/*" \
-exec strip -s {} +
# XXX: look for broken symlinks indicating missing/invalid prime
broken_symlinks="$(find "${SNAPCRAFT_PRIME}/" -xtype l \
-not -path "${SNAPCRAFT_PRIME}/lxc/config/common.conf.d/*")"
if [ -n "${broken_symlinks}" ]; then
echo "Found broken symlinks:"
echo "${broken_symlinks}"
exit 1
fi
exit 0
plugin: nil
source: snapcraft/empty
swtpm:
after:
- libseccomp
- libtpms
autotools-configure-parameters:
- --prefix=
- --with-seccomp
- --with-openssl
- --without-cuse
build-attributes:
- core22-step-dependencies
build-packages:
- expect
- gawk
- iproute2
- libjson-glib-dev
- python3-cryptography
- python3-setuptools
- socat
organize:
lib/swtpm/: lib/
usr/bin/: bin/
usr/lib/: lib/
plugin: autotools
prime:
- bin/swtpm
- lib/libswtpm*so*
- lib/*/libjson-glib-1.0.so*
source: https://github.com/stefanberger/swtpm
source-depth: 1
source-tag: v0.8.1
source-type: git
stage-packages:
- libjson-glib-1.0-0
virtiofsd:
build-attributes:
- core22-step-dependencies
build-packages:
- cargo
- libseccomp-dev
- rustc
organize:
usr/bin: bin/
override-build: |-
[ "$(uname -m)" != "x86_64" ] && [ "$(uname -m)" != "aarch64" ] && [ "$(uname -m)" != "ppc64le" ] && [ "$(uname -m)" != "s390x" ] && exit 0
snapcraftctl build
override-pull: |-
[ "$(uname -m)" != "x86_64" ] && [ "$(uname -m)" != "aarch64" ] && [ "$(uname -m)" != "ppc64le" ] && [ "$(uname -m)" != "s390x" ] && exit 0
snapcraftctl pull
plugin: rust
prime:
- bin/virtiofsd*
source: https://gitlab.com/virtio-fs/virtiofsd
source-depth: 1
source-tag: v1.8.0
source-type: git
wrappers:
build-attributes:
- core22-step-dependencies
organize:
hooks/: snap/hooks/
wrappers/editor: bin/
wrappers/remote-viewer: bin/
wrappers/sshfs: bin/
plugin: dump
source: snapcraft/
xfs:
build-attributes:
- core22-step-dependencies
organize:
sbin/: bin/
usr/sbin/: bin/
plugin: nil
prime:
- bin/xfs_admin
- bin/xfs_db
- bin/xfs_growfs
- bin/xfs_repair
- bin/mkfs.xfs
source: snapcraft/empty
stage-packages:
- xfsprogs
xtables:
build-attributes:
- core22-step-dependencies
organize:
usr/lib/ebtables/: lib/
usr/sbin/: bin/
plugin: nil
prime:
- bin/arptables-legacy
- bin/ebtables-legacy
- etc/ethertypes
- etc/protocols
- lib/libebtc.so.*
source: snapcraft/empty
stage-packages:
- arptables
- ebtables
xz:
build-attributes:
- core22-step-dependencies
organize:
usr/bin/: bin/
usr/lib/: lib/
usr/sbin/: bin/
override-build: |
snapcraftctl build
# Include the lzma symlink
ln -s xz "${SNAPCRAFT_PART_INSTALL}/usr/bin/lzma"
plugin: nil
prime:
- bin/lzma
- bin/xz
- lib/*/liblzma*so*
source: snapcraft/empty
stage-packages:
- xz-utils
zfs-0-6:
autotools-configure-parameters:
- --prefix=/
- --with-config=user
build-attributes:
- core22-step-dependencies
build-packages:
- uuid-dev
- zlib1g-dev
override-build: |
set -ex
[ "$(uname -m)" != "x86_64" ] && \
[ "$(uname -m)" != "aarch64" ] && \
[ "$(uname -m)" != "s390x" ] && \
[ "$(uname -m)" != "ppc64le" ] && exit 0
git config user.email "noreply@linuxcontainers.org"
git config user.name "LXD snap builder"
git cherry-pick fb963d33ee0dd350143ba1c9cd35d5f7d86910d2 # Fix endian build problem on ppc64el
set +ex
snapcraftctl build
set -ex
mv "${SNAPCRAFT_PART_INSTALL}" "${SNAPCRAFT_PART_INSTALL}.tmp"
mkdir -p "${SNAPCRAFT_PART_INSTALL}/zfs-0.6/bin" "${SNAPCRAFT_PART_INSTALL}/zfs-0.6/lib"
mv "${SNAPCRAFT_PART_INSTALL}.tmp/sbin/zfs" "${SNAPCRAFT_PART_INSTALL}/zfs-0.6/bin/"
mv "${SNAPCRAFT_PART_INSTALL}.tmp/sbin/zpool" "${SNAPCRAFT_PART_INSTALL}/zfs-0.6/bin/"
mv "${SNAPCRAFT_PART_INSTALL}.tmp/lib/udev/zvol_id" "${SNAPCRAFT_PART_INSTALL}/zfs-0.6/bin/"
mv "${SNAPCRAFT_PART_INSTALL}.tmp/lib/"*so* "${SNAPCRAFT_PART_INSTALL}/zfs-0.6/lib/"
rm -Rf "${SNAPCRAFT_PART_INSTALL}.tmp"
plugin: autotools
source: https://github.com/openzfs/zfs
source-tag: zfs-0.6.5.11
source-type: git
zfs-0-7:
autotools-configure-parameters:
- --prefix=/
- --with-config=user
build-attributes:
- core22-step-dependencies
build-packages:
- libblkid-dev
- uuid-dev
- zlib1g-dev
override-build: |
set -ex
[ "$(uname -m)" != "x86_64" ] && \
[ "$(uname -m)" != "aarch64" ] && \
[ "$(uname -m)" != "s390x" ] && \
[ "$(uname -m)" != "ppc64le" ] && exit 0
set +ex
snapcraftctl build
set -ex
mv "${SNAPCRAFT_PART_INSTALL}" "${SNAPCRAFT_PART_INSTALL}.tmp"
mkdir -p "${SNAPCRAFT_PART_INSTALL}/zfs-0.7/bin" "${SNAPCRAFT_PART_INSTALL}/zfs-0.7/lib"
mv "${SNAPCRAFT_PART_INSTALL}.tmp/sbin/zfs" "${SNAPCRAFT_PART_INSTALL}/zfs-0.7/bin/"
mv "${SNAPCRAFT_PART_INSTALL}.tmp/sbin/zpool" "${SNAPCRAFT_PART_INSTALL}/zfs-0.7/bin/"
mv "${SNAPCRAFT_PART_INSTALL}.tmp/lib/udev/zvol_id" "${SNAPCRAFT_PART_INSTALL}/zfs-0.7/bin/"
mv "${SNAPCRAFT_PART_INSTALL}.tmp/lib/"*so* "${SNAPCRAFT_PART_INSTALL}/zfs-0.7/lib/"
rm -Rf "${SNAPCRAFT_PART_INSTALL}.tmp"
plugin: autotools
source: https://github.com/openzfs/zfs
source-depth: 1
source-tag: zfs-0.7.13
source-type: git
zfs-0-8:
autotools-configure-parameters:
- --prefix=/
- --with-config=user
build-attributes:
- core22-step-dependencies
build-packages:
- libblkid-dev
- libssl-dev
- uuid-dev
- zlib1g-dev
override-build: |
set -ex
[ "$(uname -m)" != "x86_64" ] && \
[ "$(uname -m)" != "aarch64" ] && \
[ "$(uname -m)" != "s390x" ] && \
[ "$(uname -m)" != "ppc64le" ] && exit 0
set +ex
snapcraftctl build
set -ex
mv "${SNAPCRAFT_PART_INSTALL}" "${SNAPCRAFT_PART_INSTALL}.tmp"
mkdir -p "${SNAPCRAFT_PART_INSTALL}/zfs-0.8/bin" "${SNAPCRAFT_PART_INSTALL}/zfs-0.8/lib"
mv "${SNAPCRAFT_PART_INSTALL}.tmp/sbin/zfs" "${SNAPCRAFT_PART_INSTALL}/zfs-0.8/bin/"
mv "${SNAPCRAFT_PART_INSTALL}.tmp/sbin/zpool" "${SNAPCRAFT_PART_INSTALL}/zfs-0.8/bin/"
mv "${SNAPCRAFT_PART_INSTALL}.tmp/lib/udev/zvol_id" "${SNAPCRAFT_PART_INSTALL}/zfs-0.8/bin/"
mv "${SNAPCRAFT_PART_INSTALL}.tmp/lib/"*so* "${SNAPCRAFT_PART_INSTALL}/zfs-0.8/lib/"
rm -Rf "${SNAPCRAFT_PART_INSTALL}.tmp"
plugin: autotools
source: https://github.com/openzfs/zfs
source-depth: 1
source-tag: zfs-0.8.6
source-type: git
zfs-2-0:
autotools-configure-parameters:
- --prefix=/
- --with-config=user
build-attributes:
- core22-step-dependencies
build-packages:
- libblkid-dev
- libssl-dev
- uuid-dev
- zlib1g-dev
override-build: |
set -ex
[ "$(uname -m)" != "x86_64" ] && \
[ "$(uname -m)" != "aarch64" ] && \
[ "$(uname -m)" != "s390x" ] && \
[ "$(uname -m)" != "ppc64le" ] && exit 0
set +ex
snapcraftctl build
set -ex
mv "${SNAPCRAFT_PART_INSTALL}" "${SNAPCRAFT_PART_INSTALL}.tmp"
mkdir -p "${SNAPCRAFT_PART_INSTALL}/zfs-2.0/bin" "${SNAPCRAFT_PART_INSTALL}/zfs-2.0/lib"
mv "${SNAPCRAFT_PART_INSTALL}.tmp/sbin/zfs" "${SNAPCRAFT_PART_INSTALL}/zfs-2.0/bin/"
mv "${SNAPCRAFT_PART_INSTALL}.tmp/sbin/zpool" "${SNAPCRAFT_PART_INSTALL}/zfs-2.0/bin/"
mv "${SNAPCRAFT_PART_INSTALL}.tmp/lib/udev/zvol_id" "${SNAPCRAFT_PART_INSTALL}/zfs-2.0/bin/"
mv "${SNAPCRAFT_PART_INSTALL}.tmp/lib/"*so* "${SNAPCRAFT_PART_INSTALL}/zfs-2.0/lib/"
rm -Rf "${SNAPCRAFT_PART_INSTALL}.tmp"
plugin: autotools
source: https://github.com/openzfs/zfs
source-depth: 1
source-tag: zfs-2.0.7
source-type: git
zfs-2-1:
autotools-configure-parameters:
- --prefix=/
- --with-config=user
build-attributes:
- core22-step-dependencies
build-packages:
- libblkid-dev
- libssl-dev
- uuid-dev
- zlib1g-dev
override-build: |
set -ex
[ "$(uname -m)" != "x86_64" ] && \
[ "$(uname -m)" != "aarch64" ] && \
[ "$(uname -m)" != "s390x" ] && \
[ "$(uname -m)" != "ppc64le" ] && exit 0
set +ex
snapcraftctl build
set -ex
mv "${SNAPCRAFT_PART_INSTALL}" "${SNAPCRAFT_PART_INSTALL}.tmp"
mkdir -p "${SNAPCRAFT_PART_INSTALL}/zfs-2.1/bin" "${SNAPCRAFT_PART_INSTALL}/zfs-2.1/lib"
mv "${SNAPCRAFT_PART_INSTALL}.tmp/sbin/zfs" "${SNAPCRAFT_PART_INSTALL}/zfs-2.1/bin/"
mv "${SNAPCRAFT_PART_INSTALL}.tmp/sbin/zpool" "${SNAPCRAFT_PART_INSTALL}/zfs-2.1/bin/"
mv "${SNAPCRAFT_PART_INSTALL}.tmp/lib/udev/zvol_id" "${SNAPCRAFT_PART_INSTALL}/zfs-2.1/bin/"
mv "${SNAPCRAFT_PART_INSTALL}.tmp/lib/"*so* "${SNAPCRAFT_PART_INSTALL}/zfs-2.1/lib/"
rm -Rf "${SNAPCRAFT_PART_INSTALL}.tmp"
plugin: autotools
source: https://github.com/openzfs/zfs
source-depth: 1
source-tag: zfs-2.1.14
source-type: git
zfs-2-2:
autotools-configure-parameters:
- --prefix=/
- --with-config=user
build-attributes:
- core22-step-dependencies
build-packages:
- libblkid-dev
- libssl-dev
- uuid-dev
- zlib1g-dev
override-build: |-
[ "$(uname -m)" != "x86_64" ] && \
[ "$(uname -m)" != "aarch64" ] && \
[ "$(uname -m)" != "s390x" ] && \
[ "$(uname -m)" != "ppc64le" ] && exit 0
snapcraftctl build
set -ex
ZFS_VER="2.2"
mv "${SNAPCRAFT_PART_INSTALL}" "${SNAPCRAFT_PART_INSTALL}.tmp"
mkdir -p "${SNAPCRAFT_PART_INSTALL}/zfs-${ZFS_VER}/bin" "${SNAPCRAFT_PART_INSTALL}/zfs-${ZFS_VER}/lib"
mv "${SNAPCRAFT_PART_INSTALL}.tmp/sbin/zfs" "${SNAPCRAFT_PART_INSTALL}/zfs-${ZFS_VER}/bin/"
mv "${SNAPCRAFT_PART_INSTALL}.tmp/sbin/zpool" "${SNAPCRAFT_PART_INSTALL}/zfs-${ZFS_VER}/bin/"
mv "${SNAPCRAFT_PART_INSTALL}.tmp/lib/udev/zvol_id" "${SNAPCRAFT_PART_INSTALL}/zfs-${ZFS_VER}/bin/"
mv "${SNAPCRAFT_PART_INSTALL}.tmp/lib/"*so* "${SNAPCRAFT_PART_INSTALL}/zfs-${ZFS_VER}/lib/"
rm -Rf "${SNAPCRAFT_PART_INSTALL}.tmp"
override-pull: |-
[ "$(uname -m)" != "x86_64" ] && \
[ "$(uname -m)" != "aarch64" ] && \
[ "$(uname -m)" != "s390x" ] && \
[ "$(uname -m)" != "ppc64le" ] && exit 0
snapcraftctl pull
plugin: autotools
source: https://github.com/openzfs/zfs
source-depth: 1
source-tag: zfs-2.2.2
source-type: git
zstd:
build-attributes:
- core22-step-dependencies
organize:
usr/bin/: bin/
plugin: nil
prime:
- bin/pzstd
- bin/zstd
source: snapcraft/empty
stage-packages:
- zstd
source-code: https://github.com/canonical/lxd
summary: LXD - container and VM manager
version: 5.0.3-80aeff7
website: https://ubuntu.com/lxd
|