blob: d321646486349bf5226518eca29ea0d8362c323e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
DESCRIPTION="Fast, dense and secure container management"
HOMEPAGE="https://linuxcontainers.org/lxd/introduction/"
EGO_PN_PARENT="github.com/lxc"
EGO_PN="${EGO_PN_PARENT}/lxd"
SRC_URI="http://961db08fe45d5f5dd062-b8a7a040508aea6d369676e49b80719d.r29.cf2.rackcdn.com/${P}.tar.bz2"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64"
PLOCALES="de fr ja"
IUSE="nls test +image"
# IUSE and PLOCALES must be defined before l10n inherited
inherit bash-completion-r1 eutils golang-build l10n systemd user vcs-snapshot
DEPEND="
>=dev-lang/go-1.4.2:=
dev-libs/protobuf
dev-vcs/git
nls? ( sys-devel/gettext )
test? (
app-misc/jq
dev-db/sqlite
net-misc/curl
sys-devel/gettext
)
"
RDEPEND="
app-admin/cgmanager
app-arch/xz-utils
app-emulation/lxc[cgmanager]
net-analyzer/openbsd-netcat
net-misc/bridge-utils
virtual/acl
image? (
app-crypt/gnupg
>=dev-lang/python-3.2
)
"
# KNOWN ISSUES:
# - Translations may not work. I've been unsuccessful in forcing
# localized output. Anyway, upstream (Canonical) doesn't install the
# message files.
src_prepare() {
cd "${S}/src/${EGO_PN}"
# Upstream requires the openbsd flavor of netcat (with -U), but
# Gentoo installs that with a renamed binary
epatch "${FILESDIR}/${P}-nc-binary-name.patch"
# Warn on unhandled locale changes
l10n_find_plocales_changes po "" .po
}
src_compile() {
golang-build_src_compile
cd "${S}/src/${EGO_PN}"
# Build binaries
GOPATH="${S}" emake
use nls && emake build-mo
}
src_test() {
# Go native tests should succeed
golang-build_src_test
}
src_install() {
# Installs all src,pkg to /usr/lib/go-gentoo
golang-build_src_install
cd "${S}"
dobin bin/fuidshift
dobin bin/lxc
dosbin bin/lxd
cd "src/${EGO_PN}"
use image && dobin scripts/lxd-images
if use nls; then
for lingua in ${PLOCALES}; do
if use linguas_${lingua}; then
domo po/${lingua}.mo
fi
done
fi
newinitd "${FILESDIR}"/lxd.initd lxd
newconfd "${FILESDIR}"/lxd.confd lxd
systemd_dounit "${FILESDIR}"/lxd.service
newbashcomp config/bash/lxc.in lxc
dodoc AUTHORS CONTRIBUTING.md README.md
docinto specs
dodoc specs/*
}
pkg_config() {
if brctl show lxcbr0 2>&1 | grep "No such device" >/dev/null; then
brctl addbr lxcbr0
fi
}
pkg_postinst() {
# The control socket will be owned by (and writeable by) this group.
enewgroup lxd
# Ubuntu also defines an lxd user but it appears unused (the daemon
# must run as root)
# precedent: sys-libs/timezone-data
pkg_config
einfo
einfo "To interact with the service as a non-root user, add yourself to the"
einfo "lxd group. This requires you to log out and log in again."
einfo
}
|