blob: 7ec2cdda5ed375f593ae3d09cf72910231c216ff [file] [log] [blame]
# Copyright (c) 2009 The Chromium OS Authors. All rights reserved.
# Distributed under the terms of the GNU General Public License v2
EAPI=2
CROS_WORKON_COMMIT="ad07f0a4c25c71665994c616df941818f225ef55"
CROS_WORKON_PROJECT="chromiumos/platform/cryptohome"
inherit cros-debug cros-workon toolchain-funcs
DESCRIPTION="Encrypted home directories for Chromium OS"
HOMEPAGE="http://src.chromium.org"
SRC_URI=""
LICENSE="BSD"
SLOT="0"
KEYWORDS="amd64 arm x86"
IUSE="test"
RDEPEND="
app-crypt/trousers
chromeos-base/libscrypt
dev-libs/dbus-glib
dev-libs/glib
dev-libs/nss
dev-libs/opencryptoki
dev-libs/openssl
dev-libs/protobuf
sys-apps/keyutils
sys-fs/ecryptfs-utils"
DEPEND="
test? ( dev-cpp/gtest )
chromeos-base/libchrome
chromeos-base/libchromeos
${RDEPEND}"
CROS_WORKON_LOCALNAME="$(basename ${CROS_WORKON_PROJECT})"
# TODO(msb): fix this ugly hackery
src_unpack() {
cros-workon_src_unpack
pushd "${S}"
mkdir "${CROS_WORKON_LOCALNAME}"
mv * "${CROS_WORKON_LOCALNAME}"
popd
}
src_compile() {
cros-debug-add-NDEBUG
tc-export CC CXX AR RANLIB LD NM PKG_CONFIG
export CCFLAGS="$CFLAGS"
pushd cryptohome
# Build the daemon and command line client
scons cryptohomed || die "cryptohomed compile failed."
scons cryptohome || die "cryptohome compile failed."
popd
}
src_test() {
cros-debug-add-NDEBUG
tc-export CC CXX AR RANLIB LD NM PKG_CONFIG
export CCFLAGS="$CFLAGS"
pushd cryptohome
# Only build the tests
# TODO(wad) eclass-ify this.
scons cryptohome_testrunner ||
die "cryptohome_testrunner compile failed."
if use x86 ; then
# Create data for unittests
./init_cryptohome_data.sh test_image_dir
./cryptohome_testrunner ${GTEST_ARGS} || \
die "unit tests (with ${GTEST_ARGS}) failed!"
fi
popd
}
src_install() {
S="${S}/cryptohome"
dosbin "${S}/cryptohomed"
dosbin "${S}/cryptohome"
dolib "${S}/libcryptohome.so"
dobin "${S}/email_to_image"
dodir /etc/dbus-1/system.d
insinto /etc/dbus-1/system.d
doins "${S}/etc/Cryptohome.conf"
dodir /usr/share/dbus-1/services/
insinto /usr/share/dbus-1/services/
doins "${S}/share/org.chromium.Cryptohome.service"
dodir /usr/lib/chromeos-cryptohome
insinto /usr/lib/chromeos-cryptohome
doins "${S}"/lib/*
dodir /usr/lib/chromeos-cryptohome/utils
insinto /usr/lib/chromeos-cryptohome/utils
doins "${S}"/lib/utils/*
# For opencryptoki.
dodir /etc/skel/.tpm
}