Currently we get MAXNAMELEN from glibc's LOGIN_NAME_MAX, if available,
and sysconf otherwise. But the maximum username length supported by
glibc and the kernel is actually way larger than the maximum length that
actually works in practice. On Linux, anything larger than 32 characters
is not going to fit into utmp, and will therefore be rejected by
useradd. Then gnome-control-center will spit out a confusing error
message dialog.
Let's spare our users from that.
useradd (in shadow-utils) gets its max name size from the following
magic:
/* Maximum length of usernames */
#ifdef HAVE_UTMPX_H
# include <utmpx.h>
# define USER_NAME_MAX_LENGTH (sizeof (((struct utmpx *)NULL)->ut_user))
#else
# include <utmp.h>
# ifdef HAVE_STRUCT_UTMP_UT_USER
# define USER_NAME_MAX_LENGTH (sizeof (((struct utmp *)NULL)->ut_user))
# else
# ifdef HAVE_STRUCT_UTMP_UT_NAME
# define USER_NAME_MAX_LENGTH (sizeof (((struct utmp *)NULL)->ut_name))
# else
# define USER_NAME_MAX_LENGTH 32
# endif
# endif
#endif
It's more work than necessary. utmpx is standardized by POSIX (it's
actually an XSI extension), whereas utmp is not, so let's just use
utmpx. This ought to work on at least FreeBSD as well. And if any free
operating systems that care about GNOME don't have utmpx yet, no doubt
they'll send patches.
https://bugzilla.gnome.org/show_bug.cgi?id=724193
We assume that we only generate valid usernames, so make sure they're
short enough to be used, else we'll display a dialog with a meaningless
error message when useradd fails.
Note that this commit doesn't completely fix the bug, as our definition
of MAXNAMELEN is different from useradd's.
https://bugzilla.gnome.org/show_bug.cgi?id=766401
Besides using deprecated gtk+ API this color is actually fully
transparent in the current GNOME theme, meaning that the arrow ended
up looking smaller than intended.
https://bugzilla.gnome.org/show_bug.cgi?id=740986
The period is appended at the end of sentences after there are
translated. However some languages might not use periods at the
end of sentences. This patch changes the texts directly.
This prevents users from creating an account with a full name consisting
solely of whitespace, e.g., space and tab characters. Having "invisible"
real names can cause confusion on the login screen.
https://bugzilla.gnome.org/show_bug.cgi?id=699940
Some systems seem to disallow them in usernames, but more
importantly, the proposals look just wrong for abbreviated
middle initials with a period.
https://bugzilla.gnome.org/show_bug.cgi?id=650777