In a recent case, a customer reported that Softimage 2011 took forever (four to five minutes) to start on Fedora 14. Softimage 2010 SP1, on the other hand, started up just fine.
It turns out that for Softimage 2011, 2011SP1, and 2011SAP on Fedora 14, you need to put back our x11 patch (this patch was needed for Fedora 8, 9, and 10; Fedora 11, 12, and 13 run with a different compiled version of XCB and don’t need the patch).
Edit the .mwenv file ($XSI_HOME/Application/mainwin/mw/scripts/.mwenv) and change this
if ( "fc8" == "$fcver" || "fc9" == "$fcver" || "fc10" == "$fcver" ) set x11patch="$MWHOME/lib-${MWCONFIG_NAME}_optimized/X11"
to this:
if ( "fc8" == "$fcver" || "fc9" == "$fcver" || "fc10" == "$fcver" || "fc14" == "$fcver" ) set x11patch="$MWHOME/lib-${MWCONFIG_NAME}_optimized/X11"
Then source the .xsi and restart Softimage.
About the x11 patch:
In a previous version of Softimage, we introduced a libX11 workaround because of a problem introduced in FC8 with XCB that can cause freezes during Multi-threaded user interaction. What we did was to place a libX11 binary (compiled _without_ xcb) into a patch directory and then add that directory to the LD_LIBRARY_PATH.
The XCB problem was fixed in FC11, so we modified Softimage. The libX11 binary is still installed with the Linux setup, but the .mwenv script checks the Fedora version you are running and only adds the libX11 patch path to the LD_LIBRARY_PATH for Fedora 8, 9, and 10. So on Fedora 11, 12, and 13 Softimage uses the system installed libX11.
UPDATE: Another symptom of this problem is “EAGAIN (Resource temporarily unavailable)” errors for the tmp/.X11-unix/X0 socket. You’ll see these in the strace log:
socket(PF_FILE, SOCK_STREAM|SOCK_CLOEXEC, 0) = 19 connect(19, {sa_family=AF_FILE, path=@"/tmp/.X11-unix/X0"}, 20) = 0 getpeername(19, {sa_family=AF_FILE, path=@"/tmp/.X11-unix/X0"}, [20]) = 0 uname({sys="Linux", node="homer", ...}) = 0 access("/var/run/gdm/auth-for-xxx-Q2I4go/database", R_OK) = 0 open("/var/run/gdm/auth-for-xxx-Q2I4go/database", O_RDONLY) = 20 fstat(20, {st_mode=S_IFREG|0600, st_size=50, ...}) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f3360deb000 read(20, "\1\0\0\5homer\0\0010\0\22MIT-MAGIC-COOKIE-1"..., 4096) = 50 close(20) = 0 munmap(0x7f3360deb000, 4096) = 0 getsockname(19, {sa_family=AF_FILE, NULL}, [2]) = 0 fcntl(19, F_GETFL) = 0x2 (flags O_RDWR) fcntl(19, F_SETFL, O_RDWR|O_NONBLOCK) = 0 fcntl(19, F_SETFD, FD_CLOEXEC) = 0 poll([{fd=19, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=19, revents=POLLOUT}]) writev(19, [{"l\0\v\0\0\0\22\0\20\0\0\0", 12}, {"", 0}, {"MIT-MAGIC-COOKIE-1", 18}, {"\0\0", 2}, {"\367\371\200\336\321\\\37\4\22\0324\274\3356|\313", 16}, {"", 0}], 6) = 48 read(19, 0x27ae690, 8) = -1 EAGAIN (Resource temporarily unavailable) poll([{fd=19, events=POLLIN}], 1, -1) = 1 ([{fd=19, revents=POLLIN}])