Cheers, I'm pretty new at offering patches, and I'm not well convinced this one fits the global way user-setup is designed. Please, any comment is welcome.
Another solution would be, I guess, to temporary change the user debconf/priority to medium, and to revert it to its previous state after the choice. -- PEB
diff --git a/user-setup-ask b/user-setup-ask index 6176930..06e4f56 100755 --- a/user-setup-ask +++ b/user-setup-ask @@ -30,6 +30,7 @@ set_special_users() { # Main loop starts here. Use a state machine to allow jumping back to # previous questions. STATE=0 +USER_RETRY=false while :; do case "$STATE" in 0) @@ -97,7 +98,11 @@ while :; do # to sudo to root db_set passwd/make-user true elif ! is_system_user; then - db_input medium passwd/make-user || true + if [ "$USER_RETRY" = true ]; then + db_input critical passwd/make-user || true + else + db_input medium passwd/make-user || true + fi fi ;; 4) @@ -135,6 +140,10 @@ while :; do # Verify the user name, loop with message if bad. db_get passwd/username USER="$RET" + if test -z $RET; then + STATE=3 + USER_RETRY=true + continue if ! LC_ALL=C expr "$USER" : '[a-z][-a-z0-9]*$' >/dev/null || \ ! LC_ALL=C expr length "$USER" '<=' 32 >/dev/null; then db_fset passwd/username seen false