# LXD-LTS Daemon based on liblxc offering a REST API to manage containers ^ runtime dependencies | dnsmasq (Networking applications) | ^ ::: | iptables (Networking applications) | ^ ::: | libuv (Libraries/Other) | ^ ::: | lxcfs (System tools) | ^ ::: | lxc (System tools) | ^ ::: | squashfs (Filesystem and flash utilities) | ^ ::: | [[buildroot:dqlite]] | ^ make dependencies | apparmor (Security) | ^ ::: | git (Development tools) | ^ ::: | lxc (System tools) | ^ ::: | [[buildroot:dqlite]] | ^ ::: | go | ^ ::: | libuv1-dev | ^ ::: | libsqlite3-dev | lxd-lts ├── dnsmasq (Networking applications) ├── iptables (Networking applications) ├── libuv (Libraries/Other) ├── lxcfs (System tools) ├── lxc (System tools) ├── squashfs (Filesystem and flash utilities) └── dqlite (Custom)    ├── libuv (Libraries/Other)    ├── sqlite (Libraries/Database)    └── raft (Custom)    └── libuv (Libraries/other) ``` mkdir /data/buildroot/package/lxd-lts cat > /data/buildroot/package/lxd-lts/Config.in<< 'EOF' config BR2_PACKAGE_LXD_LTS bool "lxd-lts" depends on BR2_PACKAGE_LXC depends on BR2_PACKAGE_SQUASHFS depends on BR2_PACKAGE_DNSMASQ depends on BR2_PACKAGE_DQLITE select BR2_PACKAGE_GO help REST API, command line tool and OpenStack integration plugin for LXC. EOF cat > /data/buildroot/package/lxd-lts/lxd-lts.mk<< 'EOF' ############################################################# # # lxd-lts # ############################################################# LXD_LTS_VERSION = 4.24 LXD_LTS_SITE = $(call github,lxc,lxd,$(LXD_LTS_VERSION)) $(eval $(golang-package)) EOF cat > /data/buildroot/package/lxd-lts/lxd-lts.mk<< 'EOF' ############################################################# # # lxd-lts # https://github.com/lxc/$_gitpkgname/archive/$_gitpkgname-$pkgver.tar.gz # md5sums= 'cd7a65106aa7205081646bd7cb96610a' # + "lxd.service" 'a95280cf05920bd561cae451acb5b27d' # + "lxd.socket" 'dfa7033fc39632af0f2c7e26ee966789' # + "dnsmasq-lxd.conf" 'b1fd16933c1b24aaa9ccc8f5a0e6478c' # + "dnsmasq@lxd.service" '15ae1bc51684d611bded2839ca55a37b' # + "lxd.netctl" '52c641ea0ba5477f5c1a1b857c03dda9' # + "dbus-dnsmasq-lxd.conf" 'c86b8c441ab014340186acc7799096f2' # + "networkmanager-dnsmasq-lxd.conf" '427926fddb1537f7a65d0a7274106df5' ############################################################# LXD_LTS_VERSION = 4.24 LXD_LTS_SOURCE = lxd-$(LXD_LTS_VERSION).tar.gz LXD_LTS_SITE = https://github.com/lxc/lxd/archive/refs/tags LXD_LTS_DEPENDENCIES = lxc squashfs dnsmasq dqlite LXD_LTS_BIN_ARCH_EXCLUDE = /usr/lib define LXD_LTS_CONFIGURE_CMDS wget https://go.dev/dl/go1.18.linux-arm64.tar.gz -O /go1.18.linux-arm64.tar.gz cd / &&\ tar -zxf go1.18.linux-arm64.tar.gz && \ mkdir $(@D)/go export PATH=$(PATH):/go/bin endef define LXD_LTS_BUILD_CMDS cd "$(@D)/" && \ git clone https://aur.archlinux.org/lxd-lts.git && \ GOROOT=/go GOPATH=$(@D)/go PKG_CONFIG_PATH="$(STAGING_DIR)/usr/lib/pkgconfig/" make endef define LXD_LTS_INSTALL_TARGET_CMDS mkdir -p "$(TARGET_DIR)/usr/bin" mkdir -p "$(TARGET_DIR)/usr/lib/lxd" mkdir -p "$(TARGET_DIR)/usr/share/bash-completion/completions" install -p -m755 "/go/bin/"* "$(TARGET_DIR)/usr/bin" install -p -m755 "$(@D)/go/bin/"* "$(TARGET_DIR)/usr/bin" install -D -m644 "$(@D)/lxd-lts/lxd.service" \ "$(TARGET_DIR)/usr/lib/systemd/system/lxd.service" install -D -m644 "$(@D)/lxd-lts/lxd.socket" \ "$(TARGET_DIR)/usr/lib/systemd/system/lxd.socket" install -p -m755 "$(@D)/scripts/bash/lxd-client" \ "$(TARGET_DIR)/usr/share/bash-completion/completions/lxd" mkdir -p "$(TARGET_DIR)/usr/share/lxd/" mkdir -p "$(TARGET_DIR)/usr/share/lxd/systemd/system/" mkdir -p "$(TARGET_DIR)/usr/share/lxd/netctl/" mkdir -p "$(TARGET_DIR)/usr/share/lxd/dbus-1/system.d/" mkdir -p "$(TARGET_DIR)/usr/share/lxd/NetworkManager/dnsmasq.d/" install -Dm644 "$(@D)/lxd-lts/dnsmasq-lxd.conf" \ "$(TARGET_DIR)/usr/share/lxd/dnsmasq-lxd.conf" install -Dm644 "$(@D)/lxd-lts/dnsmasq@lxd.service" \ "$(TARGET_DIR)/usr/share/lxd/systemd/system/dnsmasq@lxd.service" install -Dm644 "$(@D)/lxd-lts/lxd.netctl" \ "$(TARGET_DIR)/usr/share/lxd/netctl/lxd" install -Dm644 "$(@D)/lxd-lts/dbus-dnsmasq-lxd.conf" \ "$(TARGET_DIR)/usr/share/lxd/dbus-1/system.d/dnsmasq-lxd.conf" install -Dm644 "$(@D)/lxd-lts/networkmanager-dnsmasq-lxd.conf" \ "$(TARGET_DIR)/usr/share/lxd/NetworkManager/dnsmasq.d/lxd.conf" endef $(eval $(generic-package)) EOF sed -i '/menu "Custom packages"/a source "package/lxd-lts/Config.in"' /data/buildroot/package/Config.in ```