summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Plattner <aplattner@nvidia.com>2009-11-12 20:22:50 -0800
committerAaron Plattner <aplattner@nvidia.com>2009-11-12 20:22:50 -0800
commit4d997a43b8e377a20967a09a132a3d23e469b0d3 (patch)
tree2f6c1a7c22529c17c4db4bcef2bdeaf6a897090a
parentafb3d24898c705126752db77cdad76c99c90074d (diff)
173.14.22173.14.22
-rw-r--r--DRIVER_VERSION2
-rw-r--r--files.c25
-rw-r--r--kernel.c53
-rw-r--r--nvidia-installer.c7
-rw-r--r--nvidia-installer.h3
-rw-r--r--option_table.h10
6 files changed, 64 insertions, 36 deletions
diff --git a/DRIVER_VERSION b/DRIVER_VERSION
index 9784975..b9728b8 100644
--- a/DRIVER_VERSION
+++ b/DRIVER_VERSION
@@ -1 +1 @@
-173.14.20
+173.14.22
diff --git a/files.c b/files.c
index 4220f84..52a33d7 100644
--- a/files.c
+++ b/files.c
@@ -1922,9 +1922,6 @@ void get_default_prefixes_and_paths(Options *op)
}
#if defined(NV_X86_64)
- if (op->distro == DEBIAN && !op->compat32_chroot)
- op->compat32_chroot = DEBIAN_DEFAULT_COMPAT32_CHROOT;
-
if (!op->compat32_prefix)
op->compat32_prefix = DEFAULT_OPENGL_PREFIX;
@@ -1936,6 +1933,28 @@ void get_default_prefixes_and_paths(Options *op)
op->compat32_libdir = DEFAULT_LIBDIR;
}
}
+
+ if (op->distro == DEBIAN && !op->compat32_chroot) {
+ /*
+ * Newer versions of Debian have moved to the Ubuntu style of compat32
+ * path, so use that if it exists.
+ */
+ char *default_path = nvstrcat(op->compat32_prefix, "/"
+ UBUNTU_DEFAULT_COMPAT32_LIBDIR, NULL);
+ struct stat buf;
+ if (lstat(default_path, &buf) < 0 || S_ISLNK(buf.st_mode)) {
+ /*
+ * Path doesn't exist or is a symbolic link. Use the compat32
+ * chroot path instead.
+ */
+ op->compat32_chroot = DEBIAN_DEFAULT_COMPAT32_CHROOT;
+ } else {
+ /* <prefix>/lib32 exists, so use that */
+ op->compat32_libdir = UBUNTU_DEFAULT_COMPAT32_LIBDIR;
+ }
+ nvfree(default_path);
+ }
+
#endif
if (!op->utility_prefix)
diff --git a/kernel.c b/kernel.c
index af9d3dd..6dbd049 100644
--- a/kernel.c
+++ b/kernel.c
@@ -2,7 +2,7 @@
* nvidia-installer: A tool for installing NVIDIA software packages on
* Unix and Linux systems.
*
- * Copyright (C) 2003 NVIDIA Corporation
+ * Copyright (C) 2003-2009 NVIDIA Corporation
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
@@ -994,22 +994,15 @@ int find_precompiled_kernel_interface(Options *op, Package *p)
* if we should try to download one.
*/
- if (!info && !op->no_network) {
- if (ui_yes_no(op, TRUE, "No precompiled kernel interface was "
- "found to match "
- "your kernel; would you like the installer to attempt "
- "to download a kernel interface for your kernel from "
- "the NVIDIA ftp site (%s)?", op->ftp_site)) {
-
- info = download_updated_kernel_interface(op, p,
- proc_version_string);
- if (!info) {
- ui_message(op, "No matching precompiled kernel interface was "
- "found on the NVIDIA ftp site; this means that the "
- "installer will need to compile a kernel interface "
- "for your kernel.");
- return FALSE;
- }
+ if (!info && !op->no_network && op->precompiled_kernel_interfaces_url) {
+ info = download_updated_kernel_interface(op, p,
+ proc_version_string);
+ if (!info) {
+ ui_message(op, "No matching precompiled kernel interface was "
+ "found at '%s'; this means that the installer will need "
+ "to compile a kernel interface for your kernel.",
+ op->precompiled_kernel_interfaces_url);
+ return FALSE;
}
}
@@ -1033,10 +1026,12 @@ int find_precompiled_kernel_interface(Options *op, Package *p)
failed:
- ui_message(op, "No precompiled kernel interface was found to match "
- "your kernel; this means that the installer will need to "
- "compile a new kernel interface.");
-
+ if (op->expert) {
+ ui_message(op, "No precompiled kernel interface was found to match "
+ "your kernel; this means that the installer will need to "
+ "compile a new kernel interface.");
+ }
+
return FALSE;
} /* find_precompiled_kernel_interface() */
@@ -1313,10 +1308,10 @@ download_updated_kernel_interface(Options *op, Package *p,
/* initialize the tmpfile and url strings */
tmpfile = nvstrcat(op->tmpdir, "/nv-updates-XXXXXX", NULL);
- url = nvstrcat(op->ftp_site, "/XFree86/", INSTALLER_OS, "-",
- INSTALLER_ARCH, "/", p->version,
- "/updates/updates.txt", NULL);
-
+ url = nvstrcat(op->precompiled_kernel_interfaces_url, "/", INSTALLER_OS,
+ "-", INSTALLER_ARCH, "/", p->version, "/updates/updates.txt",
+ NULL);
+
/*
* create a temporary file in which to write the list of available
* updates
@@ -1376,10 +1371,10 @@ download_updated_kernel_interface(Options *op, Package *p,
/* build the new url and dstfile strings */
nvfree(url);
- url = nvstrcat(op->ftp_site, "/XFree86/",
- INSTALLER_OS, "-", INSTALLER_ARCH, "/",
- p->version, "/updates/", buf, NULL);
-
+ url = nvstrcat(op->precompiled_kernel_interfaces_url, "/",
+ INSTALLER_OS, "-", INSTALLER_ARCH, "/", p->version,
+ "/updates/", buf, NULL);
+
dstfile = nvstrcat(p->precompiled_kernel_interface_directory,
"/", buf, NULL);
diff --git a/nvidia-installer.c b/nvidia-installer.c
index b21143f..4e91c16 100644
--- a/nvidia-installer.c
+++ b/nvidia-installer.c
@@ -2,7 +2,7 @@
* nvidia-installer: A tool for installing NVIDIA software packages on
* Unix and Linux systems.
*
- * Copyright (C) 2003 NVIDIA Corporation
+ * Copyright (C) 2003-2009 NVIDIA Corporation
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
@@ -78,7 +78,7 @@ static void print_version(void)
"The NVIDIA Accelerated Graphics Driver Set for %s-%s.",
INSTALLER_OS, INSTALLER_ARCH);
fmtout("");
- fmtoutp(TAB, "Copyright (C) 2003 NVIDIA Corporation.");
+ fmtoutp(TAB, "Copyright (C) 2003 - 2009 NVIDIA Corporation.");
fmtout("");
}
@@ -395,6 +395,9 @@ Options *parse_commandline(int argc, char *argv[])
case PRECOMPILED_KERNEL_INTERFACES_PATH_OPTION:
op->precompiled_kernel_interfaces_path = optarg;
break;
+ case PRECOMPILED_KERNEL_INTERFACES_URL_OPTION:
+ op->precompiled_kernel_interfaces_url = optarg;
+ break;
case NO_ABI_NOTE_OPTION:
op->no_abi_note = TRUE;
break;
diff --git a/nvidia-installer.h b/nvidia-installer.h
index a292f1f..d627467 100644
--- a/nvidia-installer.h
+++ b/nvidia-installer.h
@@ -2,7 +2,7 @@
* nvidia-installer: A tool for installing NVIDIA software packages on
* Unix and Linux systems.
*
- * Copyright (C) 2003 NVIDIA Corporation
+ * Copyright (C) 2003-2009 NVIDIA Corporation
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
@@ -186,6 +186,7 @@ typedef struct __options {
char *kernel_name;
char *rpm_file_list;
char *precompiled_kernel_interfaces_path;
+ char *precompiled_kernel_interfaces_url;
const char *selinux_chcon_type;
Distribution distro;
diff --git a/option_table.h b/option_table.h
index 0ee356a..8463e49 100644
--- a/option_table.h
+++ b/option_table.h
@@ -33,6 +33,7 @@ enum {
RPM_FILE_LIST_OPTION,
NO_RUNLEVEL_CHECK_OPTION,
PRECOMPILED_KERNEL_INTERFACES_PATH_OPTION,
+ PRECOMPILED_KERNEL_INTERFACES_URL_OPTION,
NO_ABI_NOTE_OPTION,
KERNEL_SOURCE_PATH_OPTION,
NO_RPMS_OPTION,
@@ -382,6 +383,15 @@ static const NVOption __options[] = {
"Before searching for a precompiled kernel interface in the "
".run file, search in the specified directory." },
+ { "precompiled-kernel-interfaces-url",
+ PRECOMPILED_KERNEL_INTERFACES_URL_OPTION, NVOPT_HAS_ARGUMENT,
+ "If no precompiled kernel interfaces are found within the driver package "
+ "or provided on the file system by the Linux distribution, check the "
+ "specified URL for updates. NVIDIA does not intend to provide updated "
+ "precompiled kernel interfaces, but system administrators might use this "
+ "for distributing precompiled kernel interfaces in a local area "
+ "network." },
+
{ "run-nvidia-xconfig", 'X', 0,
"nvidia-installer can optionally invoke the nvidia-xconfig utility. "
"This will update the system X configuration file so that the NVIDIA X "