summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--log.c148
-rw-r--r--misc.h2
-rw-r--r--nvidia-installer.c2
-rw-r--r--nvidia-installer.h2
-rw-r--r--stream-ui.c4
-rw-r--r--user-interface.c24
-rw-r--r--version.mk2
7 files changed, 48 insertions, 136 deletions
diff --git a/log.c b/log.c
index 28b54c2..c2997aa 100644
--- a/log.c
+++ b/log.c
@@ -76,10 +76,11 @@ static FILE *log_file_stream;
* and the state of all noteworthy options.
*/
-void log_init(Options *op)
+void log_init(Options *op, int argc, char * const argv[])
{
time_t now;
char *path;
+ int i;
if (!op->logging) return;
@@ -106,122 +107,10 @@ void log_init(Options *op)
log_printf(op, TRUE, NULL, "PATH: %s", STRSTR(path));
log_printf(op, TRUE, NULL, "");
- log_printf(op, TRUE, NULL, "option status:");
- log_printf(op, TRUE, NULL, " license pre-accepted : %s",
- BOOLSTR(op->accept_license));
- log_printf(op, TRUE, NULL, " update : %s",
- BOOLSTR(op->update));
- log_printf(op, TRUE, NULL, " force update : %s",
- BOOLSTR(op->force_update));
- log_printf(op, TRUE, NULL, " expert : %s",
- BOOLSTR(op->expert));
- log_printf(op, TRUE, NULL, " uninstall : %s",
- BOOLSTR(op->uninstall));
- log_printf(op, TRUE, NULL, " driver info : %s",
- BOOLSTR(op->driver_info));
- log_printf(op, TRUE, NULL, " precompiled interfaces : %s",
- BOOLSTR(!op->no_precompiled_interface));
- log_printf(op, TRUE, NULL, " no ncurses color : %s",
- BOOLSTR(op->no_ncurses_color));
- log_printf(op, TRUE, NULL, " query latest version : %s",
- BOOLSTR(op->latest));
- log_printf(op, TRUE, NULL, " no questions : %s",
- BOOLSTR(op->no_questions));
- log_printf(op, TRUE, NULL, " silent : %s",
- BOOLSTR(op->silent));
- log_printf(op, TRUE, NULL, " no recursion : %s",
- BOOLSTR(op->no_recursion));
- log_printf(op, TRUE, NULL, " no backup : %s",
- BOOLSTR(op->no_backup));
- log_printf(op, TRUE, NULL, " kernel module only : %s",
- BOOLSTR(op->kernel_module_only));
- log_printf(op, TRUE, NULL, " sanity : %s",
- BOOLSTR(op->sanity));
- log_printf(op, TRUE, NULL, " add this kernel : %s",
- BOOLSTR(op->add_this_kernel));
- log_printf(op, TRUE, NULL, " no runlevel check : %s",
- BOOLSTR(op->no_runlevel_check));
- log_printf(op, TRUE, NULL, " no network : %s",
- BOOLSTR(op->no_network));
- log_printf(op, TRUE, NULL, " no ABI note : %s",
- BOOLSTR(op->no_abi_note));
- log_printf(op, TRUE, NULL, " no RPMs : %s",
- BOOLSTR(op->no_rpms));
- log_printf(op, TRUE, NULL, " no kernel module : %s",
- BOOLSTR(op->no_kernel_module));
- log_printf(op, TRUE, NULL, " force SELinux : %s",
- SELINUXSTR(op->selinux_option));
- log_printf(op, TRUE, NULL, " no X server check : %s",
- BOOLSTR(op->no_x_check));
- log_printf(op, TRUE, NULL, " no cc version check : %s",
- BOOLSTR(op->ignore_cc_version_check));
- log_printf(op, TRUE, NULL, " run distro scripts : %s",
- BOOLSTR(op->run_distro_scripts));
- log_printf(op, TRUE, NULL, " no nouveau check : %s",
- BOOLSTR(op->no_nouveau_check));
- log_printf(op, TRUE, NULL, " run nvidia-xconfig : %s",
- BOOLSTR(op->run_nvidia_xconfig));
- log_printf(op, TRUE, NULL, " sigwinch work around : %s",
- BOOLSTR(op->sigwinch_workaround));
- log_printf(op, TRUE, NULL, " force tls : %s",
- TLSSTR(op->which_tls));
-#if defined(NV_X86_64)
- log_printf(op, TRUE, NULL, " force compat32 tls : %s",
- TLSSTR(op->which_tls_compat32));
-#endif
- log_printf(op, TRUE, NULL, " X install prefix : %s",
- STRSTR(op->x_prefix));
- log_printf(op, TRUE, NULL, " X library install path : %s",
- STRSTR(op->x_library_path));
- log_printf(op, TRUE, NULL, " X module install path : %s",
- STRSTR(op->x_module_path));
- log_printf(op, TRUE, NULL, " OpenGL install prefix : %s",
- STRSTR(op->opengl_prefix));
- log_printf(op, TRUE, NULL, " OpenGL install libdir : %s",
- STRSTR(op->opengl_libdir));
-#if defined(NV_X86_64)
- log_printf(op, TRUE, NULL, " compat32 install chroot : %s",
- STRSTR(op->compat32_chroot));
- log_printf(op, TRUE, NULL, " compat32 install prefix : %s",
- STRSTR(op->compat32_prefix));
- log_printf(op, TRUE, NULL, " compat32 install libdir : %s",
- STRSTR(op->compat32_libdir));
-#endif
- log_printf(op, TRUE, NULL, " utility install prefix : %s",
- STRSTR(op->utility_prefix));
- log_printf(op, TRUE, NULL, " utility install libdir : %s",
- STRSTR(op->utility_libdir));
- log_printf(op, TRUE, NULL, " installer prefix : %s",
- STRSTR(op->installer_prefix));
- log_printf(op, TRUE, NULL, " doc install prefix : %s",
- STRSTR(op->documentation_prefix));
- log_printf(op, TRUE, NULL, " kernel name : %s",
- STRSTR(op->kernel_name));
- log_printf(op, TRUE, NULL, " kernel include path : %s",
- STRSTR(op->kernel_include_path));
- log_printf(op, TRUE, NULL, " kernel source path : %s",
- STRSTR(op->kernel_source_path));
- log_printf(op, TRUE, NULL, " kernel output path : %s",
- STRSTR(op->kernel_output_path));
- log_printf(op, TRUE, NULL, " kernel install path : %s",
- STRSTR(op->kernel_module_installation_path));
- log_printf(op, TRUE, NULL, " precompiled kernel interfaces path : %s",
- STRSTR(op->precompiled_kernel_interfaces_path));
- log_printf(op, TRUE, NULL, " precompiled kernel interfaces url : %s",
- STRSTR(op->precompiled_kernel_interfaces_url));
- log_printf(op, TRUE, NULL, " proc mount point : %s",
- STRSTR(op->proc_mount_point));
- log_printf(op, TRUE, NULL, " ui : %s",
- STRSTR(op->ui_str));
- log_printf(op, TRUE, NULL, " tmpdir : %s",
- STRSTR(op->tmpdir));
- log_printf(op, TRUE, NULL, " ftp mirror : %s",
- STRSTR(op->ftp_site));
- log_printf(op, TRUE, NULL, " RPM file list : %s",
- STRSTR(op->rpm_file_list));
- log_printf(op, TRUE, NULL, " selinux chcon type : %s",
- STRSTR(op->selinux_chcon_type));
-
+ log_printf(op, TRUE, NULL, "nvidia-installer command line:");
+ for (i = 0; i < argc; i++) {
+ log_printf(op, TRUE, " ", "%s", argv[i]);
+ }
log_printf(op, TRUE, NULL, "");
@@ -235,23 +124,30 @@ void log_init(Options *op)
* option is not set, then nothing is done here.
*/
-#define LOG_WIDTH 79
-
void log_printf(Options *op, const int wb,
const char *prefix, const char *fmt, ...)
{
char *buf;
- int i;
- TextRows *t;
+ int append_newline = TRUE;
if (!op->logging) return;
NV_VSNPRINTF(buf, fmt);
- t = nv_format_text_rows(prefix, buf, LOG_WIDTH, wb);
-
- for (i = 0; i < t->n; i++) fprintf(log_file_stream, "%s\n", t->t[i]);
-
- nv_free_text_rows(t);
+
+ /*
+ * do not append a newline to the end of the string if the caller
+ * already did
+ */
+
+ if (buf && (buf[strlen(buf) - 1] == '\n')) {
+ append_newline = FALSE;
+ }
+
+ if (prefix) {
+ fprintf(log_file_stream, "%s", prefix);
+ }
+ fprintf(log_file_stream, "%s%s", buf, append_newline ? "\n" : "");
+
nvfree(buf);
/* flush, just to be safe */
diff --git a/misc.h b/misc.h
index e6233c9..57e5620 100644
--- a/misc.h
+++ b/misc.h
@@ -35,6 +35,8 @@
#include "nvidia-installer.h"
#include "command-list.h"
+#define ARRAY_LEN(_arr) (sizeof(_arr) / sizeof(_arr[0]))
+
/*
* NV_VSNPRINTF() - takes a fmt string, and uses vsnprintf to build
* the resulting string whic it assigns to buf. The caller of this
diff --git a/nvidia-installer.c b/nvidia-installer.c
index fa60223..b4826fb 100644
--- a/nvidia-installer.c
+++ b/nvidia-installer.c
@@ -432,7 +432,7 @@ int main(int argc, char *argv[])
/* init the log file */
- log_init(op);
+ log_init(op, argc, argv);
/* chdir() to the directory containing the binary */
diff --git a/nvidia-installer.h b/nvidia-installer.h
index 05e6276..4d6b004 100644
--- a/nvidia-installer.h
+++ b/nvidia-installer.h
@@ -516,7 +516,7 @@ typedef struct {
/* prototypes of functions used throughout the installer */
-void log_init(Options *op);
+void log_init(Options *op, int argc, char * const argv[]);
void log_printf(Options *op, const int wb,
const char *prefix, const char *fmt, ...);
diff --git a/stream-ui.c b/stream-ui.c
index 1df9d23..b8b4f0d 100644
--- a/stream-ui.c
+++ b/stream-ui.c
@@ -390,8 +390,8 @@ int stream_yes_no(Options *op, const int def, const char *msg)
format(stdout, NULL, "");
format(stdout, NULL, msg);
- if (def) fprintf(stdout, " [default: Yes]: ");
- else fprintf(stdout, " [default: No]: ");
+ if (def) fprintf(stdout, " [default: (Y)es]: ");
+ else fprintf(stdout, " [default: (N)o]: ");
fflush(stdout);
buf = fget_next_line(stdin, &eof);
diff --git a/user-interface.c b/user-interface.c
index a8d3042..ece6f9f 100644
--- a/user-interface.c
+++ b/user-interface.c
@@ -69,6 +69,7 @@ extern const int ncurses_ui_array_size;
/* struct describing the ui data */
typedef struct {
+ char *name;
char *descr;
char *filename;
const char *data_array;
@@ -93,18 +94,31 @@ int ui_init(Options *op)
int i;
user_interface_attribute_t ui_list[] = {
/* { "nvidia-installer GTK+ user interface", NULL, NULL, 0 }, */
- { "nvidia-installer ncurses user interface", NULL,
+ { "ncurses", "nvidia-installer ncurses user interface", NULL,
ncurses_ui_array, ncurses_ui_array_size },
- { NULL, NULL, NULL, 0 }
+ { "none", NULL, NULL, NULL, 0 }
};
/* dlopen() the appropriate ui shared lib */
__ui = NULL;
-
- i = 0;
- if (((op->ui_str) && (strcmp(op->ui_str, "none") == 0)) || (op->silent)) {
+ if (op->ui_str) {
+ for (i = 0; i < ARRAY_LEN(ui_list); i++) {
+ if (strcmp(op->ui_str, ui_list[i].name) == 0) {
+ break;
+ }
+ }
+
+ if (i == ARRAY_LEN(ui_list)) {
+ log_printf(op, TRUE, NULL, "Invalid \"ui\" option: %s", op->ui_str);
+ i = 0;
+ }
+ } else {
+ i = 0;
+ }
+
+ if (op->silent) {
i = 1;
}
diff --git a/version.mk b/version.mk
index db2538f..dcf5ed6 100644
--- a/version.mk
+++ b/version.mk
@@ -1 +1 @@
-NVIDIA_VERSION = 285.05.09
+NVIDIA_VERSION = 290.03