Merge commit 'c9322db9ad0a56810d4bc4d5131b79ca1b7c4225' into sdk-update

Update to CrOS 15457.0.0

BUG=b/277779682
TEST=presubmit
RELEASE_NOTE=None

Change-Id: I556ea2296a9bb0e8b1599a37de3a8789dc61b9b6
diff --git a/acct-group/dhcp/dhcp-0.0.1.ebuild b/acct-group/dhcp/dhcp-0.0.1.ebuild
new file mode 100644
index 0000000..7efa28b
--- /dev/null
+++ b/acct-group/dhcp/dhcp-0.0.1.ebuild
@@ -0,0 +1,15 @@
+# Copyright 2022 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+SLOT="0"
+KEYWORDS="*"
+
+inherit user
+
+# TODO(crbug.com/1026816): this ebuild is just a placeholder (to satisfy Gentoo
+# dependencies) while we wait to implement acct-{group,user} properly.
+pkg_setup() {
+	enewgroup dhcp
+}
diff --git a/acct-group/ntp/ntp-0.0.1.ebuild b/acct-group/ntp/ntp-0.0.1.ebuild
new file mode 100644
index 0000000..800b4ac
--- /dev/null
+++ b/acct-group/ntp/ntp-0.0.1.ebuild
@@ -0,0 +1,15 @@
+# Copyright 2021 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+SLOT="0"
+KEYWORDS="*"
+
+inherit user
+
+# TODO(crbug.com/1026816): this ebuild is just a placeholder (to satisfy Gentoo
+# dependencies) while we wait to implement acct-{group,user} properly.
+pkg_setup() {
+	enewgroup ntp
+}
diff --git a/acct-user/dhcp/dhcp-0.0.1.ebuild b/acct-user/dhcp/dhcp-0.0.1.ebuild
new file mode 100644
index 0000000..983a6d9
--- /dev/null
+++ b/acct-user/dhcp/dhcp-0.0.1.ebuild
@@ -0,0 +1,15 @@
+# Copyright 2022 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+SLOT="0"
+KEYWORDS="*"
+
+inherit user
+
+# TODO(crbug/1026816): this is a placeholder (to satisfy Gentoo
+#  openssh dependencies) while acct-{group,user} are implemented.
+pkg_setup() {
+	enewuser dhcp
+}
diff --git a/acct-user/ntp/ntp-0.0.1.ebuild b/acct-user/ntp/ntp-0.0.1.ebuild
new file mode 100644
index 0000000..4a7f98d
--- /dev/null
+++ b/acct-user/ntp/ntp-0.0.1.ebuild
@@ -0,0 +1,15 @@
+# Copyright 2020 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+SLOT="0"
+KEYWORDS="*"
+
+inherit user
+
+# TODO(crbug/1026816): this is a placeholder (to satisfy Gentoo
+#  openssh dependencies) while acct-{group,user} are implemented.
+pkg_setup() {
+	enewuser ntp
+}
diff --git a/eclass/git-2.eclass b/eclass/git-2.eclass
index b938345..e230983 100644
--- a/eclass/git-2.eclass
+++ b/eclass/git-2.eclass
@@ -329,12 +329,17 @@
 	EGIT_REPO_URI_SELECTED=""
 	for repo_uri in ${EGIT_REPO_URI}; do
 		debug-print "${FUNCNAME}: git clone ${EGIT_LOCAL_OPTIONS} \"${repo_uri}\" \"${EGIT_DIR}\""
-		if git clone ${EGIT_LOCAL_OPTIONS} "${repo_uri}" "${EGIT_DIR}"; then
-			# global variable containing the repo_name we will be using
-			debug-print "${FUNCNAME}: EGIT_REPO_URI_SELECTED=\"${repo_uri}\""
-			EGIT_REPO_URI_SELECTED="${repo_uri}"
-			break
-		fi
+		local retry=3
+		while [[ $retry != 0 ]]; do
+			if git clone ${EGIT_LOCAL_OPTIONS} "${repo_uri}" "${EGIT_DIR}"; then
+				# global variable containing the repo_name we will be using
+				debug-print "${FUNCNAME}: EGIT_REPO_URI_SELECTED=\"${repo_uri}\""
+				EGIT_REPO_URI_SELECTED="${repo_uri}"
+				break
+			fi
+			retry=$(($retry-1))
+		done
+		[[ -n ${EGIT_REPO_URI_SELECTED} ]] && break
 	done
 
 	[[ ${EGIT_REPO_URI_SELECTED} ]] \
diff --git a/eclass/git-r3.eclass b/eclass/git-r3.eclass
index 3fb1ccf..299e69c 100644
--- a/eclass/git-r3.eclass
+++ b/eclass/git-r3.eclass
@@ -743,7 +743,19 @@
 
 			set -- "${fetch_command[@]}"
 			echo "${@}" >&2
-			"${@}" || continue
+
+			local retry=3
+			local repo_fetched=false
+
+			while [[ $retry != 0 ]]; do
+				if "${@}"; then
+					repo_fetched=true
+					break
+				fi
+				retry=$(($retry-1))
+			done
+
+			[[ ${repo_fetched} ]] || continue
 
 			if [[ ${clone_type} == mirror || ${fetch_l} == HEAD ]]; then
 				# update our HEAD to match our remote HEAD ref
diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass
index ab31750..01836a6 100644
--- a/eclass/python-utils-r1.eclass
+++ b/eclass/python-utils-r1.eclass
@@ -178,7 +178,7 @@
 			python_is_python3 "${impl}" && return 0
 			return
 		# unify value style to allow lax matching
-		elif [[ ${impl/./_} == ${pattern/./_} ]]; then
+		elif [[ ${impl/./_} == ${pattern/./_} || ${impl} == python${pattern/./_} ]]; then
 			return 0
 		fi
 	done
@@ -803,13 +803,24 @@
 		d=${sitedir#${SYSROOT}}/${python_moduleroot//.//}
 	fi
 
-	(
-		insopts -m 0644
-		insinto "${d}"
-		doins -r "${@}" || return ${?}
-	)
-
-	python_optimize "${ED%/}/${d}"
+	if [[ ${EBUILD_PHASE} == install ]]; then
+		(
+			insopts -m 0644
+			insinto "${d}"
+			doins -r "${@}" || return ${?}
+		)
+		python_optimize "${ED%/}/${d}"
+	elif [[ -n ${BUILD_DIR} ]]; then
+		local dest=${BUILD_DIR}/install${EPREFIX}/${d}
+		mkdir -p "${dest}" || die
+		cp -pR "${@}" "${dest}/" || die
+		(
+			cd "${dest}" &&
+			chmod -R a+rX "${@##*/}"
+		) || die
+	else
+		die "${FUNCNAME} can only be used in src_install or with BUILD_DIR set"
+	fi
 }
 
 # @FUNCTION: python_doheader
diff --git a/profiles/base/accounts/group/render b/profiles/base/accounts/group/render
new file mode 100644
index 0000000..8da7f42
--- /dev/null
+++ b/profiles/base/accounts/group/render
@@ -0,0 +1,3 @@
+group:render
+gid:700
+users:
diff --git a/profiles/base/accounts/group/sgx b/profiles/base/accounts/group/sgx
new file mode 100644
index 0000000..7242f24
--- /dev/null
+++ b/profiles/base/accounts/group/sgx
@@ -0,0 +1,3 @@
+group:sgx
+gid:701
+users: