diff options
author | David Kaspar [Dee'Kej] <dkaspar@redhat.com> | 2018-08-03 12:24:23 +0200 |
---|---|---|
committer | Dee'Kej <deekej@linuxmail.org> | 2018-08-03 13:06:43 +0200 |
commit | 5936ddaea95efcbff1a925b2d675c6e0c50e6f45 (patch) | |
tree | af8dd18391fcfe27e105a0b95107406897972737 /src | |
parent | 335a6a84f618515c6902d374e391a301d0f43f6c (diff) | |
download | initscripts-5936ddaea95efcbff1a925b2d675c6e0c50e6f45.tar initscripts-5936ddaea95efcbff1a925b2d675c6e0c50e6f45.tar.gz initscripts-5936ddaea95efcbff1a925b2d675c6e0c50e6f45.tar.bz2 initscripts-5936ddaea95efcbff1a925b2d675c6e0c50e6f45.tar.xz initscripts-5936ddaea95efcbff1a925b2d675c6e0c50e6f45.zip |
consoletype/genhostid/usleep: allow disabling of deprecation warnings
... by checking existence of /etc/sysconfig/disable-deprecation-warnings
Diffstat (limited to 'src')
-rw-r--r-- | src/consoletype.c | 17 | ||||
-rw-r--r-- | src/genhostid.c | 16 | ||||
-rw-r--r-- | src/usleep.c | 16 |
3 files changed, 43 insertions, 6 deletions
diff --git a/src/consoletype.c b/src/consoletype.c index dc3bd119..20ce5a36 100644 --- a/src/consoletype.c +++ b/src/consoletype.c @@ -16,6 +16,7 @@ * */ +#include <errno.h> #include <fcntl.h> #include <stdio.h> #include <string.h> @@ -31,8 +32,19 @@ int main(int argc, char **argv) int maj, min, ret = 0, fg = -1; struct stat sb; - fprintf(stderr, "warning: consoletype is now deprecated, and will be removed in the near future!\n" - "warning: use tty (1) instead! More info: 'man 1 tty'\n"); + errno = 0; + + /* + * access() returns -1 if the file does not exist or upon error. + * We should display the deprecation warning only when we are sure the + * file does not exist. In case of different error, silently ignore it + * and do not print anything - to not pollute users' scripts unnecessarily. + */ + if (access("/etc/sysconfig/disable-deprecation-warnings", F_OK) == -1 + && errno == ENOENT) { + fprintf(stderr, "warning: consoletype is now deprecated, and will be removed in the near future!\n" + "warning: use tty (1) instead! More info: 'man 1 tty'\n"); + } fstat(0, &sb); maj = major(sb.st_rdev); @@ -47,6 +59,7 @@ int main(int argc, char **argv) char buf[65536]; fd = open("/proc/tty/drivers",O_RDONLY); + read(fd, buf, 65535); if (strstr(buf,"vioconsole /dev/tty")) { type = "vio"; diff --git a/src/genhostid.c b/src/genhostid.c index 79dcb92e..e17b9d7b 100644 --- a/src/genhostid.c +++ b/src/genhostid.c @@ -15,6 +15,7 @@ * */ +#include <errno.h> #include <fcntl.h> #include <stdlib.h> #include <time.h> @@ -27,8 +28,19 @@ int main (void) struct stat st; long int n; - fprintf(stderr, "warning: genhostid is now deprecated, and will be removed in the near future!\n" - "warning: use systemd-machine-id-setup (1) instead! More info: 'man 5 machine-id'\n"); + errno = 0; + + /* + * access() returns -1 if the file does not exist or upon error. + * We should display the deprecation warning only when we are sure the + * file does not exist. In case of different error, silently ignore it + * and do not print anything - to not pollute users' scripts unnecessarily. + */ + if (access("/etc/sysconfig/disable-deprecation-warnings", F_OK) == -1 + && errno == ENOENT) { + fprintf(stderr, "warning: genhostid is now deprecated, and will be removed in the near future!\n" + "warning: use systemd-machine-id-setup (1) instead! More info: 'man 5 machine-id'\n"); + } /* * NOTE: gethostid() always returns 32-bit identifier, and st_size field diff --git a/src/usleep.c b/src/usleep.c index 58ab2d79..2c8ea33f 100644 --- a/src/usleep.c +++ b/src/usleep.c @@ -21,6 +21,7 @@ */ +#include <errno.h> #include <unistd.h> #include <stdlib.h> #include <string.h> @@ -77,8 +78,19 @@ int main(const int argc, const char **argv) { else count = strtoul(countStr, NULL, 0); - fprintf(stderr, "warning: usleep is deprecated, and will be removed in near future!\n" - "warning: use \"sleep %.7g\" instead...\n", count / 1e6); + errno = 0; + + /* + * access() returns -1 if the file does not exist or upon error. + * We should display the deprecation warning only when we are sure the + * file does not exist. In case of different error, silently ignore it + * and do not print anything - to not pollute users' scripts unnecessarily. + */ + if (access("/etc/sysconfig/disable-deprecation-warnings", F_OK) == -1 + && errno == ENOENT) { + fprintf(stderr, "warning: usleep is deprecated, and will be removed in near future!\n" + "warning: use \"sleep %.7g\" instead...\n", count / 1e6); + } usleep(count); return 0; |