1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
|
#!/bin/bash
## Here are some configuration options for Linux Client Testers.
## These options are for self-assisted troubleshooting during this beta
## testing phase; you should not usually need to touch them.
## If the default configuration of openal-soft isn't working for you.
## There are 3 places where it looks for a configuration file:
## /etc/openal/alsoft.conf $HOME/.alsoftrc and ALSOFT_CONF
## ALSOFT_CONF is the full path including the filename, like: /home/myuser/myconfigfile.txt
## If none of them is set a hardcoded default is taken.
## If you set several: ALSOFT_CONF 'wins' always, and $HOME/.alsoftrc 'wins' over /etc/openal/alsoft.conf
#export ALSOFT_CONF="$(pwd)/alsoft.conf"
## - Avoids using the OpenAL audio driver; disables any inworld sound effects.
## NOTE: - OpenAL is not used for any streaming audio in Imprudence.
## - Other export LL_BAD_<driver> have no effect in Imprudence.
#export LL_BAD_OPENAL_DRIVER=x
## If you have custom gstreamer plugins,
## e.g. you want to use Imprudence-1.4.x with the gstreamer plugins of Imprudence-1.3.1:
## Imprudence-1.3.1-Linux-x86/lib/gstreamer-plugins
## respectively Imprudence-1.3.1-Linux-x86_64/lib64/gstreamer-plugins
## NOTE: *WAY* better is to install the gstreamer plugins that come with your distros package manager,
## thats why Imprudence-1.4.x comes without gstreamer plugins.
#export GST_PLUGIN_PATH="'${HOME}/Imprudence-1.3.1-Linux-x86/lib/gstreamer-plugins':'${GST_PLUGIN_PATH}'"
## - Avoids the optional OpenGL extensions which have proven most problematic
## on some hardware. Disabling this option may cause BETTER PERFORMANCE but
## may also cause CRASHES and hangs on some unstable combinations of drivers
## and hardware.
## NOTE: This is now disabled by default.
#export LL_GL_BASICEXT=x
## - Avoids *all* optional OpenGL extensions. This is the safest and least-
## exciting option. Enable this if you experience stability issues, and
## report whether it helps in the Linux Client Testers forum.
#export LL_GL_NOEXT=x
## - For advanced troubleshooters, this lets you disable specific GL
## extensions, each of which is represented by a letter a-o. If you can
## narrow down a stability problem on your system to just one or two
## extensions then please post details of your hardware (and drivers) to
## the Linux Client Testers forum along with the minimal
## LL_GL_BLACKLIST which solves your problems.
#export LL_GL_BLACKLIST=abcdefghijklmno
## - Some ATI/Radeon users report random X server crashes when the mouse
## cursor changes shape. If you suspect that you are a victim of this
## driver bug, try enabling this option and report whether it helps:
#export LL_ATI_MOUSE_CURSOR_BUG=x
## - If you experience crashes with streaming video and music, you can
## disable these by enabling this option:
#export LL_DISABLE_GSTREAMER=x
## Everything below this line is just for advanced troubleshooters.
##-------------------------------------------------------------------
## - For advanced debugging cases, you can run the viewer under the
## control of another program, such as strace, gdb, or valgrind. If
## you're building your own viewer, bear in mind that the executable
## in the bin directory will be stripped: you should replace it with
## an unstripped binary before you run.
#export LL_WRAPPER='gdb --args'
#export LL_WRAPPER='valgrind --smc-check=all --error-limit=no --log-file=secondlife.vg --leak-check=full --suppressions=/usr/lib/valgrind/glibc-2.5.supp --suppressions=secondlife-i686.supp'
## - Avoids an often-buggy X feature that doesn't really benefit us anyway.
export SDL_VIDEO_X11_DGAMOUSE=0
## - Works around a problem with misconfigured 64-bit systems not finding GL
export LIBGL_DRIVERS_PATH="${LIBGL_DRIVERS_PATH}":/usr/lib64/dri:/usr/lib32/dri:/usr/lib/dri
## - The 'scim' GTK IM module widely crashes the viewer. Avoid it.
if [ "$GTK_IM_MODULE" = "scim" ]; then
export GTK_IM_MODULE=xim
fi
## - Automatically work around the ATI mouse cursor crash bug:
## (this workaround is disabled as most fglrx users do not see the bug)
#if lsmod | grep fglrx &>/dev/null ; then
# export LL_ATI_MOUSE_CURSOR_BUG=x
#fi
## Nothing worth editing below this line.
##-------------------------------------------------------------------
SCRIPTSRC=`readlink -f "$0" || echo "$0"`
RUN_PATH=`dirname "${SCRIPTSRC}" || echo .`
echo "Running from ${RUN_PATH}"
cd "${RUN_PATH}"
# Re-register the secondlife:// protocol handler every launch, for now.
./register_secondlifeprotocol.sh
## Before we mess with LD_LIBRARY_PATH, save the old one to restore for
## subprocesses that care.
export SAVED_LD_LIBRARY_PATH="${LD_LIBRARY_PATH}"
if [ -n "$LL_TCMALLOC" ]; then
tcmalloc_libs='/usr/lib/libtcmalloc.so.0 /usr/lib/libstacktrace.so.0 /lib/libpthread.so.0'
all=1
for f in $tcmalloc_libs; do
if [ ! -f $f ]; then
all=0
fi
done
if [ $all != 1 ]; then
echo 'Cannot use tcmalloc libraries: components missing' 1>&2
else
export LD_PRELOAD=$(echo $tcmalloc_libs | tr ' ' :)
if [ -z "$HEAPCHECK" -a -z "$HEAPPROFILE" ]; then
export HEAPCHECK=${HEAPCHECK:-normal}
fi
fi
fi
export VIEWER_BINARY='do-not-directly-run-meta-impy-bin'
BINARY_TYPE=$(expr match "$(file -b bin/$VIEWER_BINARY)" '\(.*executable\)')
if [ "${BINARY_TYPE}" == "ELF 64-bit LSB executable" ]; then
export SL_ENV='LD_LIBRARY_PATH="`pwd`"/lib64:"`pwd`"/lib32:"${LD_LIBRARY_PATH}"'
else
export SL_ENV='LD_LIBRARY_PATH="`pwd`"/lib:"${LD_LIBRARY_PATH}"'
fi
export SL_CMD='$LL_WRAPPER bin/$VIEWER_BINARY'
export SL_OPT="`cat gridargs.dat` $@"
# Run the program
eval ${SL_ENV} ${SL_CMD} ${SL_OPT} || LL_RUN_ERR=runerr
# Handle any resulting errors
if [ -n "$LL_RUN_ERR" ]; then
LL_RUN_ERR_MSG=""
if [ "$LL_RUN_ERR" = "runerr" ]; then
# generic error running the binary
echo 'unexpected shutdown'
fi
fi
LOGS_PATH="${HOME}/.imprudence/logs"
if [ -f "${LOGS_PATH}/stack_trace.log" ]; then
LOG_PACKAGE_NAME="MAIL-THIS-CRASHLOG-PLEASE.$(date +%y%m%d%H%M).tar.bz2"
cp "${LOGS_PATH}/stack_trace.log" stack_trace.log
cp "${LOGS_PATH}/Imprudence.log" Imprudence.log
tar --numeric-owner -cjf ${LOG_PACKAGE_NAME} \
stack_trace.log \
Imprudence.log
rm stack_trace.log
rm Imprudence.log
echo "You find a crash log package to mail to Imprudence here:"
echo "${RUN_PATH}/${LOG_PACKAGE_NAME}"
echo "See where to send: http://wiki.kokuaviewer.org/wiki/Imprudence:Debug_Logs#Where_to_Send_Them"
fi
|