forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Package-Manager: portage-2.3.2
- Loading branch information
Erik Mackdanz
committed
Oct 29, 2016
1 parent
39c2767
commit eb97b37
Showing
5 changed files
with
295 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
DIST lxd-2.2.tar.bz2 2234844 SHA256 c76b8698a9266afa5e4aec3ccaa283226cc52232e10ad376f02c4bcd000126b7 SHA512 272cd02f8533a18a51739fd2698f239cd57ae852fbf828d3dc53ed1253629808984720bde9173ae7df1f9e94389ab929b53893e7b57c2d0f6571744365c1c93a WHIRLPOOL d76c5ed9bedde8d51403a452bfc1f33bcb19d71fca79439c63f2b70bd58544ff0c05f4008f2603935dd1c63c4d0ea5c733775c723330de692fc5f6cd471d1529 | ||
DIST lxd-2.3.tar.bz2 2248758 SHA256 cd746b3f9682e50b7973e6175a5b48b999748face9e4b515491773ade9d754c4 SHA512 746ea9c2e9266a8482a62fc9e9fdb83f0713b0094e1b52957c5bf2fbd00f4bf1d7a0978086ab123d60ac02bd0dd1f00d46801959ced3b01308170dd7911c7bdc WHIRLPOOL f899e78bd3082ddd46dab5d09d83fe23a23aabbee09488f48ef2ff4a9f3bc41878ecb50b4223235c12962b01468c7b0124c0ae54e60d452f224824cbc89d144e | ||
DIST lxd-2.4.1.tar.bz2 2257768 SHA256 4a02c74819870be5df71227f90be4bc1b7cb90784c115c9f96a6174c8d4dcf75 SHA512 84ce4911a55d495f809a4174061577eceba0b3cd0381170a23fea91651049e43ec809494bf885b315b2d5fde7cda19ee29eed71259b88d3a789fd87c26aac3db WHIRLPOOL 70a2eb3c6b239e9d8682005134ae5c8e991b2f331685b971e1e8d09173aec8c34848527c9f893af0f937384d0f33f7a9e626f8063a00e2fa450331acf00ad7fe | ||
DIST lxd-2.5.tar.bz2 2267313 SHA256 d87ac77ec6f47cd3e3417a78b0c315dac367bc89c532cf1784d80b31e57cfc8d SHA512 c023f2b9ccd958560eead23806cb60a04371a3721420f5c0d65e55cf2d7647d6690677619c4f8fa91573545817a1444d9d61f6a2b6ca8c3870136911cb1fbce9 WHIRLPOOL e4702e2597c5fe88ffa5139b829146ea474959799910bed79db617d9486da73d9de77c1ad398c1112d04109a858e5684f2c676bfe9fd4d68cf5081fbc0f6ae7a |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
--- /Makefile.orig 2016-07-11 23:34:40.299664675 +0000 | ||
+++ /Makefile 2016-07-11 23:37:00.816018727 +0000 | ||
@@ -12,19 +12,11 @@ | ||
|
||
.PHONY: default | ||
default: | ||
- # Must a few times due to go get race | ||
- -go get -t -v -d ./... | ||
- -go get -t -v -d ./... | ||
- -go get -t -v -d ./... | ||
go install -v $(DEBUG) ./... | ||
@echo "LXD built successfully" | ||
|
||
.PHONY: client | ||
client: | ||
- # Must a few times due to go get race | ||
- -go get -t -v -d ./... | ||
- -go get -t -v -d ./... | ||
- -go get -t -v -d ./... | ||
go install -v $(DEBUG) ./lxc | ||
@echo "LXD client built successfully" | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
# Group which owns the shared socket | ||
LXD_OPTIONS+=" --group lxd" | ||
|
||
|
||
|
||
# Enable cpu profiling into the specified file | ||
#LXD_OPTIONS+=" --cpuprofile /tmp/lxc_cpu_profile" | ||
|
||
# Enable memory profiling into the specified file | ||
#LXD_OPTIONS+=" --memprofile /tmp/lxc_mem_profile" | ||
|
||
|
||
|
||
# Enables debug mode | ||
#LXD_OPTIONS+=" --debug" | ||
|
||
# For debugging, print a complete stack trace every n seconds | ||
#LXD_OPTIONS+=" --print-goroutines-every 5" | ||
|
||
# Enables verbose mode | ||
#LXD_OPTIONS+=" -v" | ||
|
||
# Logfile to log to | ||
#LXD_OPTIONS+=" --logfile /var/log/lxd/lxd.log" | ||
|
||
# Enables syslog logging | ||
#LXD_OPTIONS+=" --syslog" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
#!/sbin/openrc-run | ||
# Copyright 1999-2016 Gentoo Foundation | ||
# Distributed under the terms of the GNU General Public License v2 | ||
# $Id$ | ||
|
||
DAEMON=/usr/sbin/lxd | ||
PIDFILE=/run/lxd.pid | ||
|
||
extra_commands="stopall" | ||
|
||
depend() { | ||
need net | ||
use lxcfs | ||
|
||
# remove with 2.0 release | ||
need cgmanager | ||
} | ||
|
||
start() { | ||
ebegin "Starting lxd server" | ||
|
||
start-stop-daemon --start \ | ||
--pidfile ${PIDFILE} \ | ||
--exec ${DAEMON} \ | ||
--background \ | ||
--make-pidfile \ | ||
-- \ | ||
${LXD_OPTIONS} | ||
|
||
eend $? | ||
} | ||
|
||
stop() { | ||
if [[ $RC_GOINGDOWN = YES ]] || [[ $RC_REBOOT = YES ]]; then | ||
stopall | ||
else | ||
ebegin "Stopping lxd service (but not containers)" | ||
start-stop-daemon --stop --quiet -R TERM/45 -p ${PIDFILE} | ||
eend $? | ||
fi | ||
} | ||
|
||
stopall() { | ||
ebegin "Stopping lxd service and containers" | ||
if "${DAEMON}" shutdown; then | ||
/etc/init.d/lxd zap | ||
rm -f ${PIDFILE} | ||
fi | ||
eend $? | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,195 @@ | ||
# Copyright 1999-2016 Gentoo Foundation | ||
# Distributed under the terms of the GNU General Public License v2 | ||
# $Id$ | ||
|
||
EAPI=6 | ||
|
||
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" | ||
|
||
# The source is repackaged using a script at: | ||
# https://dev.gentoo.org/~stasibear/lxd_repackage.py | ||
# This is necessary because go's native package management assumes | ||
# that a build starts with checking out many git repositories, often | ||
# from HEAD. This provides no way to build the same code repeatably, | ||
# and anyway portage requires that fetching is only done from SRC_URI. | ||
# The only sane alternative I've seen is in the consul ebuild, which | ||
# is more transparent but raises other questions. | ||
SRC_URI="https://dev.gentoo.org/~stasibear/distfiles/${P}.tar.bz2" | ||
|
||
LICENSE="Apache-2.0" | ||
SLOT="0" | ||
KEYWORDS="~amd64" | ||
|
||
PLOCALES="de fr ja" | ||
IUSE="+daemon nls test" | ||
|
||
# IUSE and PLOCALES must be defined before l10n inherited | ||
inherit bash-completion-r1 golang-build l10n linux-info systemd user vcs-snapshot | ||
|
||
DEPEND=" | ||
>=dev-lang/go-1.7.1 | ||
dev-go/go-crypto | ||
dev-libs/protobuf | ||
nls? ( sys-devel/gettext ) | ||
test? ( | ||
app-misc/jq | ||
dev-db/sqlite | ||
net-misc/curl | ||
sys-devel/gettext | ||
) | ||
" | ||
|
||
RDEPEND=" | ||
daemon? ( | ||
app-admin/cgmanager | ||
app-arch/xz-utils | ||
app-emulation/lxc[cgmanager,seccomp] | ||
net-dns/dnsmasq[dhcp,ipv6] | ||
net-misc/rsync[xattr] | ||
sys-apps/iproute2[ipv6] | ||
sys-fs/squashfs-tools | ||
virtual/acl | ||
) | ||
" | ||
|
||
CONFIG_CHECK=" | ||
~BRIDGE | ||
~DUMMY | ||
~IP6_NF_NAT | ||
~IP6_NF_TARGET_MASQUERADE | ||
~IPV6 | ||
~IP_NF_NAT | ||
~IP_NF_TARGET_MASQUERADE | ||
~MACVLAN | ||
~NETFILTER_XT_MATCH_COMMENT | ||
~NET_IPGRE | ||
~NET_IPGRE_DEMUX | ||
~NET_IPIP | ||
~NF_NAT_MASQUERADE_IPV4 | ||
~NF_NAT_MASQUERADE_IPV6 | ||
~VXLAN | ||
" | ||
|
||
ERROR_BRIDGE="BRIDGE: needed for network commands" | ||
ERROR_DUMMY="DUMMY: needed for network commands" | ||
ERROR_IP6_NF_NAT="IP6_NF_NAT: needed for network commands" | ||
ERROR_IP6_NF_TARGET_MASQUERADE="IP6_NF_TARGET_MASQUERADE: needed for network commands" | ||
ERROR_IPV6="IPV6: needed for network commands" | ||
ERROR_IP_NF_NAT="IP_NF_NAT: needed for network commands" | ||
ERROR_IP_NF_TARGET_MASQUERADE="IP_NF_TARGET_MASQUERADE: needed for network commands" | ||
ERROR_MACVLAN="MACVLAN: needed for network commands" | ||
ERROR_NETFILTER_XT_MATCH_COMMENT="NETFILTER_XT_MATCH_COMMENT: needed for network commands" | ||
ERROR_NET_IPGRE="NET_IPGRE: needed for network commands" | ||
ERROR_NET_IPGRE_DEMUX="NET_IPGRE_DEMUX: needed for network commands" | ||
ERROR_NET_IPIP="NET_IPIP: needed for network commands" | ||
ERROR_NF_NAT_MASQUERADE_IPV4="NF_NAT_MASQUERADE_IPV4: needed for network commands" | ||
ERROR_NF_NAT_MASQUERADE_IPV6="NF_NAT_MASQUERADE_IPV6: needed for network commands" | ||
ERROR_VXLAN="VXLAN: needed for network commands" | ||
|
||
PATCHES=("${FILESDIR}/${P}-dont-go-get.patch") | ||
|
||
# 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}" || die "Failed to change to deep src dir" | ||
|
||
default_src_prepare | ||
|
||
tmpgoroot="${T}/goroot" | ||
mkdir -p "$tmpgoroot" || die "Failed to create temporary GOROOT" | ||
cp -sR "$(get_golibdir_gopath)"/* "${tmpgoroot}" || die "Failed to copy files to temporary GOROOT" | ||
|
||
# Warn on unhandled locale changes | ||
l10n_find_plocales_changes po "" .po | ||
} | ||
|
||
src_compile() { | ||
golang-build_src_compile | ||
|
||
cd "${S}/src/${EGO_PN}" || die "Failed to change to deep src dir" | ||
|
||
tmpgoroot="${T}/goroot" | ||
if use daemon; then | ||
# Build binaries | ||
GOPATH="${S}:${tmpgoroot}" emake | ||
else | ||
# build client tool | ||
GOPATH="${S}:${tmpgoroot}" emake client | ||
fi | ||
|
||
use nls && emake build-mo | ||
} | ||
|
||
src_test() { | ||
if use daemon; then | ||
# Go native tests should succeed | ||
golang-build_src_test | ||
fi | ||
} | ||
|
||
src_install() { | ||
# Installs all src,pkg to /usr/lib/go-gentoo | ||
golang-build_src_install | ||
|
||
cd "${S}" | ||
dobin bin/lxc | ||
use daemon && dosbin bin/lxd | ||
|
||
cd "src/${EGO_PN}" | ||
|
||
if use nls; then | ||
for lingua in ${PLOCALES}; do | ||
if use linguas_${lingua}; then | ||
domo po/${lingua}.mo | ||
fi | ||
done | ||
fi | ||
|
||
if use daemon; then | ||
newinitd "${FILESDIR}"/${P}.initd lxd | ||
newconfd "${FILESDIR}"/${P}.confd lxd | ||
|
||
systemd_dounit "${FILESDIR}"/lxd.service | ||
fi | ||
|
||
newbashcomp config/bash/lxd-client lxc | ||
|
||
dodoc AUTHORS CONTRIBUTING.md README.md doc/* | ||
} | ||
|
||
pkg_postinst() { | ||
einfo | ||
einfo "Consult https://wiki.gentoo.org/wiki/LXD for more information," | ||
einfo "including a Quick Start." | ||
|
||
# The messaging below only applies to daemon installs | ||
use daemon || return 0 | ||
|
||
# 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) | ||
|
||
einfo | ||
einfo "Though not strictly required, some features are enabled at run-time" | ||
einfo "when the relevant helper programs are detected:" | ||
einfo "- sys-apps/apparmor" | ||
einfo "- sys-fs/btrfs-progs" | ||
einfo "- sys-fs/lvm2" | ||
einfo "- sys-fs/lxcfs" | ||
einfo "- sys-fs/zfs" | ||
einfo "- sys-process/criu" | ||
einfo | ||
einfo "Since these features can't be disabled at build-time they are" | ||
einfo "not USE-conditional." | ||
einfo | ||
einfo "Networks with bridge.mode=fan are unsupported due to requiring" | ||
einfo "a patched kernel and iproute2." | ||
} |