diff options
-rw-r--r-- | DRIVER_VERSION | 2 | ||||
-rw-r--r-- | kernel.c | 53 | ||||
-rw-r--r-- | nvidia-installer.c | 7 | ||||
-rw-r--r-- | nvidia-installer.h | 3 | ||||
-rw-r--r-- | option_table.h | 10 | ||||
-rw-r--r-- | public.mk | 12 |
6 files changed, 49 insertions, 38 deletions
diff --git a/DRIVER_VERSION b/DRIVER_VERSION index 49dc92b..f8b2204 100644 --- a/DRIVER_VERSION +++ b/DRIVER_VERSION @@ -1 +1 @@ -185.18.14 +190.16 @@ -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 @@ -996,22 +996,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; } } @@ -1035,10 +1028,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() */ @@ -1315,10 +1310,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 @@ -1378,10 +1373,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 b9d3d40..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 - 2008 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 4c2f805..046ea62 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 " @@ -79,7 +79,7 @@ RTLD_TEST_32 = rtld_test_$(TARGET_OS)-x86 GEN_UI_ARRAY = $(OUTPUTDIR)/gen-ui-array CONFIG_H = $(OUTPUTDIR)/config.h -MANPAGE = $(OUTPUTDIR)/nvidia-installer.1 +MANPAGE = $(OUTPUTDIR)/nvidia-installer.1.gz GEN_MANPAGE_OPTS = $(OUTPUTDIR)/gen-manpage-opts OPTIONS_1_INC = $(OUTPUTDIR)/options.1.inc @@ -142,7 +142,6 @@ MKPRECOMPILED_install: $(MKPRECOMPILED) MANPAGE_install: $(MANPAGE) $(MKDIR) $(mandir) $(INSTALL) $(INSTALL_DOC_ARGS) $< $(mandir)/$(notdir $<) - gzip -9f $(mandir)/$(notdir $(MANPAGE)) $(MKPRECOMPILED): $(MKPRECOMPILED_OBJS) $(call quiet_cmd,LINK) -o $@ \ @@ -198,8 +197,9 @@ $(foreach src,$(ALL_SRC),$(eval $(call DEFINE_OBJECT_RULE,CC,$(src)))) # define the rule to generate $(STAMP_C) $(eval $(call DEFINE_STAMP_C_RULE, $(INSTALLER_OBJS), $(NVIDIA_INSTALLER_PROGRAM_NAME))) -$(CONFIG_H): $(bootstrap) +$(CONFIG_H): @ $(RM) -f $@ + @ $(MKDIR) $(OUTPUTDIR) @ $(ECHO) "#define INSTALLER_OS \"$(TARGET_OS)\"" >> $@ @ $(ECHO) "#define INSTALLER_ARCH \"$(TARGET_ARCH)\"" >> $@ @ $(ECHO) -n "#define NVIDIA_INSTALLER_VERSION " >> $@ @@ -207,7 +207,7 @@ $(CONFIG_H): $(bootstrap) @ $(ECHO) -n "#define PROGRAM_NAME " >> $@ @ $(ECHO) "\"$(NVIDIA_INSTALLER_PROGRAM_NAME)\"" >> $@ -$(INSTALLER_OBJS): $(CONFIG_H) +$(call BUILD_OBJECT_LIST,$(ALL_SRC)): $(CONFIG_H) clean clobber: rm -rf $(OUTPUTDIR) @@ -259,6 +259,8 @@ doc: $(MANPAGE) $(eval $(call DEFINE_OBJECT_RULE,HOST_CC,gen-manpage-opts.c)) +$(call BUILD_OBJECT_LIST,gen-manpage-opts.c): $(CONFIG_H) + $(GEN_MANPAGE_OPTS): $(call BUILD_OBJECT_LIST,gen-manpage-opts.c) $(call quiet_cmd,HOST_LINK) $< -o $@ \ $(HOST_CFLAGS) $(HOST_LDFLAGS) $(HOST_BIN_LDFLAGS) @@ -275,4 +277,4 @@ $(MANPAGE): nvidia-installer.1.m4 $(OPTIONS_1_INC) -D__DRIVER_VERSION__="$(NVIDIA_VERSION)" \ -D__OUTPUTDIR__=$(OUTPUTDIR) \ -I $(OUTPUTDIR) \ - $< > $@ + $< | $(GZIP_CMD) -9f > $@ |