blob: d8195a5eb1d8654a67d846873179a7ec5216831b [file] [log] [blame]
# Copyright 2018 The Chromium OS Authors. All rights reserved.
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit cros-constants libchrome
DESCRIPTION="Packages tools for termina VM containers"
HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/vm_tools"
LICENSE="BSD-Google"
SLOT="0"
KEYWORDS="*"
IUSE="vm_borealis"
S="${WORKDIR}"
RDEPEND="
x11-themes/cros-adapta
"
DEPEND="
chromeos-base/chunnel
chromeos-base/sommelier
chromeos-base/vm_guest_tools
vm_borealis? ( chromeos-base/crash-reporter )
net-libs/grpc:=
dev-libs/protobuf:=
media-libs/mesa
x11-apps/xkbcomp
x11-base/xwayland
"
src_install() {
local tools=(
"/usr/bin/chunnel"
"/usr/bin/garcon"
"/usr/bin/guest_service_failure_notifier"
"/usr/bin/notificationd"
"/usr/bin/sommelier"
"/usr/bin/wayland_demo"
"/usr/bin/Xwayland"
"/usr/bin/x11_demo"
"/usr/bin/xkbcomp"
"/usr/sbin/vshd"
)
if use vm_borealis; then
tools+=(
"/sbin/init"
"/sbin/crash_reporter"
"/usr/bin/vm_syslog"
)
fi
"${CHROMITE_BIN_DIR}"/lddtree --root="${SYSROOT}" --bindir=/bin \
--libdir=/lib --generate-wrappers \
--copy-to-tree="${WORKDIR}"/container_pkg/ \
"${tools[@]}"
# These libraries are dlopen()'d so lddtree doesn't know about them.
local dlopen_libs=(
$("${CHROMITE_BIN_DIR}"/lddtree --root="${SYSROOT}" --list \
"/usr/$(get_libdir)/dri/i965_dri.so" \
"/usr/$(get_libdir)/dri/swrast_dri.so" \
"/usr/$(get_libdir)/dri/virtio_gpu_dri.so" \
"/usr/$(get_libdir)/libwayland-egl.so.1" \
"/usr/$(get_libdir)/libEGL.so.1" \
"/usr/$(get_libdir)/libGLESv2.so.2" \
"/$(get_libdir)/libnss_compat.so.2" \
"/$(get_libdir)/libnss_files.so.2" \
"/$(get_libdir)/libnss_nis.so.2" \
"/$(get_libdir)/libnss_dns.so.2"
)
)
cp -aL "${dlopen_libs[@]}" "${WORKDIR}"/container_pkg/lib/
# These are scripts, so lddtree doesn't like them.
cp -aL "${SYSROOT}/usr/bin/upgrade_container" "${WORKDIR}/container_pkg/bin"
insinto /opt/google/cros-containers
insopts -m0755
doins -r "${WORKDIR}"/container_pkg/*
}