Merge pull request #410 from marineam/usr

Upgrade support for /usr
This commit is contained in:
Michael Marineau 2014-03-12 17:50:16 -07:00
commit b0beaa285e
17 changed files with 38 additions and 435 deletions

View File

@ -1,83 +0,0 @@
# Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
# Distributed under the terms of the GNU General Public License v2
EAPI="4"
CROS_WORKON_COMMIT="95815a7cc15abea574e1b06d9fd403b90b29ba01"
CROS_WORKON_PROJECT="coreos/installer"
CROS_WORKON_LOCALNAME="installer"
CROS_WORKON_LOCALDIR="src/platform"
CROS_WORKON_OUTOFTREE_BUILD=1
CROS_WORKON_REPO="git://github.com"
inherit cros-workon cros-debug cros-au
DESCRIPTION="CoreOS Installer"
SRC_URI=""
LICENSE="BSD"
SLOT="0"
KEYWORDS="amd64 arm x86"
IUSE="32bit_au cros_host"
DEPEND="
coreos-base/verity
dev-cpp/gmock"
# TODO(adlr): remove coreutils dep if we move to busybox
RDEPEND="
app-admin/sudo
coreos-base/vboot_reference
dev-util/shflags
sys-apps/coreutils
sys-apps/flashrom
sys-apps/hdparm
sys-apps/rootdev
sys-apps/util-linux
sys-apps/which
sys-block/parted
sys-fs/dosfstools
sys-fs/e2fsprogs"
src_prepare() {
cros-workon_src_prepare
}
src_configure() {
# need this to get the verity headers working
append-cxxflags -I"${SYSROOT}"/usr/include/verity/
append-cxxflags -I"${SYSROOT}"/usr/include/vboot
append-ldflags -L"${SYSROOT}"/usr/lib/vboot32
use 32bit_au && board_setup_32bit_au_env
cros-workon_src_configure
}
src_compile() {
# We don't need the installer in the sdk, just helper scripts.
use cros_host && return 0
cros-workon_src_compile
}
src_test() {
# Needed for `cros_run_unit_tests`.
cros-workon_src_test
}
src_install() {
cros-workon_src_install
local path
if use cros_host ; then
# Copy chromeos-* scripts to /usr/lib/installer/ on host.
path="usr/lib/installer"
else
path="usr/sbin"
dobin "${OUT}"/cros_installer
dosym ${path}/chromeos-postinst /postinst
fi
exeinto /${path}
doexe chromeos-*
doexe coreos-*
}

View File

@ -1,82 +0,0 @@
# Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
# Distributed under the terms of the GNU General Public License v2
EAPI="4"
CROS_WORKON_PROJECT="coreos/installer"
CROS_WORKON_LOCALNAME="installer"
CROS_WORKON_LOCALDIR="src/platform"
CROS_WORKON_OUTOFTREE_BUILD=1
CROS_WORKON_REPO="git://github.com"
inherit cros-workon cros-debug cros-au
DESCRIPTION="CoreOS Installer"
SRC_URI=""
LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64 ~arm ~x86"
IUSE="32bit_au cros_host"
DEPEND="
coreos-base/verity
dev-cpp/gmock"
# TODO(adlr): remove coreutils dep if we move to busybox
RDEPEND="
app-admin/sudo
coreos-base/vboot_reference
dev-util/shflags
sys-apps/coreutils
sys-apps/flashrom
sys-apps/hdparm
sys-apps/rootdev
sys-apps/util-linux
sys-apps/which
sys-block/parted
sys-fs/dosfstools
sys-fs/e2fsprogs"
src_prepare() {
cros-workon_src_prepare
}
src_configure() {
# need this to get the verity headers working
append-cxxflags -I"${SYSROOT}"/usr/include/verity/
append-cxxflags -I"${SYSROOT}"/usr/include/vboot
append-ldflags -L"${SYSROOT}"/usr/lib/vboot32
use 32bit_au && board_setup_32bit_au_env
cros-workon_src_configure
}
src_compile() {
# We don't need the installer in the sdk, just helper scripts.
use cros_host && return 0
cros-workon_src_compile
}
src_test() {
# Needed for `cros_run_unit_tests`.
cros-workon_src_test
}
src_install() {
cros-workon_src_install
local path
if use cros_host ; then
# Copy chromeos-* scripts to /usr/lib/installer/ on host.
path="usr/lib/installer"
else
path="usr/sbin"
dobin "${OUT}"/cros_installer
dosym ${path}/chromeos-postinst /postinst
fi
exeinto /${path}
doexe chromeos-*
doexe coreos-*
}

View File

@ -104,7 +104,6 @@ RDEPEND="${RDEPEND}
coreos-base/cros_boot_mode
coreos-base/vboot_reference
coreos-base/update_engine
coreos-base/coreos-installer
coreos-base/coreos-init
coreos-base/coreos-cloudinit
coreos-base/coretest

View File

@ -0,0 +1 @@
cros-devutils-9999.ebuild

View File

@ -1,143 +0,0 @@
# Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
# Distributed under the terms of the GNU General Public License v2
EAPI="4"
CROS_WORKON_COMMIT="e4a8c87fabfb33ab735da0c84edb4990e69fe921"
CROS_WORKON_PROJECT="coreos/dev-util"
CROS_WORKON_REPO="git://github.com"
CROS_WORKON_LOCALNAME="dev"
CROS_WORKON_LOCALDIR="src/platform"
inherit cros-workon multilib python
DESCRIPTION="Development utilities for CoreOS"
HOMEPAGE="http://coreos.com"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="amd64 arm x86"
IUSE="cros_host test"
RDEPEND="cros_host? ( app-emulation/qemu )
app-portage/gentoolkit
cros_host? ( app-shells/bash )
!cros_host? ( !chromeos-base/gmerge )
dev-lang/python
dev-util/shflags
cros_host? ( dev-util/crosutils )
app-crypt/efitools
"
# These are all either bash / python scripts. No actual builds DEPS.
DEPEND=""
src_install() {
# Run the devserver Makefile.
emake install DESTDIR="$D"
dosym /build /var/lib/devserver/static/pkgroot
dosym /var/lib/devserver/static /usr/lib/devserver/static
if ! use cros_host; then
dobin gmerge stateful_update
else
local host_tools
host_tools=(
cros_bundle_firmware
cros_choose_profile
cros_chrome_make
cros_fetch_image
cros_sign_bootstub
cros_start_vm
cros_stop_vm
cros_workon
cros_workon_make
cros_write_firmware
dump_i2c
dump_tpm
gdb_remote
gdb_x86_local
gmergefs
image_to_live.sh
strip_package
ssh_no_update
willis
)
dobin "${host_tools[@]/#/host/}"
# Payload generation scripts.
dobin host/cros_generate_update_payload
dobin host/cros_generate_stateful_update_payload
# Repo and git bash completion.
insinto /usr/share/bash-completion
newins host/repo_bash_completion repo
dosym /usr/share/bash-completion/git /etc/bash_completion.d/git
dosym /usr/share/bash-completion/repo /etc/bash_completion.d/repo
insinto "$(python_get_sitedir)"
doins host/lib/*.py
insinto "/usr/lib/crosutils"
doins host/lib/cros_archive.sh
fi
}
src_test() {
cd "${S}" # Let's just run unit tests from ${S} rather than install and run.
# Run bundle_firmware tests
pushd host/lib >/dev/null
local libfile
for libfile in *.py; do
einfo Running tests in ${libfile}
python ${libfile} --test || \
die "Unit tests failed at ${libfile}!"
done
popd >/dev/null
pushd host/tests >/dev/null
for ut_file in *.py; do
echo Running tests in ${ut_file}
PYTHONPATH=../lib python ${ut_file} ||
die "Unit tests failed at ${ut_file}!"
done
popd >/dev/null
local TESTS=()
if ! use cros_host; then
TESTS+=( gmerge_test.py )
# FIXME(zbehan): import gmerge in gmerge_test.py won't work if we won't
# have the .py.
ln -sf gmerge gmerge.py
else
TESTS+=( autoupdate_unittest.py )
TESTS+=( builder_test.py )
TESTS+=( devserver_test.py )
TESTS+=( common_util_unittest.py )
TESTS+=( host/lib/cros_archive_unittest.sh )
#FIXME(zbehan): update_test.py doesn't seem to work right now.
fi
local test
for test in ${TESTS[@]} ; do
einfo "Running ${test}"
./${test} || die "Failed in ${test}"
done
}
pkg_preinst() {
# Handle pre-existing possibly problematic configurations of static
use cros_host || return 0
if [[ -e ${ROOT}/usr/bin/static && ! -L ${ROOT}/usr/bin/static ]] ; then
einfo "/usr/bin/static detected, and is not a symlink, performing cleanup"
# Well, I don't know what else should be done about it. Moving the
# files has several issues: handling of all kinds of links, special
# files, permissions, etc. Autoremval is not a good idea, what if
# this ended up with accidental destruction of the system?
local newname="static-old-${RANDOM}" # In case this happens more than once.
mv "${ROOT}"/usr/bin/static "${ROOT}"/usr/bin/${newname}
ewarn "/usr/bin/${newname} has the previous contents of static."
ewarn "It can be safely deleted (or kept around forever)."
fi
}

View File

@ -7,14 +7,20 @@ CROS_WORKON_REPO="git://github.com"
CROS_WORKON_LOCALNAME="dev"
CROS_WORKON_LOCALDIR="src/platform"
if [[ "${PV}" == 9999 ]]; then
KEYWORDS="~amd64 ~arm ~x86"
else
CROS_WORKON_COMMIT="22d26b046aaca60695c4b800f762a9f2d9d06dbd"
KEYWORDS="amd64 arm x86"
fi
inherit cros-workon multilib python
DESCRIPTION="Development utilities for ChromiumOS"
HOMEPAGE="http://www.chromium.org/"
DESCRIPTION="Development utilities for CoreOS"
HOMEPAGE="https://github.com/coreos/dev-util"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~arm ~x86"
IUSE="cros_host test"
RDEPEND="cros_host? ( app-emulation/qemu )
@ -24,6 +30,7 @@ RDEPEND="cros_host? ( app-emulation/qemu )
dev-lang/python
dev-util/shflags
cros_host? ( dev-util/crosutils )
app-crypt/efitools
"
# These are all either bash / python scripts. No actual builds DEPS.
DEPEND=""
@ -65,7 +72,6 @@ src_install() {
# Payload generation scripts.
dobin host/cros_generate_update_payload
dobin host/cros_generate_stateful_update_payload
# Repo and git bash completion.
insinto /usr/share/bash-completion

View File

@ -0,0 +1 @@
update_engine-9999.ebuild

View File

@ -1,109 +0,0 @@
# Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
# Distributed under the terms of the GNU General Public License v2
EAPI="4"
CROS_WORKON_COMMIT="388aff6fdb0f8c58a31eb6b00ac3810d11046c27"
CROS_WORKON_PROJECT="coreos/update_engine"
CROS_WORKON_REPO="git://github.com"
inherit toolchain-funcs cros-debug cros-workon scons-utils systemd
DESCRIPTION="Chrome OS Update Engine"
HOMEPAGE="http://www.chromium.org/"
SRC_URI=""
LICENSE="BSD"
SLOT="0"
KEYWORDS="amd64 arm x86"
IUSE="cros_host -delta_generator"
LIBCHROME_VERS="180609"
RDEPEND="app-arch/bzip2
coreos-base/coreos-ca-certificates
coreos-base/libchrome:${LIBCHROME_VERS}[cros-debug=]
coreos-base/libchromeos
coreos-base/metrics
coreos-base/verity
dev-cpp/gflags
dev-libs/dbus-glib
dev-libs/glib
dev-libs/libpcre
dev-libs/libxml2
dev-libs/openssl
dev-libs/protobuf
dev-util/bsdiff
net-misc/curl
sys-apps/rootdev
sys-fs/e2fsprogs
virtual/udev"
DEPEND="coreos-base/system_api
dev-cpp/gmock
dev-cpp/gtest
cros_host? ( dev-util/scons )
${RDEPEND}"
src_compile() {
tc-export CC CXX AR RANLIB LD NM PKG_CONFIG
cros-debug-add-NDEBUG
export CCFLAGS="$CFLAGS"
export BASE_VER=${LIBCHROME_VERS}
escons
}
src_test() {
UNITTESTS_BINARY=update_engine_unittests
TARGETS="${UNITTESTS_BINARY} test_http_server delta_generator"
escons ${TARGETS}
if ! use x86 && ! use amd64 ; then
einfo "Skipping tests on non-x86 platform..."
else
# We need to set PATH so that the `openssl` in the target
# sysroot gets executed instead of the host one (which is
# compiled differently). http://crosbug.com/27683
PATH="$SYSROOT/usr/bin:$PATH" \
"./${UNITTESTS_BINARY}" --gtest_filter='-*.RunAsRoot*' \
&& einfo "./${UNITTESTS_BINARY} (unprivileged) succeeded" \
|| die "./${UNITTESTS_BINARY} (unprivileged) failed, retval=$?"
sudo LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" PATH="$SYSROOT/usr/bin:$PATH" \
"./${UNITTESTS_BINARY}" --gtest_filter='*.RunAsRoot*' \
&& einfo "./${UNITTESTS_BINARY} (root) succeeded" \
|| die "./${UNITTESTS_BINARY} (root) failed, retval=$?"
fi
}
src_install() {
dosbin "${FILESDIR}"/update_engine_reboot_manager
systemd_dounit "${FILESDIR}"/update-engine-reboot-manager.service
systemd_enable_service multi-user.target update-engine-reboot-manager.service
dosbin update_engine
dobin update_engine_client
use delta_generator && dobin delta_generator
systemd_dounit "${FILESDIR}"/update-engine.service
systemd_enable_service multi-user.target update-engine.service
insinto /usr/share/dbus-1/services
doins org.chromium.UpdateEngine.service
insinto /usr/share/dbus-1/system.d
doins UpdateEngine.conf
insinto /lib/udev/rules.d
doins 99-gpio-dutflag.rules
insinto /usr/include/chromeos/update_engine
doins update_engine.dbusserver.h
doins update_engine.dbusclient.h
# PXE
exeinto /usr/lib/coreos/
doexe "${S}"/pxe/pxe_update_engine
systemd_dounit "${S}"/pxe/pxe-update-engine.service
systemd_dounit "${S}"/pxe/pxe-update-engine.timer
systemd_enable_service default.target pxe-update-engine.timer
}

View File

@ -5,6 +5,13 @@ EAPI="4"
CROS_WORKON_PROJECT="coreos/update_engine"
CROS_WORKON_REPO="git://github.com"
if [[ "${PV}" == 9999 ]]; then
KEYWORDS="~amd64 ~arm ~x86"
else
CROS_WORKON_COMMIT="751a28659ea1f4fcbcdc3da5b17d6fa805c1eec6"
KEYWORDS="amd64 arm x86"
fi
inherit toolchain-funcs cros-debug cros-workon scons-utils systemd
DESCRIPTION="Chrome OS Update Engine"
@ -13,12 +20,12 @@ SRC_URI=""
LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64 ~arm ~x86"
IUSE="cros_host -delta_generator"
IUSE="cros_host -delta_generator symlink-usr"
LIBCHROME_VERS="180609"
RDEPEND="app-arch/bzip2
RDEPEND="!coreos-base/coreos-installer
app-arch/bzip2
coreos-base/coreos-ca-certificates
coreos-base/libchrome:${LIBCHROME_VERS}[cros-debug=]
coreos-base/libchromeos
@ -33,7 +40,6 @@ RDEPEND="app-arch/bzip2
dev-libs/protobuf
dev-util/bsdiff
net-misc/curl
sys-apps/rootdev
sys-fs/e2fsprogs
virtual/udev"
DEPEND="coreos-base/system_api
@ -81,6 +87,14 @@ src_install() {
dosbin update_engine
dobin update_engine_client
dosbin coreos-postinst
dosbin coreos-setgoodroot
if use symlink-usr; then
dosym sbin/coreos-postinst /usr/postinst
else
dosym usr/sbin/coreos-postinst /postinst
fi
use delta_generator && dobin delta_generator
systemd_dounit "${FILESDIR}"/update-engine.service

View File

@ -9,7 +9,7 @@ CROS_WORKON_LOCALDIR="src/platform"
if [[ "${PV}" == 9999 ]]; then
KEYWORDS="~amd64 ~arm ~x86"
else
CROS_WORKON_COMMIT="887858e12e86e3e34b5a77240a50db614ab681c7"
CROS_WORKON_COMMIT="b5bb29a3123b51f563e213a065e7a7ea75334943"
KEYWORDS="amd64 arm x86"
fi

View File

@ -14,7 +14,7 @@ DEPEND="sys-apps/debianutils
sys-kernel/bootengine
"
IUSE="-source"
IUSE="-source symlink-usr"
RESTRICT="binchecks"
STRIP_MASK="/usr/lib/debug/lib/modules/*/vmlinux"
@ -195,15 +195,17 @@ cros-kernel2_src_compile() {
}
cros-kernel2_src_install() {
dodir /boot
kmake INSTALL_PATH="${D}/boot" install
dodir /usr/boot
kmake INSTALL_PATH="${D}/usr/boot" install
# Install firmware to a temporary (bogus) location.
# The linux-firmware package will be used instead.
kmake INSTALL_MOD_PATH="${D}" INSTALL_FW_PATH="${T}/fw" modules_install
local version=$(kernelversion)
if [ ! -e "${D}/boot/vmlinuz" ]; then
ln -sf "vmlinuz-${version}" "${D}/boot/vmlinuz" || die
dosym "vmlinuz-${version}" /usr/boot/vmlinuz
if ! use symlink-usr; then
dosym ../usr/boot/vmlinuz /boot/vmlinuz
fi
# Install uncompressed kernel for debugging purposes.