[PATCH 3/5] acct-user.eclass: simplify usermod error handling

Mike Gilbert <[email protected]> Fri, 31 Jul 2026 14:06:01 -0400
Newsgroups gmane.linux.gentoo.devel
Message-ID <[email protected]>
We no longer attempt to unlock accounts with blank passwords, so we can
drop the code responsible for hiding that warning.

Signed-off-by: Mike Gilbert <[email protected]>
---
 eclass/acct-user.eclass | 40 +++++++++++++++++-----------------------
 1 file changed, 17 insertions(+), 23 deletions(-)

diff --git a/eclass/acct-user.eclass b/eclass/acct-user.eclass
index 0c8ba49bb837..273130ea19af 100644
--- a/eclass/acct-user.eclass
+++ b/eclass/acct-user.eclass
@@ -445,30 +445,24 @@ acct-user_pkg_postinst() {
 	fi
 
 	elog "Updating user ${ACCT_USER_NAME}"
-	# usermod outputs a warning if unlocking the account would result in an
-	# empty password. Hide stderr in a text file and display it if usermod fails.
-	usermod "${opts[@]}" "${ACCT_USER_NAME}" 2>"${T}/usermod-error.log"
+	usermod "${opts[@]}" "${ACCT_USER_NAME}"
 	local status=$?
-	if [[ ${status} -ne 0 ]]; then
-		cat "${T}/usermod-error.log" >&2
-		if [[ ${status} -eq 8 ]]; then
-			# usermod refused to update the home directory
-			# for a uid with active processes.
-			eerror "Failed to update user ${ACCT_USER_NAME}"
-			eerror "This user currently has one or more running processes."
-			eerror "Please update this user manually with the following command:"
-
-			# Surround opts with quotes.
-			# With bash-5 (EAPI 8), we can use "${opts[@]@Q}" instead.
-			local q="'"
-			local optsq=( "${opts[@]/#/${q}}" )
-			optsq=( "${optsq[@]/%/${q}}" )
-
-			eerror "  usermod ${optsq[*]} ${ACCT_USER_NAME}"
-		else
-			eerror "$(<"${T}/usermod-error.log")"
-			die "usermod failed with status ${status}"
-		fi
+	if [[ ${status} -eq 8 ]]; then
+		# usermod refused to update the home directory
+		# for a uid with active processes.
+		eerror "Failed to update user ${ACCT_USER_NAME}"
+		eerror "This user currently has one or more running processes."
+		eerror "Please update this user manually with the following command:"
+
+		# Surround opts with quotes.
+		# With bash-5 (EAPI 8), we can use "${opts[@]@Q}" instead.
+		local q="'"
+		local optsq=( "${opts[@]/#/${q}}" )
+		optsq=( "${optsq[@]/%/${q}}" )
+
+		eerror "  usermod ${optsq[*]} ${ACCT_USER_NAME}"
+	elif [[ ${status} -ne 0 ]]; then
+		die "usermod failed with status ${status}"
 	fi
 }
 
-- 
2.55.0