agetty: support /usr/lib/os-release too
http://www.freedesktop.org/software/systemd/man/os-release.html The file /etc/os-release takes precedence over /usr/lib/os-release. Applications should check for the former, and exclusively use its data if it exists, and only fall back to /usr/lib/os-release if it is missing. Reported-by: Dimitri John Ledkov <dimitri.j.ledkov@intel.com> Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
parent
ec27f47048
commit
b28842ae67
|
@ -79,7 +79,9 @@
|
|||
|
||||
/* used in term-utils/agetty.c */
|
||||
#define _PATH_ISSUE "/etc/issue"
|
||||
#define _PATH_OS_RELEASE "/etc/os-release"
|
||||
#define _PATH_OS_RELEASE_ETC "/etc/os-release"
|
||||
#define _PATH_OS_RELEASE_USR "/usr/lib/os-release"
|
||||
|
||||
#define _PATH_NUMLOCK_ON _PATH_LOCALSTATEDIR "/numlock-on"
|
||||
|
||||
#define _PATH_LOGINDEFS "/etc/login.defs"
|
||||
|
|
|
@ -338,8 +338,9 @@ Insert the system name, the name of the operating system. Same as `uname \-s'.
|
|||
See also \\S escape code.
|
||||
.TP
|
||||
S or S{VARIABLE}
|
||||
Insert the VARIABLE data from \fI/etc/os-release\fP. If the VARIABLE argument
|
||||
is not specified then use PRETTY_NAME from the file or the system name (see \\s).
|
||||
Insert the VARIABLE data from \fI/etc/os-release\fP, if the file does not exist
|
||||
then fallback to \fI/usr/lib/os-release\fP. If the VARIABLE argument is not
|
||||
specified then use PRETTY_NAME from the file or the system name (see \\s).
|
||||
This escape code allows to keep \fI/etc/issue\fP distribution and release
|
||||
independent. Note that \\S{ANSI_COLOR} is converted to the real terminal
|
||||
escape sequence.
|
||||
|
@ -401,7 +402,7 @@ the system status file.
|
|||
.B /etc/issue
|
||||
printed before the login prompt.
|
||||
.TP
|
||||
.B /etc/os-release
|
||||
.B /etc/os-release /usr/lib/os-release
|
||||
operating system identification data.
|
||||
.TP
|
||||
.B /dev/console
|
||||
|
|
|
@ -1444,10 +1444,13 @@ static char *read_os_release(struct options *op, const char *varname)
|
|||
|
||||
/* read the file only once */
|
||||
if (!op->osrelease) {
|
||||
fd = open(_PATH_OS_RELEASE, O_RDONLY);
|
||||
fd = open(_PATH_OS_RELEASE_ETC, O_RDONLY);
|
||||
if (fd == -1) {
|
||||
log_warn(_("cannot open %s: %m"), _PATH_OS_RELEASE);
|
||||
return NULL;
|
||||
fd = open(_PATH_OS_RELEASE_USR, O_RDONLY);
|
||||
if (fd == -1) {
|
||||
log_warn(_("cannot open os-release file"));
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
if (fstat(fd, &st) < 0 || st.st_size > 4 * 1024 * 1024)
|
||||
|
|
Loading…
Reference in New Issue