summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorAsterios Dimitriou2018-08-15 20:54:58 +0300
committerAsterios Dimitriou2018-08-15 21:35:53 +0300
commit12c9cadac8d697a39a265f9103c13de294e2365a (patch)
tree14c4dc585a015996ae93ccb9ec5b21f7b2c4c3c0
downloadaur-12c9cadac8d697a39a265f9103c13de294e2365a.tar.gz
version lxd 3.4
without dqlite package dependency
-rw-r--r--.SRCINFO30
-rw-r--r--.gitignore1
-rw-r--r--PKGBUILD89
-rw-r--r--lxd.install9
-rw-r--r--lxd.service15
-rw-r--r--lxd.socket12
6 files changed, 156 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..e27ff7871280
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,30 @@
+pkgbase = lxd-git
+ pkgdesc = Daemon based on liblxc offering a REST API to manage containers
+ pkgver = 3.4.r0.520cea20
+ pkgrel = 1
+ url = https://github.com/lxc/lxd
+ arch = x86_64
+ license = APACHE
+ makedepends = go-pie
+ makedepends = git
+ makedepends = patchelf
+ depends = lxc
+ depends = squashfs-tools
+ depends = dnsmasq
+ depends = libuv
+ optdepends = lvm2: for lvm2 support
+ optdepends = thin-provisioning-tools: for thin provisioning support
+ optdepends = btrfs-progs: for btrfs storage driver support
+ optdepends = ceph: for ceph storage driver support
+ conflicts = lxd
+ conflicts = lxd-lts
+ options = !strip
+ options = !emptydirs
+ source = lxd.service
+ source = lxd.socket
+ md5sums = ad8ad313898fac0487fcf9a3b9b926ea
+ md5sums = 1fb28d8dfe82af71d0675c8e9a0a7293
+
+pkgname = lxd-git
+ install = lxd.install
+
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000000..72e8ffc0db8a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+*
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..ce98ead504ad
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,89 @@
+# Maintainer: Asterios Dimitriou <asterios@pci.gr>
+# based on lxd package https://aur.archlinux.org/packages/lxd/
+# Contributor: Maikel Wever <maikelwever@gmail.com>
+# Contributor: Benjamin Asbach <archlinux-aur.lxd@impl.it>
+
+pkgname=lxd-git
+_pkgname=lxd
+pkgver=3.4.r0.520cea20
+pkgrel=1
+pkgdesc="Daemon based on liblxc offering a REST API to manage containers"
+arch=('x86_64')
+url="https://github.com/lxc/lxd"
+license=('APACHE')
+conflicts=('lxd' 'lxd-lts')
+provides=('lxd')
+depends=('lxc' 'squashfs-tools' 'dnsmasq' 'libuv')
+makedepends=('go-pie' 'git' 'tcl' 'patchelf')
+optdepends=(
+ 'lvm2: for lvm2 support'
+ 'thin-provisioning-tools: for thin provisioning support'
+ 'btrfs-progs: for btrfs storage driver support'
+ 'ceph: for ceph storage driver support'
+)
+options=('!strip' '!emptydirs')
+source=(
+ "lxd.service"
+ "lxd.socket"
+)
+_lxd=github.com/lxc/lxd
+
+md5sums=('ad8ad313898fac0487fcf9a3b9b926ea'
+ '1fb28d8dfe82af71d0675c8e9a0a7293')
+
+prepare() {
+ export GOPATH="${srcdir}/go"
+ mkdir -p "${GOPATH}"
+ # download the go package along with all of its go dependencies
+ go get -d -v "${_lxd}/lxd"
+}
+
+pkgver() {
+ cd "${GOPATH}/src/${_lxd}"
+ printf "%s" "$(git describe --long | sed 's/^lxd-//;s/\([^-]*-\)g/r\1/;s/-/./g')"
+}
+
+build() {
+ cd "${GOPATH}/src/${_lxd}"
+ make deps
+ export CGO_CFLAGS="-I${GOPATH}/deps/sqlite/ -I${GOPATH}/deps/dqlite/include/"
+ export CGO_LDFLAGS="-L${GOPATH}/deps/sqlite/.libs/ -L${GOPATH}/deps/dqlite/.libs/"
+ export LD_LIBRARY_PATH="${GOPATH}/deps/sqlite/.libs/:${GOPATH}/deps/dqlite/.libs/"
+ make
+}
+
+package() {
+ go_bin_dir="${srcdir}/go/bin"
+ go_deps_dir="${srcdir}/go/deps"
+ install=lxd.install
+ mkdir -p "${pkgdir}/usr/bin"
+ mkdir -p "${pkgdir}/usr/lib/lxd"
+ mkdir -p "${pkgdir}/usr/share/doc/lxd"
+ mkdir -p "${pkgdir}/usr/share/bash-completion/completions"
+ install -p -m755 "${go_bin_dir}/"* "${pkgdir}/usr/bin"
+ patchelf --set-rpath "/usr/lib/lxd" "${pkgdir}/usr/bin/lxd"
+ cp --no-dereference --preserve=timestamps \
+ "${go_deps_dir}/sqlite/.libs/"libsqlite3.so* \
+ "${go_deps_dir}/dqlite/.libs/"libdqlite.so* \
+ "${pkgdir}/usr/lib/lxd"
+ patchelf --set-rpath "/usr/lib/lxd" "${pkgdir}/usr/lib/lxd/libdqlite.so"
+
+ # Package license
+ install -Dm644 "${srcdir}/go/src/${_lxd}/COPYING" "${pkgdir}/usr/share/licenses/${_pkgname}/LICENCE"
+
+ # systemd files
+ install -D -m644 "${srcdir}/lxd.service" \
+ "${pkgdir}/usr/lib/systemd/system/lxd.service"
+ install -D -m644 "${srcdir}/lxd.socket" \
+ "${pkgdir}/usr/lib/systemd/system/lxd.socket"
+
+ # documentation
+ install -D -m644 "${srcdir}/go/src/${_lxd}/doc/"* \
+ "${pkgdir}/usr/share/doc/lxd/"
+
+ # Bash completions
+ install -p -m644 "${srcdir}/go/src/${_lxd}/scripts/bash/lxd-client" \
+ "${pkgdir}/usr/share/bash-completion/completions/lxd-client"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/lxd.install b/lxd.install
new file mode 100644
index 000000000000..c79411345338
--- /dev/null
+++ b/lxd.install
@@ -0,0 +1,9 @@
+post_install() {
+ getent group lxd || groupadd lxd
+ echo "LXD allows everyone in the lxd group to talk to LXD."
+ echo ""
+ echo "LXD needs sub{u,g}ids for root, so that it can create unprivileged containers."
+ echo "Execute the following to set the sub{u,g}ids:"
+ echo "'echo \"root:1000000:65536\" | sudo tee -a /etc/subuid /etc/subgid'"
+ echo ""
+}
diff --git a/lxd.service b/lxd.service
new file mode 100644
index 000000000000..f038cc1fe143
--- /dev/null
+++ b/lxd.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Daemon based on liblxc offering a REST API to manage containers.
+After=network.target
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/lxd --group lxd
+ExecStop=/usr/bin/lxd shutdown
+KillMode=process
+LimitNOFILE=1048576
+LimitNPROC=infinity
+TasksMax=infinity
+
+[Install]
+WantedBy=multi-user.target
diff --git a/lxd.socket b/lxd.socket
new file mode 100644
index 000000000000..b6737f962753
--- /dev/null
+++ b/lxd.socket
@@ -0,0 +1,12 @@
+[Unit]
+Description=LXD - unix socket
+After=network.target
+
+[Socket]
+ListenStream=/var/lib/lxd/unix.socket
+SocketMode=0660
+SocketUser=root
+SocketGroup=lxd
+
+[Install]
+WantedBy=sockets.target