Merge commit '4512b2ca328e179ab758ecd330039eaddc0c35ca' into cros_sdk

Update chromiumos-overlay to CrOS version 14056.0.0

BUG=b/192265868
TEST=local BE run
RELEASE_NOTE=Updated ChromeOS base to ChromeOS version 14056.0.0.

Signed-off-by: Robert Kolchmeyer <rkolchmeyer@google.com>
Change-Id: I701a0c39685d7c9a82b85b3a04f9d722025d9f16
diff --git a/app-accessibility/brltty/Manifest b/app-accessibility/brltty/Manifest
index b106a6b..8390af4 100644
--- a/app-accessibility/brltty/Manifest
+++ b/app-accessibility/brltty/Manifest
@@ -1 +1 @@
-DIST brltty-6.1.tar.xz 3394852 RMD160 e8c73a11ad5dca8cb7a92eea19f511a68ae2e4ad SHA1 720271372d2cd728b4315bbd12e3857fbdb3a398 SHA256 4a28e3f1879aee9082f9ce4100fd4053be47add7f8ab0f2af6d6a20590934b62
+DIST brltty-6.3.tar.xz 3186240 RMD160 0d172b9f4f249e0930c94bf6b01a9d0cafd06883 SHA1 3d5b68f2f9b5bfe699a1002887c00bd33c340f7c SHA256 b256df8f86b4d6a597cfe982cc5a7c831915de37cfece683ddb02b2329256a8a
diff --git a/app-accessibility/brltty/brltty-6.1.ebuild b/app-accessibility/brltty/brltty-6.1.ebuild
deleted file mode 100644
index 4e3c6a2..0000000
--- a/app-accessibility/brltty/brltty-6.1.ebuild
+++ /dev/null
@@ -1,169 +0,0 @@
-# Copyright 1999-2013 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-
-FINDLIB_USE="ocaml"
-
-inherit findlib eutils multilib toolchain-funcs java-pkg-opt-2 flag-o-matic \
-	autotools udev user cros-sanitizers
-
-DESCRIPTION="Daemon that provides access to the Linux/Unix console for a blind person"
-HOMEPAGE="http://mielke.cc/brltty/"
-SRC_URI="http://mielke.cc/brltty/archive/${P}.tar.xz"
-
-LICENSE="GPL-2 LGPL-2.1"
-SLOT="0"
-KEYWORDS="*"
-IUSE="+api +beeper bluetooth +contracted-braille doc +fm gpm iconv icu
-		java +midi ncurses nls ocaml +pcm python usb +speech
-		tcl X"
-REQUIRED_USE="doc? ( api )
-	java? ( api )
-	ocaml? ( api )
-	python? ( api )
-	tcl? ( api )"
-
-COMMON_DEP="bluetooth? ( net-wireless/bluez )
-	gpm? ( >=sys-libs/gpm-1.20 )
-	iconv? ( virtual/libiconv )
-	icu? ( dev-libs/icu )
-	ncurses? ( sys-libs/ncurses )
-	nls? ( virtual/libintl )
-	python? ( >=dev-python/cython-0.16 )
-	tcl? ( >=dev-lang/tcl-8.4.15 )
-	usb? ( virtual/libusb:0 )
-	X? ( x11-libs/libXaw )"
-DEPEND="virtual/pkgconfig
-	java? ( >=virtual/jdk-1.4 )
-	${COMMON_DEP}"
-RDEPEND="java? ( >=virtual/jre-1.4 )
-	${COMMON_DEP}"
-
-src_prepare() {
-	java-pkg-opt-2_src_prepare
-
-	# The code runs `pkg-config` directly instead of locating a suitable
-	# pkg-config wrapper (or respecting $PKG_CONFIG).
-	sed -i \
-		-e 's/\<pkg-config\>/${PKG_CONFIG:-pkg-config}/' \
-		aclocal.m4 configure.ac || die
-
-	# We run eautoconf instead of using eautoreconf because brltty uses
-	# a custom build system that uses autoconf without the rest of the
-	# autotools.
-	eautoconf
-}
-
-src_configure() {
-	sanitizers-setup-env
-	tc-export AR LD PKG_CONFIG
-	# override prefix in order to install into /
-	# braille terminal needs to be available as soon in the boot process as
-	# possible
-	# Also override localstatedir so that the lib/brltty directory is installed
-	# correctly.
-	# Disable stripping since we do that ourselves.
-	# Change the directory for the api unix socket from its default
-	# (under /var/lib) to a location under /run because the latter
-	# is backed by tmpfs.
-	local myconf=(
-		--prefix=/
-		--includedir=/usr/include
-		--localstatedir=/var
-		--disable-stripping
-		--without-attributes-table
-		--without-text-table
-		--with-install-root="${D}"
-		--with-writable-directory=/run/brltty
-		--with-api-socket-path=/run/brltty/BrlAPI
-		$(use_enable api)
-		$(use_with beeper beep-package)
-		$(use_enable contracted-braille)
-		$(use_with fm fm-package)
-		$(use_enable gpm)
-		$(use_enable iconv)
-		$(use_enable icu)
-		$(use_enable java java-bindings)
-		$(use_enable python python-bindings)
-		$(use_with midi midi-package)
-		$(use_enable nls i18n)
-		$(use_enable ocaml ocaml-bindings)
-		$(use_with pcm pcm-package)
-		$(use_enable speech speech-support)
-		$(use_enable tcl tcl-bindings)
-		$(use_enable X x)
-		$(use_with bluetooth bluetooth-package)
-		$(use_with ncurses curses)
-		$(use_with usb usb-package) )
-
-	econf "${myconf[@]}"
-}
-
-src_compile() {
-	local JAVAC_CONF=""
-	local OUR_JNI_FLAGS=""
-	if use java; then
-		OUR_JNI_FLAGS="$(java-pkg_get-jni-cflags)"
-		JAVAC_CONF="${JAVAC} -encoding UTF-8 $(java-pkg_javac-args)"
-	fi
-
-	# workaround for parallel build failure, bug #340903.
-	emake JAVA_JNI_FLAGS="${OUR_JNI_FLAGS}" JAVAC="${JAVAC_CONF}"
-}
-
-src_install() {
-	if use ocaml; then
-		findlib_src_preinst
-	fi
-
-	emake OCAML_LDCONF= install
-
-	if use java; then
-		# make install puts the _java.so there, and no it's not $(get_libdir)
-		rm -rf "${D}/usr/lib/java"
-		java-pkg_doso Bindings/Java/libbrlapi_java.so
-		java-pkg_dojar Bindings/Java/brlapi.jar
-	fi
-
-	insinto /etc
-	doins Documents/brltty.conf
-	udev_newrules Autostart/Udev/rules 70-brltty.rules
-	newinitd "${FILESDIR}"/brltty.rc brltty
-
-	libdir="$(get_libdir)"
-	mkdir -p "${D}"/usr/${libdir}/
-	mv "${D}"/${libdir}/*.a "${D}"/usr/${libdir}/
-	gen_usr_ldscript libbrlapi.so
-
-	cd Documents
-	mv Manual-BRLTTY/English/BRLTTY.txt BRLTTY-en.txt
-	mv Manual-BRLTTY/French/BRLTTY.txt BRLTTY-fr.txt
-	mv Manual-BrlAPI/English/BrlAPI.txt BrlAPI-en.txt
-	dodoc CONTRIBUTORS ChangeLog HISTORY README* TODO BRLTTY-*.txt
-	dohtml -r Manual-BRLTTY
-	if use doc; then
-		dohtml -r Manual-BrlAPI
-		dodoc BrlAPI-*.txt
-	fi
-
-	insinto /etc/init
-	doins "${FILESDIR}"/etc/init/brltty.conf
-	insinto /etc/dbus-1/system.d
-	doins "${FILESDIR}"/etc/dbus-1/org.chromium.Brltty.conf
-}
-
-pkg_preinst() {
-	enewgroup brltty
-	enewuser brltty
-}
-
-pkg_postinst() {
-	elog
-	elog please be sure "${ROOT}"etc/brltty.conf is correct for your system.
-	elog
-	elog To make brltty start on boot, type this command as root:
-	elog
-	elog rc-update add brltty boot
-}
diff --git a/app-accessibility/brltty/brltty-6.3-r3.ebuild b/app-accessibility/brltty/brltty-6.3-r3.ebuild
new file mode 120000
index 0000000..497ac94
--- /dev/null
+++ b/app-accessibility/brltty/brltty-6.3-r3.ebuild
@@ -0,0 +1 @@
+brltty-6.3.ebuild
\ No newline at end of file
diff --git a/app-accessibility/brltty/brltty-6.3.ebuild b/app-accessibility/brltty/brltty-6.3.ebuild
new file mode 100644
index 0000000..a45aabb
--- /dev/null
+++ b/app-accessibility/brltty/brltty-6.3.ebuild
@@ -0,0 +1,160 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+FINDLIB_USE="ocaml"
+
+inherit findlib eutils multilib toolchain-funcs java-pkg-opt-2 flag-o-matic \
+	autotools udev user cros-sanitizers
+
+DESCRIPTION="Daemon that provides access to the Linux/Unix console for a blind person"
+HOMEPAGE="http://brltty.app/"
+SRC_URI="http://brltty.app/archive/${P}.tar.xz"
+
+LICENSE="GPL-2 LGPL-2.1"
+SLOT="0"
+KEYWORDS="*"
+IUSE="+api +beeper bluetooth +contracted-braille +fm gpm iconv icu
+		java +midi ncurses nls ocaml +pcm python usb +speech
+		tcl X"
+REQUIRED_USE="
+	java? ( api )
+	ocaml? ( api )
+	python? ( api )
+	tcl? ( api )
+"
+
+COMMON_DEP="bluetooth? ( net-wireless/bluez )
+	gpm? ( >=sys-libs/gpm-1.20 )
+	iconv? ( virtual/libiconv )
+	icu? ( dev-libs/icu )
+	ncurses? ( sys-libs/ncurses )
+	nls? ( virtual/libintl )
+	python? ( >=dev-python/cython-0.16 )
+	tcl? ( >=dev-lang/tcl-8.4.15 )
+	usb? ( virtual/libusb:0 )
+	X? ( x11-libs/libXaw )"
+DEPEND="virtual/pkgconfig
+	java? ( >=virtual/jdk-1.4 )
+	${COMMON_DEP}"
+RDEPEND="java? ( >=virtual/jre-1.4 )
+	${COMMON_DEP}"
+
+src_prepare() {
+	java-pkg-opt-2_src_prepare
+
+	# The code runs `pkg-config` directly instead of locating a suitable
+	# pkg-config wrapper (or respecting $PKG_CONFIG).
+	sed -i \
+		-e 's/\<pkg-config\>/${PKG_CONFIG:-pkg-config}/' \
+		aclocal.m4 configure.ac || die
+
+	# We run eautoconf instead of using eautoreconf because brltty uses
+	# a custom build system that uses autoconf without the rest of the
+	# autotools.
+	eautoconf
+}
+
+src_configure() {
+	sanitizers-setup-env
+	tc-export AR LD PKG_CONFIG
+	# override prefix in order to install into /
+	# braille terminal needs to be available as soon in the boot process as
+	# possible
+	# Also override localstatedir so that the lib/brltty directory is installed
+	# correctly.
+	# Disable stripping since we do that ourselves.
+	# Change the directory for the api unix socket from its default
+	# (under /var/lib) to a location under /run because the latter
+	# is backed by tmpfs.
+	local myconf=(
+		--prefix=/
+		--includedir=/usr/include
+		--localstatedir=/var
+		--disable-stripping
+		--without-attributes-table
+		--without-text-table
+		--with-install-root="${D}"
+		--with-writable-directory=/run/brltty
+		--with-api-socket-path=/run/brltty/BrlAPI
+		$(use_enable api)
+		$(use_with beeper beep-package)
+		$(use_enable contracted-braille)
+		$(use_with fm fm-package)
+		$(use_enable gpm)
+		$(use_enable iconv)
+		$(use_enable icu)
+		$(use_enable java java-bindings)
+		$(use_enable python python-bindings)
+		$(use_with midi midi-package)
+		$(use_enable nls i18n)
+		$(use_enable ocaml ocaml-bindings)
+		$(use_with pcm pcm-package)
+		$(use_enable speech speech-support)
+		$(use_enable tcl tcl-bindings)
+		$(use_enable X x)
+		$(use_with bluetooth bluetooth-package)
+		$(use_with ncurses curses)
+		$(use_with usb usb-package) )
+
+	econf "${myconf[@]}"
+}
+
+src_compile() {
+	local JAVAC_CONF=""
+	local OUR_JNI_FLAGS=""
+	if use java; then
+		OUR_JNI_FLAGS="$(java-pkg_get-jni-cflags)"
+		JAVAC_CONF="${JAVAC} -encoding UTF-8 $(java-pkg_javac-args)"
+	fi
+
+	# workaround for parallel build failure, bug #340903.
+	emake JAVA_JNI_FLAGS="${OUR_JNI_FLAGS}" JAVAC="${JAVAC_CONF}"
+}
+
+src_install() {
+	if use ocaml; then
+		findlib_src_preinst
+	fi
+
+	emake OCAML_LDCONF= install
+
+	if use java; then
+		# make install puts the _java.so there, and no it's not $(get_libdir)
+		rm -rf "${D}/usr/lib/java"
+		java-pkg_doso Bindings/Java/libbrlapi_java.so
+		java-pkg_dojar Bindings/Java/brlapi.jar
+	fi
+
+	insinto /etc
+	doins Documents/brltty.conf
+	udev_newrules Autostart/Udev/device.rules 70-brltty-device.rules
+	udev_newrules Autostart/Udev/uinput.rules 70-brltty-uinput.rules
+	newinitd "${FILESDIR}"/brltty.rc brltty
+
+	libdir="$(get_libdir)"
+	mkdir -p "${D}"/usr/${libdir}/
+	mv "${D}"/${libdir}/*.a "${D}"/usr/${libdir}/
+	gen_usr_ldscript libbrlapi.so
+
+	insinto /etc/init
+	doins "${FILESDIR}"/etc/init/brltty.conf
+	insinto /etc/dbus-1/system.d
+	doins "${FILESDIR}"/etc/dbus-1/org.chromium.Brltty.conf
+}
+
+pkg_preinst() {
+	enewgroup brltty
+	enewuser brltty
+}
+
+pkg_postinst() {
+	elog
+	elog please be sure "${ROOT}"etc/brltty.conf is correct for your system.
+	elog
+	elog To make brltty start on boot, type this command as root:
+	elog
+	elog rc-update add brltty boot
+}
diff --git a/app-accessibility/brltty/brltty.bashrc b/app-accessibility/brltty/brltty.bashrc
index dc91b8a..40b5868 100644
--- a/app-accessibility/brltty/brltty.bashrc
+++ b/app-accessibility/brltty/brltty.bashrc
@@ -3,7 +3,11 @@
 # found in the LICENSE file.
 
 cros_pre_src_prepare_brltty_config() {
-	epatch "${FILESDIR}"/${P}-fix-build.patch
+	epatch "${FILESDIR}"/${P}-aph-firmware-upgrade.patch
+	epatch "${FILESDIR}"/${P}-gettext-as-format-string.patch
+	epatch "${FILESDIR}"/${P}-locale-not-found-log.patch
+	epatch "${FILESDIR}"/${P}-use-fchmod-on-socket.patch
+	epatch "${FILESDIR}"/${P}-sticky-brlapi-dir.patch
 }
 
 cros_post_src_prepare_brltty_config() {
@@ -16,7 +20,7 @@
 	# modify the usb device definitions in the C source, and for those
 	# to be picked up by updusbdevs, those patches need to be applied
 	# before the below line.
-	./updusbdevs -nogeneric udev:Autostart/Udev/rules || die
+	./updusbdevs -nogeneric udev:Autostart/Udev/device.rules.in || die
 }
 
 cros_post_src_install_brltty_config() {
diff --git a/app-accessibility/brltty/files/brltty b/app-accessibility/brltty/files/brltty
index b0b5dad..3723f9b 100755
--- a/app-accessibility/brltty/files/brltty
+++ b/app-accessibility/brltty/files/brltty
@@ -4,68 +4,303 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-# This script starts brltty in a minijail sandbox.
-if [ $# -ne 0 ]; then
-  echo "ERROR: $0 takes no arguments"
-  exit 1
-fi
+# Define some script constants.
+scriptName="${0##*/}"
 
-BRLTTY_RUNDIR=/run/brltty
-BRLAPI_SOCKETDIR="${BRLTTY_RUNDIR}"/BrlAPI
+BRLTTY_USER="brltty"
+BRLTTY_GROUP="brltty"
+
+BRLTTY_SUBDIR="brltty"
+BRLTTY_VARDIR="/var/lib/${BRLTTY_SUBDIR}"
+BRLTTY_RUNDIR="/run/${BRLTTY_SUBDIR}"
+
+BRLTTY_CFGFILE="/etc/brltty.conf"
+BRLTTY_DEVFILE="${BRLTTY_RUNDIR}/device"
+BRLTTY_DRVFILE="${BRLTTY_RUNDIR}/driver"
+BRLTTY_ENVFILE="${BRLTTY_RUNDIR}/env"
+BRLTTY_LOGFILE="${BRLTTY_RUNDIR}/log"
+BRLTTY_PIDFILE="${BRLTTY_RUNDIR}/pid"
+
+BRLAPI_SUBDIR="BrlAPI"
+BRLAPI_SOCDIR="${BRLTTY_RUNDIR}/${BRLAPI_SUBDIR}"
 # The number (0) must be kept in sync with the Host api parameter in
 # brltty.conf.
-BRLAPI_SOCKETFILE="${BRLAPI_SOCKETDIR}/0"
+BRLAPI_SOCFILE="${BRLAPI_SOCDIR}/0"
+
+showUsageSummary() {
+cat <<END-OF-USAGE-SUMMARY
+Usage: ${scriptName} [-option ...] [action [argument ...]]
+
+These options may be specified:
+  -h  show this usage summary and then exit
+  -q  be quiet - don't show informative output
+  -v  be verbose - show host commands, etc
+
+These actions may be specified:
+  device
+  driver
+  pid
+  prepare
+  run [brltty-argument ...]
+  stop
+  test
+  wait
+END-OF-USAGE-SUMMARY
+}
+
+putLine() {
+  local line="${1}"
+
+  "${quietRequested}" || echo "${line}"
+}
+
+putFile() {
+  local file="${1}"
+
+  [ -f "${file}" ] || return 8
+  "${quietRequested}" && return 0
+  cat "${file}"
+}
+
+writeMessage() {
+  local message="${1}"
+
+  echo >&2 "${scriptName}: ${message}"
+}
+
+syntaxError() {
+  local message="${1}"
+
+  writeMessage "${message}"
+  exit 2
+}
+
+# Set the option defaults.
+helpRequested=false
+quietRequested=false
+verboseRequested=false
+
+# Process the options.
+while getopts ":hqv" option
+do
+  case "${option}"
+  in
+    h) helpRequested=true;;
+    q) quietRequested=true;;
+    v) verboseRequested=true;;
+
+    :) syntaxError "missing operand: -${OPTARG}";;
+   \?) syntaxError "unknown option: -${OPTARG}";;
+    *) syntaxError "unimplemented option: -${option}";;
+  esac
+done
+
+# Remove the options from the command line.
+shift $((OPTIND - 1))
+
+# If help was requested then just show the usage summary.
+"${helpRequested}" && {
+  showUsageSummary
+  exit 0
+}
+
+# Set the default action (and its arguments).
+[ "${#}" -eq 0 ] && set -- run
 
 log() {
-  logger -t brltty_udev "$@"
+  local message="${*}"
+
+  [ -t 2 ] && writeMessage "${message}"
+  logger -t brltty_udev "${Message}"
 }
 
-# Kill any stale brltty processes that might be holding on to the
-# BrlAPI socket.  We try hard, because failure to free up the socket will lock
-# the braille user out from the machine!
-kill_stale_brltty() {
-  local SIGTERM_MAX_TRIES=5
-  if fuser -s -k -TERM "${BRLAPI_SOCKETFILE}"; then
-    log "Waiting for stale brltty process to terminate"
-    local i=0
-    while [ ${i} -lt ${SIGTERM_MAX_TRIES} ]; do
-      sleep .1
-      if ! fuser -s -k -TERM "${BRLAPI_SOCKETFILE}"; then
-        return
-      fi
-      : $(( i += 1 ))
-    done
-    log "Sending SIGKILL to stale brltty process"
-    fuser -s -k -KILL "${BRLAPI_SOCKET_FILE}"
-  fi
+executeHostCommand() {
+  "${verboseRequested}" && writeMessage "host command: ${*}"
+
+  "${@}"
+  local exitStatus="${?}"
+
+  "${verboseRequested}" && {
+    [ "${exitStatus}" -eq 0 ] || writeMessage "exit status: ${exitStatus}"
+  }
+
+  return "${exitStatus}"
 }
-kill_stale_brltty
 
-# Ensure that the directories exist and have the right permissions.
-# NOTE: Chrome is observing ${BRLAPI_SOCKETDIR} for changes.
-# It is important to only remove world-readability *after* setting the
-# group ownership so that the browser doesn't lose read access.
-# This is a race that would cause chrome to stop observing the directory
-# and therefore not get notified when a braille display is connected.
-mkdir -p -m 0755 "${BRLTTY_RUNDIR}" "${BRLAPI_SOCKETDIR}"
-chown -R brltty:brltty "${BRLTTY_RUNDIR}" "${BRLAPI_SOCKETDIR}"
-chmod 750 "${BRLTTY_RUNDIR}" "${BRLAPI_SOCKETDIR}"
+# Ensure that the needed directories exist and have the right ownership and permissions.
+prepareNeededDirectories() {
+  # NOTE: Chrome is observing ${BRLAPI_SOCDIR} for changes.
+  # It is important to only remove world-readability *after* setting the
+  # group ownership so that the browser doesn't lose read access.
+  # This is a race that would cause chrome to stop observing the directory
+  # and therefore not get notified when a braille display is connected.
 
-# Files created by the daemon shouldn't be accessible by users not in the
-# brltty group.
-umask 0007
+  set -- "${BRLTTY_VARDIR}" "${BRLTTY_RUNDIR}" "${BRLAPI_SOCDIR}"
+  executeHostCommand mkdir -p -m 0755 "${@}"
+  executeHostCommand chown -R "${BRLTTY_USER}:${BRLTTY_GROUP}" "${@}"
+  executeHostCommand chmod 750 "${@}"
+}
 
-log "Starting brltty, device: ${BRLTTY_BRAILLE_DEVICE}, " \
-    "driver: ${BRLTTY_BRAILLE_DRIVER}"
+# Send a signal to the process that owns the BrlAPI server socket.
+sendSignal() {
+  local signal="${1}"
 
-# -d: device for accessing braille.
-if [ -n "${ADDRESS}" ]; then
-  set -- "$@" -d "bluetooth:${ADDRESS}"
-fi
+  # This must be the last command so that we return its exit status.
+  [ -e "${BRLAPI_SOCFILE}" ] && {
+    executeHostCommand fuser -s -k -"${signal}" "${BRLAPI_SOCFILE}"
+  }
+}
 
-# Start brltty in the jail.
-# The options used below are:
-# - -q: No startup announcement of brltty's version on the braille display.
-# - -E: Get some arguments (driver, device, etc) from the environment.
-# - -n: makes Brltty run without forking (keeping this job started/stoppable).
-exec /sbin/minijail0 -u brltty -g brltty -G -- /bin/brltty -q -E -n "$@"
+isProcessRunning() {
+  # This must be the last command so that we return its exit status.
+  sendSignal 0
+}
+
+# Stop any brltty processes that might be holding on to the
+# BrlAPI server socket.  We try hard, because failure to free up the socket
+# will lock the braille user out from the machine!
+stopProcess() {
+  sendSignal TERM || return 0
+
+  log "waiting for brltty to terminate"
+  local delay=0.1 # in seconds
+  local limit=5
+  local try=0
+
+  while [ $((try += 1)) -le "${limit}" ]
+  do
+    executeHostCommand sleep "${delay}"
+    sendSignal TERM || return 0
+  done
+
+  log "forcing brltty to terminate"
+  sendSignal KILL
+}
+
+noMoreParameters() {
+  [ "${#}" -eq 0 ] || syntaxError "too many parameters"
+}
+
+action_device() {
+  noMoreParameters "${@}"
+
+  putFile "${BRLTTY_DEVFILE}"
+  exit "${?}"
+}
+
+action_driver() {
+  noMoreParameters "${@}"
+
+  putFile "${BRLTTY_DRVFILE}"
+  exit "${?}"
+}
+
+action_pid() {
+  noMoreParameters "${@}"
+
+  putFile "${BRLTTY_PIDFILE}"
+  exit "${?}"
+}
+
+action_prepare() {
+  noMoreParameters "${@}"
+
+  prepareNeededDirectories
+  exit "${?}"
+}
+
+# Run brltty within a minijail.
+action_run() {
+  stopProcess
+  prepareNeededDirectories
+
+  # Files created by the daemon shouldn't be accessible by users not in the
+  # brltty group.
+  executeHostCommand umask 0007
+
+  # If the Bluetooth address is defined then use that device.
+  [ -n "${ADDRESS}" ] && {
+    executeHostCommand export BRLTTY_BRAILLE_DEVICE="bluetooth:${ADDRESS}"
+  }
+
+  echo "${BRLTTY_BRAILLE_DEVICE}" >"${BRLTTY_DEVFILE}"
+  echo "${BRLTTY_BRAILLE_DRIVER}" >"${BRLTTY_DRVFILE}"
+
+  log "starting brltty -" \
+      "device:${BRLTTY_BRAILLE_DEVICE:-unknown}" \
+      "driver:${BRLTTY_BRAILLE_DRIVER:-unknown}"
+
+  executeHostCommand export BRLTTY_CONFIGURATION_FILE="${BRLTTY_CFGFILE}"
+  executeHostCommand export BRLTTY_UPDATABLE_DIRECTORY="${BRLTTY_VARDIR}"
+  executeHostCommand export BRLTTY_WRITABLE_DIRECTORY="${BRLTTY_RUNDIR}"
+  executeHostCommand export BRLTTY_PID_FILE="${BRLTTY_PIDFILE}"
+  executeHostCommand export BRLTTY_LOG_FILE="${BRLTTY_LOGFILE}"
+
+  # The provided arguments for brltty are in ${@}.
+  # Add ours before them in case they contain syntax errors.
+  set -- -E "${@}" # Allow options to be specified via environment variables.
+  set -- -n "${@}" # Keep brltty in the foreground.
+  set -- -q "${@}" # Suppress the start message.
+
+  # Run brltty within a restricted environment.
+  env >"${BRLTTY_ENVFILE}"
+  executeHostCommand exec \
+    /sbin/minijail0 -u "${BRLTTY_USER}" -g "${BRLTTY_GROUP}" -G -- \
+    /bin/brltty "${@}"
+
+  # We shouldn't get here - but we might because exec can fail.
+  exit "${?}"
+}
+
+action_stop() {
+  noMoreParameters "${@}"
+
+  stopProcess
+  exit "${?}"
+}
+
+action_test() {
+  noMoreParameters "${@}"
+
+  isProcessRunning
+  local exitStatus="${?}"
+
+  [ "${exitStatus}" -eq 0 ] && putLine "running" || putLine "stopped"
+  exit "${exitStatus}"
+}
+
+action_wait() {
+  noMoreParameters "${@}"
+
+  local delay=0.5
+  local limit=10
+  local try=0
+
+  while isProcessRunning
+  do
+    [ $((try += 1)) -gt "${limit}" ] && {
+      log "brltty has not terminated"
+      exit 9
+    }
+
+    executeHostCommand sleep "${delay}"
+  done
+
+  exit 0
+}
+
+[ "${#}" -eq 0 ] && syntaxError "missing action"
+action="${1}"
+shift
+
+case "${action}"
+in
+  device | driver | pid | prepare | run | stop | test | wait)
+    "action_${action}" "${@}"
+    ;;
+
+  *) syntaxError "unknown action: ${action}";;
+esac
+
+# Just in case we get here.
+exit 0
diff --git a/app-accessibility/brltty/files/brltty-6.1-fix-build.patch b/app-accessibility/brltty/files/brltty-6.1-fix-build.patch
deleted file mode 100644
index 3623e77..0000000
--- a/app-accessibility/brltty/files/brltty-6.1-fix-build.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-commit 5f9a609f278a6b3934b46f036ec671ecfe15fadc
-Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
-Date:   Tue Apr 7 11:01:08 2020 +0200
-
-    brlapi server: Fix build with -fno-common and --disable-contracted-braille
-
-diff --git a/Programs/brlapi_server.c b/Programs/brlapi_server.c
-index 242b1f0ea..8136d4ce2 100644
---- a/Programs/brlapi_server.c
-+++ b/Programs/brlapi_server.c
-@@ -1964,6 +1964,7 @@ PARAM_WRITER(computerBrailleTable)
-   return param_writeString(changeTextTable, data, size);
- }
- 
-+#ifdef ENABLE_CONTRACTED_BRAILLE
- /* BRLAPI_PARAM_LITERARY_BRAILLE_TABLE */
- PARAM_READER(literaryBrailleTable)
- {
-@@ -1975,6 +1976,7 @@ PARAM_WRITER(literaryBrailleTable)
- {
-   return param_writeString(changeContractionTable, data, size);
- }
-+#endif
- 
- /* BRLAPI_PARAM_MESSAGE_LOCALE */
- PARAM_READER(messageLocale)
-@@ -2173,11 +2175,13 @@ static const ParamDispatch paramDispatch[BRLAPI_PARAM_COUNT] = {
-     .write = param_computerBrailleTable_write,
-   },
- 
-+#ifdef ENABLE_CONTRACTED_BRAILLE
-   [BRLAPI_PARAM_LITERARY_BRAILLE_TABLE] = {
-     .global = 1,
-     .read = param_literaryBrailleTable_read,
-     .write = param_literaryBrailleTable_write,
-   },
-+#endif /* ENABLE_CONTRACTED_BRAILLE */
- 
-   [BRLAPI_PARAM_MESSAGE_LOCALE] = {
-     .global = 1,
diff --git a/app-accessibility/brltty/files/brltty-6.3-aph-firmware-upgrade.patch b/app-accessibility/brltty/files/brltty-6.3-aph-firmware-upgrade.patch
new file mode 100644
index 0000000..9575847
--- /dev/null
+++ b/app-accessibility/brltty/files/brltty-6.3-aph-firmware-upgrade.patch
@@ -0,0 +1,89 @@
+commit 6b5a86f342e4b6b086f13b5b50d1eb1209a0045c
+Author: Dave Mielke <Dave@Mielke.cc>
+Date:   Mon Mar 8 18:31:49 2021 -0500
+
+    Fix support for the APH Chameleon 20 with firmware version 1.1. (dm)
+
+diff --git a/Drivers/Braille/HumanWare/braille.c b/Drivers/Braille/HumanWare/braille.c
+index 8a2b2f233..1feb40fd0 100644
+--- a/Drivers/Braille/HumanWare/braille.c
++++ b/Drivers/Braille/HumanWare/braille.c
+@@ -946,34 +946,74 @@ connectResource (BrailleDisplay *brl, const char *identifier) {
+       .data = &resourceData_HID_touch
+     },
+ 
+-    { /* APH Chameleon 20 (HID protocol) */
++    { /* APH Chameleon 20 (HID protocol, firmware 1.0) */
+       .vendor=0X1C71, .product=0XC101, 
+       .configuration=1, .interface=1, .alternative=0,
+       .inputEndpoint=4, .outputEndpoint=5,
++      .verifyInterface = 1,
+       .data = &resourceData_HID_C20,
+       .resetDevice = 1
+     },
+ 
+-    { /* APH Mantis Q40 (HID protocol) */
++    { /* APH Chameleon 20 (HID protocol, firmware 1.1) */
++      .vendor=0X1C71, .product=0XC101, 
++      .configuration=1, .interface=0, .alternative=0,
++      .inputEndpoint=1, .outputEndpoint=2,
++      .verifyInterface = 1,
++      .data = &resourceData_HID_C20,
++      .resetDevice = 1
++    },
++
++    { /* APH Mantis Q40 (HID protocol, firmware 1.0) */
+       .vendor=0X1C71, .product=0XC111, 
+       .configuration=1, .interface=1, .alternative=0,
+       .inputEndpoint=4, .outputEndpoint=5,
++      .verifyInterface = 1,
++      .data = &resourceData_HID_M40,
++      .resetDevice = 1
++    },
++
++    { /* APH Mantis Q40 (HID protocol, firmware 1.1) */
++      .vendor=0X1C71, .product=0XC111, 
++      .configuration=1, .interface=0, .alternative=0,
++      .inputEndpoint=1, .outputEndpoint=2,
++      .verifyInterface = 1,
+       .data = &resourceData_HID_M40,
+       .resetDevice = 1
+     },
+ 
+-    { /* NLS eReader (HID protocol) */
++    { /* NLS eReader (HID protocol, firmware 1.0) */
+       .vendor=0X1C71, .product=0XCE01, 
+       .configuration=1, .interface=1, .alternative=0,
+       .inputEndpoint=4, .outputEndpoint=5,
++      .verifyInterface = 1,
+       .data = &resourceData_HID_NLS,
+       .resetDevice = 1
+     },
+ 
+-    { /* Humanware BrailleOne (HID protocol) */
++    { /* NLS eReader (HID protocol, firmware 1.1) */
++      .vendor=0X1C71, .product=0XCE01, 
++      .configuration=1, .interface=0, .alternative=0,
++      .inputEndpoint=1, .outputEndpoint=2,
++      .verifyInterface = 1,
++      .data = &resourceData_HID_NLS,
++      .resetDevice = 1
++    },
++
++    { /* Humanware BrailleOne (HID protocol, firmware 1.0) */
+       .vendor=0X1C71, .product=0XC121, 
+       .configuration=1, .interface=1, .alternative=0,
+       .inputEndpoint=4, .outputEndpoint=5,
++      .verifyInterface = 1,
++      .data = &resourceData_HID_one,
++      .resetDevice = 1
++    },
++
++    { /* Humanware BrailleOne (HID protocol, firmware 1.1) */
++      .vendor=0X1C71, .product=0XC121, 
++      .configuration=1, .interface=0, .alternative=0,
++      .inputEndpoint=1, .outputEndpoint=2,
++      .verifyInterface = 1,
+       .data = &resourceData_HID_one,
+       .resetDevice = 1
+     },
diff --git a/app-accessibility/brltty/files/brltty-6.3-gettext-as-format-string.patch b/app-accessibility/brltty/files/brltty-6.3-gettext-as-format-string.patch
new file mode 100644
index 0000000..edfd3e1
--- /dev/null
+++ b/app-accessibility/brltty/files/brltty-6.3-gettext-as-format-string.patch
@@ -0,0 +1,37 @@
+commit c84843f822a3cedf97a96f200cd55b38f5c1f147
+Author: Dave Mielke <Dave@Mielke.cc>
+Date:   Sat Feb 6 17:10:21 2021 -0500
+
+    Tell gcc that our gettext() returns a format string. (dm)
+
+diff --git a/Headers/prologue.h b/Headers/prologue.h
+index bd2f1c233..0ac9dcd77 100644
+--- a/Headers/prologue.h
++++ b/Headers/prologue.h
+@@ -23,6 +23,12 @@
+ extern "C" {
+ #endif /* __cplusplus */
+ 
++#ifdef __GNUC__
++#define FORMAT_ARG(n) __attribute__((format_arg((n))))
++#else /* __GNUC__ */
++#define FORMAT_ARG(n)
++#endif /* __GNUC__ */
++
+ #undef HAVE_BUILTIN_POPCOUNT
+ #ifdef __has_builtin
+ #if __has_builtin(__builtin_popcount)
+@@ -429,8 +435,11 @@ mempcpy (void *dest, const void *src, size_t size) {
+ #ifdef ENABLE_I18N_SUPPORT
+ #include <libintl.h>
+ #else /* ENABLE_I18N_SUPPORT */
+-extern char *gettext (const char *text);
+-extern char *ngettext (const char *singular, const char *plural, unsigned long int count);
++extern char *gettext (const char *text) FORMAT_ARG(1);
++
++extern char *ngettext (
++  const char *singular, const char *plural, unsigned long int count
++) FORMAT_ARG(1) FORMAT_ARG(2);
+ #endif /* ENABLE_I18N_SUPPORT */
+ #define strtext(string) string
+ 
diff --git a/app-accessibility/brltty/files/brltty-6.3-locale-not-found-log.patch b/app-accessibility/brltty/files/brltty-6.3-locale-not-found-log.patch
new file mode 100644
index 0000000..132d67b
--- /dev/null
+++ b/app-accessibility/brltty/files/brltty-6.3-locale-not-found-log.patch
@@ -0,0 +1,87 @@
+commit 74241c9aa71b94ba157ab6700339b7868159cc98
+Author: Dave Mielke <Dave@Mielke.cc>
+Date:   Sat Feb 6 14:00:02 2021 -0500
+
+    The "messages locale not found" log should be debug (not warning). (dm)
+
+diff --git a/Programs/messages.c b/Programs/messages.c
+index 9b6606186..cba73ded8 100644
+--- a/Programs/messages.c
++++ b/Programs/messages.c
+@@ -159,12 +159,12 @@ makeLocaleDirectoryPath (void) {
+     code += 1;
+   }
+ 
+-  logMessage(LOG_WARNING, "messages locale not found: %s", localeSpecifier);
++  logMessage(LOG_DEBUG, "messages locale not found: %s", localeSpecifier);
+   return NULL;
+ }
+ 
+ static char *
+-makeMessagesFilePath (void) {
++makeMessageCatalogPath (void) {
+   char *locale = makeLocaleDirectoryPath();
+ 
+   if (locale) {
+@@ -174,12 +174,12 @@ makeMessagesFilePath (void) {
+     locale = NULL;
+ 
+     if (category) {
+-      char *file = makeFilePath(category, domainName, ".mo");
++      char *catalog = makeFilePath(category, domainName, ".mo");
+ 
+       free(category);
+       category = NULL;
+ 
+-      if (file) return file;
++      if (catalog) return catalog;
+     }
+   }
+ 
+@@ -192,7 +192,7 @@ loadMessagesData (void) {
+   ensureAllMessagesProperties();
+ 
+   int loaded = 0;
+-  char *path = makeMessagesFilePath();
++  char *path = makeMessageCatalogPath();
+ 
+   if (path) {
+     int fd = open(path, (O_RDONLY | O_BINARY));
+@@ -210,12 +210,12 @@ loadMessagesData (void) {
+ 
+             if (count == -1) {
+               logMessage(LOG_WARNING,
+-                "messages data read error: %s: %s",
++                "message catalog read error: %s: %s",
+                 path, strerror(errno)
+               );
+             } else if (count < size) {
+               logMessage(LOG_WARNING,
+-                "truncated messages data: %"PRIssize" < %"PRIsize": %s",
++                "truncated message catalog: %"PRIssize" < %"PRIsize": %s",
+                 count, size, path
+               );
+             } else {
+@@ -236,11 +236,11 @@ loadMessagesData (void) {
+             logMallocError();
+           }
+         } else {
+-          logMessage(LOG_WARNING, "no messages data");
++          logMessage(LOG_WARNING, "empty message catalog");
+         }
+       } else {
+         logMessage(LOG_WARNING,
+-          "messages file stat error: %s: %s",
++          "message catalog stat error: %s: %s",
+           path, strerror(errno)
+         );
+       }
+@@ -248,7 +248,7 @@ loadMessagesData (void) {
+       close(fd);
+     } else {
+       logMessage(LOG_WARNING,
+-        "messages file open error: %s: %s",
++        "message catalog open error: %s: %s",
+         path, strerror(errno)
+       );
+     }
diff --git a/app-accessibility/brltty/files/brltty-6.3-sticky-brlapi-dir.patch b/app-accessibility/brltty/files/brltty-6.3-sticky-brlapi-dir.patch
new file mode 100644
index 0000000..c9f8421
--- /dev/null
+++ b/app-accessibility/brltty/files/brltty-6.3-sticky-brlapi-dir.patch
@@ -0,0 +1,32 @@
+commit 7aa173007fc3109c0de4604153f2e71bf2de2629
+Author: Dave Mielke <Dave@Mielke.cc>
+Date:   Fri Jun 18 05:59:30 2021 -0400
+
+    Set the sticky bit on the BrAPI sockets directory. (dm)
+
+diff --git a/Programs/brlapi_server.c b/Programs/brlapi_server.c
+index c567264fb..0eb346b7e 100644
+--- a/Programs/brlapi_server.c
++++ b/Programs/brlapi_server.c
+@@ -3056,18 +3056,18 @@ adjustPermissions (
+ 
+   if (adjust) {
+     struct stat status;
+-
+     if (!getStatus(object, &status)) return 0;
+ 
+     {
+       mode_t oldPermissions = status.st_mode & ~S_IFMT;
+       mode_t newPermissions = oldPermissions;
+ 
+-#ifdef S_IRGRP
++      #ifdef S_IRGRP
+       if (oldPermissions & S_IRUSR) newPermissions |= S_IRGRP | S_IROTH;
+       if (oldPermissions & S_IWUSR) newPermissions |= S_IWGRP | S_IWOTH;
+       if (oldPermissions & S_IXUSR) newPermissions |= S_IXGRP | S_IXOTH;
+-#endif
++      if (S_ISDIR(status.st_mode)) newPermissions |= S_ISVTX | S_IXOTH;
++      #endif
+ 
+       if (newPermissions != oldPermissions) {
+         if (!setPermissions(object, newPermissions)) {
diff --git a/app-accessibility/brltty/files/brltty-6.3-use-fchmod-on-socket.patch b/app-accessibility/brltty/files/brltty-6.3-use-fchmod-on-socket.patch
new file mode 100644
index 0000000..960b8df
--- /dev/null
+++ b/app-accessibility/brltty/files/brltty-6.3-use-fchmod-on-socket.patch
@@ -0,0 +1,145 @@
+commit 81cc72e023f6ca0fe6952d9b266ed937b38d28bc
+Author: Dave Mielke <Dave@Mielke.cc>
+Date:   Thu Jun 17 21:07:40 2021 -0400
+
+    Use fchmod (not chmod) to adjust the BrlAPI socket permissions. (dm)
+
+diff --git a/Programs/brlapi_server.c b/Programs/brlapi_server.c
+index 74bac5b09..c567264fb 100644
+--- a/Programs/brlapi_server.c
++++ b/Programs/brlapi_server.c
+@@ -3036,32 +3036,28 @@ static int readPid(char *path)
+ }
+ 
+ static int
+-adjustPermissions (const char *path) {
+-  int adjust = !geteuid();
++adjustPermissions (
++  const void *object, const char *container,
++  int (*getStatus) (const void *object, struct stat *status),
++  int (*setPermissions) (const void *object, mode_t permissions)
++) {
++  uid_t user = geteuid();
++  int adjust = !user;
+ 
+   if (!adjust) {
+-    char *directory = getPathDirectory(path);
+-
+-    if (directory) {
+-      struct stat status;
+-
+-      if (stat(directory, &status) == -1) {
+-        logSystemError("stat");
+-      } else if (status.st_uid == geteuid()) {
+-        adjust = 1;
+-      }
++    struct stat status;
+ 
+-      free(directory);
++    if (stat(container, &status) == -1) {
++      logSystemError("stat");
++    } else if (status.st_uid == user) {
++      adjust = 1;
+     }
+   }
+ 
+   if (adjust) {
+     struct stat status;
+ 
+-    if (stat(path, &status) == -1) {
+-      logSystemError("stat");
+-      return 0;
+-    }
++    if (!getStatus(object, &status)) return 0;
+ 
+     {
+       mode_t oldPermissions = status.st_mode & ~S_IFMT;
+@@ -3074,8 +3070,7 @@ adjustPermissions (const char *path) {
+ #endif
+ 
+       if (newPermissions != oldPermissions) {
+-        if (chmod(path, newPermissions) == -1) {
+-          logSystemError("chmod");
++        if (!setPermissions(object, newPermissions)) {
+           return 0;
+         }
+       }
+@@ -3084,6 +3079,60 @@ adjustPermissions (const char *path) {
+ 
+   return 1;
+ }
++
++static int
++getPathStatus (const void *object, struct stat *status) {
++  const char *path = object;
++  if (stat(path, status) != -1) return 1;
++  logSystemError("stat");
++  return 0;
++}
++
++static int
++setPathPermissions (const void *object, mode_t permissions) {
++  const char *path = object;
++  if (chmod(path, permissions) != -1) return 1;
++  logSystemError("chmod");
++  return 0;
++}
++
++static int
++adjustPathPermissions (const char *path) {
++  int ok = 0;
++  char *parent = getPathDirectory(path);
++
++  if (parent) {
++    if (adjustPermissions(path, parent, getPathStatus, setPathPermissions)) ok = 1;
++    free(parent);
++  }
++
++  return ok;
++}
++
++static int
++getFileStatus (const void *object, struct stat *status) {
++  const int *fd = object;
++  if (fstat(*fd, status) != -1) return 1;
++  logSystemError("fstat");
++  return 0;
++}
++
++static int
++setFilePermissions (const void *object, mode_t permissions) {
++  const int *fd = object;
++  if (fchmod(*fd, permissions) != -1) return 1;
++  logSystemError("fchmod");
++  return 0;
++}
++
++static int
++adjustFilePermissions (int fd, const char *directory) {
++  return adjustPermissions(
++    &fd, directory,
++    getFileStatus,
++    setFilePermissions
++  );
++}
+ #endif /* __MINGW32__ */
+ 
+ /* Function : createLocalSocket */
+@@ -3169,7 +3218,7 @@ static FileDescriptor createLocalSocket(struct socketInfo *info)
+     approximateDelay(1000);
+   }
+ 
+-  if (!adjustPermissions(BRLAPI_SOCKETPATH)) {
++  if (!adjustPathPermissions(BRLAPI_SOCKETPATH)) {
+     goto outfd;
+   }
+ 
+@@ -3281,7 +3330,7 @@ static FileDescriptor createLocalSocket(struct socketInfo *info)
+     goto outfd;
+   }
+ 
+-  if (!adjustPermissions(sa.sun_path)) {
++  if (!adjustFilePermissions(fd, BRLAPI_SOCKETPATH)) {
+     goto outfd;
+   }
+ 
diff --git a/app-accessibility/brltty/files/brltty.conf b/app-accessibility/brltty/files/brltty.conf
index 7610240..6b4b8f7 100644
--- a/app-accessibility/brltty/files/brltty.conf
+++ b/app-accessibility/brltty/files/brltty.conf
@@ -2,12 +2,15 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-# Only allow the chronos user to access brlapi and limit the api to accept
-# connections only on a local socket.
-api-parameters Auth=user:chronos,Host=:0
+# Only allow the chronos user to connect to the BrlAPI server.
+api-parameters Auth=user:chronos
 
-# Interpret braille keyboard input as dots rather than translate them to characters.
-override-preference braille-quick-space=yes
+# Only listen for BrlAPI connections from the local host.
+api-parameters Host=:0
+
+# Interpret braille keyboard input as dot combinations
+# rather than translate it to characters.
+override-preferences braille-quick-space=yes
 
 # Display this message when the braille driver starts.
 start-message braille\sstarting
@@ -15,10 +18,13 @@
 # Display this message when the braille driver stops.
 stop-message braille\sstopped
 
-# Display this message:
-assign msgNoBraille braille\snot\savailable
-# When the screen device(s) can't be opened.
-screen-parameters no:message=\{msgNoBraille}
-# When not using a text console or when the console is unused or unreadable.
-screen-parameters lx:fallbacktext=\{msgNoBraille}
+# The Linux screen driver isn't useful since the /dev/vcs* devices don't exist.
+# There isn't a screen driver for frecon yet.
+screen-driver no
+
+# Display this message when BrlAPI isn't connected.
+screen-parameters no:message=braille\snot\savailable
+
+# Set the default log level.
+log-level info
 
diff --git a/app-accessibility/brltty/files/etc/init/brltty.conf b/app-accessibility/brltty/files/etc/init/brltty.conf
index c673a35..7d3af57 100644
--- a/app-accessibility/brltty/files/etc/init/brltty.conf
+++ b/app-accessibility/brltty/files/etc/init/brltty.conf
@@ -5,12 +5,21 @@
 description     "Brltty daemon"
 author          "chromium-os-dev@chromium.org"
 
+# The service is started by Chrome via UpstartClient::StartBrltty() for
+# Bluetooth connections and by /lib/udev/rules.d/70-brltty.rules for USB
+# connections.
+
+# Initialize the device and driver to what we want for their defaults.
+env BRLTTY_BRAILLE_DEVICE=usb:
+env BRLTTY_BRAILLE_DRIVER=auto
+
+# Allow our udev rules to tell us what the device and driver are.
+import BRLTTY_BRAILLE_DEVICE
+import BRLTTY_BRAILLE_DRIVER
+
+# This is how the ui tells us what the Bluetooth device address is.
+env ADDRESS
 import ADDRESS
 
-env ADDRESS
-
-# The service is started by Chrome via UpstartClient::StartBrltty() for
-# bluetooth connections and by /lib/udev/rules.d/70-brltty.rules for usb
-# connections.
-stop on stopping ui
-exec /lib/udev/brltty
+exec /lib/udev/brltty run
+post-stop exec /lib/udev/brltty wait
diff --git a/app-accessibility/espeak-ng/Manifest b/app-accessibility/espeak-ng/Manifest
index eaa29c1..9943fcc 100644
--- a/app-accessibility/espeak-ng/Manifest
+++ b/app-accessibility/espeak-ng/Manifest
@@ -1 +1 @@
-DIST espeak-ng-1.49.3.7.tar.gz 15408235 BLAKE2B 49249d7ba79987285c8e4766738606e12a9835832995d57801f779b2aa9529330bf5cb4d01b4f69dacb2001f32e403594164c3a342f3ac236ab79050a7ec0ada SHA512 8f6b89661958818c18710bdf903ad3481f70e9ce5c0bc0572e883553c657a8716cb728b01b67704c5b88ba4315ced49e0d058f79071fe60c893239165dd84f4a
+DIST espeak-ng-1.49.3.12.tar.gz 15407875 BLAKE2B 8850ef4464ae8d491120673b74fe7be02e466b9d031725656b497f8e27fe910fb22ca2a688fcf226347a7d85efc1a367dfa581d0d94e1a4e6a7e891a03b50550 SHA512 96b3aff54590333df50c95194d47a42b616e4fcfb8416d14810747f3b4b25865d687b41c75b4ad9ecf790408f23a2ba69dea44a35566369ae553a9bfcefbe285
diff --git a/app-accessibility/espeak-ng/espeak-ng-1.49.3.7.ebuild b/app-accessibility/espeak-ng/espeak-ng-1.49.3.12.ebuild
similarity index 100%
rename from app-accessibility/espeak-ng/espeak-ng-1.49.3.7.ebuild
rename to app-accessibility/espeak-ng/espeak-ng-1.49.3.12.ebuild
diff --git a/app-accessibility/googletts/Manifest b/app-accessibility/googletts/Manifest
index ca457ab..697d05c 100644
--- a/app-accessibility/googletts/Manifest
+++ b/app-accessibility/googletts/Manifest
@@ -1 +1 @@
-DIST googletts-14.7.tar.xz 119923304 BLAKE2B d1780dd47c0e243fe8e0490c4d05070a2a713e03dd9049ccf9cee49afc66526600399decfb3d9580734d2043d7f88f6375c2f4c5d38f641317f6d83c16e8f80b SHA512 5253c244ff1da570c1f8b324f4dbb340a70173b97b8a67ab0793989740e3c3302330ed51a75e001b8d1a165431735b488715c45b5d539614925a7301d524bd42
+DIST googletts-26.5.tar.xz 118800272 BLAKE2B 8d3d03337f229b4b54c30d958f543d952f92d141f521e4e06b2b2fc262e128183c7e3c8263576bbc0c78c5d2ad123fe898017b31a48063a0aed2dc19cc3b9514 SHA512 478f7a17bfc8bb0c99f9768cf9c8d1c9dc255f3cbda12c59abebf1815d46dd3c1f7c789c9eda521012f6a1ffad620c9737ab056b3a0816a64f4989c33b2d4d37
diff --git a/app-accessibility/googletts/googletts-14.7.ebuild b/app-accessibility/googletts/googletts-26.5.ebuild
similarity index 100%
rename from app-accessibility/googletts/googletts-14.7.ebuild
rename to app-accessibility/googletts/googletts-26.5.ebuild
diff --git a/app-admin/rsyslog/Manifest b/app-admin/rsyslog/Manifest
index 2bd80d8..bd1ca52 100644
--- a/app-admin/rsyslog/Manifest
+++ b/app-admin/rsyslog/Manifest
@@ -1,2 +1,2 @@
-DIST rsyslog-8.1904.0.tar.gz 2902708 BLAKE2B 515d5e32c2dc6cdd8dd51fc595ad775503438603f28828e9f1a427b184a5a61de32af2ee90334b7d56a9404106d74da47386a18a370278d5a16422a6bb09f556 SHA512 cccb48f06508d7e7c2dd788903f4d7ddb3020cdf6079aea1d52387c56b920f10b08957a79b5d420ccdb54cae50d1da6e5eb80cde9498bceaeda4f6ce37f694fd
-DIST rsyslog-doc-8.1904.0.tar.gz 8042650 BLAKE2B 585fe5c63eee1fb46f94dcd3d529045b3900e08c291e0e71ed9bf32a6200e6c7283820b262bd56e9aeb74cc227ecd518caafec5a8f87c1d8523d5d7fd95030aa SHA512 da0ff00fbe71756b3c27fd8b94e88611452c3ba611e583862556393faaaa596ca8f32f694ad40a3e1df67385d9f9ca80db6a58f5d2e336fe95639dd7cd0de828
+DIST rsyslog-8.2102.0.tar.gz 3123684 BLAKE2B f5c4e00d68ec82ed3f7b89dd5e888bebda9c4eb38185dfd8ecd96c1bf77380385aaddac73ab1de8364e1239a3de746f160c18b0f135d006f473f9e40be2c18a1 SHA512 281b0e5d5cb548c39a6e514e5fd5b1bdbe8ca0bdd9234f4fea581ed7679f76d2d75b65d14c3c5e799f86f91600074ff75b467aa1ff27cdbec0f4197261c5aec0
+DIST rsyslog-doc-8.2102.0.tar.gz 6419104 BLAKE2B 134c7ccde6f7435b35840fa37f5774223ac1ebd7dc10db961900a7b1600483156518433c7f70d0981e96ea750e1916ab53e346abacf58066bf141e85c719ae00 SHA512 a5dc4fb9bd8892fac693c5692b926c8d7d9fa36667d6b4c6eccba750713af88d4317f6232efc2a16de38c2e58c4a8bc4d04c9ebb2e7ebc3b0878d53eef20dd2e
diff --git a/app-admin/rsyslog/OWNERS b/app-admin/rsyslog/OWNERS
new file mode 100644
index 0000000..5744455
--- /dev/null
+++ b/app-admin/rsyslog/OWNERS
@@ -0,0 +1 @@
+include /chromeos-base/croslog/OWNERS
diff --git a/app-admin/rsyslog/files/rsyslog.service b/app-admin/rsyslog/files/rsyslog.service
new file mode 100644
index 0000000..8af064d
--- /dev/null
+++ b/app-admin/rsyslog/files/rsyslog.service
@@ -0,0 +1,25 @@
+[Unit]
+Description=System Logging Service
+;Requires=syslog.socket
+Conflicts=syslog-ng.service syslogd.service
+Documentation=man:rsyslogd(8)
+Documentation=man:rsyslog.conf(5)
+Documentation=https://www.rsyslog.com/doc/
+
+[Service]
+Type=notify
+Environment=RSYSLOGD_PARAMS=
+EnvironmentFile=-/etc/default/rsyslog
+ExecStart=/usr/sbin/rsyslogd -n -iNONE $RSYSLOGD_PARAMS
+ExecReload=/bin/kill -HUP $MAINPID
+UMask=0066
+StandardOutput=null
+Restart=on-failure
+
+# Increase the default a bit in order to allow many simultaneous
+# files to be monitored, we might need a lot of fds.
+LimitNOFILE=16384
+
+[Install]
+WantedBy=multi-user.target
+Alias=syslog.service
diff --git a/app-admin/rsyslog/metadata.xml b/app-admin/rsyslog/metadata.xml
index 7334da4..8edddd3 100644
--- a/app-admin/rsyslog/metadata.xml
+++ b/app-admin/rsyslog/metadata.xml
@@ -12,12 +12,14 @@
 		<flag name="elasticsearch">Build the Elasticsearch output module (requires <pkg>net-misc/curl</pkg>)</flag>
 		<flag name="gcrypt">Add support for encrypted log files using <pkg>dev-libs/libgcrypt</pkg></flag>
 		<flag name="gnutls">Build the GnuTLS network stream driver (requires <pkg>net-libs/gnutls</pkg>)</flag>
+		<flag name="imhttp">Build the http input module (requires <pkg>www-servers/civetweb</pkg>)</flag>
+		<flag name="impcap">Build the pcap input module (requires <pkg>net-libs/libpcap</pkg>)</flag>
 		<flag name="kafka">Build the Apache Kafka input/output module (requires <pkg>dev-libs/librdkafka</pkg>)</flag>
 		<flag name="kerberos">Build the GSSAPI input and output module (requires <pkg>virtual/krb5</pkg>)</flag>
 		<flag name="kubernetes">Build the kubernetes modify plugin (requires <pkg>net-misc/curl</pkg>)</flag>
 		<flag name="libressl">Use <pkg>dev-libs/libressl</pkg> instead of <pkg>dev-libs/openssl</pkg> (you still need to enable functionality which requires OpenSSL)</flag>
 		<flag name="mdblookup">Build the MaxMind DB lookup message modify plugin using <pkg>dev-libs/libmaxminddb</pkg></flag>
-		<flag name="mongodb">Build the MongoDB output module (requires <pkg>dev-libs/libmongo-client</pkg>)</flag>
+		<flag name="mongodb">Build the MongoDB output module (requires <pkg>dev-libs/mongo-c-driver</pkg>)</flag>
 		<flag name="mysql">Build the MySQL database output module (requires <pkg>virtual/mysql</pkg>)</flag>
 		<flag name="normalize">Build the normalize modify module (requires <pkg>dev-libs/libee</pkg> and <pkg>dev-libs/liblognorm</pkg>)</flag>
 		<flag name="omhttp">Build the http output module (requires <pkg>net-misc/curl</pkg>)</flag>
diff --git a/app-admin/rsyslog/rsyslog-8.1904.0-r3.ebuild b/app-admin/rsyslog/rsyslog-8.1904.0-r3.ebuild
deleted file mode 120000
index 2e733ab..0000000
--- a/app-admin/rsyslog/rsyslog-8.1904.0-r3.ebuild
+++ /dev/null
@@ -1 +0,0 @@
-rsyslog-8.1904.0.ebuild
\ No newline at end of file
diff --git a/app-admin/rsyslog/rsyslog-8.1904.0.ebuild b/app-admin/rsyslog/rsyslog-8.1904.0.ebuild
deleted file mode 100644
index 9b6887f..0000000
--- a/app-admin/rsyslog/rsyslog-8.1904.0.ebuild
+++ /dev/null
@@ -1,468 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-PYTHON_COMPAT=( python{2_7,3_5,3_6,3_7} )
-
-inherit autotools eutils linux-info python-any-r1 systemd
-
-DESCRIPTION="An enhanced multi-threaded syslogd with database support and more"
-HOMEPAGE="https://www.rsyslog.com/"
-
-if [[ ${PV} == "9999" ]]; then
-	EGIT_REPO_URI="https://github.com/rsyslog/${PN}.git"
-
-	DOC_REPO_URI="https://github.com/rsyslog/${PN}-doc.git"
-
-	inherit git-r3
-else
-	KEYWORDS="*"
-
-	SRC_URI="
-		https://www.rsyslog.com/files/download/${PN}/${P}.tar.gz
-		doc? ( https://www.rsyslog.com/files/download/${PN}/${PN}-doc-${PV}.tar.gz )
-	"
-fi
-
-LICENSE="GPL-3 LGPL-3 Apache-2.0"
-SLOT="0"
-IUSE="curl dbi debug doc elasticsearch +gcrypt gnutls jemalloc kafka kerberos kubernetes libressl mdblookup"
-IUSE+=" mongodb mysql normalize clickhouse omhttp omhttpfs omudpspoof openssl postgres"
-IUSE+=" rabbitmq redis relp rfc3195 rfc5424hmac snmp ssl systemd test usertools +uuid xxhash zeromq"
-RESTRICT="!test? ( test )"
-
-PATCHES=( "${FILESDIR}/001-add-imstdoutsock-plugin.patch" )
-
-RDEPEND="
-	>=dev-libs/libfastjson-0.99.8:=
-	>=dev-libs/libestr-0.1.9
-	>=sys-libs/zlib-1.2.5
-	chromeos-base/syslog-cat
-	curl? ( >=net-misc/curl-7.35.0 )
-	dbi? ( >=dev-db/libdbi-0.8.3 )
-	elasticsearch? ( >=net-misc/curl-7.35.0 )
-	gcrypt? ( >=dev-libs/libgcrypt-1.5.3:= )
-	jemalloc? ( >=dev-libs/jemalloc-3.3.1:= )
-	kafka? ( >=dev-libs/librdkafka-0.9.0.99:= )
-	kerberos? ( virtual/krb5 )
-	kubernetes? ( >=net-misc/curl-7.35.0 )
-	mdblookup? ( dev-libs/libmaxminddb:= )
-	mongodb? ( >=dev-libs/mongo-c-driver-1.1.10:= )
-	mysql? ( virtual/libmysqlclient:= )
-	normalize? (
-		>=dev-libs/libee-0.4.0
-		>=dev-libs/liblognorm-2.0.3:=
-	)
-	clickhouse? ( >=net-misc/curl-7.35.0 )
-	omhttpfs? ( >=net-misc/curl-7.35.0 )
-	omudpspoof? ( >=net-libs/libnet-1.1.6 )
-	postgres? ( >=dev-db/postgresql-8.4.20:= )
-	rabbitmq? ( >=net-libs/rabbitmq-c-0.3.0:= )
-	redis? ( >=dev-libs/hiredis-0.11.0:= )
-	relp? ( >=dev-libs/librelp-1.2.17:= )
-	rfc3195? ( >=dev-libs/liblogging-1.0.1:=[rfc3195] )
-	rfc5424hmac? (
-		!libressl? ( >=dev-libs/openssl-0.9.8y:0= )
-		libressl? ( dev-libs/libressl:= )
-	)
-	snmp? ( >=net-analyzer/net-snmp-5.7.2 )
-	ssl? (
-		gnutls? ( >=net-libs/gnutls-2.12.23:0= )
-		openssl? (
-			!libressl? ( dev-libs/openssl:0= )
-			libressl? ( dev-libs/libressl:0= )
-		)
-	)
-	systemd? ( >=sys-apps/systemd-234 )
-	uuid? ( sys-apps/util-linux:0= )
-	xxhash? ( dev-libs/xxhash:= )
-	zeromq? (
-		>=net-libs/czmq-3.0.2
-	)"
-DEPEND="${RDEPEND}
-	>=sys-devel/autoconf-archive-2015.02.24
-	virtual/pkgconfig
-	elibc_musl? ( sys-libs/queue-standalone )
-	test? (
-		>=dev-libs/liblogging-1.0.1[stdlog]
-		jemalloc? ( <sys-libs/libfaketime-0.9.7 )
-		!jemalloc? ( sys-libs/libfaketime )
-		${PYTHON_DEPS}
-	)"
-
-REQUIRED_USE="
-	kubernetes? ( normalize )
-	ssl? ( || ( gnutls openssl ) )
-"
-
-if [[ ${PV} == "9999" ]]; then
-	DEPEND+=" doc? ( >=dev-python/sphinx-1.1.3-r7 )"
-	DEPEND+=" >=sys-devel/flex-2.5.39-r1"
-	DEPEND+=" >=sys-devel/bison-2.4.3"
-	DEPEND+=" >=dev-python/docutils-0.12"
-fi
-
-CONFIG_CHECK="~INOTIFY_USER"
-WARNING_INOTIFY_USER="CONFIG_INOTIFY_USER isn't set. Imfile module on this system will only support polling mode!"
-
-pkg_setup() {
-	use test && python-any-r1_pkg_setup
-}
-
-src_unpack() {
-	if [[ ${PV} == "9999" ]]; then
-		git-r3_fetch
-		git-r3_checkout
-	else
-		unpack ${P}.tar.gz
-	fi
-
-	cp -rf "${FILESDIR}/001-add-imstdoutsock-plugin" "./${PN}-${PV}/plugins/imstdoutsock"
-
-	if use doc; then
-		if [[ ${PV} == "9999" ]]; then
-			local _EGIT_BRANCH=
-			if [[ -n "${EGIT_BRANCH}" ]]; then
-				# Cannot use rsyslog commits/branches for documentation repository
-				_EGIT_BRANCH=${EGIT_BRANCH}
-				unset EGIT_BRANCH
-			fi
-
-			git-r3_fetch "${DOC_REPO_URI}"
-			git-r3_checkout "${DOC_REPO_URI}" "${S}"/docs
-
-			if [[ -n "${_EGIT_BRANCH}" ]]; then
-				# Restore previous EGIT_BRANCH information
-				EGIT_BRANCH=${_EGIT_BRANCH}
-			fi
-		else
-			cd "${S}" || die "Cannot change dir into '${S}'"
-			mkdir docs || die "Failed to create docs directory"
-			cd docs || die "Failed to change dir into '${S}/docs'"
-			unpack ${PN}-doc-${PV}.tar.gz
-		fi
-	fi
-}
-
-src_prepare() {
-	default
-
-	# https://github.com/rsyslog/rsyslog/issues/3626
-	sed -i \
-		-e '\|^#!/bin/bash$|a exit 77' \
-		tests/mmkubernetes-cache-expir*.sh \
-		|| die "Failed to disabled known test failure mmkubernetes-cache-expir*.sh"
-
-	eautoreconf
-}
-
-src_configure() {
-	# Maintainer notes:
-	# * Guardtime support is missing because libgt isn't yet available
-	#   in portage.
-	# * Hadoop's HDFS file system output module is currently not
-	#   supported in Gentoo because nobody is able to test it
-	#   (JAVA dependency).
-	# * dev-libs/hiredis doesn't provide pkg-config (see #504614,
-	#   upstream PR 129 and 136) so we need to export HIREDIS_*
-	#   variables because rsyslog's build system depends on pkg-config.
-
-	if use redis; then
-		export HIREDIS_LIBS="-L${EPREFIX}/usr/$(get_libdir) -lhiredis"
-		export HIREDIS_CFLAGS="-I${EPREFIX}/usr/include"
-	fi
-
-	local myeconfargs=(
-		--disable-debug-symbols
-		--disable-generate-man-pages
-		--without-valgrind-testbench
-		--disable-liblogging-stdlog
-		$(use_enable test testbench)
-		$(use_enable test libfaketime)
-		$(use_enable test extended-tests)
-		# Input Plugins without depedencies
-		--enable-imdiag
-		--enable-imfile
-		--enable-impstats
-		--enable-imptcp
-		# Message Modificiation Plugins without depedencies
-		--enable-mmanon
-		--enable-mmaudit
-		--enable-mmcount
-		--enable-mmfields
-		--enable-mmjsonparse
-		--enable-mmpstrucdata
-		--enable-mmrm1stspace
-		--enable-mmsequence
-		--enable-mmutf8fix
-		# Output Modification Plugins without dependencies
-		--enable-mail
-		--enable-omprog
-		--enable-omruleset
-		--enable-omstdout
-		--enable-omuxsock
-		# Misc
-		--enable-fmhash
-		$(use_enable xxhash fmhash-xxhash)
-		--enable-pmaixforwardedfrom
-		--enable-pmciscoios
-		--enable-pmcisconames
-		--enable-pmlastmsg
-		$(use_enable normalize pmnormalize)
-		--enable-pmnull
-		--enable-pmpanngfw
-		--enable-pmsnare
-		# DB
-		$(use_enable dbi libdbi)
-		$(use_enable mongodb ommongodb)
-		$(use_enable mysql)
-		$(use_enable postgres pgsql)
-		$(use_enable redis omhiredis)
-		# Debug
-		$(use_enable debug)
-		$(use_enable debug diagtools)
-		$(use_enable debug valgrind)
-		# Misc
-		$(use_enable clickhouse)
-		$(use_enable curl fmhttp)
-		$(use_enable elasticsearch)
-		$(use_enable gcrypt libgcrypt)
-		$(use_enable jemalloc)
-		$(use_enable kafka imkafka)
-		$(use_enable kafka omkafka)
-		$(use_enable kerberos gssapi-krb5)
-		$(use_enable kubernetes mmkubernetes)
-		$(use_enable normalize mmnormalize)
-		$(use_enable mdblookup mmdblookup)
-		$(use_enable omhttp)
-		$(use_enable omhttpfs)
-		$(use_enable omudpspoof)
-		$(use_enable rabbitmq omrabbitmq)
-		$(use_enable relp)
-		$(use_enable rfc3195)
-		$(use_enable rfc5424hmac mmrfc5424addhmac)
-		$(use_enable snmp)
-		$(use_enable snmp mmsnmptrapd)
-		$(use_enable gnutls)
-		$(use_enable openssl)
-		$(use_enable systemd imjournal)
-		$(use_enable systemd omjournal)
-		$(use_enable usertools)
-		$(use_enable uuid)
-		$(use_enable zeromq imczmq)
-		$(use_enable zeromq omczmq)
-		--with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
-	)
-
-	econf "${myeconfargs[@]}"
-}
-
-src_compile() {
-	default
-
-	if use doc && [[ "${PV}" == "9999" ]]; then
-		einfo "Building documentation ..."
-		local doc_dir="${S}/docs"
-		cd "${doc_dir}" || die "Cannot chdir into \"${doc_dir}\"!"
-		sphinx-build -b html source build || die "Building documentation failed!"
-	fi
-}
-
-src_test() {
-	local _has_increased_ulimit=
-
-	# Sometimes tests aren't executable (i.e. when added via patch)
-	einfo "Adjusting permissions of test scripts ..."
-	find "${S}"/tests -type f -name '*.sh' \! -perm -111 -exec chmod a+x '{}' \; || \
-		die "Failed to adjust test scripts permission"
-
-	if ulimit -n 3072; then
-		_has_increased_ulimit="true"
-	fi
-
-	if ! emake --jobs 1 check; then
-		eerror "Test suite failed! :("
-
-		if [[ -z "${_has_increased_ulimit}" ]]; then
-			eerror "Probably because open file limit couldn't be set to 3072."
-		fi
-
-		if has userpriv ${FEATURES}; then
-			eerror "Please try to reproduce the test suite failure with FEATURES=-userpriv " \
-				"before you submit a bug report."
-		fi
-
-	fi
-}
-
-src_install() {
-	local DOCS=(
-		AUTHORS
-		ChangeLog
-		"${FILESDIR}"/README.gentoo
-	)
-
-	use doc && local HTML_DOCS=( "${S}/docs/build/." )
-
-	default
-
-	newconfd "${FILESDIR}/${PN}.confd-r1" ${PN}
-	newinitd "${FILESDIR}/${PN}.initd-r1" ${PN}
-
-	keepdir /var/empty/dev
-	keepdir /var/spool/${PN}
-	keepdir /etc/ssl/${PN}
-	keepdir /etc/${PN}.d
-
-	insinto /etc
-	newins "${FILESDIR}/${PN}.conf" ${PN}.conf
-
-	insinto /etc/rsyslog.d/
-	newins "${FILESDIR}/50-default-r1.conf" 50-default.conf
-
-	insinto /etc/logrotate.d/
-	newins "${FILESDIR}/${PN}-r1.logrotate" ${PN}
-
-	if use mysql; then
-		insinto /usr/share/doc/${PF}/scripts/mysql
-		doins plugins/ommysql/createDB.sql
-	fi
-
-	if use postgres; then
-		insinto /usr/share/doc/${PF}/scripts/pgsql
-		doins plugins/ompgsql/createDB.sql
-	fi
-
-	#prune_libtool_files --modules
-}
-
-pkg_postinst() {
-	local advertise_readme=0
-
-	if [[ -z "${REPLACING_VERSIONS}" ]]; then
-		# This is a new installation
-
-		advertise_readme=1
-
-		if use mysql || use postgres; then
-			echo
-			elog "Sample SQL scripts for MySQL & PostgreSQL have been installed to:"
-			elog "  /usr/share/doc/${PF}/scripts"
-		fi
-
-		if use ssl; then
-			echo
-			elog "To create a default CA and certificates for your server and clients, run:"
-			elog "  emerge --config =${PF}"
-			elog "on your logging server. You can run it several times,"
-			elog "once for each logging client. The client certificates will be signed"
-			elog "using the CA certificate generated during the first run."
-		fi
-	fi
-
-	if [[ ${advertise_readme} -gt 0 ]]; then
-		# We need to show the README file location
-
-		echo ""
-		elog "Please read"
-		elog ""
-		elog "  ${EPREFIX}/usr/share/doc/${PF}/README.gentoo*"
-		elog ""
-		elog "for more details."
-	fi
-}
-
-pkg_config() {
-	if ! use ssl ; then
-		einfo "There is nothing to configure for rsyslog unless you"
-		einfo "used USE=ssl to build it."
-		return 0
-	fi
-
-	# Make sure the certificates directory exists
-	local CERTDIR="${EROOT}/etc/ssl/${PN}"
-	if [[ ! -d "${CERTDIR}" ]]; then
-		mkdir "${CERTDIR}" || die
-	fi
-	einfo "Your certificates will be stored in ${CERTDIR}"
-
-	# Create a default CA if needed
-	if [[ ! -f "${CERTDIR}/${PN}_ca.cert.pem" ]]; then
-		einfo "No CA key and certificate found in ${CERTDIR}, creating them for you..."
-		certtool --generate-privkey \
-			--outfile "${CERTDIR}/${PN}_ca.privkey.pem" &>/dev/null
-		chmod 400 "${CERTDIR}/${PN}_ca.privkey.pem"
-
-		cat > "${T}/${PF}.$$" <<- _EOF
-		cn = Portage automated CA
-		ca
-		cert_signing_key
-		expiration_days = 3650
-		_EOF
-
-		certtool --generate-self-signed \
-			--load-privkey "${CERTDIR}/${PN}_ca.privkey.pem" \
-			--outfile "${CERTDIR}/${PN}_ca.cert.pem" \
-			--template "${T}/${PF}.$$" &>/dev/null
-		chmod 400 "${CERTDIR}/${PN}_ca.privkey.pem"
-
-		# Create the server certificate
-		echo
-		einfon "Please type the Common Name of the SERVER you wish to create a certificate for: "
-		read -r CN
-
-		einfo "Creating private key and certificate for server ${CN}..."
-		certtool --generate-privkey \
-			--outfile "${CERTDIR}/${PN}_${CN}.key.pem" &>/dev/null
-		chmod 400 "${CERTDIR}/${PN}_${CN}.key.pem"
-
-		cat > "${T}/${PF}.$$" <<- _EOF
-		cn = ${CN}
-		tls_www_server
-		dns_name = ${CN}
-		expiration_days = 3650
-		_EOF
-
-		certtool --generate-certificate \
-			--outfile "${CERTDIR}/${PN}_${CN}.cert.pem" \
-			--load-privkey "${CERTDIR}/${PN}_${CN}.key.pem" \
-			--load-ca-certificate "${CERTDIR}/${PN}_ca.cert.pem" \
-			--load-ca-privkey "${CERTDIR}/${PN}_ca.privkey.pem" \
-			--template "${T}/${PF}.$$" &>/dev/null
-		chmod 400 "${CERTDIR}/${PN}_${CN}.cert.pem"
-
-	else
-		einfo "Found existing ${CERTDIR}/${PN}_ca.cert.pem, skipping CA and SERVER creation."
-	fi
-
-	# Create a client certificate
-	echo
-	einfon "Please type the Common Name of the CLIENT you wish to create a certificate for: "
-	read -r CN
-
-	einfo "Creating private key and certificate for client ${CN}..."
-	certtool --generate-privkey \
-		--outfile "${CERTDIR}/${PN}_${CN}.key.pem" &>/dev/null
-	chmod 400 "${CERTDIR}/${PN}_${CN}.key.pem"
-
-	cat > "${T}/${PF}.$$" <<- _EOF
-	cn = ${CN}
-	tls_www_client
-	dns_name = ${CN}
-	expiration_days = 3650
-	_EOF
-
-	certtool --generate-certificate \
-		--outfile "${CERTDIR}/${PN}_${CN}.cert.pem" \
-		--load-privkey "${CERTDIR}/${PN}_${CN}.key.pem" \
-		--load-ca-certificate "${CERTDIR}/${PN}_ca.cert.pem" \
-		--load-ca-privkey "${CERTDIR}/${PN}_ca.privkey.pem" \
-		--template "${T}/${PF}.$$" &>/dev/null
-	chmod 400 "${CERTDIR}/${PN}_${CN}.cert.pem"
-
-	rm -f "${T}/${PF}.$$"
-
-	echo
-	einfo "Here is the documentation on how to encrypt your log traffic:"
-	einfo " https://www.rsyslog.com/doc/rsyslog_tls.html"
-}
diff --git a/app-admin/rsyslog/rsyslog-8.2102.0-r3.ebuild b/app-admin/rsyslog/rsyslog-8.2102.0-r3.ebuild
new file mode 120000
index 0000000..4c16c31
--- /dev/null
+++ b/app-admin/rsyslog/rsyslog-8.2102.0-r3.ebuild
@@ -0,0 +1 @@
+rsyslog-8.2102.0.ebuild
\ No newline at end of file
diff --git a/app-admin/rsyslog/rsyslog-8.2102.0.ebuild b/app-admin/rsyslog/rsyslog-8.2102.0.ebuild
new file mode 100644
index 0000000..115bcd9
--- /dev/null
+++ b/app-admin/rsyslog/rsyslog-8.2102.0.ebuild
@@ -0,0 +1,450 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+PYTHON_COMPAT=( python3_{6..9} )
+
+inherit autotools linux-info python-any-r1 systemd
+
+DESCRIPTION="An enhanced multi-threaded syslogd with database support and more"
+HOMEPAGE="https://www.rsyslog.com/"
+
+if [[ ${PV} == "9999" ]]; then
+	EGIT_REPO_URI="https://github.com/rsyslog/${PN}.git"
+
+	DOC_REPO_URI="https://github.com/rsyslog/${PN}-doc.git"
+
+	inherit git-r3
+else
+	KEYWORDS="*"
+
+	SRC_URI="
+		https://www.rsyslog.com/files/download/${PN}/${P}.tar.gz
+		doc? ( https://www.rsyslog.com/files/download/${PN}/${PN}-doc-${PV}.tar.gz )
+	"
+fi
+
+LICENSE="GPL-3 LGPL-3 Apache-2.0"
+SLOT="0"
+
+IUSE="clickhouse curl dbi debug doc elasticsearch +gcrypt gnutls imhttp"
+IUSE+=" impcap jemalloc kafka kerberos kubernetes libressl mdblookup"
+IUSE+=" mongodb mysql normalize omhttp omhttpfs omudpspoof +openssl"
+IUSE+=" postgres rabbitmq redis relp rfc3195 rfc5424hmac snmp +ssl"
+IUSE+=" systemd test usertools +uuid xxhash zeromq"
+
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="
+	kubernetes? ( normalize )
+	ssl? ( || ( gnutls openssl ) )
+"
+
+BDEPEND=">=sys-devel/autoconf-archive-2015.02.24
+	virtual/pkgconfig
+	elibc_musl? ( sys-libs/queue-standalone )
+	test? (
+		jemalloc? ( <sys-libs/libfaketime-0.9.7 )
+		!jemalloc? ( sys-libs/libfaketime )
+		${PYTHON_DEPS}
+	)"
+
+PATCHES=( "${FILESDIR}/001-add-imstdoutsock-plugin.patch" )
+
+RDEPEND="
+	>=dev-libs/libfastjson-0.99.8:=
+	>=dev-libs/libestr-0.1.9
+	>=sys-libs/zlib-1.2.5
+	chromeos-base/syslog-cat
+	curl? ( >=net-misc/curl-7.35.0 )
+	dbi? ( >=dev-db/libdbi-0.8.3 )
+	elasticsearch? ( >=net-misc/curl-7.35.0 )
+	gcrypt? ( >=dev-libs/libgcrypt-1.5.3:= )
+	imhttp? ( www-servers/civetweb )
+	impcap? ( net-libs/libpcap )
+	jemalloc? ( >=dev-libs/jemalloc-3.3.1:= )
+	kafka? ( >=dev-libs/librdkafka-0.9.0.99:= )
+	kerberos? ( virtual/krb5 )
+	kubernetes? ( >=net-misc/curl-7.35.0 )
+	mdblookup? ( dev-libs/libmaxminddb:= )
+	mongodb? ( >=dev-libs/mongo-c-driver-1.1.10:= )
+	mysql? ( dev-db/mysql-connector-c:= )
+	normalize? (
+		>=dev-libs/liblognorm-2.0.3:=
+	)
+	clickhouse? ( >=net-misc/curl-7.35.0 )
+	omhttpfs? ( >=net-misc/curl-7.35.0 )
+	omudpspoof? ( >=net-libs/libnet-1.1.6 )
+	postgres? ( >=dev-db/postgresql-8.4.20:= )
+	rabbitmq? ( >=net-libs/rabbitmq-c-0.3.0:= )
+	redis? ( >=dev-libs/hiredis-0.11.0:= )
+	relp? ( >=dev-libs/librelp-1.2.17:= )
+	rfc3195? ( >=dev-libs/liblogging-1.0.1:=[rfc3195] )
+	rfc5424hmac? (
+		!libressl? ( >=dev-libs/openssl-0.9.8y:0= )
+		libressl? ( dev-libs/libressl:= )
+	)
+	snmp? ( >=net-analyzer/net-snmp-5.7.2 )
+	ssl? (
+		gnutls? ( >=net-libs/gnutls-2.12.23:0= )
+		openssl? (
+			!libressl? ( dev-libs/openssl:0= )
+			libressl? ( dev-libs/libressl:0= )
+		)
+	)
+	systemd? ( >=sys-apps/systemd-234 )
+	uuid? ( sys-apps/util-linux:0= )
+	xxhash? ( dev-libs/xxhash:= )
+	zeromq? (
+		>=net-libs/czmq-4:=[drafts]
+	)"
+DEPEND="${RDEPEND}
+	test? (
+		>=dev-libs/liblogging-1.0.1[stdlog]
+	)"
+
+if [[ ${PV} == "9999" ]]; then
+	BDEPEND+=" doc? ( >=dev-python/sphinx-1.1.3-r7 )"
+	BDEPEND+=" >=sys-devel/flex-2.5.39-r1"
+	BDEPEND+=" >=sys-devel/bison-2.4.3"
+	BDEPEND+=" >=dev-python/docutils-0.12"
+fi
+
+CONFIG_CHECK="~INOTIFY_USER"
+WARNING_INOTIFY_USER="CONFIG_INOTIFY_USER isn't set. Imfile module on this system will only support polling mode!"
+
+pkg_setup() {
+	use test && python-any-r1_pkg_setup
+}
+
+src_unpack() {
+	if [[ ${PV} == "9999" ]]; then
+		git-r3_fetch
+		git-r3_checkout
+	else
+		unpack ${P}.tar.gz
+	fi
+
+	cp -rf "${FILESDIR}/001-add-imstdoutsock-plugin" "./${PN}-${PV}/plugins/imstdoutsock"
+
+	if use doc; then
+		if [[ ${PV} == "9999" ]]; then
+			local _EGIT_BRANCH=
+			if [[ -n "${EGIT_BRANCH}" ]]; then
+				# Cannot use rsyslog commits/branches for documentation repository
+				_EGIT_BRANCH=${EGIT_BRANCH}
+				unset EGIT_BRANCH
+			fi
+
+			git-r3_fetch "${DOC_REPO_URI}"
+			git-r3_checkout "${DOC_REPO_URI}" "${S}"/docs
+
+			if [[ -n "${_EGIT_BRANCH}" ]]; then
+				# Restore previous EGIT_BRANCH information
+				EGIT_BRANCH=${_EGIT_BRANCH}
+			fi
+		else
+			cd "${S}" || die "Cannot change dir into '${S}'"
+			mkdir docs || die "Failed to create docs directory"
+			cd docs || die "Failed to change dir into '${S}/docs'"
+			unpack ${PN}-doc-${PV}.tar.gz
+		fi
+	fi
+}
+
+src_prepare() {
+	default
+
+	# https://github.com/rsyslog/rsyslog/issues/3626
+	sed -i \
+		-e '\|^#!/bin/bash$|a exit 77' \
+		tests/mmkubernetes-cache-expir*.sh \
+		|| die "Failed to disabled known test failure mmkubernetes-cache-expir*.sh"
+
+	eautoreconf
+}
+
+src_configure() {
+	# Maintainer notes:
+	# * Guardtime support is missing because libgt isn't yet available
+	#   in portage.
+	# * Hadoop's HDFS file system output module is currently not
+	#   supported in Gentoo because nobody is able to test it
+	#   (JAVA dependency).
+	# * dev-libs/hiredis doesn't provide pkg-config (see #504614,
+	#   upstream PR 129 and 136) so we need to export HIREDIS_*
+	#   variables because rsyslog's build system depends on pkg-config.
+
+	if use redis; then
+		export HIREDIS_LIBS="-L${EPREFIX}/usr/$(get_libdir) -lhiredis"
+		export HIREDIS_CFLAGS="-I${EPREFIX}/usr/include"
+	fi
+
+	local myeconfargs=(
+		--disable-debug-symbols
+		--disable-generate-man-pages
+		--without-valgrind-testbench
+		--disable-liblogging-stdlog
+		$(use_enable test testbench)
+		$(use_enable test libfaketime)
+		$(use_enable test extended-tests)
+		# Input Plugins without dependencies
+		--enable-imbatchreport
+		--enable-imdiag
+		--enable-imfile
+		--enable-improg
+		--enable-impstats
+		--enable-imptcp
+		# Message Modificiation Plugins without dependencies
+		--enable-mmanon
+		--enable-mmaudit
+		--enable-mmcount
+		--enable-mmfields
+		--enable-mmjsonparse
+		--enable-mmpstrucdata
+		--enable-mmrm1stspace
+		--enable-mmsequence
+		--enable-mmtaghostname
+		--enable-mmutf8fix
+		# Output Modification Plugins without dependencies
+		--enable-mail
+		--enable-omprog
+		--enable-omruleset
+		--enable-omstdout
+		--enable-omuxsock
+		# Misc
+		--enable-fmhash
+		$(use_enable xxhash fmhash-xxhash)
+		--enable-pmaixforwardedfrom
+		--enable-pmciscoios
+		--enable-pmcisconames
+		--enable-pmdb2diag
+		--enable-pmlastmsg
+		$(use_enable normalize pmnormalize)
+		--enable-pmnull
+		--enable-pmpanngfw
+		--enable-pmsnare
+		# DB
+		$(use_enable dbi libdbi)
+		$(use_enable mongodb ommongodb)
+		$(use_enable mysql)
+		$(use_enable postgres pgsql)
+		$(use_enable redis omhiredis)
+		# Debug
+		$(use_enable debug)
+		$(use_enable debug diagtools)
+		$(use_enable debug valgrind)
+		# Misc
+		$(use_enable clickhouse)
+		$(use_enable curl fmhttp)
+		$(use_enable elasticsearch)
+		$(use_enable gcrypt libgcrypt)
+		$(use_enable imhttp)
+		$(use_enable impcap)
+		$(use_enable jemalloc)
+		$(use_enable kafka imkafka)
+		$(use_enable kafka omkafka)
+		$(use_enable kerberos gssapi-krb5)
+		$(use_enable kubernetes mmkubernetes)
+		$(use_enable normalize mmnormalize)
+		$(use_enable mdblookup mmdblookup)
+		$(use_enable omhttp)
+		$(use_enable omhttpfs)
+		$(use_enable omudpspoof)
+		$(use_enable rabbitmq omrabbitmq)
+		$(use_enable relp)
+		$(use_enable rfc3195)
+		$(use_enable rfc5424hmac mmrfc5424addhmac)
+		$(use_enable snmp)
+		$(use_enable snmp mmsnmptrapd)
+		$(use_enable gnutls)
+		$(use_enable openssl)
+		$(use_enable systemd imjournal)
+		$(use_enable systemd omjournal)
+		$(use_enable usertools)
+		$(use_enable uuid)
+		$(use_enable zeromq imczmq)
+		$(use_enable zeromq omczmq)
+		--with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
+	)
+
+	econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+	default
+
+	if use doc && [[ "${PV}" == "9999" ]]; then
+		einfo "Building documentation ..."
+		local doc_dir="${S}/docs"
+		cd "${doc_dir}" || die "Cannot chdir into \"${doc_dir}\"!"
+		sphinx-build -b html source build || die "Building documentation failed!"
+	fi
+}
+
+src_test() {
+	local _has_increased_ulimit=
+
+	# Sometimes tests aren't executable (i.e. when added via patch)
+	einfo "Adjusting permissions of test scripts ..."
+	find "${S}"/tests -type f -name '*.sh' \! -perm -111 -exec chmod a+x '{}' \; || \
+		die "Failed to adjust test scripts permission"
+
+	if ulimit -n 3072; then
+		_has_increased_ulimit="true"
+	fi
+
+	if ! emake --jobs 1 check; then
+		eerror "Test suite failed! :("
+
+		if [[ -z "${_has_increased_ulimit}" ]]; then
+			eerror "Probably because open file limit couldn't be set to 3072."
+		fi
+
+		if has userpriv ${FEATURES}; then
+			eerror "Please try to reproduce the test suite failure with FEATURES=-userpriv " \
+				"before you submit a bug report."
+		fi
+
+	fi
+}
+
+src_install() {
+	local DOCS=(
+		AUTHORS
+		ChangeLog
+		"${FILESDIR}"/README.gentoo
+	)
+
+	use doc && local HTML_DOCS=( "${S}/docs/build/." )
+
+	default
+
+	newconfd "${FILESDIR}/${PN}.confd-r1" ${PN}
+	newinitd "${FILESDIR}/${PN}.initd-r1" ${PN}
+
+	use systemd && systemd_newunit "${FILESDIR}/${PN}.service" ${PN}.service
+
+	keepdir /etc/ssl/${PN}
+	keepdir /etc/${PN}.d
+
+	insinto /etc
+	newins "${FILESDIR}/${PN}.conf" ${PN}.conf
+
+	insinto /etc/rsyslog.d/
+	newins "${FILESDIR}/50-default-r1.conf" 50-default.conf
+
+	insinto /etc/logrotate.d/
+	newins "${FILESDIR}/${PN}-r1.logrotate" ${PN}
+
+	if use mysql; then
+		insinto /usr/share/${PN}/scripts/mysql
+		doins plugins/ommysql/createDB.sql
+	fi
+
+	if use postgres; then
+		insinto /usr/share/${PN}/scripts/pgsql
+		doins plugins/ompgsql/createDB.sql
+	fi
+
+	find "${ED}" -name '*.la' -delete || die
+}
+
+pkg_config() {
+	if ! use ssl; then
+		einfo "There is nothing to configure for rsyslog unless you"
+		einfo "used USE=ssl to build it."
+		return 0
+	fi
+
+	if ! hash certtool &>/dev/null; then
+		die "certtool not found! Is net-libs/gnutls[tools] is installed?"
+	fi
+
+	# Make sure the certificates directory exists
+	local CERTDIR="${EROOT}/etc/ssl/${PN}"
+	if [[ ! -d "${CERTDIR}" ]]; then
+		mkdir "${CERTDIR}" || die
+	fi
+	einfo "Your certificates will be stored in ${CERTDIR}"
+
+	# Create a default CA if needed
+	if [[ ! -f "${CERTDIR}/${PN}_ca.cert.pem" ]]; then
+		einfo "No CA key and certificate found in ${CERTDIR}, creating them for you..."
+		certtool --generate-privkey \
+			--outfile "${CERTDIR}/${PN}_ca.privkey.pem" || die
+		chmod 400 "${CERTDIR}/${PN}_ca.privkey.pem"
+
+		cat > "${T}/${PF}.$$" <<- _EOF
+		cn = Portage automated CA
+		ca
+		cert_signing_key
+		expiration_days = 3650
+		_EOF
+
+		certtool --generate-self-signed \
+			--load-privkey "${CERTDIR}/${PN}_ca.privkey.pem" \
+			--outfile "${CERTDIR}/${PN}_ca.cert.pem" \
+			--template "${T}/${PF}.$$" || die
+		chmod 400 "${CERTDIR}/${PN}_ca.privkey.pem"
+
+		# Create the server certificate
+		echo
+		einfon "Please type the Common Name of the SERVER you wish to create a certificate for: "
+		read -r CN
+
+		einfo "Creating private key and certificate for server ${CN}..."
+		certtool --generate-privkey \
+			--outfile "${CERTDIR}/${PN}_${CN}.key.pem" || die
+		chmod 400 "${CERTDIR}/${PN}_${CN}.key.pem"
+
+		cat > "${T}/${PF}.$$" <<- _EOF
+		cn = ${CN}
+		tls_www_server
+		dns_name = ${CN}
+		expiration_days = 3650
+		_EOF
+
+		certtool --generate-certificate \
+			--outfile "${CERTDIR}/${PN}_${CN}.cert.pem" \
+			--load-privkey "${CERTDIR}/${PN}_${CN}.key.pem" \
+			--load-ca-certificate "${CERTDIR}/${PN}_ca.cert.pem" \
+			--load-ca-privkey "${CERTDIR}/${PN}_ca.privkey.pem" \
+			--template "${T}/${PF}.$$" &>/dev/null
+		chmod 400 "${CERTDIR}/${PN}_${CN}.cert.pem"
+
+	else
+		einfo "Found existing ${CERTDIR}/${PN}_ca.cert.pem, skipping CA and SERVER creation."
+	fi
+
+	# Create a client certificate
+	echo
+	einfon "Please type the Common Name of the CLIENT you wish to create a certificate for: "
+	read -r CN
+
+	einfo "Creating private key and certificate for client ${CN}..."
+	certtool --generate-privkey \
+		--outfile "${CERTDIR}/${PN}_${CN}.key.pem" || die
+	chmod 400 "${CERTDIR}/${PN}_${CN}.key.pem"
+
+	cat > "${T}/${PF}.$$" <<- _EOF
+	cn = ${CN}
+	tls_www_client
+	dns_name = ${CN}
+	expiration_days = 3650
+	_EOF
+
+	certtool --generate-certificate \
+		--outfile "${CERTDIR}/${PN}_${CN}.cert.pem" \
+		--load-privkey "${CERTDIR}/${PN}_${CN}.key.pem" \
+		--load-ca-certificate "${CERTDIR}/${PN}_ca.cert.pem" \
+		--load-ca-privkey "${CERTDIR}/${PN}_ca.privkey.pem" \
+		--template "${T}/${PF}.$$" || die
+	chmod 400 "${CERTDIR}/${PN}_${CN}.cert.pem"
+
+	rm -f "${T}/${PF}.$$"
+
+	echo
+	einfo "Here is the documentation on how to encrypt your log traffic:"
+	einfo " https://www.rsyslog.com/doc/rsyslog_tls.html"
+}
diff --git a/app-crypt/nss/files/nss-3.44-prefer-writable-tokens-for-trust.patch b/app-crypt/nss/files/nss-3.44-prefer-writable-tokens-for-trust.patch
new file mode 100644
index 0000000..f291903
--- /dev/null
+++ b/app-crypt/nss/files/nss-3.44-prefer-writable-tokens-for-trust.patch
@@ -0,0 +1,87 @@
+This patch makes CERT_SetCertTrust prefer writable tokens that already contain
+the certificate when choosing where to store trust settings.
+See crbug.com/1132030 .
+
+Upstream bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1680453
+Upstream review: https://phabricator.services.mozilla.com/D99840
+
+--- nss/lib/pki/pki3hack.c
++++ nss/lib/pki/pki3hack.c
+@@ -1048,9 +1048,9 @@ static NSSToken *
+ stan_GetTrustToken(
+     NSSCertificate *c)
+ {
+-    NSSToken *ttok = NULL;
+-    NSSToken *rtok = NULL;
+-    NSSToken *tok = NULL;
++    NSSToken *token_with_trust_object = NULL;
++    NSSToken *ro_token_without_trust_object = NULL;
++    NSSToken *rw_token_without_trust_object = NULL;
+     nssCryptokiObject **ip;
+     nssCryptokiObject **instances = nssPKIObject_GetInstances(&c->object);
+     if (!instances) {
+@@ -1058,30 +1058,48 @@ stan_GetTrustToken(
+     }
+     for (ip = instances; *ip; ip++) {
+         nssCryptokiObject *instance = *ip;
+-        nssCryptokiObject *to =
++        nssCryptokiObject *trust_object =
+             nssToken_FindTrustForCertificate(instance->token, NULL,
+                                              &c->encoding, &c->issuer, &c->serial,
+                                              nssTokenSearchType_TokenOnly);
+-        NSSToken *ctok = instance->token;
+-        PRBool ro = PK11_IsReadOnly(ctok->pk11slot);
+-
+-        if (to) {
+-            nssCryptokiObject_Destroy(to);
+-            ttok = ctok;
+-            if (!ro) {
++        NSSToken *current_token = instance->token;
++        PRBool is_read_only = PK11_IsReadOnly(current_token->pk11slot);
++
++        if (trust_object) {
++            nssCryptokiObject_Destroy(trust_object);
++            token_with_trust_object = current_token;
++            if (!is_read_only) {
++                // No point iterating further, as the read-write token that
++                // already has a trust object will be preferred anyway.
+                 break;
+             }
+-        } else {
+-            if (!rtok && ro) {
+-                rtok = ctok;
+-            }
+-            if (!tok && !ro) {
+-                tok = ctok;
+-            }
++            continue;
++        }
++        if (!rw_token_without_trust_object && !is_read_only) {
++          rw_token_without_trust_object = current_token;
++          continue;
++        }
++        if (!ro_token_without_trust_object && is_read_only) {
++          ro_token_without_trust_object = current_token;
+         }
+     }
+     nssCryptokiObjectArray_Destroy(instances);
+-    return ttok ? ttok : (tok ? tok : rtok);
++
++    // Precedence rules:
++    // Note that all tokens considered here have the certificate on them.
++    // read-write token with trust object > any read-write token >
++    //    read-only token with trust object > any read-only token
++    if (token_with_trust_object &&
++        !PK11_IsReadOnly(token_with_trust_object->pk11slot)) {
++      return token_with_trust_object;
++    }
++    if (rw_token_without_trust_object ) {
++      return rw_token_without_trust_object;
++    }
++    if (token_with_trust_object) {
++      return token_with_trust_object;
++    }
++    return ro_token_without_trust_object;
+ }
+ 
+ NSS_EXTERN PRStatus
diff --git a/app-crypt/nss/nss-3.44-r2.ebuild b/app-crypt/nss/nss-3.44-r2.ebuild
index 50019a4..794fbfa 100644
--- a/app-crypt/nss/nss-3.44-r2.ebuild
+++ b/app-crypt/nss/nss-3.44-r2.ebuild
@@ -40,6 +40,7 @@
 	"${FILESDIR}/${PN}-3.32-gentoo-fixups.patch"
 	"${FILESDIR}/${PN}-3.21-gentoo-fixup-warnings.patch"
 	"${FILESDIR}/${PN}-3.23-hppa-byte_order.patch"
+	"${FILESDIR}/${PN}-3.44-prefer-writable-tokens-for-trust.patch"
 )
 
 src_unpack() {
diff --git a/app-crypt/nss/nss-3.44-r3.ebuild b/app-crypt/nss/nss-3.44-r4.ebuild
similarity index 100%
rename from app-crypt/nss/nss-3.44-r3.ebuild
rename to app-crypt/nss/nss-3.44-r4.ebuild
diff --git a/app-crypt/trousers-tests/trousers-tests-0.0.1-r86.ebuild b/app-crypt/trousers-tests/trousers-tests-0.0.1-r86.ebuild
deleted file mode 100644
index 7521882..0000000
--- a/app-crypt/trousers-tests/trousers-tests-0.0.1-r86.ebuild
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-CROS_WORKON_COMMIT="e72db95c4e3ed7e2306c22511fb54a8b014f6ed0"
-CROS_WORKON_TREE="aba7980808012c4eedfe9cffe497881ab62ea0ef"
-CROS_WORKON_PROJECT="chromiumos/third_party/trousers"
-CROS_WORKON_EGIT_BRANCH="master-0.3.13"
-
-inherit cros-workon autotest
-
-DESCRIPTION="Trousers TPM tests"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/trousers/"
-SRC_URI=""
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="*"
-DEPEND="
-	app-crypt/trousers
-	!<chromeos-base/autotest-tests-0.0.1-r1521
-"
-RDEPEND="${DEPEND}"
-
-# Enable autotest by default.
-IUSE="${IUSE} +autotest"
-
-IUSE_TESTS="
-	+tests_hardware_TPM
-"
-
-IUSE="${IUSE} ${IUSE_TESTS}"
-
-CROS_WORKON_LOCALNAME=trousers
-
-# path from root of repo
-AUTOTEST_CLIENT_SITE_TESTS=autotest
-
-src_compile() {
-	# for Makefile
-	export TROUSERS_DIR=${WORKDIR}/${P}
-	autotest_src_compile
-}
-
diff --git a/app-crypt/trousers-tests/trousers-tests-0.0.1-r90.ebuild b/app-crypt/trousers-tests/trousers-tests-0.0.1-r90.ebuild
new file mode 100644
index 0000000..80154e5
--- /dev/null
+++ b/app-crypt/trousers-tests/trousers-tests-0.0.1-r90.ebuild
@@ -0,0 +1,43 @@
+# Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+CROS_WORKON_COMMIT="21ea14eb031957f9cf8d00a57dd45a7a1e9dae84"
+CROS_WORKON_TREE="60ed0f862fd08a2c848734d206da47d7666a8524"
+CROS_WORKON_PROJECT="chromiumos/third_party/trousers"
+CROS_WORKON_EGIT_BRANCH="master-0.3.13"
+
+inherit cros-workon autotest
+
+DESCRIPTION="Trousers TPM tests"
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/trousers/"
+SRC_URI=""
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="*"
+DEPEND="
+	app-crypt/trousers
+	!<chromeos-base/autotest-tests-0.0.1-r1521
+"
+RDEPEND="${DEPEND}"
+
+# Enable autotest by default.
+IUSE="${IUSE} +autotest"
+
+IUSE_TESTS="
+	+tests_hardware_TPM
+"
+
+IUSE="${IUSE} ${IUSE_TESTS}"
+
+CROS_WORKON_LOCALNAME=trousers
+
+# path from root of repo
+AUTOTEST_CLIENT_SITE_TESTS=autotest
+
+src_compile() {
+	# for Makefile
+	export TROUSERS_DIR=${WORKDIR}/${P}
+	autotest_src_compile
+}
+
diff --git a/app-crypt/trousers/trousers-0.3.3-r105.ebuild b/app-crypt/trousers/trousers-0.3.3-r105.ebuild
new file mode 100644
index 0000000..bf6e387
--- /dev/null
+++ b/app-crypt/trousers/trousers-0.3.3-r105.ebuild
@@ -0,0 +1,84 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Copyright 2010 Google, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header$
+
+EAPI="5"
+CROS_WORKON_COMMIT="21ea14eb031957f9cf8d00a57dd45a7a1e9dae84"
+CROS_WORKON_TREE="60ed0f862fd08a2c848734d206da47d7666a8524"
+CROS_WORKON_PROJECT="chromiumos/third_party/trousers"
+CROS_WORKON_EGIT_BRANCH="chromeos-0.3.13"
+
+inherit autotools base cros-debug cros-sanitizers cros-workon flag-o-matic libchrome systemd tmpfiles user
+
+DESCRIPTION="An open-source TCG Software Stack (TSS) v1.1 implementation"
+HOMEPAGE="http://trousers.sf.net"
+LICENSE="CPL-1.0"
+KEYWORDS="*"
+SLOT="0"
+IUSE="asan doc mocktpm systemd tss_trace"
+
+COMMON_DEPEND="
+	chromeos-base/libhwsec-foundation
+	>=chromeos-base/metrics-0.0.1-r3152
+	>=dev-libs/openssl-0.9.7:0="
+
+RDEPEND="${COMMON_DEPEND}"
+
+DEPEND="${COMMON_DEPEND}
+	dev-util/pkgconfig"
+
+## TODO: Check if this patch is useful for us.
+## PATCHES=(	"${FILESDIR}/${PN}-0.2.3-nouseradd.patch" )
+
+pkg_setup() {
+	# New user/group for the daemon
+	enewgroup tss
+	enewuser tss
+}
+
+src_prepare() {
+	base_src_prepare
+
+	sed -e "s/-Werror //" -i configure.in
+	eautoreconf
+}
+
+src_configure() {
+	sanitizers-setup-env
+	use tss_trace && append-cppflags -DTSS_TRACE
+	use mocktpm && append-cppflags -DMOCK_TPM
+
+	cros-debug-add-NDEBUG
+	export BASE_VER="$(libchrome_ver)"
+	econf
+}
+
+src_install() {
+	default
+	dodoc NICETOHAVES
+	use doc && dodoc doc/*
+
+	# Install the empty system.data files
+	dodir /etc/trousers
+	insinto /etc/trousers
+	doins "${S}"/dist/system.data.*
+
+	# Install the init scripts
+	if use systemd; then
+		systemd_dounit init/*.service
+		systemd_enable_service boot-services.target tcsd.service
+		systemd_enable_service boot-services.target tpm-probe.service
+	else
+		insinto /etc/init
+		doins init/*.conf
+	fi
+	exeinto /usr/share/cros/init
+	doexe init/tcsd-pre-start.sh
+	dotmpfiles tmpfiles.d/tcsd.conf
+}
+
+pkg_postinst() {
+	elog "If you have problems starting tcsd, please check permissions and"
+	elog "ownership on /dev/tpm* and ~tss/system.data"
+}
diff --git a/app-crypt/trousers/trousers-0.3.3-r99.ebuild b/app-crypt/trousers/trousers-0.3.3-r99.ebuild
deleted file mode 100644
index b57adae..0000000
--- a/app-crypt/trousers/trousers-0.3.3-r99.ebuild
+++ /dev/null
@@ -1,82 +0,0 @@
-# Copyright 1999-2009 Gentoo Foundation
-# Copyright 2010 Google, Inc.
-# Distributed under the terms of the GNU General Public License v2
-# $Header$
-
-EAPI="5"
-CROS_WORKON_COMMIT="e72db95c4e3ed7e2306c22511fb54a8b014f6ed0"
-CROS_WORKON_TREE="aba7980808012c4eedfe9cffe497881ab62ea0ef"
-CROS_WORKON_PROJECT="chromiumos/third_party/trousers"
-CROS_WORKON_EGIT_BRANCH="master-0.3.13"
-
-inherit autotools base cros-debug cros-sanitizers cros-workon flag-o-matic libchrome systemd user
-
-DESCRIPTION="An open-source TCG Software Stack (TSS) v1.1 implementation"
-HOMEPAGE="http://trousers.sf.net"
-LICENSE="CPL-1.0"
-KEYWORDS="*"
-SLOT="0"
-IUSE="asan doc mocktpm systemd tss_trace"
-
-COMMON_DEPEND="
-	>=chromeos-base/metrics-0.0.1-r3152
-	>=dev-libs/openssl-0.9.7:0="
-
-RDEPEND="${COMMON_DEPEND}"
-
-DEPEND="${COMMON_DEPEND}
-	dev-util/pkgconfig"
-
-## TODO: Check if this patch is useful for us.
-## PATCHES=(	"${FILESDIR}/${PN}-0.2.3-nouseradd.patch" )
-
-pkg_setup() {
-	# New user/group for the daemon
-	enewgroup tss
-	enewuser tss
-}
-
-src_prepare() {
-	base_src_prepare
-
-	sed -e "s/-Werror //" -i configure.in
-	eautoreconf
-}
-
-src_configure() {
-	sanitizers-setup-env
-	use tss_trace && append-cppflags -DTSS_TRACE
-	use mocktpm && append-cppflags -DMOCK_TPM
-
-	cros-debug-add-NDEBUG
-	export BASE_VER="$(libchrome_ver)"
-	econf
-}
-
-src_install() {
-	default
-	dodoc NICETOHAVES
-	use doc && dodoc doc/*
-
-	# Install the empty system.data files
-	dodir /etc/trousers
-	insinto /etc/trousers
-	doins "${S}"/dist/system.data.*
-
-	# Install the init scripts
-	if use systemd; then
-		systemd_dounit init/*.service
-		systemd_enable_service boot-services.target tcsd.service
-		systemd_enable_service boot-services.target tpm-probe.service
-	else
-		insinto /etc/init
-		doins init/*.conf
-	fi
-	exeinto /usr/share/cros/init
-	doexe init/tcsd-pre-start.sh
-}
-
-pkg_postinst() {
-	elog "If you have problems starting tcsd, please check permissions and"
-	elog "ownership on /dev/tpm* and ~tss/system.data"
-}
diff --git a/app-crypt/trousers/trousers-9999.ebuild b/app-crypt/trousers/trousers-9999.ebuild
index 98acf56..4474712 100644
--- a/app-crypt/trousers/trousers-9999.ebuild
+++ b/app-crypt/trousers/trousers-9999.ebuild
@@ -5,9 +5,9 @@
 
 EAPI="5"
 CROS_WORKON_PROJECT="chromiumos/third_party/trousers"
-CROS_WORKON_EGIT_BRANCH="master-0.3.13"
+CROS_WORKON_EGIT_BRANCH="chromeos-0.3.13"
 
-inherit autotools base cros-debug cros-sanitizers cros-workon flag-o-matic libchrome systemd user
+inherit autotools base cros-debug cros-sanitizers cros-workon flag-o-matic libchrome systemd tmpfiles user
 
 DESCRIPTION="An open-source TCG Software Stack (TSS) v1.1 implementation"
 HOMEPAGE="http://trousers.sf.net"
@@ -17,6 +17,7 @@
 IUSE="asan doc mocktpm systemd tss_trace"
 
 COMMON_DEPEND="
+	chromeos-base/libhwsec-foundation
 	>=chromeos-base/metrics-0.0.1-r3152
 	>=dev-libs/openssl-0.9.7:0="
 
@@ -72,6 +73,7 @@
 	fi
 	exeinto /usr/share/cros/init
 	doexe init/tcsd-pre-start.sh
+	dotmpfiles tmpfiles.d/tcsd.conf
 }
 
 pkg_postinst() {
diff --git a/app-emulation/lxc/Manifest b/app-emulation/lxc/Manifest
index 4133ad3..be6144f 100644
--- a/app-emulation/lxc/Manifest
+++ b/app-emulation/lxc/Manifest
@@ -1 +1,3 @@
+DIST lxc-4.0.9.tar.gz 1500310 BLAKE2B 3796d36b6f76ec595dc28207e66ec9f5a7c1a39f5c5ebc851638c519be35f59b4ec06a71b2866cd8fef0a6140f61fd4b70c900f5a8ffd42d7da7a30d3ff59975 SHA512 4ef9d9efdd4118fdffde8b49c6ae71cf5eb060be51daaa4f4ceb804c743fbf3278e6518e6a694faefc720f2834f98ac48d67842d589a2120b8f7ec4c3b61fa84
+DIST lxc-4.0.9.tar.gz.asc 833 BLAKE2B 2d275c968831410d987aa7f8062f4e35ba15043f92f38fd3bdd6bf80964906741d05ccd93789132d421ee1c8778cec6a2e76c4f0eb2165cf0107261495fa6856 SHA512 4c90dfbdba90959ee8df5da8ca8b240f65ab03ab91637833c677e2a73592c09f9c5a55b9a261be6efb0888156c916223ff1aa9003b18d46e667908aaa550c944
 DIST lxc-3.0.3.tar.gz 1263371 SHA256 620cb832cc02c63bf4d330657bf6176544e145da281ee384a34d689635a19841 SHA512 cdc411364153d7ed494bab604260f5cbdfd5bd7734a59af970b3198c7b3cb340b6736856a2189d5989e169945a817ac8b531bc3ab62217a4285dd63a851f9c8a WHIRLPOOL d2ee6f15747c3a746f2994344abc74239bddab82f5370dece3da9ce8379324db2a050b52d151d3c1c0b77bfeeb6b708af3eac28cabda0960cacf071c43b73d1c
diff --git a/app-emulation/lxc/files/lxc.initd.8 b/app-emulation/lxc/files/lxc.initd.8
new file mode 100644
index 0000000..727f6d5
--- /dev/null
+++ b/app-emulation/lxc/files/lxc.initd.8
@@ -0,0 +1,131 @@
+#!/sbin/openrc-run
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+CONTAINER=${SVCNAME#*.}
+
+LXC_PATH=`lxc-config lxc.lxcpath`
+
+lxc_get_configfile() {
+	if [ -f "${LXC_PATH}/${CONTAINER}.conf" ]; then
+		echo "${LXC_PATH}/${CONTAINER}.conf"
+	elif [ -f "${LXC_PATH}/${CONTAINER}/config" ]; then
+		echo "${LXC_PATH}/${CONTAINER}/config"
+	else
+		eerror "Unable to find a suitable configuration file."
+		eerror "If you set up the container in a non-standard"
+		eerror "location, please set the CONFIGFILE variable."
+		return 1
+	fi
+}
+
+[ $CONTAINER != $SVCNAME ] && CONFIGFILE=${CONFIGFILE:-$(lxc_get_configfile)}
+
+lxc_get_var() {
+	awk 'BEGIN { FS="[ \t]*=[ \t]*" } $1 == "'$1'" { print $2; exit }' ${CONFIGFILE}
+}
+
+lxc_get_net_link_type() {
+	awk 'BEGIN { FS="[ \t]*=[ \t]*"; _link=""; _type="" }
+		$1 == "lxc.network.type" {_type=$2;}
+		$1 == "lxc.network.link" {_link=$2;}
+		match($1, /lxc\.net\.[[:digit:]]+\.type/) {_type=$2;}
+		match($1, /lxc\.net\.[[:digit:]]+\.link/) {_link=$2;}
+		{if(_link != "" && _type != ""){
+			printf("%s:%s\n", _link, _type );
+			_link=""; _type="";
+		}; }' <${CONFIGFILE}
+}
+
+checkconfig() {
+	if [ ${CONTAINER} = ${SVCNAME} ]; then
+		eerror "You have to create an init script for each container:"
+		eerror " ln -s lxc /etc/init.d/lxc.container"
+		return 1
+	fi
+
+	# no need to output anything, the function takes care of that.
+	[ -z "${CONFIGFILE}" ] && return 1
+
+	utsname=$(lxc_get_var lxc.uts.name)
+	if [ -z "$utsname" ] ; then
+		utsname=$(lxc_get_var lxc.utsname)
+	fi
+
+	if [ "${CONTAINER}" != "${utsname}" ]; then
+	    eerror "You should use the same name for the service and the"
+	    eerror "container. Right now the container is called ${utsname}"
+	    return 1
+	fi
+}
+
+depend() {
+	# be quiet, since we have to run depend() also for the
+	# non-muxed init script, unfortunately.
+	checkconfig 2>/dev/null || return 0
+
+	config ${CONFIGFILE}
+	need localmount
+	use lxcfs
+
+	local _x _if
+	for _x in $(lxc_get_net_link_type); do
+		_if=${_x%:*}
+		case "${_x##*:}" in
+			# when the network type is set to phys, we can make use of a
+			# network service (for instance to set it up before we disable
+			# the net_admin capability), but we might also  not set it up
+			# at all on the host and leave the net_admin capable service
+			# to take care of it.
+			phys)	use net.${_if} ;;
+			*)	need net.${_if} ;;
+		esac
+	done
+}
+
+start() {
+	checkconfig || return 1
+	rm -f /var/log/lxc/${CONTAINER}.log
+
+	rootpath=$(lxc_get_var lxc.rootfs)
+
+	# Check the format of our init and the chroot's init, to see
+	# if we have to use linux32 or linux64; always use setarch
+	# when required, as that makes it easier to deal with
+	# x32-based containers.
+	case $(scanelf -BF '%a#f' ${rootpath}/sbin/init) in
+		EM_X86_64)	setarch=linux64;;
+		EM_386)		setarch=linux32;;
+	esac
+
+	ebegin "Starting LXC container ${CONTAINER}"
+	env -i ${setarch} $(which lxc-start) -n ${CONTAINER} -f ${CONFIGFILE} -d -o /var/log/lxc/${CONTAINER}.log
+	sleep 1
+
+	# lxc-start -d will _always_ report a correct startup, even if it
+	# failed, so rather than trust that, check that the cgroup exists.
+	# fix for LXC 3.1	
+
+	STATE="$(lxc-info -s -H ${CONTAINER})"
+	[ "$STATE" = "RUNNING" ]
+	
+	eend $?
+}
+
+stop() {
+	checkconfig || return 1
+
+	STATE="$(lxc-info -s -H ${CONTAINER})"
+	
+	if ! [ "$STATE" = "RUNNING" ]; then
+	    ewarn "${CONTAINER} doesn't seem to be started."
+	    return 0
+	fi
+
+	# 30s should be enough to shut everything down
+	# lxc-stop will return back anyway as soon as successful shutdown
+	# after 30s, lxc-stop sends SIGKILL (dirty shotdown)
+	ebegin "Stopping LXC container ${CONTAINER}"
+	lxc-stop -t 30 -n ${CONTAINER}
+	eend $?
+}
diff --git a/app-emulation/lxc/files/lxc_at.service.4.0.0 b/app-emulation/lxc/files/lxc_at.service.4.0.0
new file mode 100644
index 0000000..b354bc5
--- /dev/null
+++ b/app-emulation/lxc/files/lxc_at.service.4.0.0
@@ -0,0 +1,15 @@
+[Unit]
+Description=Linux Container %i
+After=network.target
+Wants=lxcfs.service
+
+[Service]
+Type=forking
+ExecStart=/usr/bin/lxc-start -d -n %i -p /run/lxc-%i.pid
+PIDFile=/run/lxc-%i.pid
+ExecStop=/usr/bin/lxc-stop -n %i
+Delegate=true
+TasksMax=32768
+
+[Install]
+WantedBy=multi-user.target
diff --git a/app-emulation/lxc/lxc-4.0.9.ebuild b/app-emulation/lxc/lxc-4.0.9.ebuild
new file mode 100644
index 0000000..b6b7555
--- /dev/null
+++ b/app-emulation/lxc/lxc-4.0.9.ebuild
@@ -0,0 +1,177 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# TODO(crbug.com/1097610) Once stabilized, this can probably go back
+# to portage-stable
+
+EAPI=7
+
+inherit autotools bash-completion-r1 linux-info flag-o-matic optfeature pam readme.gentoo-r1 systemd verify-sig
+
+DESCRIPTION="A userspace interface for the Linux kernel containment features"
+HOMEPAGE="https://linuxcontainers.org/ https://github.com/lxc/lxc"
+SRC_URI="https://linuxcontainers.org/downloads/lxc/${P}.tar.gz
+	verify-sig? ( https://linuxcontainers.org/downloads/lxc/${P}.tar.gz.asc )"
+
+KEYWORDS="*"
+
+LICENSE="LGPL-3"
+SLOT="4"
+IUSE="apparmor +caps doc man pam selinux +ssl +tools verify-sig"
+
+RDEPEND="app-misc/pax-utils
+	sys-apps/util-linux
+	sys-libs/libcap
+	sys-libs/libseccomp
+	virtual/awk
+	caps? ( sys-libs/libcap )
+	pam? ( sys-libs/pam )
+	selinux? ( sys-libs/libselinux )
+	ssl? (
+		dev-libs/openssl:0=
+	)"
+DEPEND="${RDEPEND}
+	>=sys-kernel/linux-headers-4
+	apparmor? ( sys-apps/apparmor )"
+BDEPEND="doc? ( app-doc/doxygen )
+	man? ( app-text/docbook-sgml-utils )
+	verify-sig? ( app-crypt/openpgp-keys-linuxcontainers )"
+
+CONFIG_CHECK="~!NETPRIO_CGROUP
+	~CGROUPS
+	~CGROUP_CPUACCT
+	~CGROUP_DEVICE
+	~CGROUP_FREEZER
+
+	~CGROUP_SCHED
+	~CPUSETS
+	~IPC_NS
+	~MACVLAN
+
+	~MEMCG
+	~NAMESPACES
+	~NET_NS
+	~PID_NS
+
+	~POSIX_MQUEUE
+	~USER_NS
+	~UTS_NS
+	~VETH"
+
+ERROR_CGROUP_FREEZER="CONFIG_CGROUP_FREEZER: needed to freeze containers"
+ERROR_MACVLAN="CONFIG_MACVLAN: needed for internal (inter-container) networking"
+ERROR_MEMCG="CONFIG_MEMCG: needed for memory resource control in containers"
+ERROR_NET_NS="CONFIG_NET_NS: needed for unshared network"
+ERROR_POSIX_MQUEUE="CONFIG_POSIX_MQUEUE: needed for lxc-execute command"
+ERROR_UTS_NS="CONFIG_UTS_NS: needed to unshare hostnames and uname info"
+ERROR_VETH="CONFIG_VETH: needed for internal (host-to-container) networking"
+
+DOCS=( AUTHORS CONTRIBUTING MAINTAINERS NEWS README doc/FAQ.txt )
+
+pkg_setup() {
+	linux-info_pkg_setup
+}
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-3.0.0-bash-completion.patch
+	"${FILESDIR}"/${PN}-2.0.5-omit-sysconfig.patch # bug 558854
+)
+
+VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/linuxcontainers.asc
+
+src_prepare() {
+	default
+	eautoreconf
+}
+
+src_configure() {
+	append-flags -fno-strict-aliasing
+
+	prefix="${EPREFIX}"/opt/google/lxd-next
+
+	local myeconfargs=(
+		--prefix="${prefix}"
+		--bindir="${prefix}"/usr/bin
+		--localstatedir=/var
+		--sbindir="${prefix}"/usr/bin
+		--datadir="${prefix}"/usr/share
+		--sysconfdir="${prefix}"/etc
+
+		--with-config-path=/var/lib/lxc
+		--with-distro=gentoo
+		--with-init-script=systemd
+		--with-rootfs-path="${prefix}"/var/lib/lxc/rootfs
+		--with-runtime-path=/run
+		--with-systemdsystemunitdir="${prefix}$(systemd_get_systemunitdir)"
+
+		--disable-coverity-build
+		--disable-dlog
+		--disable-fuzzers
+		--disable-mutex-debugging
+		--disable-no-undefined
+		--disable-rpath
+		--disable-sanitizers
+		--disable-tests
+		--disable-werror
+
+		--enable-bash
+		--enable-commands
+		--enable-memfd-rexec
+		--enable-seccomp
+		--enable-thread-safety
+
+		$(use_enable apparmor)
+		$(use_enable caps capabilities)
+		$(use_enable doc api-docs)
+		$(use_enable doc examples)
+		$(use_enable man doc)
+		$(use_enable pam)
+		$(use_enable selinux)
+		$(use_enable ssl openssl)
+		$(use_enable tools)
+
+		$(use_with pam pamdir "${prefix}$(getpam_mod_dir)")
+	)
+
+	econf "${myeconfargs[@]}"
+}
+
+src_install() {
+	default
+
+	prefix="${ED}/opt/google/lxd-next"
+
+	mv "${prefix}"/usr/share/bash-completion/completions/${PN} "${prefix}"/$(get_bashcompdir)/${PN}-start || die
+	bashcomp_alias ${PN}-start \
+		${PN}-{attach,cgroup,copy,console,create,destroy,device,execute,freeze,info,monitor,snapshot,stop,unfreeze,wait}
+
+	keepdir /etc/lxc /var/lib/lxc/rootfs /var/log/lxc
+	rmdir "${D}"/var/cache/lxc "${D}"/var/cache || die "rmdir failed"
+
+	find "${D}" -name '*.la' -delete -o -name '*.a' -delete || die
+
+	# Gentoo-specific additions!
+	newinitd "${FILESDIR}/${PN}.initd.8" ${PN}
+
+	DOC_CONTENTS="
+		For openrc, there is an init script provided with the package.
+		You should only need to symlink /etc/init.d/lxc to
+		/etc/init.d/lxc.configname to start the container defined in
+		/etc/lxc/configname.conf.
+
+		Correspondingly, for systemd a service file lxc@.service is installed.
+		Enable and start lxc@configname in order to start the container defined
+		in /etc/lxc/configname.conf."
+	DISABLE_AUTOFORMATTING=true
+	readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+	readme.gentoo_print_elog
+
+	elog "Please run 'lxc-checkconfig' to see optional kernel features."
+	elog
+	optfeature "automatic template scripts" app-emulation/lxc-templates
+	optfeature "Debian-based distribution container image support" dev-util/debootstrap
+	optfeature "snapshot & restore functionality" sys-process/criu
+}
diff --git a/app-emulation/lxc/metadata.xml b/app-emulation/lxc/metadata.xml
index b0c9c68..b332e72 100644
--- a/app-emulation/lxc/metadata.xml
+++ b/app-emulation/lxc/metadata.xml
@@ -1,17 +1,19 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
 <pkgmetadata>
-  <herd>virtualization</herd>
-  <maintainer>
-    <email>flameeyes@gentoo.org</email>
+  <maintainer type="person">
+    <email>juippis@gentoo.org</email>
+    <name>Joonas Niilola</name>
   </maintainer>
-  <maintainer>
-    <email>dev-zero@gentoo.org</email>
-  </maintainer>
-  <maintainer>
-    <email>hwoarang@gentoo.org</email>
+  <maintainer type="project">
+    <email>virtualization@gentoo.org</email>
+    <name>Gentoo Virtualization Project</name>
   </maintainer>
   <use>
-    <flag name="seccomp">Use seccomp syscall filters using <pkg>sys-libs/libseccomp</pkg></flag>
+    <flag name="apparmor">Enable AppArmor support</flag>
+    <flag name="tools">Build and install additional command line tools</flag>
   </use>
+  <upstream>
+    <remote-id type="github">lxc/lxc</remote-id>
+  </upstream>
 </pkgmetadata>
diff --git a/app-emulation/lxd/Manifest b/app-emulation/lxd/Manifest
index 2662800..54e38c1 100644
--- a/app-emulation/lxd/Manifest
+++ b/app-emulation/lxd/Manifest
@@ -1 +1,3 @@
 DIST lxd-3.17.tar.gz 23494267 BLAKE2B 69948c1a032b2d22f298416205aed457b3a94d42c6239b360a7c63a20a89f85dd67557c8864328055419627fb24b003dba8b386bfbe98e3a860cce24204f82ba SHA512 5dcfb423d091733736fb7df7ed14a638ecab1280863836d91e63823683521d4f4e1ee52f364cb76b0abf8382dc115598d96037c90d772a0b664476cb6917e7d7
+DIST lxd-4.0.6.tar.gz 15353779 BLAKE2B f699e91c53b407e5a0e47fe40b133d6216754b1e5c5829ee68993468565f2080c12cbcbf8373d6da16ca94a3648ec51b874e66ff589be09dc95f2382d18f3e12 SHA512 58efaac50dbcbb3cf0e7aa1b3b43085beae4546dfcd081720b049c2b88bf120b9a74e7db1238bbdd8cc2449e039b076ece3734e8f46f3ddbdc70aaae8b326963
+DIST lxd-4.0.6.tar.gz.asc 833 BLAKE2B 6d1756b130a944a98e62d809c45129178bfc39158c71e09319cdaff7461b14bda467e44a781bb5c15d40afdae4d3ec86f98919738a8c169d3fff910d8e9fe58a SHA512 6c59bd8ec9bf0d9bd90c8ab2970cf6928c0bef3736631ea2a56ebc464f33940366d35925ddfc4104c13fa0fd4e1bea42796e0a2eb82a8bf395957829f938c7db
diff --git a/app-emulation/lxd/files/lxd-3.17-Fix-lxd-import-error.patch b/app-emulation/lxd/files/lxd-3.17-Fix-lxd-import-error.patch
new file mode 100644
index 0000000..1273e21
--- /dev/null
+++ b/app-emulation/lxd/files/lxd-3.17-Fix-lxd-import-error.patch
@@ -0,0 +1,45 @@
+From 595c704bab036cfb74a350103e48e233315ba402 Mon Sep 17 00:00:00 2001
+From: Fergus Dall <sidereal@google.com>
+Date: Thu, 1 Apr 2021 15:57:51 +1100
+Subject: [PATCH] Fix lxd import error
+
+Currently if the snapshots directory doesn't exist, and backup.yaml
+had snapshots listed, this is a hard error, whereas other conflicts
+can be bypassed by adding --force. This happens because if there are
+no snapshots, the directory containing them doesn't exist
+either. Change the handling to treat a non-existent directory as "no
+snapshots" rather then as an error.
+---
+ lxd/api_internal.go | 13 +++++++------
+ 1 file changed, 7 insertions(+), 6 deletions(-)
+
+diff --git a/lxd/api_internal.go b/lxd/api_internal.go
+index 758f17b40..6b4d6e7dd 100644
+--- a/lxd/api_internal.go
++++ b/lxd/api_internal.go
+@@ -547,15 +547,16 @@ func internalImport(d *Daemon, r *http.Request) Response {
+ 		case "btrfs":
+ 			snapshotsDirPath := driver.GetSnapshotMountPoint(projectName, poolName, req.Name)
+ 			snapshotsDir, err := os.Open(snapshotsDirPath)
+-			if err != nil {
++			if err != nil && !os.IsNotExist(err) {
+ 				return InternalError(err)
+-			}
+-			onDiskSnapshots, err = snapshotsDir.Readdirnames(-1)
+-			if err != nil {
++			} else if err == nil {
++				onDiskSnapshots, err = snapshotsDir.Readdirnames(-1)
++				if err != nil {
++					snapshotsDir.Close()
++					return InternalError(err)
++				}
+ 				snapshotsDir.Close()
+-				return InternalError(err)
+ 			}
+-			snapshotsDir.Close()
+ 		case "dir":
+ 			snapshotsDirPath := driver.GetSnapshotMountPoint(projectName, poolName, req.Name)
+ 			snapshotsDir, err := os.Open(snapshotsDirPath)
+-- 
+2.31.0.291.g576ba9dcdaf-goog
+
diff --git a/app-emulation/lxd/files/lxd-4.0.6-set-path.sh b/app-emulation/lxd/files/lxd-4.0.6-set-path.sh
new file mode 100644
index 0000000..2c03565
--- /dev/null
+++ b/app-emulation/lxd/files/lxd-4.0.6-set-path.sh
@@ -0,0 +1,22 @@
+# shellcheck shell=bash
+#
+# Copyright 2021 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+#
+# Append lxd-next paths to PATH and LD_LIBRARY_PATH
+#
+# We have to do this both here and in maitred for three reasons:
+#  1) vshd is started before the StartTermina RPC, so it's environment variables
+#     don't reflect information about which LXD should be used
+#  2) /etc/profile adds the "normal" PATH entries *before* existing PATH values,
+#     whereas we need the lxd-next paths to come first, so even if vshd did have
+#     a correct PATH the resulting login shell wouldn't.
+#  3) vshd clears the environment before exec anyway
+#
+# This file is installed as a dot-file in /etc/bash/bashrc.d/ (which will be
+# ignored) and bind-mounted over an empty file in the same directory if it is
+# needed.
+
+export PATH="/opt/google/lxd-next/bin:/opt/google/lxd-next/usr/bin:${PATH}"
+export LD_LIBRARY_PATH="/opt/google/lxd-next/lib:/opt/google/lxd-next/lib64:/opt/google/lxd-next/usr/lib:/opt/google/lxd-next/usr/lib64:${LD_LIBRARY_PATH}"
diff --git a/app-emulation/lxd/lxd-3.17-r3.ebuild b/app-emulation/lxd/lxd-3.17-r4.ebuild
similarity index 100%
rename from app-emulation/lxd/lxd-3.17-r3.ebuild
rename to app-emulation/lxd/lxd-3.17-r4.ebuild
diff --git a/app-emulation/lxd/lxd-3.17.ebuild b/app-emulation/lxd/lxd-3.17.ebuild
index fe4080d..211f544 100644
--- a/app-emulation/lxd/lxd-3.17.ebuild
+++ b/app-emulation/lxd/lxd-3.17.ebuild
@@ -90,7 +90,7 @@
 RDEPEND="
 	daemon? (
 		app-arch/xz-utils
-		>=app-emulation/lxc-2.0.7[seccomp]
+		>=app-emulation/lxc-2.0.7:0[seccomp]
 		dev-libs/libuv
 		dev-libs/lzo
 		dev-util/xdelta:3
@@ -104,7 +104,7 @@
 		net-misc/rsync[xattr]
 		sys-apps/iproute2[ipv6?]
 		sys-fs/fuse
-		sys-fs/lxcfs
+		sys-fs/lxcfs:0
 		sys-fs/squashfs-tools
 		virtual/acl
 	)
@@ -162,6 +162,9 @@
 }
 
 src_prepare() {
+	cd "${S}/_dist/src/github.com/lxc/lxd"
+	eapply "${FILESDIR}/${P}-Fix-lxd-import-error.patch" # crbug.com/1194406
+
 	cd "${S}/_dist/src/${EGO_PN}"
 	eapply "${FILESDIR}/0001-lxd-util-Add-HasFilesystem.patch" # crbug.com/1024327
 	eapply "${FILESDIR}/0002-lxd-Detect-built-in-shiftfs-too.patch" # crbug.com/1024327
diff --git a/app-emulation/lxd/lxd-4.0.6.ebuild b/app-emulation/lxd/lxd-4.0.6.ebuild
new file mode 100644
index 0000000..15045a3
--- /dev/null
+++ b/app-emulation/lxd/lxd-4.0.6.ebuild
@@ -0,0 +1,199 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+#
+# shellcheck disable=SC2034
+
+EAPI=7
+
+DESCRIPTION="Fast, dense and secure container management"
+HOMEPAGE="https://linuxcontainers.org/lxd/introduction/ https://github.com/lxc/lxd"
+
+# TODO(crbug/1097610) tremplin requires that someone install the lxd client
+# library. Currently this is done in the 3.17 ebuild, but when this becomes the
+# main ebuild it will need to be moved here.
+CROS_GO_PACKAGES=(
+)
+
+CROS_GO_WORKSPACE="${S}/_dist"
+EGO_PN="github.com/lxc/lxd"
+BIN_PATH="/opt/google/lxd-next/usr/bin"
+CROS_GO_BINARIES=(
+	"${EGO_PN}/lxd:${BIN_PATH}/lxd"
+	"${EGO_PN}/fuidshift:${BIN_PATH}/fuidshift"
+	"${EGO_PN}/lxd-agent:${BIN_PATH}/lxd-agent"
+	"${EGO_PN}/lxd-benchmark:${BIN_PATH}/lxd-benchmark"
+	"${EGO_PN}/lxd-p2c:${BIN_PATH}/lxd-p2c"
+	"${EGO_PN}/lxc:${BIN_PATH}/lxc"
+	"${EGO_PN}/lxc-to-lxd:${BIN_PATH}/lxc-to-lxd"
+)
+
+# Needs to include licenses for all bundled programs and libraries.
+LICENSE="Apache-2.0 BSD BSD-2 LGPL-3 MIT MPL-2.0"
+SLOT="4"
+KEYWORDS="*"
+
+IUSE="apparmor ipv6 nls verify-sig"
+
+inherit autotools bash-completion-r1 linux-info optfeature systemd verify-sig cros-go user
+
+SRC_URI="https://linuxcontainers.org/downloads/lxd/${P}.tar.gz
+	verify-sig? ( https://linuxcontainers.org/downloads/lxd/${P}.tar.gz.asc )"
+
+DEPEND="app-arch/xz-utils
+	>=app-emulation/lxc-3.0.0:4[apparmor?,seccomp(+)]
+	dev-db/sqlite
+	dev-libs/libuv
+	dev-libs/lzo
+	net-dns/dnsmasq[dhcp,ipv6?]
+	virtual/libudev"
+RDEPEND="${DEPEND}
+	net-firewall/ebtables
+	net-firewall/iptables[ipv6?]
+	sys-apps/iproute2[ipv6?]
+	sys-fs/fuse:0=
+	sys-fs/lxcfs:4
+	sys-fs/squashfs-tools[lzma]
+	virtual/acl"
+BDEPEND="dev-lang/go
+	nls? ( sys-devel/gettext )
+	verify-sig? ( app-crypt/openpgp-keys-linuxcontainers )"
+
+CONFIG_CHECK="
+	~CGROUPS
+	~IPC_NS
+	~NET_NS
+	~PID_NS
+
+	~SECCOMP
+	~USER_NS
+	~UTS_NS
+"
+
+ERROR_IPC_NS="CONFIG_IPC_NS is required."
+ERROR_NET_NS="CONFIG_NET_NS is required."
+ERROR_PID_NS="CONFIG_PID_NS is required."
+ERROR_SECCOMP="CONFIG_SECCOMP is required."
+ERROR_UTS_NS="CONFIG_UTS_NS is required."
+
+VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/linuxcontainers.asc
+
+src_unpack() {
+	unpack "${A}"
+	cd "${S}" || die
+
+	# Instead of using the lxd symlink in the dist directory, move the lxd
+	# source into that directory. Otherwise, the cros-go_src_install stage
+	# will fail since it won't traverse symlinks.
+	rm "${S}/_dist/src/${EGO_PN}"
+	mkdir "${S}/_dist/src/${EGO_PN}"
+	find "${S}"/* -maxdepth 0 \
+				-type d \
+				! -name "_dist" \
+				-exec mv {} "${S}/_dist/src/${EGO_PN}" \;
+}
+
+src_configure() {
+	DEPS="${S}/_dist/deps"
+
+	cd "${DEPS}/raft" || die "Can't cd to raft dir"
+	eautoreconf
+	econf --enable-static=no
+
+	cd "${DEPS}/dqlite" || die "Can't cd to dqlite dir"
+	export RAFT_CFLAGS="-I${DEPS}/raft/include/"
+	export RAFT_LIBS="${DEPS}/raft/.libs"
+	eautoreconf
+	econf --enable-static=no
+}
+
+src_compile() {
+	DEPS="${S}/_dist/deps"
+
+	cd "${DEPS}/raft" || die "Can't cd to raft dir"
+	emake
+
+	cd "${DEPS}/dqlite" || die "Can't cd to dqlite dir"
+	emake
+
+	cd "${S}" || die
+
+	# Taken from the output of make deps
+	export CGO_CFLAGS="-I${DEPS}/raft/include/ -I${DEPS}/dqlite/include/"
+	export CGO_LDFLAGS="-L${DEPS}/raft/.libs -L${DEPS}/dqlite/.libs/"
+	export LD_LIBRARY_PATH="${DEPS}/raft/.libs/:${DEPS}/dqlite/.libs/"
+	export CGO_LDFLAGS_ALLOW="-Wl,-wrap,pthread_create"
+
+	# TODO(crbug/1097610) Because we're installing everything to different
+	# paths, we need to tell pkg-config and cgo where to find it. This can
+	# be removed when we commit to LXD 4.0
+	install_root="${SYSROOT}/opt/google/lxd-next"
+	export PKG_CONFIG_LIBDIR="${install_root}/$(get_libdir)/pkgconfig:${SYSROOT}/$(get_libdir)/pkgconfig"
+	export PKG_CONFIG_SYSROOT_DIR="${SYSROOT}"
+	export PKG_CONFIG="/usr/bin/pkg-config"
+	export CGO_CFLAGS="${CGO_CFLAGS} -I${install_root}/include"
+	export CGO_LDFLAGS="${CGO_LDFLAGS} -L${install_root}/$(get_libdir)"
+
+	cros-go_src_compile
+
+	if use nls; then
+		cd "${S}/_dist/src/${EGO_PN}" || die
+		emake -f "${S}/Makefile" build-mo
+	fi
+}
+
+src_test() {
+	DEPS="${S}/_dist/deps"
+
+	# Taken from the output of make deps
+	export CGO_CFLAGS="-I${DEPS}/raft/include/ -I${DEPS}/dqlite/include/"
+	export CGO_LDFLAGS="-L${DEPS}/raft/.libs -L${DEPS}/dqlite/.libs/"
+	export LD_LIBRARY_PATH="${DEPS}/raft/.libs/:${DEPS}/dqlite/.libs/"
+	export CGO_LDFLAGS_ALLOW="-Wl,-wrap,pthread_create"
+
+	# TODO(sidereal) would be nice to enable more tests here
+	cros_go test -v ${EGO_PN}/lxd || die
+}
+
+src_install() {
+	cros-go_src_install
+
+	DEPS="${S}/_dist/deps"
+
+	cd "${DEPS}/raft" || die
+	emake DESTDIR="${D}/opt/google/lxd-next" install
+
+	cd "${DEPS}/dqlite" || die
+	emake DESTDIR="${D}/opt/google/lxd-next" install
+
+	cd "${S}" || die
+	newbashcomp "${S}/_dist/src/${EGO_PN}/scripts/bash/lxd-client" lxc
+
+	dodoc AUTHORS _dist/src/${EGO_PN}/doc/*
+	use nls && domo "${S}/_dist/src/${EGO_PN}/po/"*.mo
+
+	# TODO(crbug/1097610) Remove this once we no longer need to do weird
+	# things with PATH
+	insinto /etc/bash/bashrc.d
+	newins "${FILESDIR}/${P}-set-path.sh" ".set-path-for-lxd-next.sh"
+	newins "$(mktemp)" "set-path-for-lxd-next.sh"
+}
+
+pkg_postinst() {
+	cros-go_pkg_postinst
+
+	# The control socket will be owned by (and writeable by) this group.
+	enewgroup lxd
+
+	elog
+	elog "Consult https://wiki.gentoo.org/wiki/LXD for more information,"
+	elog "including a Quick Start."
+	elog
+	elog "Please run 'lxc-checkconfig' to see all optional kernel features."
+	elog
+	elog "Optional features:"
+	optfeature "btrfs storage backend" sys-fs/btrfs-progs
+	optfeature "lvm2 storage backend" sys-fs/lvm2
+	optfeature "zfs storage backend" sys-fs/zfs
+	elog
+	elog "Be sure to add your local user to the lxd group."
+}
diff --git a/app-emulation/lxd/metadata.xml b/app-emulation/lxd/metadata.xml
index d4ab64b..db7a11f 100644
--- a/app-emulation/lxd/metadata.xml
+++ b/app-emulation/lxd/metadata.xml
@@ -1,33 +1,24 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
 <pkgmetadata>
-	<maintainer type="person">
-		<email>stasibear@gentoo.org</email>
-		<name>Erik Mackdanz</name>
-	</maintainer>
-	<maintainer type="person">
-		<email>hsoft@hardcoded.net</email>
-		<name>Virgil Dupras</name>
-	</maintainer>
-	<maintainer type="project">
-		<email>proxy-maint@gentoo.org</email>
-		<name>Proxy Maintainers</name>
-	</maintainer>
-	<longdescription>
-		By combining the speed and density of containers with
-		the security of traditional virtual machines, LXD is
-		the next-generation of container hypervisor for Linux
-		from Canonical.
-	</longdescription>
-	<upstream>
-		<remote-id type="github">lxc/lxd</remote-id>
-	</upstream>
-	<use>
-		<flag name="daemon">
-			Build the system daemon, not just the client tool
-		</flag>
-		<flag name="dnsmasq">
-			Depend on dnsmasq to provide DHCP and DNS.
-		</flag>
-	</use>
+  <maintainer type="person">
+    <email>juippis@gentoo.org</email>
+    <name>Joonas Niilola</name>
+  </maintainer>
+  <maintainer type="project">
+    <email>virtualization@gentoo.org</email>
+    <name>Gentoo Virtualization Project</name>
+  </maintainer>
+  <use>
+    <flag name="apparmor">Enable AppArmor support</flag>
+  </use>
+  <longdescription>
+    By combining the speed and density of containers with
+    the security of traditional virtual machines, LXD is
+    the next-generation of container hypervisor for Linux
+    from Canonical.
+  </longdescription>
+  <upstream>
+    <remote-id type="github">lxc/lxd</remote-id>
+  </upstream>
 </pkgmetadata>
diff --git a/app-emulation/qemu/qemu.bashrc b/app-emulation/qemu/qemu.bashrc
new file mode 100644
index 0000000..91d918f
--- /dev/null
+++ b/app-emulation/qemu/qemu.bashrc
@@ -0,0 +1,33 @@
+# Copyright 2021 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+cros_pre_src_configure_xopensource() {
+	# Workaround to build qemu 5.2 with ncurses 5.
+	# ncurses 6 does not appear to need it.
+	append-cppflags "-D_XOPEN_SOURCE_EXTENDED"
+}
+
+cros_post_src_install_lddtree() {
+	# Create a package we can use outside the SDK.
+	# Only do this for the few tools we use for chromite.lib.vm.
+	local prog progs=( qemu-img qemu-system-x86_64 )
+	/mnt/host/source/chromite/bin/lddtree \
+		--copy-to "${D}/usr/libexec/qemu" \
+		--libdir /lib \
+		--bindir /bin \
+		--generate-wrappers \
+		"${progs[@]/#/${D}/usr/bin/}" || die
+	# glibc dynamically loads these based on /etc/nsswich.conf, so we have
+	# to copy them over manually.
+	cp "${SYSROOT}/$(get_libdir)/libnss_"{compat,db,dns,files}.so.2 \
+		"${D}/usr/libexec/qemu/lib/" || die
+	# No need to duplicate this in the package itself.
+	for prog in "${progs[@]}"; do
+		dosym ../../../bin/"${prog}" /usr/libexec/qemu/bin/"${prog}".elf
+	done
+	# QEMU searches for its bios files relative to itself.  Add a symlink so it
+	# can find the installed bios files under /usr/share/qemu/.
+	dosym ../../share/qemu /usr/libexec/qemu/pc-bios
+	dosym ../../share /usr/libexec/qemu/share
+}
diff --git a/app-i18n/libhangul/Manifest b/app-i18n/libhangul/Manifest
deleted file mode 100644
index ae722f6..0000000
--- a/app-i18n/libhangul/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST libhangul-0.0.10.tar.gz 2828525 RMD160 88c03fbbf954addb8c534491a9e3cfd0fdc373dc SHA1 3fdbb1b4ea2f5f12bd3c6760bb2ad609e2eebbaa SHA256 af0722012632ab2afc2016aa6643bd6979e140facc56a911a5a45f97fe61d4c5
diff --git a/app-i18n/libhangul/libhangul-0.0.10.ebuild b/app-i18n/libhangul/libhangul-0.0.10.ebuild
deleted file mode 100644
index e108de9..0000000
--- a/app-i18n/libhangul/libhangul-0.0.10.ebuild
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright 1999-2009 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/app-i18n/libhangul/libhangul-0.0.10.ebuild,v
-# 1.1 2009/11/05 23:14:11 matsuu Exp $
-
-DESCRIPTION="libhangul is a generalized and portable library for processing
-hangul."
-HOMEPAGE="http://kldp.net/projects/hangul/"
-SRC_URI="mirror://gentoo/${P}.tar.gz"
-
-LICENSE="LGPL-2.1"
-SLOT="0"
-KEYWORDS="*"
-IUSE=""
-
-src_install() {
-    emake DESTDIR="${D}" install || die "emake install failed"
-
-    dodoc AUTHORS ChangeLog NEWS README
-}
diff --git a/app-i18n/libhangul/metadata.xml b/app-i18n/libhangul/metadata.xml
deleted file mode 100644
index 7264771..0000000
--- a/app-i18n/libhangul/metadata.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
-	<herd>cjk</herd>
-	<upstream>
-		<remote-id type="google-code">libhangul</remote-id>
-	</upstream>
-</pkgmetadata>
diff --git a/app-shells/bash/bash.bashrc b/app-shells/bash/bash.bashrc
index 553955a..1884d6f 100644
--- a/app-shells/bash/bash.bashrc
+++ b/app-shells/bash/bash.bashrc
@@ -3,7 +3,8 @@
 # found in the LICENSE file.
 
 cros_pre_src_prepare_patches() {
-	epatch "${BASHRC_FILESDIR}"/${PN}-4.3-noexec.patch || die
+  # Not using ${P} to refer to patch to avoid updating it on every _p# change.
+	eapply "${BASHRC_FILESDIR}"/${PN}-4.4-noexec.patch || die
 
 	# Disable this logic for SDK builds.
 	if [[ $(cros_target) == "cros_host" ]]; then
diff --git a/app-shells/bash/files/bash-4.3-noexec.patch b/app-shells/bash/files/bash-4.3-noexec.patch
deleted file mode 100644
index bbbf739..0000000
--- a/app-shells/bash/files/bash-4.3-noexec.patch
+++ /dev/null
@@ -1,248 +0,0 @@
-From 77f549b03ecde43e926482092ecad6cd6f3cda7b Mon Sep 17 00:00:00 2001
-From: Mike Frysinger <vapier@chromium.org>
-Date: Sat, 12 Dec 2015 15:18:25 -0500
-Subject: [PATCH] do not source/exec scripts on noexec mount points
-
-Today, if you have a script that lives on a noexec mount point, the
-kernel will reject attempts to run it directly:
-  $ printf '#!/bin/sh\necho hi\n' > /dev/shm/test.sh
-  $ chmod a+rx /dev/shm/test.sh
-  $ /dev/shm/test.sh
-  bash: /dev/shm/test.sh: Permission denied
-
-But bash itself has no problem running this file:
-  $ bash /dev/shm/test.sh
-  hi
-Or with letting other scripts run this file:
-  $ bash -c '. /dev/shm/test.sh'
-  hi
-Or with reading the script from stdin:
-  $ bash </dev/shm/test.sh
-  hi
-Or indirect loading:
-  $ ln -s test.sh /dev/shm/.profile
-  $ HOME=/dev/shm bash -l
-  hi
-
-This detracts from the security of the overall system.  People writing
-scripts sometimes want to save/restore state (like variables) and will
-restore the content from a noexec point using the aforementioned source
-command without realizing that it executes code too.  Of course their
-code is wrong, but it would be nice if the system would catch & reject
-it explicitly to stave of inadvertent usage.
-
-This is not a perfect solution as it can still be worked around by
-inlining the code itself:
-  $ bash -c "$(cat /dev/shm/test.sh)"
-  hi
-Or forcing interactive mode:
-  $ bash -i </dev/shm/test.sh
-  hi
-Or piping it:
-  $ cat /dev/shm/test.sh | bash
-  hi
-
-But this makes things a bit harder for malicious attackers (depending
-how exactly they've managed to escalate), and it also helps developers
-avoid getting it wrong in the first place.
-
-There are some compile-time knobs provided:
-* SHELL_IGNORE_NOEXEC: If defined, allow scripts on noexec mounts.
-* SHELL_NOEXEC_CRASH_REPORTS: If defined, generate crash reports when
-  noexec scripts are attempted.
-* SHELL_NOEXEC_REPORT_ONLY: If defined, don't halt script execution,
-  only emit warnings to stderr.
-
-URL: https://crbug.com/569168
-URL: https://chromium.googlesource.com/chromiumos/docs/+/master/security/noexec_shell_scripts.md
----
- builtins/evalfile.c | 24 ++++++++++++++++++++++++
- config.h.in         |  3 +++
- configure           |  2 +-
- configure.ac        |  2 +-
- shell.c             | 31 +++++++++++++++++++++++++++++++
- 5 files changed, 60 insertions(+), 2 deletions(-)
-
-diff --git a/builtins/evalfile.c b/builtins/evalfile.c
-index 4539b637ded4..f7e03d808262 100644
---- a/builtins/evalfile.c
-+++ b/builtins/evalfile.c
-@@ -32,6 +32,10 @@
- #include <signal.h>
- #include <errno.h>
- 
-+#if defined (HAVE_SYS_STATVFS_H)
-+#  include <sys/statvfs.h>
-+#endif
-+
- #include "../bashansi.h"
- #include "../bashintl.h"
- 
-@@ -155,6 +159,9 @@ file_error_and_exit:
-       return ((flags & FEVAL_BUILTIN) ? EXECUTION_FAILURE : -1);
-     }      
-
-+  if (interactive_shell == 0)
-+    check_noexec (fd, filename);
-+
-   if (S_ISREG (finfo.st_mode) && file_size <= SSIZE_MAX)
-     {
-       string = (char *)xmalloc (1 + file_size);
-diff --git a/config.h.in b/config.h.in
-index 1e4b71d1e7fe..4c7e5c605524 100644
---- a/config.h.in
-+++ b/config.h.in
-@@ -1052,6 +1052,9 @@
- /* Define if you have the <sys/stat.h> header file. */
- #undef HAVE_SYS_STAT_H
- 
-+/* Define if you have <sys/statvfs.h>.  */
-+#undef HAVE_SYS_STATVFS_H
-+
- /* Define if you have the <sys/stream.h> header file.  */
- #undef HAVE_SYS_STREAM_H
- 
-diff --git a/configure b/configure
-index b9c012961cf2..5457d87be2f4 100755
---- a/configure
-+++ b/configure
-@@ -9289,7 +9289,7 @@ fi
- 
- # On IRIX 5.3, sys/types and inttypes.h are conflicting.
- for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
--		  inttypes.h stdint.h unistd.h
-+		  inttypes.h stdint.h unistd.h sys/statvfs.h
- do :
-   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
- ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-diff --git a/configure.ac b/configure.ac
-index 5080265a96b0..351cabbb0c8c 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -711,7 +711,7 @@ AC_CHECK_HEADERS(unistd.h stdlib.h stdarg.h varargs.h limits.h string.h \
- 		 stdbool.h stddef.h stdint.h netdb.h pwd.h grp.h strings.h \
- 		 regex.h syslog.h ulimit.h)
- AC_CHECK_HEADERS(sys/pte.h sys/stream.h sys/select.h sys/file.h \
--		 sys/resource.h sys/param.h sys/socket.h sys/stat.h \
-+		 sys/resource.h sys/param.h sys/socket.h sys/stat.h sys/statvfs.h \
- 		 sys/time.h sys/times.h sys/types.h sys/wait.h)
- AC_CHECK_HEADERS(netinet/in.h arpa/inet.h)
- 
-diff --git a/shell.c b/shell.c
-index 0179e1e4512b..7d313d671b21 100644
---- a/shell.c
-+++ b/shell.c
-@@ -46,6 +46,10 @@
- #  include <unistd.h>
- #endif
- 
-+#if defined (HAVE_SYS_STATVFS_H)
-+#  include <sys/statvfs.h>
-+#endif
-+
- #include "bashintl.h"
- 
- #define NEED_SH_SETLINEBUF_DECL		/* used in externs.h */
-@@ -747,11 +751,14 @@ main (argc, argv, env)
-   else if (interactive == 0)
-     /* In this mode, bash is reading a script from stdin, which is a
-        pipe or redirected file. */
-+    {
-+      check_noexec (0, "stdin");
- #if defined (BUFFERED_INPUT)
-     default_buffered_input = fileno (stdin);	/* == 0 */
- #else
-     setbuf (default_input, (char *)NULL);
- #endif /* !BUFFERED_INPUT */
-+    }
- 
-   set_bash_input ();
- 
-@@ -1483,6 +1490,63 @@ start_debugger ()
- #endif
- }
- 
-+#ifndef SHELL_IGNORE_NOEXEC
-+
-+/*
-+ * We'll fork a child who will then crash.  This will signal to the system
-+ * that we ran into a problem without actually halting the script.  This is
-+ * useful for tracking down users on releases w/out breaking them.
-+ */
-+static void
-+maybe_generate_crash_report (void)
-+{
-+# ifdef SHELL_NOEXEC_CRASH_REPORTS
-+  if (fork () == 0)
-+    abort ();
-+# endif
-+}
-+
-+/*
-+ * See if the fd is coming from a noexec partition.
-+ * If so, fall over and complain.
-+ */
-+void
-+check_noexec (int fd, const char *source)
-+{
-+#if defined (HAVE_SYS_STATVFS_H) && defined (ST_NOEXEC)
-+  /* Make sure the file isn't on a noexec mount point. */
-+  struct statvfs stvfs;
-+
-+  if (fstatvfs (fd, &stvfs) == -1)
-+    {
-+      maybe_generate_crash_report ();
-+
-+      sys_error ("Can't fstatvfs %s", source);
-+# ifdef SHELL_NOEXEC_REPORT_ONLY
-+      /* Clear the flag to avoid the code path below. */
-+      stvfs.f_flag = 0;
-+# else
-+      exit_shell (EX_NOTFOUND);
-+# endif
-+    }
-+
-+  if (stvfs.f_flag & ST_NOEXEC)
-+    {
-+      const char docs[] = "https://chromium.googlesource.com/chromiumos/docs/+/master/security/noexec_shell_scripts.md";
-+      maybe_generate_crash_report ();
-+
-+# ifdef SHELL_NOEXEC_REPORT_ONLY
-+      internal_warning ("%s: warning: script from noexec mount; see %s", source, docs);
-+# else
-+      internal_error ("Refusing to exec %s from noexec mount; see %s", source, docs);
-+      exit_shell (EX_NOEXEC);
-+# endif
-+    }
-+#endif
-+}
-+
-+#endif
-+
- static int
- open_shell_script (script_name)
-      char *script_name;
-@@ -1517,6 +1582,8 @@ open_shell_script (script_name)
-     SET_CLOSE_ON_EXEC (fileno (default_input));
- #endif /* !BUFFERED_INPUT */
- 
-+  check_noexec (fd, filename);
-+
-   /* Just about the only way for this code to be executed is if something
-      like `bash -i /dev/stdin' is executed. */
-   if (interactive_shell && fd_is_tty)
---- a/shell.h
-+++ b/shell.h
-@@ -184,3 +184,9 @@ extern void restore_parser_state __P((sh_parser_state_t *));
- 
- extern sh_input_line_state_t *save_input_line_state __P((sh_input_line_state_t *));
- extern void restore_input_line_state __P((sh_input_line_state_t *));
-+
-+#ifndef SHELL_IGNORE_NOEXEC
-+extern void check_noexec __P((int, const char *));
-+#else
-+static inline void check_noexec (int fd, const char *source) {}
-+#endif
--- 
-2.12.0
-
diff --git a/app-shells/bash/files/bash-4.4-noexec.patch b/app-shells/bash/files/bash-4.4-noexec.patch
new file mode 100644
index 0000000..8ebb99b
--- /dev/null
+++ b/app-shells/bash/files/bash-4.4-noexec.patch
@@ -0,0 +1,244 @@
+From 77f549b03ecde43e926482092ecad6cd6f3cda7b Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@chromium.org>
+Date: Sat, 12 Dec 2015 15:18:25 -0500
+Subject: [PATCH] do not source/exec scripts on noexec mount points
+
+Today, if you have a script that lives on a noexec mount point, the
+kernel will reject attempts to run it directly:
+  $ printf '#!/bin/sh\necho hi\n' > /dev/shm/test.sh
+  $ chmod a+rx /dev/shm/test.sh
+  $ /dev/shm/test.sh
+  bash: /dev/shm/test.sh: Permission denied
+
+But bash itself has no problem running this file:
+  $ bash /dev/shm/test.sh
+  hi
+Or with letting other scripts run this file:
+  $ bash -c '. /dev/shm/test.sh'
+  hi
+Or with reading the script from stdin:
+  $ bash </dev/shm/test.sh
+  hi
+Or indirect loading:
+  $ ln -s test.sh /dev/shm/.profile
+  $ HOME=/dev/shm bash -l
+  hi
+
+This detracts from the security of the overall system.  People writing
+scripts sometimes want to save/restore state (like variables) and will
+restore the content from a noexec point using the aforementioned source
+command without realizing that it executes code too.  Of course their
+code is wrong, but it would be nice if the system would catch & reject
+it explicitly to stave of inadvertent usage.
+
+This is not a perfect solution as it can still be worked around by
+inlining the code itself:
+  $ bash -c "$(cat /dev/shm/test.sh)"
+  hi
+Or forcing interactive mode:
+  $ bash -i </dev/shm/test.sh
+  hi
+Or piping it:
+  $ cat /dev/shm/test.sh | bash
+  hi
+
+But this makes things a bit harder for malicious attackers (depending
+how exactly they've managed to escalate), and it also helps developers
+avoid getting it wrong in the first place.
+
+There are some compile-time knobs provided:
+* SHELL_IGNORE_NOEXEC: If defined, allow scripts on noexec mounts.
+* SHELL_NOEXEC_CRASH_REPORTS: If defined, generate crash reports when
+  noexec scripts are attempted.
+* SHELL_NOEXEC_REPORT_ONLY: If defined, don't halt script execution,
+  only emit warnings to stderr.
+
+URL: https://crbug.com/569168
+URL: https://chromium.googlesource.com/chromiumos/docs/+/master/security/noexec_shell_scripts.md
+---
+ builtins/evalfile.c |  7 +++++
+ config.h.in         |  3 +++
+ configure           |  2 +-
+ configure.ac        |  2 +-
+ shell.c             | 64 +++++++++++++++++++++++++++++++++++++++++++++
+ shell.h             |  6 +++++
+ 6 files changed, 82 insertions(+), 2 deletions(-)
+
+diff --git a/builtins/evalfile.c b/builtins/evalfile.c
+index 316b794..10ed7a6 100644
+--- a/builtins/evalfile.c
++++ b/builtins/evalfile.c
+@@ -32,6 +32,10 @@
+ #include <signal.h>
+ #include <errno.h>
+ 
++#if defined (HAVE_SYS_STATVFS_H)
++#  include <sys/statvfs.h>
++#endif
++
+ #include "../bashansi.h"
+ #include "../bashintl.h"
+ 
+@@ -161,6 +165,9 @@ file_error_and_exit:
+       return ((flags & FEVAL_BUILTIN) ? EXECUTION_FAILURE : -1);
+     }      
+ 
++  if (interactive_shell == 0)
++    check_noexec (fd, filename);
++
+   if (S_ISREG (finfo.st_mode) && file_size <= SSIZE_MAX)
+     {
+       string = (char *)xmalloc (1 + file_size);
+diff --git a/config.h.in b/config.h.in
+index a5ad9e7..84f9ab5 100644
+--- a/config.h.in
++++ b/config.h.in
+@@ -1045,6 +1045,9 @@
+ /* Define if you have the <sys/stat.h> header file. */
+ #undef HAVE_SYS_STAT_H
+ 
++/* Define if you have <sys/statvfs.h>.  */
++#undef HAVE_SYS_STATVFS_H
++
+ /* Define if you have the <sys/stream.h> header file.  */
+ #undef HAVE_SYS_STREAM_H
+ 
+diff --git a/configure b/configure
+index dc57ff9..9a7845e 100755
+--- a/configure
++++ b/configure
+@@ -4599,7 +4599,7 @@ fi
+ 
+ # On IRIX 5.3, sys/types and inttypes.h are conflicting.
+ for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+-		  inttypes.h stdint.h unistd.h
++		  inttypes.h stdint.h unistd.h sys/statvfs.h
+ do :
+   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+diff --git a/configure.ac b/configure.ac
+index ce4e9b6..3b13cd9 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -702,7 +702,7 @@ AC_CHECK_HEADERS(unistd.h stdlib.h stdarg.h varargs.h limits.h string.h \
+ 		 stdbool.h stddef.h stdint.h netdb.h pwd.h grp.h strings.h \
+ 		 regex.h syslog.h ulimit.h)
+ AC_CHECK_HEADERS(sys/pte.h sys/stream.h sys/select.h sys/file.h sys/ioctl.h \
+-		 sys/param.h sys/socket.h sys/stat.h \
++		 sys/param.h sys/socket.h sys/stat.h sys/statvfs.h \
+ 		 sys/time.h sys/times.h sys/types.h sys/wait.h)
+ AC_CHECK_HEADERS(netinet/in.h arpa/inet.h)
+ 
+diff --git a/shell.c b/shell.c
+index 45b77f9..6eaf165 100644
+--- a/shell.c
++++ b/shell.c
+@@ -46,6 +46,10 @@
+ #  include <unistd.h>
+ #endif
+ 
++#if defined (HAVE_SYS_STATVFS_H)
++#  include <sys/statvfs.h>
++#endif
++
+ #include "bashintl.h"
+ 
+ #define NEED_SH_SETLINEBUF_DECL		/* used in externs.h */
+@@ -740,6 +744,7 @@ main (argc, argv, env)
+     {
+       /* In this mode, bash is reading a script from stdin, which is a
+ 	 pipe or redirected file. */
++      check_noexec (0, "stdin");
+ #if defined (BUFFERED_INPUT)
+       default_buffered_input = fileno (stdin);	/* == 0 */
+ #else
+@@ -1467,6 +1472,63 @@ start_debugger ()
+ #endif
+ }
+ 
++#ifndef SHELL_IGNORE_NOEXEC
++
++/*
++ * We'll fork a child who will then crash.  This will signal to the system
++ * that we ran into a problem without actually halting the script.  This is
++ * useful for tracking down users on releases w/out breaking them.
++ */
++static void
++maybe_generate_crash_report (void)
++{
++# ifdef SHELL_NOEXEC_CRASH_REPORTS
++  if (fork () == 0)
++    abort ();
++# endif
++}
++
++/*
++ * See if the fd is coming from a noexec partition.
++ * If so, fall over and complain.
++ */
++void
++check_noexec (int fd, const char *source)
++{
++#if defined (HAVE_SYS_STATVFS_H) && defined (ST_NOEXEC)
++  /* Make sure the file isn't on a noexec mount point. */
++  struct statvfs stvfs;
++
++  if (fstatvfs (fd, &stvfs) == -1)
++    {
++      maybe_generate_crash_report ();
++
++      sys_error ("Can't fstatvfs %s", source);
++# ifdef SHELL_NOEXEC_REPORT_ONLY
++      /* Clear the flag to avoid the code path below. */
++      stvfs.f_flag = 0;
++# else
++      exit_shell (EX_NOTFOUND);
++# endif
++    }
++
++  if (stvfs.f_flag & ST_NOEXEC)
++    {
++      const char docs[] = "https://chromium.googlesource.com/chromiumos/docs/+/master/security/noexec_shell_scripts.md";
++      maybe_generate_crash_report ();
++
++# ifdef SHELL_NOEXEC_REPORT_ONLY
++      internal_warning ("%s: warning: script from noexec mount; see %s", source, docs);
++# else
++      internal_error ("Refusing to exec %s from noexec mount; see %s", source, docs);
++      exit_shell (EX_NOEXEC);
++# endif
++    }
++#endif
++}
++
++#endif
++
+ static int
+ open_shell_script (script_name)
+      char *script_name;
+@@ -1604,6 +1666,8 @@ open_shell_script (script_name)
+     SET_CLOSE_ON_EXEC (fileno (default_input));
+ #endif /* !BUFFERED_INPUT */
+ 
++  check_noexec (fd, filename);
++
+   /* Just about the only way for this code to be executed is if something
+      like `bash -i /dev/stdin' is executed. */
+   if (interactive_shell && fd_is_tty)
+diff --git a/shell.h b/shell.h
+index ce08879..e8b8ad0 100644
+--- a/shell.h
++++ b/shell.h
+@@ -193,3 +193,9 @@ extern void restore_parser_state __P((sh_parser_state_t *));
+ 
+ extern sh_input_line_state_t *save_input_line_state __P((sh_input_line_state_t *));
+ extern void restore_input_line_state __P((sh_input_line_state_t *));
++
++#ifndef SHELL_IGNORE_NOEXEC
++extern void check_noexec __P((int, const char *));
++#else
++static inline void check_noexec (int fd, const char *source) {}
++#endif
+-- 
+2.29.2
+
diff --git a/app-text/ghostscript-gpl/Manifest b/app-text/ghostscript-gpl/Manifest
index bdcc670..cb05e44 100644
--- a/app-text/ghostscript-gpl/Manifest
+++ b/app-text/ghostscript-gpl/Manifest
@@ -1,2 +1 @@
-DIST ghostscript-9.53.3.tar.xz 41368160 BLAKE2B 6b5840a420d7527c7155bfb707fe19b3412bdd3a6707f44d058c20f607e6695cfc878cf5df4c4528686c1c1f488b2dbdb81ef5fdf38b950eb15751d2ebafb0a9 SHA512 eb832c27eecd30f15e346408c592d7096fd23ef0a6fa59bd50ca327578915434530a4868e69249c2594def0910c527302e99d54f0877f726a8ca8bea6f0f17b7
-DIST ghostscript-gpl-9.53-patchset-01.tar.xz 2340 BLAKE2B 55d82c88f1b57c084318839e1382ffa112461d074411b1f6586a5a9ace37772b144abdda9f742defd077ce937df590d63bd7a2306bad52438949d1036bb7900c SHA512 ab58485df9152bb32c6f0eb25bd45689089bd17ffb0323c54e1977c5f810ec5eb09f358637251c428591749bfb42c6f8489c74d4bd0a7ae5d696eb2346503c44
+DIST ghostscript-9.54.0.tar.xz 56001768 BLAKE2B 4a98b1af74c4b4caf8d263cd5529059304a76884418c90401b0fc9a89e0f5de5417a439f6e08b95374e62158eec65528ef5f949497d5050a6408fb7c87e54aa9 SHA512 a3c96925f4dbf5e276fc543b88df185a0435c68166db15ac532094329ba8db314d739a292da18be7954daaafeeb290e641ea03edf888854d7e752998ec6062cc
diff --git a/app-text/ghostscript-gpl/files/ghostscript-9.20-Fix-error-when-using-ImageMagick-s-convert.patch b/app-text/ghostscript-gpl/files/ghostscript-9.20-Fix-error-when-using-ImageMagick-s-convert.patch
index 83933a9..d435933 100644
--- a/app-text/ghostscript-gpl/files/ghostscript-9.20-Fix-error-when-using-ImageMagick-s-convert.patch
+++ b/app-text/ghostscript-gpl/files/ghostscript-9.20-Fix-error-when-using-ImageMagick-s-convert.patch
@@ -1,7 +1,7 @@
-From 6e7c8d30f74088ba3ba96f539bcee624fdf8b438 Mon Sep 17 00:00:00 2001
+From e374e21f52d049b2f56c8cd29dcfe1b3de0975bf Mon Sep 17 00:00:00 2001
 From: "David Kaspar [Dee'Kej]" <dkaspar@redhat.com>
 Date: Fri, 7 Oct 2016 12:20:29 +0200
-Subject: [PATCH 1/4] Fix error when using ImageMagick's convert:
+Subject: [PATCH 1/6] Fix error when using ImageMagick's convert:
 
   Error: /undefined in .runlibfileexists
 ---
@@ -10,7 +10,7 @@
  2 files changed, 21 insertions(+), 3 deletions(-)
 
 diff --git a/Resource/Init/gs_fonts.ps b/Resource/Init/gs_fonts.ps
-index 8e361552b..686563274 100644
+index f1e26b093..46fff5576 100644
 --- a/Resource/Init/gs_fonts.ps
 +++ b/Resource/Init/gs_fonts.ps
 @@ -139,10 +139,19 @@ userdict /.nativeFontmap .FontDirectory maxlength dict put
@@ -37,10 +37,10 @@
                  % This is a real entry.
                  % Read and pop tokens until a semicolon.
 diff --git a/Resource/Init/gs_init.ps b/Resource/Init/gs_init.ps
-index 722b57c1e..333b3cd1c 100644
+index 088c8583e..9b6ffffe3 100644
 --- a/Resource/Init/gs_init.ps
 +++ b/Resource/Init/gs_init.ps
-@@ -858,6 +858,14 @@ currentdict /.makeinternaldict .undef
+@@ -870,6 +870,14 @@ currentdict /.makeinternaldict .undef
             { /undefinedfilename signalerror }
            ifelse
          } bind def
@@ -55,7 +55,7 @@
  /selectdevice
          { finddevice setdevice .setdefaultscreen } bind def
  /signalerror		% <object> <errorname> signalerror -
-@@ -986,6 +994,7 @@ def
+@@ -998,6 +1006,7 @@ def
          } bind def
  % Temporarily substitute it for the real runlibfile.
  /.runlibfile /runlibfile load def
@@ -64,5 +64,5 @@
  currentdict /runlibfile0 .undef
  
 -- 
-2.25.0.341.g760bfbb309-goog
+2.31.0.208.g409f899ff0-goog
 
diff --git a/app-text/ghostscript-gpl/files/ghostscript-9.20-Make-sure-customizations-to-etc-ghostscript-Fontmap.patch b/app-text/ghostscript-gpl/files/ghostscript-9.20-Make-sure-customizations-to-etc-ghostscript-Fontmap.patch
index d24d256..9da1b66 100644
--- a/app-text/ghostscript-gpl/files/ghostscript-9.20-Make-sure-customizations-to-etc-ghostscript-Fontmap.patch
+++ b/app-text/ghostscript-gpl/files/ghostscript-9.20-Make-sure-customizations-to-etc-ghostscript-Fontmap.patch
@@ -1,7 +1,7 @@
-From a2c13ee2160d9214399264443d09f4c1ca63128c Mon Sep 17 00:00:00 2001
+From 5a0dfe5f42f6c7b6fc07e2aca9dce2bad61e624e Mon Sep 17 00:00:00 2001
 From: "David Kaspar [Dee'Kej]" <dkaspar@redhat.com>
 Date: Fri, 7 Oct 2016 12:57:06 +0200
-Subject: [PATCH 2/4] Make sure customizations to
+Subject: [PATCH 2/6] Make sure customizations to
  /etc/ghostscript/Fontmap.local are used
 
   For more info, see: https://bugzilla.redhat.com/show_bug.cgi?id=610301
@@ -20,5 +20,5 @@
 +% must be at the bottom of line to allow people overriding everything.
 +(Fontmap.local) .runlibfileifexists
 -- 
-2.25.0.341.g760bfbb309-goog
+2.31.0.208.g409f899ff0-goog
 
diff --git a/app-text/ghostscript-gpl/files/ghostscript-9.52-pacify-valgrind-gxclipm.patch b/app-text/ghostscript-gpl/files/ghostscript-9.52-pacify-valgrind-gxclipm.patch
index 9041c23..2a96cf8 100644
--- a/app-text/ghostscript-gpl/files/ghostscript-9.52-pacify-valgrind-gxclipm.patch
+++ b/app-text/ghostscript-gpl/files/ghostscript-9.52-pacify-valgrind-gxclipm.patch
@@ -1,14 +1,14 @@
-From ab3050411139bfad554dc623e2af698a6b6f2c9a Mon Sep 17 00:00:00 2001
+From 6480cd111eed9cc420c00072bb155975f2dc60b6 Mon Sep 17 00:00:00 2001
 From: Kalvin Lee <kdlee@chromium.org>
 Date: Thu, 8 Oct 2020 13:59:37 -0700
-Subject: [PATCH] activate PACIFY_VALGRIND
+Subject: [PATCH 3/6] activate PACIFY_VALGRIND
 
 ---
  base/gxclipm.c | 4 ----
  1 file changed, 4 deletions(-)
 
 diff --git a/base/gxclipm.c b/base/gxclipm.c
-index 0a98eb0..2bc83c5 100644
+index 59f1e765f..b19a9c62d 100644
 --- a/base/gxclipm.c
 +++ b/base/gxclipm.c
 @@ -261,16 +261,12 @@ mask_clip_copy_mono(gx_device * dev,
@@ -29,5 +29,5 @@
  /*
   * Define the run enumerator for the other copying operations.  We can't use
 -- 
-2.28.0.1011.ga647a8990f-goog
+2.31.0.208.g409f899ff0-goog
 
diff --git a/app-text/ghostscript-gpl/files/ghostscript-9.52-prune-contrib-directory.patch b/app-text/ghostscript-gpl/files/ghostscript-9.52-prune-contrib-directory.patch
deleted file mode 100644
index d413a39..0000000
--- a/app-text/ghostscript-gpl/files/ghostscript-9.52-prune-contrib-directory.patch
+++ /dev/null
@@ -1,584 +0,0 @@
-From 58547b6654f708c191c08df90418f711f137a2b5 Mon Sep 17 00:00:00 2001
-From: Piotr Pawliczek <pawliczek@chromium.org>
-Date: Tue, 9 Oct 2018 16:05:45 -0700
-Subject: [PATCH] Remove from contrib directory all drivers with undefined,
- unclear or forbidden licenses. Configuration files were adjusted accordingly.
-
----
- configure.ac                             |    8 +-
- contrib/contrib.mak                      |  361 +-
- contrib/epson740/README                  |   25 -
- contrib/epson740/printerdb_rh5.2         | 1173 ------
- contrib/epson740/printerdb_rh6.0         | 1166 ------
- contrib/epson740/ps-to-printer.fpi_rh5.2 |   95 -
- contrib/epson740/upp-HowTo-to-be         |   59 -
- contrib/gdevgdi.c                        | 1473 --------
- contrib/gdevln03.c                       |  395 ---
- contrib/gdevlx7.c                        |  844 -----
- contrib/gdevmd2k.c                       |  792 -----
- contrib/gdevop4w.c                       |  283 --
- contrib/gdevxes.c                        |  219 --
- contrib/japanese/doc/Gdevlips.htm        | 1901 ----------
- contrib/japanese/doc/README.gs550j       |   35 -
- contrib/japanese/doc/cdj880.txt          |  120 -
- contrib/japanese/doc/dj505j.txt          |   62 -
- contrib/japanese/doc/gdev10v.txt         |   52 -
- contrib/japanese/doc/gdevalps.txt        |   50 -
- contrib/japanese/doc/gdevcd8.txt         |  146 -
- contrib/japanese/doc/gdevfmlbp.txt       |   81 -
- contrib/japanese/doc/gdevj100.txt        |   28 -
- contrib/japanese/doc/gdevlbp3.txt        |   37 -
- contrib/japanese/doc/gdevmd2k.txt        |  179 -
- contrib/japanese/doc/gdevmjc.txt         |   58 -
- contrib/japanese/doc/gdevml6.txt         |   47 -
- contrib/japanese/doc/gdevp201.txt        |   30 -
- contrib/japanese/dviprlib.h              |  357 --
- contrib/japanese/gdev10v.c               |  347 --
- contrib/japanese/gdevalps.c              |  401 ---
- contrib/japanese/gdevespg.c              |  303 --
- contrib/japanese/gdevfmlbp.c             |  229 --
- contrib/japanese/gdevfmpr.c              |  210 --
- contrib/japanese/gdevj100.c              |  198 --
- contrib/japanese/gdevlbp3.c              |  277 --
- contrib/japanese/gdevmjc.c               | 1840 ----------
- contrib/japanese/gdevmjc.h               | 3220 -----------------
- contrib/japanese/gdevml6.c               |  342 --
- contrib/japanese/gdevnpdl.c              |  710 ----
- contrib/japanese/gdevp201.c              |  291 --
- contrib/japanese/gdevrpdl.c              |  295 --
- contrib/md2k_md5k/README.jis             |  179 -
- contrib/pscolor/Makefile                 |   12 -
- contrib/pscolor/black.pdf                |  Bin 12804 -> 0 bytes
- contrib/pscolor/black.ps                 | 3642 -------------------
- contrib/pscolor/color.pdf                |  Bin 10518 -> 0 bytes
- contrib/pscolor/color.ps                 | 3368 ------------------
- contrib/pscolor/colorsplit.vcproj        |   73 -
- contrib/pscolor/common.mak               |   24 -
- contrib/pscolor/input.ps                 | 4141 ----------------------
- contrib/pscolor/instream.yy              |   23 -
- contrib/pscolor/test.c                   |  342 --
- contrib/pscolor/windows.mak              |   13 -
- contrib/uniprint/PM760p.upp              |   34 -
- contrib/uniprint/PM760pl.upp             |   34 -
- contrib/uniprint/PM820p.upp              |   34 -
- contrib/uniprint/PM820pl.upp             |   34 -
- contrib/uniprint/Stc670p.upp             |   35 -
- contrib/uniprint/Stc670pl.upp            |   35 -
- contrib/uniprint/Stc680p.upp             |   34 -
- contrib/uniprint/Stc680pl.upp            |   34 -
- contrib/uniprint/Stc740p.upp             |   34 -
- contrib/uniprint/Stc740pl.upp            |   35 -
- contrib/uniprint/Stc760p.upp             |   35 -
- contrib/uniprint/Stc760pl.upp            |   34 -
- contrib/uniprint/Stc777p.upp             |   34 -
- contrib/uniprint/Stc777pl.upp            |   34 -
- contrib/uniprint/Stp720p.upp             |   34 -
- contrib/uniprint/Stp720pl.upp            |   34 -
- contrib/uniprint/Stp870p.upp             |   34 -
- contrib/uniprint/Stp870pl.upp            |   34 -
- contrib/uniprint/bjc6000a1.upp           |   48 -
- contrib/uniprint/bjc6000b1.upp           |   48 -
- contrib/uniprint/s400a1.upp              |   44 -
- contrib/uniprint/s400b1.upp              |   48 -
- contrib/uniprint/sharp.upp               |   58 -
- contrib/uniprint/sipixa6.upp             |   23 -
- contrib/uniprint/stc740ih.upp            |   58 -
- 78 files changed, 5 insertions(+), 31494 deletions(-)
- delete mode 100644 contrib/epson740/README
- delete mode 100644 contrib/epson740/printerdb_rh5.2
- delete mode 100644 contrib/epson740/printerdb_rh6.0
- delete mode 100755 contrib/epson740/ps-to-printer.fpi_rh5.2
- delete mode 100644 contrib/epson740/upp-HowTo-to-be
- delete mode 100644 contrib/gdevgdi.c
- delete mode 100644 contrib/gdevln03.c
- delete mode 100644 contrib/gdevlx7.c
- delete mode 100644 contrib/gdevmd2k.c
- delete mode 100644 contrib/gdevop4w.c
- delete mode 100644 contrib/gdevxes.c
- delete mode 100644 contrib/japanese/doc/Gdevlips.htm
- delete mode 100644 contrib/japanese/doc/README.gs550j
- delete mode 100644 contrib/japanese/doc/cdj880.txt
- delete mode 100644 contrib/japanese/doc/dj505j.txt
- delete mode 100644 contrib/japanese/doc/gdev10v.txt
- delete mode 100644 contrib/japanese/doc/gdevalps.txt
- delete mode 100644 contrib/japanese/doc/gdevcd8.txt
- delete mode 100644 contrib/japanese/doc/gdevfmlbp.txt
- delete mode 100644 contrib/japanese/doc/gdevj100.txt
- delete mode 100644 contrib/japanese/doc/gdevlbp3.txt
- delete mode 100644 contrib/japanese/doc/gdevmd2k.txt
- delete mode 100644 contrib/japanese/doc/gdevmjc.txt
- delete mode 100644 contrib/japanese/doc/gdevml6.txt
- delete mode 100644 contrib/japanese/doc/gdevp201.txt
- delete mode 100644 contrib/japanese/dviprlib.h
- delete mode 100644 contrib/japanese/gdev10v.c
- delete mode 100644 contrib/japanese/gdevalps.c
- delete mode 100644 contrib/japanese/gdevespg.c
- delete mode 100644 contrib/japanese/gdevfmlbp.c
- delete mode 100644 contrib/japanese/gdevfmpr.c
- delete mode 100644 contrib/japanese/gdevj100.c
- delete mode 100644 contrib/japanese/gdevlbp3.c
- delete mode 100644 contrib/japanese/gdevmjc.c
- delete mode 100644 contrib/japanese/gdevmjc.h
- delete mode 100644 contrib/japanese/gdevml6.c
- delete mode 100644 contrib/japanese/gdevnpdl.c
- delete mode 100644 contrib/japanese/gdevp201.c
- delete mode 100644 contrib/japanese/gdevrpdl.c
- delete mode 100644 contrib/md2k_md5k/README.jis
- delete mode 100644 contrib/pscolor/Makefile
- delete mode 100644 contrib/pscolor/black.pdf
- delete mode 100644 contrib/pscolor/black.ps
- delete mode 100644 contrib/pscolor/color.pdf
- delete mode 100644 contrib/pscolor/color.ps
- delete mode 100644 contrib/pscolor/colorsplit.vcproj
- delete mode 100644 contrib/pscolor/common.mak
- delete mode 100644 contrib/pscolor/input.ps
- delete mode 100644 contrib/pscolor/instream.yy
- delete mode 100644 contrib/pscolor/test.c
- delete mode 100644 contrib/pscolor/windows.mak
- delete mode 100644 contrib/uniprint/PM760p.upp
- delete mode 100644 contrib/uniprint/PM760pl.upp
- delete mode 100644 contrib/uniprint/PM820p.upp
- delete mode 100644 contrib/uniprint/PM820pl.upp
- delete mode 100644 contrib/uniprint/Stc670p.upp
- delete mode 100644 contrib/uniprint/Stc670pl.upp
- delete mode 100644 contrib/uniprint/Stc680p.upp
- delete mode 100644 contrib/uniprint/Stc680pl.upp
- delete mode 100644 contrib/uniprint/Stc740p.upp
- delete mode 100644 contrib/uniprint/Stc740pl.upp
- delete mode 100644 contrib/uniprint/Stc760p.upp
- delete mode 100644 contrib/uniprint/Stc760pl.upp
- delete mode 100644 contrib/uniprint/Stc777p.upp
- delete mode 100644 contrib/uniprint/Stc777pl.upp
- delete mode 100644 contrib/uniprint/Stp720p.upp
- delete mode 100644 contrib/uniprint/Stp720pl.upp
- delete mode 100644 contrib/uniprint/Stp870p.upp
- delete mode 100644 contrib/uniprint/Stp870pl.upp
- delete mode 100644 contrib/uniprint/bjc6000a1.upp
- delete mode 100644 contrib/uniprint/bjc6000b1.upp
- delete mode 100644 contrib/uniprint/s400a1.upp
- delete mode 100644 contrib/uniprint/s400b1.upp
- delete mode 100644 contrib/uniprint/sharp.upp
- delete mode 100644 contrib/uniprint/sipixa6.upp
- delete mode 100644 contrib/uniprint/stc740ih.upp
-
-diff --git a/configure.ac b/configure.ac
-index d6f346b76..83b39312a 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -2619,13 +2619,13 @@ HP_DEVS='cdj500 djet500 djet500c dnj650c cljet5pr deskjet laserjet ljetplus ljet
- PCLXL_DEVS='pxlmono pxlcolor'
- EPSON_DEVS='eps9high eps9mid epson epsonc escp lp8000 lq850 photoex st800 stcolor alc1900 alc2000 alc4000 alc4100 alc8500 alc8600 alc9100 lp3000c lp8000c lp8200c lp8300c lp8500c lp8800c lp9000c lp9200c lp9500c lp9800c lps6500 epl2050 epl2050p epl2120 epl2500 epl2750 epl5800 epl5900 epl6100 epl6200 lp1800 lp1900 lp2200 lp2400 lp2500 lp7500 lp7700 lp7900 lp8100 lp8300f lp8400f lp8600 lp8600f lp8700 lp8900 lp9000b lp9100 lp9200b lp9300 lp9400 lp9600 lp9600s lps4500 eplcolor eplmono'
- CANON_DEVS='bj10e bj200 bjc600 bjc800 lbp8 lips3 bjcmono bjcgray bjccmyk bjccolor'
--LEXMARK_DEVS='lxm5700m lxm3200 lex2050 lex3200 lex5700 lex7000'
-+LEXMARK_DEVS='lxm5700m lxm3200'
- BROTHER_DEVS='hl7x0 hl1240 hl1250'
- APPLE_DEVS='appledmp iwhi iwlo iwlq'
- IBM_DEVS='ibmpro jetp3852'
--OKI_DEVS='oki182 okiibm oki4w'
--JAPAN_DEVS='lips4 lips4v ljet4pjl lj4dithp dj505j picty180 lips2p bjc880j pr201 pr150 pr1000 pr1000_4 jj100 bj10v bj10vh mj700v2c mj500c mj6000c mj8000c fmpr fmlbp ml600 lbp310 lbp320 md50Mono md50Eco md1xMono escpage lp2000 npdl rpdl'
--MISC_PDEVS='uniprint ap3250 atx23 atx24 atx38 itk24i itk38 coslw2p coslwxl declj250 fs600 imagen lj250 m8510 necp6 oce9050 r4081 sj48 tek4696 t4693d2 t4693d4 t4693d8 dl2100 la50 la70 la75 la75plus ln03 xes md2k md5k gdi samsunggdi'
-+OKI_DEVS='oki182 okiibm'
-+JAPAN_DEVS='lips4 lips4v ljet4pjl lj4dithp dj505j picty180 lips2p bjc880j'
-+MISC_PDEVS='uniprint ap3250 atx23 atx24 atx38 itk24i itk38 coslw2p coslwxl declj250 fs600 imagen lj250 m8510 necp6 oce9050 r4081 sj48 tek4696 t4693d2 t4693d4 t4693d8'
- 
- AC_ARG_WITH([openprinting],, OPVP_DEVS='opvp oprp', OPVP_DEVS='')
- 
-diff --git a/contrib/contrib.mak b/contrib/contrib.mak
-index 2edee7af4..a81d1a350 100644
---- a/contrib/contrib.mak
-+++ b/contrib/contrib.mak
-@@ -284,25 +284,6 @@ $(DD)chp2200.dev : $(cdeskjet8_) $(DD)page.dev \
- 	$(SETPDEV2) $(DD)chp2200 $(cdeskjet8_)
- 
- 
--### ---------------- The Samsung SmartGDI laser printer devices --------- ###
--### Note : this driver is used by Samsung SmartGDI compatible printers.   ###
--###
--
--GDIMONO=$(DEVOBJ)gdevgdi.$(OBJ) $(HPPCL)
--
--$(DD)gdi.dev : $(GDIMONO) $(DD)page.dev \
--                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)gdi $(GDIMONO)
--
--$(DD)samsunggdi.dev : $(GDIMONO) $(DD)page.dev \
--                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)samsunggdi $(GDIMONO)
--
--$(DEVOBJ)gdevgdi.$(OBJ) : $(CONTRIBSRC)gdevgdi.c $(PDEVH) $(gdevpcl_h) \
--                           $(CONTRIB_MAK) $(MAKEDIRS)
--	$(DEVCC) $(DEVO_)gdevgdi.$(OBJ) $(C_) $(CONTRIBSRC)gdevgdi.c
--
--
- ### ---------------- The Brother HL-1240/HL-1250 printers --------------- ###
- ### These printers are ljet4-compatible, plus support for source tray     ###
- ### selection and special 1200x600 dpi mode.                              ###
-@@ -323,51 +304,6 @@ $(DEVOBJ)gdevhl12.$(OBJ) : $(CONTRIBSRC)gdevhl12.c $(PDEVH) $(gdevdljm_h) \
- 	$(DEVCC) $(DEVO_)gdevhl12.$(OBJ) $(C_) $(CONTRIBSRC)gdevhl12.c
- 
- 
--### -------- The DEC LN03/DL2100/LA50/LA70/LA75 printer devices -------- ###
--
--ln03_=$(DEVOBJ)gdevln03.$(OBJ)
--
--# Author: Ulrich Mueller (ulm@vsnhd1.cern.ch)
--# Printer: DEC LN03
--$(DD)ln03.dev : $(ln03_) $(DD)page.dev \
--                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)ln03 $(ln03_)
--
--# Author: Nick Brown (nick.brown@coe.int)
--# Printer: DEClaser 2100
--$(DD)dl2100.dev : $(ln03_) $(DD)page.dev \
--                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)dl2100 $(ln03_)
--
--# Author: Ian MacPhedran (macphed@dvinci.USask.CA)
--# Printer: DEC LA50
--$(DD)la50.dev : $(ln03_) $(DD)page.dev \
--                          $(CONTDEV)  $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)la50 $(ln03_)
--
--# Author: Bruce Lowekamp (lowekamp@csugrad.cs.vt.edu)
--# Printer: DEC LA70
--$(DD)la70.dev : $(ln03_) $(DD)page.dev \
--                         $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)la70 $(ln03_)
--
--# Author: Ian MacPhedran (macphed@dvinci.USask.CA)
--# Printer: DEC LA75
--$(DD)la75.dev : $(ln03_) $(DD)page.dev \
--                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)la75 $(ln03_)
--
--# Author: Andre' Beck (Andre_Beck@IRS.Inf.TU-Dresden.de)
--# Printer: DEC LA75plus
--$(DD)la75plus.dev : $(ln03_) $(DD)page.dev \
--                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)la75plus $(ln03_)
--
--$(DEVOBJ)gdevln03.$(OBJ) : $(CONTRIBSRC)gdevln03.c $(PDEVH) \
--                           $(CONTRIB_MAK) $(MAKEDIRS)
--	$(DEVCC) $(DEVO_)gdevln03.$(OBJ) $(C_) $(CONTRIBSRC)gdevln03.c
--
--
- ### -------------------------- EPSON Page/Color -------------------------- ###
- ###
- ###
-@@ -590,33 +526,6 @@ $(DD)eplmono.dev: $(escv_) $(DD)page.dev \
-                            $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
- 	$(SETPDEV) $(DD)eplmono $(escv_)
- 
--# ------ The Lexmark 5700 and 7000 devices ------ #
--
--lex7000_=$(DEVOBJ)gdevlx7.$(OBJ)
--$(DD)lex7000.dev : $(lex7000_) $(DD)page.dev \
--                           $(CONTDEV) $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)lex7000 $(lex7000_)
--
--lex5700_=$(DEVOBJ)gdevlx7.$(OBJ)
--$(DD)lex5700.dev : $(lex5700_) $(DD)page.dev \
--                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)lex5700 $(lex5700_)
--
--lex3200_=$(DEVOBJ)gdevlx7.$(OBJ)
--$(DD)lex3200.dev : $(lex3200_) $(DD)page.dev \
--                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)lex3200 $(lex3200_)
--
--lex2050_=$(DEVOBJ)gdevlx7.$(OBJ)
--$(DD)lex2050.dev : $(lex2050_) $(DD)page.dev \
--                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)lex2050 $(lex2050_)
--
--$(DEVOBJ)gdevlx7.$(OBJ) : $(CONTRIBSRC)gdevlx7.c $(PDEVH) \
--                           $(CONTRIB_MAK) $(MAKEDIRS)
--	$(DEVCC) $(DEVO_)gdevlx7.$(OBJ) $(C_) $(CONTRIBSRC)gdevlx7.c
--
--
- ### ----------- Lexmark 3200 device ------------ ###
- 
- lxm3200_=$(DEVOBJ)gdevlx32.$(OBJ)
-@@ -679,37 +588,6 @@ $(DD)bjc880j.dev : $(lipsr_) $(DD)page.dev \
- 	$(SETPDEV) $(DD)bjc880j $(lipsr_)
- 
- 
--### ------------ ALPS MD series printer devices ------------ ###
--
--md2k_=$(DEVOBJ)gdevmd2k.$(OBJ)
--
--$(DD)md2k.dev : $(md2k_) $(DD)page.dev \
--                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)md2k $(md2k_)
--
--$(DD)md5k.dev : $(md2k_) $(DD)page.dev \
--                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)md5k $(md2k_)
--
--$(DEVOBJ)gdevmd2k.$(OBJ) : $(CONTRIBSRC)gdevmd2k.c $(PDEVH) $(gsparam_h) \
--                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(DEVCC) $(DEVO_)gdevmd2k.$(OBJ) $(C_) $(CONTRIBSRC)gdevmd2k.c
-- 
--
--### ----------------- The Okidata OkiPage 4w+ device ------------------- ###
--
--oki4w_=$(DEVOBJ)gdevop4w.$(OBJ)
--$(DD)oki4w.dev : $(oki4w_) $(DD)page.dev \
--                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)oki4w $(oki4w_)
--
--# Author: Ivan Schreter (ivan@shadow.sk)
--# Printer: Okidata OkiPage 4w+
--$(DEVOBJ)gdevop4w.$(OBJ) : $(CONTRIBSRC)gdevop4w.c $(PDEVH) \
--                           $(CONTRIB_MAK) $(MAKEDIRS)
--	$(DEVCC) $(DEVO_)gdevop4w.$(OBJ) $(C_) $(CONTRIBSRC)gdevop4w.c
--
--
- ### ---------------- OpenPrinting Vector Printer Driver ---------------- ###
- ###                                                                      ###
- OPVP_DIR=$(CONTRIBSRC)opvp
-@@ -1008,243 +886,6 @@ pcl3-install:
- 	$(INSTALL_PROGRAM) $(BINDIR)$(D)pcl3opts$(XE) $(DESTDIR)$(bindir)
- 
- 
--### ----------------- The Xerox XES printer device --------------------- ###
--
--xes_=$(DEVOBJ)gdevxes.$(OBJ)
--$(DD)xes.dev : $(xes_) $(DD)page.dev \
--                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)xes $(xes_)
--
--# Author: Peter Flass (flass@lbdrscs.bitnet)
--# Printer: Xerox XES (2700, 3700, 4045, etc.)
--$(DEVOBJ)gdevxes.$(OBJ) : $(CONTRIBSRC)gdevxes.c $(PDEVH) \
--                           $(CONTRIB_MAK) $(MAKEDIRS)
--	$(DEVCC) $(DEVO_)gdevxes.$(OBJ) $(C_) $(CONTRIBSRC)gdevxes.c
--
--#########################################################################
--### --------------------Japanese printer addons --------------------- ###
--#########################################################################
--
--JAPDIR=$(CONTRIBSRC)japanese
--JAPSRC=$(JAPDIR)$(D)
--
--### ----------------- The NEC PC-PR201 printer device ----------------- ###
--
--pr201_=$(DEVOBJ)gdevp201.$(OBJ) $(DEVOBJ)gdevprn.$(OBJ)
--
--$(DD)pr201.dev : $(pr201_) $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)pr201 $(pr201_)
--
--$(DD)pr150.dev : $(pr201_) $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)pr150 $(pr201_)
--
--$(DD)pr1000.dev : $(pr201_) $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)pr1000 $(pr201_)
--
--$(DD)pr1000_4.dev : $(pr201_) $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)pr1000_4 $(pr201_)
--
--$(DEVOBJ)gdevp201.$(OBJ) : $(JAPSRC)gdevp201.c $(PDEVH) \
--                           $(CONTRIB_MAK) $(MAKEDIRS)
--	$(DEVCC) $(DEVO_)gdevp201.$(OBJ) $(C_) $(JAPSRC)gdevp201.c
--
--### ----------------- The Star JJ-100 printer device ----------------- ###
--
--jj100_=$(DEVOBJ)gdevj100.$(OBJ) $(DEVOBJ)gdevprn.$(OBJ)
--
--$(DD)jj100.dev : $(jj100_) $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)jj100 $(jj100_)
--
--$(DEVOBJ)gdevj100.$(OBJ) : $(JAPSRC)gdevj100.c $(PDEVH) \
--                           $(CONTRIB_MAK) $(MAKEDIRS)
--	$(DEVCC) $(O_)$@ $(C_) $(JAPSRC)gdevj100.c
--
--### ----------------- The Canon BubbleJet BJ10v device ----------------- ###
--
--bj10v_=$(DEVOBJ)gdev10v.$(OBJ) $(DEVOBJ)gdevprn.$(OBJ)
--
--$(DD)bj10v.dev : $(bj10v_) \
--                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)bj10v $(bj10v_)
--
--$(DD)bj10vh.dev : $(bj10v_) \
--                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)bj10vh $(bj10v_)
--
--# Uncomment the following line if you are using MS-DOS on PC9801 series.
--
--$(DEVOBJ)gdev10v.$(OBJ) : $(JAPSRC)gdev10v.c $(PDEVH) \
--                           $(CONTRIB_MAK) $(MAKEDIRS)
--	$(DEVCC) $(O_)$@ $(C_) $(JAPSRC)gdev10v.c
--#	$(DEVCC) -DPC9801 $(O_)$@ $(C_) $(JAPSRC)gdev10v.c
--
--
--##
--## EPSON MachJet driver 
--##
--
--mj700v2c_=$(DEVOBJ)gdevmjc.$(OBJ) $(HPPCL)
--
--$(DEVOBJ)gdevmjc.$(OBJ) : $(JAPSRC)gdevmjc.c $(JAPSRC)gdevmjc.h $(PDEVH) $(gdevpcl_h) \
--                           $(CONTRIB_MAK) $(MAKEDIRS)
--	$(DEVCC) -DA4 $(DEVO_)gdevmjc.$(OBJ) $(C_) $(JAPSRC)gdevmjc.c
--
--$(DD)mj700v2c.dev : $(mj700v2c_) $(DD)page.dev \
--                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)mj700v2c $(mj700v2c_)
--
--$(DD)mj500c.dev : $(mj700v2c_) $(DD)page.dev \
--                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)mj500c $(mj700v2c_)
--
--$(DD)mj6000c.dev : $(mj700v2c_) $(DD)page.dev \
--                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)mj6000c $(mj700v2c_)
--
--$(DD)mj8000c.dev : $(mj700v2c_) $(DD)page.dev \
--                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)mj8000c $(mj700v2c_)
--
--### ----------------- The Fujitsu FMPR printer device ----------------- ###
--
--fmpr_=$(DEVOBJ)gdevfmpr.$(OBJ) $(DEVOBJ)gdevprn.$(OBJ)
--
--$(DD)fmpr.dev : $(fmpr_) $(DD)page.dev \
--                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)fmpr $(fmpr_)
--
--$(DEVOBJ)gdevfmpr.$(OBJ) : $(JAPSRC)gdevfmpr.c $(PDEVH) \
--                           $(CONTRIB_MAK) $(MAKEDIRS)
--	$(DEVCC) $(DEVO_)gdevfmpr.$(OBJ) $(C_) $(JAPSRC)gdevfmpr.c
--
--### --------------- The Fujitsu FMLBP-2xx printer device --------------- ###
--
--fmlbp_=$(DEVOBJ)gdevfmlbp.$(OBJ) $(DEVOBJ)gdevprn.$(OBJ)
--
--$(DD)fmlbp.dev : $(fmlbp_) $(DD)page.dev \
--                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)fmlbp $(fmlbp_)
--
--$(DEVOBJ)gdevfmlbp.$(OBJ) : $(JAPSRC)gdevfmlbp.c $(PDEVH) \
--                           $(CONTRIB_MAK) $(MAKEDIRS)
--	$(DEVCC) -DFMLBP_NOADJUST_MARGIN $(O_)$@ $(C_) $(JAPSRC)gdevfmlbp.c
--
--### ------ The OKI MICROLINE620CL (IPL) printer device ------- ###
--#
--#  by N.Tagawa
--#
--#  $Id: gdevml6.mak,v 1.2 1998/03/16 13:32:33 tagawa Exp $
--#
--
--ml6_=$(DEVOBJ)gdevml6.$(OBJ) $(DEVOBJ)gdevprn.$(OBJ)
--
--$(DD)ml600.dev : $(ml6_) $(DD)page.dev \
--                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)ml600 $(ml6_)
--
--$(DEVOBJ)gdevml6.$(OBJ) : $(JAPSRC)gdevml6.c $(PDEVH) \
--                           $(CONTRIB_MAK) $(MAKEDIRS)
--	$(DEVCC) $(O_)$@ $(C_) $(JAPSRC)gdevml6.c
--
--
--#----------------------------------------------------------------------#
--
--lbp3x0_=$(DEVOBJ)gdevlbp3.$(OBJ)
--
--$(DD)lbp310.dev :$(lbp3x0_) $(DD)page.dev \
--                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)lbp310 $(lbp3x0_)
--
--$(DD)lbp320.dev :$(lbp3x0_) $(DD)page.dev \
--                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)lbp320 $(lbp3x0_)
--
--$(DEVOBJ)gdevlbp3.$(OBJ) : $(JAPSRC)gdevlbp3.c $(PDEVH)
--	$(DEVCC) $(O_)$@ $(C_) $(JAPSRC)gdevlbp3.c
--
--### --- The NEC NPDL language printer device ------ ###
--
--npdl_=$(DEVOBJ)gdevnpdl.$(OBJ) $(DEVOBJ)gdevlprn.$(OBJ)
--
--$(DEVOBJ)gdevnpdl.$(OBJ) : $(JAPSRC)gdevnpdl.c $(LIPS_SRC)gdevlprn.h $(PDEVH) \
--                           $(CONTRIB_MAK) $(MAKEDIRS)
--	$(DEVCC) -DA4 $(DEVO_)gdevnpdl.$(OBJ) $(LIPS_OPT) $(C_) $(JAPSRC)gdevnpdl.c
--
--$(DD)npdl.dev : $(npdl_) $(DD)page.dev \
--                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)npdl $(npdl_)
--
--### ------- EPSON ESC/Page printer device ----------------- ###
--
--escpage_=$(DEVOBJ)gdevespg.$(OBJ) $(DEVOBJ)gdevlprn.$(OBJ) $(DEVOBJ)gdevlips.$(OBJ)
--
--$(DEVOBJ)gdevespg.$(OBJ) : $(JAPSRC)gdevespg.c $(LIPS_SRC)gdevlprn.h $(PDEVH) \
--                           $(CONTRIB_MAK) $(MAKEDIRS)
--	$(DEVCC) -DA4 $(DEVO_)gdevespg.$(OBJ) $(LIPS_OPT) $(C_) $(JAPSRC)gdevespg.c
--
--$(DD)escpage.dev : $(escpage_) $(DD)page.dev \
--                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)escpage $(escpage_)
--
--$(DD)lp2000.dev : $(escpage_) $(DD)page.dev \
--                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)lp2000 $(escpage_)
--
--### --- The RICOH RPDL language printer device ------ ###
--
--rpdl_=$(DEVOBJ)gdevrpdl.$(OBJ) $(DEVOBJ)gdevlprn.$(OBJ)
--$(DEVOBJ)gdevrpdl.$(OBJ) : $(JAPSRC)gdevrpdl.c $(LIPS_SRC)gdevlprn.h $(PDEVH) \
--                           $(CONTRIB_MAK) $(MAKEDIRS)
--	$(DEVCC) $(DEVO_)gdevrpdl.$(OBJ) $(LIPS_OPT) $(C_) $(JAPSRC)gdevrpdl.c
--
--$(DD)rpdl.dev : $(rpdl_) $(DD)page.dev \
--                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)rpdl $(rpdl_)
--
--### ---------- RICOH RPDL IV(600dpi) printer devices ---------- ###
--#rpdl_=$(DEVOBJ)gdevrpdl.$(OBJ)
--#$(DEVOBJ)gdevrpdl.$(OBJ) : $(JAPSRC)gdevrpdl.c \
--#                           $(CONTRIB_MAK) $(MAKEDIRS)
--#	$(DEVCC) $(DEVO_)gdevrpdl.$(OBJ) $(C_) $(JAPSRC)gdevrpdl.c
--#
--#$(DD)nx100f.dev : $(rpdl_) $(DD)page.dev \
--#                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--#	$(SETPDEV2) $(DD)nx100f $(rpdl_)
--#
--#$(DD)nx100v.dev : $(rpdl_) $(DD)page.dev \
--#                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--#	$(SETPDEV2) $(DD)nx100v $(rpdl_)
--
--### ------------ The ALPS Micro Dry printer devices ------------ ###
--
--alps_=$(DEVOBJ)gdevalps.$(OBJ)
--
--$(DD)md50Mono.dev : $(alps_) $(DD)page.dev \
--                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)md50Mono $(alps_)
--
--$(DD)md50Eco.dev : $(alps_) $(DD)page.dev \
--                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)md50Eco $(alps_)
--
--$(DD)md1xMono.dev : $(alps_) $(DD)page.dev \
--                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
--	$(SETPDEV) $(DD)md1xMono $(alps_)
--
--$(DEVOBJ)gdevalps.$(OBJ) : $(JAPSRC)gdevalps.c $(PDEVH) \
--                           $(CONTRIB_MAK) $(MAKEDIRS)
--	$(DEVCC) $(O_)$@ $(C_) $(JAPSRC)gdevalps.c
--
--#########################################################################
--#########################################################################
--
--### ----------------- Additional .upp files ---------------- ###
--
--extra-upp-install: install-libdata
--	for f in $(CONTRIBSRC)uniprint$(D)*.upp; do \
--	    $(INSTALL_DATA) $$f $(DESTDIR)$(gsdatadir)$(D)lib || exit 1; \
--	done
--
- ### ------------ Build/Install special features ------------ ###
- 
--install-contrib-extras: extra-upp-install
-+install-contrib-extras:
diff --git a/app-text/ghostscript-gpl/files/ghostscript-9.52-remove-font-deps.patch b/app-text/ghostscript-gpl/files/ghostscript-9.52-remove-font-deps.patch
index 5f639e6..e014943 100644
--- a/app-text/ghostscript-gpl/files/ghostscript-9.52-remove-font-deps.patch
+++ b/app-text/ghostscript-gpl/files/ghostscript-9.52-remove-font-deps.patch
@@ -1,6 +1,14 @@
+From 8f1323126b0f1ee3c47132876b1f03d5810eeb1f Mon Sep 17 00:00:00 2001
 From: Pranav Batra <batrapranav@chromium.org>
-Subject: [PATCH] Do not use font resources
+Date: Sat, 3 Apr 2021 00:37:21 +0000
+Subject: [PATCH 5/6] Do not use font resources
 
+---
+ psi/psromfs.mak | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/psi/psromfs.mak b/psi/psromfs.mak
+index 6a336b3e2..9b3e594d9 100644
 --- a/psi/psromfs.mak
 +++ b/psi/psromfs.mak
 @@ -430,5 +430,5 @@ PS_MISC_DEPS=\
@@ -10,3 +18,6 @@
 -	$(PS_FONT_DEPS) $(PS_IDIOMSET_DEPS) $(PS_PROCSET_DEPS) $(PS_INIT_DEPS) $(PS_SUBSTCID_DEPS) \
 +	$(PS_IDIOMSET_DEPS) $(PS_PROCSET_DEPS) $(PS_INIT_DEPS) $(PS_SUBSTCID_DEPS) \
  	$(PS_MISC_DEPS)
+-- 
+2.31.0.208.g409f899ff0-goog
+
diff --git a/app-text/ghostscript-gpl/files/ghostscript-9.53-Disallow-NOSAFER.patch b/app-text/ghostscript-gpl/files/ghostscript-9.53-Disallow-NOSAFER.patch
new file mode 100644
index 0000000..2e90352
--- /dev/null
+++ b/app-text/ghostscript-gpl/files/ghostscript-9.53-Disallow-NOSAFER.patch
@@ -0,0 +1,31 @@
+From b37721b52923ac2c34186e953007930c36bc87ee Mon Sep 17 00:00:00 2001
+From: Sean Kau <skau@chromium.org>
+Date: Fri, 22 Jan 2021 15:02:27 -0800
+Subject: [PATCH 6/6] Disallow -dNOSAFER
+
+ChromiumOS only uses PPDs that run with -dSAFER.  Disallow the
+less safe option.
+---
+ psi/imainarg.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/psi/imainarg.c b/psi/imainarg.c
+index f5fe1f3e0..43834d647 100644
+--- a/psi/imainarg.c
++++ b/psi/imainarg.c
+@@ -806,6 +806,12 @@ run_stdin:
+                     return gs_error_Fatal;
+                 eqp = strchr(adef, '=');
+ 
++                if (strncmp(adef, "NOSAFER", 7) == 0) {
++                    puts(minst->heap, "-dNOSAFER is not allowed");
++                    arg_free((char *)adef, minst->heap);
++                    return gs_error_Fatal;
++                }
++
+                 if (eqp == NULL)
+                     eqp = strchr(adef, '#');
+                 /* Initialize the object memory, scanner, and */
+-- 
+2.31.0.208.g409f899ff0-goog
+
diff --git a/app-text/ghostscript-gpl/files/ghostscript-9.54-Always-stop-on-pdf-errors.patch b/app-text/ghostscript-gpl/files/ghostscript-9.54-Always-stop-on-pdf-errors.patch
new file mode 100644
index 0000000..b57fbf9
--- /dev/null
+++ b/app-text/ghostscript-gpl/files/ghostscript-9.54-Always-stop-on-pdf-errors.patch
@@ -0,0 +1,25 @@
+From bc62fcf8157574abe01898e16848bafb5cc02a12 Mon Sep 17 00:00:00 2001
+From: Sean Kau <skau@chromium.org>
+Date: Fri, 30 Apr 2021 15:36:45 -0700
+Subject: [PATCH] PDFSTOPONERROR is always true
+
+---
+ Resource/Init/gs_init.ps | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Resource/Init/gs_init.ps b/Resource/Init/gs_init.ps
+index 088c8583e..058c731a2 100644
+--- a/Resource/Init/gs_init.ps
++++ b/Resource/Init/gs_init.ps
+@@ -108,7 +108,7 @@ currentdict /PDFSTEP known /PDFSTEP exch def
+ % if PDFSTEP is on, turn on PDFDEBUG
+ PDFSTEP { /PDFDEBUG //true def } if
+ 
+-currentdict /PDFSTOPONERROR known /PDFSTOPONERROR exch def
++/PDFSTOPONERROR //true def
+ currentdict /PDFSTOPONWARNING known {/PDFSTOPONWARNING //true def /PDFSTOPONERROR //true def}{/PDFSTOPONWARNING //false def} ifelse
+ currentdict /PDFNOCIDFALLBACK known /PDFNOCIDFALLBACK exch def
+ /.bind /bind load def
+-- 
+2.31.1.527.g47e6f16901-goog
+
diff --git a/app-text/ghostscript-gpl/files/ghostscript-9.54-prune-contrib-directory.patch b/app-text/ghostscript-gpl/files/ghostscript-9.54-prune-contrib-directory.patch
new file mode 100644
index 0000000..d43505a
--- /dev/null
+++ b/app-text/ghostscript-gpl/files/ghostscript-9.54-prune-contrib-directory.patch
@@ -0,0 +1,422 @@
+From: Marcin Wojtas <mw@semihalf.com>
+Subject: [PATCH] Remove from contrib directory all drivers with undefined,
+ unclear or forbidden licenses. Configuration files were adjusted accordingly.
+
+Updated to enable the npdl driver.
+--- a/configure.ac
++++ b/configure.ac
+@@ -2576,14 +2576,14 @@ HP_DEVS='cdj500 djet500 djet500c dnj650c cljet5pr deskjet laserjet ljetplus ljet
+ PCLXL_DEVS='pxlmono pxlcolor'
+ EPSON_DEVS='eps9high eps9mid epson epsonc escp lp8000 lq850 photoex st800 stcolor alc1900 alc2000 alc4000 alc4100 alc8500 alc8600 alc9100 lp3000c lp8000c lp8200c lp8300c lp8500c lp8800c lp9000c lp9200c lp9500c lp9800c lps6500 epl2050 epl2050p epl2120 epl2500 epl2750 epl5800 epl5900 epl6100 epl6200 lp1800 lp1900 lp2200 lp2400 lp2500 lp7500 lp7700 lp7900 lp8100 lp8300f lp8400f lp8600 lp8600f lp8700 lp8900 lp9000b lp9100 lp9200b lp9300 lp9400 lp9600 lp9600s lps4500 eplcolor eplmono'
+ CANON_DEVS='bj10e bj200 bjc600 bjc800 lbp8 lips3 bjcmono bjcgray bjccmyk bjccolor'
+-LEXMARK_DEVS='lxm5700m lxm3200 lex2050 lex3200 lex5700 lex7000'
++LEXMARK_DEVS='lxm5700m lxm3200'
+ BROTHER_DEVS='hl7x0 hl1240 hl1250'
+ APPLE_DEVS='appledmp iwhi iwlo iwlq'
+ IBM_DEVS='ibmpro jetp3852'
+-OKI_DEVS='oki182 okiibm oki4w'
+-JAPAN_DEVS='lips4 lips4v ljet4pjl lj4dithp dj505j picty180 lips2p bjc880j pr201 pr150 pr1000 pr1000_4 jj100 bj10v bj10vh mj700v2c mj500c mj6000c mj8000c fmpr fmlbp ml600 lbp310 lbp320 md50Mono md50Eco md1xMono escpage lp2000 npdl rpdl'
+-MISC_PDEVS='uniprint ap3250 atx23 atx24 atx38 itk24i itk38 coslw2p coslwxl declj250 fs600 imagen lj250 m8510 necp6 oce9050 r4081 sj48 tek4696 t4693d2 t4693d4 t4693d8 dl2100 la50 la70 la75 la75plus ln03 xes md2k md5k gdi samsunggdi'
+-OPVP_DEVS='opvp oprp'
++OKI_DEVS='oki182 okiibm'
++JAPAN_DEVS='lips4 lips4v ljet4pjl lj4dithp dj505j picty180 lips2p bjc880j npdl'
++MISC_PDEVS='uniprint ap3250 atx23 atx24 atx38 itk24i itk38 coslw2p coslwxl declj250 fs600 imagen lj250 m8510 necp6 oce9050 r4081 sj48 tek4696 t4693d2 t4693d4 t4693d8'
++OPVP_DEVS=''
+ 
+ ETS_HALFTONING_DEVS='rinkj'
+ 
+--- a/contrib/contrib.mak
++++ b/contrib/contrib.mak
+@@ -283,25 +283,6 @@ $(DD)chp2200.dev : $(cdeskjet8_) $(DD)page.dev \
+ 	$(SETPDEV2) $(DD)chp2200 $(cdeskjet8_)
+ 
+ 
+-### ---------------- The Samsung SmartGDI laser printer devices --------- ###
+-### Note : this driver is used by Samsung SmartGDI compatible printers.   ###
+-###
+-
+-GDIMONO=$(DEVOBJ)gdevgdi.$(OBJ) $(HPPCL)
+-
+-$(DD)gdi.dev : $(GDIMONO) $(DD)page.dev \
+-                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)gdi $(GDIMONO)
+-
+-$(DD)samsunggdi.dev : $(GDIMONO) $(DD)page.dev \
+-                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)samsunggdi $(GDIMONO)
+-
+-$(DEVOBJ)gdevgdi.$(OBJ) : $(CONTRIBSRC)gdevgdi.c $(PDEVH) $(gdevpcl_h) \
+-                           $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(DEVCC) $(DEVO_)gdevgdi.$(OBJ) $(C_) $(CONTRIBSRC)gdevgdi.c
+-
+-
+ ### ---------------- The Brother HL-1240/HL-1250 printers --------------- ###
+ ### These printers are ljet4-compatible, plus support for source tray     ###
+ ### selection and special 1200x600 dpi mode.                              ###
+@@ -322,51 +303,6 @@ $(DEVOBJ)gdevhl12.$(OBJ) : $(CONTRIBSRC)gdevhl12.c $(PDEVH) $(gdevdljm_h) \
+ 	$(DEVCC) $(DEVO_)gdevhl12.$(OBJ) $(C_) $(CONTRIBSRC)gdevhl12.c
+ 
+ 
+-### -------- The DEC LN03/DL2100/LA50/LA70/LA75 printer devices -------- ###
+-
+-ln03_=$(DEVOBJ)gdevln03.$(OBJ)
+-
+-# Author: Ulrich Mueller (ulm@vsnhd1.cern.ch)
+-# Printer: DEC LN03
+-$(DD)ln03.dev : $(ln03_) $(DD)page.dev \
+-                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)ln03 $(ln03_)
+-
+-# Author: Nick Brown (nick.brown@coe.int)
+-# Printer: DEClaser 2100
+-$(DD)dl2100.dev : $(ln03_) $(DD)page.dev \
+-                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)dl2100 $(ln03_)
+-
+-# Author: Ian MacPhedran (macphed@dvinci.USask.CA)
+-# Printer: DEC LA50
+-$(DD)la50.dev : $(ln03_) $(DD)page.dev \
+-                          $(CONTDEV)  $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)la50 $(ln03_)
+-
+-# Author: Bruce Lowekamp (lowekamp@csugrad.cs.vt.edu)
+-# Printer: DEC LA70
+-$(DD)la70.dev : $(ln03_) $(DD)page.dev \
+-                         $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)la70 $(ln03_)
+-
+-# Author: Ian MacPhedran (macphed@dvinci.USask.CA)
+-# Printer: DEC LA75
+-$(DD)la75.dev : $(ln03_) $(DD)page.dev \
+-                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)la75 $(ln03_)
+-
+-# Author: Andre' Beck (Andre_Beck@IRS.Inf.TU-Dresden.de)
+-# Printer: DEC LA75plus
+-$(DD)la75plus.dev : $(ln03_) $(DD)page.dev \
+-                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)la75plus $(ln03_)
+-
+-$(DEVOBJ)gdevln03.$(OBJ) : $(CONTRIBSRC)gdevln03.c $(PDEVH) \
+-                           $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(DEVCC) $(DEVO_)gdevln03.$(OBJ) $(C_) $(CONTRIBSRC)gdevln03.c
+-
+-
+ ### -------------------------- EPSON Page/Color -------------------------- ###
+ ###
+ ###
+@@ -589,33 +525,6 @@ $(DD)eplmono.dev: $(escv_) $(DD)page.dev \
+                            $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+ 	$(SETPDEV) $(DD)eplmono $(escv_)
+ 
+-# ------ The Lexmark 5700 and 7000 devices ------ #
+-
+-lex7000_=$(DEVOBJ)gdevlx7.$(OBJ)
+-$(DD)lex7000.dev : $(lex7000_) $(DD)page.dev \
+-                           $(CONTDEV) $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)lex7000 $(lex7000_)
+-
+-lex5700_=$(DEVOBJ)gdevlx7.$(OBJ)
+-$(DD)lex5700.dev : $(lex5700_) $(DD)page.dev \
+-                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)lex5700 $(lex5700_)
+-
+-lex3200_=$(DEVOBJ)gdevlx7.$(OBJ)
+-$(DD)lex3200.dev : $(lex3200_) $(DD)page.dev \
+-                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)lex3200 $(lex3200_)
+-
+-lex2050_=$(DEVOBJ)gdevlx7.$(OBJ)
+-$(DD)lex2050.dev : $(lex2050_) $(DD)page.dev \
+-                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)lex2050 $(lex2050_)
+-
+-$(DEVOBJ)gdevlx7.$(OBJ) : $(CONTRIBSRC)gdevlx7.c $(PDEVH) \
+-                           $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(DEVCC) $(DEVO_)gdevlx7.$(OBJ) $(C_) $(CONTRIBSRC)gdevlx7.c
+-
+-
+ ### ----------- Lexmark 3200 device ------------ ###
+ 
+ lxm3200_=$(DEVOBJ)gdevlx32.$(OBJ)
+@@ -678,37 +587,6 @@ $(DD)bjc880j.dev : $(lipsr_) $(DD)page.dev \
+ 	$(SETPDEV) $(DD)bjc880j $(lipsr_)
+ 
+ 
+-### ------------ ALPS MD series printer devices ------------ ###
+-
+-md2k_=$(DEVOBJ)gdevmd2k.$(OBJ)
+-
+-$(DD)md2k.dev : $(md2k_) $(DD)page.dev \
+-                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)md2k $(md2k_)
+-
+-$(DD)md5k.dev : $(md2k_) $(DD)page.dev \
+-                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)md5k $(md2k_)
+-
+-$(DEVOBJ)gdevmd2k.$(OBJ) : $(CONTRIBSRC)gdevmd2k.c $(PDEVH) $(gsparam_h) \
+-                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(DEVCC) $(DEVO_)gdevmd2k.$(OBJ) $(C_) $(CONTRIBSRC)gdevmd2k.c
+-
+-
+-### ----------------- The Okidata OkiPage 4w+ device ------------------- ###
+-
+-oki4w_=$(DEVOBJ)gdevop4w.$(OBJ)
+-$(DD)oki4w.dev : $(oki4w_) $(DD)page.dev \
+-                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)oki4w $(oki4w_)
+-
+-# Author: Ivan Schreter (ivan@shadow.sk)
+-# Printer: Okidata OkiPage 4w+
+-$(DEVOBJ)gdevop4w.$(OBJ) : $(CONTRIBSRC)gdevop4w.c $(PDEVH) \
+-                           $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(DEVCC) $(DEVO_)gdevop4w.$(OBJ) $(C_) $(CONTRIBSRC)gdevop4w.c
+-
+-
+ ### ---------------- OpenPrinting Vector Printer Driver ---------------- ###
+ ###                                                                      ###
+ OPVP_DIR=$(CONTRIBSRC)opvp
+@@ -1008,19 +886,6 @@ pcl3-install:
+ 	$(INSTALL_PROGRAM) $(BINDIR)$(D)pcl3opts$(XE) $(DESTDIR)$(bindir)
+ 
+ 
+-### ----------------- The Xerox XES printer device --------------------- ###
+-
+-xes_=$(DEVOBJ)gdevxes.$(OBJ)
+-$(DD)xes.dev : $(xes_) $(DD)page.dev \
+-                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)xes $(xes_)
+-
+-# Author: Peter Flass (flass@lbdrscs.bitnet)
+-# Printer: Xerox XES (2700, 3700, 4045, etc.)
+-$(DEVOBJ)gdevxes.$(OBJ) : $(CONTRIBSRC)gdevxes.c $(PDEVH) \
+-                           $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(DEVCC) $(DEVO_)gdevxes.$(OBJ) $(C_) $(CONTRIBSRC)gdevxes.c
+-
+ #########################################################################
+ ### --------------------Japanese printer addons --------------------- ###
+ #########################################################################
+@@ -1028,140 +893,6 @@ $(DEVOBJ)gdevxes.$(OBJ) : $(CONTRIBSRC)gdevxes.c $(PDEVH) \
+ JAPDIR=$(CONTRIBSRC)japanese
+ JAPSRC=$(JAPDIR)$(D)
+ 
+-### ----------------- The NEC PC-PR201 printer device ----------------- ###
+-
+-pr201_=$(DEVOBJ)gdevp201.$(OBJ) $(DEVOBJ)gdevprn.$(OBJ)
+-
+-$(DD)pr201.dev : $(pr201_) $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)pr201 $(pr201_)
+-
+-$(DD)pr150.dev : $(pr201_) $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)pr150 $(pr201_)
+-
+-$(DD)pr1000.dev : $(pr201_) $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)pr1000 $(pr201_)
+-
+-$(DD)pr1000_4.dev : $(pr201_) $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)pr1000_4 $(pr201_)
+-
+-$(DEVOBJ)gdevp201.$(OBJ) : $(JAPSRC)gdevp201.c $(PDEVH) \
+-                           $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(DEVCC) $(DEVO_)gdevp201.$(OBJ) $(C_) $(JAPSRC)gdevp201.c
+-
+-### ----------------- The Star JJ-100 printer device ----------------- ###
+-
+-jj100_=$(DEVOBJ)gdevj100.$(OBJ) $(DEVOBJ)gdevprn.$(OBJ)
+-
+-$(DD)jj100.dev : $(jj100_) $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)jj100 $(jj100_)
+-
+-$(DEVOBJ)gdevj100.$(OBJ) : $(JAPSRC)gdevj100.c $(PDEVH) \
+-                           $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(DEVCC) $(O_)$@ $(C_) $(JAPSRC)gdevj100.c
+-
+-### ----------------- The Canon BubbleJet BJ10v device ----------------- ###
+-
+-bj10v_=$(DEVOBJ)gdev10v.$(OBJ) $(DEVOBJ)gdevprn.$(OBJ)
+-
+-$(DD)bj10v.dev : $(bj10v_) \
+-                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)bj10v $(bj10v_)
+-
+-$(DD)bj10vh.dev : $(bj10v_) \
+-                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)bj10vh $(bj10v_)
+-
+-# Uncomment the following line if you are using MS-DOS on PC9801 series.
+-
+-$(DEVOBJ)gdev10v.$(OBJ) : $(JAPSRC)gdev10v.c $(PDEVH) \
+-                           $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(DEVCC) $(O_)$@ $(C_) $(JAPSRC)gdev10v.c
+-#	$(DEVCC) -DPC9801 $(O_)$@ $(C_) $(JAPSRC)gdev10v.c
+-
+-
+-##
+-## EPSON MachJet driver
+-##
+-
+-mj700v2c_=$(DEVOBJ)gdevmjc.$(OBJ) $(HPPCL)
+-
+-$(DEVOBJ)gdevmjc.$(OBJ) : $(JAPSRC)gdevmjc.c $(JAPSRC)gdevmjc.h $(PDEVH) $(gdevpcl_h) \
+-                           $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(DEVCC) -DA4 $(DEVO_)gdevmjc.$(OBJ) $(C_) $(JAPSRC)gdevmjc.c
+-
+-$(DD)mj700v2c.dev : $(mj700v2c_) $(DD)page.dev \
+-                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)mj700v2c $(mj700v2c_)
+-
+-$(DD)mj500c.dev : $(mj700v2c_) $(DD)page.dev \
+-                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)mj500c $(mj700v2c_)
+-
+-$(DD)mj6000c.dev : $(mj700v2c_) $(DD)page.dev \
+-                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)mj6000c $(mj700v2c_)
+-
+-$(DD)mj8000c.dev : $(mj700v2c_) $(DD)page.dev \
+-                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)mj8000c $(mj700v2c_)
+-
+-### ----------------- The Fujitsu FMPR printer device ----------------- ###
+-
+-fmpr_=$(DEVOBJ)gdevfmpr.$(OBJ) $(DEVOBJ)gdevprn.$(OBJ)
+-
+-$(DD)fmpr.dev : $(fmpr_) $(DD)page.dev \
+-                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)fmpr $(fmpr_)
+-
+-$(DEVOBJ)gdevfmpr.$(OBJ) : $(JAPSRC)gdevfmpr.c $(PDEVH) \
+-                           $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(DEVCC) $(DEVO_)gdevfmpr.$(OBJ) $(C_) $(JAPSRC)gdevfmpr.c
+-
+-### --------------- The Fujitsu FMLBP-2xx printer device --------------- ###
+-
+-fmlbp_=$(DEVOBJ)gdevfmlbp.$(OBJ) $(DEVOBJ)gdevprn.$(OBJ)
+-
+-$(DD)fmlbp.dev : $(fmlbp_) $(DD)page.dev \
+-                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)fmlbp $(fmlbp_)
+-
+-$(DEVOBJ)gdevfmlbp.$(OBJ) : $(JAPSRC)gdevfmlbp.c $(PDEVH) \
+-                           $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(DEVCC) -DFMLBP_NOADJUST_MARGIN $(O_)$@ $(C_) $(JAPSRC)gdevfmlbp.c
+-
+-### ------ The OKI MICROLINE620CL (IPL) printer device ------- ###
+-#
+-#  by N.Tagawa
+-#
+-#  $Id: gdevml6.mak,v 1.2 1998/03/16 13:32:33 tagawa Exp $
+-#
+-
+-ml6_=$(DEVOBJ)gdevml6.$(OBJ) $(DEVOBJ)gdevprn.$(OBJ)
+-
+-$(DD)ml600.dev : $(ml6_) $(DD)page.dev \
+-                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)ml600 $(ml6_)
+-
+-$(DEVOBJ)gdevml6.$(OBJ) : $(JAPSRC)gdevml6.c $(PDEVH) \
+-                           $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(DEVCC) $(O_)$@ $(C_) $(JAPSRC)gdevml6.c
+-
+-
+-#----------------------------------------------------------------------#
+-
+-lbp3x0_=$(DEVOBJ)gdevlbp3.$(OBJ)
+-
+-$(DD)lbp310.dev :$(lbp3x0_) $(DD)page.dev \
+-                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)lbp310 $(lbp3x0_)
+-
+-$(DD)lbp320.dev :$(lbp3x0_) $(DD)page.dev \
+-                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)lbp320 $(lbp3x0_)
+-
+-$(DEVOBJ)gdevlbp3.$(OBJ) : $(JAPSRC)gdevlbp3.c $(PDEVH)
+-	$(DEVCC) $(O_)$@ $(C_) $(JAPSRC)gdevlbp3.c
+-
+ ### --- The NEC NPDL language printer device ------ ###
+ 
+ npdl_=$(DEVOBJ)gdevnpdl.$(OBJ) $(DEVOBJ)gdevlprn.$(OBJ)
+@@ -1174,77 +905,6 @@ $(DD)npdl.dev : $(npdl_) $(DD)page.dev \
+                            $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+ 	$(SETPDEV) $(DD)npdl $(npdl_)
+ 
+-### ------- EPSON ESC/Page printer device ----------------- ###
+-
+-escpage_=$(DEVOBJ)gdevespg.$(OBJ) $(DEVOBJ)gdevlprn.$(OBJ) $(DEVOBJ)gdevlips.$(OBJ)
+-
+-$(DEVOBJ)gdevespg.$(OBJ) : $(JAPSRC)gdevespg.c $(LIPS_SRC)gdevlprn.h $(PDEVH) \
+-                           $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(DEVCC) -DA4 $(DEVO_)gdevespg.$(OBJ) $(LIPS_OPT) $(C_) $(JAPSRC)gdevespg.c
+-
+-$(DD)escpage.dev : $(escpage_) $(DD)page.dev \
+-                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)escpage $(escpage_)
+-
+-$(DD)lp2000.dev : $(escpage_) $(DD)page.dev \
+-                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)lp2000 $(escpage_)
+-
+-### --- The RICOH RPDL language printer device ------ ###
+-
+-rpdl_=$(DEVOBJ)gdevrpdl.$(OBJ) $(DEVOBJ)gdevlprn.$(OBJ)
+-$(DEVOBJ)gdevrpdl.$(OBJ) : $(JAPSRC)gdevrpdl.c $(LIPS_SRC)gdevlprn.h $(PDEVH) \
+-                           $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(DEVCC) $(DEVO_)gdevrpdl.$(OBJ) $(LIPS_OPT) $(C_) $(JAPSRC)gdevrpdl.c
+-
+-$(DD)rpdl.dev : $(rpdl_) $(DD)page.dev \
+-                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)rpdl $(rpdl_)
+-
+-### ---------- RICOH RPDL IV(600dpi) printer devices ---------- ###
+-#rpdl_=$(DEVOBJ)gdevrpdl.$(OBJ)
+-#$(DEVOBJ)gdevrpdl.$(OBJ) : $(JAPSRC)gdevrpdl.c \
+-#                           $(CONTRIB_MAK) $(MAKEDIRS)
+-#	$(DEVCC) $(DEVO_)gdevrpdl.$(OBJ) $(C_) $(JAPSRC)gdevrpdl.c
+-#
+-#$(DD)nx100f.dev : $(rpdl_) $(DD)page.dev \
+-#                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-#	$(SETPDEV2) $(DD)nx100f $(rpdl_)
+-#
+-#$(DD)nx100v.dev : $(rpdl_) $(DD)page.dev \
+-#                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-#	$(SETPDEV2) $(DD)nx100v $(rpdl_)
+-
+-### ------------ The ALPS Micro Dry printer devices ------------ ###
+-
+-alps_=$(DEVOBJ)gdevalps.$(OBJ)
+-
+-$(DD)md50Mono.dev : $(alps_) $(DD)page.dev \
+-                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)md50Mono $(alps_)
+-
+-$(DD)md50Eco.dev : $(alps_) $(DD)page.dev \
+-                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)md50Eco $(alps_)
+-
+-$(DD)md1xMono.dev : $(alps_) $(DD)page.dev \
+-                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(SETPDEV) $(DD)md1xMono $(alps_)
+-
+-$(DEVOBJ)gdevalps.$(OBJ) : $(JAPSRC)gdevalps.c $(PDEVH) \
+-                           $(CONTRIB_MAK) $(MAKEDIRS)
+-	$(DEVCC) $(O_)$@ $(C_) $(JAPSRC)gdevalps.c
+-
+-#########################################################################
+-#########################################################################
+-
+-### ----------------- Additional .upp files ---------------- ###
+-
+-extra-upp-install: install-libdata
+-	for f in $(CONTRIBSRC)uniprint$(D)*.upp; do \
+-	    $(INSTALL_DATA) $$f $(DESTDIR)$(gsdatadir)$(D)lib || exit 1; \
+-	done
+-
+ ### ------------ Build/Install special features ------------ ###
+ 
+-install-contrib-extras: extra-upp-install
++install-contrib-extras:
+-- 
+2.31.0.208.g409f899ff0-goog
+
diff --git a/app-text/ghostscript-gpl/ghostscript-gpl-9.53.3-r1.ebuild b/app-text/ghostscript-gpl/ghostscript-gpl-9.53.3-r1.ebuild
deleted file mode 120000
index 41fb419..0000000
--- a/app-text/ghostscript-gpl/ghostscript-gpl-9.53.3-r1.ebuild
+++ /dev/null
@@ -1 +0,0 @@
-ghostscript-gpl-9.53.3.ebuild
\ No newline at end of file
diff --git a/app-text/ghostscript-gpl/ghostscript-gpl-9.53.3.ebuild b/app-text/ghostscript-gpl/ghostscript-gpl-9.53.3.ebuild
deleted file mode 100644
index 09b5d06..0000000
--- a/app-text/ghostscript-gpl/ghostscript-gpl-9.53.3.ebuild
+++ /dev/null
@@ -1,238 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit autotools cros-fuzzer cros-sanitizers flag-o-matic multilib \
-				toolchain-funcs versionator
-
-
-DESCRIPTION="Interpreter for the PostScript language and PDF"
-HOMEPAGE="https://ghostscript.com/"
-
-MY_P=${P/-gpl}
-PVM=$(get_version_component_range 1-3)
-PVM_S=$(replace_all_version_separators "" ${PVM})
-
-SRC_URI="
-	https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs${PVM_S}/${MY_P}.tar.xz
-"
-
-# Google has a commercial license for ghostscript when distributed with
-# Chrome OS (not Chromium OS). So toggle the license to the required
-# copyright when building for Chrome OS, and use the open source licensing
-# text otherwise.
-LICENSE="
-	internal? ( LICENSE.artifex_commercial )
-	!internal? ( AGPL-3 CPL-1.0 )
-"
-SLOT="0"
-KEYWORDS="*"
-IUSE="
-	asan cups dbus fuzzer gtk idn internal linguas_de crosfonts static-libs
-	tiff unicode X
-"
-
-LANGS="ja ko zh_CN zh_TW"
-for X in ${LANGS} ; do
-	IUSE="${IUSE} linguas_${X}"
-done
-
-COMMON_DEPEND="
-	app-text/libpaper
-	media-libs/fontconfig
-	>=media-libs/freetype-2.4.9:2=
-	>=media-libs/lcms-2.6:2
-	>=media-libs/libpng-1.6.2:0=
-	>=sys-libs/zlib-1.2.7
-	virtual/jpeg:0
-	cups? ( >=net-print/cups-1.3.8 )
-	dbus? ( sys-apps/dbus )
-	gtk? ( || ( x11-libs/gtk+:3 x11-libs/gtk+:2 ) )
-	idn? ( net-dns/libidn )
-	tiff? ( >=media-libs/tiff-4.0.1:0= )
-	X? ( x11-libs/libXt x11-libs/libXext )
-	!!media-libs/jbig2dec
-"
-
-DEPEND="${COMMON_DEPEND}
-	virtual/pkgconfig
-"
-
-# We need urw-fonts for the 35 base postscript level 2 fonts,
-# eg CenturySchL-Roma is not included in the Noto fonts.
-RDEPEND="${COMMON_DEPEND}
-	!crosfonts? ( >=media-fonts/urw-fonts-2.4.9 )
-	linguas_ja? ( media-fonts/kochi-substitute )
-	linguas_ko? ( media-fonts/baekmuk-fonts )
-	linguas_zh_CN? ( media-fonts/arphicfonts )
-	linguas_zh_TW? ( media-fonts/arphicfonts )
-"
-
-S="${WORKDIR}/${MY_P}"
-
-PATCHES=(
-	"${FILESDIR}/"
-)
-
-src_prepare() {
-	# apply various patches, many borrowed from Fedora
-	# http://pkgs.fedoraproject.org/cgit/ghostscript.git
-	# in the same breath, apply patches specific to Chrome OS
-	default
-
-	# remove internal copies of various libraries
-	rm -r "${S}"/cups/libs || die
-	rm -r "${S}"/freetype || die
-	rm -r "${S}"/lcms2mt || die
-	rm -r "${S}"/libpng || die
-	rm -r "${S}"/tiff || die
-	rm -r "${S}"/zlib || die
-
-	# Enable compilation of select contributed drivers,
-	# but prune ones with incompatible or unclear licenses
-	# (c.f. commit 0334118d6279640cb860f2f4a9af64b0fd008b49).
-	rm -r "${S}"/contrib/epson740/ || die
-	rm -r "${S}"/contrib/japanese || die
-	rm -r "${S}"/contrib/md2k_md5k/ || die
-	rm -r "${S}"/contrib/pscolor || die
-	rm -r "${S}"/contrib/uniprint || die
-	rm "${S}"/contrib/gdevgdi.c || die
-	rm "${S}"/contrib/gdevln03.c || die
-	rm "${S}"/contrib/gdevlx7.c || die
-	rm "${S}"/contrib/gdevmd2k.c || die
-	rm "${S}"/contrib/gdevop4w.c || die
-	rm "${S}"/contrib/gdevxes.c || die
-
-	if ! use gtk ; then
-		sed -e "s:\$(GSSOX)::" \
-			-e "s:.*\$(GSSOX_XENAME)$::" \
-			-i "${S}"/base/unix-dll.mak || die "sed failed"
-	fi
-
-	if use crosfonts; then
-		rm -rf "${S}/Resource/Font" || die
-		cat "${FILESDIR}/Fontmap.cros" >> "${S}/Resource/Init/Fontmap.GS" || die
-	fi
-
-	# Force the include dirs to a neutral location.
-	sed -e "/^ZLIBDIR=/s:=.*:=${T}:" \
-		-i "${S}"/configure.ac || die
-	# Some files depend on zlib.h directly.  Redirect them. #573248
-	# Also make sure to not define OPJ_STATIC to avoid linker errors due to
-	# hidden symbols (https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=203327#c1)
-	sed -e '/^zlib_h/s:=.*:=:' \
-		-e 's|-DOPJ_STATIC ||' \
-		-i "${S}"/base/lib.mak || die
-
-	# search path fix
-	# put LDFLAGS after BINDIR, bug #383447
-	sed -e "s:\$\(gsdatadir\)/lib:@datarootdir@/ghostscript/${PVM}/$(get_libdir):" \
-		-e "s:exdir=.*:exdir=@datarootdir@/doc/${PF}/examples:" \
-		-e "s:docdir=.*:docdir=@datarootdir@/doc/${PF}/html:" \
-		-e "s:GS_DOCDIR=.*:GS_DOCDIR=@datarootdir@/doc/${PF}/html:" \
-		-e 's:-L$(BINDIR):& $(LDFLAGS):g' \
-		-i "${S}"/Makefile.in "${S}"/base/*.mak || die "sed failed"
-
-	# remove incorrect symlink, bug 590384
-	rm ijs/ltmain.sh || die
-	eautoreconf
-
-	cd "${S}"/ijs || die
-	eautoreconf
-}
-
-src_configure() {
-	sanitizers-setup-env
-
-	local FONTPATH
-	for path in \
-		/usr/share/fonts/urw-fonts \
-		/usr/share/fonts/Type1 \
-		/usr/share/fonts
-	do
-		FONTPATH="$FONTPATH${FONTPATH:+:}${EPREFIX}$path"
-	done
-
-	tc-export_build_env BUILD_CC
-
-	# This list contains all ghostscript devices used by CUPS/PPD files.
-	# It was built basing on an output from platform_PrinterPpds autotest.
-	# See the readme.txt file in the autotest directory to learn how the list
-	# was created.
-	local devices=(
-		ap3250 bit bj10e bj200 bjc600 bjc800 bjc880j bjccolor cdj500
-		cdj550 cdnj500 cljet5c declj250 djet500 dnj650c epl2050 eplcolor
-		eps9high eps9mid epson epsonc hl1250 ibmpro imagen jetp3852 laserjet
-		lbp8 lips2p lips3 lips4 ljet2p ljet3 ljet4 ljetplus lp1800 lp1900
-		lp2200 lp2400 lp2500 lp2563 lp3000c lp7500 lp7700 lp7900 lp8000
-		lp8000c lp8100 lp8200c lp8300c lp8300f lp8400f lp8500c lp8600 lp8600f
-		lp8700 lp8800c lp8900 lp9000b lp9000c lp9100 lp9200b lp9200c lp9300
-		lp9400 lp9500c lp9600 lp9600s lp9800c lps4500 lps6500 lq850 lxm5700m
-		m8510 necp6 oce9050 oki182 okiibm pdfwrite pcl3 picty180 pjxl300
-		ps2write pxlcolor pxlmono r4081 sj48 stcolor t4693d4 tek4696 uniprint
-		# The "cups" driver is added if and only if we are building with CUPS.
-		$(usev cups)
-	)
-
-	econf \
-		CUPSCONFIG="${EROOT}/usr/bin/${CHOST}-cups-config" \
-		CCAUX="${BUILD_CC}" \
-		CFLAGSAUX="${BUILD_CFLAGS}" \
-		LDFLAGSAUX="${BUILD_LDFLAGS}" \
-		--enable-dynamic \
-		--enable-freetype \
-		--enable-fontconfig \
-		--enable-openjpeg \
-		$(use_enable crosfonts compile-inits) \
-		--with-drivers="$(printf %s, "${devices[@]}")" \
-		--with-fontpath="$FONTPATH" \
-		--with-ijs \
-		--with-jbig2dec \
-		--with-libpaper \
-		--without-luratech \
-		$(use_enable cups) \
-		$(use_enable dbus) \
-		$(use_enable gtk) \
-		$(use_with cups pdftoraster) \
-		$(use_with idn libidn) \
-		$(use_with tiff libtiff) \
-		$(use_with tiff system-libtiff) \
-		$(use_with X x)
-
-	cd "${S}/ijs" || die
-	econf \
-		--enable-shared \
-		$(use_enable static-libs static)
-}
-
-src_compile() {
-	emake -j8 so all
-
-	cd "${S}"/ijs || die
-	emake
-}
-
-src_install() {
-	emake DESTDIR="${D}" install-so install
-
-	# move gsc to gs, bug #343447
-	# gsc collides with gambit, bug #253064
-	mv -f "${ED}"/usr/bin/{gsc,gs} || die
-
-	cd "${S}/ijs" || die
-	emake DESTDIR="${D}" install
-
-	insinto /usr/share/ghostscript/${PVM}/Resource/Init
-
-	if ! use static-libs; then
-		find "${ED}" -name '*.la' -delete || die
-	fi
-
-	if ! use linguas_de; then
-		rm -r "${ED}"/usr/share/man/de || die
-	fi
-
-	# set environment variables
-	doenvd "${FILESDIR}"/02ghostscript
-}
diff --git a/app-text/ghostscript-gpl/ghostscript-gpl-9.54.0-r3.ebuild b/app-text/ghostscript-gpl/ghostscript-gpl-9.54.0-r3.ebuild
new file mode 120000
index 0000000..83366e1
--- /dev/null
+++ b/app-text/ghostscript-gpl/ghostscript-gpl-9.54.0-r3.ebuild
@@ -0,0 +1 @@
+ghostscript-gpl-9.54.0.ebuild
\ No newline at end of file
diff --git a/app-text/ghostscript-gpl/ghostscript-gpl-9.54.0.ebuild b/app-text/ghostscript-gpl/ghostscript-gpl-9.54.0.ebuild
new file mode 100644
index 0000000..dcadb12
--- /dev/null
+++ b/app-text/ghostscript-gpl/ghostscript-gpl-9.54.0.ebuild
@@ -0,0 +1,238 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools cros-fuzzer cros-sanitizers flag-o-matic multilib \
+				toolchain-funcs versionator
+
+
+DESCRIPTION="Interpreter for the PostScript language and PDF"
+HOMEPAGE="https://ghostscript.com/"
+
+MY_P=${P/-gpl}
+PVM=$(get_version_component_range 1-3)
+PVM_S=$(replace_all_version_separators "" ${PVM})
+
+SRC_URI="
+	https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs${PVM_S}/${MY_P}.tar.xz
+"
+
+# Google has a commercial license for ghostscript when distributed with
+# Chrome OS (not Chromium OS). So toggle the license to the required
+# copyright when building for Chrome OS, and use the open source licensing
+# text otherwise.
+LICENSE="
+	internal? ( LICENSE.artifex_commercial )
+	!internal? ( AGPL-3 CPL-1.0 )
+"
+SLOT="0"
+KEYWORDS="*"
+IUSE="
+	asan cups dbus fuzzer gtk idn internal linguas_de crosfonts static-libs
+	tiff unicode X
+"
+
+LANGS="ja ko zh_CN zh_TW"
+for X in ${LANGS} ; do
+	IUSE="${IUSE} linguas_${X}"
+done
+
+COMMON_DEPEND="
+	app-text/libpaper
+	media-libs/fontconfig
+	>=media-libs/freetype-2.4.9:2=
+	>=media-libs/lcms-2.6:2
+	>=media-libs/libpng-1.6.2:0=
+	>=sys-libs/zlib-1.2.7
+	virtual/jpeg:0
+	cups? ( >=net-print/cups-1.3.8 )
+	dbus? ( sys-apps/dbus )
+	gtk? ( || ( x11-libs/gtk+:3 x11-libs/gtk+:2 ) )
+	idn? ( net-dns/libidn )
+	tiff? ( >=media-libs/tiff-4.0.1:0= )
+	X? ( x11-libs/libXt x11-libs/libXext )
+	!!media-libs/jbig2dec
+"
+
+DEPEND="${COMMON_DEPEND}
+	virtual/pkgconfig
+"
+
+# We need urw-fonts for the 35 base postscript level 2 fonts,
+# eg CenturySchL-Roma is not included in the Noto fonts.
+RDEPEND="${COMMON_DEPEND}
+	!crosfonts? ( >=media-fonts/urw-fonts-2.4.9 )
+	linguas_ja? ( media-fonts/kochi-substitute )
+	linguas_ko? ( media-fonts/baekmuk-fonts )
+	linguas_zh_CN? ( media-fonts/arphicfonts )
+	linguas_zh_TW? ( media-fonts/arphicfonts )
+"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+	"${FILESDIR}/"
+)
+
+src_prepare() {
+	# apply various patches, many borrowed from Fedora
+	# http://pkgs.fedoraproject.org/cgit/ghostscript.git
+	# in the same breath, apply patches specific to Chrome OS
+	default
+
+	# remove internal copies of various libraries
+	rm -r "${S}"/cups/libs || die
+	rm -r "${S}"/freetype || die
+	rm -r "${S}"/lcms2mt || die
+	rm -r "${S}"/libpng || die
+	rm -r "${S}"/tiff || die
+	rm -r "${S}"/zlib || die
+
+	# Enable compilation of select contributed drivers,
+	# but prune ones with incompatible or unclear licenses
+	# (c.f. commit 0334118d6279640cb860f2f4a9af64b0fd008b49).
+	rm -r "${S}"/contrib/epson740/ || die
+	rm -r "${S}"/contrib/md2k_md5k/ || die
+	rm -r "${S}"/contrib/pscolor || die
+	rm -r "${S}"/contrib/uniprint || die
+	rm "${S}"/contrib/gdevgdi.c || die
+	rm "${S}"/contrib/gdevln03.c || die
+	rm "${S}"/contrib/gdevlx7.c || die
+	rm "${S}"/contrib/gdevmd2k.c || die
+	rm "${S}"/contrib/gdevop4w.c || die
+	rm "${S}"/contrib/gdevxes.c || die
+
+	if ! use gtk ; then
+		sed -e "s:\$(GSSOX)::" \
+			-e "s:.*\$(GSSOX_XENAME)$::" \
+			-i "${S}"/base/unix-dll.mak || die "sed failed"
+	fi
+
+	if use crosfonts; then
+		rm -rf "${S}/Resource/Font" || die
+		cat "${FILESDIR}/Fontmap.cros" >> "${S}/Resource/Init/Fontmap.GS" || die
+	fi
+
+	# Force the include dirs to a neutral location.
+	sed -e "/^ZLIBDIR=/s:=.*:=${T}:" \
+		-i "${S}"/configure.ac || die
+	# Some files depend on zlib.h directly.  Redirect them. #573248
+	# Also make sure to not define OPJ_STATIC to avoid linker errors due to
+	# hidden symbols (https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=203327#c1)
+	sed -e '/^zlib_h/s:=.*:=:' \
+		-e 's|-DOPJ_STATIC ||' \
+		-i "${S}"/base/lib.mak || die
+
+	# search path fix
+	# put LDFLAGS after BINDIR, bug #383447
+	sed -e "s:\$\(gsdatadir\)/lib:@datarootdir@/ghostscript/${PVM}/$(get_libdir):" \
+		-e "s:exdir=.*:exdir=@datarootdir@/doc/${PF}/examples:" \
+		-e "s:docdir=.*:docdir=@datarootdir@/doc/${PF}/html:" \
+		-e "s:GS_DOCDIR=.*:GS_DOCDIR=@datarootdir@/doc/${PF}/html:" \
+		-e 's:-L$(BINDIR):& $(LDFLAGS):g' \
+		-i "${S}"/Makefile.in "${S}"/base/*.mak || die "sed failed"
+
+	# remove incorrect symlink, bug 590384
+	rm ijs/ltmain.sh || die
+	eautoreconf
+
+	cd "${S}"/ijs || die
+	eautoreconf
+}
+
+src_configure() {
+	sanitizers-setup-env
+
+	local FONTPATH
+	for path in \
+		/usr/share/fonts/urw-fonts \
+		/usr/share/fonts/Type1 \
+		/usr/share/fonts
+	do
+		FONTPATH="$FONTPATH${FONTPATH:+:}${EPREFIX}$path"
+	done
+
+	tc-export_build_env BUILD_CC
+
+	# This list contains all ghostscript devices used by CUPS/PPD files.
+	# It was built basing on an output from platform_PrinterPpds autotest.
+	# See the readme.txt file in the autotest directory to learn how the list
+	# was created.
+	local devices=(
+		ap3250 bit bj10e bj200 bjc600 bjc800 bjc880j bjccolor cdj500
+		cdj550 cdnj500 cljet5c declj250 djet500 dnj650c epl2050 eplcolor
+		eps9high eps9mid epson epsonc hl1250 ibmpro imagen jetp3852 laserjet
+		lbp8 lips2p lips3 lips4 ljet2p ljet3 ljet4 ljetplus lp1800 lp1900
+		lp2200 lp2400 lp2500 lp2563 lp3000c lp7500 lp7700 lp7900 lp8000
+		lp8000c lp8100 lp8200c lp8300c lp8300f lp8400f lp8500c lp8600 lp8600f
+		lp8700 lp8800c lp8900 lp9000b lp9000c lp9100 lp9200b lp9200c lp9300
+		lp9400 lp9500c lp9600 lp9600s lp9800c lps4500 lps6500 lq850 lxm5700m
+		m8510 necp6 npdl oce9050 oki182 okiibm pdfwrite pcl3 picty180 pjxl300
+		ps2write pxlcolor pxlmono r4081 sj48 stcolor t4693d4 tek4696 uniprint
+		# The "cups" driver is added if and only if we are building with CUPS.
+		$(usev cups)
+	)
+
+	econf \
+		CUPSCONFIG="${EROOT}/usr/bin/${CHOST}-cups-config" \
+		CCAUX="${BUILD_CC}" \
+		CFLAGSAUX="${BUILD_CFLAGS}" \
+		LDFLAGSAUX="${BUILD_LDFLAGS}" \
+		--enable-dynamic \
+		--enable-freetype \
+		--enable-fontconfig \
+		--enable-openjpeg \
+		$(use_enable crosfonts compile-inits) \
+		--with-drivers="$(printf %s, "${devices[@]}")" \
+		--with-fontpath="$FONTPATH" \
+		--with-ijs \
+		--with-jbig2dec \
+		--with-libpaper \
+		--without-luratech \
+		--without-tesseract \
+		$(use_enable cups) \
+		$(use_enable dbus) \
+		$(use_enable gtk) \
+		$(use_with cups pdftoraster) \
+		$(use_with idn libidn) \
+		$(use_with tiff libtiff) \
+		$(use_with tiff system-libtiff) \
+		$(use_with X x)
+
+	cd "${S}/ijs" || die
+	econf \
+		--enable-shared \
+		$(use_enable static-libs static)
+}
+
+src_compile() {
+	emake -j8 so all
+
+	cd "${S}"/ijs || die
+	emake
+}
+
+src_install() {
+	emake DESTDIR="${D}" install-so install
+
+	# move gsc to gs, bug #343447
+	# gsc collides with gambit, bug #253064
+	mv -f "${ED}"/usr/bin/{gsc,gs} || die
+
+	cd "${S}/ijs" || die
+	emake DESTDIR="${D}" install
+
+	insinto /usr/share/ghostscript/${PVM}/Resource/Init
+
+	if ! use static-libs; then
+		find "${ED}" -name '*.la' -delete || die
+	fi
+
+	if ! use linguas_de; then
+		rm -r "${ED}"/usr/share/man/de || die
+	fi
+
+	# set environment variables
+	doenvd "${FILESDIR}"/02ghostscript
+}
diff --git a/brillo-base/libsparse/libsparse-0.0.1-r8.ebuild b/brillo-base/libsparse/libsparse-0.0.1-r8.ebuild
deleted file mode 100644
index 0da165d..0000000
--- a/brillo-base/libsparse/libsparse-0.0.1-r8.ebuild
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright 2014 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="7"
-
-CROS_WORKON_COMMIT="630e05b6af5f76bd7f063840e543186bde40ff0a"
-CROS_WORKON_TREE="42c814a9b71ac7619efa0d47b68cb55fef759095"
-CROS_WORKON_MANUAL_UPREV=1
-CROS_WORKON_INCREMENTAL_BUILD=1
-CROS_WORKON_LOCALNAME="platform/core"
-CROS_WORKON_PROJECT="platform/system/core"
-CROS_WORKON_REPO="https://android.googlesource.com"
-
-inherit cros-workon
-
-DESCRIPTION="Library and cli tools for Android sparse files"
-HOMEPAGE="https://android.googlesource.com/platform/system/core"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="*"
-
-RDEPEND="
-	sys-libs/zlib:=
-"
-DEPEND="${RDEPEND}"
-
-src_unpack() {
-	cros-workon_src_unpack
-	S+="/${PN}"
-}
-
-src_prepare() {
-	default
-	cp "${FILESDIR}/Makefile" "${S}" || die "Copying Makefile"
-}
-
-src_configure() {
-	export GENTOO_LIBDIR=$(get_libdir)
-	tc-export CC
-	default
-}
diff --git a/brillo-base/libsparse/libsparse-0.0.1-r9.ebuild b/brillo-base/libsparse/libsparse-0.0.1-r9.ebuild
new file mode 100644
index 0000000..fd90b77
--- /dev/null
+++ b/brillo-base/libsparse/libsparse-0.0.1-r9.ebuild
@@ -0,0 +1,45 @@
+# Copyright 2014 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+inherit cros-constants
+
+CROS_WORKON_COMMIT="630e05b6af5f76bd7f063840e543186bde40ff0a"
+CROS_WORKON_TREE="42c814a9b71ac7619efa0d47b68cb55fef759095"
+CROS_WORKON_MANUAL_UPREV=1
+CROS_WORKON_INCREMENTAL_BUILD=1
+CROS_WORKON_LOCALNAME="platform/core"
+CROS_WORKON_PROJECT="platform/system/core"
+CROS_WORKON_EGIT_BRANCH="master"
+CROS_WORKON_REPO="${CROS_GIT_AOSP_URL}"
+
+inherit cros-workon
+
+DESCRIPTION="Library and cli tools for Android sparse files"
+HOMEPAGE="https://android.googlesource.com/platform/system/core"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="*"
+
+RDEPEND="
+	sys-libs/zlib:=
+"
+DEPEND="${RDEPEND}"
+
+src_unpack() {
+	cros-workon_src_unpack
+	S+="/${PN}"
+}
+
+src_prepare() {
+	default
+	cp "${FILESDIR}/Makefile" "${S}" || die "Copying Makefile"
+}
+
+src_configure() {
+	export GENTOO_LIBDIR=$(get_libdir)
+	tc-export CC
+	default
+}
diff --git a/brillo-base/libsparse/libsparse-9999.ebuild b/brillo-base/libsparse/libsparse-9999.ebuild
index 940c72e..0e97430 100644
--- a/brillo-base/libsparse/libsparse-9999.ebuild
+++ b/brillo-base/libsparse/libsparse-9999.ebuild
@@ -3,11 +3,14 @@
 
 EAPI="7"
 
+inherit cros-constants
+
 CROS_WORKON_MANUAL_UPREV=1
 CROS_WORKON_INCREMENTAL_BUILD=1
 CROS_WORKON_LOCALNAME="platform/core"
 CROS_WORKON_PROJECT="platform/system/core"
-CROS_WORKON_REPO="https://android.googlesource.com"
+CROS_WORKON_EGIT_BRANCH="master"
+CROS_WORKON_REPO="${CROS_GIT_AOSP_URL}"
 
 inherit cros-workon
 
diff --git a/chromeos-base/android-installer/android-installer-0.0.1-r6.ebuild b/chromeos-base/android-installer/android-installer-0.0.1-r6.ebuild
deleted file mode 100644
index dc0f7af..0000000
--- a/chromeos-base/android-installer/android-installer-0.0.1-r6.ebuild
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright 2020 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2.
-
-EAPI=7
-
-CROS_WORKON_COMMIT="8d996397d3d660327d2123dca8efdeeeadd01711"
-CROS_WORKON_TREE="096e46695d63714714d945b5b9e8378beb18891c"
-CROS_WORKON_LOCALNAME="platform2"
-CROS_WORKON_PROJECT="chromiumos/platform2"
-CROS_WORKON_SUBTREE="arc/android-installer"
-
-PYTHON_COMPAT=(python3_{6,7,8})
-
-inherit cros-workon distutils-r1
-
-DESCRIPTION="Android Installer for Chrome OS"
-LICENSE="BSD-Google"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/HEAD/arc/android-installer/"
-SLOT="0"
-KEYWORDS="*"
-
-BDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
-
-distutils_enable_tests unittest
-
-src_test() {
-	distutils-r1_src_test
-}
-
-src_compile() {
-	S+="/${CROS_WORKON_SUBTREE}"
-	cd "${S}" || die "This should never happen"
-	distutils-r1_src_compile
-}
diff --git a/chromeos-base/android-installer/android-installer-9999.ebuild b/chromeos-base/android-installer/android-installer-9999.ebuild
deleted file mode 100644
index 45d1f5c..0000000
--- a/chromeos-base/android-installer/android-installer-9999.ebuild
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 2020 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2.
-
-EAPI=7
-
-CROS_WORKON_LOCALNAME="platform2"
-CROS_WORKON_PROJECT="chromiumos/platform2"
-CROS_WORKON_SUBTREE="arc/android-installer"
-
-PYTHON_COMPAT=(python3_{6,7,8})
-
-inherit cros-workon distutils-r1
-
-DESCRIPTION="Android Installer for Chrome OS"
-LICENSE="BSD-Google"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/HEAD/arc/android-installer/"
-SLOT="0"
-KEYWORDS="~*"
-
-BDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
-
-distutils_enable_tests unittest
-
-src_test() {
-	distutils-r1_src_test
-}
-
-src_compile() {
-	S+="/${CROS_WORKON_SUBTREE}"
-	cd "${S}" || die "This should never happen"
-	distutils-r1_src_compile
-}
diff --git a/chromeos-base/android-sdk/Manifest b/chromeos-base/android-sdk/Manifest
index 58d0d02..f33d7a6 100644
--- a/chromeos-base/android-sdk/Manifest
+++ b/chromeos-base/android-sdk/Manifest
@@ -1,2 +1,2 @@
+DIST android-sdk_6877874_linux-x86.zip 842904010 BLAKE2B 9de37ed4eb8c3e2284a1fda7b5ff997286453dd1a47d41341af14ef8cafa324e3ec7b38b2eb0758133bfda36131a19cfbc4d122fc056fca75e4007f279737462 SHA512 91f5fa1169f9351e6c0d7a5832c9908e55521ad007a12f67c212f1a70ddd4d4097c4c6f51f34b196bf45fd44e4c6d1a36a04322db69c7dfc03e21bf0b72aa774
 DIST sdk-repo-linux-platforms-4953408.zip 72718200 BLAKE2B 50fd48d633944e23e20df646b7bf3fa3e6cade8cb9fc380523be765844b2361e5c52bde93904b04658a5b339cc4e89ed7c5d6bdeead69b83194f3c8e5e0128db SHA512 856631fca64f76b4a0b9eb92fd5d8b26ee29205e9dccc3a5e7b01157d67276334470935401ff798f5aedce07f520be53bfd0e9faada3e63295a1e8b3e1419f8a
-DIST android-sdk_5303910_linux-x86.zip 815121172 BLAKE2B bf625dae798b08276dc0e3a39bc9fd36b38293a47e2dd2186e085710baea262c6684a993ca97319342227a9e682eb1f1c027f24b19eff24a43206959039df373 SHA512 9ba5ddfea5ca07d4df4d8dad052e9b2235d37d2b3e87dec8b9b911501e07cc932523734b225db0baab0c018cf060fd47f6b9a87cd90a04e41b176fc713ac55f0
diff --git a/chromeos-base/android-sdk/android-sdk-5303910-r4.ebuild b/chromeos-base/android-sdk/android-sdk-5303910-r4.ebuild
deleted file mode 120000
index 580e574..0000000
--- a/chromeos-base/android-sdk/android-sdk-5303910-r4.ebuild
+++ /dev/null
@@ -1 +0,0 @@
-android-sdk-5303910.ebuild
\ No newline at end of file
diff --git a/chromeos-base/android-sdk/android-sdk-5303910.ebuild b/chromeos-base/android-sdk/android-sdk-5303910.ebuild
deleted file mode 100644
index 55b369c..0000000
--- a/chromeos-base/android-sdk/android-sdk-5303910.ebuild
+++ /dev/null
@@ -1,84 +0,0 @@
-# Copyright 2020 Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DESCRIPTION="Android SDK"
-HOMEPAGE="http://developer.android.com"
-
-# NOTE: Due to possible licensing issues, only use AOSP SDK:
-# https://ci.android.com/builds/branches/aosp-sdk-release/grid?
-SRC_URI="https://ci.android.com/builds/submitted/${PV}/sdk/latest/android-sdk_${PV}_linux-x86.zip
-	https://ci.android.com/builds/submitted/4953408/sdk/latest/sdk-repo-linux-platforms-4953408.zip"
-
-LICENSE="
-	Apache-2.0
-	BSD
-	BSD-2
-	BSD-4
-	CPL-1.0
-	EPL-1.0
-	FTL
-	GPL-2
-	IJG
-	ISC
-	icu
-	LGPL-2
-	LGPL-2.1
-	libpng
-	MIT
-	MPL-1.1
-	openssl
-	SGI-B-2.0
-	UoI-NCSA
-	ZLIB
-	W3C
-	"
-SLOT="0"
-KEYWORDS="*"
-IUSE=""
-RESTRICT="strip"
-
-DEPEND=""
-# CTS P depends on Java 8 or 9. CTS R depends on Java 9 or later.
-# Include both JDK8 and JDK11 in the chroot.
-RDEPEND="
-	<=virtual/jdk-9
-	>=virtual/jdk-9
-	>=dev-java/ant-core-1.6.5
-	sys-libs/zlib"
-BDEPEND=""
-
-ANDROID_SDK_DIR="/opt/android-sdk"
-
-S="${WORKDIR}"
-
-src_install() {
-	# NOTE: The two downloaded zips use "android-Q" for their directories.
-	# It seems that they take the name of the latest Android SDK at the
-	# moment it was built, even if they were compiled from a different
-	# branch. See build.prop: notice conflict between SDK version and name:
-	# https://ci.android.com/builds/submitted/5303910/sdk/latest/view/build.prop
-
-	# Zips to be installed:
-	#  - Android SDK 28: both build-tools and platforms
-	#  - Android SDK 27: only platforms
-
-	# TODO(ricardoq): Rename "android-Q" to "android-28" (and not 29!)
-	insinto "${ANDROID_SDK_DIR}"
-	doins -r ${PN}_${PV}_linux-x86/platforms
-	insopts "-m0755"
-	doins -r ${PN}_${PV}_linux-x86/build-tools
-
-	# In addition to SDK P, some APKs need the older android-platform-27
-	# to compile correctly.
-	insinto "${ANDROID_SDK_DIR}/platforms"
-
-	# Rename directory to match correct version. Zipped directory has the
-	# wrong name.
-	# Also use numbers instead of letters to honor the convention used
-	# by Android Studio.
-	mv "${WORKDIR}/android-Q" "${WORKDIR}/android-27"
-
-	doins -r "android-27"
-}
diff --git a/chromeos-base/android-sdk/android-sdk-6877874-r1.ebuild b/chromeos-base/android-sdk/android-sdk-6877874-r1.ebuild
new file mode 120000
index 0000000..b8b151c
--- /dev/null
+++ b/chromeos-base/android-sdk/android-sdk-6877874-r1.ebuild
@@ -0,0 +1 @@
+android-sdk-6877874.ebuild
\ No newline at end of file
diff --git a/chromeos-base/android-sdk/android-sdk-6877874.ebuild b/chromeos-base/android-sdk/android-sdk-6877874.ebuild
new file mode 100644
index 0000000..630ec40
--- /dev/null
+++ b/chromeos-base/android-sdk/android-sdk-6877874.ebuild
@@ -0,0 +1,65 @@
+# Copyright 2020 Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="Android SDK"
+HOMEPAGE="http://developer.android.com"
+
+# NOTE: Due to possible licensing issues, only use AOSP SDK:
+# https://ci.android.com/builds/branches/aosp-sdk-release/grid?
+SRC_URI="https://ci.android.com/builds/submitted/${PV}/sdk/latest/android-sdk_${PV}_linux-x86.zip
+	https://ci.android.com/builds/submitted/4953408/sdk/latest/sdk-repo-linux-platforms-4953408.zip"
+
+LICENSE="
+	AOSP-SDK
+	"
+SLOT="0"
+KEYWORDS="*"
+IUSE=""
+RESTRICT="strip"
+
+DEPEND=""
+# CTS P depends on Java 8 or 9. CTS R depends on Java 9 or later.
+# Include both JDK8 and JDK11 in the chroot.
+RDEPEND="
+	<=virtual/jdk-9
+	>=virtual/jdk-9
+	>=dev-java/ant-core-1.6.5
+	sys-libs/zlib"
+BDEPEND=""
+
+ANDROID_SDK_DIR="/opt/android-sdk"
+
+S="${WORKDIR}"
+
+src_install() {
+	# NOTE: The two downloaded zips use "android-S" for their directories.
+	# It seems that they take the name of the latest Android SDK at the
+	# moment it was built, even if they were compiled from a different
+	# branch. See build.prop: notice conflict between SDK version and name:
+	# https://ci.android.com/builds/submitted/5303910/sdk/latest/view/build.prop
+
+	# Zips to be installed:
+	#  - Android SDK 30: both build-tools and platforms
+	#  - Android SDK 27: only platforms
+
+	# License file for platforms and build-tools is in licenses/AOSP-SDK
+	# TODO(ricardoq): Rename "android-S" to "android-30"
+	insinto "${ANDROID_SDK_DIR}"
+	doins -r ${PN}_${PV}_linux-x86/platforms
+	insopts "-m0755"
+	doins -r ${PN}_${PV}_linux-x86/build-tools
+
+	# In addition to SDK P, some APKs need the older android-platform-27
+	# to compile correctly.
+	insinto "${ANDROID_SDK_DIR}/platforms"
+
+	# Rename directory to match correct version. Zipped directory has the
+	# wrong name.
+	# Also use numbers instead of letters to honor the convention used
+	# by Android Studio.
+	mv "${WORKDIR}/android-Q" "${WORKDIR}/android-27"
+
+	doins -r "android-27"
+}
diff --git a/chromeos-base/android-sdk/conbine-notice.sh b/chromeos-base/android-sdk/conbine-notice.sh
new file mode 100755
index 0000000..9c7f1ef
--- /dev/null
+++ b/chromeos-base/android-sdk/conbine-notice.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+
+# Copyright 2021 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# USAGE
+# Download android-sdk from ab/aosp-sdk-release and expand.
+# First Argument: path to the expanded android-sdk
+# Second Argument: path to the lisence file ex) licenses/AOSP-SDK
+
+source_dir=$1
+target_file=$2
+
+set -o pipefail
+
+# Combine license files in the directories which we install.
+find "${source_dir}"/platforms/ "${source_dir}"/build-tools/ '(' -name 'NOTICE*' -o -name '*LICENSE*' ')' -print0 | \
+  xargs -0 sha256sum | \
+  sort | \
+  uniq -w 64 | \
+  cut -b67- | \
+  sort -z | \
+  xargs -d'\n' cat > "${target_file}"
diff --git a/chromeos-base/aosp-frameworks-ml-nn-vts/OWNERS b/chromeos-base/aosp-frameworks-ml-nn-vts/OWNERS
new file mode 100644
index 0000000..6ceece7
--- /dev/null
+++ b/chromeos-base/aosp-frameworks-ml-nn-vts/OWNERS
@@ -0,0 +1,2 @@
+jmpollock@google.com
+slangley@google.com
diff --git a/chromeos-base/aosp-frameworks-ml-nn-vts/aosp-frameworks-ml-nn-vts-0.0.1-r27.ebuild b/chromeos-base/aosp-frameworks-ml-nn-vts/aosp-frameworks-ml-nn-vts-0.0.1-r27.ebuild
new file mode 100644
index 0000000..dcafc82
--- /dev/null
+++ b/chromeos-base/aosp-frameworks-ml-nn-vts/aosp-frameworks-ml-nn-vts-0.0.1-r27.ebuild
@@ -0,0 +1,74 @@
+# Copyright 2020 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CROS_WORKON_COMMIT=("5dfd9e4dfe21b6eac6ed7d243bbdaa5e8864715f" "707d4b9ddbbec5c5d0efe448b4a98d1bf39d3210" "fd0a01eb09dcc34f1a42e5c0f6ebf0f384fd9abd")
+CROS_WORKON_TREE=("791c6808b4f4f5f1c484108d66ff958d65f8f1e3" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb" "4c0cc8d00d5d746519a55a17088ff6173845837c" "7a08574830b90bb538e281ba8c2240d2826fefb9")
+inherit cros-constants
+
+CROS_WORKON_PROJECT=(
+	"chromiumos/platform2"
+	"aosp/platform/frameworks/ml"
+	"aosp/platform/hardware/interfaces/neuralnetworks"
+)
+CROS_WORKON_REPO=(
+	"${CROS_GIT_HOST_URL}"
+	"${CROS_GIT_HOST_URL}"
+	"${CROS_GIT_HOST_URL}"
+)
+CROS_WORKON_EGIT_BRANCH=(
+	"main"
+	"master"
+	"master"
+)
+CROS_WORKON_LOCALNAME=(
+	"platform2"
+	"aosp/frameworks/ml"
+	"aosp/hardware/interfaces/neuralnetworks"
+)
+CROS_WORKON_DESTDIR=(
+	"${S}/platform2"
+	"${S}/platform2/aosp/frameworks/ml"
+	"${S}/platform2/aosp/hardware/interfaces/neuralnetworks"
+)
+CROS_WORKON_SUBTREE=(
+	"common-mk .gn"
+	"nn"
+	""
+)
+
+PLATFORM_SUBDIR="aosp/frameworks/ml/nn/chromeos/tests"
+
+inherit cros-workon platform flag-o-matic
+
+DESCRIPTION="HAL / Driver Vendor and Compatability Test Tools for NNAPI"
+HOMEPAGE="https://developer.android.com/ndk/guides/neuralnetworks"
+
+LICENSE="BSD-Google Apache-2.0"
+KEYWORDS="*"
+
+RDEPEND="
+	chromeos-base/aosp-frameworks-ml-nn:=
+"
+
+DEPEND="
+	${RDEPEND}
+"
+
+src_configure() {
+	if use x86 || use amd64; then
+		append-cppflags "-D_Float16=__fp16"
+		append-cxxflags "-Xclang -fnative-half-type"
+		append-cxxflags "-Xclang -fallow-half-arguments-and-returns"
+	fi
+	platform_src_configure
+}
+
+src_install() {
+	dobin "${OUT}/cros_nnapi_vts_1_0"
+	dobin "${OUT}/cros_nnapi_vts_1_1"
+	dobin "${OUT}/cros_nnapi_vts_1_2"
+	dobin "${OUT}/cros_nnapi_vts_1_3"
+	dobin "${OUT}/cros_nnapi_cts"
+}
diff --git a/chromeos-base/aosp-frameworks-ml-nn-vts/aosp-frameworks-ml-nn-vts-9999.ebuild b/chromeos-base/aosp-frameworks-ml-nn-vts/aosp-frameworks-ml-nn-vts-9999.ebuild
new file mode 100644
index 0000000..2d7848e9
--- /dev/null
+++ b/chromeos-base/aosp-frameworks-ml-nn-vts/aosp-frameworks-ml-nn-vts-9999.ebuild
@@ -0,0 +1,72 @@
+# Copyright 2020 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cros-constants
+
+CROS_WORKON_PROJECT=(
+	"chromiumos/platform2"
+	"aosp/platform/frameworks/ml"
+	"aosp/platform/hardware/interfaces/neuralnetworks"
+)
+CROS_WORKON_REPO=(
+	"${CROS_GIT_HOST_URL}"
+	"${CROS_GIT_HOST_URL}"
+	"${CROS_GIT_HOST_URL}"
+)
+CROS_WORKON_EGIT_BRANCH=(
+	"main"
+	"master"
+	"master"
+)
+CROS_WORKON_LOCALNAME=(
+	"platform2"
+	"aosp/frameworks/ml"
+	"aosp/hardware/interfaces/neuralnetworks"
+)
+CROS_WORKON_DESTDIR=(
+	"${S}/platform2"
+	"${S}/platform2/aosp/frameworks/ml"
+	"${S}/platform2/aosp/hardware/interfaces/neuralnetworks"
+)
+CROS_WORKON_SUBTREE=(
+	"common-mk .gn"
+	"nn"
+	""
+)
+
+PLATFORM_SUBDIR="aosp/frameworks/ml/nn/chromeos/tests"
+
+inherit cros-workon platform flag-o-matic
+
+DESCRIPTION="HAL / Driver Vendor and Compatability Test Tools for NNAPI"
+HOMEPAGE="https://developer.android.com/ndk/guides/neuralnetworks"
+
+LICENSE="BSD-Google Apache-2.0"
+KEYWORDS="~*"
+
+RDEPEND="
+	chromeos-base/aosp-frameworks-ml-nn:=
+"
+
+DEPEND="
+	${RDEPEND}
+"
+
+src_configure() {
+	if use x86 || use amd64; then
+		append-cppflags "-D_Float16=__fp16"
+		append-cxxflags "-Xclang -fnative-half-type"
+		append-cxxflags "-Xclang -fallow-half-arguments-and-returns"
+	fi
+	platform_src_configure
+}
+
+src_install() {
+	dobin "${OUT}/cros_nnapi_vts_1_0"
+	dobin "${OUT}/cros_nnapi_vts_1_1"
+	dobin "${OUT}/cros_nnapi_vts_1_2"
+	dobin "${OUT}/cros_nnapi_vts_1_3"
+	dobin "${OUT}/cros_nnapi_cts"
+}
diff --git a/chromeos-base/aosp-frameworks-ml-nn/aosp-frameworks-ml-nn-0.0.1-r158.ebuild b/chromeos-base/aosp-frameworks-ml-nn/aosp-frameworks-ml-nn-0.0.1-r158.ebuild
deleted file mode 100644
index be41405..0000000
--- a/chromeos-base/aosp-frameworks-ml-nn/aosp-frameworks-ml-nn-0.0.1-r158.ebuild
+++ /dev/null
@@ -1,192 +0,0 @@
-# Copyright 2020 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CROS_WORKON_COMMIT=("9ebed9f9a378f5e35dc85a70cc07504e337be5cb" "258763b7673d899b87820166a3a9543ad414d428" "fd0a01eb09dcc34f1a42e5c0f6ebf0f384fd9abd")
-CROS_WORKON_TREE=("52a8a8b6d3bbca5e90d4761aa308a5541d52b1bb" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb" "fa7b54dd4d1d381945bb11e0d349aedf3e178cde" "7a08574830b90bb538e281ba8c2240d2826fefb9")
-inherit cros-constants
-
-CROS_WORKON_PROJECT=(
-	"chromiumos/platform2"
-	"aosp/platform/frameworks/ml"
-	"aosp/platform/hardware/interfaces/neuralnetworks"
-)
-CROS_WORKON_REPO=(
-	"${CROS_GIT_HOST_URL}"
-	"${CROS_GIT_HOST_URL}"
-	"${CROS_GIT_HOST_URL}"
-)
-CROS_WORKON_LOCALNAME=(
-	"platform2"
-	"aosp/frameworks/ml"
-	"aosp/hardware/interfaces/neuralnetworks"
-)
-CROS_WORKON_DESTDIR=(
-	"${S}/platform2"
-	"${S}/platform2/aosp/frameworks/ml"
-	"${S}/platform2/aosp/hardware/interfaces/neuralnetworks"
-)
-CROS_WORKON_SUBTREE=(
-	"common-mk .gn"
-	"nn"
-	""
-)
-
-PLATFORM_SUBDIR="aosp/frameworks/ml/nn"
-
-inherit cros-workon platform flag-o-matic
-
-DESCRIPTION="Chrome OS port of the Android Neural Network API"
-HOMEPAGE="https://developer.android.com/ndk/guides/neuralnetworks"
-
-LICENSE="BSD-Google Apache-2.0"
-KEYWORDS="*"
-IUSE="cpu_flags_x86_avx2 vendor-nnhal minimal-driver nnapi_driver_tests"
-
-RDEPEND="
-	chromeos-base/nnapi:=
-	dev-libs/openssl:=
-	sci-libs/tensorflow:=
-"
-
-DEPEND="
-	${RDEPEND}
-	dev-libs/libtextclassifier
-	>=dev-cpp/eigen-3
-"
-
-cros-debug-add-NDEBUG() {
-	# Don't set NDEBUG, overriding from cros-debug eclass.
-	# If this is set, tests will fail and is also explicitly checked in
-	# runtime/test/RequireDebug.cpp
-	use cros-debug || echo "Not doing append-cppflags -NDEBUG";
-}
-
-src_configure() {
-	if use x86 || use amd64; then
-		append-cppflags "-D_Float16=__fp16"
-		append-cxxflags "-Xclang -fnative-half-type"
-		append-cxxflags "-Xclang -fallow-half-arguments-and-returns"
-	fi
-	if use minimal-driver; then
-		append-cppflags "-DNNAPI_USE_MINIMAL_DRIVER"
-	fi
-	platform_src_configure
-}
-
-platform_pkg_test() {
-	local tests=(
-		chromeos common driver_cache runtime runtime_generated
-	)
-
-	# When running in qemu, these tests freeze the emulator when hitting
-	# EventFlag::wake from libfmq. The error printed is:
-	# Error in event flag wake attempt: Function not implemented
-	# This is a known issue, see:
-	# https://chromium.googlesource.com/chromiumos/docs/+/master/testing/running_unit_tests.md#caveats
-	# TODO(http://crbug.com/1117470): tracking bug for qemu fix
-	local qemu_gtest_excl_filter="-"
-	qemu_gtest_excl_filter+="Flavor/ExecutionTest10.Wait/*:"
-	qemu_gtest_excl_filter+="Flavor/ExecutionTest11.Wait/*:"
-	qemu_gtest_excl_filter+="Flavor/ExecutionTest12.Wait/*:"
-	qemu_gtest_excl_filter+="Flavor/ExecutionTest13.Wait/*:"
-	qemu_gtest_excl_filter+="IntrospectionFlavor/ExecutionTest13.Wait/*:"
-	qemu_gtest_excl_filter+="Unfenced/TimingTest.Test/12:"
-	qemu_gtest_excl_filter+="Unfenced/TimingTest.Test/15:"
-	qemu_gtest_excl_filter+="Unfenced/TimingTest.Test/18:"
-	qemu_gtest_excl_filter+="Unfenced/TimingTest.Test/21:"
-	qemu_gtest_excl_filter+="Unfenced/TimingTest.Test/24:"
-	qemu_gtest_excl_filter+="ValidationTestBurst.BurstComputeBadCompilation:"
-	qemu_gtest_excl_filter+="ValidationTestBurst.BurstComputeConcurrent:"
-	qemu_gtest_excl_filter+="ValidationTestBurst.BurstComputeDifferentCompilations:"
-	qemu_gtest_excl_filter+="ValidationTestBurst.BurstComputeNull:"
-	qemu_gtest_excl_filter+="ValidationTestBurst.FreeBurstBeforeMemory:"
-	qemu_gtest_excl_filter+="ValidationTestBurst.FreeMemoryBeforeBurst:"
-	qemu_gtest_excl_filter+="ValidationTestCompilation.ExecutionUsability:"
-	qemu_gtest_excl_filter+="ValidationTestCompilationForDevices_1.ExecutionTiming:"
-	qemu_gtest_excl_filter+="ValidationTestCompilationForDevices_1.ExecutionSetTimeout:"
-	qemu_gtest_excl_filter+="ValidationTestCompilationForDevices_1.ExecutionSetTimeoutMaximum:"
-
-
-	local gtest_excl_filter="-"
-	if use asan; then
-		# Some tests do not correctly clean up the Execution object and it is
-		# left 'in-flight', which gets ignored by ANeuralNetworksExecution_free.
-		# See b/161844605.
-		# Look for 'passed an in-flight ANeuralNetworksExecution' in log output
-		gtest_excl_filter+="Fenced/TimingTest.Test/2:"
-		gtest_excl_filter+="Fenced/TimingTest.Test/19:"
-		gtest_excl_filter+="Flavor/ExecutionTest10.Wait/1:"
-		gtest_excl_filter+="Flavor/ExecutionTest10.Wait/2:"
-		gtest_excl_filter+="Flavor/ExecutionTest10.Wait/4:"
-		gtest_excl_filter+="Flavor/ExecutionTest11.Wait/1:"
-		gtest_excl_filter+="Flavor/ExecutionTest11.Wait/2:"
-		gtest_excl_filter+="Flavor/ExecutionTest11.Wait/4:"
-		gtest_excl_filter+="Flavor/ExecutionTest12.Wait/1:"
-		gtest_excl_filter+="Flavor/ExecutionTest12.Wait/2:"
-		gtest_excl_filter+="Flavor/ExecutionTest12.Wait/4:"
-		gtest_excl_filter+="Flavor/ExecutionTest13.Wait/1:"
-		gtest_excl_filter+="Flavor/ExecutionTest13.Wait/2:"
-		gtest_excl_filter+="Flavor/ExecutionTest13.Wait/4:"
-		gtest_excl_filter+="IntrospectionFlavor/ExecutionTest13.Wait/1:"
-		gtest_excl_filter+="IntrospectionFlavor/ExecutionTest13.Wait/2:"
-		gtest_excl_filter+="IntrospectionFlavor/ExecutionTest13.Wait/4:"
-
-		# TODO(b/163081732): Fix tests that freeze in asan (jmpollock)
-		# Now we have a situation where these tests are hanging in asan, but I can't
-		# reproduce this locally (Flavor/ExecutionTest13.Wait/0).
-		# The duplication to the above is intentional, as fixing this issue will not
-		# fix the one above.
-		gtest_excl_filter+="Flavor/ExecutionTest10.Wait/*:"
-		gtest_excl_filter+="Flavor/ExecutionTest11.Wait/*:"
-		gtest_excl_filter+="Flavor/ExecutionTest12.Wait/*:"
-		gtest_excl_filter+="Flavor/ExecutionTest13.Wait/*:"
-		gtest_excl_filter+="IntrospectionFlavor/ExecutionTest13.Wait/*:"
-
-		# This is due to a leak caused when copying the memory pools
-		# into the request object in this test. lsan_suppressions doesn't
-		# work due to the lack of /usr/bin/llvm-symbolizer, so just exclude.
-		gtest_excl_filter+="ComplianceTest.DeviceMemory:"
-		gtest_excl_filter+="ValidateRequestTest.ScalarOutput:"
-		gtest_excl_filter+="ValidateRequestTest.UnknownOutputRank:"
-
-		# Disable asan container overflow checks that are coming from gtest,
-		# not our code. Strangely this only started happening once we made
-		# common a shared library.
-		# See: https://crbug.com/1067977, https://crbug.com/1069722
-		# https://github.com/google/sanitizers/wiki/AddressSanitizerContainerOverflow#false-positives
-		export ASAN_OPTIONS+=":detect_container_overflow=0:"
-	fi
-
-	local test_target
-	for test_target in "${tests[@]}"; do
-		platform_test "run" "${OUT}/${test_target}_testrunner" "0" "${gtest_excl_filter}" "${qemu_gtest_excl_filter}"
-	done
-}
-
-src_install() {
-	einfo "Installing runtime & common Headers."
-	insinto /usr/include/aosp/frameworks/ml/nn/common
-	doins -r "${S}"/common/include
-	insinto /usr/include/aosp/frameworks/ml/nn/runtime
-	doins -r "${S}"/runtime/include
-
-	einfo "Installing libs."
-	dolib.so "${OUT}/lib/libneuralnetworks.so"
-	dolib.so "${OUT}/lib/libnn-common.so"
-
-	if ! use vendor-nnhal ; then
-		einfo "Installing reference vendor hal."
-		dolib.so "${OUT}/lib/libvendor-nn-hal.so"
-	fi
-
-	if use nnapi_driver_tests; then
-		einfo "Installing hal driver tests."
-		dobin "${OUT}/cros_nnapi_vts_1_0"
-		dobin "${OUT}/cros_nnapi_vts_1_1"
-		dobin "${OUT}/cros_nnapi_vts_1_2"
-		dobin "${OUT}/cros_nnapi_vts_1_3"
-		dobin "${OUT}/cros_nnapi_cts"
-	fi
-}
diff --git a/chromeos-base/aosp-frameworks-ml-nn/aosp-frameworks-ml-nn-0.0.1-r199.ebuild b/chromeos-base/aosp-frameworks-ml-nn/aosp-frameworks-ml-nn-0.0.1-r199.ebuild
new file mode 100644
index 0000000..a246db3
--- /dev/null
+++ b/chromeos-base/aosp-frameworks-ml-nn/aosp-frameworks-ml-nn-0.0.1-r199.ebuild
@@ -0,0 +1,174 @@
+# Copyright 2020 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CROS_WORKON_COMMIT=("5dfd9e4dfe21b6eac6ed7d243bbdaa5e8864715f" "707d4b9ddbbec5c5d0efe448b4a98d1bf39d3210" "fd0a01eb09dcc34f1a42e5c0f6ebf0f384fd9abd")
+CROS_WORKON_TREE=("791c6808b4f4f5f1c484108d66ff958d65f8f1e3" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb" "4c0cc8d00d5d746519a55a17088ff6173845837c" "7a08574830b90bb538e281ba8c2240d2826fefb9")
+inherit cros-constants
+
+CROS_WORKON_PROJECT=(
+	"chromiumos/platform2"
+	"aosp/platform/frameworks/ml"
+	"aosp/platform/hardware/interfaces/neuralnetworks"
+)
+CROS_WORKON_REPO=(
+	"${CROS_GIT_HOST_URL}"
+	"${CROS_GIT_HOST_URL}"
+	"${CROS_GIT_HOST_URL}"
+)
+CROS_WORKON_LOCALNAME=(
+	"platform2"
+	"aosp/frameworks/ml"
+	"aosp/hardware/interfaces/neuralnetworks"
+)
+CROS_WORKON_DESTDIR=(
+	"${S}/platform2"
+	"${S}/platform2/aosp/frameworks/ml"
+	"${S}/platform2/aosp/hardware/interfaces/neuralnetworks"
+)
+CROS_WORKON_SUBTREE=(
+	"common-mk .gn"
+	"nn"
+	""
+)
+
+PLATFORM_SUBDIR="aosp/frameworks/ml/nn"
+
+inherit cros-workon platform flag-o-matic
+
+DESCRIPTION="Chrome OS port of the Android Neural Network API"
+HOMEPAGE="https://developer.android.com/ndk/guides/neuralnetworks"
+
+LICENSE="BSD-Google Apache-2.0"
+KEYWORDS="*"
+IUSE="cpu_flags_x86_avx2 vendor-nnhal minimal-driver"
+
+RDEPEND="
+	chromeos-base/nnapi:=
+	dev-libs/openssl:=
+	sci-libs/tensorflow:=
+"
+
+DEPEND="
+	${RDEPEND}
+	dev-libs/libtextclassifier
+	>=dev-cpp/eigen-3
+"
+
+src_configure() {
+	if use x86 || use amd64; then
+		append-cppflags "-D_Float16=__fp16"
+		append-cxxflags "-Xclang -fnative-half-type"
+		append-cxxflags "-Xclang -fallow-half-arguments-and-returns"
+	fi
+	if use minimal-driver; then
+		append-cppflags "-DNNAPI_USE_MINIMAL_DRIVER"
+	fi
+	platform_src_configure
+}
+
+platform_pkg_test() {
+	local tests=(
+		chromeos common runtime runtime_generated
+	)
+	local gtest_excl_filter="-"
+	local qemu_gtest_excl_filter="-"
+
+	# These tests fail with Tensorflow 2.5.0. Don't want to block
+	# the uprev on that, since nothing in production is using this
+	# package yet. Tracking this test failure in following bug.
+	# TODO: b/189803299
+	gtest_excl_filter+="TestGenerated/*.Test/svdf_bias_present*:"
+	qemu_gtest_excl_filter+="TestGenerated/*.Test/svdf_bias_present*:"
+
+	# When running in qemu, these tests freeze the emulator when hitting
+	# EventFlag::wake from libfmq. The error printed is:
+	# Error in event flag wake attempt: Function not implemented
+	# This is a known issue, see:
+	# https://chromium.googlesource.com/chromiumos/docs/+/master/testing/running_unit_tests.md#caveats
+	# TODO(http://crbug.com/1117470): tracking bug for qemu fix
+	qemu_gtest_excl_filter+="Flavor/ExecutionTest10.Wait/*:"
+	qemu_gtest_excl_filter+="Flavor/ExecutionTest11.Wait/*:"
+	qemu_gtest_excl_filter+="Flavor/ExecutionTest12.Wait/*:"
+	qemu_gtest_excl_filter+="Flavor/ExecutionTest13.Wait/*:"
+	qemu_gtest_excl_filter+="IntrospectionFlavor/ExecutionTest13.Wait/*:"
+	qemu_gtest_excl_filter+="Unfenced/TimingTest.Test/12:"
+	qemu_gtest_excl_filter+="Unfenced/TimingTest.Test/15:"
+	qemu_gtest_excl_filter+="Unfenced/TimingTest.Test/18:"
+	qemu_gtest_excl_filter+="Unfenced/TimingTest.Test/21:"
+	qemu_gtest_excl_filter+="Unfenced/TimingTest.Test/24:"
+	qemu_gtest_excl_filter+="ValidationTestBurst.BurstComputeBadCompilation:"
+	qemu_gtest_excl_filter+="ValidationTestBurst.BurstComputeConcurrent:"
+	qemu_gtest_excl_filter+="ValidationTestBurst.BurstComputeDifferentCompilations:"
+	qemu_gtest_excl_filter+="ValidationTestBurst.BurstComputeNull:"
+	qemu_gtest_excl_filter+="ValidationTestBurst.FreeBurstBeforeMemory:"
+	qemu_gtest_excl_filter+="ValidationTestBurst.FreeMemoryBeforeBurst:"
+	qemu_gtest_excl_filter+="ValidationTestCompilation.ExecutionUsability:"
+	qemu_gtest_excl_filter+="ValidationTestCompilationForDevices_1.ExecutionTiming:"
+	qemu_gtest_excl_filter+="ValidationTestCompilationForDevices_1.ExecutionSetTimeout:"
+	qemu_gtest_excl_filter+="ValidationTestCompilationForDevices_1.ExecutionSetTimeoutMaximum:"
+
+	if use asan; then
+		# Some tests do not correctly clean up the Execution object and it is
+		# left 'in-flight', which gets ignored by ANeuralNetworksExecution_free.
+		# See b/161844605.
+		# Look for 'passed an in-flight ANeuralNetworksExecution' in log output
+		gtest_excl_filter+="Fenced/TimingTest.Test/2:"
+		gtest_excl_filter+="Fenced/TimingTest.Test/19:"
+		gtest_excl_filter+="Flavor/ExecutionTest10.Wait/1:"
+		gtest_excl_filter+="Flavor/ExecutionTest10.Wait/2:"
+		gtest_excl_filter+="Flavor/ExecutionTest10.Wait/4:"
+		gtest_excl_filter+="Flavor/ExecutionTest11.Wait/1:"
+		gtest_excl_filter+="Flavor/ExecutionTest11.Wait/2:"
+		gtest_excl_filter+="Flavor/ExecutionTest11.Wait/4:"
+		gtest_excl_filter+="Flavor/ExecutionTest12.Wait/1:"
+		gtest_excl_filter+="Flavor/ExecutionTest12.Wait/2:"
+		gtest_excl_filter+="Flavor/ExecutionTest12.Wait/4:"
+		gtest_excl_filter+="Flavor/ExecutionTest13.Wait/1:"
+		gtest_excl_filter+="Flavor/ExecutionTest13.Wait/2:"
+		gtest_excl_filter+="Flavor/ExecutionTest13.Wait/4:"
+		gtest_excl_filter+="IntrospectionFlavor/ExecutionTest13.Wait/1:"
+		gtest_excl_filter+="IntrospectionFlavor/ExecutionTest13.Wait/2:"
+		gtest_excl_filter+="IntrospectionFlavor/ExecutionTest13.Wait/4:"
+
+		# This is due to a leak caused when copying the memory pools
+		# into the request object in this test. lsan_suppressions doesn't
+		# work due to the lack of /usr/bin/llvm-symbolizer, so just exclude.
+		gtest_excl_filter+="ComplianceTest.DeviceMemory:"
+		gtest_excl_filter+="ValidateRequestTest.ScalarOutput:"
+		gtest_excl_filter+="ValidateRequestTest.UnknownOutputRank:"
+
+		# Disable asan container overflow checks that are coming from gtest,
+		# not our code. Strangely this only started happening once we made
+		# common a shared library.
+		# See: https://crbug.com/1067977, https://crbug.com/1069722
+		# https://github.com/google/sanitizers/wiki/AddressSanitizerContainerOverflow#false-positives
+		export ASAN_OPTIONS+=":detect_container_overflow=0:"
+	fi
+
+	local test_target
+	for test_target in "${tests[@]}"; do
+		platform_test "run" "${OUT}/${test_target}_testrunner" "0" "${gtest_excl_filter}" "${qemu_gtest_excl_filter}"
+	done
+}
+
+src_install() {
+	einfo "Installing runtime & common Headers."
+	insinto /usr/include/aosp/frameworks/ml/nn/common
+	doins -r "${S}"/common/include
+	insinto /usr/include/aosp/frameworks/ml/nn/runtime
+	doins -r "${S}"/runtime/include
+	insinto /usr/include/aosp/frameworks/ml/nn/driver/cache
+	doins "${S}"/driver/cache/nnCache/nnCache.h
+	doins "${S}"/driver/cache/BlobCache/BlobCache.h
+
+	einfo "Installing libs."
+	dolib.so "${OUT}/lib/libneuralnetworks.so"
+	dolib.so "${OUT}/lib/libnn-common.so"
+
+	if ! use vendor-nnhal ; then
+		einfo "Installing reference vendor hal."
+		dolib.so "${OUT}/lib/libvendor-nn-hal.so"
+	fi
+}
diff --git a/chromeos-base/aosp-frameworks-ml-nn/aosp-frameworks-ml-nn-9999.ebuild b/chromeos-base/aosp-frameworks-ml-nn/aosp-frameworks-ml-nn-9999.ebuild
index 1734780..c5b22c8 100644
--- a/chromeos-base/aosp-frameworks-ml-nn/aosp-frameworks-ml-nn-9999.ebuild
+++ b/chromeos-base/aosp-frameworks-ml-nn/aosp-frameworks-ml-nn-9999.ebuild
@@ -40,7 +40,7 @@
 
 LICENSE="BSD-Google Apache-2.0"
 KEYWORDS="~*"
-IUSE="cpu_flags_x86_avx2 vendor-nnhal minimal-driver nnapi_driver_tests"
+IUSE="cpu_flags_x86_avx2 vendor-nnhal minimal-driver"
 
 RDEPEND="
 	chromeos-base/nnapi:=
@@ -54,13 +54,6 @@
 	>=dev-cpp/eigen-3
 "
 
-cros-debug-add-NDEBUG() {
-	# Don't set NDEBUG, overriding from cros-debug eclass.
-	# If this is set, tests will fail and is also explicitly checked in
-	# runtime/test/RequireDebug.cpp
-	use cros-debug || echo "Not doing append-cppflags -NDEBUG";
-}
-
 src_configure() {
 	if use x86 || use amd64; then
 		append-cppflags "-D_Float16=__fp16"
@@ -75,8 +68,17 @@
 
 platform_pkg_test() {
 	local tests=(
-		chromeos common driver_cache runtime runtime_generated
+		chromeos common runtime runtime_generated
 	)
+	local gtest_excl_filter="-"
+	local qemu_gtest_excl_filter="-"
+
+	# These tests fail with Tensorflow 2.5.0. Don't want to block
+	# the uprev on that, since nothing in production is using this
+	# package yet. Tracking this test failure in following bug.
+	# TODO: b/189803299
+	gtest_excl_filter+="TestGenerated/*.Test/svdf_bias_present*:"
+	qemu_gtest_excl_filter+="TestGenerated/*.Test/svdf_bias_present*:"
 
 	# When running in qemu, these tests freeze the emulator when hitting
 	# EventFlag::wake from libfmq. The error printed is:
@@ -84,7 +86,6 @@
 	# This is a known issue, see:
 	# https://chromium.googlesource.com/chromiumos/docs/+/master/testing/running_unit_tests.md#caveats
 	# TODO(http://crbug.com/1117470): tracking bug for qemu fix
-	local qemu_gtest_excl_filter="-"
 	qemu_gtest_excl_filter+="Flavor/ExecutionTest10.Wait/*:"
 	qemu_gtest_excl_filter+="Flavor/ExecutionTest11.Wait/*:"
 	qemu_gtest_excl_filter+="Flavor/ExecutionTest12.Wait/*:"
@@ -106,8 +107,6 @@
 	qemu_gtest_excl_filter+="ValidationTestCompilationForDevices_1.ExecutionSetTimeout:"
 	qemu_gtest_excl_filter+="ValidationTestCompilationForDevices_1.ExecutionSetTimeoutMaximum:"
 
-
-	local gtest_excl_filter="-"
 	if use asan; then
 		# Some tests do not correctly clean up the Execution object and it is
 		# left 'in-flight', which gets ignored by ANeuralNetworksExecution_free.
@@ -131,17 +130,6 @@
 		gtest_excl_filter+="IntrospectionFlavor/ExecutionTest13.Wait/2:"
 		gtest_excl_filter+="IntrospectionFlavor/ExecutionTest13.Wait/4:"
 
-		# TODO(b/163081732): Fix tests that freeze in asan (jmpollock)
-		# Now we have a situation where these tests are hanging in asan, but I can't
-		# reproduce this locally (Flavor/ExecutionTest13.Wait/0).
-		# The duplication to the above is intentional, as fixing this issue will not
-		# fix the one above.
-		gtest_excl_filter+="Flavor/ExecutionTest10.Wait/*:"
-		gtest_excl_filter+="Flavor/ExecutionTest11.Wait/*:"
-		gtest_excl_filter+="Flavor/ExecutionTest12.Wait/*:"
-		gtest_excl_filter+="Flavor/ExecutionTest13.Wait/*:"
-		gtest_excl_filter+="IntrospectionFlavor/ExecutionTest13.Wait/*:"
-
 		# This is due to a leak caused when copying the memory pools
 		# into the request object in this test. lsan_suppressions doesn't
 		# work due to the lack of /usr/bin/llvm-symbolizer, so just exclude.
@@ -169,6 +157,9 @@
 	doins -r "${S}"/common/include
 	insinto /usr/include/aosp/frameworks/ml/nn/runtime
 	doins -r "${S}"/runtime/include
+	insinto /usr/include/aosp/frameworks/ml/nn/driver/cache
+	doins "${S}"/driver/cache/nnCache/nnCache.h
+	doins "${S}"/driver/cache/BlobCache/BlobCache.h
 
 	einfo "Installing libs."
 	dolib.so "${OUT}/lib/libneuralnetworks.so"
@@ -178,13 +169,4 @@
 		einfo "Installing reference vendor hal."
 		dolib.so "${OUT}/lib/libvendor-nn-hal.so"
 	fi
-
-	if use nnapi_driver_tests; then
-		einfo "Installing hal driver tests."
-		dobin "${OUT}/cros_nnapi_vts_1_0"
-		dobin "${OUT}/cros_nnapi_vts_1_1"
-		dobin "${OUT}/cros_nnapi_vts_1_2"
-		dobin "${OUT}/cros_nnapi_vts_1_3"
-		dobin "${OUT}/cros_nnapi_cts"
-	fi
 }
diff --git a/chromeos-base/arc-adbd/arc-adbd-0.0.1-r340.ebuild b/chromeos-base/arc-adbd/arc-adbd-0.0.1-r340.ebuild
deleted file mode 100644
index 595ad87..0000000
--- a/chromeos-base/arc-adbd/arc-adbd-0.0.1-r340.ebuild
+++ /dev/null
@@ -1,46 +0,0 @@
-# Copyright 2018 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CROS_WORKON_COMMIT="b05e4a6b92b2cfe608b6cd8d5d37168680fc080e"
-CROS_WORKON_TREE=("a2c45ab60a41214142130b1d1051df94cac1e37a" "52a8a8b6d3bbca5e90d4761aa308a5541d52b1bb" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
-CROS_WORKON_INCREMENTAL_BUILD="1"
-CROS_WORKON_LOCALNAME="platform2"
-CROS_WORKON_PROJECT="chromiumos/platform2"
-CROS_WORKON_OUTOFTREE_BUILD=1
-CROS_WORKON_SUBTREE="arc/adbd common-mk .gn"
-
-PLATFORM_SUBDIR="arc/adbd"
-
-inherit cros-workon platform
-
-DESCRIPTION="Container to run Android's adbd proxy."
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/arc/adbd"
-
-LICENSE="BSD-Google"
-KEYWORDS="*"
-IUSE="+seccomp fuzzer arcvm"
-
-RDEPEND="
-	chromeos-base/minijail
-"
-
-src_install() {
-	insinto /etc/init
-	if use arcvm; then
-		doins init/arcvm-adbd.conf
-	else
-		doins init/arc-adbd.conf
-	fi
-
-	insinto /usr/share/policy
-	use seccomp && newins "seccomp/arc$(usex arcvm vm '')-adbd-${ARCH}.policy" "arc$(usex arcvm vm '')-adbd-seccomp.policy"
-
-	dosbin "${OUT}/arc-adbd"
-
-	# Install fuzzers.
-	platform_fuzzer_install "${S}"/OWNERS "${OUT}"/arc-adbd-setup-config-fs-fuzzer
-	platform_fuzzer_install "${S}"/OWNERS "${OUT}"/arc-adbd-setup-function-fs-fuzzer
-	platform_fuzzer_install "${S}"/OWNERS "${OUT}"/arc-adbd-create-pipe-fuzzer
-}
diff --git a/chromeos-base/arc-adbd/arc-adbd-0.0.1-r368.ebuild b/chromeos-base/arc-adbd/arc-adbd-0.0.1-r368.ebuild
new file mode 100644
index 0000000..6370817
--- /dev/null
+++ b/chromeos-base/arc-adbd/arc-adbd-0.0.1-r368.ebuild
@@ -0,0 +1,48 @@
+# Copyright 2018 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CROS_WORKON_COMMIT="7cc682322dc60e43d949f6055d5b3885536bea07"
+CROS_WORKON_TREE=("d5666e714c30f8f7921e63e91f60431992f31333" "791c6808b4f4f5f1c484108d66ff958d65f8f1e3" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
+CROS_WORKON_INCREMENTAL_BUILD="1"
+CROS_WORKON_LOCALNAME="platform2"
+CROS_WORKON_PROJECT="chromiumos/platform2"
+CROS_WORKON_OUTOFTREE_BUILD=1
+CROS_WORKON_SUBTREE="arc/adbd common-mk .gn"
+
+PLATFORM_SUBDIR="arc/adbd"
+
+inherit cros-workon platform
+
+DESCRIPTION="Container to run Android's adbd proxy."
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/arc/adbd"
+
+LICENSE="BSD-Google"
+KEYWORDS="*"
+IUSE="+seccomp fuzzer arcvm"
+
+RDEPEND="
+	chromeos-base/minijail
+"
+
+src_install() {
+	insinto /etc/init
+	if use arcvm; then
+		doins init/arcvm-adbd.conf
+		insinto /etc/dbus-1/system.d
+		doins init/dbus-1/ArcVmAdbd.conf
+	else
+		doins init/arc-adbd.conf
+	fi
+
+	insinto /usr/share/policy
+	use seccomp && newins "seccomp/arc$(usex arcvm vm '')-adbd-${ARCH}.policy" "arc$(usex arcvm vm '')-adbd-seccomp.policy"
+
+	dosbin "${OUT}/arc-adbd"
+
+	# Install fuzzers.
+	platform_fuzzer_install "${S}"/OWNERS "${OUT}"/arc-adbd-setup-config-fs-fuzzer
+	platform_fuzzer_install "${S}"/OWNERS "${OUT}"/arc-adbd-setup-function-fs-fuzzer
+	platform_fuzzer_install "${S}"/OWNERS "${OUT}"/arc-adbd-create-pipe-fuzzer
+}
diff --git a/chromeos-base/arc-adbd/arc-adbd-9999.ebuild b/chromeos-base/arc-adbd/arc-adbd-9999.ebuild
index 2c08141..acd2eea 100644
--- a/chromeos-base/arc-adbd/arc-adbd-9999.ebuild
+++ b/chromeos-base/arc-adbd/arc-adbd-9999.ebuild
@@ -28,6 +28,8 @@
 	insinto /etc/init
 	if use arcvm; then
 		doins init/arcvm-adbd.conf
+		insinto /etc/dbus-1/system.d
+		doins init/dbus-1/ArcVmAdbd.conf
 	else
 		doins init/arc-adbd.conf
 	fi
diff --git a/chromeos-base/arc-apk-cache/arc-apk-cache-0.0.1-r346.ebuild b/chromeos-base/arc-apk-cache/arc-apk-cache-0.0.1-r346.ebuild
deleted file mode 100644
index 042a1f7..0000000
--- a/chromeos-base/arc-apk-cache/arc-apk-cache-0.0.1-r346.ebuild
+++ /dev/null
@@ -1,53 +0,0 @@
-# Copyright 2018 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CROS_WORKON_COMMIT="b05e4a6b92b2cfe608b6cd8d5d37168680fc080e"
-CROS_WORKON_TREE=("52a8a8b6d3bbca5e90d4761aa308a5541d52b1bb" "e79a39f8f3a26e740eca5db95629cfb2e5d434aa" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
-CROS_WORKON_INCREMENTAL_BUILD="1"
-CROS_WORKON_LOCALNAME="platform2"
-CROS_WORKON_PROJECT="chromiumos/platform2"
-CROS_WORKON_OUTOFTREE_BUILD=1
-CROS_WORKON_SUBTREE="common-mk arc/apk-cache .gn"
-
-PLATFORM_NATIVE_TEST="yes"
-PLATFORM_SUBDIR="arc/apk-cache"
-
-inherit cros-workon platform
-
-DESCRIPTION="Maintains APK cache in ARC."
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/arc/apk-cache"
-
-LICENSE="BSD-Google"
-KEYWORDS="*"
-IUSE="+seccomp"
-
-RDEPEND="
-	chromeos-base/minijail
-	dev-db/sqlite:=
-"
-
-DEPEND="
-	dev-db/sqlite:=
-"
-
-src_install() {
-	insinto /etc/init
-	doins init/apk-cache-cleaner.conf
-
-	# Install seccomp policy file.
-	insinto /usr/share/policy
-	use seccomp && newins \
-		"seccomp/apk-cache-cleaner-seccomp-${ARCH}.policy" \
-		apk-cache-cleaner-seccomp.policy
-
-	dosbin "${OUT}/apk-cache-cleaner"
-	dobin  "${OUT}/apk-cache-ctl"
-	dosbin apk-cache-cleaner-jailed
-}
-
-platform_pkg_test() {
-	platform_test "run" "${OUT}/apk-cache-cleaner_testrunner"
-	platform_test "run" "${OUT}/apk-cache-ctl_testrunner"
-}
diff --git a/chromeos-base/arc-apk-cache/arc-apk-cache-0.0.1-r374.ebuild b/chromeos-base/arc-apk-cache/arc-apk-cache-0.0.1-r374.ebuild
new file mode 100644
index 0000000..fd2b92b
--- /dev/null
+++ b/chromeos-base/arc-apk-cache/arc-apk-cache-0.0.1-r374.ebuild
@@ -0,0 +1,53 @@
+# Copyright 2018 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CROS_WORKON_COMMIT="f34cf3a06f7b17b7829185630d886a5d9d3f0e75"
+CROS_WORKON_TREE=("791c6808b4f4f5f1c484108d66ff958d65f8f1e3" "4c6e571afb4a8fe4d876184e2d85fe856c411540" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
+CROS_WORKON_INCREMENTAL_BUILD="1"
+CROS_WORKON_LOCALNAME="platform2"
+CROS_WORKON_PROJECT="chromiumos/platform2"
+CROS_WORKON_OUTOFTREE_BUILD=1
+CROS_WORKON_SUBTREE="common-mk arc/apk-cache .gn"
+
+PLATFORM_NATIVE_TEST="yes"
+PLATFORM_SUBDIR="arc/apk-cache"
+
+inherit cros-workon platform
+
+DESCRIPTION="Maintains APK cache in ARC."
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/arc/apk-cache"
+
+LICENSE="BSD-Google"
+KEYWORDS="*"
+IUSE="+seccomp"
+
+RDEPEND="
+	chromeos-base/minijail
+	dev-db/sqlite:=
+"
+
+DEPEND="
+	dev-db/sqlite:=
+"
+
+src_install() {
+	insinto /etc/init
+	doins init/apk-cache-cleaner.conf
+
+	# Install seccomp policy file.
+	insinto /usr/share/policy
+	use seccomp && newins \
+		"seccomp/apk-cache-cleaner-seccomp-${ARCH}.policy" \
+		apk-cache-cleaner-seccomp.policy
+
+	dosbin "${OUT}/apk-cache-cleaner"
+	dobin  "${OUT}/apk-cache-ctl"
+	dosbin apk-cache-cleaner-jailed
+}
+
+platform_pkg_test() {
+	platform_test "run" "${OUT}/apk-cache-cleaner_testrunner"
+	platform_test "run" "${OUT}/apk-cache-ctl_testrunner"
+}
diff --git a/chromeos-base/arc-appfuse/arc-appfuse-0.0.1-r273.ebuild b/chromeos-base/arc-appfuse/arc-appfuse-0.0.1-r273.ebuild
deleted file mode 100644
index 68da338..0000000
--- a/chromeos-base/arc-appfuse/arc-appfuse-0.0.1-r273.ebuild
+++ /dev/null
@@ -1,48 +0,0 @@
-# Copyright 2018 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CROS_WORKON_COMMIT="b05e4a6b92b2cfe608b6cd8d5d37168680fc080e"
-CROS_WORKON_TREE=("52a8a8b6d3bbca5e90d4761aa308a5541d52b1bb" "870cb50e86dd81c388ef1d394f6a1c290dfe726d" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
-CROS_WORKON_INCREMENTAL_BUILD="1"
-CROS_WORKON_LOCALNAME="platform2"
-CROS_WORKON_PROJECT="chromiumos/platform2"
-CROS_WORKON_OUTOFTREE_BUILD=1
-CROS_WORKON_SUBTREE="common-mk arc/container/appfuse .gn"
-
-PLATFORM_SUBDIR="arc/container/appfuse"
-
-inherit cros-workon platform user
-
-DESCRIPTION="D-Bus service to provide ARC Appfuse"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/arc/container/appfuse"
-
-LICENSE="BSD-Google"
-KEYWORDS="*"
-
-RDEPEND="
-	sys-apps/dbus:=
-	sys-fs/fuse:=
-"
-
-DEPEND="${RDEPEND}
-	chromeos-base/system_api:=
-"
-
-BDEPEND="
-	virtual/pkgconfig
-"
-
-src_install() {
-	platform_install
-}
-
-pkg_preinst() {
-	enewuser "arc-appfuse-provider"
-	enewgroup "arc-appfuse-provider"
-}
-
-platform_pkg_test() {
-	platform test_all
-}
diff --git a/chromeos-base/arc-appfuse/arc-appfuse-0.0.1-r307.ebuild b/chromeos-base/arc-appfuse/arc-appfuse-0.0.1-r307.ebuild
new file mode 100644
index 0000000..f03a11e
--- /dev/null
+++ b/chromeos-base/arc-appfuse/arc-appfuse-0.0.1-r307.ebuild
@@ -0,0 +1,48 @@
+# Copyright 2018 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CROS_WORKON_COMMIT="6f9011123f3656c45bb34148673aa110a22326b3"
+CROS_WORKON_TREE=("791c6808b4f4f5f1c484108d66ff958d65f8f1e3" "ac2c9f71de71bb13b6d64a1245a8ea072da49f28" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
+CROS_WORKON_INCREMENTAL_BUILD="1"
+CROS_WORKON_LOCALNAME="platform2"
+CROS_WORKON_PROJECT="chromiumos/platform2"
+CROS_WORKON_OUTOFTREE_BUILD=1
+CROS_WORKON_SUBTREE="common-mk arc/container/appfuse .gn"
+
+PLATFORM_SUBDIR="arc/container/appfuse"
+
+inherit cros-workon platform user
+
+DESCRIPTION="D-Bus service to provide ARC Appfuse"
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/arc/container/appfuse"
+
+LICENSE="BSD-Google"
+KEYWORDS="*"
+
+RDEPEND="
+	sys-apps/dbus:=
+	sys-fs/fuse:=
+"
+
+DEPEND="${RDEPEND}
+	chromeos-base/system_api:=
+"
+
+BDEPEND="
+	virtual/pkgconfig
+"
+
+src_install() {
+	platform_install
+}
+
+pkg_preinst() {
+	enewuser "arc-appfuse-provider"
+	enewgroup "arc-appfuse-provider"
+}
+
+platform_pkg_test() {
+	platform test_all
+}
diff --git a/chromeos-base/arc-base/arc-base-0.0.1-r368.ebuild b/chromeos-base/arc-base/arc-base-0.0.1-r368.ebuild
deleted file mode 100644
index 6063c4d..0000000
--- a/chromeos-base/arc-base/arc-base-0.0.1-r368.ebuild
+++ /dev/null
@@ -1,84 +0,0 @@
-# Copyright 2018 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CROS_WORKON_COMMIT="b05e4a6b92b2cfe608b6cd8d5d37168680fc080e"
-CROS_WORKON_TREE=("52a8a8b6d3bbca5e90d4761aa308a5541d52b1bb" "9fc9c94a2d45e1fa0d13e8eab0e41814a9cd8c42" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
-CROS_WORKON_INCREMENTAL_BUILD="1"
-CROS_WORKON_LOCALNAME="platform2"
-CROS_WORKON_PROJECT="chromiumos/platform2"
-CROS_WORKON_OUTOFTREE_BUILD=1
-CROS_WORKON_SUBTREE="common-mk arc/container/bundle .gn"
-
-inherit cros-workon user
-
-DESCRIPTION="Container to run Android."
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/arc/container/bundle"
-
-LICENSE="BSD-Google"
-KEYWORDS="*"
-
-IUSE="
-	arcpp
-	arcvm
-	"
-
-REQUIRED_USE="|| ( arcpp arcvm )"
-
-RDEPEND="!<chromeos-base/chromeos-cheets-scripts-0.0.3"
-DEPEND="${RDEPEND}"
-
-CONTAINER_ROOTFS="/opt/google/containers/android/rootfs"
-
-src_install() {
-	if use arcpp; then
-		insinto /opt/google/containers/android
-		doins arc/container/bundle/pi/config.json
-
-		# Install exception file for FIFO blocking policy on stateful partition.
-		insinto /usr/share/cros/startup/fifo_exceptions
-		doins arc/container/bundle/arc-fifo-exceptions.txt
-
-		# Install exception file for symlink blocking policy on stateful partition.
-		insinto /usr/share/cros/startup/symlink_exceptions
-		doins arc/container/bundle/arc-symlink-exceptions.txt
-	fi
-}
-
-pkg_preinst() {
-	# ARCVM also needs these users on the host side for proper ugid remapping.
-	enewuser "wayland"
-	enewgroup "wayland"
-	enewuser "arc-bridge"
-	enewgroup "arc-bridge"
-	enewuser "android-root"
-	enewgroup "android-root"
-	enewgroup "arc-sensor"
-	enewgroup "android-everybody"
-	enewgroup "android-reserved-disk"
-}
-
-pkg_postinst() {
-	if use arcpp; then
-		local root_uid=$(egetent passwd android-root | cut -d: -f3)
-		local root_gid=$(egetent group android-root | cut -d: -f3)
-
-		# Create a rootfs directory, and then a subdirectory mount point. We
-		# use 0500 for CONTAINER_ROOTFS instead of 0555 so that non-system
-		# processes running outside the container don't start depending on
-		# files in system.raw.img.
-		# These are created here rather than at
-		# install because some of them may already exist and have mounts.
-		install -d --mode=0500 "--owner=${root_uid}" "--group=${root_gid}" \
-			"${ROOT}${CONTAINER_ROOTFS}" \
-			|| true
-		# This CONTAINER_ROOTFS/root directory works as a mount point for
-		# system.raw.img, and once it's mounted, the image's root directory's
-		# permissions override the mode, owner, and group mkdir sets here.
-		mkdir -p "${ROOT}${CONTAINER_ROOTFS}/root" || true
-		install -d --mode=0500 "--owner=${root_uid}" "--group=${root_gid}" \
-			"${ROOT}${CONTAINER_ROOTFS}/android-data" \
-			|| true
-	fi
-}
diff --git a/chromeos-base/arc-base/arc-base-0.0.1-r395.ebuild b/chromeos-base/arc-base/arc-base-0.0.1-r395.ebuild
new file mode 100644
index 0000000..9807576
--- /dev/null
+++ b/chromeos-base/arc-base/arc-base-0.0.1-r395.ebuild
@@ -0,0 +1,84 @@
+# Copyright 2018 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CROS_WORKON_COMMIT="f34cf3a06f7b17b7829185630d886a5d9d3f0e75"
+CROS_WORKON_TREE=("791c6808b4f4f5f1c484108d66ff958d65f8f1e3" "9fc9c94a2d45e1fa0d13e8eab0e41814a9cd8c42" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
+CROS_WORKON_INCREMENTAL_BUILD="1"
+CROS_WORKON_LOCALNAME="platform2"
+CROS_WORKON_PROJECT="chromiumos/platform2"
+CROS_WORKON_OUTOFTREE_BUILD=1
+CROS_WORKON_SUBTREE="common-mk arc/container/bundle .gn"
+
+inherit cros-workon user
+
+DESCRIPTION="Container to run Android."
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/arc/container/bundle"
+
+LICENSE="BSD-Google"
+KEYWORDS="*"
+
+IUSE="
+	arcpp
+	arcvm
+	"
+
+REQUIRED_USE="|| ( arcpp arcvm )"
+
+RDEPEND="!<chromeos-base/chromeos-cheets-scripts-0.0.3"
+DEPEND="${RDEPEND}"
+
+CONTAINER_ROOTFS="/opt/google/containers/android/rootfs"
+
+src_install() {
+	if use arcpp; then
+		insinto /opt/google/containers/android
+		doins arc/container/bundle/pi/config.json
+
+		# Install exception file for FIFO blocking policy on stateful partition.
+		insinto /usr/share/cros/startup/fifo_exceptions
+		doins arc/container/bundle/arc-fifo-exceptions.txt
+
+		# Install exception file for symlink blocking policy on stateful partition.
+		insinto /usr/share/cros/startup/symlink_exceptions
+		doins arc/container/bundle/arc-symlink-exceptions.txt
+	fi
+}
+
+pkg_preinst() {
+	# ARCVM also needs these users on the host side for proper ugid remapping.
+	enewuser "wayland"
+	enewgroup "wayland"
+	enewuser "arc-bridge"
+	enewgroup "arc-bridge"
+	enewuser "android-root"
+	enewgroup "android-root"
+	enewgroup "arc-sensor"
+	enewgroup "android-everybody"
+	enewgroup "android-reserved-disk"
+}
+
+pkg_postinst() {
+	if use arcpp; then
+		local root_uid=$(egetent passwd android-root | cut -d: -f3)
+		local root_gid=$(egetent group android-root | cut -d: -f3)
+
+		# Create a rootfs directory, and then a subdirectory mount point. We
+		# use 0500 for CONTAINER_ROOTFS instead of 0555 so that non-system
+		# processes running outside the container don't start depending on
+		# files in system.raw.img.
+		# These are created here rather than at
+		# install because some of them may already exist and have mounts.
+		install -d --mode=0500 "--owner=${root_uid}" "--group=${root_gid}" \
+			"${ROOT}${CONTAINER_ROOTFS}" \
+			|| true
+		# This CONTAINER_ROOTFS/root directory works as a mount point for
+		# system.raw.img, and once it's mounted, the image's root directory's
+		# permissions override the mode, owner, and group mkdir sets here.
+		mkdir -p "${ROOT}${CONTAINER_ROOTFS}/root" || true
+		install -d --mode=0500 "--owner=${root_uid}" "--group=${root_gid}" \
+			"${ROOT}${CONTAINER_ROOTFS}/android-data" \
+			|| true
+	fi
+}
diff --git a/chromeos-base/arc-common-scripts/arc-common-scripts-0.0.1-r152.ebuild b/chromeos-base/arc-common-scripts/arc-common-scripts-0.0.1-r152.ebuild
deleted file mode 100644
index 5a6f5b4..0000000
--- a/chromeos-base/arc-common-scripts/arc-common-scripts-0.0.1-r152.ebuild
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright 2019 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CROS_WORKON_COMMIT="b05e4a6b92b2cfe608b6cd8d5d37168680fc080e"
-CROS_WORKON_TREE=("52a8a8b6d3bbca5e90d4761aa308a5541d52b1bb" "3635cafaa1e2fe54b2dd06c40c2a17b4e4659039" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
-CROS_WORKON_INCREMENTAL_BUILD="1"
-CROS_WORKON_LOCALNAME="platform2"
-CROS_WORKON_PROJECT="chromiumos/platform2"
-CROS_WORKON_OUTOFTREE_BUILD=1
-CROS_WORKON_SUBTREE="common-mk arc/container/scripts .gn"
-
-inherit cros-workon
-
-DESCRIPTION="ARC++ common scripts."
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/arc/container/scripts"
-
-LICENSE="BSD-Google"
-SLOT="0/0"
-KEYWORDS="*"
-
-IUSE="arcpp"
-RDEPEND="
-	!<=chromeos-base/arc-base-0.0.1-r349
-	!<chromeos-base/arc-setup-0.0.1-r1084
-	app-misc/jq"
-DEPEND=""
-
-src_install() {
-	dosbin arc/container/scripts/android-sh
-	insinto /etc/init
-	doins arc/container/scripts/arc-kmsg-logger.conf
-	doins arc/container/scripts/arc-sensor.conf
-	doins arc/container/scripts/arc-sysctl.conf
-	doins arc/container/scripts/arc-ureadahead.conf
-	insinto /etc/sysctl.d
-	doins arc/container/scripts/01-sysctl-arc.conf
-	# Redirect ARC logs to arc.log.
-	insinto /etc/rsyslog.d
-	doins arc/container/scripts/rsyslog.arc.conf
-}
diff --git a/chromeos-base/arc-common-scripts/arc-common-scripts-0.0.1-r183.ebuild b/chromeos-base/arc-common-scripts/arc-common-scripts-0.0.1-r183.ebuild
new file mode 100644
index 0000000..3afb658
--- /dev/null
+++ b/chromeos-base/arc-common-scripts/arc-common-scripts-0.0.1-r183.ebuild
@@ -0,0 +1,41 @@
+# Copyright 2019 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CROS_WORKON_COMMIT="513e5662d18591543021a62874f49792a30fd2e7"
+CROS_WORKON_TREE=("791c6808b4f4f5f1c484108d66ff958d65f8f1e3" "bb51f9f8da453999f939ccb6a91e5c1a73b89308" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
+CROS_WORKON_INCREMENTAL_BUILD="1"
+CROS_WORKON_LOCALNAME="platform2"
+CROS_WORKON_PROJECT="chromiumos/platform2"
+CROS_WORKON_OUTOFTREE_BUILD=1
+CROS_WORKON_SUBTREE="common-mk arc/container/scripts .gn"
+
+inherit cros-workon
+
+DESCRIPTION="ARC++ common scripts."
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/arc/container/scripts"
+
+LICENSE="BSD-Google"
+SLOT="0/0"
+KEYWORDS="*"
+
+IUSE="arcpp iioservice"
+RDEPEND="
+	!<=chromeos-base/arc-base-0.0.1-r349
+	!<chromeos-base/arc-setup-0.0.1-r1084
+	app-misc/jq"
+DEPEND=""
+
+src_install() {
+	dosbin arc/container/scripts/android-sh
+	insinto /etc/init
+	doins arc/container/scripts/arc-kmsg-logger.conf
+	use iioservice || doins arc/container/scripts/arc-sensor.conf
+	doins arc/container/scripts/arc-ureadahead.conf
+	insinto /etc/sysctl.d
+	doins arc/container/scripts/01-sysctl-arc.conf
+	# Redirect ARC logs to arc.log.
+	insinto /etc/rsyslog.d
+	doins arc/container/scripts/rsyslog.arc.conf
+}
diff --git a/chromeos-base/arc-common-scripts/arc-common-scripts-9999.ebuild b/chromeos-base/arc-common-scripts/arc-common-scripts-9999.ebuild
index 168b4ce..e3d6dae 100644
--- a/chromeos-base/arc-common-scripts/arc-common-scripts-9999.ebuild
+++ b/chromeos-base/arc-common-scripts/arc-common-scripts-9999.ebuild
@@ -18,7 +18,7 @@
 SLOT="0/0"
 KEYWORDS="~*"
 
-IUSE="arcpp"
+IUSE="arcpp iioservice"
 RDEPEND="
 	!<=chromeos-base/arc-base-0.0.1-r349
 	!<chromeos-base/arc-setup-0.0.1-r1084
@@ -29,8 +29,7 @@
 	dosbin arc/container/scripts/android-sh
 	insinto /etc/init
 	doins arc/container/scripts/arc-kmsg-logger.conf
-	doins arc/container/scripts/arc-sensor.conf
-	doins arc/container/scripts/arc-sysctl.conf
+	use iioservice || doins arc/container/scripts/arc-sensor.conf
 	doins arc/container/scripts/arc-ureadahead.conf
 	insinto /etc/sysctl.d
 	doins arc/container/scripts/01-sysctl-arc.conf
diff --git a/chromeos-base/arc-data-snapshotd/arc-data-snapshotd-0.0.1-r40.ebuild b/chromeos-base/arc-data-snapshotd/arc-data-snapshotd-0.0.1-r40.ebuild
deleted file mode 100644
index 751a4a5a..0000000
--- a/chromeos-base/arc-data-snapshotd/arc-data-snapshotd-0.0.1-r40.ebuild
+++ /dev/null
@@ -1,66 +0,0 @@
-# Copyright 2020 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CROS_WORKON_COMMIT="b05e4a6b92b2cfe608b6cd8d5d37168680fc080e"
-CROS_WORKON_TREE=("52a8a8b6d3bbca5e90d4761aa308a5541d52b1bb" "7eabed196d01863338304dc38454608d554693f5" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
-inherit cros-constants
-
-CROS_WORKON_INCREMENTAL_BUILD="1"
-CROS_WORKON_LOCALNAME="platform2"
-CROS_WORKON_OUTOFTREE_BUILD=1
-CROS_WORKON_PROJECT="chromiumos/platform2"
-CROS_WORKON_SUBTREE="common-mk arc/data-snapshotd .gn"
-
-PLATFORM_SUBDIR="arc/data-snapshotd"
-
-inherit cros-workon platform user
-
-DESCRIPTION="ARC data snapshotd daemon in Chrome OS."
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/HEAD/arc/data-snapshotd"
-
-LICENSE="BSD-Google"
-KEYWORDS="*"
-IUSE="+seccomp selinux"
-
-RDEPEND="
-	chromeos-base/bootlockbox-client:=
-	chromeos-base/minijail:=
-"
-
-DEPEND="
-	${RDEPEND}
-	chromeos-base/system_api:=
-	dev-libs/protobuf:=
-	selinux? (
-		sys-libs/libselinux:=
-	)
-"
-
-src_install() {
-	insinto /etc/init
-	doins init/arc-data-snapshotd.conf
-
-	# Install DBUS configuration file.
-	insinto /etc/dbus-1/system.d
-	doins dbus/org.chromium.ArcDataSnapshotd.conf
-	doins dbus/ArcDataSnapshotdUpstart.conf
-
-	# Install seccomp policy file.
-	insinto /usr/share/policy
-	use seccomp && newins \
-		"seccomp/arc-data-snapshotd-seccomp-${ARCH}.policy" \
-		arc-data-snapshotd-seccomp.policy
-
-	dobin "${OUT}/arc-data-snapshotd"
-}
-
-pkg_preinst() {
-	enewuser "arc-data-snapshotd"
-	enewgroup "arc-data-snapshotd"
-}
-
-platform_pkg_test() {
-	platform_test "run" "${OUT}/arc-data-snapshotd_test"
-}
diff --git a/chromeos-base/arc-data-snapshotd/arc-data-snapshotd-0.0.1-r84.ebuild b/chromeos-base/arc-data-snapshotd/arc-data-snapshotd-0.0.1-r84.ebuild
new file mode 100644
index 0000000..8a5e97e
--- /dev/null
+++ b/chromeos-base/arc-data-snapshotd/arc-data-snapshotd-0.0.1-r84.ebuild
@@ -0,0 +1,81 @@
+# Copyright 2020 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CROS_WORKON_COMMIT="f34cf3a06f7b17b7829185630d886a5d9d3f0e75"
+CROS_WORKON_TREE=("791c6808b4f4f5f1c484108d66ff958d65f8f1e3" "9107f8d50d8863fe8587f75a2d4d7560450cf59d" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
+inherit cros-constants
+
+CROS_WORKON_INCREMENTAL_BUILD="1"
+CROS_WORKON_LOCALNAME="platform2"
+CROS_WORKON_OUTOFTREE_BUILD=1
+CROS_WORKON_PROJECT="chromiumos/platform2"
+CROS_WORKON_SUBTREE="common-mk arc/data-snapshotd .gn"
+
+PLATFORM_SUBDIR="arc/data-snapshotd"
+
+inherit cros-workon platform user
+
+DESCRIPTION="ARC data snapshotd daemon in Chrome OS."
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/HEAD/arc/data-snapshotd"
+
+LICENSE="BSD-Google"
+KEYWORDS="*"
+IUSE="+seccomp selinux"
+
+RDEPEND="
+	chromeos-base/bootlockbox-client:=
+	chromeos-base/minijail:=
+"
+
+DEPEND="
+	${RDEPEND}
+	chromeos-base/system_api:=
+	dev-libs/protobuf:=
+	selinux? (
+		sys-libs/libselinux:=
+	)
+"
+
+src_install() {
+	insinto /etc/init
+	doins init/arc-data-snapshotd.conf
+	doins init/arc-data-snapshotd-worker.conf
+
+	# Install DBUS configuration file.
+	insinto /etc/dbus-1/system.d
+	doins dbus/org.chromium.ArcDataSnapshotd.conf
+	doins dbus/org.chromium.ArcDataSnapshotdWorker.conf
+	doins dbus/ArcDataSnapshotdUpstart.conf
+
+	# Install seccomp policy file.
+	insinto /usr/share/policy
+	use seccomp && newins \
+		"seccomp/arc-data-snapshotd-seccomp-${ARCH}.policy" \
+		arc-data-snapshotd-seccomp.policy
+
+	dobin "${OUT}/arc-data-snapshotd"
+	dobin "${OUT}/arc-data-snapshotd-worker"
+}
+
+pkg_preinst() {
+	enewuser "arc-data-snapshotd"
+	enewgroup "arc-data-snapshotd"
+}
+
+platform_pkg_test() {
+	# Disable tests that invoke arc::data_snapshotd::CopySnapshotDirectory
+	# on qemu.
+	local gtest_filter_qemu=""
+	gtest_filter_qemu+="-DBusAdaptorTest.TakeSnapshotAndroidDataSymLink:"
+	gtest_filter_qemu+="DBusAdaptorTest.TakeSnapshotDouble:"
+	gtest_filter_qemu+="DBusAdaptorTest.LoadSnapshotUnknownUser:"
+	gtest_filter_qemu+="DBusAdaptorTest.LoadSnapshotSuccess:"
+	gtest_filter_qemu+="DBusAdaptorTest.LoadSnapshotPreviousSuccess:"
+
+	platform_test "run" "${OUT}/arc-data-snapshotd_test" "" "" \
+		"${gtest_filter_qemu}"
+	platform_test "run" "${OUT}/arc-data-snapshotd-worker_test" "" "" \
+		"${gtest_filter_qemu}"
+}
diff --git a/chromeos-base/arc-data-snapshotd/arc-data-snapshotd-9999.ebuild b/chromeos-base/arc-data-snapshotd/arc-data-snapshotd-9999.ebuild
index 02416d5..07dd873 100644
--- a/chromeos-base/arc-data-snapshotd/arc-data-snapshotd-9999.ebuild
+++ b/chromeos-base/arc-data-snapshotd/arc-data-snapshotd-9999.ebuild
@@ -39,10 +39,12 @@
 src_install() {
 	insinto /etc/init
 	doins init/arc-data-snapshotd.conf
+	doins init/arc-data-snapshotd-worker.conf
 
 	# Install DBUS configuration file.
 	insinto /etc/dbus-1/system.d
 	doins dbus/org.chromium.ArcDataSnapshotd.conf
+	doins dbus/org.chromium.ArcDataSnapshotdWorker.conf
 	doins dbus/ArcDataSnapshotdUpstart.conf
 
 	# Install seccomp policy file.
@@ -52,6 +54,7 @@
 		arc-data-snapshotd-seccomp.policy
 
 	dobin "${OUT}/arc-data-snapshotd"
+	dobin "${OUT}/arc-data-snapshotd-worker"
 }
 
 pkg_preinst() {
@@ -60,5 +63,17 @@
 }
 
 platform_pkg_test() {
-	platform_test "run" "${OUT}/arc-data-snapshotd_test"
+	# Disable tests that invoke arc::data_snapshotd::CopySnapshotDirectory
+	# on qemu.
+	local gtest_filter_qemu=""
+	gtest_filter_qemu+="-DBusAdaptorTest.TakeSnapshotAndroidDataSymLink:"
+	gtest_filter_qemu+="DBusAdaptorTest.TakeSnapshotDouble:"
+	gtest_filter_qemu+="DBusAdaptorTest.LoadSnapshotUnknownUser:"
+	gtest_filter_qemu+="DBusAdaptorTest.LoadSnapshotSuccess:"
+	gtest_filter_qemu+="DBusAdaptorTest.LoadSnapshotPreviousSuccess:"
+
+	platform_test "run" "${OUT}/arc-data-snapshotd_test" "" "" \
+		"${gtest_filter_qemu}"
+	platform_test "run" "${OUT}/arc-data-snapshotd-worker_test" "" "" \
+		"${gtest_filter_qemu}"
 }
diff --git a/chromeos-base/arc-host-clock-service/arc-host-clock-service-0.0.1-r33.ebuild b/chromeos-base/arc-host-clock-service/arc-host-clock-service-0.0.1-r33.ebuild
deleted file mode 100644
index 0dad2e7..0000000
--- a/chromeos-base/arc-host-clock-service/arc-host-clock-service-0.0.1-r33.ebuild
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright 2020 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CROS_WORKON_COMMIT="b05e4a6b92b2cfe608b6cd8d5d37168680fc080e"
-CROS_WORKON_TREE=("52a8a8b6d3bbca5e90d4761aa308a5541d52b1bb" "bd7a8b8c2a72289b8a9bad9133c39c6184921fe2" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
-CROS_WORKON_INCREMENTAL_BUILD="1"
-CROS_WORKON_LOCALNAME="platform2"
-CROS_WORKON_PROJECT="chromiumos/platform2"
-CROS_WORKON_OUTOFTREE_BUILD=1
-CROS_WORKON_SUBTREE="common-mk arc/vm/host_clock .gn"
-
-PLATFORM_SUBDIR="arc/vm/host_clock"
-
-inherit cros-workon platform user
-
-DESCRIPTION="ARC host clock service"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/HEAD/arc/vm/host_clock"
-
-LICENSE="BSD-Google"
-KEYWORDS="*"
-
-RDEPEND="
-"
-
-DEPEND="
-	${RDEPEND}
-	chromeos-base/system_api
-"
-
-src_install() {
-	dobin "${OUT}"/arc-host-clock-service
-
-	insinto /etc/init
-	doins arc-host-clock-service.conf
-}
-
-pkg_preinst() {
-	enewuser "arc-host-clock"
-	enewgroup "arc-host-clock"
-}
diff --git a/chromeos-base/arc-host-clock-service/arc-host-clock-service-0.0.1-r59.ebuild b/chromeos-base/arc-host-clock-service/arc-host-clock-service-0.0.1-r59.ebuild
new file mode 100644
index 0000000..052ed4f
--- /dev/null
+++ b/chromeos-base/arc-host-clock-service/arc-host-clock-service-0.0.1-r59.ebuild
@@ -0,0 +1,42 @@
+# Copyright 2020 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CROS_WORKON_COMMIT="f34cf3a06f7b17b7829185630d886a5d9d3f0e75"
+CROS_WORKON_TREE=("791c6808b4f4f5f1c484108d66ff958d65f8f1e3" "d5ebac6b78340ae031e643c6ddb2afdb32017e76" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
+CROS_WORKON_INCREMENTAL_BUILD="1"
+CROS_WORKON_LOCALNAME="platform2"
+CROS_WORKON_PROJECT="chromiumos/platform2"
+CROS_WORKON_OUTOFTREE_BUILD=1
+CROS_WORKON_SUBTREE="common-mk arc/vm/host_clock .gn"
+
+PLATFORM_SUBDIR="arc/vm/host_clock"
+
+inherit cros-workon platform user
+
+DESCRIPTION="ARC host clock service"
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/HEAD/arc/vm/host_clock"
+
+LICENSE="BSD-Google"
+KEYWORDS="*"
+
+RDEPEND="
+"
+
+DEPEND="
+	${RDEPEND}
+	chromeos-base/system_api
+"
+
+src_install() {
+	dobin "${OUT}"/arc-host-clock-service
+
+	insinto /etc/init
+	doins arc-host-clock-service.conf
+}
+
+pkg_preinst() {
+	enewuser "arc-host-clock"
+	enewgroup "arc-host-clock"
+}
diff --git a/chromeos-base/arc-keymaster/arc-keymaster-0.0.1-r210.ebuild b/chromeos-base/arc-keymaster/arc-keymaster-0.0.1-r210.ebuild
deleted file mode 100644
index 3d504bf..0000000
--- a/chromeos-base/arc-keymaster/arc-keymaster-0.0.1-r210.ebuild
+++ /dev/null
@@ -1,145 +0,0 @@
-# Copyright 2019 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CROS_WORKON_COMMIT=("31f27149a8789a1ea56d607fb2d2309c9e0ad932" "49dfc58d6c4c66f5d0b0d06f0161da4e602a1293")
-CROS_WORKON_TREE=("52a8a8b6d3bbca5e90d4761aa308a5541d52b1bb" "7cbff7c391e32cecd310a2bbbc8b41ddb0e6d233" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb" "6dbc19849752c206e135ab59349ebb1cc62bb435")
-inherit cros-constants
-
-CROS_WORKON_INCREMENTAL_BUILD="1"
-CROS_WORKON_PROJECT=("chromiumos/platform2" "platform/system/keymaster")
-CROS_WORKON_REPO=(
-	"${CROS_GIT_HOST_URL}"
-	"${CROS_GIT_AOSP_URL}"
-)
-CROS_WORKON_EGIT_BRANCH=("master" "pie-release")
-CROS_WORKON_LOCALNAME=("platform2" "aosp/system/keymaster")
-CROS_WORKON_DESTDIR=("${S}/platform2" "${S}/aosp/system/keymaster")
-CROS_WORKON_SUBTREE=("common-mk arc/keymaster .gn" "")
-
-PLATFORM_SUBDIR="arc/keymaster"
-
-# This BoringSSL integration follows go/boringssl-cros.
-# DO NOT COPY TO OTHER PACKAGES WITHOUT CONSULTING SECURITY TEAM.
-BORINGSSL_PN="boringssl"
-BORINGSSL_PV="430a7423039682e4bbc7b522e3b57b2c8dca5e3b"
-BORINGSSL_P="${BORINGSSL_PN}-${BORINGSSL_PV}"
-BORINGSSL_OUTDIR="${WORKDIR}/boringssl_outputs/"
-
-CMAKE_USE_DIR="${WORKDIR}/${BORINGSSL_P}"
-BUILD_DIR="${WORKDIR}/${BORINGSSL_P}_build"
-
-inherit flag-o-matic cmake-utils cros-workon platform user
-
-DESCRIPTION="Android keymaster service in Chrome OS."
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/arc/keymaster"
-SRC_URI="https://github.com/google/${BORINGSSL_PN}/archive/${BORINGSSL_PV}.tar.gz -> ${BORINGSSL_P}.tar.gz"
-
-LICENSE="BSD-Google"
-KEYWORDS="*"
-IUSE="+seccomp"
-
-RDEPEND="
-	chromeos-base/chaps:=
-	chromeos-base/cryptohome:=
-	chromeos-base/minijail:=
-	dev-libs/protobuf:=
-"
-
-DEPEND="
-	${RDEPEND}
-	chromeos-base/session_manager-client:=
-	chromeos-base/system_api:=
-"
-
-HEADER_TAINT="#ifdef CHROMEOS_OPENSSL_IS_OPENSSL
-#error \"Do not mix OpenSSL and BoringSSL headers.\"
-#endif
-#define CHROMEOS_OPENSSL_IS_BORINGSSL\n"
-
-src_unpack() {
-	platform_src_unpack
-	unpack "${BORINGSSL_P}.tar.gz"
-	# Taint BoringSSL headers so they don't silently mix with OpenSSL.
-	find "${BORINGSSL_P}/include/openssl" -type f -exec awk -i inplace -v \
-		"taint=${HEADER_TAINT}" 'NR == 1 {print taint} {print}' {} \;
-}
-
-src_prepare() {
-	cmake-utils_src_prepare
-
-	# Expose libhardware headers from arc-toolchain-p.
-	local arc_arch="${ARCH}"
-	# arm needs to use arm64 directory, which provides combined arm/arm64
-	# headers.
-	if [[ "${ARCH}" == "arm" ]]; then
-		arc_arch="arm64"
-	fi
-	mkdir -p "${WORKDIR}/libhardware/include" || die
-	cp -rfp "/opt/android-p/${arc_arch}/usr/include/hardware" "${WORKDIR}/libhardware/include" || die
-	append-cxxflags "-I${WORKDIR}/libhardware/include"
-
-	# Expose BoringSSL headers and outputs.
-	append-cxxflags "-I${WORKDIR}/${BORINGSSL_P}/include"
-	append-ldflags "-L${BORINGSSL_OUTDIR}"
-	# Verify upstream hasn't changed relevant context code.
-	cd "${WORKDIR}/${P}/aosp/system/keymaster" || die
-	eapply --dry-run "${FILESDIR}/keymaster-context-hooks.patch"
-	# Fix C++17 compilation. Can be removed once we update to newer version of
-	# keymaster that contains https://r.android.com/1412947.
-	cd "${WORKDIR}/${P}/aosp/system/keymaster" || die
-	eapply "${FILESDIR}/0001-keymaster-fix-C-17-compilation.patch"
-	# Make P Keymaster compatible with latest BoringSSL.
-	eapply "${FILESDIR}/keymaster-boringssl-update.patch"
-}
-
-src_configure() {
-	local mycmakeargs=(
-		"-DCMAKE_BUILD_TYPE=Release"
-		"-DCMAKE_SYSTEM_PROCESSOR=${CHOST%%-*}"
-		"-DBUILD_SHARED_LIBS=OFF"
-	)
-	cmake-utils_src_configure
-	platform_src_configure
-}
-
-src_compile() {
-	# Compile BoringSSL and expose libcrypto.a.
-	cmake-utils_src_compile
-	mkdir -p "${BORINGSSL_OUTDIR}" || die
-	cp -p "${BUILD_DIR}/crypto/libcrypto.a" "${BORINGSSL_OUTDIR}/libboringcrypto.a" || die
-
-	platform_src_compile
-}
-
-src_install() {
-	insinto /etc/init
-	doins init/arc-keymasterd.conf
-
-	# Install DBUS configuration file.
-	insinto /etc/dbus-1/system.d
-	doins dbus_permissions/org.chromium.ArcKeymaster.conf
-
-	# Install seccomp policy file.
-	insinto /usr/share/policy
-	use seccomp && newins \
-		"seccomp/arc-keymasterd-seccomp-${ARCH}.policy" \
-		arc-keymasterd-seccomp.policy
-
-	# Install shared libs and binary.
-	dolib.so "${OUT}/lib/libarckeymaster_context.so"
-	dolib.so "${OUT}/lib/libkeymaster.so"
-	dosbin "${OUT}/arc-keymasterd"
-
-	platform_fuzzer_install "${S}"/OWNERS "${OUT}"/arc_keymasterd_fuzzer
-}
-
-pkg_preinst() {
-	enewuser "arc-keymasterd"
-	enewgroup "arc-keymasterd"
-}
-
-platform_pkg_test() {
-	platform_test "run" "${OUT}/arc-keymasterd_testrunner"
-}
diff --git a/chromeos-base/arc-keymaster/arc-keymaster-0.0.1-r246.ebuild b/chromeos-base/arc-keymaster/arc-keymaster-0.0.1-r246.ebuild
new file mode 100644
index 0000000..5962cf7
--- /dev/null
+++ b/chromeos-base/arc-keymaster/arc-keymaster-0.0.1-r246.ebuild
@@ -0,0 +1,145 @@
+# Copyright 2019 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CROS_WORKON_COMMIT=("6f9011123f3656c45bb34148673aa110a22326b3" "49dfc58d6c4c66f5d0b0d06f0161da4e602a1293")
+CROS_WORKON_TREE=("791c6808b4f4f5f1c484108d66ff958d65f8f1e3" "cd360f89c2a9c43343acba09894918cb5ef94620" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb" "6dbc19849752c206e135ab59349ebb1cc62bb435")
+inherit cros-constants
+
+CROS_WORKON_INCREMENTAL_BUILD="1"
+CROS_WORKON_PROJECT=("chromiumos/platform2" "platform/system/keymaster")
+CROS_WORKON_REPO=(
+	"${CROS_GIT_HOST_URL}"
+	"${CROS_GIT_AOSP_URL}"
+)
+CROS_WORKON_EGIT_BRANCH=("master" "pie-release")
+CROS_WORKON_LOCALNAME=("platform2" "aosp/system/keymaster")
+CROS_WORKON_DESTDIR=("${S}/platform2" "${S}/aosp/system/keymaster")
+CROS_WORKON_SUBTREE=("common-mk arc/keymaster .gn" "")
+
+PLATFORM_SUBDIR="arc/keymaster"
+
+# This BoringSSL integration follows go/boringssl-cros.
+# DO NOT COPY TO OTHER PACKAGES WITHOUT CONSULTING SECURITY TEAM.
+BORINGSSL_PN="boringssl"
+BORINGSSL_PV="430a7423039682e4bbc7b522e3b57b2c8dca5e3b"
+BORINGSSL_P="${BORINGSSL_PN}-${BORINGSSL_PV}"
+BORINGSSL_OUTDIR="${WORKDIR}/boringssl_outputs/"
+
+CMAKE_USE_DIR="${WORKDIR}/${BORINGSSL_P}"
+BUILD_DIR="${WORKDIR}/${BORINGSSL_P}_build"
+
+inherit flag-o-matic cmake-utils cros-workon platform user
+
+DESCRIPTION="Android keymaster service in Chrome OS."
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/arc/keymaster"
+SRC_URI="https://github.com/google/${BORINGSSL_PN}/archive/${BORINGSSL_PV}.tar.gz -> ${BORINGSSL_P}.tar.gz"
+
+LICENSE="BSD-Google"
+KEYWORDS="*"
+IUSE="+seccomp"
+
+RDEPEND="
+	chromeos-base/chaps:=
+	chromeos-base/cryptohome:=
+	chromeos-base/minijail:=
+	dev-libs/protobuf:=
+"
+
+DEPEND="
+	${RDEPEND}
+	chromeos-base/session_manager-client:=
+	chromeos-base/system_api:=
+"
+
+HEADER_TAINT="#ifdef CHROMEOS_OPENSSL_IS_OPENSSL
+#error \"Do not mix OpenSSL and BoringSSL headers.\"
+#endif
+#define CHROMEOS_OPENSSL_IS_BORINGSSL\n"
+
+src_unpack() {
+	platform_src_unpack
+	unpack "${BORINGSSL_P}.tar.gz"
+	# Taint BoringSSL headers so they don't silently mix with OpenSSL.
+	find "${BORINGSSL_P}/include/openssl" -type f -exec awk -i inplace -v \
+		"taint=${HEADER_TAINT}" 'NR == 1 {print taint} {print}' {} \;
+}
+
+src_prepare() {
+	cmake-utils_src_prepare
+
+	# Expose libhardware headers from arc-toolchain-p.
+	local arc_arch="${ARCH}"
+	# arm needs to use arm64 directory, which provides combined arm/arm64
+	# headers.
+	if [[ "${ARCH}" == "arm" ]]; then
+		arc_arch="arm64"
+	fi
+	mkdir -p "${WORKDIR}/libhardware/include" || die
+	cp -rfp "/opt/android-p/${arc_arch}/usr/include/hardware" "${WORKDIR}/libhardware/include" || die
+	append-cxxflags "-I${WORKDIR}/libhardware/include"
+
+	# Expose BoringSSL headers and outputs.
+	append-cxxflags "-I${WORKDIR}/${BORINGSSL_P}/include"
+	append-ldflags "-L${BORINGSSL_OUTDIR}"
+	# Verify upstream hasn't changed relevant context code.
+	cd "${WORKDIR}/${P}/aosp/system/keymaster" || die
+	eapply --dry-run "${FILESDIR}/keymaster-context-hooks.patch"
+	# Fix C++17 compilation. Can be removed once we update to newer version of
+	# keymaster that contains https://r.android.com/1412947.
+	cd "${WORKDIR}/${P}/aosp/system/keymaster" || die
+	eapply "${FILESDIR}/0001-keymaster-fix-C-17-compilation.patch"
+	# Make P Keymaster compatible with latest BoringSSL.
+	eapply "${FILESDIR}/keymaster-boringssl-update.patch"
+}
+
+src_configure() {
+	local mycmakeargs=(
+		"-DCMAKE_BUILD_TYPE=Release"
+		"-DCMAKE_SYSTEM_PROCESSOR=${CHOST%%-*}"
+		"-DBUILD_SHARED_LIBS=OFF"
+	)
+	cmake-utils_src_configure
+	platform_src_configure
+}
+
+src_compile() {
+	# Compile BoringSSL and expose libcrypto.a.
+	cmake-utils_src_compile
+	mkdir -p "${BORINGSSL_OUTDIR}" || die
+	cp -p "${BUILD_DIR}/crypto/libcrypto.a" "${BORINGSSL_OUTDIR}/libboringcrypto.a" || die
+
+	platform_src_compile
+}
+
+src_install() {
+	insinto /etc/init
+	doins init/arc-keymasterd.conf
+
+	# Install DBUS configuration file.
+	insinto /etc/dbus-1/system.d
+	doins dbus_permissions/org.chromium.ArcKeymaster.conf
+
+	# Install seccomp policy file.
+	insinto /usr/share/policy
+	use seccomp && newins \
+		"seccomp/arc-keymasterd-seccomp-${ARCH}.policy" \
+		arc-keymasterd-seccomp.policy
+
+	# Install shared libs and binary.
+	dolib.so "${OUT}/lib/libarckeymaster_context.so"
+	dolib.so "${OUT}/lib/libkeymaster.so"
+	dosbin "${OUT}/arc-keymasterd"
+
+	platform_fuzzer_install "${S}"/OWNERS "${OUT}"/arc_keymasterd_fuzzer
+}
+
+pkg_preinst() {
+	enewuser "arc-keymasterd"
+	enewgroup "arc-keymasterd"
+}
+
+platform_pkg_test() {
+	platform_test "run" "${OUT}/arc-keymasterd_testrunner"
+}
diff --git a/chromeos-base/arc-myfiles/arc-myfiles-0.0.1-r174.ebuild b/chromeos-base/arc-myfiles/arc-myfiles-0.0.1-r174.ebuild
deleted file mode 100644
index f77b14b..0000000
--- a/chromeos-base/arc-myfiles/arc-myfiles-0.0.1-r174.ebuild
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 2019 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CROS_WORKON_COMMIT="891275e43ab2ed3070c377dd889259604911e046"
-CROS_WORKON_TREE=("52a8a8b6d3bbca5e90d4761aa308a5541d52b1bb" "44e015c48512f5c1bd9e73c1c350d3af9423c262" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
-CROS_WORKON_INCREMENTAL_BUILD="1"
-CROS_WORKON_LOCALNAME="platform2"
-CROS_WORKON_PROJECT="chromiumos/platform2"
-CROS_WORKON_OUTOFTREE_BUILD=1
-CROS_WORKON_SUBTREE="common-mk arc/container/myfiles .gn"
-
-inherit cros-workon
-
-DESCRIPTION="Container to run Android's MyFiles daemon."
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/arc/container/myfiles"
-
-LICENSE="BSD-Google"
-KEYWORDS="*"
-
-RDEPEND="chromeos-base/mount-passthrough
-	!<chromeos-base/chromeos-cheets-scripts-0.0.2-r470
-"
-
-src_install() {
-	insinto /etc/init
-	doins arc/container/myfiles/arc-myfiles.conf
-	doins arc/container/myfiles/arc-myfiles-default.conf
-	doins arc/container/myfiles/arc-myfiles-read.conf
-	doins arc/container/myfiles/arc-myfiles-write.conf
-}
diff --git a/chromeos-base/arc-myfiles/arc-myfiles-0.0.1-r201.ebuild b/chromeos-base/arc-myfiles/arc-myfiles-0.0.1-r201.ebuild
new file mode 100644
index 0000000..1b9dfae
--- /dev/null
+++ b/chromeos-base/arc-myfiles/arc-myfiles-0.0.1-r201.ebuild
@@ -0,0 +1,32 @@
+# Copyright 2019 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CROS_WORKON_COMMIT="f34cf3a06f7b17b7829185630d886a5d9d3f0e75"
+CROS_WORKON_TREE=("791c6808b4f4f5f1c484108d66ff958d65f8f1e3" "c8a2550e2697f391dc686b4a72841d4568a5de73" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
+CROS_WORKON_INCREMENTAL_BUILD="1"
+CROS_WORKON_LOCALNAME="platform2"
+CROS_WORKON_PROJECT="chromiumos/platform2"
+CROS_WORKON_OUTOFTREE_BUILD=1
+CROS_WORKON_SUBTREE="common-mk arc/container/myfiles .gn"
+
+inherit cros-workon
+
+DESCRIPTION="Container to run Android's MyFiles daemon."
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/arc/container/myfiles"
+
+LICENSE="BSD-Google"
+KEYWORDS="*"
+
+RDEPEND="chromeos-base/mount-passthrough
+	!<chromeos-base/chromeos-cheets-scripts-0.0.2-r470
+"
+
+src_install() {
+	insinto /etc/init
+	doins arc/container/myfiles/arc-myfiles.conf
+	doins arc/container/myfiles/arc-myfiles-default.conf
+	doins arc/container/myfiles/arc-myfiles-read.conf
+	doins arc/container/myfiles/arc-myfiles-write.conf
+}
diff --git a/chromeos-base/arc-obb-mounter/arc-obb-mounter-0.0.2-r423.ebuild b/chromeos-base/arc-obb-mounter/arc-obb-mounter-0.0.2-r423.ebuild
deleted file mode 100644
index 869c223..0000000
--- a/chromeos-base/arc-obb-mounter/arc-obb-mounter-0.0.2-r423.ebuild
+++ /dev/null
@@ -1,65 +0,0 @@
-# Copyright 2017 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CROS_WORKON_COMMIT="b05e4a6b92b2cfe608b6cd8d5d37168680fc080e"
-CROS_WORKON_TREE=("52a8a8b6d3bbca5e90d4761aa308a5541d52b1bb" "d530cceec5d2c60c71f02b70f0cdd617e82f2d0c" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
-CROS_WORKON_INCREMENTAL_BUILD="1"
-CROS_WORKON_LOCALNAME="platform2"
-CROS_WORKON_PROJECT="chromiumos/platform2"
-CROS_WORKON_OUTOFTREE_BUILD=1
-CROS_WORKON_SUBTREE="common-mk arc/container/obb-mounter .gn"
-
-PLATFORM_SUBDIR="arc/container/obb-mounter"
-
-inherit cros-workon platform
-
-DESCRIPTION="D-Bus service to mount OBB files"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/arc/container/obb-mounter"
-
-LICENSE="BSD-Google"
-KEYWORDS="*"
-
-RDEPEND="
-	sys-fs/fuse:=
-	sys-libs/libcap:=
-"
-
-DEPEND="${RDEPEND}"
-
-BDEPEND="
-	virtual/pkgconfig
-"
-
-
-CONTAINER_DIR="/opt/google/containers/arc-obb-mounter"
-
-src_install() {
-	dobin "${OUT}"/arc-obb-mounter
-	dobin "${OUT}"/mount-obb
-
-	insinto /etc/dbus-1/system.d
-	doins org.chromium.ArcObbMounter.conf
-
-	insinto /etc/init
-	doins init/arc-obb-mounter.conf
-
-	insinto "${CONTAINER_DIR}"
-	doins "${OUT}"/rootfs.squashfs
-
-	# Keep the parent directory of mountpoints inaccessible from non-root
-	# users because mountpoints themselves are often world-readable but we
-	# do not want to expose them.
-	# container-root is where the root filesystem of the container in which
-	# arc-obb-mounter daemon runs is mounted.
-	diropts --mode=0700 --owner=root --group=root
-	keepdir "${CONTAINER_DIR}"/mountpoints/
-	keepdir "${CONTAINER_DIR}"/mountpoints/container-root
-
-	platform_fuzzer_install "${S}"/OWNERS "${OUT}"/mount-obb_fuzzer
-}
-
-platform_pkg_test() {
-	platform_test "run" "${OUT}/arc-obb-mounter_testrunner"
-}
diff --git a/chromeos-base/arc-obb-mounter/arc-obb-mounter-0.0.2-r451.ebuild b/chromeos-base/arc-obb-mounter/arc-obb-mounter-0.0.2-r451.ebuild
new file mode 100644
index 0000000..bc78232
--- /dev/null
+++ b/chromeos-base/arc-obb-mounter/arc-obb-mounter-0.0.2-r451.ebuild
@@ -0,0 +1,65 @@
+# Copyright 2017 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CROS_WORKON_COMMIT="f34cf3a06f7b17b7829185630d886a5d9d3f0e75"
+CROS_WORKON_TREE=("791c6808b4f4f5f1c484108d66ff958d65f8f1e3" "e77993554f66d7d254d4cdb7210c63195cd7d453" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
+CROS_WORKON_INCREMENTAL_BUILD="1"
+CROS_WORKON_LOCALNAME="platform2"
+CROS_WORKON_PROJECT="chromiumos/platform2"
+CROS_WORKON_OUTOFTREE_BUILD=1
+CROS_WORKON_SUBTREE="common-mk arc/container/obb-mounter .gn"
+
+PLATFORM_SUBDIR="arc/container/obb-mounter"
+
+inherit cros-workon platform
+
+DESCRIPTION="D-Bus service to mount OBB files"
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/arc/container/obb-mounter"
+
+LICENSE="BSD-Google"
+KEYWORDS="*"
+
+RDEPEND="
+	sys-fs/fuse:=
+	sys-libs/libcap:=
+"
+
+DEPEND="${RDEPEND}"
+
+BDEPEND="
+	virtual/pkgconfig
+"
+
+
+CONTAINER_DIR="/opt/google/containers/arc-obb-mounter"
+
+src_install() {
+	dobin "${OUT}"/arc-obb-mounter
+	dobin "${OUT}"/mount-obb
+
+	insinto /etc/dbus-1/system.d
+	doins org.chromium.ArcObbMounter.conf
+
+	insinto /etc/init
+	doins init/arc-obb-mounter.conf
+
+	insinto "${CONTAINER_DIR}"
+	doins "${OUT}"/rootfs.squashfs
+
+	# Keep the parent directory of mountpoints inaccessible from non-root
+	# users because mountpoints themselves are often world-readable but we
+	# do not want to expose them.
+	# container-root is where the root filesystem of the container in which
+	# arc-obb-mounter daemon runs is mounted.
+	diropts --mode=0700 --owner=root --group=root
+	keepdir "${CONTAINER_DIR}"/mountpoints/
+	keepdir "${CONTAINER_DIR}"/mountpoints/container-root
+
+	platform_fuzzer_install "${S}"/OWNERS "${OUT}"/mount-obb_fuzzer
+}
+
+platform_pkg_test() {
+	platform_test "run" "${OUT}/arc-obb-mounter_testrunner"
+}
diff --git a/chromeos-base/arc-removable-media/arc-removable-media-0.0.1-r266.ebuild b/chromeos-base/arc-removable-media/arc-removable-media-0.0.1-r266.ebuild
deleted file mode 100644
index d28e277..0000000
--- a/chromeos-base/arc-removable-media/arc-removable-media-0.0.1-r266.ebuild
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 2018 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CROS_WORKON_COMMIT="891275e43ab2ed3070c377dd889259604911e046"
-CROS_WORKON_TREE=("52a8a8b6d3bbca5e90d4761aa308a5541d52b1bb" "09c638306b818afa68992fcdd0d069ccbdcb3caa" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
-CROS_WORKON_INCREMENTAL_BUILD="1"
-CROS_WORKON_LOCALNAME="platform2"
-CROS_WORKON_PROJECT="chromiumos/platform2"
-CROS_WORKON_OUTOFTREE_BUILD=1
-CROS_WORKON_SUBTREE="common-mk arc/container/removable-media .gn"
-
-inherit cros-workon
-
-DESCRIPTION="Container to run Android's removable-media daemon."
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/arc/container/removable-media"
-
-LICENSE="BSD-Google"
-KEYWORDS="*"
-
-RDEPEND="chromeos-base/mount-passthrough
-	!<chromeos-base/chromeos-cheets-scripts-0.0.2-r470
-"
-
-src_install() {
-	insinto /etc/init
-	doins arc/container/removable-media/arc-removable-media.conf
-	doins arc/container/removable-media/arc-removable-media-default.conf
-	doins arc/container/removable-media/arc-removable-media-read.conf
-	doins arc/container/removable-media/arc-removable-media-write.conf
-}
diff --git a/chromeos-base/arc-removable-media/arc-removable-media-0.0.1-r293.ebuild b/chromeos-base/arc-removable-media/arc-removable-media-0.0.1-r293.ebuild
new file mode 100644
index 0000000..729b047
--- /dev/null
+++ b/chromeos-base/arc-removable-media/arc-removable-media-0.0.1-r293.ebuild
@@ -0,0 +1,32 @@
+# Copyright 2018 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CROS_WORKON_COMMIT="f34cf3a06f7b17b7829185630d886a5d9d3f0e75"
+CROS_WORKON_TREE=("791c6808b4f4f5f1c484108d66ff958d65f8f1e3" "a668f1f1ed688f833488719ca2ccefc7e1e4272b" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
+CROS_WORKON_INCREMENTAL_BUILD="1"
+CROS_WORKON_LOCALNAME="platform2"
+CROS_WORKON_PROJECT="chromiumos/platform2"
+CROS_WORKON_OUTOFTREE_BUILD=1
+CROS_WORKON_SUBTREE="common-mk arc/container/removable-media .gn"
+
+inherit cros-workon
+
+DESCRIPTION="Container to run Android's removable-media daemon."
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/arc/container/removable-media"
+
+LICENSE="BSD-Google"
+KEYWORDS="*"
+
+RDEPEND="chromeos-base/mount-passthrough
+	!<chromeos-base/chromeos-cheets-scripts-0.0.2-r470
+"
+
+src_install() {
+	insinto /etc/init
+	doins arc/container/removable-media/arc-removable-media.conf
+	doins arc/container/removable-media/arc-removable-media-default.conf
+	doins arc/container/removable-media/arc-removable-media-read.conf
+	doins arc/container/removable-media/arc-removable-media-write.conf
+}
diff --git a/chromeos-base/arc-sdcard/arc-sdcard-0.0.1-r267.ebuild b/chromeos-base/arc-sdcard/arc-sdcard-0.0.1-r267.ebuild
deleted file mode 100644
index ad63110..0000000
--- a/chromeos-base/arc-sdcard/arc-sdcard-0.0.1-r267.ebuild
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright 2018 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CROS_WORKON_COMMIT="b05e4a6b92b2cfe608b6cd8d5d37168680fc080e"
-CROS_WORKON_TREE=("52a8a8b6d3bbca5e90d4761aa308a5541d52b1bb" "2bd3f2208f90e7c6e42e1b037e211615995f768a" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
-CROS_WORKON_INCREMENTAL_BUILD="1"
-CROS_WORKON_LOCALNAME="platform2"
-CROS_WORKON_PROJECT="chromiumos/platform2"
-CROS_WORKON_OUTOFTREE_BUILD=1
-CROS_WORKON_SUBTREE="common-mk arc/container/sdcard .gn"
-
-PLATFORM_SUBDIR="arc/container/sdcard"
-
-inherit cros-workon platform
-
-DESCRIPTION="Container to run Android's sdcard daemon."
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/arc/container/sdcard"
-
-LICENSE="BSD-Google"
-KEYWORDS="*"
-IUSE="esdfs"
-
-CONTAINER_DIR="/opt/google/containers/arc-sdcard"
-
-RDEPEND="!esdfs? ( chromeos-base/arc-setup )"
-DEPEND="${DEPEND}"
-
-src_install() {
-	if ! use esdfs; then
-		insinto /etc/init
-		doins arc-sdcard.conf
-	fi
-
-	insinto "${CONTAINER_DIR}"
-	doins "${OUT}"/rootfs.squashfs
-
-	# Keep the parent directory of mountpoints inaccessible from non-root
-	# users because mountpoints themselves are often world-readable but we
-	# do not want to expose them.
-	# container-root is where the root filesystem of the container in which
-	# arc-obb-mounter daemon runs is mounted.
-	diropts --mode=0700 --owner=root --group=root
-	keepdir "${CONTAINER_DIR}"/mountpoints/
-	keepdir "${CONTAINER_DIR}"/mountpoints/container-root
-}
diff --git a/chromeos-base/arc-sdcard/arc-sdcard-0.0.1-r293.ebuild b/chromeos-base/arc-sdcard/arc-sdcard-0.0.1-r293.ebuild
new file mode 100644
index 0000000..a1f0f26
--- /dev/null
+++ b/chromeos-base/arc-sdcard/arc-sdcard-0.0.1-r293.ebuild
@@ -0,0 +1,47 @@
+# Copyright 2018 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CROS_WORKON_COMMIT="f34cf3a06f7b17b7829185630d886a5d9d3f0e75"
+CROS_WORKON_TREE=("791c6808b4f4f5f1c484108d66ff958d65f8f1e3" "8d42b591edbde62798f5c6399507eb627c83326f" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
+CROS_WORKON_INCREMENTAL_BUILD="1"
+CROS_WORKON_LOCALNAME="platform2"
+CROS_WORKON_PROJECT="chromiumos/platform2"
+CROS_WORKON_OUTOFTREE_BUILD=1
+CROS_WORKON_SUBTREE="common-mk arc/container/sdcard .gn"
+
+PLATFORM_SUBDIR="arc/container/sdcard"
+
+inherit cros-workon platform
+
+DESCRIPTION="Container to run Android's sdcard daemon."
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/arc/container/sdcard"
+
+LICENSE="BSD-Google"
+KEYWORDS="*"
+IUSE="esdfs"
+
+CONTAINER_DIR="/opt/google/containers/arc-sdcard"
+
+RDEPEND="!esdfs? ( chromeos-base/arc-setup )"
+DEPEND="${DEPEND}"
+
+src_install() {
+	if ! use esdfs; then
+		insinto /etc/init
+		doins arc-sdcard.conf
+	fi
+
+	insinto "${CONTAINER_DIR}"
+	doins "${OUT}"/rootfs.squashfs
+
+	# Keep the parent directory of mountpoints inaccessible from non-root
+	# users because mountpoints themselves are often world-readable but we
+	# do not want to expose them.
+	# container-root is where the root filesystem of the container in which
+	# arc-obb-mounter daemon runs is mounted.
+	diropts --mode=0700 --owner=root --group=root
+	keepdir "${CONTAINER_DIR}"/mountpoints/
+	keepdir "${CONTAINER_DIR}"/mountpoints/container-root
+}
diff --git a/chromeos-base/arc-sensor-service/arc-sensor-service-0.0.1-r50.ebuild b/chromeos-base/arc-sensor-service/arc-sensor-service-0.0.1-r50.ebuild
deleted file mode 100644
index 23dcef7..0000000
--- a/chromeos-base/arc-sensor-service/arc-sensor-service-0.0.1-r50.ebuild
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright 2020 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CROS_WORKON_COMMIT="dd196af2250030dd395b4dece667eb87afbab09a"
-CROS_WORKON_TREE=("52a8a8b6d3bbca5e90d4761aa308a5541d52b1bb" "c4df5a89c2fa9fe19a2f058dd32ea9c45ed9d1b7" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
-CROS_WORKON_INCREMENTAL_BUILD="1"
-CROS_WORKON_LOCALNAME="platform2"
-CROS_WORKON_PROJECT="chromiumos/platform2"
-CROS_WORKON_OUTOFTREE_BUILD=1
-CROS_WORKON_SUBTREE="common-mk arc/vm/sensor_service .gn"
-
-PLATFORM_SUBDIR="arc/vm/sensor_service"
-
-inherit cros-workon platform
-
-DESCRIPTION="ARC sensor service."
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/arc/vm/sensor_service"
-
-LICENSE="BSD-Google"
-KEYWORDS="*"
-
-RDEPEND="
-"
-
-DEPEND="
-	${RDEPEND}
-"
-
-src_install() {
-	dobin "${OUT}"/arc_sensor_service
-
-	insinto /etc/init
-	doins init/arc-sensor-service.conf
-
-	insinto /etc/dbus-1/system.d
-	doins init/dbus-1/org.chromium.ArcSensorService.conf
-}
diff --git a/chromeos-base/arc-sensor-service/arc-sensor-service-0.0.1-r79.ebuild b/chromeos-base/arc-sensor-service/arc-sensor-service-0.0.1-r79.ebuild
new file mode 100644
index 0000000..87d77cb
--- /dev/null
+++ b/chromeos-base/arc-sensor-service/arc-sensor-service-0.0.1-r79.ebuild
@@ -0,0 +1,43 @@
+# Copyright 2020 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CROS_WORKON_COMMIT="f34cf3a06f7b17b7829185630d886a5d9d3f0e75"
+CROS_WORKON_TREE=("791c6808b4f4f5f1c484108d66ff958d65f8f1e3" "37d18ee31b53064c7077aaf9c02849897112588c" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
+CROS_WORKON_INCREMENTAL_BUILD="1"
+CROS_WORKON_LOCALNAME="platform2"
+CROS_WORKON_PROJECT="chromiumos/platform2"
+CROS_WORKON_OUTOFTREE_BUILD=1
+CROS_WORKON_SUBTREE="common-mk arc/vm/sensor_service .gn"
+
+PLATFORM_SUBDIR="arc/vm/sensor_service"
+
+inherit cros-workon platform
+
+DESCRIPTION="ARC sensor service."
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/arc/vm/sensor_service"
+
+LICENSE="BSD-Google"
+KEYWORDS="*"
+
+RDEPEND="
+"
+
+DEPEND="
+	${RDEPEND}
+"
+
+src_install() {
+	dobin "${OUT}"/arc_sensor_service
+
+	insinto /etc/init
+	doins init/arc-sensor-service.conf
+
+	insinto /etc/dbus-1/system.d
+	doins init/dbus-1/org.chromium.ArcSensorService.conf
+}
+
+platform_pkg_test() {
+	platform_test "run" "${OUT}/arc_sensor_service_testrunner"
+}
diff --git a/chromeos-base/arc-sensor-service/arc-sensor-service-9999.ebuild b/chromeos-base/arc-sensor-service/arc-sensor-service-9999.ebuild
index 34a629e..7bca23e 100644
--- a/chromeos-base/arc-sensor-service/arc-sensor-service-9999.ebuild
+++ b/chromeos-base/arc-sensor-service/arc-sensor-service-9999.ebuild
@@ -35,3 +35,7 @@
 	insinto /etc/dbus-1/system.d
 	doins init/dbus-1/org.chromium.ArcSensorService.conf
 }
+
+platform_pkg_test() {
+	platform_test "run" "${OUT}/arc_sensor_service_testrunner"
+}
diff --git a/chromeos-base/arc-setup/arc-setup-0.0.1-r1136.ebuild b/chromeos-base/arc-setup/arc-setup-0.0.1-r1136.ebuild
deleted file mode 100644
index f85febe..0000000
--- a/chromeos-base/arc-setup/arc-setup-0.0.1-r1136.ebuild
+++ /dev/null
@@ -1,140 +0,0 @@
-# Copyright 2017 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CROS_WORKON_COMMIT="109363d0a03be594cf5611441597c607960c4f3d"
-CROS_WORKON_TREE=("52a8a8b6d3bbca5e90d4761aa308a5541d52b1bb" "8e053bc08c1c1a3cabfd68002a489024009a06e1" "4a9d701c1716dbba6b3de3a9927299f399ec4580" "8d228c8e702aebee142bcbf0763a15786eb5b3bb" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
-CROS_WORKON_INCREMENTAL_BUILD="1"
-CROS_WORKON_LOCALNAME="platform2"
-CROS_WORKON_PROJECT="chromiumos/platform2"
-CROS_WORKON_OUTOFTREE_BUILD=1
-# TODO(crbug.com/809389): Avoid directly including headers from other packages.
-CROS_WORKON_SUBTREE="common-mk arc/setup chromeos-config metrics .gn"
-
-PLATFORM_NATIVE_TEST="yes"
-PLATFORM_SUBDIR="arc/setup"
-
-inherit cros-workon platform
-
-DESCRIPTION="Set up environment to run ARC."
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/arc/setup"
-
-LICENSE="BSD-Google"
-KEYWORDS="*"
-IUSE="
-	arcpp
-	arcvm
-	esdfs
-	fuzzer
-	generated_cros_config
-	houdini
-	houdini64
-	ndk_translation
-	unibuild"
-
-REQUIRED_USE="|| ( arcpp arcvm )"
-
-COMMON_DEPEND="
-	esdfs? ( chromeos-base/arc-sdcard )
-	chromeos-base/bootstat:=
-	chromeos-base/chromeos-config-tools:=
-	chromeos-base/cryptohome-client:=
-	>=chromeos-base/metrics-0.0.1-r3152:=
-	chromeos-base/patchpanel-client:=
-	dev-libs/dbus-glib:=
-	dev-libs/protobuf:=
-	sys-libs/libselinux:=
-	chromeos-base/minijail:=
-"
-
-RDEPEND="${COMMON_DEPEND}
-	!<chromeos-base/arc-common-scripts-0.0.1-r131
-	!<chromeos-base/arcvm-common-scripts-0.0.1-r77
-	chromeos-base/patchpanel
-	arcvm? ( chromeos-base/crosvm )
-	arcpp? (
-		chromeos-base/swap-init
-		esdfs? ( sys-apps/restorecon )
-	)
-"
-
-DEPEND="${COMMON_DEPEND}
-	unibuild? (
-		!generated_cros_config? ( chromeos-base/chromeos-config )
-		generated_cros_config? ( chromeos-base/chromeos-config-bsp:= )
-	)
-	chromeos-base/system_api:=[fuzzer?]
-"
-
-
-enable_esdfs() {
-	[[ -f "$1" ]] || die
-	local data=$(jq ".USE_ESDFS=true" "$1")
-	echo "${data}" > "$1" || die
-}
-
-
-src_install() {
-	# Used for both ARCVM and ARC.
-	dosbin "${OUT}"/arc-remove-data
-	dosbin "${OUT}"/arc-remove-stale-data
-	insinto /etc/init
-	doins init/arc-remove-data.conf
-	doins init/arc-stale-directory-remover.conf
-
-	# Some binaries are only for ARCVM
-	if use arcvm; then
-		dosbin "${OUT}"/arc-apply-per-board-config
-		dosbin "${OUT}"/arc-create-data
-		dosbin "${OUT}"/arc-handle-upgrade
-		insinto /etc/init
-		doins init/arcvm-per-board-features.conf
-		doins init/arc-create-data.conf
-		doins init/arc-handle-upgrade.conf
-		insinto /etc/dbus-1/system.d
-		doins init/dbus-1/ArcVmSetupUpstart.conf
-	fi
-
-	# Other files are only for ARC.
-	if use arcpp; then
-		dosbin "${OUT}"/arc-setup
-		insinto /etc/init
-		doins init/arc-boot-continue.conf
-		doins init/arc-lifetime.conf
-		doins init/arc-update-restorecon-last.conf
-		if use esdfs; then
-			doins init/arc-sdcard.conf
-			doins init/arc-sdcard-mount.conf
-		fi
-		doins init/arc-system-mount.conf
-		insinto /etc/dbus-1/system.d
-		doins init/dbus-1/ArcSetupUpstart.conf
-
-		insinto /usr/share/arc-setup
-		doins init/arc-setup/config.json
-
-		if use esdfs; then
-			enable_esdfs "${D}/usr/share/arc-setup/config.json"
-		fi
-
-		insinto /opt/google/containers/arc-art
-		doins "${OUT}/dev-rootfs.squashfs"
-
-		# container-root is where the root filesystem of the container in which
-		# patchoat and dex2oat runs is mounted. dev-rootfs is mount point
-		# for squashfs.
-		diropts --mode=0700 --owner=root --group=root
-		keepdir /opt/google/containers/arc-art/mountpoints/container-root
-		keepdir /opt/google/containers/arc-art/mountpoints/dev-rootfs
-		keepdir /opt/google/containers/arc-art/mountpoints/vendor
-
-		platform_fuzzer_install "${S}"/OWNERS "${OUT}"/arc_setup_util_find_all_properties_fuzzer
-		platform_fuzzer_install "${S}"/OWNERS "${OUT}"/arc_setup_util_find_fingerprint_and_sdk_version_fuzzer
-		platform_fuzzer_install "${S}"/OWNERS "${OUT}"/arc_property_util_expand_property_contents_fuzzer
-	fi
-}
-
-platform_pkg_test() {
-	platform_test "run" "${OUT}/arc-setup_testrunner"
-}
diff --git a/chromeos-base/arc-setup/arc-setup-0.0.1-r1248.ebuild b/chromeos-base/arc-setup/arc-setup-0.0.1-r1248.ebuild
new file mode 100644
index 0000000..cb5f976
--- /dev/null
+++ b/chromeos-base/arc-setup/arc-setup-0.0.1-r1248.ebuild
@@ -0,0 +1,148 @@
+# Copyright 2017 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CROS_WORKON_COMMIT="7ad3c0d318ab6cd2ff9a75d1b99ef69d423e433d"
+CROS_WORKON_TREE=("791c6808b4f4f5f1c484108d66ff958d65f8f1e3" "f4925a46fc9b9ab39b7c7a11ad97e12a0d0bb39d" "aa0612733aca2d5ffa65470f07408228b473ebdb" "a9708ef639f0f7929195d0f3921ebd1a12ad96bd" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
+CROS_WORKON_INCREMENTAL_BUILD="1"
+CROS_WORKON_LOCALNAME="platform2"
+CROS_WORKON_PROJECT="chromiumos/platform2"
+CROS_WORKON_OUTOFTREE_BUILD=1
+# TODO(crbug.com/809389): Avoid directly including headers from other packages.
+CROS_WORKON_SUBTREE="common-mk arc/setup chromeos-config metrics .gn"
+
+PLATFORM_NATIVE_TEST="yes"
+PLATFORM_SUBDIR="arc/setup"
+
+inherit cros-workon platform
+
+DESCRIPTION="Set up environment to run ARC."
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/arc/setup"
+
+LICENSE="BSD-Google"
+KEYWORDS="*"
+IUSE="
+	arcpp
+	arcvm
+	esdfs
+	fuzzer
+	generated_cros_config
+	houdini
+	houdini64
+	iioservice
+	ndk_translation
+	unibuild
+	test"
+
+REQUIRED_USE="|| ( arcpp arcvm )"
+
+COMMON_DEPEND="
+	arcpp? (
+		esdfs? ( chromeos-base/arc-sdcard )
+	)
+	chromeos-base/bootstat:=
+	chromeos-base/chromeos-config-tools:=
+	chromeos-base/cryptohome-client:=
+	>=chromeos-base/metrics-0.0.1-r3152:=
+	chromeos-base/patchpanel-client:=
+	dev-libs/libxml2:=
+	dev-libs/protobuf:=
+	sys-libs/libselinux:=
+	chromeos-base/minijail:=
+"
+
+RDEPEND="${COMMON_DEPEND}
+	!<chromeos-base/arc-common-scripts-0.0.1-r131
+	!<chromeos-base/arcvm-common-scripts-0.0.1-r77
+	chromeos-base/patchpanel
+	arcvm? ( chromeos-base/crosvm )
+	arcpp? (
+		chromeos-base/swap-init
+		esdfs? ( sys-apps/restorecon )
+	)
+"
+
+DEPEND="${COMMON_DEPEND}
+	unibuild? (
+		!generated_cros_config? ( chromeos-base/chromeos-config )
+		generated_cros_config? ( chromeos-base/chromeos-config-bsp:= )
+	)
+	chromeos-base/system_api:=[fuzzer?]
+	test? ( chromeos-base/arc-base )
+"
+
+
+enable_esdfs() {
+	[[ -f "$1" ]] || die
+	local data=$(jq ".USE_ESDFS=true" "$1")
+	echo "${data}" > "$1" || die
+}
+
+
+src_install() {
+	# Used for both ARCVM and ARC.
+	dosbin "${OUT}"/arc-prepare-host-generated-dir
+	dosbin "${OUT}"/arc-remove-data
+	dosbin "${OUT}"/arc-remove-stale-data
+	insinto /etc/init
+	doins init/arc-prepare-host-generated-dir.conf
+	doins init/arc-remove-data.conf
+	doins init/arc-stale-directory-remover.conf
+
+	# Some binaries are only for ARCVM
+	if use arcvm; then
+		dosbin "${OUT}"/arc-apply-per-board-config
+		dosbin "${OUT}"/arc-create-data
+		dosbin "${OUT}"/arc-handle-upgrade
+		insinto /etc/init
+		doins init/arcvm-per-board-features.conf
+		doins init/arc-create-data.conf
+		doins init/arc-handle-upgrade.conf
+		insinto /etc/dbus-1/system.d
+		doins init/dbus-1/ArcVmSetupUpstart.conf
+	fi
+
+	# Other files are only for ARC.
+	if use arcpp; then
+		dosbin "${OUT}"/arc-setup
+		insinto /etc/init
+		doins init/arc-boot-continue.conf
+		doins init/arc-lifetime.conf
+		doins init/arc-update-restorecon-last.conf
+		doins init/arcpp-post-login-services.conf
+		if use esdfs; then
+			doins init/arc-sdcard.conf
+			doins init/arc-sdcard-mount.conf
+		fi
+		doins init/arc-system-mount.conf
+		insinto /etc/dbus-1/system.d
+		doins init/dbus-1/ArcSetupUpstart.conf
+
+		insinto /usr/share/arc-setup
+		doins init/arc-setup/config.json
+
+		if use esdfs; then
+			enable_esdfs "${D}/usr/share/arc-setup/config.json"
+		fi
+
+		insinto /opt/google/containers/arc-art
+		doins "${OUT}/dev-rootfs.squashfs"
+
+		# container-root is where the root filesystem of the container in which
+		# patchoat and dex2oat runs is mounted. dev-rootfs is mount point
+		# for squashfs.
+		diropts --mode=0700 --owner=root --group=root
+		keepdir /opt/google/containers/arc-art/mountpoints/container-root
+		keepdir /opt/google/containers/arc-art/mountpoints/dev-rootfs
+		keepdir /opt/google/containers/arc-art/mountpoints/vendor
+
+		platform_fuzzer_install "${S}"/OWNERS "${OUT}"/arc_setup_util_find_all_properties_fuzzer
+		platform_fuzzer_install "${S}"/OWNERS "${OUT}"/arc_setup_util_find_fingerprint_and_sdk_version_fuzzer
+		platform_fuzzer_install "${S}"/OWNERS "${OUT}"/arc_property_util_expand_property_contents_fuzzer
+	fi
+}
+
+platform_pkg_test() {
+	platform_test "run" "${OUT}/arc-setup_testrunner"
+}
diff --git a/chromeos-base/arc-setup/arc-setup-9999.ebuild b/chromeos-base/arc-setup/arc-setup-9999.ebuild
index 52541c2..b66958c 100644
--- a/chromeos-base/arc-setup/arc-setup-9999.ebuild
+++ b/chromeos-base/arc-setup/arc-setup-9999.ebuild
@@ -28,19 +28,23 @@
 	generated_cros_config
 	houdini
 	houdini64
+	iioservice
 	ndk_translation
-	unibuild"
+	unibuild
+	test"
 
 REQUIRED_USE="|| ( arcpp arcvm )"
 
 COMMON_DEPEND="
-	esdfs? ( chromeos-base/arc-sdcard )
+	arcpp? (
+		esdfs? ( chromeos-base/arc-sdcard )
+	)
 	chromeos-base/bootstat:=
 	chromeos-base/chromeos-config-tools:=
 	chromeos-base/cryptohome-client:=
 	>=chromeos-base/metrics-0.0.1-r3152:=
 	chromeos-base/patchpanel-client:=
-	dev-libs/dbus-glib:=
+	dev-libs/libxml2:=
 	dev-libs/protobuf:=
 	sys-libs/libselinux:=
 	chromeos-base/minijail:=
@@ -63,6 +67,7 @@
 		generated_cros_config? ( chromeos-base/chromeos-config-bsp:= )
 	)
 	chromeos-base/system_api:=[fuzzer?]
+	test? ( chromeos-base/arc-base )
 "
 
 
@@ -75,9 +80,11 @@
 
 src_install() {
 	# Used for both ARCVM and ARC.
+	dosbin "${OUT}"/arc-prepare-host-generated-dir
 	dosbin "${OUT}"/arc-remove-data
 	dosbin "${OUT}"/arc-remove-stale-data
 	insinto /etc/init
+	doins init/arc-prepare-host-generated-dir.conf
 	doins init/arc-remove-data.conf
 	doins init/arc-stale-directory-remover.conf
 
@@ -101,6 +108,7 @@
 		doins init/arc-boot-continue.conf
 		doins init/arc-lifetime.conf
 		doins init/arc-update-restorecon-last.conf
+		doins init/arcpp-post-login-services.conf
 		if use esdfs; then
 			doins init/arc-sdcard.conf
 			doins init/arc-sdcard-mount.conf
diff --git a/chromeos-base/arc-sslh-init/arc-sslh-init-0.0.1-r15.ebuild b/chromeos-base/arc-sslh-init/arc-sslh-init-0.0.1-r19.ebuild
similarity index 100%
rename from chromeos-base/arc-sslh-init/arc-sslh-init-0.0.1-r15.ebuild
rename to chromeos-base/arc-sslh-init/arc-sslh-init-0.0.1-r19.ebuild
diff --git a/chromeos-base/arc-sslh-init/files/sslh-seccomp-amd64.policy b/chromeos-base/arc-sslh-init/files/sslh-seccomp-amd64.policy
index f07258f..29cf14a 100644
--- a/chromeos-base/arc-sslh-init/files/sslh-seccomp-amd64.policy
+++ b/chromeos-base/arc-sslh-init/files/sslh-seccomp-amd64.policy
@@ -19,6 +19,7 @@
 stat: 1
 mmap: arg2 in ~PROT_EXEC || arg2 in ~PROT_WRITE
 fstat: 1
+newfstatat: 1
 mprotect: arg2 in ~PROT_EXEC || arg2 in ~PROT_WRITE
 rt_sigaction: 1
 brk: 1
@@ -42,3 +43,5 @@
 ioctl: arg1 == SIOCGIFNAME
 # When we catch a SIGTERM, we kill children with SIGTERM too.
 kill: 1
+lseek: 1
+fstatfs: 1
diff --git a/chromeos-base/arc-sslh-init/files/sslh-seccomp-arm.policy b/chromeos-base/arc-sslh-init/files/sslh-seccomp-arm.policy
index 1ad24fe..978f5f0 100644
--- a/chromeos-base/arc-sslh-init/files/sslh-seccomp-arm.policy
+++ b/chromeos-base/arc-sslh-init/files/sslh-seccomp-arm.policy
@@ -42,3 +42,6 @@
 # When we catch a SIGTERM, we kill children with SIGTERM too.
 kill: 1
 sigreturn: 1
+lseek: 1
+_llseek: 1
+fstatfs64: 1
diff --git a/chromeos-base/arc-sslh-init/files/sslh-seccomp-arm64.policy b/chromeos-base/arc-sslh-init/files/sslh-seccomp-arm64.policy
index 9ad3660..a2308475 100644
--- a/chromeos-base/arc-sslh-init/files/sslh-seccomp-arm64.policy
+++ b/chromeos-base/arc-sslh-init/files/sslh-seccomp-arm64.policy
@@ -40,3 +40,5 @@
 ioctl: arg1 == SIOCGIFNAME
 # When we catch a SIGTERM, we kill children with SIGTERM too.
 kill: 1
+lseek: 1
+fstatfs: 1
diff --git a/chromeos-base/arcvm-boot-notification-server/arcvm-boot-notification-server-0.0.1-r102.ebuild b/chromeos-base/arcvm-boot-notification-server/arcvm-boot-notification-server-0.0.1-r102.ebuild
new file mode 100644
index 0000000..490ed8c
--- /dev/null
+++ b/chromeos-base/arcvm-boot-notification-server/arcvm-boot-notification-server-0.0.1-r102.ebuild
@@ -0,0 +1,44 @@
+# Copyright 2020 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+EAPI=7
+
+CROS_WORKON_COMMIT="95515b5e08fc2fa008e47885fda8bd443d8c5b0b"
+CROS_WORKON_TREE=("791c6808b4f4f5f1c484108d66ff958d65f8f1e3" "0c5d891fa800a59e0e40fbece73b10a84f3fde65" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
+CROS_WORKON_INCREMENTAL_BUILD="1"
+CROS_WORKON_LOCALNAME="platform2"
+CROS_WORKON_PROJECT="chromiumos/platform2"
+CROS_WORKON_OUTOFTREE_BUILD=1
+CROS_WORKON_SUBTREE="common-mk arc/vm/boot_notification_server .gn"
+
+PLATFORM_SUBDIR="arc/vm/boot_notification_server"
+
+inherit cros-workon platform user
+
+DESCRIPTION="ARCVM boot notification server"
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/arc/vm/boot_notification_server"
+
+LICENSE="BSD-Google"
+KEYWORDS="*"
+SLOT="0/0"
+IUSE="+seccomp"
+
+src_install() {
+	newsbin "${OUT}/boot_notification_server" arcvm_boot_notification_server
+
+	insinto /etc/init
+	doins arcvm-boot-notification-server.conf
+
+	insinto /usr/share/policy
+	use seccomp && newins "arcvm_boot_notification_server-seccomp-${ARCH}.policy" arcvm_boot_notification_server-seccomp.policy
+}
+
+platform_pkg_test() {
+	platform_test "run" "${OUT}/boot_notification_server_testrunner"
+}
+
+pkg_preinst() {
+	enewuser arcvm-boot-notification-server
+	enewgroup arcvm-boot-notification-server
+}
diff --git a/chromeos-base/arcvm-boot-notification-server/arcvm-boot-notification-server-0.0.1-r71.ebuild b/chromeos-base/arcvm-boot-notification-server/arcvm-boot-notification-server-0.0.1-r71.ebuild
deleted file mode 100644
index 9d55915..0000000
--- a/chromeos-base/arcvm-boot-notification-server/arcvm-boot-notification-server-0.0.1-r71.ebuild
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright 2020 The Chromium OS Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-EAPI=7
-
-CROS_WORKON_COMMIT="b05e4a6b92b2cfe608b6cd8d5d37168680fc080e"
-CROS_WORKON_TREE=("52a8a8b6d3bbca5e90d4761aa308a5541d52b1bb" "546ca65e6631a7978be69ea8f13df0d99a1bc230" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
-CROS_WORKON_INCREMENTAL_BUILD="1"
-CROS_WORKON_LOCALNAME="platform2"
-CROS_WORKON_PROJECT="chromiumos/platform2"
-CROS_WORKON_OUTOFTREE_BUILD=1
-CROS_WORKON_SUBTREE="common-mk arc/vm/boot_notification_server .gn"
-
-PLATFORM_SUBDIR="arc/vm/boot_notification_server"
-
-inherit cros-workon platform user
-
-DESCRIPTION="ARCVM boot notification server"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/arc/vm/boot_notification_server"
-
-LICENSE="BSD-Google"
-KEYWORDS="*"
-SLOT="0/0"
-IUSE="+seccomp"
-
-src_install() {
-	newsbin "${OUT}/boot_notification_server" arcvm_boot_notification_server
-
-	insinto /etc/init
-	doins arcvm-boot-notification-server.conf
-
-	insinto /usr/share/policy
-	use seccomp && newins "arcvm_boot_notification_server-seccomp-${ARCH}.policy" arcvm_boot_notification_server-seccomp.policy
-}
-
-platform_pkg_test() {
-	platform_test "run" "${OUT}/boot_notification_server_testrunner"
-}
-
-pkg_preinst() {
-	enewuser arcvm-boot-notification-server
-	enewgroup arcvm-boot-notification-server
-}
diff --git a/chromeos-base/arcvm-common-scripts/arcvm-common-scripts-0.0.1-r104.ebuild b/chromeos-base/arcvm-common-scripts/arcvm-common-scripts-0.0.1-r104.ebuild
deleted file mode 100644
index 101fb47..0000000
--- a/chromeos-base/arcvm-common-scripts/arcvm-common-scripts-0.0.1-r104.ebuild
+++ /dev/null
@@ -1,53 +0,0 @@
-# Copyright 2018 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CROS_WORKON_COMMIT="891275e43ab2ed3070c377dd889259604911e046"
-CROS_WORKON_TREE=("52a8a8b6d3bbca5e90d4761aa308a5541d52b1bb" "ecb73efb7df94308415446f7ae5df12d18f3f098" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
-CROS_WORKON_INCREMENTAL_BUILD="1"
-CROS_WORKON_LOCALNAME="platform2"
-CROS_WORKON_PROJECT="chromiumos/platform2"
-CROS_WORKON_OUTOFTREE_BUILD=1
-CROS_WORKON_SUBTREE="common-mk arc/vm/scripts .gn"
-
-inherit cros-workon
-
-DESCRIPTION="ARCVM common scripts."
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/arc/vm/scripts"
-
-LICENSE="BSD-Google"
-KEYWORDS="*"
-
-RDEPEND="
-	${RDEPEND}
-	!<=chromeos-base/arc-base-0.0.1-r349
-	!<=chromeos-base/arc-common-scripts-0.0.1-r132
-	chromeos-base/arcvm-mount-media-dirs
-"
-
-src_install() {
-	dosbin arc/vm/scripts/android-sh
-
-	insinto /etc/init
-	doins arc/vm/scripts/init/arcvm-fsverity-certs.conf
-	doins arc/vm/scripts/init/arcvm-host.conf
-	doins arc/vm/scripts/init/arcvm-post-login-services.conf
-	doins arc/vm/scripts/init/arcvm-post-vm-start-services.conf
-	doins arc/vm/scripts/init/arcvm-pre-login-services.conf
-	doins arc/vm/scripts/init/arcvm-ureadahead.conf
-
-	insinto /etc/dbus-1/system.d
-	doins arc/vm/scripts/init/dbus-1/ArcVmScripts.conf
-
-	insinto /usr/share/arcvm
-	doins arc/vm/scripts/init/config.json
-
-	insinto /usr/share/arcvm/fsverity-certs
-	doins arc/vm/scripts/init/certs/fsverity-release.x509.der
-	doins arc/vm/scripts/init/certs/play_store_fsi_cert.der
-
-	# Redirect ARCVM logs to arc.log.
-	insinto /etc/rsyslog.d
-	doins arc/vm/scripts/rsyslog.arc.conf
-}
diff --git a/chromeos-base/arcvm-common-scripts/arcvm-common-scripts-0.0.1-r140.ebuild b/chromeos-base/arcvm-common-scripts/arcvm-common-scripts-0.0.1-r140.ebuild
new file mode 100644
index 0000000..abb1d17
--- /dev/null
+++ b/chromeos-base/arcvm-common-scripts/arcvm-common-scripts-0.0.1-r140.ebuild
@@ -0,0 +1,53 @@
+# Copyright 2018 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CROS_WORKON_COMMIT="f34cf3a06f7b17b7829185630d886a5d9d3f0e75"
+CROS_WORKON_TREE=("791c6808b4f4f5f1c484108d66ff958d65f8f1e3" "68f4c05e6bc458438aeae9eaf6c21df9bbf74427" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
+CROS_WORKON_INCREMENTAL_BUILD="1"
+CROS_WORKON_LOCALNAME="platform2"
+CROS_WORKON_PROJECT="chromiumos/platform2"
+CROS_WORKON_OUTOFTREE_BUILD=1
+CROS_WORKON_SUBTREE="common-mk arc/vm/scripts .gn"
+
+inherit cros-workon
+
+DESCRIPTION="ARCVM common scripts."
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/arc/vm/scripts"
+
+LICENSE="BSD-Google"
+KEYWORDS="*"
+
+RDEPEND="
+	${RDEPEND}
+	!<=chromeos-base/arc-base-0.0.1-r349
+	!<=chromeos-base/arc-common-scripts-0.0.1-r132
+	chromeos-base/arcvm-mount-media-dirs
+"
+
+src_install() {
+	dosbin arc/vm/scripts/android-sh
+
+	insinto /etc/init
+	doins arc/vm/scripts/init/arcvm-fsverity-certs.conf
+	doins arc/vm/scripts/init/arcvm-host.conf
+	doins arc/vm/scripts/init/arcvm-post-login-services.conf
+	doins arc/vm/scripts/init/arcvm-post-vm-start-services.conf
+	doins arc/vm/scripts/init/arcvm-pre-login-services.conf
+	doins arc/vm/scripts/init/arcvm-ureadahead.conf
+
+	insinto /etc/dbus-1/system.d
+	doins arc/vm/scripts/init/dbus-1/ArcVmScripts.conf
+
+	insinto /usr/share/arcvm
+	doins arc/vm/scripts/init/config.json
+
+	insinto /usr/share/arcvm/fsverity-certs
+	doins arc/vm/scripts/init/certs/fsverity-release.x509.der
+	doins arc/vm/scripts/init/certs/play_store_fsi_cert.der
+
+	# Redirect ARCVM logs to arc.log.
+	insinto /etc/rsyslog.d
+	doins arc/vm/scripts/rsyslog.arc.conf
+}
diff --git a/chromeos-base/arcvm-forward-pstore/arcvm-forward-pstore-0.0.1-r175.ebuild b/chromeos-base/arcvm-forward-pstore/arcvm-forward-pstore-0.0.1-r175.ebuild
new file mode 100644
index 0000000..2bc64ea
--- /dev/null
+++ b/chromeos-base/arcvm-forward-pstore/arcvm-forward-pstore-0.0.1-r175.ebuild
@@ -0,0 +1,59 @@
+# Copyright 2020 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+EAPI=7
+
+CROS_WORKON_COMMIT="6f9011123f3656c45bb34148673aa110a22326b3"
+CROS_WORKON_TREE=("791c6808b4f4f5f1c484108d66ff958d65f8f1e3" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb" "7743fe686ef9bd5ed2f18d1eb6cf820611970167" "7ef75a42aba67052842459f221271e681184cc89" "c1bde153626532428bf7409bc0597e79452c5eb8")
+CROS_WORKON_INCREMENTAL_BUILD="1"
+CROS_WORKON_LOCALNAME="platform2"
+CROS_WORKON_PROJECT="chromiumos/platform2"
+CROS_WORKON_OUTOFTREE_BUILD=1
+
+PLATFORM2_PATHS=(
+	common-mk
+	.gn
+
+	arc/vm/forward-pstore
+
+	vm_tools/BUILD.gn
+	vm_tools/common
+)
+CROS_WORKON_SUBTREE="${PLATFORM2_PATHS[*]}"
+
+PLATFORM_SUBDIR="arc/vm/forward-pstore"
+
+inherit cros-workon platform
+
+DESCRIPTION="Forwards pstore file for ARCVM after upgrade."
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/HEAD/arc/vm/forward-pstore"
+
+LICENSE="BSD-Google"
+KEYWORDS="*"
+SLOT="0/0"
+IUSE="+seccomp"
+
+RDEPEND="
+	dev-libs/protobuf:=
+"
+DEPEND="
+	${RDEPEND}
+	chromeos-base/system_api:=
+	chromeos-base/vm_protos:=
+"
+
+src_install() {
+	newsbin "${OUT}/arcvm-forward-pstore" arcvm-forward-pstore
+
+	insinto /etc/init
+	doins arcvm-forward-pstore.conf
+
+	# Install DBUS configuration file.
+	insinto /etc/dbus-1/system.d
+	doins dbus/org.chromium.ArcVmForwardPstore.conf
+
+	# Install seccomp policy
+	insinto /usr/share/policy
+	use seccomp && newins "seccomp-${ARCH}.policy" arcvm-forward-pstore-seccomp.policy
+}
diff --git a/chromeos-base/arcvm-forward-pstore/arcvm-forward-pstore-0.0.1-r41.ebuild b/chromeos-base/arcvm-forward-pstore/arcvm-forward-pstore-0.0.1-r41.ebuild
deleted file mode 100644
index 1d85719..0000000
--- a/chromeos-base/arcvm-forward-pstore/arcvm-forward-pstore-0.0.1-r41.ebuild
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright 2020 The Chromium OS Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-EAPI=7
-
-CROS_WORKON_COMMIT="b52f5cd0677f40bb863e7f8a9308f344fd5520c6"
-CROS_WORKON_TREE=("52a8a8b6d3bbca5e90d4761aa308a5541d52b1bb" "fbd3e931f69a0bf810c1f26f1aa1368486c77944" "ae1f8f0fd10bc02bc924cdd421366393d90769bb" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
-CROS_WORKON_INCREMENTAL_BUILD="1"
-CROS_WORKON_LOCALNAME="platform2"
-CROS_WORKON_PROJECT="chromiumos/platform2"
-CROS_WORKON_OUTOFTREE_BUILD=1
-CROS_WORKON_SUBTREE="common-mk arc/vm/forward-pstore vm_tools .gn"
-
-PLATFORM_SUBDIR="arc/vm/forward-pstore"
-
-inherit cros-workon platform
-
-DESCRIPTION="Forwards pstore file for ARCVM after upgrade."
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/HEAD/arc/vm/forward-pstore"
-
-LICENSE="BSD-Google"
-KEYWORDS="*"
-SLOT="0/0"
-IUSE="+seccomp"
-
-RDEPEND="
-	dev-libs/protobuf:=
-"
-DEPEND="
-	${RDEPEND}
-	chromeos-base/system_api:=
-	chromeos-base/vm_protos:=
-"
-
-src_install() {
-	newsbin "${OUT}/arcvm-forward-pstore" arcvm-forward-pstore
-
-	insinto /etc/init
-	doins arcvm-forward-pstore.conf
-
-	# Install DBUS configuration file.
-	insinto /etc/dbus-1/system.d
-	doins dbus/org.chromium.ArcVmForwardPstore.conf
-
-	# Install seccomp policy
-	insinto /usr/share/policy
-	use seccomp && newins "seccomp-${ARCH}.policy" arcvm-forward-pstore-seccomp.policy
-}
diff --git a/chromeos-base/arcvm-forward-pstore/arcvm-forward-pstore-9999.ebuild b/chromeos-base/arcvm-forward-pstore/arcvm-forward-pstore-9999.ebuild
index bed9603..ea5c80e 100644
--- a/chromeos-base/arcvm-forward-pstore/arcvm-forward-pstore-9999.ebuild
+++ b/chromeos-base/arcvm-forward-pstore/arcvm-forward-pstore-9999.ebuild
@@ -8,7 +8,17 @@
 CROS_WORKON_LOCALNAME="platform2"
 CROS_WORKON_PROJECT="chromiumos/platform2"
 CROS_WORKON_OUTOFTREE_BUILD=1
-CROS_WORKON_SUBTREE="common-mk arc/vm/forward-pstore vm_tools .gn"
+
+PLATFORM2_PATHS=(
+	common-mk
+	.gn
+
+	arc/vm/forward-pstore
+
+	vm_tools/BUILD.gn
+	vm_tools/common
+)
+CROS_WORKON_SUBTREE="${PLATFORM2_PATHS[*]}"
 
 PLATFORM_SUBDIR="arc/vm/forward-pstore"
 
diff --git a/chromeos-base/arcvm-mojo-proxy/arcvm-mojo-proxy-0.0.1-r34.ebuild b/chromeos-base/arcvm-mojo-proxy/arcvm-mojo-proxy-0.0.1-r34.ebuild
new file mode 100644
index 0000000..03976f3
--- /dev/null
+++ b/chromeos-base/arcvm-mojo-proxy/arcvm-mojo-proxy-0.0.1-r34.ebuild
@@ -0,0 +1,47 @@
+# Copyright 2018 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CROS_WORKON_COMMIT="f34cf3a06f7b17b7829185630d886a5d9d3f0e75"
+CROS_WORKON_TREE=("791c6808b4f4f5f1c484108d66ff958d65f8f1e3" "e23cacccf4a8be891ad29fabf2c717600327a772" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
+CROS_WORKON_INCREMENTAL_BUILD="1"
+CROS_WORKON_LOCALNAME="platform2"
+CROS_WORKON_PROJECT="chromiumos/platform2"
+CROS_WORKON_OUTOFTREE_BUILD=1
+CROS_WORKON_SUBTREE="common-mk arc/vm/mojo_proxy .gn"
+
+PLATFORM_SUBDIR="arc/vm/mojo_proxy"
+
+inherit cros-workon platform
+
+DESCRIPTION="ARCVM mojo proxy."
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/arc/vm/mojo_proxy"
+
+LICENSE="BSD-Google"
+KEYWORDS="*"
+
+# This package was renamed from  arcvm-vsock-proxy. Put a blocker to uninstall
+# the old package.
+# TODO(hashimoto): Remove this blocker later.
+RDEPEND="
+	!chromeos-base/arcvm-vsock-proxy
+
+	dev-libs/protobuf:=
+	sys-fs/fuse
+"
+
+DEPEND="
+	${RDEPEND}
+"
+
+src_install() {
+	newbin "${OUT}"/server_proxy arcvm_server_proxy
+
+	insinto /etc/init
+	doins init/arcvm-server-proxy.conf
+}
+
+platform_pkg_test() {
+	platform_test "run" "${OUT}/mojo_proxy_test"
+}
diff --git a/chromeos-base/arcvm-mojo-proxy/arcvm-mojo-proxy-0.0.1-r4.ebuild b/chromeos-base/arcvm-mojo-proxy/arcvm-mojo-proxy-0.0.1-r4.ebuild
deleted file mode 100644
index 65c0832..0000000
--- a/chromeos-base/arcvm-mojo-proxy/arcvm-mojo-proxy-0.0.1-r4.ebuild
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright 2018 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CROS_WORKON_COMMIT="b05e4a6b92b2cfe608b6cd8d5d37168680fc080e"
-CROS_WORKON_TREE=("52a8a8b6d3bbca5e90d4761aa308a5541d52b1bb" "0598f6aab193a1da93fd10036c100a1d800350bc" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
-CROS_WORKON_INCREMENTAL_BUILD="1"
-CROS_WORKON_LOCALNAME="platform2"
-CROS_WORKON_PROJECT="chromiumos/platform2"
-CROS_WORKON_OUTOFTREE_BUILD=1
-CROS_WORKON_SUBTREE="common-mk arc/vm/mojo_proxy .gn"
-
-PLATFORM_SUBDIR="arc/vm/mojo_proxy"
-
-inherit cros-workon platform
-
-DESCRIPTION="ARCVM mojo proxy."
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/arc/vm/mojo_proxy"
-
-LICENSE="BSD-Google"
-KEYWORDS="*"
-
-# This package was renamed from  arcvm-vsock-proxy. Put a blocker to uninstall
-# the old package.
-# TODO(hashimoto): Remove this blocker later.
-RDEPEND="
-	!chromeos-base/arcvm-vsock-proxy
-
-	dev-libs/protobuf:=
-	sys-fs/fuse
-"
-
-DEPEND="
-	${RDEPEND}
-"
-
-src_install() {
-	newbin "${OUT}"/server_proxy arcvm_server_proxy
-
-	insinto /etc/init
-	doins init/arcvm-server-proxy.conf
-}
-
-platform_pkg_test() {
-	platform_test "run" "${OUT}/mojo_proxy_test"
-}
diff --git a/chromeos-base/arcvm-mount-media-dirs/arcvm-mount-media-dirs-0.0.1-r39.ebuild b/chromeos-base/arcvm-mount-media-dirs/arcvm-mount-media-dirs-0.0.1-r39.ebuild
deleted file mode 100644
index 17e8a2e..0000000
--- a/chromeos-base/arcvm-mount-media-dirs/arcvm-mount-media-dirs-0.0.1-r39.ebuild
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright 2020 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CROS_WORKON_COMMIT="891275e43ab2ed3070c377dd889259604911e046"
-CROS_WORKON_TREE=("52a8a8b6d3bbca5e90d4761aa308a5541d52b1bb" "c9f42ec607fcaf0dc1770080e49f9705bf7c5301" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
-CROS_WORKON_INCREMENTAL_BUILD="1"
-CROS_WORKON_LOCALNAME="platform2"
-CROS_WORKON_PROJECT="chromiumos/platform2"
-CROS_WORKON_OUTOFTREE_BUILD=1
-CROS_WORKON_SUBTREE="common-mk arc/vm/scripts/init/mount-media-dirs .gn"
-
-inherit cros-workon
-
-DESCRIPTION="Mount media directories on a mount point shared with ARCVM."
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/arc/vm/scripts/init/mount-media-dirs"
-
-LICENSE="BSD-Google"
-KEYWORDS="*"
-
-RDEPEND="
-	chromeos-base/mount-passthrough
-"
-
-src_install() {
-	insinto /etc/init
-	doins arc/vm/scripts/init/mount-media-dirs/arcvm-mount-myfiles.conf
-	doins arc/vm/scripts/init/mount-media-dirs/arcvm-mount-removable-media.conf
-}
diff --git a/chromeos-base/arcvm-mount-media-dirs/arcvm-mount-media-dirs-0.0.1-r70.ebuild b/chromeos-base/arcvm-mount-media-dirs/arcvm-mount-media-dirs-0.0.1-r70.ebuild
new file mode 100644
index 0000000..cfb8269
--- /dev/null
+++ b/chromeos-base/arcvm-mount-media-dirs/arcvm-mount-media-dirs-0.0.1-r70.ebuild
@@ -0,0 +1,32 @@
+# Copyright 2020 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CROS_WORKON_COMMIT="f34cf3a06f7b17b7829185630d886a5d9d3f0e75"
+CROS_WORKON_TREE=("791c6808b4f4f5f1c484108d66ff958d65f8f1e3" "954e934fa76d67253d978d97346b24a1fce9be2c" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
+CROS_WORKON_INCREMENTAL_BUILD="1"
+CROS_WORKON_LOCALNAME="platform2"
+CROS_WORKON_PROJECT="chromiumos/platform2"
+CROS_WORKON_OUTOFTREE_BUILD=1
+CROS_WORKON_SUBTREE="common-mk arc/vm/scripts/init/mount-media-dirs .gn"
+
+inherit cros-workon
+
+DESCRIPTION="Mount media directories on a mount point shared with ARCVM."
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/arc/vm/scripts/init/mount-media-dirs"
+
+LICENSE="BSD-Google"
+KEYWORDS="*"
+
+RDEPEND="
+	chromeos-base/mount-passthrough
+"
+
+src_install() {
+	insinto /etc/init
+	doins arc/vm/scripts/init/mount-media-dirs/arcvm-mount-myfiles.conf
+	doins arc/vm/scripts/init/mount-media-dirs/arcvm-mount-play-files.conf
+	doins arc/vm/scripts/init/mount-media-dirs/arcvm-mount-removable-media.conf
+	doins arc/vm/scripts/init/mount-media-dirs/arcvm-mount-sdcard-dir.conf
+}
diff --git a/chromeos-base/arcvm-mount-media-dirs/arcvm-mount-media-dirs-9999.ebuild b/chromeos-base/arcvm-mount-media-dirs/arcvm-mount-media-dirs-9999.ebuild
index a2f9aa5..92076b1 100644
--- a/chromeos-base/arcvm-mount-media-dirs/arcvm-mount-media-dirs-9999.ebuild
+++ b/chromeos-base/arcvm-mount-media-dirs/arcvm-mount-media-dirs-9999.ebuild
@@ -24,5 +24,7 @@
 src_install() {
 	insinto /etc/init
 	doins arc/vm/scripts/init/mount-media-dirs/arcvm-mount-myfiles.conf
+	doins arc/vm/scripts/init/mount-media-dirs/arcvm-mount-play-files.conf
 	doins arc/vm/scripts/init/mount-media-dirs/arcvm-mount-removable-media.conf
+	doins arc/vm/scripts/init/mount-media-dirs/arcvm-mount-sdcard-dir.conf
 }
diff --git a/chromeos-base/atrusctl/atrusctl-0.0.1-r946.ebuild b/chromeos-base/atrusctl/atrusctl-0.0.1-r946.ebuild
deleted file mode 100644
index 9b1b5fa..0000000
--- a/chromeos-base/atrusctl/atrusctl-0.0.1-r946.ebuild
+++ /dev/null
@@ -1,51 +0,0 @@
-# Copyright 2017 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CROS_WORKON_COMMIT=("3878b0f0387af837629fbf9b68fb4c7bf6e29c6c" "c50a9b98e7025a59f10f7d1d9f844dc48dd05645")
-CROS_WORKON_TREE=("52a8a8b6d3bbca5e90d4761aa308a5541d52b1bb" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb" "bf3ca2cf751d3dcbf605278a8a41d0851e52d360")
-CROS_WORKON_LOCALNAME=("platform2" "third_party/atrusctl")
-CROS_WORKON_PROJECT=("chromiumos/platform2" "chromiumos/third_party/atrusctl")
-CROS_WORKON_DESTDIR=("${S}/platform2" "${S}/platform2/atrusctl")
-CROS_WORKON_INCREMENTAL_BUILD=1
-CROS_WORKON_SUBTREE=("common-mk .gn" "")
-
-PLATFORM_SUBDIR="atrusctl"
-
-inherit cros-workon platform udev user
-
-DESCRIPTION="CrOS daemon for the Atrus speakerphone"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/atrusctl/"
-
-LICENSE="BSD-Google"
-KEYWORDS="*"
-
-DEPEND="
-	virtual/libusb:1
-	virtual/libudev:0=
-"
-RDEPEND="
-	${DEPEND}
-	!sys-apps/atrusctl
-"
-
-src_install() {
-	dosbin "${OUT}/atrusd"
-
-	insinto /etc/rsyslog.d
-	newins conf/rsyslog-atrus.conf atrus.conf
-
-	udev_newrules conf/udev-atrus.rules 99-atrus.rules
-
-	insinto /etc/init
-	doins init/atrusd.conf
-
-	insinto /etc/dbus-1/system.d
-	doins dbus_permissions/org.chromium.Atrusctl.conf
-}
-
-pkg_preinst() {
-	enewuser atrus
-	enewgroup atrus
-}
diff --git a/chromeos-base/atrusctl/atrusctl-0.0.1-r973.ebuild b/chromeos-base/atrusctl/atrusctl-0.0.1-r973.ebuild
new file mode 100644
index 0000000..5a90fcd
--- /dev/null
+++ b/chromeos-base/atrusctl/atrusctl-0.0.1-r973.ebuild
@@ -0,0 +1,51 @@
+# Copyright 2017 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CROS_WORKON_COMMIT=("e3e4d3ec57ebaf15c52d430687a3c5263bb0b23e" "77a0ad988406a971fc45b4e66befc240fbf0d48a")
+CROS_WORKON_TREE=("791c6808b4f4f5f1c484108d66ff958d65f8f1e3" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb" "90cfa2a210ebed49a8ce050686db523ef372c62c")
+CROS_WORKON_LOCALNAME=("platform2" "third_party/atrusctl")
+CROS_WORKON_PROJECT=("chromiumos/platform2" "chromiumos/third_party/atrusctl")
+CROS_WORKON_DESTDIR=("${S}/platform2" "${S}/platform2/atrusctl")
+CROS_WORKON_INCREMENTAL_BUILD=1
+CROS_WORKON_SUBTREE=("common-mk .gn" "")
+
+PLATFORM_SUBDIR="atrusctl"
+
+inherit cros-workon platform udev user
+
+DESCRIPTION="CrOS daemon for the Atrus speakerphone"
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/atrusctl/"
+
+LICENSE="BSD-Google"
+KEYWORDS="*"
+
+DEPEND="
+	virtual/libusb:1
+	virtual/libudev:0=
+"
+RDEPEND="
+	${DEPEND}
+	!sys-apps/atrusctl
+"
+
+src_install() {
+	dosbin "${OUT}/atrusd"
+
+	insinto /etc/rsyslog.d
+	newins conf/rsyslog-atrus.conf atrus.conf
+
+	udev_newrules conf/udev-atrus.rules 99-atrus.rules
+
+	insinto /etc/init
+	doins init/atrusd.conf
+
+	insinto /etc/dbus-1/system.d
+	doins dbus_permissions/org.chromium.Atrusctl.conf
+}
+
+pkg_preinst() {
+	enewuser atrus
+	enewgroup atrus
+}
diff --git a/chromeos-base/attestation-client/attestation-client-0.0.1-r260.ebuild b/chromeos-base/attestation-client/attestation-client-0.0.1-r260.ebuild
deleted file mode 100644
index bc2f6f6..0000000
--- a/chromeos-base/attestation-client/attestation-client-0.0.1-r260.ebuild
+++ /dev/null
@@ -1,50 +0,0 @@
-# Copyright 2019 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="5"
-
-CROS_WORKON_COMMIT="93c9e332867c5b0b8283c37f7d5ce1bb4b13e074"
-CROS_WORKON_TREE=("52a8a8b6d3bbca5e90d4761aa308a5541d52b1bb" "e2d4b5c2a34733c2112e0a9a8d0a2171f90ec316" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
-CROS_WORKON_INCREMENTAL_BUILD=1
-CROS_WORKON_LOCALNAME="platform2"
-CROS_WORKON_PROJECT="chromiumos/platform2"
-CROS_WORKON_OUTOFTREE_BUILD=1
-CROS_WORKON_SUBTREE="common-mk attestation .gn"
-
-PLATFORM_SUBDIR="attestation/client"
-
-inherit cros-workon platform
-
-DESCRIPTION="Attestation D-Bus client library for Chromium OS"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/attestation/client/"
-
-LICENSE="BSD-Google"
-SLOT="0"
-KEYWORDS="*"
-IUSE="cros_host"
-
-# D-Bus proxies generated by this client library depend on the code generator
-# itself (chromeos-dbus-bindings) and produce header files that rely on
-# libbrillo library, hence both dependencies. We require the particular
-# revision because libbrillo-0.0.1-r1 changed location of header files from
-# chromeos/ to brillo/ and chromeos-dbus-bindings-0.0.1-r1058 generates the
-# code using the new location.
-DEPEND="
-	cros_host? ( >=chromeos-base/chromeos-dbus-bindings-0.0.1-r1058 )
-	chromeos-base/libbrillo:=
-"
-
-# Note that for RDEPEND, we conflict with attestation package older than
-# 0.0.1 because this client is incompatible with daemon older than version
-# 0.0.1. We didn't RDEPEND on attestation version 0.0.1 or greater because
-# we don't want to create circular dependency in case the package attestation
-# depends on some package foo that also depend on this package.
-RDEPEND="
-	!<chromeos-base/attestation-0.0.1
-	chromeos-base/libbrillo:=
-"
-
-src_install() {
-	# Install D-Bus client library.
-	platform_install_dbus_client_lib "attestation"
-}
diff --git a/chromeos-base/attestation-client/attestation-client-0.0.1-r318.ebuild b/chromeos-base/attestation-client/attestation-client-0.0.1-r318.ebuild
new file mode 100644
index 0000000..21d7008
--- /dev/null
+++ b/chromeos-base/attestation-client/attestation-client-0.0.1-r318.ebuild
@@ -0,0 +1,50 @@
+# Copyright 2019 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+CROS_WORKON_COMMIT="6f9011123f3656c45bb34148673aa110a22326b3"
+CROS_WORKON_TREE=("791c6808b4f4f5f1c484108d66ff958d65f8f1e3" "8a6aa0783afea740fe52cec225aef91187cbcde6" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
+CROS_WORKON_INCREMENTAL_BUILD=1
+CROS_WORKON_LOCALNAME="platform2"
+CROS_WORKON_PROJECT="chromiumos/platform2"
+CROS_WORKON_OUTOFTREE_BUILD=1
+CROS_WORKON_SUBTREE="common-mk attestation .gn"
+
+PLATFORM_SUBDIR="attestation/client"
+
+inherit cros-workon platform
+
+DESCRIPTION="Attestation D-Bus client library for Chromium OS"
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/attestation/client/"
+
+LICENSE="BSD-Google"
+SLOT="0"
+KEYWORDS="*"
+IUSE="cros_host"
+
+# D-Bus proxies generated by this client library depend on the code generator
+# itself (chromeos-dbus-bindings) and produce header files that rely on
+# libbrillo library, hence both dependencies. We require the particular
+# revision because libbrillo-0.0.1-r1 changed location of header files from
+# chromeos/ to brillo/ and chromeos-dbus-bindings-0.0.1-r1058 generates the
+# code using the new location.
+DEPEND="
+	cros_host? ( >=chromeos-base/chromeos-dbus-bindings-0.0.1-r1058 )
+	chromeos-base/libbrillo:=
+"
+
+# Note that for RDEPEND, we conflict with attestation package older than
+# 0.0.1 because this client is incompatible with daemon older than version
+# 0.0.1. We didn't RDEPEND on attestation version 0.0.1 or greater because
+# we don't want to create circular dependency in case the package attestation
+# depends on some package foo that also depend on this package.
+RDEPEND="
+	!<chromeos-base/attestation-0.0.1
+	chromeos-base/libbrillo:=
+"
+
+src_install() {
+	# Install D-Bus client library.
+	platform_install_dbus_client_lib "attestation"
+}
diff --git a/chromeos-base/attestation/attestation-0.0.1-r3041.ebuild b/chromeos-base/attestation/attestation-0.0.1-r3041.ebuild
deleted file mode 100644
index 857afa1..0000000
--- a/chromeos-base/attestation/attestation-0.0.1-r3041.ebuild
+++ /dev/null
@@ -1,109 +0,0 @@
-# Copyright 2014 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CROS_WORKON_COMMIT="5fc770072f3c76a5fff2f346ec832ddc44970226"
-CROS_WORKON_TREE=("52a8a8b6d3bbca5e90d4761aa308a5541d52b1bb" "e2d4b5c2a34733c2112e0a9a8d0a2171f90ec316" "5956de9997bc0735d9aeff6edc4d0098fb571b9b" "989d840598227b15d78525d5f92c806011a9c158" "8d228c8e702aebee142bcbf0763a15786eb5b3bb" "e3bf102d9535965e9911dc352202c6927e8f5514" "20ed8021024637e492670d20fa5969a2ad75e4b6" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
-CROS_WORKON_INCREMENTAL_BUILD=1
-CROS_WORKON_LOCALNAME="platform2"
-CROS_WORKON_PROJECT="chromiumos/platform2"
-CROS_WORKON_OUTOFTREE_BUILD=1
-# TODO(crbug.com/809389): Avoid directly including headers from other packages.
-CROS_WORKON_SUBTREE="common-mk attestation chaps libhwsec metrics tpm_manager trunks .gn"
-
-PLATFORM_SUBDIR="attestation"
-
-inherit cros-workon libchrome platform user
-
-DESCRIPTION="Attestation service for Chromium OS"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/attestation/"
-
-LICENSE="Apache-2.0"
-KEYWORDS="*"
-IUSE="test tpm tpm2"
-
-REQUIRED_USE="tpm2? ( !tpm )"
-
-RDEPEND="
-	tpm? (
-		app-crypt/trousers:=
-	)
-	tpm2? (
-		chromeos-base/trunks:=
-	)
-	chromeos-base/chaps:=
-	chromeos-base/system_api:=[fuzzer?]
-	>=chromeos-base/metrics-0.0.1-r3152:=
-	chromeos-base/minijail:=
-	chromeos-base/tpm_manager:=
-	"
-
-DEPEND="
-	${RDEPEND}
-	test? ( chromeos-base/libhwsec:= )
-	chromeos-base/vboot_reference:=
-	tpm2? (
-		chromeos-base/trunks:=[test?]
-		chromeos-base/chromeos-ec-headers:=
-	)
-	"
-
-pkg_preinst() {
-	# Create user and group for attestation.
-	enewuser "attestation"
-	enewgroup "attestation"
-	# Create group for /mnt/stateful_partition/unencrypted/preserve.
-	enewgroup "preserve"
-}
-
-src_install() {
-	insinto /etc/dbus-1/system.d
-	doins server/org.chromium.Attestation.conf
-
-	insinto /etc/init
-	doins server/attestationd.conf
-
-	dosbin "${OUT}"/attestationd
-	dobin "${OUT}"/attestation_client
-
-	insinto /usr/share/policy
-	newins server/attestationd-seccomp-${ARCH}.policy attestationd-seccomp.policy
-
-	insinto /etc/dbus-1/system.d
-	doins pca_agent/server/org.chromium.PcaAgent.conf
-	insinto /etc/init
-	doins pca_agent/server/pca_agentd.conf
-	dosbin "${OUT}"/pca_agentd
-	dobin "${OUT}"/pca_agent_client
-
-	dolib.so "${OUT}"/lib/libattestation.so
-
-
-	insinto /usr/include/attestation/client
-	doins client/dbus_proxy.h
-	insinto /usr/include/attestation/common
-	doins common/attestation_interface.h
-	doins common/print_attestation_ca_proto.h
-	doins common/print_interface_proto.h
-	doins common/print_keystore_proto.h
-
-	# Install the generated dbus-binding for fake pca agent.
-	# It does no harm to install the header even for non-test image build.
-	insinto /usr/include/attestation/pca-agent/dbus_adaptors
-	doins "${OUT}"/gen/include/attestation/pca-agent/dbus_adaptors/org.chromium.PcaAgent.h
-
-	insinto /usr/share/policy
-	newins "pca_agent/server/pca_agentd-seccomp-${ARCH}.policy" pca_agentd-seccomp.policy
-}
-
-platform_pkg_test() {
-	local tests=(
-		attestation_testrunner
-	)
-
-	local test_bin
-	for test_bin in "${tests[@]}"; do
-		platform_test "run" "${OUT}/${test_bin}"
-	done
-}
diff --git a/chromeos-base/attestation/attestation-0.0.1-r3188.ebuild b/chromeos-base/attestation/attestation-0.0.1-r3188.ebuild
new file mode 100644
index 0000000..e2ce139
--- /dev/null
+++ b/chromeos-base/attestation/attestation-0.0.1-r3188.ebuild
@@ -0,0 +1,107 @@
+# Copyright 2014 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CROS_WORKON_COMMIT="d27dfb81bc87df4db16849f5da1b96f1cf5cd10b"
+CROS_WORKON_TREE=("791c6808b4f4f5f1c484108d66ff958d65f8f1e3" "8a6aa0783afea740fe52cec225aef91187cbcde6" "8640df3a4aff4084b644aeefc4d31752a1d97665" "81dfbbc1756a3b4224b447e7bf10a916d97c4f66" "a9708ef639f0f7929195d0f3921ebd1a12ad96bd" "8cc20aa2c0f7a2d6b073576b3e41ac39c9be2df6" "a06a3f47395fb7b584188c6852764bc773e5497e" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
+CROS_WORKON_INCREMENTAL_BUILD=1
+CROS_WORKON_LOCALNAME="platform2"
+CROS_WORKON_PROJECT="chromiumos/platform2"
+CROS_WORKON_OUTOFTREE_BUILD=1
+# TODO(crbug.com/809389): Avoid directly including headers from other packages.
+CROS_WORKON_SUBTREE="common-mk attestation chaps libhwsec metrics tpm_manager trunks .gn"
+
+PLATFORM_SUBDIR="attestation"
+
+inherit cros-workon libchrome platform user
+
+DESCRIPTION="Attestation service for Chromium OS"
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/attestation/"
+
+LICENSE="Apache-2.0"
+KEYWORDS="*"
+IUSE="generic_tpm2 test tpm tpm2"
+
+REQUIRED_USE="tpm2? ( !tpm )"
+
+RDEPEND="
+	tpm? (
+		app-crypt/trousers:=
+	)
+	tpm2? (
+		chromeos-base/trunks:=
+	)
+	chromeos-base/chaps:=
+	chromeos-base/system_api:=[fuzzer?]
+	>=chromeos-base/metrics-0.0.1-r3152:=
+	chromeos-base/minijail:=
+	chromeos-base/tpm_manager:=
+	chromeos-base/attestation-client
+	"
+
+DEPEND="
+	${RDEPEND}
+	test? ( chromeos-base/libhwsec:= )
+	chromeos-base/vboot_reference:=
+	tpm2? (
+		chromeos-base/trunks:=[test?]
+		chromeos-base/chromeos-ec-headers:=
+	)
+	"
+
+pkg_preinst() {
+	# Create user and group for attestation.
+	enewuser "attestation"
+	enewgroup "attestation"
+	# Create group for /mnt/stateful_partition/unencrypted/preserve.
+	enewgroup "preserve"
+}
+
+src_install() {
+	insinto /etc/dbus-1/system.d
+	doins server/org.chromium.Attestation.conf
+
+	insinto /etc/init
+	doins server/attestationd.conf
+
+	dosbin "${OUT}"/attestationd
+	dobin "${OUT}"/attestation_client
+
+	insinto /usr/share/policy
+	newins server/attestationd-seccomp-${ARCH}.policy attestationd-seccomp.policy
+
+	insinto /etc/dbus-1/system.d
+	doins pca_agent/server/org.chromium.PcaAgent.conf
+	insinto /etc/init
+	doins pca_agent/server/pca_agentd.conf
+	dosbin "${OUT}"/pca_agentd
+	dobin "${OUT}"/pca_agent_client
+
+	dolib.so "${OUT}"/lib/libattestation.so
+
+	insinto /usr/include/attestation/common
+	doins common/attestation_interface.h
+	doins common/print_attestation_ca_proto.h
+	doins common/print_interface_proto.h
+	doins common/print_keystore_proto.h
+
+	# Install the generated dbus-binding for fake pca agent.
+	# It does no harm to install the header even for non-test image build.
+	insinto /usr/include/attestation/pca-agent/dbus_adaptors
+	doins "${OUT}"/gen/include/attestation/pca-agent/dbus_adaptors/org.chromium.PcaAgent.h
+
+	insinto /usr/share/policy
+	newins "pca_agent/server/pca_agentd-seccomp-${ARCH}.policy" pca_agentd-seccomp.policy
+}
+
+platform_pkg_test() {
+	local tests=(
+		attestation_testrunner
+	)
+
+	local test_bin
+	for test_bin in "${tests[@]}"; do
+		platform_test "run" "${OUT}/${test_bin}"
+	done
+}
diff --git a/chromeos-base/attestation/attestation-9999.ebuild b/chromeos-base/attestation/attestation-9999.ebuild
index 70b2a53..f6c538d 100644
--- a/chromeos-base/attestation/attestation-9999.ebuild
+++ b/chromeos-base/attestation/attestation-9999.ebuild
@@ -19,7 +19,7 @@
 
 LICENSE="Apache-2.0"
 KEYWORDS="~*"
-IUSE="test tpm tpm2"
+IUSE="generic_tpm2 test tpm tpm2"
 
 REQUIRED_USE="tpm2? ( !tpm )"
 
@@ -35,6 +35,7 @@
 	>=chromeos-base/metrics-0.0.1-r3152:=
 	chromeos-base/minijail:=
 	chromeos-base/tpm_manager:=
+	chromeos-base/attestation-client
 	"
 
 DEPEND="
@@ -77,9 +78,6 @@
 
 	dolib.so "${OUT}"/lib/libattestation.so
 
-
-	insinto /usr/include/attestation/client
-	doins client/dbus_proxy.h
 	insinto /usr/include/attestation/common
 	doins common/attestation_interface.h
 	doins common/print_attestation_ca_proto.h
diff --git a/chromeos-base/audiotest/audiotest-0.0.1-r90.ebuild b/chromeos-base/audiotest/audiotest-0.0.1-r90.ebuild
deleted file mode 100644
index 040544e..0000000
--- a/chromeos-base/audiotest/audiotest-0.0.1-r90.ebuild
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-
-CROS_WORKON_COMMIT="254f8cbe7baba9e9263a23901e7cf33314ff00dd"
-CROS_WORKON_TREE="73626da07ec9a713034e026f65d181db14f62037"
-CROS_WORKON_OUTOFTREE_BUILD=1
-CROS_WORKON_PROJECT="chromiumos/platform/audiotest"
-CROS_WORKON_LOCALNAME="platform/audiotest"
-
-inherit cros-sanitizers cros-workon cros-common.mk
-
-DESCRIPTION="Audio test tools"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform/audiotest"
-
-LICENSE="BSD-Google"
-SLOT="0"
-KEYWORDS="*"
-IUSE="-asan"
-
-RDEPEND="media-libs/alsa-lib
-	media-sound/adhd"
-DEPEND="${RDEPEND}"
-
-src_configure() {
-	sanitizers-setup-env
-	cros-common.mk_src_configure
-}
-
-src_install() {
-	# Install built tools
-	pushd "${OUT}" >/dev/null
-	dobin src/alsa_api_test
-	dobin alsa_conformance_test/alsa_conformance_test
-	dobin src/alsa_helpers
-	dobin src/audiofuntest
-	dobin src/cras_api_test
-	dobin src/loopback_latency
-	dobin script/alsa_conformance_test.py
-	popd >/dev/null
-}
diff --git a/chromeos-base/audiotest/audiotest-0.0.1-r93.ebuild b/chromeos-base/audiotest/audiotest-0.0.1-r93.ebuild
new file mode 100644
index 0000000..5791e91
--- /dev/null
+++ b/chromeos-base/audiotest/audiotest-0.0.1-r93.ebuild
@@ -0,0 +1,42 @@
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+CROS_WORKON_COMMIT="edd4bdfaf196016350c0def3fa2e6eabc502339d"
+CROS_WORKON_TREE="e51a0909385bb2619e4b4e099e8a7e3dcd5e629c"
+CROS_WORKON_OUTOFTREE_BUILD=1
+CROS_WORKON_PROJECT="chromiumos/platform/audiotest"
+CROS_WORKON_LOCALNAME="platform/audiotest"
+
+inherit cros-sanitizers cros-workon cros-common.mk
+
+DESCRIPTION="Audio test tools"
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform/audiotest"
+
+LICENSE="BSD-Google"
+SLOT="0"
+KEYWORDS="*"
+IUSE="-asan"
+
+RDEPEND="media-libs/alsa-lib
+	media-sound/adhd"
+DEPEND="${RDEPEND}"
+
+src_configure() {
+	sanitizers-setup-env
+	cros-common.mk_src_configure
+}
+
+src_install() {
+	# Install built tools
+	pushd "${OUT}" >/dev/null
+	dobin src/alsa_api_test
+	dobin alsa_conformance_test/alsa_conformance_test
+	dobin src/alsa_helpers
+	dobin src/audiofuntest
+	dobin src/cras_api_test
+	dobin src/loopback_latency
+	dobin script/alsa_conformance_test.py
+	popd >/dev/null
+}
diff --git a/chromeos-base/authpolicy/authpolicy-0.0.1-r1576.ebuild b/chromeos-base/authpolicy/authpolicy-0.0.1-r1576.ebuild
deleted file mode 100644
index ebaab3a..0000000
--- a/chromeos-base/authpolicy/authpolicy-0.0.1-r1576.ebuild
+++ /dev/null
@@ -1,89 +0,0 @@
-# Copyright 2016 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CROS_WORKON_COMMIT="5a6636098bf2fd68219e56d1d1851df760d07dec"
-CROS_WORKON_TREE=("52a8a8b6d3bbca5e90d4761aa308a5541d52b1bb" "b5d7fbdfbfcbc31321752d83e713f53f67bbb443" "8d228c8e702aebee142bcbf0763a15786eb5b3bb" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
-CROS_WORKON_INCREMENTAL_BUILD=1
-CROS_WORKON_LOCALNAME="platform2"
-CROS_WORKON_PROJECT="chromiumos/platform2"
-CROS_WORKON_OUTOFTREE_BUILD=1
-# TODO(crbug.com/809389): Avoid directly including headers from other packages.
-CROS_WORKON_SUBTREE="common-mk authpolicy metrics .gn"
-
-PLATFORM_SUBDIR="authpolicy"
-
-inherit cros-workon platform user
-
-DESCRIPTION="Provides authentication to LDAP and fetching device/user policies"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/authpolicy/"
-
-LICENSE="BSD-Google"
-SLOT="0/0"
-KEYWORDS="*"
-IUSE="+samba asan fuzzer"
-
-COMMMON_DEPEND="
-	app-crypt/mit-krb5:=
-	chromeos-base/libbrillo:=[asan?,fuzzer?]
-	>=chromeos-base/metrics-0.0.1-r3152:=
-	>=chromeos-base/minijail-0.0.1-r1477:=
-	dev-libs/protobuf:=
-	samba? ( >=net-fs/samba-4.5.3-r6:= )
-	sys-apps/dbus:=
-	sys-libs/libcap:=
-"
-RDEPEND="${COMMMON_DEPEND}"
-DEPEND="
-	${COMMMON_DEPEND}
-	>=chromeos-base/protofiles-0.0.39:=
-	chromeos-base/session_manager-client:=
-	chromeos-base/system_api:=[fuzzer?]
-"
-
-pkg_setup() {
-	# Has to be done in pkg_setup() instead of pkg_preinst() since
-	# src_install() needs authpolicyd.
-	enewuser "authpolicyd"
-	enewgroup "authpolicyd"
-	enewuser "authpolicyd-exec"
-	enewgroup "authpolicyd-exec"
-	cros-workon_pkg_setup
-}
-
-src_install() {
-	dosbin "${OUT}"/authpolicyd
-	dosbin "${OUT}"/authpolicy_parser
-	insinto /etc/dbus-1/system.d
-	doins etc/dbus-1/org.chromium.AuthPolicy.conf
-	insinto /etc/init
-	doins etc/init/authpolicyd.conf
-	insinto /usr/share/policy
-	doins seccomp_filters/*.policy
-	insinto /usr/share/cros/startup/process_management_policies
-	doins setuid_restrictions/authpolicyd_whitelist.txt
-
-	# Create daemon store folder prototype, see
-	# https://chromium.googlesource.com/chromiumos/docs/+/master/sandboxing.md#securely-mounting-cryptohome-daemon-store-folders
-	local daemon_store="/etc/daemon-store/authpolicyd"
-	dodir "${daemon_store}"
-	fperms 0700 "${daemon_store}"
-	fowners authpolicyd:authpolicyd "${daemon_store}"
-
-	platform_fuzzer_install "${S}"/OWNERS "${OUT}"/preg_parser_fuzzer \
-		--dict "${S}"/policy/testdata/preg_parser_fuzzer.dict
-}
-
-platform_pkg_test() {
-	local tests=(
-		authpolicy_test
-	)
-
-	local test_bin
-	for test_bin in "${tests[@]}"; do
-		platform_test "run" "${OUT}/${test_bin}"
-	done
-
-	platform_fuzzer_test "${OUT}"/preg_parser_fuzzer
-}
diff --git a/chromeos-base/authpolicy/authpolicy-0.0.1-r1646.ebuild b/chromeos-base/authpolicy/authpolicy-0.0.1-r1646.ebuild
new file mode 100644
index 0000000..fd9ac3b
--- /dev/null
+++ b/chromeos-base/authpolicy/authpolicy-0.0.1-r1646.ebuild
@@ -0,0 +1,89 @@
+# Copyright 2016 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CROS_WORKON_COMMIT="0553127ef2b660a5c71f12a9417ed4ad35f07120"
+CROS_WORKON_TREE=("791c6808b4f4f5f1c484108d66ff958d65f8f1e3" "8e29f11c718c4a832c570433a5cf1e5382d6576f" "a9708ef639f0f7929195d0f3921ebd1a12ad96bd" "e7dba8c91c1f3257c34d4a7ffff0ea2537aeb6bb")
+CROS_WORKON_INCREMENTAL_BUILD=1
+CROS_WORKON_LOCALNAME="platform2"
+CROS_WORKON_PROJECT="chromiumos/platform2"
+CROS_WORKON_OUTOFTREE_BUILD=1
+# TODO(crbug.com/809389): Avoid directly including headers from other packages.
+CROS_WORKON_SUBTREE="common-mk authpolicy metrics .gn"
+
+PLATFORM_SUBDIR="authpolicy"
+
+inherit cros-workon platform user
+
+DESCRIPTION="Provides authentication to LDAP and fetching device/user policies"
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/authpolicy/"
+
+LICENSE="BSD-Google"
+SLOT="0/0"
+KEYWORDS="*"
+IUSE="+samba asan fuzzer"
+
+COMMMON_DEPEND="
+	app-crypt/mit-krb5:=
+	chromeos-base/libbrillo:=[asan?,fuzzer?]
+	>=chromeos-base/metrics-0.0.1-r3152:=
+	>=chromeos-base/minijail-0.0.1-r1477:=
+	dev-libs/protobuf:=
+	samba? ( >=net-fs/samba-4.5.3-r6:= )
+	sys-apps/dbus:=
+	sys-libs/libcap:=
+"
+RDEPEND="${COMMMON_DEPEND}"
+DEPEND="
+	${COMMMON_DEPEND}
+	>=chromeos-base/protofiles-0.0.45:=
+	chromeos-base/session_manager-client:=
+	chromeos-base/system_api:=[fuzzer?]
+"
+
+pkg_setup() {
+	# Has to be done in pkg_setup() instead of pkg_preinst() since
+	# src_install() needs authpolicyd.
+	enewuser "authpolicyd"
+	enewgroup "authpolicyd"
+	enewuser "authpolicyd-exec"
+	enewgroup "authpolicyd-exec"
+	cros-workon_pkg_setup
+}
+
+src_install() {
+	dosbin "${OUT}"/authpolicyd
+	dosbin "${OUT}"/authpolicy_parser
+	insinto /etc/dbus-1/system.d
+	doins etc/dbus-1/org.chromium.AuthPolicy.conf
+	insinto /etc/init
+	doins etc/init/authpolicyd.conf
+	insinto /usr/share/policy
+	doins seccomp_filters/*.policy
+	insinto /usr/share/cros/startup/process_management_policies
+	doins setuid_restrictions/authpolicyd_whitelist.txt
+
+	# Create daemon store folder prototype, see
+	# https://chromium.googlesource.com/chromiumos/docs/+/master/sandboxing.md#securely-mounting-cryptohome-daemon-store-folders
+	local daemon_store="/etc/daemon-store/authpolicyd"
+	dodir "${daemon_store}"
+	fperms 0700 "${daemon_store}"
+	fowners authpolicyd:authpolicyd "${daemon_store}"
+
+	platform_fuzzer_install "${S}"/OWNERS "${OUT}"/preg_parser_fuzzer \
+		--dict "${S}"/policy/testdata/preg_parser_fuzzer.dict
+}
+
+platform_pkg_test() {
+	local tests=(
+		authpolicy_test
+	)
+
+	local test_bin
+	for test_bin in "${tests[@]}"; do
+		platform_test "run" "${OUT}/${test_bin}"
+	done
+
+	platform_fuzzer_test "${OUT}"/preg_parser_fuzzer
+}
diff --git a/chromeos-base/authpolicy/authpolicy-9999.ebuild b/chromeos-base/authpolicy/authpolicy-9999.ebuild
index 3cf0ecf..076483d 100644
--- a/chromeos-base/authpolicy/authpolicy-9999.ebuild
+++ b/chromeos-base/authpolicy/authpolicy-9999.ebuild
@@ -35,7 +35,7 @@
 RDEPEND="${COMMMON_DEPEND}"
 DEPEND="
 	${COMMMON_DEPEND}
-	>=chromeos-base/protofiles-0.0.39:=
+	>=chromeos-base/protofiles-0.0.45:=
 	chromeos-base/session_manager-client:=
 	chromeos-base/system_api:=[fuzzer?]
 "
diff --git a/chromeos-base/autotest-capability-default/autotest-capability-default-0.0.5-r2.ebuild b/chromeos-base/autotest-capability-default/autotest-capability-default-0.0.5-r4.ebuild
similarity index 100%
rename from chromeos-base/autotest-capability-default/autotest-capability-default-0.0.5-r2.ebuild
rename to chromeos-base/autotest-capability-default/autotest-capability-default-0.0.5-r4.ebuild
diff --git a/chromeos-base/autotest-capability-default/files/managed-capabilities.yaml b/chromeos-base/autotest-capability-default/files/managed-capabilities.yaml
index 8bc30c5..2fdacbc 100644
--- a/chromeos-base/autotest-capability-default/files/managed-capabilities.yaml
+++ b/chromeos-base/autotest-capability-default/files/managed-capabilities.yaml
@@ -45,10 +45,39 @@
 - hw_dec_av1_2160_30_10bpp
 - hw_dec_av1_2160_60_10bpp
 
+## HEVC (Profile Main)
+- hw_dec_hevc_1080_30
+- hw_dec_hevc_1080_60
+- hw_dec_hevc_2160_30
+- hw_dec_hevc_2160_60
+- hw_dec_hevc_1080_30_10bpp
+- hw_dec_hevc_1080_60_10bpp
+- hw_dec_hevc_2160_30_10bpp
+- hw_dec_hevc_2160_60_10bpp
+
 ## JPEG
 ## hw_dec_jpeg is marked if a device supports JPEG HW decoding.
 - hw_dec_jpeg
 
+# HW protected decoding
+## H264 for CENCv1/3 with AES-CBC/AES-CTR
+- hw_video_prot_cencv1_h264_cbc
+- hw_video_prot_cencv1_h264_ctr
+- hw_video_prot_cencv3_h264_cbc
+- hw_video_prot_cencv3_h264_ctr
+
+## VP9/VP9.2 for CENCv3 with AES-CBC/AES-CTR
+- hw_video_prot_cencv3_vp9_cbc
+- hw_video_prot_cencv3_vp9_ctr
+
+## AV1 for CENCv3 with AES-CBC/AES-CTR
+- hw_video_prot_cencv3_av1_cbc
+- hw_video_prot_cencv3_av1_ctr
+
+## HEVC for CENCv3 with AES-CBC/AES-CTR
+- hw_video_prot_cencv3_hevc_cbc
+- hw_video_prot_cencv3_hevc_ctr
+
 
 # HW encoding
 ## Not all HW encoders support odd dimension encoding (e.g. trogdor).
diff --git a/chromeos-base/autotest-chrome/autotest-chrome-0.0.1-r7775.ebuild b/chromeos-base/autotest-chrome/autotest-chrome-0.0.1-r7775.ebuild
deleted file mode 100644
index b25b9ef..0000000
--- a/chromeos-base/autotest-chrome/autotest-chrome-0.0.1-r7775.ebuild
+++ /dev/null
@@ -1,270 +0,0 @@
-# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-CROS_WORKON_COMMIT="765d3931033a82d56d6b8689d68f25860398d97f"
-CROS_WORKON_TREE="8a5e4b77219713e15dd9d0c5567b70e2e344a509"
-CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
-
-inherit cros-workon autotest
-
-DESCRIPTION="Autotest tests that require chrome_binary_test, or telemetry deps"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
-SRC_URI=""
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="*"
-
-# Enable autotest by default.
-IUSE="
-	${IUSE}
-	+autotest
-	+cellular
-	drm_atomic
-	+shill
-	+tpm
-	tpm2
-	vaapi
-"
-
-RDEPEND="
-	!chromeos-base/autotest-telemetry
-	!<chromeos-base/autotest-tests-0.0.4
-	!<chromeos-base/autotest-tests-cellular-0.0.1-r3203
-	chromeos-base/autotest-deps-graphics
-	chromeos-base/autotest-deps-policy
-	chromeos-base/autotest-deps-webgl-mpd
-	chromeos-base/chromeos-chrome
-	dev-python/mkvparse
-	shill? ( chromeos-base/shill-test-scripts )
-	chromeos-base/telemetry
-	sys-apps/ethtool
-	vaapi? ( x11-libs/libva )
-	tests_graphics_WebGLAquarium? ( app-benchmarks/microbenchmarks dev-util/memory-eater-locked )
-	virtual/autotest-private-libs
-"
-
-DEPEND="${RDEPEND}"
-
-IUSE_TESTS=(
-	# Tests that depend on telemetry.
-	+tests_accessibility_Sanity
-	+tests_accessibility_ChromeVoxSound
-	+tests_audio_ActiveStreamStress
-	+tests_audio_AudioCorruption
-	+tests_audio_CrasSanity
-	+tests_audio_PlaybackPower
-	+tests_audio_SeekAudioFeedback
-	+tests_autoupdate_EOL
-	+tests_autoupdate_LoginStartUpdateLogout
-	+tests_autoupdate_StartOOBEUpdate
-	+tests_autoupdate_UpdateFromUI
-	+tests_autoupdate_UserData
-	+tests_bluetooth_AdapterReboot
-	+tests_bluetooth_AdapterHealth
-	+tests_bluetooth_IDCheck
-	+tests_bluetooth_RegressionClient
-	+tests_bluetooth_TurnOnOffUI
-	+tests_desktopui_AudioFeedback
-	+tests_desktopui_CheckRlzPingSent
-	+tests_desktopui_ChromeSanity
-	tests_desktopui_ConnectivityDiagnostics
-	+tests_desktopui_MediaAudioFeedback
-	+tests_desktopui_ScreenLocker
-	+tests_desktopui_SimpleLogin
-	+tests_desktopui_UrlFetchWithChromeDriver
-	+tests_display_ClientChameleonConnection
-	+tests_display_DisplayContainEdid
-	+tests_dummy_IdleSuspend
-	+tests_enterprise_FakeEnrollment
-	+tests_enterprise_KioskEnrollment
-	+tests_enterprise_OnlineDemoModeEnrollment
-	+tests_enterprise_PowerManagement
-	+tests_enterprise_RemoraRequisition
-	+tests_graphics_Chrome
-	+tests_graphics_Stress
-	+tests_graphics_VideoRenderingPower
-	+tests_graphics_VTSwitch
-	+tests_graphics_WebGLAquarium
-	+tests_graphics_WebGLManyPlanetsDeep
-	tests_logging_AsanCrash
-	+tests_logging_CrashServices
-	+tests_logging_FeedbackReport
-	+tests_login_ChromeProfileSanitary
-	+tests_login_CryptohomeDataLeak
-	+tests_login_CryptohomeIncognito
-	+tests_login_GaiaLogin
-	+tests_login_LoginSuccess
-	+tests_login_OobeLocalization
-	+tests_login_SavePassword
-	+tests_login_UnicornLogin
-	+tests_longevity_Tracker
-	+tests_network_CastTDLS
-	+tests_network_ChromeWifiConfigure
-	+tests_platform_ChromeCgroups
-	+tests_platform_InitLoginPerf
-	+tests_platform_InputBrightness
-	+tests_platform_InputBrowserNav
-	+tests_platform_InputNewTab
-	+tests_platform_InputScreenshot
-	+tests_platform_InputVolume
-	+tests_platform_LogoutPerf
-	+tests_platform_LowMemoryTest
-	+tests_platform_MouseScrollTest
-	+tests_platform_PrintJob
-	+tests_platform_SessionManagerBlockDevmodeSetting
-	+tests_platform_ScrollTest
-	+tests_policy_AccessibilityTest
-	+tests_policy_ArcAudioCaptureAllowed
-	+tests_policy_ArcBackupRestoreServiceEnabled
-	+tests_policy_ArcExternalStorageDisabled
-	+tests_policy_ArcVideoCaptureAllowed
-	+tests_policy_ArcDisableScreenshots
-	+tests_policy_AudioOutputAllowed
-	+tests_policy_AutotestSanity
-	+tests_policy_ChromeOsLockOnIdleSuspend
-	+tests_policy_CookiesAllowedForUrls
-	+tests_policy_CookiesBlockedForUrls
-	+tests_policy_CookiesSessionOnlyForUrls
-	+tests_policy_DefaultSearchProvider
-	+tests_policy_DeveloperToolsAvailability
-	+tests_policy_DeviceAllowBluetooth
-	+tests_policy_DeviceAutoUpdateDisabled
-	+tests_policy_DeviceCharging
-	+tests_policy_DeviceDockMacAddressSource
-	+tests_policy_DeviceScheduledCharging
-	+tests_policy_DisableScreenshots
-	+tests_policy_DownloadDirectory
-	+tests_policy_DriveDisabled
-	+tests_policy_DeviceEphemeralUsersEnabled
-	+tests_policy_EnrollmentRetainment
-	+tests_policy_EnterpriseForceInstallCustom
-	+tests_policy_ExtensionPolicy
-	+tests_policy_ExternalStorageDisabled
-	+tests_policy_ExternalStorageReadOnly
-	+tests_policy_ForceYouTubeRestrict
-	+tests_policy_ForceYouTubeSafetyMode
-	+tests_policy_KeyPermissions
-	+tests_policy_KioskModeEnabled
-	+tests_policy_NativePrintersBulkAccessMode
-	+tests_policy_PinnedLauncherApps
-	+tests_policy_PlatformKeys
-	+tests_policy_PolicyRefreshRate
-	+tests_policy_PowerManagementIdleSettings
-	+tests_policy_PrintingEnabled
-	+tests_policy_ProxySettings
-	+tests_policy_ReportUploadFrequency
-	+tests_policy_RestoreOnStartupURLs
-	+tests_policy_SystemTimezone
-	+tests_policy_VirtualMachinesAllowed
-	+tests_policy_WilcoOnNonWilcoDevice
-	+tests_policy_WilcoUSBPowershare
-	+tests_power_AudioDetector
-	+tests_power_BatteryDrain
-	+tests_power_Consumption
-	+tests_power_Display
-	+tests_power_FlashVideoSuspend
-	+tests_power_Idle
-	+tests_power_IdleSuspend
-	+tests_power_LoadTest
-	+tests_power_LowMemorySuspend
-	+tests_power_MeetClient
-	+tests_power_Speedometer2
-	+tests_power_ThermalLoad
-	+tests_power_UiResume
-	+tests_power_VideoCall
-	+tests_power_VideoDetector
-	+tests_power_VideoEncode
-	+tests_power_VideoPlayback
-	+tests_power_VideoSuspend
-	+tests_power_WebGL
-	+tests_power_WifiIdle
-	+tests_security_BundledExtensions
-	+tests_telemetry_AFDOGenerateClient
-	+tests_telemetry_Sanity
-	+tests_telemetry_UnitTests
-	+tests_telemetry_UnitTestsServer
-	+tests_touch_GestureNav
-	+tests_touch_MouseScroll
-	+tests_touch_ScrollDirection
-	+tests_touch_TapSettings
-	+tests_touch_TabSwitch
-	+tests_touch_TouchscreenScroll
-	+tests_touch_TouchscreenTaps
-	+tests_touch_TouchscreenZoom
-	+tests_touch_StylusTaps
-	+tests_video_AVAnalysis
-)
-
-IUSE_TESTS_CELLULAR="
-	cellular? (
-		+tests_cellular_ModemControl
-		+tests_cellular_SuspendResume
-		+tests_network_ChromeCellularEndToEnd
-		+tests_network_ChromeCellularNetworkPresent
-		+tests_network_ChromeCellularNetworkProperties
-		+tests_network_ChromeCellularSmokeTest
-	)
-"
-
-IUSE_TESTS_SHILL="
-	shill? (
-		+tests_network_ChromeWifiEndToEnd
-		+tests_network_FirewallHolePunch
-		+tests_network_RackWiFiConnect
-		+tests_network_RoamSuspendEndToEnd
-		+tests_network_RoamWifiEndToEnd
-		+tests_policy_GlobalNetworkSettings
-		+tests_policy_WiFiAutoconnect
-		+tests_policy_WiFiPrecedence
-		+tests_policy_WiFiTypes
-	)
-"
-
-# This is here instead of in autotest-tests-tpm because it would be far more
-# work and duplication to add telemetry dependencies there.
-IUSE_TESTS_TPM="
-	tpm? ( +tests_platform_Pkcs11InitOnLogin )
-	tpm2? ( +tests_platform_Pkcs11InitOnLogin )
-"
-
-IUSE_TESTS_ARC="
-	+tests_graphics_Idle
-"
-
-IUSE_TESTS_ATOMIC="
-	drm_atomic? ( +tests_graphics_HwOverlays )
-"
-
-IUSE_TESTS="
-	${IUSE_TESTS[*]}
-	${IUSE_TESTS_CELLULAR}
-	${IUSE_TESTS_SHILL}
-	${IUSE_TESTS_TPM}
-	${IUSE_TESTS_ARC}
-	${IUSE_TESTS_ATOMIC}
-"
-
-IUSE="
-	${IUSE}
-	${IUSE_TESTS}
-"
-
-CROS_WORKON_LOCALNAME="third_party/autotest/files"
-
-AUTOTEST_DEPS_LIST=""
-AUTOTEST_CONFIG_LIST=""
-AUTOTEST_PROFILERS_LIST=""
-
-AUTOTEST_FILE_MASK="*.a *.tar.bz2 *.tbz2 *.tgz *.tar.gz"
-
-src_prepare() {
-	# Telemetry tests require the path to telemetry source to exist in order to
-	# build. Copy the telemetry source to a temporary directory that is writable,
-	# so that file removals in Telemetry source can be performed properly.
-	export TMP_DIR="$(mktemp -d)"
-	rsync -a --exclude=third_party/trace-viewer/test_data/ \
-		"${SYSROOT}"/usr/local/telemetry/src/ "${TMP_DIR}"
-	export PYTHONPATH="${TMP_DIR}/third_party/catapult/telemetry"
-	autotest_src_prepare
-}
diff --git a/chromeos-base/autotest-chrome/autotest-chrome-0.0.1-r7821.ebuild b/chromeos-base/autotest-chrome/autotest-chrome-0.0.1-r7821.ebuild
new file mode 100644
index 0000000..f85b828
--- /dev/null
+++ b/chromeos-base/autotest-chrome/autotest-chrome-0.0.1-r7821.ebuild
@@ -0,0 +1,270 @@
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+CROS_WORKON_COMMIT="17d46ec5c4ae09655632d7486cd6d835cc822125"
+CROS_WORKON_TREE="6973c3a9a86e204afe2b17cab6b9e3e258fd648d"
+CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
+
+inherit cros-workon autotest
+
+DESCRIPTION="Autotest tests that require chrome_binary_test, or telemetry deps"
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
+SRC_URI=""
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="*"
+
+# Enable autotest by default.
+IUSE="
+	${IUSE}
+	+autotest
+	+cellular
+	drm_atomic
+	+shill
+	+tpm
+	tpm2
+	vaapi
+"
+
+RDEPEND="
+	!chromeos-base/autotest-telemetry
+	!<chromeos-base/autotest-tests-0.0.4
+	!<chromeos-base/autotest-tests-cellular-0.0.1-r3203
+	chromeos-base/autotest-deps-graphics
+	chromeos-base/autotest-deps-policy
+	chromeos-base/autotest-deps-webgl-mpd
+	chromeos-base/chromeos-chrome
+	dev-python/mkvparse
+	shill? ( chromeos-base/shill-test-scripts )
+	chromeos-base/telemetry
+	sys-apps/ethtool
+	vaapi? ( x11-libs/libva )
+	tests_graphics_WebGLAquarium? ( app-benchmarks/microbenchmarks dev-util/memory-eater-locked )
+	virtual/autotest-private-libs
+"
+
+DEPEND="${RDEPEND}"
+
+IUSE_TESTS=(
+	# Tests that depend on telemetry.
+	+tests_accessibility_Check
+	+tests_accessibility_ChromeVoxSound
+	+tests_audio_ActiveStreamStress
+	+tests_audio_AudioCorruption
+	+tests_audio_CrasCheck
+	+tests_audio_PlaybackPower
+	+tests_audio_SeekAudioFeedback
+	+tests_autoupdate_EOL
+	+tests_autoupdate_LoginStartUpdateLogout
+	+tests_autoupdate_StartOOBEUpdate
+	+tests_autoupdate_UpdateFromUI
+	+tests_autoupdate_UserData
+	+tests_bluetooth_AdapterReboot
+	+tests_bluetooth_AdapterHealth
+	+tests_bluetooth_IDCheck
+	+tests_bluetooth_RegressionClient
+	+tests_bluetooth_TurnOnOffUI
+	+tests_desktopui_AudioFeedback
+	+tests_desktopui_CheckRlzPingSent
+	+tests_desktopui_ChromeCheck
+	tests_desktopui_ConnectivityDiagnostics
+	+tests_desktopui_MediaAudioFeedback
+	+tests_desktopui_ScreenLocker
+	+tests_desktopui_SimpleLogin
+	+tests_desktopui_UrlFetchWithChromeDriver
+	+tests_display_ClientChameleonConnection
+	+tests_display_DisplayContainEdid
+	+tests_enterprise_FakeEnrollment
+	+tests_enterprise_KioskEnrollment
+	+tests_enterprise_OnlineDemoModeEnrollment
+	+tests_enterprise_PowerManagement
+	+tests_enterprise_RemoraRequisition
+	+tests_graphics_Chrome
+	+tests_graphics_Stress
+	+tests_graphics_VideoRenderingPower
+	+tests_graphics_VTSwitch
+	+tests_graphics_WebGLAquarium
+	+tests_graphics_WebGLManyPlanetsDeep
+	tests_logging_AsanCrash
+	+tests_logging_CrashServices
+	+tests_logging_FeedbackReport
+	+tests_login_ChromeProfileSanitary
+	+tests_login_CryptohomeDataLeak
+	+tests_login_CryptohomeIncognito
+	+tests_login_GaiaLogin
+	+tests_login_LoginSuccess
+	+tests_login_OobeLocalization
+	+tests_login_SavePassword
+	+tests_login_UnicornLogin
+	+tests_login_UserPolicyKeys
+	+tests_longevity_Tracker
+	+tests_network_CastTDLS
+	+tests_network_ChromeWifiConfigure
+	+tests_platform_ChromeCgroups
+	+tests_platform_InitLoginPerf
+	+tests_platform_InputBrightness
+	+tests_platform_InputBrowserNav
+	+tests_platform_InputNewTab
+	+tests_platform_InputScreenshot
+	+tests_platform_InputVolume
+	+tests_platform_LogoutPerf
+	+tests_platform_LowMemoryTest
+	+tests_platform_MouseScrollTest
+	+tests_platform_PrintJob
+	+tests_platform_SessionManagerBlockDevmodeSetting
+	+tests_platform_ScrollTest
+	+tests_policy_ArcAudioCaptureAllowed
+	+tests_policy_ArcBackupRestoreServiceEnabled
+	+tests_policy_ArcExternalStorageDisabled
+	+tests_policy_ArcVideoCaptureAllowed
+	+tests_policy_ArcDisableScreenshots
+	+tests_policy_AudioOutputAllowed
+	+tests_policy_AutotestCheck
+	+tests_policy_ChromeOsLockOnIdleSuspend
+	+tests_policy_CookiesAllowedForUrls
+	+tests_policy_CookiesBlockedForUrls
+	+tests_policy_CookiesSessionOnlyForUrls
+	+tests_policy_DefaultSearchProvider
+	+tests_policy_DeveloperToolsAvailability
+	+tests_policy_DeviceAllowBluetooth
+	+tests_policy_DeviceAutoUpdateDisabled
+	+tests_policy_DeviceCharging
+	+tests_policy_DeviceDockMacAddressSource
+	+tests_policy_DeviceScheduledCharging
+	+tests_policy_DisableScreenshots
+	+tests_policy_DownloadDirectory
+	+tests_policy_DriveDisabled
+	+tests_policy_DeviceEphemeralUsersEnabled
+	+tests_policy_EnrollmentRetainment
+	+tests_policy_EnterpriseForceInstallCustom
+	+tests_policy_ExtensionPolicy
+	+tests_policy_ExternalStorageDisabled
+	+tests_policy_ExternalStorageReadOnly
+	+tests_policy_ForceYouTubeRestrict
+	+tests_policy_ForceYouTubeSafetyMode
+	+tests_policy_KeyPermissions
+	+tests_policy_KioskModeEnabled
+	+tests_policy_NativePrintersBulkAccessMode
+	+tests_policy_PinnedLauncherApps
+	+tests_policy_PlatformKeys
+	+tests_policy_PolicyRefreshRate
+	+tests_policy_PowerManagementIdleSettings
+	+tests_policy_PrintingEnabled
+	+tests_policy_ProxySettings
+	+tests_policy_ReportUploadFrequency
+	+tests_policy_RestoreOnStartupURLs
+	+tests_policy_SystemTimezone
+	+tests_policy_VirtualMachinesAllowed
+	+tests_policy_WilcoOnNonWilcoDevice
+	+tests_policy_WilcoUSBPowershare
+	+tests_power_AudioDetector
+	+tests_power_BatteryDrain
+	+tests_power_Consumption
+	+tests_power_Display
+	+tests_power_FlashVideoSuspend
+	+tests_power_Idle
+	+tests_power_IdleSuspend
+	+tests_power_LoadTest
+	+tests_power_LowMemorySuspend
+	+tests_power_MeetClient
+	+tests_power_Speedometer2
+	+tests_power_ThermalLoad
+	+tests_power_UiResume
+	+tests_power_VideoCall
+	+tests_power_VideoDetector
+	+tests_power_VideoEncode
+	+tests_power_VideoPlayback
+	+tests_power_VideoSuspend
+	+tests_power_WebGL
+	+tests_power_WifiIdle
+	+tests_security_BundledExtensions
+	+tests_stub_IdleSuspend
+	+tests_telemetry_AFDOGenerateClient
+	+tests_telemetry_Check
+	+tests_telemetry_UnitTests
+	+tests_telemetry_UnitTestsServer
+	+tests_touch_GestureNav
+	+tests_touch_MouseScroll
+	+tests_touch_ScrollDirection
+	+tests_touch_TapSettings
+	+tests_touch_TabSwitch
+	+tests_touch_TouchscreenScroll
+	+tests_touch_TouchscreenTaps
+	+tests_touch_TouchscreenZoom
+	+tests_touch_StylusTaps
+	+tests_video_AVAnalysis
+)
+
+IUSE_TESTS_CELLULAR="
+	cellular? (
+		+tests_cellular_ModemControl
+		+tests_cellular_SuspendResume
+		+tests_network_ChromeCellularEndToEnd
+		+tests_network_ChromeCellularNetworkPresent
+		+tests_network_ChromeCellularNetworkProperties
+		+tests_network_ChromeCellularSmokeTest
+	)
+"
+
+IUSE_TESTS_SHILL="
+	shill? (
+		+tests_network_ChromeWifiEndToEnd
+		+tests_network_FirewallHolePunch
+		+tests_network_RackWiFiConnect
+		+tests_network_RoamSuspendEndToEnd
+		+tests_network_RoamWifiEndToEnd
+		+tests_policy_GlobalNetworkSettings
+		+tests_policy_WiFiAutoconnect
+		+tests_policy_WiFiPrecedence
+		+tests_policy_WiFiTypes
+	)
+"
+
+# This is here instead of in autotest-tests-tpm because it would be far more
+# work and duplication to add telemetry dependencies there.
+IUSE_TESTS_TPM="
+	tpm? ( +tests_platform_Pkcs11InitOnLogin )
+	tpm2? ( +tests_platform_Pkcs11InitOnLogin )
+"
+
+IUSE_TESTS_ARC="
+	+tests_graphics_Idle
+"
+
+IUSE_TESTS_ATOMIC="
+	drm_atomic? ( +tests_graphics_HwOverlays )
+"
+
+IUSE_TESTS="
+	${IUSE_TESTS[*]}
+	${IUSE_TESTS_CELLULAR}
+	${IUSE_TESTS_SHILL}
+	${IUSE_TESTS_TPM}
+	${IUSE_TESTS_ARC}
+	${IUSE_TESTS_ATOMIC}
+"
+
+IUSE="
+	${IUSE}
+	${IUSE_TESTS}
+"
+
+CROS_WORKON_LOCALNAME="third_party/autotest/files"
+
+AUTOTEST_DEPS_LIST=""
+AUTOTEST_CONFIG_LIST=""
+AUTOTEST_PROFILERS_LIST=""
+
+AUTOTEST_FILE_MASK="*.a *.tar.bz2 *.tbz2 *.tgz *.tar.gz"
+
+src_prepare() {
+	# Telemetry tests require the path to telemetry source to exist in order to
+	# build. Copy the telemetry source to a temporary directory that is writable,
+	# so that file removals in Telemetry source can be performed properly.
+	export TMP_DIR="$(mktemp -d)"
+	rsync -a --exclude=third_party/trace-viewer/test_data/ \
+		"${SYSROOT}"/usr/local/telemetry/src/ "${TMP_DIR}"
+	export PYTHONPATH="${TMP_DIR}/third_party/catapult/telemetry"
+	autotest_src_prepare
+}
diff --git a/chromeos-base/autotest-chrome/autotest-chrome-9999.ebuild b/chromeos-base/autotest-chrome/autotest-chrome-9999.ebuild
index bd49126..1c23ac9 100644
--- a/chromeos-base/autotest-chrome/autotest-chrome-9999.ebuild
+++ b/chromeos-base/autotest-chrome/autotest-chrome-9999.ebuild
@@ -46,11 +46,11 @@
 
 IUSE_TESTS=(
 	# Tests that depend on telemetry.
-	+tests_accessibility_Sanity
+	+tests_accessibility_Check
 	+tests_accessibility_ChromeVoxSound
 	+tests_audio_ActiveStreamStress
 	+tests_audio_AudioCorruption
-	+tests_audio_CrasSanity
+	+tests_audio_CrasCheck
 	+tests_audio_PlaybackPower
 	+tests_audio_SeekAudioFeedback
 	+tests_autoupdate_EOL
@@ -65,7 +65,7 @@
 	+tests_bluetooth_TurnOnOffUI
 	+tests_desktopui_AudioFeedback
 	+tests_desktopui_CheckRlzPingSent
-	+tests_desktopui_ChromeSanity
+	+tests_desktopui_ChromeCheck
 	tests_desktopui_ConnectivityDiagnostics
 	+tests_desktopui_MediaAudioFeedback
 	+tests_desktopui_ScreenLocker
@@ -73,7 +73,6 @@
 	+tests_desktopui_UrlFetchWithChromeDriver
 	+tests_display_ClientChameleonConnection
 	+tests_display_DisplayContainEdid
-	+tests_dummy_IdleSuspend
 	+tests_enterprise_FakeEnrollment
 	+tests_enterprise_KioskEnrollment
 	+tests_enterprise_OnlineDemoModeEnrollment
@@ -96,6 +95,7 @@
 	+tests_login_OobeLocalization
 	+tests_login_SavePassword
 	+tests_login_UnicornLogin
+	+tests_login_UserPolicyKeys
 	+tests_longevity_Tracker
 	+tests_network_CastTDLS
 	+tests_network_ChromeWifiConfigure
@@ -112,14 +112,13 @@
 	+tests_platform_PrintJob
 	+tests_platform_SessionManagerBlockDevmodeSetting
 	+tests_platform_ScrollTest
-	+tests_policy_AccessibilityTest
 	+tests_policy_ArcAudioCaptureAllowed
 	+tests_policy_ArcBackupRestoreServiceEnabled
 	+tests_policy_ArcExternalStorageDisabled
 	+tests_policy_ArcVideoCaptureAllowed
 	+tests_policy_ArcDisableScreenshots
 	+tests_policy_AudioOutputAllowed
-	+tests_policy_AutotestSanity
+	+tests_policy_AutotestCheck
 	+tests_policy_ChromeOsLockOnIdleSuspend
 	+tests_policy_CookiesAllowedForUrls
 	+tests_policy_CookiesBlockedForUrls
@@ -178,8 +177,9 @@
 	+tests_power_WebGL
 	+tests_power_WifiIdle
 	+tests_security_BundledExtensions
+	+tests_stub_IdleSuspend
 	+tests_telemetry_AFDOGenerateClient
-	+tests_telemetry_Sanity
+	+tests_telemetry_Check
 	+tests_telemetry_UnitTests
 	+tests_telemetry_UnitTestsServer
 	+tests_touch_GestureNav
diff --git a/chromeos-base/autotest-client/autotest-client-0.0.1-r2.ebuild b/chromeos-base/autotest-client/autotest-client-0.0.1-r3.ebuild
similarity index 100%
rename from chromeos-base/autotest-client/autotest-client-0.0.1-r2.ebuild
rename to chromeos-base/autotest-client/autotest-client-0.0.1-r3.ebuild
diff --git a/chromeos-base/autotest-client/autotest-client-0.0.1.ebuild b/chromeos-base/autotest-client/autotest-client-0.0.1.ebuild
index da6c7ea..401b061 100644
--- a/chromeos-base/autotest-client/autotest-client-0.0.1.ebuild
+++ b/chromeos-base/autotest-client/autotest-client-0.0.1.ebuild
@@ -8,7 +8,7 @@
 DESCRIPTION="Client portion of autotest installed at image creation time"
 HOMEPAGE="http://src.chromium.org"
 
-LICENSE="BSD"
+LICENSE="GPL-2"
 SLOT="0"
 KEYWORDS="*"
 IUSE="-moblab"
diff --git a/chromeos-base/autotest-deps-camera-hal3/autotest-deps-camera-hal3-0.0.1-r5465.ebuild b/chromeos-base/autotest-deps-camera-hal3/autotest-deps-camera-hal3-0.0.1-r5465.ebuild
deleted file mode 100644
index e78687c..0000000
--- a/chromeos-base/autotest-deps-camera-hal3/autotest-deps-camera-hal3-0.0.1-r5465.ebuild
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright 2017 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-CROS_WORKON_COMMIT="db48601acf9d646e8f4b4c223e67da2d40cf02e6"
-CROS_WORKON_TREE="9c318efb5bd9aef8b16389f9f2573412b9e576cc"
-CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
-CROS_WORKON_LOCALNAME="third_party/autotest/files"
-
-inherit cros-workon autotest-deponly
-
-DESCRIPTION="Dependencies for camera_HAL3 autotest"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
-LICENSE="BSD-Google"
-SLOT="0"
-KEYWORDS="*"
-
-# Autotest enabled by default.
-IUSE="+autotest"
-
-AUTOTEST_DEPS_LIST="camera_hal3"
-
-RDEPEND="
-	media-libs/cros-camera-test
-"
-
-DEPEND="${RDEPEND}"
diff --git a/chromeos-base/autotest-deps-camera-hal3/autotest-deps-camera-hal3-0.0.1-r6311.ebuild b/chromeos-base/autotest-deps-camera-hal3/autotest-deps-camera-hal3-0.0.1-r6311.ebuild
new file mode 100644
index 0000000..bbe13de
--- /dev/null
+++ b/chromeos-base/autotest-deps-camera-hal3/autotest-deps-camera-hal3-0.0.1-r6311.ebuild
@@ -0,0 +1,27 @@
+# Copyright 2017 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+CROS_WORKON_COMMIT="0e103e3821ffbc575b67d6d9c426cac3ee4402b3"
+CROS_WORKON_TREE="210df4cb14c4f7c420a697e85e6a7bec211d5bed"
+CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
+CROS_WORKON_LOCALNAME="third_party/autotest/files"
+
+inherit cros-workon autotest-deponly
+
+DESCRIPTION="Dependencies for camera_HAL3 autotest"
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
+LICENSE="BSD-Google"
+SLOT="0"
+KEYWORDS="*"
+
+# Autotest enabled by default.
+IUSE="+autotest"
+
+AUTOTEST_DEPS_LIST="camera_hal3"
+
+RDEPEND="
+	media-libs/cros-camera-test
+"
+
+DEPEND="${RDEPEND}"
diff --git a/chromeos-base/autotest-deps-cellular/autotest-deps-cellular-0.0.1-r8254.ebuild b/chromeos-base/autotest-deps-cellular/autotest-deps-cellular-0.0.1-r8254.ebuild
deleted file mode 100644
index d7c90a3..0000000
--- a/chromeos-base/autotest-deps-cellular/autotest-deps-cellular-0.0.1-r8254.ebuild
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright 2014 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-CROS_WORKON_COMMIT="db48601acf9d646e8f4b4c223e67da2d40cf02e6"
-CROS_WORKON_TREE="9c318efb5bd9aef8b16389f9f2573412b9e576cc"
-CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
-CROS_WORKON_LOCALNAME="third_party/autotest/files"
-
-inherit cros-workon autotest-deponly
-
-DESCRIPTION="Autotest cellular deps"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
-SRC_URI=""
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="*"
-
-# Autotest enabled by default.
-IUSE="+autotest"
-
-AUTOTEST_DEPS_LIST="fakegudev fakemodem"
-AUTOTEST_CONFIG_LIST=
-AUTOTEST_PROFILERS_LIST=
-
-# NOTE: For deps, we need to keep *.a
-AUTOTEST_FILE_MASK="*.tar.bz2 *.tbz2 *.tgz *.tar.gz"
-
-RDEPEND="!<chromeos-base/autotest-deps-0.0.3"
-
-# deps/fakegudev
-RDEPEND="${RDEPEND}
-	virtual/libgudev
-"
-
-# deps/fakemodem
-RDEPEND="${RDEPEND}
-	chromeos-base/autotest-fakemodem-conf
-	dev-libs/dbus-glib
-"
-DEPEND="${RDEPEND}"
diff --git a/chromeos-base/autotest-deps-cellular/autotest-deps-cellular-0.0.1-r9100.ebuild b/chromeos-base/autotest-deps-cellular/autotest-deps-cellular-0.0.1-r9100.ebuild
new file mode 100644
index 0000000..0682548
--- /dev/null
+++ b/chromeos-base/autotest-deps-cellular/autotest-deps-cellular-0.0.1-r9100.ebuild
@@ -0,0 +1,41 @@
+# Copyright 2014 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+CROS_WORKON_COMMIT="0e103e3821ffbc575b67d6d9c426cac3ee4402b3"
+CROS_WORKON_TREE="210df4cb14c4f7c420a697e85e6a7bec211d5bed"
+CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
+CROS_WORKON_LOCALNAME="third_party/autotest/files"
+
+inherit cros-workon autotest-deponly
+
+DESCRIPTION="Autotest cellular deps"
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
+SRC_URI=""
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="*"
+
+# Autotest enabled by default.
+IUSE="+autotest"
+
+AUTOTEST_DEPS_LIST="fakegudev fakemodem"
+AUTOTEST_CONFIG_LIST=
+AUTOTEST_PROFILERS_LIST=
+
+# NOTE: For deps, we need to keep *.a
+AUTOTEST_FILE_MASK="*.tar.bz2 *.tbz2 *.tgz *.tar.gz"
+
+RDEPEND="!<chromeos-base/autotest-deps-0.0.3"
+
+# deps/fakegudev
+RDEPEND="${RDEPEND}
+	virtual/libgudev
+"
+
+# deps/fakemodem
+RDEPEND="${RDEPEND}
+	chromeos-base/autotest-fakemodem-conf
+	dev-libs/dbus-glib
+"
+DEPEND="${RDEPEND}"
diff --git a/chromeos-base/autotest-deps-dbus/autotest-deps-dbus-0.0.1-r4138.ebuild b/chromeos-base/autotest-deps-dbus/autotest-deps-dbus-0.0.1-r4138.ebuild
deleted file mode 100644
index de4e7e8..0000000
--- a/chromeos-base/autotest-deps-dbus/autotest-deps-dbus-0.0.1-r4138.ebuild
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright 2018 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-CROS_WORKON_COMMIT="db48601acf9d646e8f4b4c223e67da2d40cf02e6"
-CROS_WORKON_TREE="9c318efb5bd9aef8b16389f9f2573412b9e576cc"
-CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
-CROS_WORKON_LOCALNAME="third_party/autotest/files"
-
-inherit cros-workon autotest-deponly
-
-DESCRIPTION="Autotest D-Bus deps"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
-SRC_URI=""
-LICENSE="BSD-Google"
-SLOT="0"
-KEYWORDS="*"
-
-# Autotest enabled by default.
-IUSE="+autotest"
-
-AUTOTEST_DEPS_LIST="dbus_protos"
-
-# NOTE: For deps, we need to keep *.a
-AUTOTEST_FILE_MASK="*.tar.bz2 *.tbz2 *.tgz *.tar.gz"
-
-DEPEND="chromeos-base/system_api
-	dev-libs/protobuf:=
-"
-
-# Calling this here, so tests using this dep don't have to call setup_dep().
-src_prepare() {
-	autotest-deponly_src_prepare
-}
diff --git a/chromeos-base/autotest-deps-dbus/autotest-deps-dbus-0.0.1-r4984.ebuild b/chromeos-base/autotest-deps-dbus/autotest-deps-dbus-0.0.1-r4984.ebuild
new file mode 100644
index 0000000..4a7663a
--- /dev/null
+++ b/chromeos-base/autotest-deps-dbus/autotest-deps-dbus-0.0.1-r4984.ebuild
@@ -0,0 +1,34 @@
+# Copyright 2018 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+CROS_WORKON_COMMIT="0e103e3821ffbc575b67d6d9c426cac3ee4402b3"
+CROS_WORKON_TREE="210df4cb14c4f7c420a697e85e6a7bec211d5bed"
+CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
+CROS_WORKON_LOCALNAME="third_party/autotest/files"
+
+inherit cros-workon autotest-deponly
+
+DESCRIPTION="Autotest D-Bus deps"
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
+SRC_URI=""
+LICENSE="BSD-Google"
+SLOT="0"
+KEYWORDS="*"
+
+# Autotest enabled by default.
+IUSE="+autotest"
+
+AUTOTEST_DEPS_LIST="dbus_protos"
+
+# NOTE: For deps, we need to keep *.a
+AUTOTEST_FILE_MASK="*.tar.bz2 *.tbz2 *.tgz *.tar.gz"
+
+DEPEND="chromeos-base/system_api
+	dev-libs/protobuf:=
+"
+
+# Calling this here, so tests using this dep don't have to call setup_dep().
+src_prepare() {
+	autotest-deponly_src_prepare
+}
diff --git a/chromeos-base/autotest-deps-glmark2/autotest-deps-glmark2-0.0.1-r8625.ebuild b/chromeos-base/autotest-deps-glmark2/autotest-deps-glmark2-0.0.1-r8625.ebuild
deleted file mode 100644
index 20b479a..0000000
--- a/chromeos-base/autotest-deps-glmark2/autotest-deps-glmark2-0.0.1-r8625.ebuild
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-CROS_WORKON_COMMIT="db48601acf9d646e8f4b4c223e67da2d40cf02e6"
-CROS_WORKON_TREE="9c318efb5bd9aef8b16389f9f2573412b9e576cc"
-CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
-CROS_WORKON_LOCALNAME="third_party/autotest/files"
-
-inherit cros-sanitizers cros-workon autotest-deponly
-
-DESCRIPTION="Autotest glmark2 dependency"
-HOMEPAGE="https://launchpad.net/glmark2"
-SRC_URI=""
-
-LICENSE="GPL-3"
-SLOT="0"
-KEYWORDS="*"
-
-# Autotest enabled by default.
-IUSE="-asan +autotest"
-
-AUTOTEST_DEPS_LIST="glmark2"
-
-# deps/glmark2
-RDEPEND="
-	app-benchmarks/glmark2
-"
-
-DEPEND="${RDEPEND}"
-
-src_configure() {
-	sanitizers-setup-env
-	default
-}
diff --git a/chromeos-base/autotest-deps-glmark2/autotest-deps-glmark2-0.0.1-r9471.ebuild b/chromeos-base/autotest-deps-glmark2/autotest-deps-glmark2-0.0.1-r9471.ebuild
new file mode 100644
index 0000000..f241a04
--- /dev/null
+++ b/chromeos-base/autotest-deps-glmark2/autotest-deps-glmark2-0.0.1-r9471.ebuild
@@ -0,0 +1,35 @@
+# Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+CROS_WORKON_COMMIT="0e103e3821ffbc575b67d6d9c426cac3ee4402b3"
+CROS_WORKON_TREE="210df4cb14c4f7c420a697e85e6a7bec211d5bed"
+CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
+CROS_WORKON_LOCALNAME="third_party/autotest/files"
+
+inherit cros-sanitizers cros-workon autotest-deponly
+
+DESCRIPTION="Autotest glmark2 dependency"
+HOMEPAGE="https://launchpad.net/glmark2"
+SRC_URI=""
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="*"
+
+# Autotest enabled by default.
+IUSE="-asan +autotest"
+
+AUTOTEST_DEPS_LIST="glmark2"
+
+# deps/glmark2
+RDEPEND="
+	app-benchmarks/glmark2
+"
+
+DEPEND="${RDEPEND}"
+
+src_configure() {
+	sanitizers-setup-env
+	default
+}
diff --git a/chromeos-base/autotest-deps-graphics/autotest-deps-graphics-0.0.1-r8605.ebuild b/chromeos-base/autotest-deps-graphics/autotest-deps-graphics-0.0.1-r8605.ebuild
deleted file mode 100644
index 6b1a6fd..0000000
--- a/chromeos-base/autotest-deps-graphics/autotest-deps-graphics-0.0.1-r8605.ebuild
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright (c) 2014 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=4
-CROS_WORKON_COMMIT="db48601acf9d646e8f4b4c223e67da2d40cf02e6"
-CROS_WORKON_TREE="9c318efb5bd9aef8b16389f9f2573412b9e576cc"
-CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
-CROS_WORKON_LOCALNAME="third_party/autotest/files"
-
-inherit cros-workon autotest-deponly
-
-DESCRIPTION="Dependencies for graphics autotests"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
-SRC_URI=""
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="*"
-
-# Autotest enabled by default.
-IUSE="+autotest"
-
-AUTOTEST_DEPS_LIST="graphics"
-
-# NOTE: For deps, we need to keep *.a
-AUTOTEST_FILE_MASK="*.tar.bz2 *.tbz2 *.tgz *.tar.gz"
-
-RDEPEND="!<chromeos-base/autotest-deps-0.0.4"
-DEPEND="${RDEPEND}"
diff --git a/chromeos-base/autotest-deps-graphics/autotest-deps-graphics-0.0.1-r9451.ebuild b/chromeos-base/autotest-deps-graphics/autotest-deps-graphics-0.0.1-r9451.ebuild
new file mode 100644
index 0000000..931209b
--- /dev/null
+++ b/chromeos-base/autotest-deps-graphics/autotest-deps-graphics-0.0.1-r9451.ebuild
@@ -0,0 +1,28 @@
+# Copyright (c) 2014 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=4
+CROS_WORKON_COMMIT="0e103e3821ffbc575b67d6d9c426cac3ee4402b3"
+CROS_WORKON_TREE="210df4cb14c4f7c420a697e85e6a7bec211d5bed"
+CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
+CROS_WORKON_LOCALNAME="third_party/autotest/files"
+
+inherit cros-workon autotest-deponly
+
+DESCRIPTION="Dependencies for graphics autotests"
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
+SRC_URI=""
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="*"
+
+# Autotest enabled by default.
+IUSE="+autotest"
+
+AUTOTEST_DEPS_LIST="graphics"
+
+# NOTE: For deps, we need to keep *.a
+AUTOTEST_FILE_MASK="*.tar.bz2 *.tbz2 *.tgz *.tar.gz"
+
+RDEPEND="!<chromeos-base/autotest-deps-0.0.4"
+DEPEND="${RDEPEND}"
diff --git a/chromeos-base/autotest-deps-p2p/autotest-deps-p2p-0.0.1-r8217.ebuild b/chromeos-base/autotest-deps-p2p/autotest-deps-p2p-0.0.1-r8217.ebuild
deleted file mode 100644
index 5fff5b0..0000000
--- a/chromeos-base/autotest-deps-p2p/autotest-deps-p2p-0.0.1-r8217.ebuild
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright 2014 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="5"
-CROS_WORKON_COMMIT="db48601acf9d646e8f4b4c223e67da2d40cf02e6"
-CROS_WORKON_TREE="9c318efb5bd9aef8b16389f9f2573412b9e576cc"
-CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
-CROS_WORKON_LOCALNAME="third_party/autotest/files"
-
-PYTHON_COMPAT=( python2_7 )
-inherit cros-workon autotest-deponly python-any-r1
-
-DESCRIPTION="Autotest p2p deps"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
-SRC_URI=""
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="*"
-
-# Autotest enabled by default.
-IUSE="+autotest"
-
-AUTOTEST_DEPS_LIST="lansim"
-
-# NOTE: For deps, we need to keep *.a
-AUTOTEST_FILE_MASK="*.tar.bz2 *.tbz2 *.tgz *.tar.gz"
-
-RDEPEND="!<chromeos-base/autotest-deps-0.0.4"
-
-# deps/lansim
-RDEPEND="${RDEPEND}
-	dev-python/dpkt
-"
-DEPEND="${RDEPEND}"
diff --git a/chromeos-base/autotest-deps-p2p/autotest-deps-p2p-0.0.1-r9063.ebuild b/chromeos-base/autotest-deps-p2p/autotest-deps-p2p-0.0.1-r9063.ebuild
new file mode 100644
index 0000000..9be103f
--- /dev/null
+++ b/chromeos-base/autotest-deps-p2p/autotest-deps-p2p-0.0.1-r9063.ebuild
@@ -0,0 +1,34 @@
+# Copyright 2014 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+CROS_WORKON_COMMIT="0e103e3821ffbc575b67d6d9c426cac3ee4402b3"
+CROS_WORKON_TREE="210df4cb14c4f7c420a697e85e6a7bec211d5bed"
+CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
+CROS_WORKON_LOCALNAME="third_party/autotest/files"
+
+PYTHON_COMPAT=( python2_7 )
+inherit cros-workon autotest-deponly python-any-r1
+
+DESCRIPTION="Autotest p2p deps"
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
+SRC_URI=""
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="*"
+
+# Autotest enabled by default.
+IUSE="+autotest"
+
+AUTOTEST_DEPS_LIST="lansim"
+
+# NOTE: For deps, we need to keep *.a
+AUTOTEST_FILE_MASK="*.tar.bz2 *.tbz2 *.tgz *.tar.gz"
+
+RDEPEND="!<chromeos-base/autotest-deps-0.0.4"
+
+# deps/lansim
+RDEPEND="${RDEPEND}
+	dev-python/dpkt
+"
+DEPEND="${RDEPEND}"
diff --git a/chromeos-base/autotest-deps-policy/autotest-deps-policy-0.0.1-r4214.ebuild b/chromeos-base/autotest-deps-policy/autotest-deps-policy-0.0.1-r4214.ebuild
deleted file mode 100644
index 95711ca..0000000
--- a/chromeos-base/autotest-deps-policy/autotest-deps-policy-0.0.1-r4214.ebuild
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright 2018 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-CROS_WORKON_COMMIT="db48601acf9d646e8f4b4c223e67da2d40cf02e6"
-CROS_WORKON_TREE="9c318efb5bd9aef8b16389f9f2573412b9e576cc"
-CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
-CROS_WORKON_LOCALNAME="third_party/autotest/files"
-
-inherit cros-workon autotest-deponly
-
-DESCRIPTION="Autotest policy deps"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
-SRC_URI=""
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="*"
-
-# Autotest enabled by default.
-IUSE="+autotest"
-
-AUTOTEST_DEPS_LIST="policy_protos"
-
-# NOTE: For deps, we need to keep *.a
-AUTOTEST_FILE_MASK="*.tar.bz2 *.tbz2 *.tgz *.tar.gz"
-
-DEPEND="
-	>=chromeos-base/protofiles-0.0.39:=
-	chromeos-base/system_api
-	dev-libs/protobuf:=
-"
-
-# Calling this here, so tests using this dep don't have to call setup_dep().
-src_prepare() {
-	autotest-deponly_src_prepare
-}
diff --git a/chromeos-base/autotest-deps-policy/autotest-deps-policy-0.0.1-r5060.ebuild b/chromeos-base/autotest-deps-policy/autotest-deps-policy-0.0.1-r5060.ebuild
new file mode 100644
index 0000000..e2ec3a1
--- /dev/null
+++ b/chromeos-base/autotest-deps-policy/autotest-deps-policy-0.0.1-r5060.ebuild
@@ -0,0 +1,36 @@
+# Copyright 2018 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+CROS_WORKON_COMMIT="0e103e3821ffbc575b67d6d9c426cac3ee4402b3"
+CROS_WORKON_TREE="210df4cb14c4f7c420a697e85e6a7bec211d5bed"
+CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
+CROS_WORKON_LOCALNAME="third_party/autotest/files"
+
+inherit cros-workon autotest-deponly
+
+DESCRIPTION="Autotest policy deps"
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
+SRC_URI=""
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="*"
+
+# Autotest enabled by default.
+IUSE="+autotest"
+
+AUTOTEST_DEPS_LIST="policy_protos"
+
+# NOTE: For deps, we need to keep *.a
+AUTOTEST_FILE_MASK="*.tar.bz2 *.tbz2 *.tgz *.tar.gz"
+
+DEPEND="
+	>=chromeos-base/protofiles-0.0.43:=
+	chromeos-base/system_api
+	dev-libs/protobuf:=
+"
+
+# Calling this here, so tests using this dep don't have to call setup_dep().
+src_prepare() {
+	autotest-deponly_src_prepare
+}
diff --git a/chromeos-base/autotest-deps-policy/autotest-deps-policy-9999.ebuild b/chromeos-base/autotest-deps-policy/autotest-deps-policy-9999.ebuild
index fd2fedb..6bdcb10 100644
--- a/chromeos-base/autotest-deps-policy/autotest-deps-policy-9999.ebuild
+++ b/chromeos-base/autotest-deps-policy/autotest-deps-policy-9999.ebuild
@@ -23,7 +23,7 @@
 AUTOTEST_FILE_MASK="*.tar.bz2 *.tbz2 *.tgz *.tar.gz"
 
 DEPEND="
-	>=chromeos-base/protofiles-0.0.39:=
+	>=chromeos-base/protofiles-0.0.43:=
 	chromeos-base/system_api
 	dev-libs/protobuf:=
 "
diff --git a/chromeos-base/autotest-deps-touchpad/autotest-deps-touchpad-0.0.1-r10073.ebuild b/chromeos-base/autotest-deps-touchpad/autotest-deps-touchpad-0.0.1-r10073.ebuild
new file mode 100644
index 0000000..faa715b
--- /dev/null
+++ b/chromeos-base/autotest-deps-touchpad/autotest-deps-touchpad-0.0.1-r10073.ebuild
@@ -0,0 +1,35 @@
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+CROS_WORKON_COMMIT="0e103e3821ffbc575b67d6d9c426cac3ee4402b3"
+CROS_WORKON_TREE="210df4cb14c4f7c420a697e85e6a7bec211d5bed"
+CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
+CROS_WORKON_LOCALNAME="third_party/autotest/files"
+
+inherit cros-workon autotest-deponly
+
+DESCRIPTION="Autotest touchpad deps"
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="*"
+
+# Autotest enabled by default.
+IUSE="+autotest"
+
+AUTOTEST_DEPS_LIST="touchpad-tests"
+AUTOTEST_CONFIG_LIST=
+AUTOTEST_PROFILERS_LIST=
+
+# NOTE: For deps, we need to keep *.a
+AUTOTEST_FILE_MASK="*.tar.bz2 *.tbz2 *.tgz *.tar.gz"
+
+# deps/touchpad-tests
+RDEPEND="
+	x11-drivers/touchpad-tests
+	chromeos-base/touch_firmware_test
+	chromeos-base/mttools
+"
+
+DEPEND="${RDEPEND}"
diff --git a/chromeos-base/autotest-deps-touchpad/autotest-deps-touchpad-0.0.1-r9227.ebuild b/chromeos-base/autotest-deps-touchpad/autotest-deps-touchpad-0.0.1-r9227.ebuild
deleted file mode 100644
index 4c04b82..0000000
--- a/chromeos-base/autotest-deps-touchpad/autotest-deps-touchpad-0.0.1-r9227.ebuild
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-CROS_WORKON_COMMIT="db48601acf9d646e8f4b4c223e67da2d40cf02e6"
-CROS_WORKON_TREE="9c318efb5bd9aef8b16389f9f2573412b9e576cc"
-CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
-CROS_WORKON_LOCALNAME="third_party/autotest/files"
-
-inherit cros-workon autotest-deponly
-
-DESCRIPTION="Autotest touchpad deps"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="*"
-
-# Autotest enabled by default.
-IUSE="+autotest"
-
-AUTOTEST_DEPS_LIST="touchpad-tests"
-AUTOTEST_CONFIG_LIST=
-AUTOTEST_PROFILERS_LIST=
-
-# NOTE: For deps, we need to keep *.a
-AUTOTEST_FILE_MASK="*.tar.bz2 *.tbz2 *.tgz *.tar.gz"
-
-# deps/touchpad-tests
-RDEPEND="
-	x11-drivers/touchpad-tests
-	chromeos-base/touch_firmware_test
-	chromeos-base/mttools
-"
-
-DEPEND="${RDEPEND}"
diff --git a/chromeos-base/autotest-deps-webgl-mpd/autotest-deps-webgl-mpd-0.0.1-r8777.ebuild b/chromeos-base/autotest-deps-webgl-mpd/autotest-deps-webgl-mpd-0.0.1-r8777.ebuild
deleted file mode 100644
index c9be68f..0000000
--- a/chromeos-base/autotest-deps-webgl-mpd/autotest-deps-webgl-mpd-0.0.1-r8777.ebuild
+++ /dev/null
@@ -1,25 +0,0 @@
-# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-CROS_WORKON_COMMIT="db48601acf9d646e8f4b4c223e67da2d40cf02e6"
-CROS_WORKON_TREE="9c318efb5bd9aef8b16389f9f2573412b9e576cc"
-CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
-CROS_WORKON_LOCALNAME="third_party/autotest/files"
-
-inherit cros-workon autotest-deponly
-
-DESCRIPTION="Dependencies for WebGL many planets deep test"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
-SRC_URI=""
-
-LICENSE="GPL-2"
-KEYWORDS="*"
-
-# Autotest enabled by default.
-IUSE="+autotest"
-
-AUTOTEST_DEPS_LIST="webgl_mpd"
-
-# NOTE: For deps, we need to keep *.a
-AUTOTEST_FILE_MASK="*.tar.bz2 *.tbz2 *.tgz *.tar.gz"
diff --git a/chromeos-base/autotest-deps-webgl-mpd/autotest-deps-webgl-mpd-0.0.1-r9623.ebuild b/chromeos-base/autotest-deps-webgl-mpd/autotest-deps-webgl-mpd-0.0.1-r9623.ebuild
new file mode 100644
index 0000000..bff4d57
--- /dev/null
+++ b/chromeos-base/autotest-deps-webgl-mpd/autotest-deps-webgl-mpd-0.0.1-r9623.ebuild
@@ -0,0 +1,25 @@
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+CROS_WORKON_COMMIT="0e103e3821ffbc575b67d6d9c426cac3ee4402b3"
+CROS_WORKON_TREE="210df4cb14c4f7c420a697e85e6a7bec211d5bed"
+CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
+CROS_WORKON_LOCALNAME="third_party/autotest/files"
+
+inherit cros-workon autotest-deponly
+
+DESCRIPTION="Dependencies for WebGL many planets deep test"
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
+SRC_URI=""
+
+LICENSE="GPL-2"
+KEYWORDS="*"
+
+# Autotest enabled by default.
+IUSE="+autotest"
+
+AUTOTEST_DEPS_LIST="webgl_mpd"
+
+# NOTE: For deps, we need to keep *.a
+AUTOTEST_FILE_MASK="*.tar.bz2 *.tbz2 *.tgz *.tar.gz"
diff --git a/chromeos-base/autotest-deps/autotest-deps-0.0.4-r13444.ebuild b/chromeos-base/autotest-deps/autotest-deps-0.0.4-r13444.ebuild
deleted file mode 100644
index d1c4c1f..0000000
--- a/chromeos-base/autotest-deps/autotest-deps-0.0.4-r13444.ebuild
+++ /dev/null
@@ -1,64 +0,0 @@
-# Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="5"
-CROS_WORKON_COMMIT="db48601acf9d646e8f4b4c223e67da2d40cf02e6"
-CROS_WORKON_TREE="9c318efb5bd9aef8b16389f9f2573412b9e576cc"
-CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
-CROS_WORKON_LOCALNAME="third_party/autotest/files"
-
-inherit cros-workon autotest-deponly
-
-DESCRIPTION="Autotest common deps"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
-SRC_URI=""
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="*"
-
-# Autotest enabled by default.
-IUSE="+autotest"
-
-# following deps don't compile: boottool, mysql, pgpool, pgsql, systemtap, # dejagnu, libcap, libnet
-# following deps are not deps: factory
-# following tests are going to be moved: chrome_test
-AUTOTEST_DEPS_LIST="gtest iwcap"
-AUTOTEST_CONFIG_LIST=*
-AUTOTEST_PROFILERS_LIST=*
-
-# NOTE: For deps, we need to keep *.a
-AUTOTEST_FILE_MASK="*.tar.bz2 *.tbz2 *.tgz *.tar.gz"
-
-# deps/gtest
-RDEPEND="
-	dev-cpp/gtest:=
-"
-
-# deps/iwcap
-RDEPEND="${RDEPEND}
-	dev-libs/libnl:0
-"
-
-# deps/grpcio
-RDEPEND="${RDEPEND}
-	>=dev-python/grpcio-1.19
-"
-
-# deps/psutil
-RDEPEND="${RDEPEND}
-	>=dev-python/psutil-5.5.0
-"
-
-RDEPEND="${RDEPEND}
-	sys-devel/binutils
-"
-DEPEND="${RDEPEND}"
-
-src_prepare() {
-	autotest-deponly_src_prepare
-
-	# To avoid a file collision with autotest.ebuild, remove
-	# one particular __init__.py file from working directory.
-	# See crbug.com/324963 for context.
-	rm "${AUTOTEST_WORKDIR}/client/profilers/__init__.py"
-}
diff --git a/chromeos-base/autotest-deps/autotest-deps-0.0.4-r14291.ebuild b/chromeos-base/autotest-deps/autotest-deps-0.0.4-r14291.ebuild
new file mode 100644
index 0000000..6d34433
--- /dev/null
+++ b/chromeos-base/autotest-deps/autotest-deps-0.0.4-r14291.ebuild
@@ -0,0 +1,52 @@
+# Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+CROS_WORKON_COMMIT="0e103e3821ffbc575b67d6d9c426cac3ee4402b3"
+CROS_WORKON_TREE="210df4cb14c4f7c420a697e85e6a7bec211d5bed"
+CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
+CROS_WORKON_LOCALNAME="third_party/autotest/files"
+
+inherit cros-workon autotest-deponly
+
+DESCRIPTION="Autotest common deps"
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
+SRC_URI=""
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="*"
+
+# Autotest enabled by default.
+IUSE="+autotest"
+
+# following deps don't compile: boottool, mysql, pgpool, pgsql, systemtap, # dejagnu, libcap, libnet
+# following deps are not deps: factory
+# following tests are going to be moved: chrome_test
+AUTOTEST_DEPS_LIST="gtest iwcap"
+AUTOTEST_CONFIG_LIST=*
+AUTOTEST_PROFILERS_LIST=*
+
+# NOTE: For deps, we need to keep *.a
+AUTOTEST_FILE_MASK="*.tar.bz2 *.tbz2 *.tgz *.tar.gz"
+
+# deps/gtest
+RDEPEND="
+	dev-cpp/gtest:=
+	dev-libs/libnl:0
+	>=dev-python/grpcio-1.19
+	>=dev-python/psutil-5.5.0
+	sys-devel/binutils
+"
+
+DEPEND="${RDEPEND}
+	chromeos-base/cros-config-api
+"
+
+src_prepare() {
+	autotest-deponly_src_prepare
+
+	# To avoid a file collision with autotest.ebuild, remove
+	# one particular __init__.py file from working directory.
+	# See crbug.com/324963 for context.
+	rm "${AUTOTEST_WORKDIR}/client/profilers/__init__.py"
+}
diff --git a/chromeos-base/autotest-deps/autotest-deps-9999.ebuild b/chromeos-base/autotest-deps/autotest-deps-9999.ebuild
index 173758d..627f581 100644
--- a/chromeos-base/autotest-deps/autotest-deps-9999.ebuild
+++ b/chromeos-base/autotest-deps/autotest-deps-9999.ebuild
@@ -30,27 +30,15 @@
 # deps/gtest
 RDEPEND="
 	dev-cpp/gtest:=
-"
-
-# deps/iwcap
-RDEPEND="${RDEPEND}
 	dev-libs/libnl:0
-"
-
-# deps/grpcio
-RDEPEND="${RDEPEND}
 	>=dev-python/grpcio-1.19
-"
-
-# deps/psutil
-RDEPEND="${RDEPEND}
 	>=dev-python/psutil-5.5.0
-"
-
-RDEPEND="${RDEPEND}
 	sys-devel/binutils
 "
-DEPEND="${RDEPEND}"
+
+DEPEND="${RDEPEND}
+	chromeos-base/cros-config-api
+"
 
 src_prepare() {
 	autotest-deponly_src_prepare
diff --git a/chromeos-base/autotest-server-tests-bluetooth/autotest-server-tests-bluetooth-0.0.1-r3402.ebuild b/chromeos-base/autotest-server-tests-bluetooth/autotest-server-tests-bluetooth-0.0.1-r3402.ebuild
deleted file mode 100644
index 58f641c..0000000
--- a/chromeos-base/autotest-server-tests-bluetooth/autotest-server-tests-bluetooth-0.0.1-r3402.ebuild
+++ /dev/null
@@ -1,51 +0,0 @@
-# Copyright 2014 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="5"
-CROS_WORKON_COMMIT="db48601acf9d646e8f4b4c223e67da2d40cf02e6"
-CROS_WORKON_TREE="9c318efb5bd9aef8b16389f9f2573412b9e576cc"
-CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
-CROS_WORKON_LOCALNAME="third_party/autotest/files"
-
-inherit cros-workon autotest
-
-DESCRIPTION="Autotest server tests for Bluetooth"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
-SRC_URI=""
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="*"
-
-# Enable autotest by default.
-IUSE="+autotest"
-
-RDEPEND="
-	!<chromeos-base/autotest-server-tests-0.0.2-r4126
-"
-
-SERVER_IUSE_TESTS="
-	+tests_bluetooth_AdapterAdvHealth
-	+tests_bluetooth_AdapterAdvMonitor
-	+tests_bluetooth_AdapterAudioLink
-	+tests_bluetooth_AdapterAUHealth
-	+tests_bluetooth_AdapterCLHealth
-	+tests_bluetooth_AdapterLEAdvertising
-	+tests_bluetooth_AdapterLEBetterTogether
-	+tests_bluetooth_AdapterLEHIDHealth
-	+tests_bluetooth_AdapterLEHealth
-	+tests_bluetooth_AdapterMDHealth
-	+tests_bluetooth_AdapterMTBF
-	+tests_bluetooth_AdapterPowerMeasure
-	+tests_bluetooth_AdapterQuickHealth
-	+tests_bluetooth_AdapterSAHealth
-	+tests_bluetooth_PeerUpdate
-	+tests_bluetooth_AdapterSRHealth
-"
-
-IUSE_TESTS="${IUSE_TESTS}
-	${SERVER_IUSE_TESTS}
-"
-
-IUSE="${IUSE} ${IUSE_TESTS}"
-
-AUTOTEST_FILE_MASK="*.a *.tar.bz2 *.tbz2 *.tgz *.tar.gz"
diff --git a/chromeos-base/autotest-server-tests-bluetooth/autotest-server-tests-bluetooth-0.0.1-r3429.ebuild b/chromeos-base/autotest-server-tests-bluetooth/autotest-server-tests-bluetooth-0.0.1-r3429.ebuild
new file mode 100644
index 0000000..fa66f6f
--- /dev/null
+++ b/chromeos-base/autotest-server-tests-bluetooth/autotest-server-tests-bluetooth-0.0.1-r3429.ebuild
@@ -0,0 +1,53 @@
+# Copyright 2014 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+CROS_WORKON_COMMIT="5d62145665a2692184d4b36e65ef3cfc6e6edd9a"
+CROS_WORKON_TREE="f3c2c1b6ad950d4f0da89332f1e47d33bdda1857"
+CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
+CROS_WORKON_LOCALNAME="third_party/autotest/files"
+
+inherit cros-workon autotest
+
+DESCRIPTION="Autotest server tests for Bluetooth"
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
+SRC_URI=""
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="*"
+
+# Enable autotest by default.
+IUSE="+autotest"
+
+RDEPEND="
+	!<chromeos-base/autotest-server-tests-0.0.2-r4126
+"
+
+SERVER_IUSE_TESTS="
+	+tests_bluetooth_AdapterAdvHealth
+	+tests_bluetooth_AdapterAdvMonitor
+	+tests_bluetooth_AdapterAudioLink
+	+tests_bluetooth_AdapterAUHealth
+	+tests_bluetooth_AdapterCLHealth
+	+tests_bluetooth_AdapterEPHealth
+	+tests_bluetooth_AdapterLEAdvertising
+	+tests_bluetooth_AdapterLEBetterTogether
+	+tests_bluetooth_AdapterLEHIDHealth
+	+tests_bluetooth_AdapterLEHealth
+	+tests_bluetooth_AdapterLLTHealth
+	+tests_bluetooth_AdapterMDHealth
+	+tests_bluetooth_AdapterMTBF
+	+tests_bluetooth_AdapterPowerMeasure
+	+tests_bluetooth_AdapterQuickHealth
+	+tests_bluetooth_AdapterSAHealth
+	+tests_bluetooth_AdapterSRHealth
+	+tests_bluetooth_PeerUpdate
+"
+
+IUSE_TESTS="${IUSE_TESTS}
+	${SERVER_IUSE_TESTS}
+"
+
+IUSE="${IUSE} ${IUSE_TESTS}"
+
+AUTOTEST_FILE_MASK="*.a *.tar.bz2 *.tbz2 *.tgz *.tar.gz"
diff --git a/chromeos-base/autotest-server-tests-bluetooth/autotest-server-tests-bluetooth-9999.ebuild b/chromeos-base/autotest-server-tests-bluetooth/autotest-server-tests-bluetooth-9999.ebuild
index e6fdb5c..8eb25cf 100644
--- a/chromeos-base/autotest-server-tests-bluetooth/autotest-server-tests-bluetooth-9999.ebuild
+++ b/chromeos-base/autotest-server-tests-bluetooth/autotest-server-tests-bluetooth-9999.ebuild
@@ -27,17 +27,19 @@
 	+tests_bluetooth_AdapterAudioLink
 	+tests_bluetooth_AdapterAUHealth
 	+tests_bluetooth_AdapterCLHealth
+	+tests_bluetooth_AdapterEPHealth
 	+tests_bluetooth_AdapterLEAdvertising
 	+tests_bluetooth_AdapterLEBetterTogether
 	+tests_bluetooth_AdapterLEHIDHealth
 	+tests_bluetooth_AdapterLEHealth
+	+tests_bluetooth_AdapterLLTHealth
 	+tests_bluetooth_AdapterMDHealth
 	+tests_bluetooth_AdapterMTBF
 	+tests_bluetooth_AdapterPowerMeasure
 	+tests_bluetooth_AdapterQuickHealth
 	+tests_bluetooth_AdapterSAHealth
-	+tests_bluetooth_PeerUpdate
 	+tests_bluetooth_AdapterSRHealth
+	+tests_bluetooth_PeerUpdate
 "
 
 IUSE_TESTS="${IUSE_TESTS}
diff --git a/chromeos-base/autotest-server-tests-shill/autotest-server-tests-shill-0.0.1-r3355.ebuild b/chromeos-base/autotest-server-tests-shill/autotest-server-tests-shill-0.0.1-r3355.ebuild
deleted file mode 100644
index 99c8795..0000000
--- a/chromeos-base/autotest-server-tests-shill/autotest-server-tests-shill-0.0.1-r3355.ebuild
+++ /dev/null
@@ -1,99 +0,0 @@
-# Copyright 2014 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="4"
-CROS_WORKON_COMMIT="1521b89a2238df3d685fc5ee36b5271327611214"
-CROS_WORKON_TREE="67c30b01c0b67d27e2ee30c3a08130d0b95a70ab"
-CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
-CROS_WORKON_LOCALNAME="third_party/autotest/files"
-
-inherit cros-workon autotest
-
-DESCRIPTION="Autotest server tests for shill"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
-SRC_URI=""
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="*"
-
-# Enable autotest by default.
-IUSE="-chromeless_tests +autotest -chromeless_tty"
-
-SERVER_IUSE_TESTS="
-	+tests_network_WiFi_APSupportedRates
-	+tests_network_WiFi_AssocConfigPerformance
-	+tests_network_WiFi_AttenuatedPerf
-	+tests_network_WiFi_BeaconInterval
-	+tests_network_WiFi_BgscanBackoff
-	+tests_network_WiFi_BluetoothScanPerf
-	+tests_network_WiFi_BluetoothStreamPerf
-	+tests_network_WiFi_BSSTMReq
-	+tests_network_WiFi_BT_AntennaCoex
-	+tests_network_WiFi_ChannelHop
-	+tests_network_WiFi_ChannelScanDwellTime
-	+tests_network_WiFi_ChaosConfigFailure
-	+tests_network_WiFi_ChaosConnectDisconnect
-	+tests_network_WiFi_ChaosLongConnect
-	!chromeless_tty (
-		!chromeless_tests (
-			+tests_cellular_ChromeEndToEnd
-			+tests_network_WiFi_ChromeEndToEnd
-			+tests_network_WiFi_RoamEndToEnd
-			+tests_network_WiFi_RoamSuspendEndToEnd
-		)
-	)
-	+tests_network_WiFi_ConnectionIdentifier
-	+tests_network_WiFi_CSA
-	+tests_network_WiFi_CSADisconnect
-	+tests_network_WiFi_DarkResumeActiveScans
-	+tests_network_WiFi_DisableEnable
-	+tests_network_WiFi_DisableRandomMACAddress
-	+tests_network_WiFi_DisconnectReason
-	+tests_network_WiFi_DTIMPeriod
-	+tests_network_WiFi_FastReconnectInDarkResume
-	+tests_network_WiFi_GTK
-	+tests_network_WiFi_HiddenRemains
-	+tests_network_WiFi_HiddenScan
-	+tests_network_WiFi_LinkMonitorFailure
-	+tests_network_WiFi_MalformedProbeResp
-	+tests_network_WiFi_MultiAuth
-	+tests_network_WiFi_OverlappingBSSScan
-	+tests_network_WiFi_Perf
-	+tests_network_WiFi_PMKSACaching
-	+tests_network_WiFi_Prefer5Ghz
-	+tests_network_WiFi_ProfileBasic
-	+tests_network_WiFi_ProfileGUID
-	+tests_network_WiFi_PTK
-	+tests_network_WiFi_RandomMACAddress
-	+tests_network_WiFi_RateControl
-	+tests_network_WiFi_Reassociate
-	+tests_network_WiFi_ReconnectInDarkResume
-	+tests_network_WiFi_Reset
-	+tests_network_WiFi_Roam
-	+tests_network_WiFi_RoamDbus
-	+tests_network_WiFi_RoamFT
-	+tests_network_WiFi_RoamSuspendTimeout
-	+tests_network_WiFi_SecChange
-	+tests_network_WiFi_SetOptionalDhcpProperties
-	+tests_network_WiFi_SimpleConnect
-	+tests_network_WiFi_SSIDSwitchBack
-	+tests_network_WiFi_SuspendStress
-	+tests_network_WiFi_StressTest
-	+tests_network_WiFi_Throttle
-	+tests_network_WiFi_UpdateRouter
-	+tests_network_WiFi_VerifyRouter
-	+tests_network_WiFi_VisibleScan
-	+tests_network_WiFi_WakeOnDisconnect
-	+tests_network_WiFi_WakeOnSSID
-	+tests_network_WiFi_WakeOnWiFiThrottling
-	+tests_network_WiFi_WoWLAN
-	+tests_network_WiFi_WMM
-"
-
-IUSE_TESTS="${IUSE_TESTS}
-	${SERVER_IUSE_TESTS}
-"
-
-IUSE="${IUSE} ${IUSE_TESTS}"
-
-AUTOTEST_FILE_MASK="*.a *.tar.bz2 *.tbz2 *.tgz *.tar.gz"
diff --git a/chromeos-base/autotest-server-tests-shill/autotest-server-tests-shill-0.0.1-r3402.ebuild b/chromeos-base/autotest-server-tests-shill/autotest-server-tests-shill-0.0.1-r3402.ebuild
new file mode 100644
index 0000000..98c2958
--- /dev/null
+++ b/chromeos-base/autotest-server-tests-shill/autotest-server-tests-shill-0.0.1-r3402.ebuild
@@ -0,0 +1,96 @@
+# Copyright 2014 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="4"
+CROS_WORKON_COMMIT="776277f05c512cf1ff0033b55e58d4629e277cd5"
+CROS_WORKON_TREE="45230f81767e1e2835752c13a07d5ebd03df8a04"
+CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
+CROS_WORKON_LOCALNAME="third_party/autotest/files"
+
+inherit cros-workon autotest
+
+DESCRIPTION="Autotest server tests for shill"
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
+SRC_URI=""
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="*"
+
+# Enable autotest by default.
+IUSE="-chromeless_tests +autotest -chromeless_tty"
+
+SERVER_IUSE_TESTS="
+	+tests_network_WiFi_APSupportedRates
+	+tests_network_WiFi_AssocConfigPerformance
+	+tests_network_WiFi_AttenuatedPerf
+	+tests_network_WiFi_BeaconInterval
+	+tests_network_WiFi_BgscanBackoff
+	+tests_network_WiFi_BluetoothScanPerf
+	+tests_network_WiFi_BluetoothStreamPerf
+	+tests_network_WiFi_BSSTMReq
+	+tests_network_WiFi_BT_AntennaCoex
+	+tests_network_WiFi_ChannelHop
+	+tests_network_WiFi_ChannelScanDwellTime
+	+tests_network_WiFi_ChaosConfigFailure
+	+tests_network_WiFi_ChaosConnectDisconnect
+	+tests_network_WiFi_ChaosLongConnect
+	!chromeless_tty (
+		!chromeless_tests (
+			+tests_cellular_ChromeEndToEnd
+			+tests_network_WiFi_ChromeEndToEnd
+			+tests_network_WiFi_RoamEndToEnd
+			+tests_network_WiFi_RoamSuspendEndToEnd
+		)
+	)
+	+tests_network_WiFi_CSA
+	+tests_network_WiFi_DarkResumeActiveScans
+	+tests_network_WiFi_DisableEnable
+	+tests_network_WiFi_DisableRandomMACAddress
+	+tests_network_WiFi_DisconnectReason
+	+tests_network_WiFi_DTIMPeriod
+	+tests_network_WiFi_FastReconnectInDarkResume
+	+tests_network_WiFi_GTK
+	+tests_network_WiFi_HiddenRemains
+	+tests_network_WiFi_HiddenScan
+	+tests_network_WiFi_LinkMonitorFailure
+	+tests_network_WiFi_MalformedProbeResp
+	+tests_network_WiFi_MultiAuth
+	+tests_network_WiFi_OverlappingBSSScan
+	+tests_network_WiFi_Perf
+	+tests_network_WiFi_PMKSACaching
+	+tests_network_WiFi_Prefer5Ghz
+	+tests_network_WiFi_ProfileBasic
+	+tests_network_WiFi_ProfileGUID
+	+tests_network_WiFi_PTK
+	+tests_network_WiFi_RandomMACAddress
+	+tests_network_WiFi_Reassociate
+	+tests_network_WiFi_ReconnectInDarkResume
+	+tests_network_WiFi_Reset
+	+tests_network_WiFi_Roam
+	+tests_network_WiFi_RoamDbus
+	+tests_network_WiFi_RoamFT
+	+tests_network_WiFi_RoamSuspendTimeout
+	+tests_network_WiFi_SecChange
+	+tests_network_WiFi_SetOptionalDhcpProperties
+	+tests_network_WiFi_SimpleConnect
+	+tests_network_WiFi_SSIDSwitchBack
+	+tests_network_WiFi_SuspendStress
+	+tests_network_WiFi_StressTest
+	+tests_network_WiFi_Throttle
+	+tests_network_WiFi_UpdateRouter
+	+tests_network_WiFi_VerifyRouter
+	+tests_network_WiFi_VisibleScan
+	+tests_network_WiFi_WakeOnDisconnect
+	+tests_network_WiFi_WakeOnSSID
+	+tests_network_WiFi_WakeOnWiFiThrottling
+	+tests_network_WiFi_WoWLAN
+	+tests_network_WiFi_WMM
+"
+
+IUSE_TESTS="${IUSE_TESTS}
+	${SERVER_IUSE_TESTS}
+"
+
+IUSE="${IUSE} ${IUSE_TESTS}"
+
+AUTOTEST_FILE_MASK="*.a *.tar.bz2 *.tbz2 *.tgz *.tar.gz"
diff --git a/chromeos-base/autotest-server-tests-shill/autotest-server-tests-shill-9999.ebuild b/chromeos-base/autotest-server-tests-shill/autotest-server-tests-shill-9999.ebuild
index c8d7021..d25fa72 100644
--- a/chromeos-base/autotest-server-tests-shill/autotest-server-tests-shill-9999.ebuild
+++ b/chromeos-base/autotest-server-tests-shill/autotest-server-tests-shill-9999.ebuild
@@ -40,9 +40,7 @@
 			+tests_network_WiFi_RoamSuspendEndToEnd
 		)
 	)
-	+tests_network_WiFi_ConnectionIdentifier
 	+tests_network_WiFi_CSA
-	+tests_network_WiFi_CSADisconnect
 	+tests_network_WiFi_DarkResumeActiveScans
 	+tests_network_WiFi_DisableEnable
 	+tests_network_WiFi_DisableRandomMACAddress
@@ -63,7 +61,6 @@
 	+tests_network_WiFi_ProfileGUID
 	+tests_network_WiFi_PTK
 	+tests_network_WiFi_RandomMACAddress
-	+tests_network_WiFi_RateControl
 	+tests_network_WiFi_Reassociate
 	+tests_network_WiFi_ReconnectInDarkResume
 	+tests_network_WiFi_Reset
diff --git a/chromeos-base/autotest-server-tests-tast/autotest-server-tests-tast-0.0.1-r145.ebuild b/chromeos-base/autotest-server-tests-tast/autotest-server-tests-tast-0.0.1-r145.ebuild
deleted file mode 100644
index 228288c..0000000
--- a/chromeos-base/autotest-server-tests-tast/autotest-server-tests-tast-0.0.1-r145.ebuild
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright 2018 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-CROS_WORKON_COMMIT="3424545f542759a471d05c8d18560af22362775b"
-CROS_WORKON_TREE="ba13741a280b0dc0bdbe0f5e0bf11ec5bb91921e"
-CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
-CROS_WORKON_LOCALNAME="third_party/autotest/files"
-
-inherit cros-workon autotest
-
-DESCRIPTION="Autotest server tests for running Tast-based tests"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform/tast/"
-SRC_URI=""
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="*"
-
-IUSE="+autotest"
-
-RDEPEND=""
-DEPEND=""
-
-IUSE_TESTS="
-	+tests_graphics_TraceReplayExtended
-	+tests_tast
-"
-
-IUSE="${IUSE} ${IUSE_TESTS}"
-
-AUTOTEST_FILE_MASK="*.a *.tar.bz2 *.tbz2 *.tgz *.tar.gz"
diff --git a/chromeos-base/autotest-server-tests-tast/autotest-server-tests-tast-0.0.1-r206.ebuild b/chromeos-base/autotest-server-tests-tast/autotest-server-tests-tast-0.0.1-r206.ebuild
new file mode 100644
index 0000000..2eba9b3
--- /dev/null
+++ b/chromeos-base/autotest-server-tests-tast/autotest-server-tests-tast-0.0.1-r206.ebuild
@@ -0,0 +1,31 @@
+# Copyright 2018 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+CROS_WORKON_COMMIT="db0799fdd3989ae3c6e92f8a8583a7515a496435"
+CROS_WORKON_TREE="92d41e1d76de84e19ce924a08931bf722c8a6b57"
+CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
+CROS_WORKON_LOCALNAME="third_party/autotest/files"
+
+inherit cros-workon autotest
+
+DESCRIPTION="Autotest server tests for running Tast-based tests"
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform/tast/"
+SRC_URI=""
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="*"
+
+IUSE="+autotest"
+
+RDEPEND=""
+DEPEND=""
+
+IUSE_TESTS="
+	+tests_graphics_TraceReplayExtended
+	+tests_tast
+"
+
+IUSE="${IUSE} ${IUSE_TESTS}"
+
+AUTOTEST_FILE_MASK="*.a *.tar.bz2 *.tbz2 *.tgz *.tar.gz"
diff --git a/chromeos-base/autotest-server-tests-telemetry/autotest-server-tests-telemetry-0.0.1-r3240.ebuild b/chromeos-base/autotest-server-tests-telemetry/autotest-server-tests-telemetry-0.0.1-r3240.ebuild
deleted file mode 100644
index 03952d9..0000000
--- a/chromeos-base/autotest-server-tests-telemetry/autotest-server-tests-telemetry-0.0.1-r3240.ebuild
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 2014 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="4"
-CROS_WORKON_COMMIT="0a1bf28efd1b19766576c7563e9de7c54237010b"
-CROS_WORKON_TREE="a57877543603549c8eedff95ea99018cde9019a6"
-CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
-CROS_WORKON_LOCALNAME="third_party/autotest/files"
-
-inherit cros-workon autotest
-
-DESCRIPTION="Autotest server tests for shill"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
-SRC_URI=""
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="*"
-
-# Enable autotest by default.
-IUSE="+autotest"
-
-RDEPEND=""
-DEPEND="${RDEPEND}
-	!<chromeos-base/autotest-server-tests-0.0.2
-"
-
-SERVER_IUSE_TESTS="
-	+tests_telemetry_AFDOGenerate
-	+tests_telemetry_Benchmarks
-	+tests_telemetry_Crosperf
-	+tests_telemetry_CrosTests
-"
-
-IUSE_TESTS="${IUSE_TESTS}
-	${SERVER_IUSE_TESTS}
-"
-
-IUSE="${IUSE} ${IUSE_TESTS}"
-
-AUTOTEST_FILE_MASK="*.a *.tar.bz2 *.tbz2 *.tgz *.tar.gz"
diff --git a/chromeos-base/autotest-server-tests-telemetry/autotest-server-tests-telemetry-0.0.1-r3244.ebuild b/chromeos-base/autotest-server-tests-telemetry/autotest-server-tests-telemetry-0.0.1-r3244.ebuild
new file mode 100644
index 0000000..827b533
--- /dev/null
+++ b/chromeos-base/autotest-server-tests-telemetry/autotest-server-tests-telemetry-0.0.1-r3244.ebuild
@@ -0,0 +1,40 @@
+# Copyright 2014 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="4"
+CROS_WORKON_COMMIT="a403192d37da97d51cd43a1b253f1a18541e37cc"
+CROS_WORKON_TREE="d65e30706766190d6734a91965f32105b55496cf"
+CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
+CROS_WORKON_LOCALNAME="third_party/autotest/files"
+
+inherit cros-workon autotest
+
+DESCRIPTION="Autotest server tests for shill"
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
+SRC_URI=""
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="*"
+
+# Enable autotest by default.
+IUSE="+autotest"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+	!<chromeos-base/autotest-server-tests-0.0.2
+"
+
+SERVER_IUSE_TESTS="
+	+tests_telemetry_AFDOGenerate
+	+tests_telemetry_Benchmarks
+	+tests_telemetry_Crosperf
+	+tests_telemetry_CrosTests
+"
+
+IUSE_TESTS="${IUSE_TESTS}
+	${SERVER_IUSE_TESTS}
+"
+
+IUSE="${IUSE} ${IUSE_TESTS}"
+
+AUTOTEST_FILE_MASK="*.a *.tar.bz2 *.tbz2 *.tgz *.tar.gz"
diff --git a/chromeos-base/autotest-server-tests/autotest-server-tests-0.0.2-r4930.ebuild b/chromeos-base/autotest-server-tests/autotest-server-tests-0.0.2-r4930.ebuild
deleted file mode 100644
index 06b6c6b..0000000
--- a/chromeos-base/autotest-server-tests/autotest-server-tests-0.0.2-r4930.ebuild
+++ /dev/null
@@ -1,358 +0,0 @@
-# Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="5"
-CROS_WORKON_COMMIT="d3a40192c195a6cbf0c4c5de7513d0d396542b1d"
-CROS_WORKON_TREE="ee02c6712e3c791c059e42e7d66d1626aaea7162"
-CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
-CROS_WORKON_LOCALNAME="third_party/autotest/files"
-
-inherit cros-workon autotest
-
-DESCRIPTION="Autotest server tests"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
-SRC_URI=""
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="*"
-
-# Enable autotest by default.
-IUSE="android-container android-container-pi android-vm-rvc +autotest biod +cellular cheets_user_64 -chromeless_tests -chromeless_tty cros_p2p debugd dlc_test has-kernelnext is-kernelnext -moblab +power_management +readahead +tpm tpm2"
-REQUIRED_USE="?? ( has-kernelnext is-kernelnext )"
-
-RDEPEND=""
-DEPEND="${RDEPEND}
-	!<chromeos-base/autotest-0.0.2
-"
-
-SERVER_IUSE_TESTS="
-	+tests_android_ACTS
-	+tests_android_EasySetup
-	+tests_audio_AudioAfterReboot
-	+tests_audio_AudioAfterSuspend
-	+tests_audio_AudioArtifacts
-	+tests_audio_AudioARCPlayback
-	+tests_audio_AudioARCRecord
-	+tests_audio_AudioBasicAssistant
-	+tests_audio_AudioBasicBluetoothPlayback
-	+tests_audio_AudioBasicBluetoothPlaybackRecord
-	+tests_audio_AudioBasicBluetoothRecord
-	+tests_audio_AudioBasicExternalMicrophone
-	+tests_audio_AudioBasicHDMI
-	+tests_audio_AudioBasicHeadphone
-	+tests_audio_AudioBasicHotwording
-	+tests_audio_AudioBasicInternalMicrophone
-	+tests_audio_AudioBasicInternalSpeaker
-	+tests_audio_AudioBasicUSBPlayback
-	+tests_audio_AudioBasicUSBPlaybackRecord
-	+tests_audio_AudioBasicUSBRecord
-	+tests_audio_AudioBluetoothConnectionStability
-	+tests_audio_AudioNodeSwitch
-	+tests_audio_AudioPinnedStream
-	+tests_audio_AudioQualityAfterSuspend
-	+tests_audio_AudioSanityCheck
-	+tests_audio_AudioVolume
-	+tests_audio_AudioWebRTCLoopback
-	+tests_audio_InternalCardNodes
-	+tests_audio_LeftRightInternalSpeaker
-	+tests_audio_MediaBasicVerification
-	+tests_audio_PowerConsumption
-	+tests_audiovideo_AVSync
-	+tests_autoupdate_Basic
-	+tests_autoupdate_CatchBadSignatures
-	+tests_autoupdate_Cellular
-	+tests_autoupdate_DataPreserved
-	+tests_autoupdate_ForcedOOBEUpdate
-	+tests_autoupdate_FromUI
-	+tests_autoupdate_Interruptions
-	+tests_autoupdate_NonBlockingOOBEUpdate
-	+tests_autoupdate_OmahaResponse
-	+tests_autoupdate_P2P
-	+tests_autoupdate_Periodic
-	+tests_autoupdate_Rollback
-	dlc_test? ( +tests_autoupdate_WithDLC )
-	has-kernelnext? ( +tests_autoupdate_StatefulCompatibility )
-	is-kernelnext? ( +tests_autoupdate_StatefulCompatibility )
-	cellular? ( +tests_cellular_StaleModemReboot )
-	android-container-pi? (
-		+tests_cheets_CTS_Instant
-		+tests_cheets_CTS_P
-		+tests_cheets_GTS
-	)
-	android-vm-rvc? (
-		cheets_user_64? (
-			+tests_cheets_CTS_R
-			+tests_cheets_GTS_R
-		)
-		!cheets_user_64? (
-			+tests_cheets_VTS_R
-		)
-	)
-	+tests_cheets_LabDependencies
-	debugd? ( +tests_debugd_DevTools )
-	+tests_crosperf_Wrapper
-	+tests_display_EdidStress
-	+tests_display_HDCPScreen
-	+tests_display_HotPlugAtBoot
-	+tests_display_HotPlugAtSuspend
-	+tests_display_HotPlugNoisy
-	+tests_display_LidCloseOpen
-	+tests_display_NoEdid
-	+tests_display_Resolution
-	+tests_display_ResolutionList
-	+tests_display_ServerChameleonConnection
-	+tests_display_SuspendStress
-	+tests_display_SwitchMode
-	+tests_dummy_PassServer
-	+tests_dummy_FailServer
-	+tests_dummy_FlakyTestServer
-	+tests_dummy_SynchronousOffloadServer
-	+tests_enterprise_ClearTPM
-	+tests_enterprise_KioskEnrollmentServer
-	+tests_enterprise_LongevityTrackerServer
-	+tests_enterprise_OnlineDemoMode
-	+tests_factory_Basic
-	+tests_firmware_Bmpblk
-	+tests_firmware_CgptStress
-	+tests_firmware_ClearTPMOwnerAndReset
-	+tests_firmware_ConsecutiveBoot
-	+tests_firmware_ConsecutiveBootPowerButton
-	+tests_firmware_ConsecutiveLidSwitch
-	+tests_firmware_CorruptBothFwBodyAB
-	+tests_firmware_CorruptBothFwSigAB
-	+tests_firmware_CorruptBothKernelAB
-	+tests_firmware_CorruptFwBodyA
-	+tests_firmware_CorruptFwBodyB
-	+tests_firmware_CorruptFwSigA
-	+tests_firmware_CorruptFwSigB
-	+tests_firmware_CorruptKernelA
-	+tests_firmware_CorruptKernelB
-	+tests_firmware_CorruptRecoveryCache
-	+tests_firmware_Cr50BID
-	+tests_firmware_Cr50CCDServoCap
-	+tests_firmware_Cr50CCDUartStress
-	+tests_firmware_Cr50CheckCap
-	+tests_firmware_Cr50ConsoleCommands
-	+tests_firmware_Cr50DeepSleepStress
-	+tests_firmware_Cr50DeferredECReset
-	+tests_firmware_Cr50DeviceState
-	+tests_firmware_Cr50DevMode
-	+tests_firmware_Cr50ECReset
-	+tests_firmware_Cr50FactoryResetVC
-	+tests_firmware_Cr50CCDFirmwareUpdate
-	+tests_firmware_Cr50GetName
-	+tests_firmware_Cr50InvalidateRW
-	+tests_firmware_Cr50Open
-	+tests_firmware_Cr50OpenWhileAPOff
-	+tests_firmware_Cr50PartialBoardId
-	+tests_firmware_Cr50Password
-	+tests_firmware_Cr50PinWeaverServer
-	+tests_firmware_Cr50RddG3
-	+tests_firmware_Cr50RejectUpdate
-	+tests_firmware_Cr50RMAOpen
-	+tests_firmware_Cr50SetBoardId
-	+tests_firmware_Cr50ShortECC
-	+tests_firmware_Cr50Testlab
-	+tests_firmware_Cr50TpmManufactured
-	+tests_firmware_Cr50TpmMode
-	+tests_firmware_Cr50U2fCommands
-	+tests_firmware_Cr50Unlock
-	+tests_firmware_Cr50Update
-	+tests_firmware_Cr50UpdateScriptStress
-	+tests_firmware_Cr50USB
-	+tests_firmware_Cr50WilcoEcrst
-	+tests_firmware_Cr50WilcoRmaFactoryMode
-	+tests_firmware_Cr50WPG3
-	+tests_firmware_DevBootUSB
-	+tests_firmware_DevDefaultBoot
-	+tests_firmware_DevMode
-	+tests_firmware_DevModeStress
-	+tests_firmware_DevScreenTimeout
-	+tests_firmware_ECBattery
-	+tests_firmware_ECBootTime
-	+tests_firmware_ECCbiEeprom
-	+tests_firmware_ECCharging
-	+tests_firmware_ECChargingState
-	+tests_firmware_ECHash
-	+tests_firmware_ECKeyboard
-	+tests_firmware_ECKeyboardReboot
-	+tests_firmware_ECLidShutdown
-	+tests_firmware_ECLidSwitch
-	+tests_firmware_ECPowerButton
-	+tests_firmware_ECPowerG3
-	+tests_firmware_ECSharedMem
-	+tests_firmware_ECThermal
-	+tests_firmware_ECUpdateId
-	+tests_firmware_ECUsbPorts
-	+tests_firmware_ECWakeSource
-	+tests_firmware_ECWatchdog
-	+tests_firmware_EventLog
-	+tests_firmware_FAFTPrepare
-	+tests_firmware_FAFTModeTransitions
-	+tests_firmware_FAFTRPC
-	+tests_firmware_FAFTSetup
-	biod? (
-		+tests_firmware_Fingerprint
-		+tests_firmware_FingerprintSigner
-	)
-	+tests_firmware_FMap
-	+tests_firmware_FWMPDisableCCD
-	+tests_firmware_FwScreenCloseLid
-	+tests_firmware_FwScreenPressPower
-	+tests_firmware_FWupdateWP
-	+tests_firmware_FWtries
-	+tests_firmware_FWupdateThenSleep
-	+tests_firmware_FWupdateWP
-	+tests_firmware_IntegratedU2F
-	+tests_firmware_InvalidUSB
-	+tests_firmware_LegacyRecovery
-	+tests_firmware_MenuModeTransition
-	+tests_firmware_Mosys
-	+tests_firmware_PDConnect
-	+tests_firmware_PDDataSwap
-	+tests_firmware_PDPowerSwap
-	+tests_firmware_PDProtocol
-	+tests_firmware_PDResetHard
-	+tests_firmware_PDResetSoft
-	+tests_firmware_PDTrySrc
-	+tests_firmware_PDVbusRequest
-	+tests_firmware_RecoveryButton
-	+tests_firmware_RecoveryCacheBootKeys
-	+tests_firmware_RollbackFirmware
-	+tests_firmware_RollbackKernel
-	+tests_firmware_SelfSignedBoot
-	+tests_firmware_SetSerialNumber
-	+tests_firmware_SoftwareSync
-	+tests_firmware_StandbyPowerConsumption
-	+tests_firmware_SysfsVPD
-	+tests_firmware_TPMNotCorruptedDevMode
-	tpm? ( +tests_firmware_TPMExtend )
-	tpm? ( +tests_firmware_TPMVersionCheck )
-	tpm? ( +tests_firmware_TPMKernelVersion )
-	tpm2? ( +tests_firmware_TPMExtend )
-	tpm2? ( +tests_firmware_TPMVersionCheck )
-	tpm2? ( +tests_firmware_TPMKernelVersion )
-	+tests_firmware_TryFwB
-	+tests_firmware_TypeCCharging
-	+tests_firmware_TypeCProbeUSB3
-	+tests_firmware_UpdateFirmwareDataKeyVersion
-	+tests_firmware_UpdateFirmwareVersion
-	+tests_firmware_UpdateKernelDataKeyVersion
-	+tests_firmware_UpdateKernelSubkeyVersion
-	+tests_firmware_UpdateKernelVersion
-	+tests_firmware_UpdaterModes
-	+tests_firmware_UserRequestRecovery
-	+tests_firmware_WilcoDiagnosticsMode
-	+tests_firmware_WriteProtect
-	+tests_firmware_WriteProtectFunc
-	+tests_graphics_MultipleDisplays
-	+tests_graphics_PowerConsumption
-	+tests_hardware_DiskFirmwareUpgrade
-	+tests_hardware_MemoryIntegrity
-	+tests_hardware_StorageQual
-	+tests_hardware_StorageQualBase
-	+tests_hardware_StorageQualCheckSetup
-	+tests_hardware_StorageQualSuspendStress
-	+tests_hardware_StorageQualTrimStress
-	+tests_hardware_StorageQualV2
-	+tests_hardware_StorageStress
-	+tests_infra_TLSExecDUTCommand
-	+tests_kernel_EmptyLines
-	+tests_kernel_ExternalUsbPeripheralsDetectionTest
-	+tests_kernel_IdlePerf
-	+tests_kernel_MemoryRamoop
-	moblab? (
-		+tests_moblab_RunSuite
-		+tests_moblab_StorageQual
-	)
-	+tests_moblab_Setup
-	cros_p2p? ( +tests_p2p_EndToEndTest )
-	+tests_network_FirewallHolePunchServer
-	+tests_platform_ActivateDate
-	+tests_platform_BootDevice
-	+tests_platform_BootLockboxServer
-	+tests_platform_BootPerfServer
-	+tests_platform_CompromisedStatefulPartition
-	+tests_platform_CorruptRootfs
-	+tests_platform_CrashStateful
-	+tests_platform_ExternalUsbPeripherals
-	+tests_platform_FlashErasers
-	+tests_platform_Flashrom
-	+tests_platform_HWwatchdog
-	+tests_platform_InitLoginPerfServer
-	+tests_platform_InstallTestImage
-	+tests_platform_InternalDisplay
-	+tests_platform_KernelErrorPaths
-	power_management? (
-		+tests_platform_PowerStatusStress
-		+tests_power_DeferForFlashrom
-		+tests_power_WakeSources
-	)
-	+tests_platform_Powerwash
-	+tests_platform_RotationFps
-	+tests_platform_ServoPowerStateController
-	+tests_platform_StageAndRecover
-	+tests_platform_SuspendResumeTiming
-	+tests_platform_SyncCrash
-	readahead? ( +tests_platform_UReadAheadServer )
-	+tests_platform_Vpd
-	+tests_policy_AUServer
-	+tests_policy_DeviceChargingServer
-	+tests_policy_DeviceServer
-	+tests_policy_ExternalStorageServer
-	+tests_policy_GlobalNetworkSettingsServer
-	+tests_policy_WiFiAutoconnectServer
-	+tests_policy_WiFiPrecedenceServer
-	+tests_policy_WiFiTypesServer
-	+tests_policy_WilcoServerDeviceDockMacAddressSource
-	+tests_policy_WilcoServerOnNonWilcoDevice
-	+tests_policy_WilcoServerUSBPowershare
-	+tests_power_BrightnessResetAfterReboot
-	+tests_power_ChargeControlWrapper
-	+tests_power_MeetCall
-	+tests_power_Monitoring
-	+tests_power_LW
-	+tests_power_PowerlogWrapper
-	+tests_power_RPMTest
-	+tests_power_ServoChargeStress
-	+tests_power_ServodWrapper
-	+tests_provision_CheetsUpdate
-	+tests_provision_Cr50TOT
-	+tests_provision_Cr50Update
-	+tests_provision_FactoryImage
-	+tests_provision_FirmwareUpdate
-	+tests_provision_QuickProvision
-	+tests_rlz_CheckPing
-	+tests_sequences
-	+tests_servo_LabControlVerification
-	+tests_servo_LabstationVerification
-	+tests_servo_USBMuxVerification
-	+tests_servo_LogGrab
-	+tests_servo_Verification
-	+tests_servohost_Reboot
-	+tests_stress_ClientTestReboot
-	+tests_stress_EnrollmentRetainment
-"
-
-IUSE_TESTS="${IUSE_TESTS}
-	${SERVER_IUSE_TESTS}
-"
-
-IUSE="${IUSE} ${IUSE_TESTS}"
-
-AUTOTEST_FILE_MASK="*.a *.tar.bz2 *.tbz2 *.tgz *.tar.gz"
-
-INIT_FILE="__init__.py"
-
-src_install() {
-	# Make sure we install all |SERVER_IUSE_TESTS| first.
-	autotest_src_install
-	# Autotest depends on a few strategically placed INIT_FILEs to allow
-	# importing python code. In particular we want to allow importing
-	# server.site_tests.tast to be able to launch tast local tests.
-	# This INIT_FILE exists in git, but needs to be installed and finally
-	# packaged via chromite/lib/autotest_util.py into
-	# autotest_server_package.tar.bz2 to be served by devservers.
-	insinto "${AUTOTEST_BASE}/${AUTOTEST_SERVER_SITE_TESTS}"
-	doins "${AUTOTEST_SERVER_SITE_TESTS}/${INIT_FILE}"
-}
diff --git a/chromeos-base/autotest-server-tests/autotest-server-tests-0.0.2-r5175.ebuild b/chromeos-base/autotest-server-tests/autotest-server-tests-0.0.2-r5175.ebuild
new file mode 100644
index 0000000..3bf8184
--- /dev/null
+++ b/chromeos-base/autotest-server-tests/autotest-server-tests-0.0.2-r5175.ebuild
@@ -0,0 +1,375 @@
+# Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+CROS_WORKON_COMMIT="573ffe2c31769ef60bc4f9dc037eca01d149345c"
+CROS_WORKON_TREE="f322f40e82140ffae58282b019287a4c64e642bc"
+CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
+CROS_WORKON_LOCALNAME="third_party/autotest/files"
+
+inherit cros-workon autotest
+
+DESCRIPTION="Autotest server tests"
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
+SRC_URI=""
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="*"
+
+# Enable autotest by default.
+IUSE="android-container android-container-pi android-vm-rvc +autotest biod +cellular +cheets_user cheets_user_64 cheets_userdebug_64 -chromeless_tests -chromeless_tty cros_p2p debugd dlc_test has-kernelnext is-kernelnext -moblab +power_management +readahead +tpm tpm2"
+REQUIRED_USE="?? ( has-kernelnext is-kernelnext )"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+	!<chromeos-base/autotest-0.0.2
+"
+
+SERVER_IUSE_TESTS="
+	+tests_android_ACTS
+	+tests_android_EasySetup
+	+tests_audio_AudioAfterReboot
+	+tests_audio_AudioAfterSuspend
+	+tests_audio_AudioArtifacts
+	+tests_audio_AudioBasicAssistant
+	+tests_audio_AudioBasicBluetoothPlayback
+	+tests_audio_AudioBasicBluetoothPlaybackRecord
+	+tests_audio_AudioBasicBluetoothRecord
+	+tests_audio_AudioBasicExternalMicrophone
+	+tests_audio_AudioBasicHDMI
+	+tests_audio_AudioBasicHeadphone
+	+tests_audio_AudioBasicHotwording
+	+tests_audio_AudioBasicInternalMicrophone
+	+tests_audio_AudioBasicInternalSpeaker
+	+tests_audio_AudioBasicUSBPlayback
+	+tests_audio_AudioBasicUSBPlaybackRecord
+	+tests_audio_AudioBasicUSBRecord
+	+tests_audio_AudioBluetoothConnectionStability
+	+tests_audio_AudioNodeSwitch
+	+tests_audio_AudioPinnedStream
+	+tests_audio_AudioQualityAfterSuspend
+	+tests_audio_AudioTestAssumptionCheck
+	+tests_audio_AudioVolume
+	+tests_audio_AudioWebRTCLoopback
+	+tests_audio_InternalCardNodes
+	+tests_audio_LeftRightInternalSpeaker
+	+tests_audio_MediaBasicVerification
+	+tests_audio_PowerConsumption
+	+tests_audiovideo_AVSync
+	+tests_autoupdate_Basic
+	+tests_autoupdate_CatchBadSignatures
+	+tests_autoupdate_Cellular
+	+tests_autoupdate_ConsecutiveUpdatesBeforeReboot
+	+tests_autoupdate_DataPreserved
+	+tests_autoupdate_ForcedOOBEUpdate
+	+tests_autoupdate_FromUI
+	+tests_autoupdate_Interruptions
+	+tests_autoupdate_NonBlockingOOBEUpdate
+	+tests_autoupdate_OmahaResponse
+	+tests_autoupdate_P2P
+	+tests_autoupdate_Periodic
+	+tests_autoupdate_RejectDuplicateUpdate
+	+tests_autoupdate_Rollback
+	dlc_test? ( +tests_autoupdate_WithDLC )
+	has-kernelnext? ( +tests_autoupdate_StatefulCompatibility )
+	is-kernelnext? ( +tests_autoupdate_StatefulCompatibility )
+	cellular? ( +tests_cellular_StaleModemReboot )
+	android-container-pi? (
+		cheets_user? (
+			+tests_cheets_CTS_Instant
+			+tests_cheets_CTS_P
+			+tests_cheets_GTS
+		)
+		cheets_user_64? (
+			+tests_cheets_CTS_Instant
+			+tests_cheets_CTS_P
+			+tests_cheets_GTS
+		)
+	)
+	android-vm-rvc? (
+		cheets_user_64? (
+			+tests_cheets_CTS_R
+			+tests_cheets_GTS_R
+		)
+		cheets_userdebug_64? (
+			+tests_cheets_VTS_R
+		)
+	)
+	+tests_cellular_Callbox_AssertCellularData
+	+tests_cheets_LabDependencies
+	debugd? ( +tests_debugd_DevTools )
+	+tests_crosperf_Wrapper
+	+tests_display_EdidStress
+	+tests_display_HDCPScreen
+	+tests_display_HotPlugAtBoot
+	+tests_display_HotPlugAtSuspend
+	+tests_display_HotPlugNoisy
+	+tests_display_LidCloseOpen
+	+tests_display_NoEdid
+	+tests_display_Resolution
+	+tests_display_ResolutionList
+	+tests_display_ServerChameleonConnection
+	+tests_display_SuspendStress
+	+tests_display_SwitchMode
+	+tests_dummy_PassServer
+	+tests_dummy_FailServer
+	+tests_dummy_FlakyTestServer
+	+tests_stub_SynchronousOffloadServer
+	+tests_enterprise_ClearTPM
+	+tests_enterprise_KioskEnrollmentServer
+	+tests_enterprise_LongevityTrackerServer
+	+tests_enterprise_OnlineDemoMode
+	+tests_factory_Basic
+	+tests_firmware_Bmpblk
+	+tests_firmware_CgptStress
+	+tests_firmware_ClearTPMOwnerAndReset
+	+tests_firmware_ConsecutiveBoot
+	+tests_firmware_ConsecutiveBootPowerButton
+	+tests_firmware_ConsecutiveLidSwitch
+	+tests_firmware_CorruptBothFwBodyAB
+	+tests_firmware_CorruptBothFwSigAB
+	+tests_firmware_CorruptBothKernelAB
+	+tests_firmware_CorruptFwBodyA
+	+tests_firmware_CorruptFwBodyB
+	+tests_firmware_CorruptFwSigA
+	+tests_firmware_CorruptFwSigB
+	+tests_firmware_CorruptKernelA
+	+tests_firmware_CorruptKernelB
+	+tests_firmware_CorruptRecoveryCache
+	+tests_firmware_Cr50BID
+	+tests_firmware_Cr50CCDServoCap
+	+tests_firmware_Cr50CCDUartStress
+	+tests_firmware_Cr50CheckCap
+	+tests_firmware_Cr50ConsoleCommands
+	+tests_firmware_Cr50DeepSleepStress
+	+tests_firmware_Cr50DeferredECReset
+	+tests_firmware_Cr50DeviceState
+	+tests_firmware_Cr50DevMode
+	+tests_firmware_Cr50ECReset
+	+tests_firmware_Cr50FactoryResetVC
+	+tests_firmware_Cr50CCDFirmwareUpdate
+	+tests_firmware_Cr50GetName
+	+tests_firmware_Cr50InvalidateRW
+	+tests_firmware_Cr50Keygen
+	+tests_firmware_Cr50Open
+	+tests_firmware_Cr50OpenWhileAPOff
+	+tests_firmware_Cr50PartialBoardId
+	+tests_firmware_Cr50Password
+	+tests_firmware_Cr50PinWeaverServer
+	+tests_firmware_Cr50RddG3
+	+tests_firmware_Cr50RejectUpdate
+	+tests_firmware_Cr50RMAOpen
+	+tests_firmware_Cr50SetBoardId
+	+tests_firmware_Cr50ShortECC
+	+tests_firmware_Cr50Testlab
+	+tests_firmware_Cr50TpmManufactured
+	+tests_firmware_Cr50TpmMode
+	+tests_firmware_Cr50U2fCommands
+	+tests_firmware_Cr50Unlock
+	+tests_firmware_Cr50Update
+	+tests_firmware_Cr50UpdateScriptStress
+	+tests_firmware_Cr50USB
+	+tests_firmware_Cr50VerifyEK
+	+tests_firmware_Cr50WilcoEcrst
+	+tests_firmware_Cr50WilcoRmaFactoryMode
+	+tests_firmware_Cr50WPG3
+	+tests_firmware_CsmeFwUpdate
+	+tests_firmware_DevBootUSB
+	+tests_firmware_DevDefaultBoot
+	+tests_firmware_DevMode
+	+tests_firmware_DevModeStress
+	+tests_firmware_DevScreenTimeout
+	+tests_firmware_ECBattery
+	+tests_firmware_ECBootTime
+	+tests_firmware_ECCbiEeprom
+	+tests_firmware_ECCharging
+	+tests_firmware_ECChargingState
+	+tests_firmware_ECHash
+	+tests_firmware_ECKeyboard
+	+tests_firmware_ECKeyboardReboot
+	+tests_firmware_ECLidShutdown
+	+tests_firmware_ECLidSwitch
+	+tests_firmware_ECPowerButton
+	+tests_firmware_ECPowerG3
+	+tests_firmware_ECSharedMem
+	+tests_firmware_ECSystemLocked
+	+tests_firmware_ECThermal
+	+tests_firmware_ECUpdateId
+	+tests_firmware_ECUsbPorts
+	+tests_firmware_ECWakeSource
+	+tests_firmware_ECWatchdog
+	+tests_firmware_EmmcWriteLoad
+	+tests_firmware_EventLog
+	+tests_firmware_FAFTPrepare
+	+tests_firmware_FAFTModeTransitions
+	+tests_firmware_FAFTRPC
+	+tests_firmware_FAFTSetup
+	biod? (
+		+tests_firmware_Fingerprint
+		+tests_firmware_FingerprintCrosConfig
+		+tests_firmware_FingerprintSigner
+	)
+	+tests_firmware_FMap
+	+tests_firmware_FWMPDisableCCD
+	+tests_firmware_FwScreenCloseLid
+	+tests_firmware_FwScreenPressPower
+	+tests_firmware_FWupdateWP
+	+tests_firmware_FWtries
+	+tests_firmware_FWupdateThenSleep
+	+tests_firmware_FWupdateWP
+	+tests_firmware_IntegratedU2F
+	+tests_firmware_InvalidUSB
+	+tests_firmware_LegacyRecovery
+	+tests_firmware_MenuModeTransition
+	+tests_firmware_Mosys
+	+tests_firmware_PDConnect
+	+tests_firmware_PDDataSwap
+	+tests_firmware_PDPowerSwap
+	+tests_firmware_PDProtocol
+	+tests_firmware_PDResetHard
+	+tests_firmware_PDResetSoft
+	+tests_firmware_PDTrySrc
+	+tests_firmware_PDVbusRequest
+	+tests_firmware_RecoveryButton
+	+tests_firmware_RecoveryCacheBootKeys
+	+tests_firmware_RollbackFirmware
+	+tests_firmware_RollbackKernel
+	+tests_firmware_SelfSignedBoot
+	+tests_firmware_SetSerialNumber
+	+tests_firmware_SoftwareSync
+	+tests_firmware_StandbyPowerConsumption
+	+tests_firmware_SysfsVPD
+	+tests_firmware_TPMNotCorruptedDevMode
+	tpm? ( +tests_firmware_TPMExtend )
+	tpm? ( +tests_firmware_TPMVersionCheck )
+	tpm? ( +tests_firmware_TPMKernelVersion )
+	tpm2? ( +tests_firmware_TPMExtend )
+	tpm2? ( +tests_firmware_TPMVersionCheck )
+	tpm2? ( +tests_firmware_TPMKernelVersion )
+	+tests_firmware_TryFwB
+	+tests_firmware_TypeCCharging
+	+tests_firmware_TypeCProbeUSB3
+	+tests_firmware_UpdateFirmwareDataKeyVersion
+	+tests_firmware_UpdateFirmwareVersion
+	+tests_firmware_UpdateKernelDataKeyVersion
+	+tests_firmware_UpdateKernelSubkeyVersion
+	+tests_firmware_UpdateKernelVersion
+	+tests_firmware_UpdaterModes
+	+tests_firmware_UserRequestRecovery
+	+tests_firmware_WilcoDiagnosticsMode
+	+tests_firmware_WriteProtect
+	+tests_firmware_WriteProtectFunc
+	+tests_graphics_MultipleDisplays
+	+tests_graphics_PowerConsumption
+	+tests_hardware_DiskFirmwareUpgrade
+	+tests_hardware_MemoryIntegrity
+	+tests_hardware_StorageQual
+	+tests_hardware_StorageQualBase
+	+tests_hardware_StorageQualCheckSetup
+	+tests_hardware_StorageQualSuspendStress
+	+tests_hardware_StorageQualTrimStress
+	+tests_hardware_StorageQualV2
+	+tests_hardware_StorageStress
+	+tests_infra_TLSExecDUTCommand
+	+tests_kernel_EmptyLines
+	+tests_kernel_ExternalUsbPeripheralsDetectionTest
+	+tests_kernel_IdlePerf
+	+tests_kernel_MemoryRamoop
+	moblab? (
+		+tests_moblab_RunSuite
+		+tests_moblab_StorageQual
+	)
+	+tests_moblab_Setup
+	cros_p2p? ( +tests_p2p_EndToEndTest )
+	+tests_network_FirewallHolePunchServer
+	+tests_platform_ActivateDate
+	+tests_platform_BootDevice
+	+tests_platform_BootLockboxServer
+	+tests_platform_BootPerfServer
+	+tests_platform_CompromisedStatefulPartition
+	+tests_platform_CorruptRootfs
+	+tests_platform_CrashStateful
+	+tests_platform_ExternalUsbPeripherals
+	+tests_platform_FetchCloudConfig
+	+tests_platform_FlashErasers
+	+tests_platform_Flashrom
+	+tests_platform_HWwatchdog
+	+tests_platform_InitLoginPerfServer
+	+tests_platform_InstallTestImage
+	+tests_platform_InternalDisplay
+	+tests_platform_KernelErrorPaths
+	+tests_platform_MTBF
+	power_management? (
+		+tests_platform_PowerStatusStress
+		+tests_power_DeferForFlashrom
+		+tests_power_WakeSources
+	)
+	+tests_platform_Powerwash
+	+tests_platform_RotationFps
+	+tests_platform_ServoPowerStateController
+	+tests_platform_StageAndRecover
+	+tests_platform_SuspendResumeTiming
+	+tests_platform_SyncCrash
+	readahead? ( +tests_platform_UReadAheadServer )
+	+tests_platform_Vpd
+	+tests_policy_AUServer
+	+tests_policy_DeviceChargingServer
+	+tests_policy_DeviceServer
+	+tests_policy_ExternalStorageServer
+	+tests_policy_GlobalNetworkSettingsServer
+	+tests_policy_WiFiAutoconnectServer
+	+tests_policy_WiFiPrecedenceServer
+	+tests_policy_WiFiTypesServer
+	+tests_policy_WilcoServerDeviceDockMacAddressSource
+	+tests_policy_WilcoServerOnNonWilcoDevice
+	+tests_policy_WilcoServerUSBPowershare
+	+tests_power_BrightnessResetAfterReboot
+	+tests_power_ChargeControlWrapper
+	+tests_power_MeetCall
+	+tests_power_Monitoring
+	+tests_power_LW
+	+tests_power_PowerlogWrapper
+	+tests_power_RPMTest
+	+tests_power_ServoChargeStress
+	+tests_power_ServodWrapper
+	+tests_provision_CheetsUpdate
+	+tests_provision_Cr50TOT
+	+tests_provision_Cr50Update
+	+tests_provision_FactoryImage
+	+tests_provision_FirmwareUpdate
+	+tests_provision_QuickProvision
+	+tests_rlz_CheckPing
+	+tests_sequences
+	+tests_servo_LabControlVerification
+	+tests_servo_LabstationVerification
+	+tests_servo_USBMuxVerification
+	+tests_servo_LogGrab
+	+tests_servo_Verification
+	+tests_servohost_Reboot
+	+tests_stress_ClientTestReboot
+	+tests_stress_EnrollmentRetainment
+	+tests_stub_ServerToClientPass
+"
+
+IUSE_TESTS="${IUSE_TESTS}
+	${SERVER_IUSE_TESTS}
+"
+
+IUSE="${IUSE} ${IUSE_TESTS}"
+
+AUTOTEST_FILE_MASK="*.a *.tar.bz2 *.tbz2 *.tgz *.tar.gz"
+
+INIT_FILE="__init__.py"
+
+src_install() {
+	# Make sure we install all |SERVER_IUSE_TESTS| first.
+	autotest_src_install
+	# Autotest depends on a few strategically placed INIT_FILEs to allow
+	# importing python code. In particular we want to allow importing
+	# server.site_tests.tast to be able to launch tast local tests.
+	# This INIT_FILE exists in git, but needs to be installed and finally
+	# packaged via chromite/lib/autotest_util.py into
+	# autotest_server_package.tar.bz2 to be served by devservers.
+	insinto "${AUTOTEST_BASE}/${AUTOTEST_SERVER_SITE_TESTS}"
+	doins "${AUTOTEST_SERVER_SITE_TESTS}/${INIT_FILE}"
+}
diff --git a/chromeos-base/autotest-server-tests/autotest-server-tests-9999.ebuild b/chromeos-base/autotest-server-tests/autotest-server-tests-9999.ebuild
index 6c5621a..27a6ce0 100644
--- a/chromeos-base/autotest-server-tests/autotest-server-tests-9999.ebuild
+++ b/chromeos-base/autotest-server-tests/autotest-server-tests-9999.ebuild
@@ -15,7 +15,7 @@
 KEYWORDS="~*"
 
 # Enable autotest by default.
-IUSE="android-container android-container-pi android-vm-rvc +autotest biod +cellular cheets_user_64 -chromeless_tests -chromeless_tty cros_p2p debugd dlc_test has-kernelnext is-kernelnext -moblab +power_management +readahead +tpm tpm2"
+IUSE="android-container android-container-pi android-vm-rvc +autotest biod +cellular +cheets_user cheets_user_64 cheets_userdebug_64 -chromeless_tests -chromeless_tty cros_p2p debugd dlc_test has-kernelnext is-kernelnext -moblab +power_management +readahead +tpm tpm2"
 REQUIRED_USE="?? ( has-kernelnext is-kernelnext )"
 
 RDEPEND=""
@@ -29,8 +29,6 @@
 	+tests_audio_AudioAfterReboot
 	+tests_audio_AudioAfterSuspend
 	+tests_audio_AudioArtifacts
-	+tests_audio_AudioARCPlayback
-	+tests_audio_AudioARCRecord
 	+tests_audio_AudioBasicAssistant
 	+tests_audio_AudioBasicBluetoothPlayback
 	+tests_audio_AudioBasicBluetoothPlaybackRecord
@@ -48,7 +46,7 @@
 	+tests_audio_AudioNodeSwitch
 	+tests_audio_AudioPinnedStream
 	+tests_audio_AudioQualityAfterSuspend
-	+tests_audio_AudioSanityCheck
+	+tests_audio_AudioTestAssumptionCheck
 	+tests_audio_AudioVolume
 	+tests_audio_AudioWebRTCLoopback
 	+tests_audio_InternalCardNodes
@@ -59,6 +57,7 @@
 	+tests_autoupdate_Basic
 	+tests_autoupdate_CatchBadSignatures
 	+tests_autoupdate_Cellular
+	+tests_autoupdate_ConsecutiveUpdatesBeforeReboot
 	+tests_autoupdate_DataPreserved
 	+tests_autoupdate_ForcedOOBEUpdate
 	+tests_autoupdate_FromUI
@@ -67,25 +66,34 @@
 	+tests_autoupdate_OmahaResponse
 	+tests_autoupdate_P2P
 	+tests_autoupdate_Periodic
+	+tests_autoupdate_RejectDuplicateUpdate
 	+tests_autoupdate_Rollback
 	dlc_test? ( +tests_autoupdate_WithDLC )
 	has-kernelnext? ( +tests_autoupdate_StatefulCompatibility )
 	is-kernelnext? ( +tests_autoupdate_StatefulCompatibility )
 	cellular? ( +tests_cellular_StaleModemReboot )
 	android-container-pi? (
-		+tests_cheets_CTS_Instant
-		+tests_cheets_CTS_P
-		+tests_cheets_GTS
+		cheets_user? (
+			+tests_cheets_CTS_Instant
+			+tests_cheets_CTS_P
+			+tests_cheets_GTS
+		)
+		cheets_user_64? (
+			+tests_cheets_CTS_Instant
+			+tests_cheets_CTS_P
+			+tests_cheets_GTS
+		)
 	)
 	android-vm-rvc? (
 		cheets_user_64? (
 			+tests_cheets_CTS_R
 			+tests_cheets_GTS_R
 		)
-		!cheets_user_64? (
+		cheets_userdebug_64? (
 			+tests_cheets_VTS_R
 		)
 	)
+	+tests_cellular_Callbox_AssertCellularData
 	+tests_cheets_LabDependencies
 	debugd? ( +tests_debugd_DevTools )
 	+tests_crosperf_Wrapper
@@ -104,7 +112,7 @@
 	+tests_dummy_PassServer
 	+tests_dummy_FailServer
 	+tests_dummy_FlakyTestServer
-	+tests_dummy_SynchronousOffloadServer
+	+tests_stub_SynchronousOffloadServer
 	+tests_enterprise_ClearTPM
 	+tests_enterprise_KioskEnrollmentServer
 	+tests_enterprise_LongevityTrackerServer
@@ -140,6 +148,7 @@
 	+tests_firmware_Cr50CCDFirmwareUpdate
 	+tests_firmware_Cr50GetName
 	+tests_firmware_Cr50InvalidateRW
+	+tests_firmware_Cr50Keygen
 	+tests_firmware_Cr50Open
 	+tests_firmware_Cr50OpenWhileAPOff
 	+tests_firmware_Cr50PartialBoardId
@@ -158,9 +167,11 @@
 	+tests_firmware_Cr50Update
 	+tests_firmware_Cr50UpdateScriptStress
 	+tests_firmware_Cr50USB
+	+tests_firmware_Cr50VerifyEK
 	+tests_firmware_Cr50WilcoEcrst
 	+tests_firmware_Cr50WilcoRmaFactoryMode
 	+tests_firmware_Cr50WPG3
+	+tests_firmware_CsmeFwUpdate
 	+tests_firmware_DevBootUSB
 	+tests_firmware_DevDefaultBoot
 	+tests_firmware_DevMode
@@ -179,11 +190,13 @@
 	+tests_firmware_ECPowerButton
 	+tests_firmware_ECPowerG3
 	+tests_firmware_ECSharedMem
+	+tests_firmware_ECSystemLocked
 	+tests_firmware_ECThermal
 	+tests_firmware_ECUpdateId
 	+tests_firmware_ECUsbPorts
 	+tests_firmware_ECWakeSource
 	+tests_firmware_ECWatchdog
+	+tests_firmware_EmmcWriteLoad
 	+tests_firmware_EventLog
 	+tests_firmware_FAFTPrepare
 	+tests_firmware_FAFTModeTransitions
@@ -191,6 +204,7 @@
 	+tests_firmware_FAFTSetup
 	biod? (
 		+tests_firmware_Fingerprint
+		+tests_firmware_FingerprintCrosConfig
 		+tests_firmware_FingerprintSigner
 	)
 	+tests_firmware_FMap
@@ -274,6 +288,7 @@
 	+tests_platform_CorruptRootfs
 	+tests_platform_CrashStateful
 	+tests_platform_ExternalUsbPeripherals
+	+tests_platform_FetchCloudConfig
 	+tests_platform_FlashErasers
 	+tests_platform_Flashrom
 	+tests_platform_HWwatchdog
@@ -281,6 +296,7 @@
 	+tests_platform_InstallTestImage
 	+tests_platform_InternalDisplay
 	+tests_platform_KernelErrorPaths
+	+tests_platform_MTBF
 	power_management? (
 		+tests_platform_PowerStatusStress
 		+tests_power_DeferForFlashrom
@@ -330,6 +346,7 @@
 	+tests_servohost_Reboot
 	+tests_stress_ClientTestReboot
 	+tests_stress_EnrollmentRetainment
+	+tests_stub_ServerToClientPass
 "
 
 IUSE_TESTS="${IUSE_TESTS}
diff --git a/chromeos-base/autotest-tests-arc-public/autotest-tests-arc-public-0.0.1-r1162.ebuild b/chromeos-base/autotest-tests-arc-public/autotest-tests-arc-public-0.0.1-r1162.ebuild
deleted file mode 100644
index 0a84d14..0000000
--- a/chromeos-base/autotest-tests-arc-public/autotest-tests-arc-public-0.0.1-r1162.ebuild
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright 2016 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-CROS_WORKON_COMMIT="db48601acf9d646e8f4b4c223e67da2d40cf02e6"
-CROS_WORKON_TREE="9c318efb5bd9aef8b16389f9f2573412b9e576cc"
-CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
-CROS_WORKON_LOCALNAME="third_party/autotest/files"
-
-inherit autotest cros-workon flag-o-matic
-
-DESCRIPTION="Public ARC autotests"
-
-LICENSE="BSD-Google"
-SLOT="0"
-KEYWORDS="*"
-
-RDEPEND="
-	dev-python/pyxattr
-	chromeos-base/chromeos-chrome
-	chromeos-base/autotest-chrome
-	chromeos-base/telemetry
-	"
-
-DEPEND="${RDEPEND}"
-
-IUSE="
-	+autotest
-"
-
-src_prepare() {
-	# Telemetry tests require the path to telemetry source to exist in order to
-	# build. Copy the telemetry source to a temporary directory that is writable,
-	# so that file removals in Telemetry source can be performed properly.
-	export TMP_DIR="$(mktemp -d)"
-	cp -r "${SYSROOT}/usr/local/telemetry" "${TMP_DIR}"
-	export PYTHONPATH="${TMP_DIR}/telemetry/src/third_party/catapult/telemetry"
-	autotest_src_prepare
-}
-
diff --git a/chromeos-base/autotest-tests-arc-public/autotest-tests-arc-public-0.0.1-r2008.ebuild b/chromeos-base/autotest-tests-arc-public/autotest-tests-arc-public-0.0.1-r2008.ebuild
new file mode 100644
index 0000000..2372044
--- /dev/null
+++ b/chromeos-base/autotest-tests-arc-public/autotest-tests-arc-public-0.0.1-r2008.ebuild
@@ -0,0 +1,41 @@
+# Copyright 2016 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+CROS_WORKON_COMMIT="0e103e3821ffbc575b67d6d9c426cac3ee4402b3"
+CROS_WORKON_TREE="210df4cb14c4f7c420a697e85e6a7bec211d5bed"
+CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
+CROS_WORKON_LOCALNAME="third_party/autotest/files"
+
+inherit autotest cros-workon flag-o-matic
+
+DESCRIPTION="Public ARC autotests"
+
+LICENSE="BSD-Google"
+SLOT="0"
+KEYWORDS="*"
+
+RDEPEND="
+	dev-python/pyxattr
+	chromeos-base/chromeos-chrome
+	chromeos-base/autotest-chrome
+	chromeos-base/telemetry
+	"
+
+DEPEND="${RDEPEND}"
+
+IUSE="
+	+autotest
+"
+
+src_prepare() {
+	# Telemetry tests require the path to telemetry source to exist in order to
+	# build. Copy the telemetry source to a temporary directory that is writable,
+	# so that file removals in Telemetry source can be performed properly.
+	export TMP_DIR="$(mktemp -d)"
+	cp -r "${SYSROOT}/usr/local/telemetry" "${TMP_DIR}"
+	export PYTHONPATH="${TMP_DIR}/telemetry/src/third_party/catapult/telemetry"
+	autotest_src_prepare
+}
+
diff --git a/chromeos-base/autotest-tests-audio/autotest-tests-audio-0.0.1-r3215.ebuild b/chromeos-base/autotest-tests-audio/autotest-tests-audio-0.0.1-r3215.ebuild
deleted file mode 100644
index 4bd4ee6..0000000
--- a/chromeos-base/autotest-tests-audio/autotest-tests-audio-0.0.1-r3215.ebuild
+++ /dev/null
@@ -1,57 +0,0 @@
-# Copyright 2014 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-CROS_WORKON_COMMIT="f87b49edd46ee81d6238c1aeac57b8cfe66482aa"
-CROS_WORKON_TREE="f93558b8a70c6080afd69871b0752fdf060d768c"
-CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
-CROS_WORKON_LOCALNAME="third_party/autotest/files"
-
-inherit cros-workon autotest
-
-DESCRIPTION="Audio autotests"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
-SRC_URI=""
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="*"
-# Enable autotest by default.
-IUSE="+autotest -chromeless_tty"
-
-RDEPEND="
-	!<chromeos-base/autotest-tests-0.0.3
-	chromeos-base/audiotest
-	!chromeless_tty? ( chromeos-base/telemetry )
-"
-DEPEND="${RDEPEND}"
-
-# audio_AudioInputGain and audio_CrasGetNodes depend on telemetry.
-IUSE_TESTS="
-	+tests_audio_Aconnect
-	+tests_audio_Aplay
-	!chromeless_tty? (
-		+tests_audio_AudioInputGain
-		+tests_audio_CrasGetNodes
-	)
-	+tests_audio_CRASFormatConversion
-	+tests_audio_CrasDevSwitchStress
-	+tests_audio_CrasPinnedStream
-	+tests_audio_CrasStress
-"
-
-IUSE="${IUSE} ${IUSE_TESTS}"
-
-AUTOTEST_FILE_MASK="*.a *.tar.bz2 *.tbz2 *.tgz *.tar.gz"
-
-src_prepare() {
-	if ! use chromeless_tty; then
-		# Telemetry tests require the path to telemetry source to exist in order to
-		# build. Copy the telemetry source to a temporary directory that is writable,
-		# so that file removals in Telemetry source can be performed properly.
-		export TMP_DIR="$(mktemp -d)"
-		cp -r "${SYSROOT}/usr/local/telemetry" "${TMP_DIR}"
-		export PYTHONPATH="${TMP_DIR}/telemetry/src/third_party/catapult/telemetry"
-	fi
-	autotest_src_prepare
-}
diff --git a/chromeos-base/autotest-tests-audio/autotest-tests-audio-0.0.1-r3219.ebuild b/chromeos-base/autotest-tests-audio/autotest-tests-audio-0.0.1-r3219.ebuild
new file mode 100644
index 0000000..cb3cb00
--- /dev/null
+++ b/chromeos-base/autotest-tests-audio/autotest-tests-audio-0.0.1-r3219.ebuild
@@ -0,0 +1,57 @@
+# Copyright 2014 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+CROS_WORKON_COMMIT="1866e839a7c7dc7d1fc1f6d31604edbf1ac1ac6e"
+CROS_WORKON_TREE="cb26b1124d2937d6e84fa895d1cdab8a4d3c5fd0"
+CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
+CROS_WORKON_LOCALNAME="third_party/autotest/files"
+
+inherit cros-workon autotest
+
+DESCRIPTION="Audio autotests"
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
+SRC_URI=""
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="*"
+# Enable autotest by default.
+IUSE="+autotest -chromeless_tty"
+
+RDEPEND="
+	!<chromeos-base/autotest-tests-0.0.3
+	chromeos-base/audiotest
+	!chromeless_tty? ( chromeos-base/telemetry )
+"
+DEPEND="${RDEPEND}"
+
+# audio_AudioInputGain and audio_CrasGetNodes depend on telemetry.
+IUSE_TESTS="
+	+tests_audio_Aconnect
+	+tests_audio_Aplay
+	!chromeless_tty? (
+		+tests_audio_AudioInputGain
+		+tests_audio_CrasGetNodes
+	)
+	+tests_audio_CRASFormatConversion
+	+tests_audio_CrasDevSwitchStress
+	+tests_audio_CrasPinnedStream
+	+tests_audio_CrasStress
+"
+
+IUSE="${IUSE} ${IUSE_TESTS}"
+
+AUTOTEST_FILE_MASK="*.a *.tar.bz2 *.tbz2 *.tgz *.tar.gz"
+
+src_prepare() {
+	if ! use chromeless_tty; then
+		# Telemetry tests require the path to telemetry source to exist in order to
+		# build. Copy the telemetry source to a temporary directory that is writable,
+		# so that file removals in Telemetry source can be performed properly.
+		export TMP_DIR="$(mktemp -d)"
+		cp -r "${SYSROOT}/usr/local/telemetry" "${TMP_DIR}"
+		export PYTHONPATH="${TMP_DIR}/telemetry/src/third_party/catapult/telemetry"
+	fi
+	autotest_src_prepare
+}
diff --git a/chromeos-base/autotest-tests-cellular/autotest-tests-cellular-0.0.1-r3238.ebuild b/chromeos-base/autotest-tests-cellular/autotest-tests-cellular-0.0.1-r3238.ebuild
deleted file mode 100644
index 8263292..0000000
--- a/chromeos-base/autotest-tests-cellular/autotest-tests-cellular-0.0.1-r3238.ebuild
+++ /dev/null
@@ -1,65 +0,0 @@
-# Copyright 2014 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-CROS_WORKON_COMMIT="2e31794146dec95bac0eac32010673dd27f30c3c"
-CROS_WORKON_TREE="35be4be4da4554ecafb38df95bb1526d806a11c9"
-CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
-
-inherit cros-workon autotest
-
-DESCRIPTION="Cellular autotests"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
-SRC_URI=""
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="*"
-# Enable autotest by default.
-IUSE="${IUSE} +autotest"
-
-RDEPEND="
-	!<chromeos-base/autotest-tests-0.0.2
-	chromeos-base/autotest-deps-cellular
-	chromeos-base/shill-test-scripts
-	dev-python/pygobject
-	dev-python/pyusb
-	sys-apps/ethtool
-"
-DEPEND="${RDEPEND}"
-
-IUSE_TESTS="
-	+tests_cellular_ActivateLTE
-	+tests_cellular_ConnectFailure
-	+tests_cellular_DeferredRegistration
-	+tests_cellular_DisableWhileConnecting
-	+tests_cellular_DisconnectFailure
-	+tests_cellular_Identifiers
-	+tests_cellular_OutOfCreditsSubscriptionState
-	+tests_cellular_SIMLocking
-	+tests_cellular_SafetyDance
-	+tests_cellular_ScanningProperty
-	+tests_cellular_ServiceName
-	+tests_cellular_Smoke
-	+tests_cellular_StressEnable
-"
-
-IUSE_MBIM_TESTS="
-	+tests_cellular_MbimComplianceControlCommand
-	+tests_cellular_MbimComplianceControlRequest
-	+tests_cellular_MbimComplianceDataTransfer
-	+tests_cellular_MbimComplianceDescriptor
-	+tests_cellular_MbimComplianceError
-"
-
-IUSE_TESTS="${IUSE_TESTS} ${IUSE_MBIM_TESTS}"
-
-IUSE="${IUSE} ${IUSE_TESTS}"
-
-CROS_WORKON_LOCALNAME="third_party/autotest/files"
-
-AUTOTEST_DEPS_LIST=""
-AUTOTEST_CONFIG_LIST=""
-AUTOTEST_PROFILERS_LIST=""
-
-AUTOTEST_FILE_MASK="*.a *.tar.bz2 *.tbz2 *.tgz *.tar.gz"
diff --git a/chromeos-base/autotest-tests-cellular/autotest-tests-cellular-0.0.1-r3257.ebuild b/chromeos-base/autotest-tests-cellular/autotest-tests-cellular-0.0.1-r3257.ebuild
new file mode 100644
index 0000000..bd0b50b
--- /dev/null
+++ b/chromeos-base/autotest-tests-cellular/autotest-tests-cellular-0.0.1-r3257.ebuild
@@ -0,0 +1,71 @@
+# Copyright 2014 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+CROS_WORKON_COMMIT="7517e96310872b85043a1b420dcdcbf1141bfc9b"
+CROS_WORKON_TREE="a3840d3e11f296901738b7aa519b87390dae70e7"
+CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
+
+inherit cros-workon autotest
+
+DESCRIPTION="Cellular autotests"
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
+SRC_URI=""
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="*"
+# Enable autotest by default.
+IUSE="${IUSE} +autotest"
+
+RDEPEND="
+	!<chromeos-base/autotest-tests-0.0.2
+	chromeos-base/autotest-deps-cellular
+	chromeos-base/shill-test-scripts
+	dev-python/pygobject
+	dev-python/pyusb
+	sys-apps/ethtool
+"
+DEPEND="${RDEPEND}"
+
+IUSE_TESTS="
+	+tests_cellular_ActivateLTE
+	+tests_cellular_ConnectFailure
+	+tests_cellular_DeferredRegistration
+	+tests_cellular_DisableWhileConnecting
+	+tests_cellular_DisconnectFailure
+	+tests_cellular_HermesErrorScenarios
+	+tests_cellular_HermesMM_InstallEnable
+	+tests_cellular_Hermes_MultiProfile
+	+tests_cellular_Hermes_Restart_SlotSwitch
+	+tests_cellular_Hermes_SingleProfile
+	+tests_cellular_Identifiers
+	+tests_cellular_OutOfCreditsSubscriptionState
+	+tests_cellular_SIMLocking
+	+tests_cellular_SafetyDance
+	+tests_cellular_ScanningProperty
+	+tests_cellular_ServiceName
+	+tests_cellular_Smoke
+	+tests_cellular_StressEnable
+	+tests_cellular_ValidateTestEnvironment
+"
+
+IUSE_MBIM_TESTS="
+	+tests_cellular_MbimComplianceControlCommand
+	+tests_cellular_MbimComplianceControlRequest
+	+tests_cellular_MbimComplianceDataTransfer
+	+tests_cellular_MbimComplianceDescriptor
+	+tests_cellular_MbimComplianceError
+"
+
+IUSE_TESTS="${IUSE_TESTS} ${IUSE_MBIM_TESTS}"
+
+IUSE="${IUSE} ${IUSE_TESTS}"
+
+CROS_WORKON_LOCALNAME="third_party/autotest/files"
+
+AUTOTEST_DEPS_LIST=""
+AUTOTEST_CONFIG_LIST=""
+AUTOTEST_PROFILERS_LIST=""
+
+AUTOTEST_FILE_MASK="*.a *.tar.bz2 *.tbz2 *.tgz *.tar.gz"
diff --git a/chromeos-base/autotest-tests-cellular/autotest-tests-cellular-9999.ebuild b/chromeos-base/autotest-tests-cellular/autotest-tests-cellular-9999.ebuild
index 09fcb2c..6f60084 100644
--- a/chromeos-base/autotest-tests-cellular/autotest-tests-cellular-9999.ebuild
+++ b/chromeos-base/autotest-tests-cellular/autotest-tests-cellular-9999.ebuild
@@ -32,6 +32,11 @@
 	+tests_cellular_DeferredRegistration
 	+tests_cellular_DisableWhileConnecting
 	+tests_cellular_DisconnectFailure
+	+tests_cellular_HermesErrorScenarios
+	+tests_cellular_HermesMM_InstallEnable
+	+tests_cellular_Hermes_MultiProfile
+	+tests_cellular_Hermes_Restart_SlotSwitch
+	+tests_cellular_Hermes_SingleProfile
 	+tests_cellular_Identifiers
 	+tests_cellular_OutOfCreditsSubscriptionState
 	+tests_cellular_SIMLocking
@@ -40,6 +45,7 @@
 	+tests_cellular_ServiceName
 	+tests_cellular_Smoke
 	+tests_cellular_StressEnable
+	+tests_cellular_ValidateTestEnvironment
 "
 
 IUSE_MBIM_TESTS="
diff --git a/chromeos-base/autotest-tests-cryptohome/autotest-tests-cryptohome-0.0.1-r3183.ebuild b/chromeos-base/autotest-tests-cryptohome/autotest-tests-cryptohome-0.0.1-r3183.ebuild
deleted file mode 100644
index 2f8a9b9..0000000
--- a/chromeos-base/autotest-tests-cryptohome/autotest-tests-cryptohome-0.0.1-r3183.ebuild
+++ /dev/null
@@ -1,59 +0,0 @@
-# Copyright 2014 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-CROS_WORKON_COMMIT="2167d36da223b9dae9c2699d46caab77fe205fce"
-CROS_WORKON_TREE="64027579f73b432680a0fca8450ace233c20134c"
-CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
-CROS_WORKON_LOCALNAME="third_party/autotest/files"
-
-inherit cros-workon autotest
-
-DESCRIPTION="Cryptohome autotests"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
-SRC_URI=""
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="*"
-# Enable autotest by default.
-IUSE="+autotest"
-
-COMMON_DEPEND="
-	!<chromeos-base/autotest-tests-0.0.3
-"
-
-RDEPEND="
-	${COMMON_DEPEND}
-	chromeos-base/cryptohome-dev-utils
-"
-
-DEPEND="
-	${COMMON_DEPEND}
-"
-
-IUSE_TESTS="
-	+tests_platform_BootLockbox
-	+tests_platform_CryptohomeBadPerms
-	+tests_platform_CryptohomeChangePassword
-	+tests_platform_CryptohomeFio
-	+tests_platform_CryptohomeKeyEviction
-	+tests_platform_CryptohomeLECredentialManager
-	+tests_platform_CryptohomeLECredentialManagerServer
-	+tests_platform_CryptohomeMigrateChapsToken
-	+tests_platform_CryptohomeMigrateChapsTokenClient
-	+tests_platform_CryptohomeMigrateKey
-	+tests_platform_CryptohomeMount
-	+tests_platform_CryptohomeMultiple
-	+tests_platform_CryptohomeNonDirs
-	+tests_platform_CryptohomeStress
-	+tests_platform_CryptohomeTestAuth
-	+tests_platform_CryptohomeTpmLiveTest
-	+tests_platform_CryptohomeTpmLiveTestServer
-	+tests_platform_CryptohomeTPMReOwn
-	+tests_platform_CryptohomeTPMReOwnServer
-"
-
-IUSE="${IUSE} ${IUSE_TESTS}"
-
-AUTOTEST_FILE_MASK="*.a *.tar.bz2 *.tbz2 *.tgz *.tar.gz"
diff --git a/chromeos-base/autotest-tests-cryptohome/autotest-tests-cryptohome-0.0.1-r3187.ebuild b/chromeos-base/autotest-tests-cryptohome/autotest-tests-cryptohome-0.0.1-r3187.ebuild
new file mode 100644
index 0000000..a96501a
--- /dev/null
+++ b/chromeos-base/autotest-tests-cryptohome/autotest-tests-cryptohome-0.0.1-r3187.ebuild
@@ -0,0 +1,42 @@
+# Copyright 2014 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+CROS_WORKON_COMMIT="08d3cc9c6917d029c01338f2eee4692e4ce2e152"
+CROS_WORKON_TREE="9d4e01e2ade94f263bd118fa7c26d4a67d8810ed"
+CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
+CROS_WORKON_LOCALNAME="third_party/autotest/files"
+
+inherit cros-workon autotest
+
+DESCRIPTION="Cryptohome autotests"
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
+SRC_URI=""
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="*"
+# Enable autotest by default.
+IUSE="+autotest"
+
+COMMON_DEPEND="
+	!<chromeos-base/autotest-tests-0.0.3
+"
+
+RDEPEND="
+	${COMMON_DEPEND}
+	chromeos-base/cryptohome-dev-utils
+"
+
+DEPEND="
+	${COMMON_DEPEND}
+"
+
+IUSE_TESTS="
+	+tests_platform_CryptohomeFio
+	+tests_platform_CryptohomeStress
+"
+
+IUSE="${IUSE} ${IUSE_TESTS}"
+
+AUTOTEST_FILE_MASK="*.a *.tar.bz2 *.tbz2 *.tgz *.tar.gz"
diff --git a/chromeos-base/autotest-tests-cryptohome/autotest-tests-cryptohome-9999.ebuild b/chromeos-base/autotest-tests-cryptohome/autotest-tests-cryptohome-9999.ebuild
index c6cfe3e..467beed 100644
--- a/chromeos-base/autotest-tests-cryptohome/autotest-tests-cryptohome-9999.ebuild
+++ b/chromeos-base/autotest-tests-cryptohome/autotest-tests-cryptohome-9999.ebuild
@@ -31,25 +31,8 @@
 "
 
 IUSE_TESTS="
-	+tests_platform_BootLockbox
-	+tests_platform_CryptohomeBadPerms
-	+tests_platform_CryptohomeChangePassword
 	+tests_platform_CryptohomeFio
-	+tests_platform_CryptohomeKeyEviction
-	+tests_platform_CryptohomeLECredentialManager
-	+tests_platform_CryptohomeLECredentialManagerServer
-	+tests_platform_CryptohomeMigrateChapsToken
-	+tests_platform_CryptohomeMigrateChapsTokenClient
-	+tests_platform_CryptohomeMigrateKey
-	+tests_platform_CryptohomeMount
-	+tests_platform_CryptohomeMultiple
-	+tests_platform_CryptohomeNonDirs
 	+tests_platform_CryptohomeStress
-	+tests_platform_CryptohomeTestAuth
-	+tests_platform_CryptohomeTpmLiveTest
-	+tests_platform_CryptohomeTpmLiveTestServer
-	+tests_platform_CryptohomeTPMReOwn
-	+tests_platform_CryptohomeTPMReOwnServer
 "
 
 IUSE="${IUSE} ${IUSE_TESTS}"
diff --git a/chromeos-base/autotest-tests-debugd/autotest-tests-debugd-0.0.1-r3177.ebuild b/chromeos-base/autotest-tests-debugd/autotest-tests-debugd-0.0.1-r3177.ebuild
deleted file mode 100644
index 470d37f..0000000
--- a/chromeos-base/autotest-tests-debugd/autotest-tests-debugd-0.0.1-r3177.ebuild
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright 2014 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-CROS_WORKON_COMMIT="bd537770848ddec105efbc7d0c5b2ee36a3bc28c"
-CROS_WORKON_TREE="7abe0fa6c1f4184fbc880685f156357a5ec6a435"
-CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
-CROS_WORKON_LOCALNAME="third_party/autotest/files"
-
-inherit cros-workon autotest
-
-DESCRIPTION="debugd autotests"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
-SRC_URI=""
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="*"
-# Enable autotest by default.
-IUSE="+autotest"
-
-RDEPEND="
-	!<chromeos-base/autotest-tests-0.0.3
-"
-
-IUSE_TESTS="
-	+tests_platform_TraceClockMonotonic
-	+tests_platform_DebugDaemonGetNetworkStatus
-	+tests_platform_DebugDaemonGetPerfData
-	+tests_platform_DebugDaemonGetPerfOutputFd
-	+tests_platform_DebugDaemonGetRoutes
-	+tests_platform_DebugDaemonPerfDataInFeedbackLogs
-	+tests_platform_DebugDaemonPing
-	+tests_platform_DebugDaemonTracePath
-"
-
-IUSE="${IUSE} ${IUSE_TESTS}"
-
-AUTOTEST_FILE_MASK="*.a *.tar.bz2 *.tbz2 *.tgz *.tar.gz"
diff --git a/chromeos-base/autotest-tests-debugd/autotest-tests-debugd-0.0.1-r3178.ebuild b/chromeos-base/autotest-tests-debugd/autotest-tests-debugd-0.0.1-r3178.ebuild
new file mode 100644
index 0000000..7f3a3d3
--- /dev/null
+++ b/chromeos-base/autotest-tests-debugd/autotest-tests-debugd-0.0.1-r3178.ebuild
@@ -0,0 +1,39 @@
+# Copyright 2014 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+CROS_WORKON_COMMIT="0bb6d29703e005a7b7f584a86104c9c30e25185f"
+CROS_WORKON_TREE="6b7edca2573c9555e1eb7e2ca4abe3432cb63fe2"
+CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
+CROS_WORKON_LOCALNAME="third_party/autotest/files"
+
+inherit cros-workon autotest
+
+DESCRIPTION="debugd autotests"
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
+SRC_URI=""
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="*"
+# Enable autotest by default.
+IUSE="+autotest"
+
+RDEPEND="
+	!<chromeos-base/autotest-tests-0.0.3
+"
+
+IUSE_TESTS="
+	+tests_platform_TraceClockMonotonic
+	+tests_platform_DebugDaemonGetNetworkStatus
+	+tests_platform_DebugDaemonGetPerfData
+	+tests_platform_DebugDaemonGetPerfOutputFd
+	+tests_platform_DebugDaemonGetRoutes
+	+tests_platform_DebugDaemonPerfDataInFeedbackLogs
+	+tests_platform_DebugDaemonPing
+	+tests_platform_DebugDaemonTracePath
+"
+
+IUSE="${IUSE} ${IUSE_TESTS}"
+
+AUTOTEST_FILE_MASK="*.a *.tar.bz2 *.tbz2 *.tgz *.tar.gz"
diff --git a/chromeos-base/autotest-tests-graphics/autotest-tests-graphics-0.0.1-r3245.ebuild b/chromeos-base/autotest-tests-graphics/autotest-tests-graphics-0.0.1-r3245.ebuild
deleted file mode 100644
index 7fa9339..0000000
--- a/chromeos-base/autotest-tests-graphics/autotest-tests-graphics-0.0.1-r3245.ebuild
+++ /dev/null
@@ -1,54 +0,0 @@
-# Copyright 2014 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-CROS_WORKON_COMMIT="c40e190f7b27e0e6ba8ef27aa8a7b157c44fd53e"
-CROS_WORKON_TREE="e7baac7cbb860b4652858adc33327facd8bd1642"
-CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
-CROS_WORKON_LOCALNAME="third_party/autotest/files"
-
-inherit cros-sanitizers cros-workon autotest
-
-DESCRIPTION="Graphics autotests"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
-SRC_URI=""
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="*"
-# Enable autotest by default.
-IUSE="+autotest"
-
-RDEPEND="
-	!<chromeos-base/autotest-tests-0.0.3
-	chromeos-base/autotest-deps-graphics
-	tests_graphics_Gbm? ( media-libs/minigbm )
-	tests_graphics_GLBench? ( chromeos-base/glbench )
-	tests_graphics_GLMark2? ( chromeos-base/autotest-deps-glmark2 )
-	tests_graphics_SanAngeles? ( media-libs/waffle )
-"
-DEPEND="${RDEPEND}"
-
-IUSE_TESTS="
-	+tests_graphics_dEQP
-	+tests_graphics_Gbm
-	+tests_graphics_GLAPICheck
-	+tests_graphics_GLBench
-	+tests_graphics_GLMark2
-	+tests_graphics_KernelConfig
-	+tests_graphics_KernelMemory
-	+tests_graphics_LibDRM
-	+tests_graphics_PerfControl
-	+tests_graphics_SanAngeles
-	+tests_graphics_SyncControlTest
-	+tests_graphics_Power
-"
-
-IUSE="${IUSE} ${IUSE_TESTS}"
-
-AUTOTEST_FILE_MASK="*.a *.tar.bz2 *.tbz2 *.tgz *.tar.gz"
-
-src_configure() {
-	sanitizers-setup-env
-	default
-}
diff --git a/chromeos-base/autotest-tests-graphics/autotest-tests-graphics-0.0.1-r3265.ebuild b/chromeos-base/autotest-tests-graphics/autotest-tests-graphics-0.0.1-r3265.ebuild
new file mode 100644
index 0000000..f39eaac
--- /dev/null
+++ b/chromeos-base/autotest-tests-graphics/autotest-tests-graphics-0.0.1-r3265.ebuild
@@ -0,0 +1,55 @@
+# Copyright 2014 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+CROS_WORKON_COMMIT="f76617cf8f9dfe3ba4b5953e3dc2c8a97cd52c81"
+CROS_WORKON_TREE="c0ffc312566b015e40f68885e0fc926bbce4d139"
+CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
+CROS_WORKON_LOCALNAME="third_party/autotest/files"
+
+inherit cros-sanitizers cros-workon autotest
+
+DESCRIPTION="Graphics autotests"
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
+SRC_URI=""
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="*"
+# Enable autotest by default.
+IUSE="+autotest"
+
+RDEPEND="
+	!<chromeos-base/autotest-tests-0.0.3
+	chromeos-base/autotest-deps-graphics
+	tests_graphics_Gbm? ( media-libs/minigbm )
+	tests_graphics_GLBench? ( chromeos-base/glbench )
+	tests_graphics_GLMark2? ( chromeos-base/autotest-deps-glmark2 )
+	tests_graphics_SanAngeles? ( media-libs/waffle )
+"
+DEPEND="${RDEPEND}"
+
+IUSE_TESTS="
+	+tests_graphics_dEQP
+	+tests_graphics_Gbm
+	+tests_graphics_GLAPICheck
+	+tests_graphics_GLBench
+	+tests_graphics_GLMark2
+	+tests_graphics_KernelConfig
+	+tests_graphics_KernelMemory
+	+tests_graphics_LibDRM
+	+tests_graphics_PerfControl
+	+tests_graphics_SanAngeles
+	+tests_graphics_SyncControlTest
+	+tests_graphics_parallel_dEQP
+	+tests_graphics_Power
+"
+
+IUSE="${IUSE} ${IUSE_TESTS}"
+
+AUTOTEST_FILE_MASK="*.a *.tar.bz2 *.tbz2 *.tgz *.tar.gz"
+
+src_configure() {
+	sanitizers-setup-env
+	default
+}
diff --git a/chromeos-base/autotest-tests-graphics/autotest-tests-graphics-9999.ebuild b/chromeos-base/autotest-tests-graphics/autotest-tests-graphics-9999.ebuild
index 2443d404..317356d 100644
--- a/chromeos-base/autotest-tests-graphics/autotest-tests-graphics-9999.ebuild
+++ b/chromeos-base/autotest-tests-graphics/autotest-tests-graphics-9999.ebuild
@@ -39,6 +39,7 @@
 	+tests_graphics_PerfControl
 	+tests_graphics_SanAngeles
 	+tests_graphics_SyncControlTest
+	+tests_graphics_parallel_dEQP
 	+tests_graphics_Power
 "
 
diff --git a/chromeos-base/autotest-tests-ownershipapi/autotest-tests-ownershipapi-0.0.1-r7891.ebuild b/chromeos-base/autotest-tests-ownershipapi/autotest-tests-ownershipapi-0.0.1-r7891.ebuild
deleted file mode 100644
index ebae6e1..0000000
--- a/chromeos-base/autotest-tests-ownershipapi/autotest-tests-ownershipapi-0.0.1-r7891.ebuild
+++ /dev/null
@@ -1,57 +0,0 @@
-# Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-CROS_WORKON_COMMIT="edf345c66d0eece43912c9c813a24825fdd338dd"
-CROS_WORKON_TREE="0403c48eb6c76d705968f240a92353631701a279"
-CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
-
-inherit cros-workon autotest
-
-DESCRIPTION="login_OwnershipApi autotest"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
-SRC_URI=""
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="*"
-IUSE="+xset +tpmtools"
-# Enable autotest by default.
-IUSE="${IUSE} +autotest"
-
-RDEPEND="${RDEPEND}
-	chromeos-base/autotest-deps-dbus
-	chromeos-base/autotest-deps-policy
-	chromeos-base/chromeos-chrome
-	chromeos-base/telemetry
-	dev-python/protobuf-python
-	dev-python/pygobject
-"
-
-DEPEND="${RDEPEND}"
-
-# The telemetry dependency comes from the chrome.py import in some of the tests.
-IUSE_TESTS="
-	+tests_login_CryptohomeOwnerQuery
-	+tests_login_MultipleSessions
-"
-
-IUSE="${IUSE} ${IUSE_TESTS}"
-
-CROS_WORKON_LOCALNAME="third_party/autotest/files"
-
-AUTOTEST_DEPS_LIST=""
-AUTOTEST_CONFIG_LIST=""
-AUTOTEST_PROFILERS_LIST=""
-
-AUTOTEST_FILE_MASK="*.a *.tar.bz2 *.tbz2 *.tgz *.tar.gz"
-
-src_prepare() {
-	# Telemetry tests require the path to telemetry source to exist in order to
-	# build.  Copy the telemetry source to a temporary directory that is writable,
-	# so that file removals in Telemetry source can be performed properly.
-	export TMP_DIR="$(mktemp -d)"
-	cp -r "${SYSROOT}/usr/local/telemetry" "${TMP_DIR}"
-	export PYTHONPATH="${TMP_DIR}/telemetry/src/third_party/catapult/telemetry"
-	autotest_src_prepare
-}
diff --git a/chromeos-base/autotest-tests-ownershipapi/autotest-tests-ownershipapi-0.0.1-r7892.ebuild b/chromeos-base/autotest-tests-ownershipapi/autotest-tests-ownershipapi-0.0.1-r7892.ebuild
new file mode 100644
index 0000000..9da4883
--- /dev/null
+++ b/chromeos-base/autotest-tests-ownershipapi/autotest-tests-ownershipapi-0.0.1-r7892.ebuild
@@ -0,0 +1,57 @@
+# Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+CROS_WORKON_COMMIT="99e5f02e736eab3dd1445834c1f26f46db85e452"
+CROS_WORKON_TREE="54ff09d88d01f0b74b519616c18d7e964daafc53"
+CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
+
+inherit cros-workon autotest
+
+DESCRIPTION="login_OwnershipApi autotest"
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
+SRC_URI=""
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="*"
+IUSE="+xset +tpmtools"
+# Enable autotest by default.
+IUSE="${IUSE} +autotest"
+
+RDEPEND="${RDEPEND}
+	chromeos-base/autotest-deps-dbus
+	chromeos-base/autotest-deps-policy
+	chromeos-base/chromeos-chrome
+	chromeos-base/telemetry
+	dev-python/protobuf-python
+	dev-python/pygobject
+"
+
+DEPEND="${RDEPEND}"
+
+# The telemetry dependency comes from the chrome.py import in some of the tests.
+IUSE_TESTS="
+	+tests_login_CryptohomeOwnerQuery
+	+tests_login_MultipleSessions
+"
+
+IUSE="${IUSE} ${IUSE_TESTS}"
+
+CROS_WORKON_LOCALNAME="third_party/autotest/files"
+
+AUTOTEST_DEPS_LIST=""
+AUTOTEST_CONFIG_LIST=""
+AUTOTEST_PROFILERS_LIST=""
+
+AUTOTEST_FILE_MASK="*.a *.tar.bz2 *.tbz2 *.tgz *.tar.gz"
+
+src_prepare() {
+	# Telemetry tests require the path to telemetry source to exist in order to
+	# build.  Copy the telemetry source to a temporary directory that is writable,
+	# so that file removals in Telemetry source can be performed properly.
+	export TMP_DIR="$(mktemp -d)"
+	cp -r "${SYSROOT}/usr/local/telemetry" "${TMP_DIR}"
+	export PYTHONPATH="${TMP_DIR}/telemetry/src/third_party/catapult/telemetry"
+	autotest_src_prepare
+}
diff --git a/chromeos-base/autotest-tests-power/autotest-tests-power-0.0.1-r3227.ebuild b/chromeos-base/autotest-tests-power/autotest-tests-power-0.0.1-r3227.ebuild
deleted file mode 100644
index 1439932..0000000
--- a/chromeos-base/autotest-tests-power/autotest-tests-power-0.0.1-r3227.ebuild
+++ /dev/null
@@ -1,63 +0,0 @@
-# Copyright 2014 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=4
-CROS_WORKON_COMMIT="0450a0732282ad63eddf9f80dc5f3c0b68a6cbc5"
-CROS_WORKON_TREE="9aef706603aa7bf550934b087dbf633d2371b94e"
-CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
-CROS_WORKON_LOCALNAME="third_party/autotest/files"
-
-inherit cros-workon autotest
-
-DESCRIPTION="power autotests"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
-SRC_URI=""
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="*"
-# Enable autotest by default.
-IUSE="+autotest +shill"
-
-RDEPEND="
-	shill? ( chromeos-base/shill-test-scripts )
-	!<chromeos-base/autotest-tests-0.0.3
-"
-DEPEND="${RDEPEND}"
-
-# cros/power_suspend depends on shill-test-scripts.
-IUSE_TESTS="
-	+tests_hardware_Backlight
-	+tests_power_ARMSettings
-	+tests_power_Backlight
-	+tests_power_BacklightControl
-	+tests_power_BacklightSuspend
-	+tests_power_BatteryCharge
-	+tests_power_CheckAC
-	+tests_power_CheckAfterSuspend
-	+tests_power_CPUFreq
-	+tests_power_CPUIdle
-	+tests_power_Draw
-	+tests_power_Dummy
-	+tests_power_HotCPUSuspend
-	+tests_power_KernelSuspend
-	+tests_power_MemorySuspend
-	+tests_power_NoConsoleSuspend
-	+tests_power_ProbeDriver
-	shill? ( +tests_power_Resume )
-	+tests_power_Standby
-	+tests_power_StatsCPUFreq
-	+tests_power_StatsCPUIdle
-	+tests_power_StatsUSB
-	+tests_power_Status
-	shill? (
-		+tests_power_SuspendStress
-		+tests_power_SuspendToIdle
-	)
-	+tests_power_WaitForCoolDown
-	+tests_power_WakeupRTC
-"
-
-IUSE="${IUSE} ${IUSE_TESTS}"
-
-AUTOTEST_FILE_MASK="*.a *.tar.bz2 *.tbz2 *.tgz *.tar.gz"
diff --git a/chromeos-base/autotest-tests-power/autotest-tests-power-0.0.1-r3240.ebuild b/chromeos-base/autotest-tests-power/autotest-tests-power-0.0.1-r3240.ebuild
new file mode 100644
index 0000000..e91ebe3
--- /dev/null
+++ b/chromeos-base/autotest-tests-power/autotest-tests-power-0.0.1-r3240.ebuild
@@ -0,0 +1,64 @@
+# Copyright 2014 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=4
+CROS_WORKON_COMMIT="e81b4aa0b4edc96b29fa83a5a62ac5a46d7b07e1"
+CROS_WORKON_TREE="fafed70d3d1eef417289a57d9ace6237a0f33399"
+CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
+CROS_WORKON_LOCALNAME="third_party/autotest/files"
+
+inherit cros-workon autotest
+
+DESCRIPTION="power autotests"
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
+SRC_URI=""
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="*"
+# Enable autotest by default.
+IUSE="+autotest +shill"
+
+RDEPEND="
+	shill? ( chromeos-base/shill-test-scripts )
+	!<chromeos-base/autotest-tests-0.0.3
+"
+DEPEND="${RDEPEND}"
+
+# cros/power_suspend depends on shill-test-scripts.
+IUSE_TESTS="
+	+tests_hardware_Backlight
+	+tests_power_ARMSettings
+	+tests_power_Backlight
+	+tests_power_BacklightControl
+	+tests_power_BacklightSuspend
+	+tests_power_BatteryCharge
+	+tests_power_BatteryDesignCapacity
+	+tests_power_CheckAC
+	+tests_power_CheckAfterSuspend
+	+tests_power_CPUFreq
+	+tests_power_CPUIdle
+	+tests_power_Draw
+	+tests_power_Dummy
+	+tests_power_HotCPUSuspend
+	+tests_power_KernelSuspend
+	+tests_power_MemorySuspend
+	+tests_power_NoConsoleSuspend
+	+tests_power_ProbeDriver
+	shill? ( +tests_power_Resume )
+	+tests_power_Standby
+	+tests_power_StatsCPUFreq
+	+tests_power_StatsCPUIdle
+	+tests_power_StatsUSB
+	+tests_power_Status
+	shill? (
+		+tests_power_SuspendStress
+		+tests_power_SuspendToIdle
+	)
+	+tests_power_WaitForCoolDown
+	+tests_power_WakeupRTC
+"
+
+IUSE="${IUSE} ${IUSE_TESTS}"
+
+AUTOTEST_FILE_MASK="*.a *.tar.bz2 *.tbz2 *.tgz *.tar.gz"
diff --git a/chromeos-base/autotest-tests-power/autotest-tests-power-9999.ebuild b/chromeos-base/autotest-tests-power/autotest-tests-power-9999.ebuild
index c92090e..3b66dc9 100644
--- a/chromeos-base/autotest-tests-power/autotest-tests-power-9999.ebuild
+++ b/chromeos-base/autotest-tests-power/autotest-tests-power-9999.ebuild
@@ -31,6 +31,7 @@
 	+tests_power_BacklightControl
 	+tests_power_BacklightSuspend
 	+tests_power_BatteryCharge
+	+tests_power_BatteryDesignCapacity
 	+tests_power_CheckAC
 	+tests_power_CheckAfterSuspend
 	+tests_power_CPUFreq
diff --git a/chromeos-base/autotest-tests-security/autotest-tests-security-0.0.1-r3303.ebuild b/chromeos-base/autotest-tests-security/autotest-tests-security-0.0.1-r3303.ebuild
deleted file mode 100644
index a8d9865..0000000
--- a/chromeos-base/autotest-tests-security/autotest-tests-security-0.0.1-r3303.ebuild
+++ /dev/null
@@ -1,54 +0,0 @@
-# Copyright 2014 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-CROS_WORKON_COMMIT="37ae74af76030e8b8c599d636c17dccd4be80feb"
-CROS_WORKON_TREE="5ead5abe2e6a4f51e0785d23469ea9886901b155"
-CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
-CROS_WORKON_LOCALNAME="third_party/autotest/files"
-
-inherit cros-workon autotest libchrome
-
-DESCRIPTION="Security autotests"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
-SRC_URI=""
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="*"
-# Enable autotest by default.
-IUSE="+autotest -chromeless_tests -chromeless_tty containers +seccomp selinux"
-
-RDEPEND="
-	!<chromeos-base/autotest-tests-0.0.3
-	containers? (
-		tests_security_Libcontainer? (
-			chromeos-base/minijail
-			chromeos-base/libcontainer
-		)
-	)
-"
-DEPEND="${RDEPEND}"
-
-IUSE_TESTS="
-	!chromeless_tty? (
-		!chromeless_tests? (
-			+tests_security_RendererSandbox
-			+tests_security_SessionManagerDbusEndpoints
-		)
-	)
-	seccomp? (
-		+tests_security_SeccompSyscallFilters
-	)
-	containers? ( +tests_security_Libcontainer )
-	+tests_security_NosymfollowMountOption
-	+tests_security_ProcessManagementPolicy
-	+tests_security_RootfsOwners
-	+tests_security_SysVIPC
-	x86? ( +tests_security_x86Registers )
-	amd64? ( +tests_security_x86Registers )
-"
-
-IUSE="${IUSE} ${IUSE_TESTS}"
-
-AUTOTEST_FILE_MASK="*.a *.tar.bz2 *.tbz2 *.tgz *.tar.gz"
diff --git a/chromeos-base/autotest-tests-security/autotest-tests-security-0.0.1-r3305.ebuild b/chromeos-base/autotest-tests-security/autotest-tests-security-0.0.1-r3305.ebuild
new file mode 100644
index 0000000..9d6aae3
--- /dev/null
+++ b/chromeos-base/autotest-tests-security/autotest-tests-security-0.0.1-r3305.ebuild
@@ -0,0 +1,54 @@
+# Copyright 2014 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+CROS_WORKON_COMMIT="99e5f02e736eab3dd1445834c1f26f46db85e452"
+CROS_WORKON_TREE="54ff09d88d01f0b74b519616c18d7e964daafc53"
+CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
+CROS_WORKON_LOCALNAME="third_party/autotest/files"
+
+inherit cros-workon autotest libchrome
+
+DESCRIPTION="Security autotests"
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
+SRC_URI=""
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="*"
+# Enable autotest by default.
+IUSE="+autotest -chromeless_tests -chromeless_tty containers +seccomp selinux"
+
+RDEPEND="
+	!<chromeos-base/autotest-tests-0.0.3
+	containers? (
+		tests_security_Libcontainer? (
+			chromeos-base/minijail
+			chromeos-base/libcontainer
+		)
+	)
+"
+DEPEND="${RDEPEND}"
+
+IUSE_TESTS="
+	!chromeless_tty? (
+		!chromeless_tests? (
+			+tests_security_RendererSandbox
+			+tests_security_SessionManagerDbusEndpoints
+		)
+	)
+	seccomp? (
+		+tests_security_SeccompSyscallFilters
+	)
+	containers? ( +tests_security_Libcontainer )
+	+tests_security_NosymfollowMountOption
+	+tests_security_ProcessManagementPolicy
+	+tests_security_RootfsOwners
+	+tests_security_SysVIPC
+	x86? ( +tests_security_x86Registers )
+	amd64? ( +tests_security_x86Registers )
+"
+
+IUSE="${IUSE} ${IUSE_TESTS}"
+
+AUTOTEST_FILE_MASK="*.a *.tar.bz2 *.tbz2 *.tgz *.tar.gz"
diff --git a/chromeos-base/autotest-tests-shill/autotest-tests-shill-0.0.1-r3231.ebuild b/chromeos-base/autotest-tests-shill/autotest-tests-shill-0.0.1-r3231.ebuild
deleted file mode 100644
index 83a0b8f..0000000
--- a/chromeos-base/autotest-tests-shill/autotest-tests-shill-0.0.1-r3231.ebuild
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright 2014 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-CROS_WORKON_COMMIT="1991f6bff55fa8bed367e7fd629a56f0c8ee4ab6"
-CROS_WORKON_TREE="dade62ef55fc7299cc303101e72215df02cbb3a7"
-CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
-CROS_WORKON_LOCALNAME="third_party/autotest/files"
-
-inherit cros-workon autotest
-
-DESCRIPTION="shill autotests"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
-SRC_URI=""
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="*"
-# Enable autotest by default.
-IUSE="+autotest +tpm tpm2"
-
-RDEPEND="
-	!<chromeos-base/autotest-tests-0.0.3
-	chromeos-base/shill-test-scripts
-"
-DEPEND="${RDEPEND}"
-
-IUSE_TESTS="
-	+tests_network_DhcpClasslessStaticRoute
-	+tests_network_DhcpFailureWithStaticIP
-	+tests_network_DhcpNak
-	+tests_network_DhcpNegotiationSuccess
-	+tests_network_DhcpNegotiationTimeout
-	+tests_network_DhcpNonAsciiParameter
-	+tests_network_DhcpRenew
-	+tests_network_DhcpRenewWithOptionSubset
-	+tests_network_DhcpRequestHostName
-	+tests_network_DhcpStaticIP
-	+tests_network_DhcpVendorEncapsulatedOptions
-	+tests_network_DhcpWpadNegotiation
-	+tests_network_WiFiInvalidParameters
-	+tests_network_WiFiResume
-	+tests_network_WlanPresent
-	+tests_network_WlanRegulatory
-	+tests_network_WlanHasIP
-	tpm? ( +tests_network_VPNConnect )
-	tpm2? ( +tests_network_VPNConnect )
-"
-
-IUSE="${IUSE} ${IUSE_TESTS}"
-
-AUTOTEST_FILE_MASK="*.a *.tar.bz2 *.tbz2 *.tgz *.tar.gz"
diff --git a/chromeos-base/autotest-tests-shill/autotest-tests-shill-0.0.1-r3233.ebuild b/chromeos-base/autotest-tests-shill/autotest-tests-shill-0.0.1-r3233.ebuild
new file mode 100644
index 0000000..9657be2
--- /dev/null
+++ b/chromeos-base/autotest-tests-shill/autotest-tests-shill-0.0.1-r3233.ebuild
@@ -0,0 +1,52 @@
+# Copyright 2014 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+CROS_WORKON_COMMIT="66f00db8190f4927b1cca8203cc30eeefe2cc353"
+CROS_WORKON_TREE="8b8c2ee1306693fc53479eeeb8eab79cd41ba97e"
+CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
+CROS_WORKON_LOCALNAME="third_party/autotest/files"
+
+inherit cros-workon autotest
+
+DESCRIPTION="shill autotests"
+HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
+SRC_URI=""
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="*"
+# Enable autotest by default.
+IUSE="+autotest +tpm tpm2"
+
+RDEPEND="
+	!<chromeos-base/autotest-tests-0.0.3
+	chromeos-base/shill-test-scripts
+"
+DEPEND="${RDEPEND}"
+
+IUSE_TESTS="
+	+tests_network_DhcpClasslessStaticRoute
+	+tests_network_DhcpFailureWithStaticIP
+	+tests_network_DhcpNak
+	+tests_network_DhcpNegotiationSuccess
+	+tests_network_DhcpNegotiationTimeout
+	+tests_network_DhcpNonAsciiParameter
+	+tests_network_DhcpRenew
+	+tests_network_DhcpRenewWithOptionSubset
+	+tests_network_DhcpRequestHostName
+	+tests_network_DhcpStaticIP
+	+tests_network_DhcpVendorEncapsulatedOptions
+	+tests_network_DhcpWpadNegotiation
+	+tests_network_WiFiInvalidParameters
+	+tests_network_WiFiResume
+	+tests_network_WlanPresent
+	+tests_network_WlanRegulatory
+	+tests_network_WlanHasIP
+	tpm? ( +tests_network_VPNConnect )
+	tpm2? ( +tests_network_VPNConnect )
+"
+
+IUSE="${IUSE} ${IUSE_TESTS}"
+
+AUTOTEST_FILE_MASK="*.a *.tar.bz2 *.tbz2 *.tgz *.tar.gz"
diff --git a/chromeos-base/autotest-tests-smbprovider/autotest-tests-smbprovider-0.0.1-r8.ebuild b/chromeos-base/autotest-tests-smbprovider/autotest-tests-smbprovider-0.0.1-r8.ebuild
deleted file mode 100644
index 3199d57..0000000
--- a/chromeos-base/autotest-tests-smbprovider/autotest-tests-smbprovider-0.0.1-r8.ebuild
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright 2018 The Chromium OS Authors. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-CROS_WORKON_COMMIT="edf345c66d0eece43912c9c813a24825fdd338dd"
-CROS_WORKON_TREE="0403c48eb6c76d705968f240a92353631701a279"
-CROS_WORKON_PROJECT="chromiumos/third_party/autotest"
-CROS_WORKON_LOCALNAME="third_party/autotest/files"
-
-inherit cros-workon autotest
-
-DESCRIPTION="SmbProvider Autotests"
-HOMEPAGE="https://chromium.googlesource.com/chromiumos/third_party/autotest/"
-SRC_URI=""
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="*"
-# Enable autotest by default.
-IUSE="${IUSE} +autotest"
-
-RDEPEND="
-	chromeos-base/chromeos-chrome
-	chromeos-base/autotest-chrome
-"
-
-DEPEND="${RDEPEND}"
-
-IUSE_TESTS="
-	+tests_enterprise_SmbProviderDaemon
-"
-
-IUSE="${IUSE} ${IUSE_TESTS}"
-
-AUTOTEST_FILE_MASK="*.a *.tar.bz2 *.tbz2 *.tgz *.tar.gz"