D7net Mini Sh3LL v1
Current File : //media/../snap/core18/../lxd/29619/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
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.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]
- openvswitch.builtin: Run a snap-specific OVS daemon [default=false]
- openvswitch.external: Use the system's OVS tools (ignores openvswitch.builtin) [default=false]
- shiftfs.enable: Enable shiftfs support [default=auto]
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:
organize:
sbin/: bin/
plugin: nil
prime:
- bin/btrfs
- bin/btrfstune
- bin/mkfs.btrfs
source: snapcraft/empty
stage-packages:
- btrfs-progs
ceph:
organize:
usr/bin/: bin/
usr/lib/: lib/
plugin: nil
prime:
- bin/ceph
- bin/rbd
- lib/*/ceph
- lib/*/libatomic.so*
- lib/*/libboost_iostreams.so*
- lib/*/libboost_program_options.so*
- lib/*/libboost_thread.so*
- lib/*/libcephfs*
- lib/*/libibverbs.so*
- lib/*/librados.so*
- lib/*/librbd.so*
- lib/*/librdmacm.so*
- lib/*/libsnappy.so*
- lib/python3
source: snapcraft/empty
stage-packages:
- ceph-common
criu:
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.17.1
source-type: git
stage-packages:
- libnet1
- libprotobuf-c1
dqlite:
after:
- raft
- sqlite
autotools-configure-parameters:
- --prefix=
build-packages:
- libuv1-dev
organize:
usr/lib/: lib/
plugin: autotools
prime:
- lib/libdqlite*so*
- lib/*/libuv*
source: https://github.com/canonical/dqlite
source-commit: 50ee9af350b2fb4e79f9eb58db22c8a0927138de
source-depth: 1
source-type: git
stage-packages:
- libuv1
edk2:
after:
- nasm
build-packages:
- on amd64:
- acpica-tools
- nasm
- uuid-dev
- on arm64:
- acpica-tools
- nasm
- 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=
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=
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.4
source-type: git
libseccomp:
autotools-configure-parameters:
- --prefix=
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.4
source-type: git
liburing:
autotools-configure-parameters:
- --prefix=
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.3
source-type: git
libusb:
autotools-configure-parameters:
- --prefix=
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:
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:
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
autotools-configure-parameters:
- --prefix=
- --disable-api-docs
- --disable-bash
- --disable-doc
- --disable-examples
- --disable-memfd-rexec
- --disable-tests
- --disable-tools
- --enable-apparmor
- --enable-seccomp
- --enable-selinux
- --enable-capabilities
- --with-rootfs-path=/var/snap/lxd/common/lxc/
- --libexecdir=/snap/lxd/current/libexec/
build-packages:
- libapparmor-dev
- libcap-dev
- libgnutls28-dev
- libselinux1-dev
- pkg-config
organize:
share/lxc/hooks: lxc/hooks
snap/lxd/current/libexec: libexec
snap/lxd/current/lxc: lxc
override-build: |
set -ex
git config user.email "noreply@lists.canonical.com"
git config user.name "LXD snap builder"
git cherry-pick ca4c25c6e9ebb92f9e241ef9a231d4a715cb812d # lxc-net: don't start by default inside lxc
git cherry-pick f314419d1e054f7833b6976ec5ed32373aace622 # lxc-checkconfig: Fix bashism
git cherry-pick 71ba7f65616e72a313e2a41615e449178da9daf2 # doc: Fix reverse allowlist/denylist
git cherry-pick f7446b4e10d71f79f9f3952255608268842ee1f3 # cgroups: check that opened file descriptor is a cgroup filesystem
git cherry-pick f1c4a17e7df5d819b1b170917865e2e458c8e5db # cgroups: log fd of newly created cgroup
git cherry-pick 8ef019a6ce2555f7b438b3841ab5216e5d6973ba # doc: Fix reverse allowlist/denylist in Japanese man page
git cherry-pick 3b9f84fd2397d06782bbf67dc8421463c43ab139 # ttys: ensure container_ttys= env variable is set correctly
git cherry-pick 5ba5725cb4a210c25707beeca64fde5f561d1c71 # cgroups: modify cgroup2 attach logic
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
sed -i "s#includedir=.*#includedir=$SNAPCRAFT_PART_INSTALL/include#g" $SNAPCRAFT_PART_INSTALL/lib/pkgconfig/lxc.pc
sed -i "s#libdir=.*#libdir=$SNAPCRAFT_PART_INSTALL/lib#g" $SNAPCRAFT_PART_INSTALL/lib/pkgconfig/lxc.pc
plugin: autotools
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-4.0.12
source-type: git
lxcfs:
autotools-configure-parameters:
- --prefix=
- --datarootdir=/snap/lxd/current/
- --localstatedir=/var/snap/lxd/common/var/
build-packages:
- libfuse-dev
- libpam0g-dev
- pkg-config
organize:
lib/lxcfs: lib
snap/lxd/current/lxc: lxc
snap/lxd/current/lxcfs: lxcfs
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
sed -i "s#\${LXC_ROOTFS_MOUNT}/var/snap/lxd/common/var/lib/lxcfs/#\${LXC_ROOTFS_MOUNT}/var/lib/lxcfs/#g" $SNAPCRAFT_PART_INSTALL/snap/lxd/current/lxcfs/lxc.mount.hook
patch -p1 $SNAPCRAFT_PART_INSTALL/snap/lxd/current/lxcfs/lxc.mount.hook < "${SNAPCRAFT_PROJECT_DIR}/patches/lxcfs-0001-hook.patch"
plugin: autotools
prime:
- bin/fusermount
- lib/*/libfuse.so.*
- bin/lxcfs
- lib/liblxcfs.so
- lxc
- lxcfs
source: https://github.com/lxc/lxcfs
source-tag: lxcfs-4.0.12
source-type: git
stage-packages:
- fuse
lxd:
after:
- lxc
- dqlite
- sqlite
build-packages:
- libacl1-dev
- libudev-dev
- pkg-config
build-snaps:
- go/1.18/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"
# 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
# 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/unsquashfs
- 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
source: https://github.com/canonical/lxd
source-commit: 2eacddbb65acf10b2fcea4ee92374a90d2376dc4
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-snaps:
- go/1.18/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/
nano:
organize:
usr/bin/: bin/
plugin: nil
prime:
- bin/nano
- etc/nanorc
source: snapcraft/empty
stage-packages:
- nano
nasm:
autotools-configure-parameters:
- --prefix=
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-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.5
source-type: git
stage-packages:
- libjansson4
nvidia-container:
after:
- libseccomp
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.11.0
source-type: git
openvswitch:
autotools-configure-parameters:
- --enable-ssl
- --prefix=
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.0.1
source-type: git
stage-packages:
- uuid-runtime
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-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 v7.1.0
plugin: autotools
prime:
- bin/genisoimage*
- bin/mkisofs*
- bin/qemu-system-*
- bin/qemu-img*
- bin/virtfs-proxy-helper*
- bin/virtiofsd*
- 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
- libmagic1
- libnuma1
- libpixman-1-0
- libusbredirhost1
- libusbredirparser1
qemu-ovmf-secureboot:
after:
- edk2
- qemu
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-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-commit: abf9c42a9bb63c24920ab9f0bfbc4b7a47e7e5f4
source-depth: 1
source-type: git
stage-packages:
- libuv1
- liblz4-1
shmounts:
plugin: make
prime:
- bin/setup-shmounts
source: shmounts/
snap-query:
build-snaps:
- go/1.18/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:
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-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.1
source-type: git
stage-packages:
- libjpeg-turbo8
- libpixman-1-0
sqlite:
autotools-configure-parameters:
- --prefix=
build-packages:
- tcl
plugin: autotools
prime:
- bin/sqlite3
- lib/libsqlite3*so*
source: https://github.com/sqlite/sqlite
source-depth: 1
source-tag: version-3.40.0
source-type: git
squashfs-tools-ng:
autotools-configure-parameters:
- --prefix=
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.1.4
source-type: git
strip:
after:
- btrfs
- ceph
- dqlite
- libseccomp
- logrotate
- lvm
- nano
- nvidia-container
- openvswitch
- raft
- sqlite
- squashfs-tools-ng
- vim
- xfs
- xz
- zfs-0-6
- zfs-0-7
- zfs-0-8
- zfs-2-0
- zfs-2-1
- lxc
- lxcfs
- criu
- lxd
- lxd-migrate
- shmounts
- snap-query
override-prime: |
set -x
# 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/liblxc*
strip -s ${SNAPCRAFT_PRIME}/lib/libdqlite*
strip -s ${SNAPCRAFT_PRIME}/lib/libsqlite*
for zfs in zfs-0.6 zfs-0.7 zfs-0.8 zfs-2.0 zfs-2.1; do
[ ! -d "${SNAPCRAFT_PRIME}/${zfs}" ] && continue
strip -s ${SNAPCRAFT_PRIME}/${zfs}/bin/* ${SNAPCRAFT_PRIME}/${zfs}/lib/*
done
[ -e "${SNAPCRAFT_PRIME}/criu/criu" ] && strip -s ${SNAPCRAFT_PRIME}/criu/criu
exit 0
plugin: nil
source: snapcraft/empty
vim:
organize:
usr/bin/: bin/
usr/share/vim/vim*/debian.vim: etc/vimrc
plugin: nil
prime:
- bin/vim.tiny
- etc/vimrc
source: snapcraft/empty
stage-packages:
- vim-common
- vim-tiny
wrappers:
organize:
hooks/: snap/hooks/
wrappers/editor: bin/
wrappers/remote-viewer: bin/
plugin: dump
source: snapcraft/
xfs:
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:
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:
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-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@lists.canonical.com"
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-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-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-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-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.15
source-type: git
zstd:
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: 4.0.10-e664786
website: https://ubuntu.com/lxd
AnonSec - 2021 | Recode By D7net