Gentoo Archives: gentoo-commits

From: Joonas Niilola <juippis@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: app-emulation/lxd/
Date: Sat, 15 Aug 2020 06:19:56
Message-Id: 1597472386.6dc1a76c6c1221364f661988c15b5961da8b14f9.juippis@gentoo
1 commit: 6dc1a76c6c1221364f661988c15b5961da8b14f9
2 Author: Joonas Niilola <juippis <AT> gentoo <DOT> org>
3 AuthorDate: Sat Aug 15 06:19:25 2020 +0000
4 Commit: Joonas Niilola <juippis <AT> gentoo <DOT> org>
5 CommitDate: Sat Aug 15 06:19:46 2020 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6dc1a76c
7
8 app-emulation/lxd: bump to 4.0.3
9
10 Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>
11
12 app-emulation/lxd/Manifest | 1 +
13 app-emulation/lxd/lxd-4.0.3.ebuild | 208 +++++++++++++++++++++++++++++++++++++
14 2 files changed, 209 insertions(+)
15
16 diff --git a/app-emulation/lxd/Manifest b/app-emulation/lxd/Manifest
17 index e491542f828..ec555c4d4d4 100644
18 --- a/app-emulation/lxd/Manifest
19 +++ b/app-emulation/lxd/Manifest
20 @@ -1 +1,2 @@
21 DIST lxd-4.0.2.tar.gz 25350601 BLAKE2B 2abecb61759a1a717960671516157dc7b7a36865ecdbcec1f211e5b653b2b4afc41932a4a289430de0dd4ac1e2c777de471ab26e31dbf2b8d1855f67d03886ad SHA512 6c1c668055e9677850f24e142e6741cb6b5aa8d4d9cce29af566e8090c28e04b4baf973f486aef28b7f6b34be5b9ab9bb45e77956879ff7feff6bec8e4db3077
22 +DIST lxd-4.0.3.tar.gz 25468067 BLAKE2B 5c3d8a2841d3222d070be39fb6cb63c99450a7edea86915a808230012f1a3b7a66c2c4a3c56be378f586c8ca033c4f547ed6eeb14bb09a091b3ae28c62fda7ae SHA512 aaf7fe7473e04765263ff99f02041748f0e57abdd0311d734fbf1cbc461516bf6adad1bc42c9cfa58b4e87c28efb5186d9436fb0a1d309b23eb37fe95299ad6f
23
24 diff --git a/app-emulation/lxd/lxd-4.0.3.ebuild b/app-emulation/lxd/lxd-4.0.3.ebuild
25 new file mode 100644
26 index 00000000000..6916707a2f4
27 --- /dev/null
28 +++ b/app-emulation/lxd/lxd-4.0.3.ebuild
29 @@ -0,0 +1,208 @@
30 +# Copyright 1999-2020 Gentoo Authors
31 +# Distributed under the terms of the GNU General Public License v2
32 +
33 +EAPI=7
34 +
35 +inherit autotools bash-completion-r1 eutils linux-info systemd
36 +
37 +DESCRIPTION="Fast, dense and secure container management"
38 +HOMEPAGE="https://linuxcontainers.org/lxd/introduction/ https://github.com/lxc/lxd"
39 +SRC_URI="https://linuxcontainers.org/downloads/${PN}/${P}.tar.gz"
40 +
41 +# Needs to include licenses for all bundled programs and libraries.
42 +LICENSE="Apache-2.0 BSD BSD-2 LGPL-3 MIT MPL-2.0"
43 +SLOT="0"
44 +KEYWORDS="~amd64"
45 +IUSE="apparmor +ipv6 nls"
46 +
47 +DEPEND="app-arch/xz-utils
48 + >=app-emulation/lxc-3.0.0[apparmor?,seccomp]
49 + dev-lang/tcl
50 + dev-libs/libuv
51 + dev-libs/lzo
52 + net-dns/dnsmasq[dhcp,ipv6?]"
53 +RDEPEND="${DEPEND}
54 + acct-group/lxd
55 + net-firewall/ebtables
56 + net-firewall/iptables[ipv6?]
57 + sys-apps/iproute2[ipv6?]
58 + sys-fs/fuse:0=
59 + sys-fs/lxcfs
60 + sys-fs/squashfs-tools
61 + virtual/acl"
62 +BDEPEND=">=dev-lang/go-1.13
63 + nls? ( sys-devel/gettext )"
64 +
65 +CONFIG_CHECK="
66 + ~BRIDGE
67 + ~DUMMY
68 + ~IP6_NF_NAT
69 + ~IP6_NF_TARGET_MASQUERADE
70 + ~IPV6
71 + ~IP_NF_NAT
72 + ~IP_NF_TARGET_MASQUERADE
73 + ~MACVLAN
74 + ~NETFILTER_XT_MATCH_COMMENT
75 + ~NET_IPGRE
76 + ~NET_IPGRE_DEMUX
77 + ~NET_IPIP
78 + ~NF_NAT_MASQUERADE
79 + ~VSOCKETS
80 + ~VXLAN
81 +"
82 +
83 +# 4.0.3: Network fetching fixed, but tests don't work when ran inside container.
84 +RESTRICT="test"
85 +
86 +# Go magic.
87 +QA_PREBUILT="/usr/lib/lxd/libdqlite.so.0.0.1
88 + /usr/bin/fuidshift
89 + /usr/bin/lxc
90 + /usr/bin/lxc-to-lxd
91 + /usr/bin/lxd-agent
92 + /usr/bin/lxd-benchmark
93 + /usr/bin/lxd-p2c
94 + /usr/sbin/lxd"
95 +
96 +EGO_PN="github.com/lxc/lxd"
97 +GOPATH="${S}/_dist" # this seems to reset every now and then, though
98 +
99 +common_op() {
100 + local i
101 + for i in dqlite raft; do
102 + cd "${GOPATH}"/deps/${i} || die "failed to switch dir to ${i}"
103 + "${@}"
104 + cd "${S}" || die "failed to switch dir back from ${i} to ${S}"
105 + done
106 +}
107 +
108 +src_prepare() {
109 + default
110 +
111 + export GOPATH="${S}/_dist"
112 +
113 + sed -i \
114 + -e "s:\./configure:./configure --prefix=/usr --libdir=${EPREFIX}/usr/lib/lxd:g" \
115 + -e "s:make:make ${MAKEOPTS}:g" \
116 + Makefile || die
117 +
118 + sed -i 's#lib$#lib/lxd#' "${GOPATH}"/deps/libco/Makefile || die
119 + sed -i 's#zfs version 2>/dev/null | cut -f 2 -d - | head -1#< /sys/module/zfs/version cut -f 1#' "${GOPATH}"/deps/raft/configure.ac || die
120 +
121 + common_op eautoreconf
122 +}
123 +
124 +src_configure() {
125 + export GOPATH="${S}/_dist"
126 +
127 + export CO_CFLAGS="-I${GOPATH}/deps/libco/"
128 + export CO_LIBS="${GOPATH}/deps/libco/"
129 +
130 + export RAFT_CFLAGS="-I${GOPATH}/deps/raft/include/"
131 + export RAFT_LIBS="${GOPATH}/deps/raft/.libs"
132 +
133 + export SQLITE_CFLAGS="-I${GOPATH}/deps/sqlite"
134 + export SQLITE_LIBS="${GOPATH}/deps/sqlite/.libs"
135 +
136 + export PKG_CONFIG_PATH="${GOPATH}/sqlite/:${GOPATH}/libco/:${GOPATH}/raft/"
137 +
138 + cd "${GOPATH}/deps/sqlite" || die
139 + econf --enable-replication --disable-amalgamation --disable-tcl --libdir="${EPREFIX}/usr/lib/lxd"
140 +
141 + common_op econf --libdir="${EPREFIX}"/usr/lib/lxd
142 +}
143 +
144 +src_compile() {
145 + export GOPATH="${S}/_dist"
146 +
147 + export CGO_CFLAGS="${CGO_CFLAGS} -I${GOPATH}/deps/sqlite/ -I${GOPATH}/deps/dqlite/include/ -I${GOPATH}/deps/raft/include/ -I${GOPATH}/deps/libco/"
148 + export CGO_LDFLAGS="${CGO_LDFLAGS} -L${GOPATH}/deps/sqlite/.libs/ -L${GOPATH}/deps/dqlite/.libs/ -L${GOPATH}/deps/raft/.libs -L${GOPATH}/deps/libco/ -Wl,-rpath,${EPREFIX}/usr/lib/lxd"
149 + export LD_LIBRARY_PATH="${GOPATH}/deps/sqlite/.libs/:${GOPATH}/deps/dqlite/.libs/:${GOPATH}/deps/raft/.libs:${GOPATH}/deps/libco/:${LD_LIBRARY_PATH}"
150 +
151 + local j
152 + for j in sqlite raft libco; do
153 + cd "${GOPATH}"/deps/${j} || die
154 + emake
155 + done
156 +
157 + ln -s libco.so.0.1.0 libco.so || die
158 + ln -s libco.so.0.1.0 libco.so.0 || die
159 +
160 + cd "${GOPATH}/deps/dqlite" || die
161 + emake CFLAGS="-I${GOPATH}/deps/sqlite -I${GOPATH}/deps/raft/include" LDFLAGS="-L${GOPATH}/deps/sqlite -L${GOPATH}/deps/raft"
162 +
163 + cd "${S}" || die
164 +
165 + for k in fuidshift lxd-agent lxd-benchmark lxd-p2c lxc lxc-to-lxd; do
166 + go install -v -x ${EGO_PN}/${k} || die "failed compiling ${k}"
167 + done
168 +
169 + go install -v -x -tags libsqlite3 ${EGO_PN}/lxd || die "Failed to build the daemon"
170 +
171 + use nls && emake build-mo
172 +}
173 +
174 +src_test() {
175 + export GOPATH="${S}/_dist"
176 +
177 + export CGO_CFLAGS="${CGO_CFLAGS} -I${GOPATH}/deps/sqlite/ -I${GOPATH}/deps/dqlite/include/ -I${GOPATH}/deps/raft/include/ -I${GOPATH}/deps/libco/"
178 + export CGO_LDFLAGS="${CGO_LDFLAGS} -L${GOPATH}/deps/sqlite/.libs/ -L${GOPATH}/deps/dqlite/.libs/ -L${GOPATH}/deps/raft/.libs -L${GOPATH}/deps/libco/ -Wl,-rpath,${EPREFIX}/usr/lib/lxd"
179 + export LD_LIBRARY_PATH="${GOPATH}/deps/sqlite/.libs/:${GOPATH}/deps/dqlite/.libs/:${GOPATH}/deps/raft/.libs:${GOPATH}/deps/libco/:${LD_LIBRARY_PATH}"
180 +
181 + go test -v ${EGO_PN}/lxd || die
182 +}
183 +
184 +src_install() {
185 + local bindir="_dist/bin"
186 + export GOPATH="${S}/_dist"
187 +
188 + dosbin ${bindir}/lxd
189 +
190 + for l in fuidshift lxd-agent lxd-benchmark lxd-p2c lxc lxc-to-lxd; do
191 + dobin ${bindir}/${l}
192 + done
193 +
194 + for m in dqlite libco raft sqlite; do
195 + cd "${GOPATH}"/deps/${m} || die "failed switching into ${GOPATH}/${m}"
196 + emake DESTDIR="${D}" install
197 + done
198 +
199 + cd "${S}" || die
200 +
201 + # We only need bundled libs during src_compile, and we don't want anything
202 + # to link against these.
203 + rm "${ED}"/usr/bin/sqlite3 || die
204 + rm -r "${ED}"/usr/include || die
205 + rm -r "${ED}"/usr/lib/lxd/*.a || die
206 + rm -r "${ED}"/usr/lib/lxd/pkgconfig || die
207 +
208 + newbashcomp scripts/bash/lxd-client lxc
209 +
210 + newconfd "${FILESDIR}"/lxd-4.0.0.confd lxd
211 + newinitd "${FILESDIR}"/lxd-4.0.0.initd lxd
212 +
213 + if use apparmor; then
214 + systemd_newunit "${FILESDIR}"/lxd-4.0.0_apparmor.service lxd.service
215 + else
216 + systemd_newunit "${FILESDIR}"/lxd-4.0.0.service lxd.service
217 + fi
218 +
219 + systemd_newunit "${FILESDIR}"/lxd-containers-4.0.0.service lxd-containers.service
220 + systemd_newunit "${FILESDIR}"/lxd-4.0.0.socket lxd.socket
221 +
222 + dodoc AUTHORS doc/*
223 + use nls && domo po/*.mo
224 +}
225 +
226 +pkg_postinst() {
227 + elog
228 + elog "Consult https://wiki.gentoo.org/wiki/LXD for more information,"
229 + elog "including a Quick Start."
230 + elog
231 + elog "Optional features:"
232 + optfeature "btrfs storage backend" sys-fs/btrfs-progs
233 + optfeature "lvm2 storage backend" sys-fs/lvm2
234 + optfeature "zfs storage backend" sys-fs/zfs
235 + elog
236 + elog "Be sure to add your local user to the lxd group."
237 +}