summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Plattner <aplattner@nvidia.com>2008-02-13 10:22:36 -0800
committerAaron Plattner <aplattner@nvidia.com>2008-02-13 10:22:36 -0800
commit3fc4d780eea56a5bac0a31f6a385e99029fdae91 (patch)
tree1c5e6132672bcd1e7eb65aab2ac40749d74e1244
parentda4203222702c29299c04faf000166f69e5bbe89 (diff)
71.86.0471.86.04
-rw-r--r--DRIVER_VERSION2
-rw-r--r--command-list.c16
-rw-r--r--files.c1
-rw-r--r--install-from-cwd.c2
-rw-r--r--misc.c1
-rw-r--r--nvidia-installer.h11
-rw-r--r--option_table.h10
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 }
};
diff --git a/files.c b/files.c
index 8954fd3..a12be85 100644
--- a/files.c
+++ b/files.c
@@ -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)
diff --git a/misc.c b/misc.c
index 24dd7b0..b9500ae 100644
--- a/misc.c
+++ b/misc.c
@@ -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' "