diff options
author | Aaron Plattner <aplattner@nvidia.com> | 2008-02-13 10:22:36 -0800 |
---|---|---|
committer | Aaron Plattner <aplattner@nvidia.com> | 2008-02-13 10:22:36 -0800 |
commit | 3fc4d780eea56a5bac0a31f6a385e99029fdae91 (patch) | |
tree | 1c5e6132672bcd1e7eb65aab2ac40749d74e1244 | |
parent | da4203222702c29299c04faf000166f69e5bbe89 (diff) |
71.86.0471.86.04
-rw-r--r-- | DRIVER_VERSION | 2 | ||||
-rw-r--r-- | command-list.c | 16 | ||||
-rw-r--r-- | files.c | 1 | ||||
-rw-r--r-- | install-from-cwd.c | 2 | ||||
-rw-r--r-- | misc.c | 1 | ||||
-rw-r--r-- | nvidia-installer.h | 11 | ||||
-rw-r--r-- | option_table.h | 10 |
7 files changed, 27 insertions, 16 deletions
diff --git a/DRIVER_VERSION b/DRIVER_VERSION index aa30fc2..89cabc7 100644 --- a/DRIVER_VERSION +++ b/DRIVER_VERSION @@ -1 +1 @@ -71.86.01 +71.86.04 diff --git a/command-list.c b/command-list.c index 583b2c7..3e5724d 100644 --- a/command-list.c +++ b/command-list.c @@ -209,6 +209,16 @@ CommandList *build_command_list(Options *op, Package *p) /* Add all the installable files to the list */ for (i = 0; i < p->num_entries; i++) { + if (op->selinux_enabled && + (op->utils[EXECSTACK] != NULL) && + ((p->entries[i].flags & FILE_TYPE_SHARED_LIB) || + (p->entries[i].flags & FILE_TYPE_XMODULE_SHARED_LIB))) { + tmp = nvstrcat(op->utils[EXECSTACK], " -c ", + p->entries[i].file, NULL); + add_command(c, RUN_CMD, tmp); + nvfree(tmp); + } + if (p->entries[i].flags & installable_files) { add_command(c, INSTALL_CMD, p->entries[i].file, @@ -226,8 +236,8 @@ CommandList *build_command_list(Options *op, Package *p) add_command(c, DELETE_CMD, p->entries[i].file); } - - if (op->selinux_enabled && + + if (op->selinux_enabled && ((p->entries[i].flags & FILE_TYPE_SHARED_LIB) || (p->entries[i].flags & FILE_TYPE_XMODULE_SHARED_LIB))) { tmp = nvstrcat(op->utils[CHCON], " -t ", op->selinux_chcon_type, @@ -475,6 +485,7 @@ static ConflictingFileInfo __xfree86_libs[] = { { "libXvMCNVIDIA", 13 /* strlen("libXvMCNVIDIA") */ }, { "libnvidia-cfg.", 14 /* strlen("libnvidia-cfg.") */ }, { "nvidia_drv.", 11 /* strlen("nvidia_drv.") */ }, + { "libcuda.", 8 /* strlen("libcuda.") */ }, { NULL, 0 } }; @@ -517,6 +528,7 @@ static ConflictingFileInfo __opengl_libs[] = { { "libGL.", 6 /* strlen("libGL.") */ }, { "libnvidia-tls.", 14 /* strlen("libnvidia-tls.") */ }, { "libGLwrapper.", 13 /* strlen("libGLwrapper.") */ }, + { "libcuda.", 8 /* strlen("libcuda.") */ }, { NULL, 0 } }; @@ -521,7 +521,6 @@ int set_destinations(Options *op, Package *p) break; case FILE_TYPE_XMODULE_SHARED_LIB: - case FILE_TYPE_XMODULE_STATIC_LIB: case FILE_TYPE_XMODULE_SYMLINK: prefix = op->x_module_path; dir = ""; diff --git a/install-from-cwd.c b/install-from-cwd.c index d3a8d8b..2bd061c 100644 --- a/install-from-cwd.c +++ b/install-from-cwd.c @@ -618,8 +618,6 @@ static Package *parse_manifest (Options *op) p->entries[n].flags |= FILE_TYPE_UTILITY_BINARY; else if (strcmp(flag, "DOT_DESKTOP") == 0) p->entries[n].flags |= FILE_TYPE_DOT_DESKTOP; - else if (strcmp(flag, "XMODULE_STATIC_LIB") == 0) - p->entries[n].flags |= FILE_TYPE_XMODULE_STATIC_LIB; else if (strcmp(flag, "XMODULE_SHARED_LIB") == 0) p->entries[n].flags |= FILE_TYPE_XMODULE_SHARED_LIB; else if (strcmp(flag, "XMODULE_SYMLINK") == 0) @@ -703,6 +703,7 @@ int find_system_utils(Options *op) { "chcon", "selinux" }, { "selinuxenabled", "selinux" }, { "getenforce", "selinux" }, + { "execstack", "selinux" }, { "pkg-config", "pkg-config" }, { "X", "xserver" } }; diff --git a/nvidia-installer.h b/nvidia-installer.h index c686ead..5a68f55 100644 --- a/nvidia-installer.h +++ b/nvidia-installer.h @@ -53,6 +53,7 @@ typedef enum { CHCON = MAX_SYSTEM_UTILS, SELINUX_ENABLED, GETENFORCE, + EXECSTACK, PKG_CONFIG, XSERVER, MAX_SYSTEM_OPTIONAL_UTILS @@ -304,10 +305,9 @@ typedef struct { #define FILE_TYPE_UTILITY_LIB 0x00008000 #define FILE_TYPE_DOT_DESKTOP 0x00010000 #define FILE_TYPE_UTILITY_SYMLINK 0x00020000 -#define FILE_TYPE_XMODULE_STATIC_LIB 0x00040000 -#define FILE_TYPE_XMODULE_SHARED_LIB 0x00080000 -#define FILE_TYPE_XMODULE_SYMLINK 0x00100000 -#define FILE_TYPE_MANPAGE 0x00200000 +#define FILE_TYPE_XMODULE_SHARED_LIB 0x00040000 +#define FILE_TYPE_XMODULE_SYMLINK 0x00080000 +#define FILE_TYPE_MANPAGE 0x00100000 /* file class: this is used to distinguish OpenGL libraries */ @@ -321,8 +321,7 @@ typedef struct { #define FILE_TYPE_XLIB_LIB (FILE_TYPE_XLIB_STATIC_LIB | \ FILE_TYPE_XLIB_SHARED_LIB) -#define FILE_TYPE_XMODULE_LIB (FILE_TYPE_XMODULE_STATIC_LIB | \ - FILE_TYPE_XMODULE_SHARED_LIB) +#define FILE_TYPE_XMODULE_LIB (FILE_TYPE_XMODULE_SHARED_LIB) #define FILE_TYPE_INSTALLABLE_FILE (FILE_TYPE_OPENGL_LIB | \ FILE_TYPE_XLIB_LIB | \ diff --git a/option_table.h b/option_table.h index fa7ecd5..3dcd277 100644 --- a/option_table.h +++ b/option_table.h @@ -384,10 +384,12 @@ static const NVOption __options[] = { "Linux installations using SELinux (Security-Enhanced Linux) " "require that the security type of all shared libraries be set " "to 'shlib_t' or 'textrel_shlib_t', depending on the distribution. " - "nvidia-installer will detect when to set " - "the security type, and set it using chcon(1) on the shared " - "libraries it installs. Use this option to override " - "nvidia-installer's detection of when to set the security type. " + "nvidia-installer will detect when to set the security type, " + "and set it using chcon(1) on the shared libraries it installs. " + "If the execstack(8) system utility is present, nvidia-installer will " + "use it to also clear the executable stack flag of the libraries. " + "Use this option to override nvidia-installer's detection of when " + "to set the security type. " "Valid values for [FORCE-SELINUX] are 'yes' (force setting of the " "security type), " "'no' (prevent setting of the security type), and 'default' " |