diff options
Diffstat (limited to 'indra/newview/linux_tools')
-rw-r--r-- | indra/newview/linux_tools/client-readme-joystick.txt | 78 | ||||
-rw-r--r-- | indra/newview/linux_tools/client-readme-voice.txt | 51 | ||||
-rw-r--r-- | indra/newview/linux_tools/client-readme.txt | 111 | ||||
-rwxr-xr-x | indra/newview/linux_tools/handle_secondlifeprotocol.sh | 2 | ||||
-rwxr-xr-x | indra/newview/linux_tools/install.sh | 106 | ||||
-rwxr-xr-x | indra/newview/linux_tools/launch_url.sh | 76 | ||||
-rwxr-xr-x | indra/newview/linux_tools/refresh_desktop_app_entry.sh | 36 | ||||
-rwxr-xr-x | indra/newview/linux_tools/register_secondlifeprotocol.sh | 26 | ||||
-rwxr-xr-x | indra/newview/linux_tools/wrapper.sh | 56 |
9 files changed, 377 insertions, 165 deletions
diff --git a/indra/newview/linux_tools/client-readme-joystick.txt b/indra/newview/linux_tools/client-readme-joystick.txt new file mode 100644 index 0000000000..4f89a73ccb --- /dev/null +++ b/indra/newview/linux_tools/client-readme-joystick.txt @@ -0,0 +1,78 @@ +Second Life - Joystick & SpaceNavigator Support README +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= + +WHAT IS IT? +-=-=-=-=-=- + +This feature allows the use of a joystick or other supported multi-axis +device for controlling your avatar and camera. + +REQUIREMENTS +-=-=-=-=-=-= + +* A joystick or other generic multi-axis input device supported by your chosen + version of Linux + +- OR - + +* A SpaceNavigator device (additional configuration may be required, see below) + +Success has been reported on the following systems so far: +* Ubuntu 7.04 (Feisty) with a generic USB joystick +* Ubuntu 7.04 (Feisty) with a USB 3DConnexion SpaceNavigator +* Ubuntu 6.06 (Dapper) with a generic USB joystick +* Ubuntu 6.06 (Dapper) with a USB 3DConnexion SpaceNavigator + +CONFIGURATION +-=-=-=-=-=-=- + +SPACE NAVIGATOR: *Important* - do not install the Linux SpaceNavigator +drivers from the disk included with the device - these are problematic. +Some distributions of Linux (such as Ubuntu, Gentoo and Mandriva) will +need some system configuration to make the SpaceNavigator usable by +applications such as the Second Life Viewer, as follows: + +* Mandriva Linux Configuration: + You need to add two new files to your system. This only needs to be + done once. These files are available at the 'SpaceNavigator support with + udev and Linux input framework' section of + <http://www.aaue.dk/~janoc/index.php?n=Personal.Downloads> + +* Ubuntu or Gentoo Linux Configuration: + For a quick start, you can simply paste the following line into a terminal + before plugging in your SpaceNavigator - this only needs to be done once: + sudo bash -c 'echo KERNEL==\"event[0-9]*\", SYSFS{idVendor}==\"046d\", SYSFS{idProduct}==\"c626\", SYMLINK+=\"input/spacenavigator\", GROUP=\"plugdev\", MODE=\"664\" > /etc/udev/rules.d/91-spacenavigator-LL.rules ; echo "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><deviceinfo version=\"0.2\"><device><match key=\"info.product\" contains=\"3Dconnexion SpaceNavigator\"><merge key=\"input.x11_driver\" type=\"string\"></merge></match></device></deviceinfo>" > /etc/hal/fdi/policy/3Dconnexion_SpaceNavigator_LL.fdi' + +For more comprehensive Linux SpaceNavigator configuration information please +see the section 'Installing SpaceNavigator without the official driver' here: +<http://www.aaue.dk/~janoc/index.php?n=Personal.3DConnexionSpaceNavigatorSupport> + +JOYSTICKS: These should be automatically detected and configured on all +modern distributions of Linux. + +ALL: Your joystick or SpaceNavigator should be plugged-in before you start the +Second Life Viewer, so that it may be detected. If you have multiple input +devices attached, only the first detected SpaceNavigator or joystick device +will be available. + +Once your system recognises your joystick or SpaceNavigator correctly, you +can go into the Second Life Viewer's Preferences dialog, click the 'Input & +Camera' tab, and click the 'Joystick Setup' button. From here you may enable +and disable joystick support and change some configuration settings such as +sensitivity. SpaceNavigator users are recommended to click the +'SpaceNavigator Defaults' button. + +KNOWN PROBLEMS +-=-=-=-=-=-=-= + +* If your chosen version of Linux treats your joystick/SpaceNavigator as +if it were a mouse when you plug it in (i.e. it is automatically used to control +your desktop cursor), then the SL Viewer may detect this device *but* will be +unable to use it properly. + +FURTHER PROBLEMS? +-=-=-=-=-=-=-=-=- + +Please report further issues to the public Second Life issue-tracker +at <http://jira.secondlife.com/> (please note, however, that this is not +a support forum). diff --git a/indra/newview/linux_tools/client-readme-voice.txt b/indra/newview/linux_tools/client-readme-voice.txt index 7754a3a734..bfefdf3471 100644 --- a/indra/newview/linux_tools/client-readme-voice.txt +++ b/indra/newview/linux_tools/client-readme-voice.txt @@ -4,38 +4,31 @@ Second Life - Linux Voice Support README WHAT IS IT? -=-=-=-=-=- -Linux Voice Support is a new feature in testing which allows users -of the Linux Second Life client to participate in voice-chat with other -residents and groups inside Second Life, with an appropriate -headset/microphone. - -Linux Voice Support is currently EXPERIMENTAL and is known to still -have some compatibility issues. +Linux Voice Support is a feature in testing which allows users of the Linux +Second Life client to participate in voice-chat with other residents and +groups inside Second Life, with an appropriate headset/microphone. REQUIREMENTS -=-=-=-=-=-= * A headset/microphone supported by your chosen version of Linux -* The ALSA sound system (you probably already have this - - i.e. the alsa-base and alsa-utils packages on Ubuntu) +* At this time, the PulseAudio audio system is recommended; this software + is already part of most modern (2009+) Linux desktop systems. Alternatively, + the ALSA audio system may be used on systems installed from around + 2007 onwards (again this is likely already installed on your system). -Success with Linux Voice support has been reported on the following -systems: -* Ubuntu 7.04 (Feisty) with USB Plantronics headset -* Ubuntu 7.04 (Feisty) with Intel HDA audio chipset -* Ubuntu 6.06 (Dapper) with Intel ICH5/CMI9761A+ audio chipset -* Ubuntu 6.06 (Dapper) with SigmaTel STAC2997 audio chipset -* Fedora Core 6 with (unknown) audio chipset +TESTING YOUR SETTINGS +-=-=-=-=-=-=-=-=-=-=- -Problems with Linux Voice support have been reported on the following -systems: -* Ubuntu 6.06 (Dapper) with Creative EMU10K1 audio chipset +* The Second Life region 'Voice Echo Canyon' is a great place for testing +your hardware settings and quality - it will 'echo' your voice back to you +when you speak. KNOWN PROBLEMS -=-=-=-=-=-=-= -* The 'Input Level' meter in the Voice Chat Device Settings dialog - does not respond to audio input. +* Compatibility with old ALSA-based audio systems (such as Ubuntu Dapper + from 2006) is poor. TROUBLESHOOTING -=-=-=-=-=-=-=- @@ -43,12 +36,11 @@ TROUBLESHOOTING PROBLEM 1: I don't see a white dot over the head of my avatar or other Voice-using avatars. SOLUTION: -a. Ensure that 'Enable voice chat' is enabled in the Voice Chat - preferences window and that you are in a voice-enabled area (you - will see a blue headphone icon in the SL menu-bar). +a. Ensure that 'Enable voice' is enabled in the 'Sound' section of the + Preferences window, and that you are in a voice-enabled area. b. If the above does not help, exit Second Life and ensure that any remaining 'SLVoice' processes (as reported by 'ps', 'top' or similar) - are killed. + are killed before restarting. PROBLEM 2: I have a white dot over my head but I never see (or hear!) anyone except myself listed in the Active Speakers dialog when I'm sure that other @@ -67,12 +59,13 @@ c. Update to the latest version of ALSA manually. For a guide, see the PROBLEM 3: I can hear other people, but they cannot hear me. SOLUTION: -a. Ensure that you have the 'Talk' button activated while you are trying to - speak. +a. Ensure that you have the 'Speak' button (at the bottom of the Second Life + window) activated while you are trying to speak. b. Ensure that your microphone jack is inserted into the correct socket of your sound card, where appropriate. -c. Use your system mixer-setting program or the 'alsamixer' program to ensure - that microphone input is set as the active input source and is not muted. +c. Use your system mixer-setting program (such as the PulseAudio 'volume + control' applet or the ALSA 'alsamixer' program) to ensure that microphone + input is set as the active input source and is not muted. d. Verify that audio input works in other applications, i.e. Audacity PROBLEM 4: Other people just hear bursts of loud noise when I speak. diff --git a/indra/newview/linux_tools/client-readme.txt b/indra/newview/linux_tools/client-readme.txt index 87087be778..e01b9e4bc6 100644 --- a/indra/newview/linux_tools/client-readme.txt +++ b/indra/newview/linux_tools/client-readme.txt @@ -12,10 +12,10 @@ Life itself - please see <http://www.secondlife.com/whatis/>. 5. Troubleshooting 5.1. 'Error creating window.' 5.2. System hangs - 5.3. 'Shiny' and client performance + 5.3. Blank window after minimizing it 5.4. Audio 5.5. 'Alt' key for camera controls doesn't work - 5.6. In-world movie playback + 5.6. In-world streaming movie, music and Flash playback 6. Advanced Troubleshooting 6.1. Audio 6.2. OpenGL @@ -53,11 +53,15 @@ Minimum requirements: * Computer Memory: 512MB (recommended: 768MB or more) * Linux Operating System: A reasonably modern 32-bit Linux environment is required. If you are running a 64-bit Linux distribution then - you will need its 32-bit compatibility environment installed. + you will need its 32-bit compatibility environment installed, but + this configuration is not currently supported. + * PulseAudio or ALSA Linux system sound software. A recent PulseAudio + is the recommended configuration; see README-linux-voice.txt for more + information. * Video/Graphics Card: o nVidia GeForce 2, GeForce 4mx, or better (recommend one of the following: 6700, 6800, 7600, 7800, 7900, 8400, 8500, 8600, - 8800, Go 7400, Go 7600, Go 7800, Go 7900) + 8800, Go 7400, Go 7600, Go 7800, Go 7900, +) o OR ATI Radeon 8500, 9250, or better (nVidia cards are recommended for the Linux client) @@ -74,14 +78,15 @@ Life Linux client is very similar to that for Windows, as detailed at: 3. INSTALLING & RUNNING -=-=-=-=-=-=-=-=-=-=-=- -The Second Life Linux client entirely runs out of the directory you have -unpacked it into - no installation step is required. +The Second Life Linux client can entirely run from the directory you have +unpacked it into - no installation step is required. If you wish to +perform a separate installation step anyway, you may run './install.sh' Run ./secondlife from the installation directory to start Second Life. -For in-world MOVIE PLAYBACK, you will need GStreamer 0.10 installed on your -system. This is optional - it is not required for general client -functionality. If you have GStreamer 0.10 installed, the selection of +For in-world MOVIE and MUSIC PLAYBACK, you will need (32-bit) GStreamer 0.10 +installed on your system. This is optional - it is not required for general +client functionality. If you have GStreamer 0.10 installed, the selection of in-world movies you can successfully play will depend on the GStreamer plugins you have; if you cannot play a certain in-world movie then you are probably missing the appropriate GStreamer plugin on your system - you may @@ -95,26 +100,7 @@ you wish. 4. KNOWN ISSUES -=-=-=-=-=-=-=- -These are the most commonly-encountered known issues which are specific to -the Beta release of the Linux client. - -* VISUAL EFFECTS AND PERFORMANCE - many Linux graphics drivers are not as - robust as their counterparts for other operating systems, so some advanced - Second Life graphical features have been DISABLED by default to aid - stability. See PROBLEM 3 in the TROUBLESHOOTING section if you wish to - turn these on to possibly enhance your experience. - -* MISC - The following features are not currently fully implemented on the - Linux client and are therefore known not to work properly: - * Full Unicode font rendering - -* UPLOAD / SAVE / COLOR-PICKER DIALOGS - These only appear when the client - is in 'windowed' mode, not 'fullscreen' mode. - -* UPDATING - when the client detects that a new version of Second Life - is available, it will ask you if you wish to download the new version. - This option is not implemented; to upgrade, you should manually download a - new version from the Second Life web site, <http://www.secondlife.com/>. +* No significant known issues at this time. 5. TROUBLESHOOTING @@ -122,10 +108,14 @@ the Beta release of the Linux client. The client prints a lot of diagnostic information to the console it was run from. Most of this is also replicated in ~/.secondlife/logs/SecondLife.log -- this is helpful to read when troubleshooting, especially 'WARNING' lines. +- this is helpful to read when troubleshooting, especially 'WARNING' and +'ERROR' lines. VOICE PROBLEMS? See the separate README-linux-voice.txt file for Voice -troubleshooting information. + troubleshooting information. + +SPACENAVIGATOR OR JOYSTICK PROBLEMS? See the separate + README-linux-joystick.txt file for configuration information. PROBLEM 1:- Second Life fails to start up, with a warning on the console like: 'Error creating window.' or @@ -156,29 +146,21 @@ SOLUTION:- As a last resort, you can disable most of Second Life's advanced graphics features by editing the 'secondlife' script and removing the '#' from the line which reads '#export LL_GL_NOEXT=x' -PROBLEM 3:- Performance or graphical quality are not as high as I expect. -PROBLEM:- 'SHINY' doesn't work. -PROBLEM:- I can't turn on Anisotropic Filtering, Ripple Water, or AGP. -SOLUTION:- Some graphics performance features in Second Life are disabled - by default for the Linux version due to stability issues with some common - Linux graphic drivers. You can re-enable these features at the slight - risk of decreasing system stability. To do so: - * Edit the 'secondlife' script. Comment-out these lines by putting a '#' - in front of them: 'export LL_GL_BASICEXT=x', 'export LL_GL_NOEXT=x', - 'export LL_GL_BLACKLIST=abcdefghijklmno'. - * Now start Second Life. Some advanced performance features will now be - automatically used, and some new options in Preferences will now be - available to you; there is no guarantee, however, that they will - positively affect performance! -SOLUTION:- If you are not running an official Second Life client obtained from - secondlife.com, you should consider doing so as you may find its - performance to be superior to third-party versions. - -PROBLEM 4:- Sound effects seem to 'lag' a fraction of a second behind - actions. -SOLUTION:- You may uncomment the 'LL_BAD_ESD' line in the 'secondlife' script - to get more responsive audio. However, if you do this then you may - encounter audio issues or a hang during login, so beware. +PROBLEM 3:- After I minimize the Second Life window, it's just blank when + it comes back. +SOLUTION:- Some Linux desktop 'Visual Effects' features are incompatible + with Second Life. One reported solution is to use your desktop + configuration program to disable such effects. For example, on Ubuntu 7.10, + use the desktop toolbar menu to select System -> Preferences -> Appearance, + then change 'Visual Effects' to 'None'. + +PROBLEM 4:- Music and sound effects are silent or very stuttery. +SOLUTION:- The most common solution is to ensure that you have the 'esd' + program (part of the 'esound' package) installed and running before you + start Second Life. Users of Ubuntu (and some other) Linux systems can + simply run the following to install and configure 'esound': + sudo apt-get install esound + For others, simply running 'esd&' from a command-line should get it running. PROBLEM 5:- Using the 'Alt' key to control the camera doesn't work or just moves the Second Life window. @@ -187,12 +169,15 @@ SOLUTION:- Some window managers eat the Alt key for their own purposes; you example, the 'Windows' key!) which will allow the Alt key to function properly with mouse actions in Second Life and other applications. -PROBLEM 6:- In-world movie playback doesn't work for me. +PROBLEM 6:- In-world movie, music, or Flash playback doesn't work for me. SOLUTION:- You need to have a working installation of GStreamer 0.10; this is usually an optional package for most versions of Linux. If you have - installed GStreamer 0.10 and you can play some movies but not others then - you need to install a wider selection of GStreamer plugins, either - from your vendor or an appropriate third party. + installed GStreamer 0.10 and you can play some music/movies but not others + then you need to install a wider selection of GStreamer plugins, either + from your vendor (i.e. the 'Ugly' plugins) or an appropriate third party. + For Flash playback, you need to have Flash 10 installed for your normal + web browser (for example, Firefox). PulseAudio is required for Flash + volume control / muting to fully function inside Second Life. 6. ADVANCED TROUBLESHOOTING @@ -201,11 +186,11 @@ SOLUTION:- You need to have a working installation of GStreamer 0.10; this The 'secondlife' script which launches Second Life contains some configuration options for advanced troubleshooters. -* AUDIO - Edit the 'secondlife' script and you will see three audio - options: LL_BAD_ESD, LL_BAD_OSS, LL_BAD_ALSA. Second Life tries to - use ESD, OSS, then ALSA audio drivers in this order; you may uncomment - the corresponding LL_BAD_* option to skip an audio driver which you - believe may be causing you trouble. +* AUDIO - Edit the 'secondlife' script and you will see these audio + options: LL_BAD_OPENAL_DRIVER, LL_BAD_FMOD_ESD, LL_BAD_FMOD_OSS, and + LL_BAD_FMOD_ALSA. Second Life tries to use OpenAL, ESD, OSS, then ALSA + audio drivers in this order; you may uncomment the corresponding LL_BAD_* + option to skip an audio driver which you believe may be causing you trouble. * OPENGL - For advanced troubleshooters, the LL_GL_BLACKLIST option lets you disable specific GL extensions, each of which is represented by a diff --git a/indra/newview/linux_tools/handle_secondlifeprotocol.sh b/indra/newview/linux_tools/handle_secondlifeprotocol.sh index 7ff86d1b93..203012132e 100755 --- a/indra/newview/linux_tools/handle_secondlifeprotocol.sh +++ b/indra/newview/linux_tools/handle_secondlifeprotocol.sh @@ -11,7 +11,7 @@ if [ -z "$URL" ]; then fi RUN_PATH=`dirname "$0" || echo .` -cd "${RUN_PATH}" +cd "${RUN_PATH}/.." exec ./secondlife -url \'"${URL}"\' diff --git a/indra/newview/linux_tools/install.sh b/indra/newview/linux_tools/install.sh new file mode 100755 index 0000000000..c94510267a --- /dev/null +++ b/indra/newview/linux_tools/install.sh @@ -0,0 +1,106 @@ +#!/bin/bash + +# Install the Second Life Viewer. This script can install the viewer both +# system-wide and for an individual user. + +VT102_STYLE_NORMAL='\E[0m' +VT102_COLOR_RED='\E[31m' + +SCRIPTSRC=`readlink -f "$0" || echo "$0"` +RUN_PATH=`dirname "${SCRIPTSRC}" || echo .` +tarball_path=${RUN_PATH} + +function prompt() +{ + local prompt=$1 + local input + + echo -n "$prompt" + + while read input; do + case $input in + [Yy]* ) + return 1 + ;; + [Nn]* ) + return 0 + ;; + * ) + echo "Please enter yes or no." + echo -n "$prompt" + esac + done +} + +function die() +{ + warn $1 + exit 1 +} + +function warn() +{ + echo -n -e $VT102_COLOR_RED + echo $1 + echo -n -e $VT102_STYLE_NORMAL +} + +function homedir_install() +{ + warn "You are not running as a privileged user, so you will only be able" + warn "to install the Second Life Viewer in your home directory. If you" + warn "would like to install the Second Life Viewer system-wide, please run" + warn "this script as the root user, or with the 'sudo' command." + echo + + prompt "Proceed with the installation? [Y/N]: " + if [[ $? == 0 ]]; then + exit 0 + fi + + install_to_prefix "$HOME/.secondlife-install" + $HOME/.secondlife-install/etc/refresh_desktop_app_entry.sh +} + +function root_install() +{ + local default_prefix="/opt/secondlife-install" + + echo -n "Enter the desired installation directory [${default_prefix}]: "; + read + if [[ "$REPLY" = "" ]] ; then + local install_prefix=$default_prefix + else + local install_prefix=$REPLY + fi + + install_to_prefix "$install_prefix" + + mkdir -p /usr/local/share/applications + ${install_prefix}/etc/refresh_desktop_app_entry.sh +} + +function install_to_prefix() +{ + test -e "$1" && backup_previous_installation "$1" + mkdir -p "$1" || die "Failed to create installation directory!" + + echo " - Installing to $1" + + cp -a "${tarball_path}"/* "$1/" || die "Failed to complete the installation!" +} + +function backup_previous_installation() +{ + local backup_dir="$1".backup-$(date -I) + echo " - Backing up previous installation to $backup_dir" + + mv "$1" "$backup_dir" || die "Failed to create backup of existing installation!" +} + + +if [ "$UID" == "0" ]; then + root_install +else + homedir_install +fi diff --git a/indra/newview/linux_tools/launch_url.sh b/indra/newview/linux_tools/launch_url.sh index d2c8919d46..404ea36f26 100755 --- a/indra/newview/linux_tools/launch_url.sh +++ b/indra/newview/linux_tools/launch_url.sh @@ -7,17 +7,15 @@ # # On Unixoids we try, in order of decreasing priority: # - $BROWSER if set (preferred) -# - kfmclient openURL +# - Default GNOME browser +# - Default KDE browser # - x-www-browser -# - opera -# - firefox -# - mozilla -# - netscape +# - The first browser in $BROWSER_COMMANDS that is found. URL="$1" if [ -z "$URL" ]; then - echo "Usage: $0 URL" + echo "Usage: $(basename "$0") URL" exit fi @@ -47,46 +45,42 @@ if [ ! -z "$XBROWSER" ]; then echo "$0: Trying some others..." fi -# else kfmclient -# (embodies KDE concept of 'preferred browser') -if which kfmclient >/dev/null; then - kfmclient openURL "$URL" & - exit -fi - -# else x-www-browser -# (Debianesque idea of a working X browser) -if which x-www-browser >/dev/null; then - x-www-browser "$URL" & - exit -fi - -# else opera -# (if user has opera in their path, they probably went to the -# trouble of installing it -> prefer it) -if which opera >/dev/null; then - opera "$URL" & +# Launcher the default GNOME browser. +if [ ! -z "$GNOME_DESKTOP_SESSION_ID" ] && which gnome-open >/dev/null; then + gnome-open "$URL" & exit fi -# else firefox -if which firefox >/dev/null; then - firefox "$URL" & +# Launch the default KDE browser. +if [ ! -z "$KDE_FULL_SESSION" ] && which kfmclient >/dev/null; then + kfmclient openURL "$URL" & exit fi -# else mozilla -if which mozilla >/dev/null; then - mozilla "$URL" & - exit -fi - -# else netscape -if which netscape >/dev/null; then - netscape "$URL" & - exit -fi +# List of browser commands that will be tried in the order listed. x-www-browser +# will be tried first, which is a debian alternative. +BROWSER_COMMANDS=" \ + x-www-browser \ + firefox \ + mozilla-firefox \ + iceweasel \ + iceape \ + opera \ + epiphany-browser \ + epiphany-gecko \ + epiphany-webkit \ + epiphany \ + mozilla \ + seamonkey \ + galeon \ + dillo \ + netscape" +for browser_cmd in $BROWSER_COMMANDS; do + if which $browser_cmd >/dev/null; then + $browser_cmd "$URL" & + exit + fi +done echo '$0: Failed to find a known browser. Please consider setting the $BROWSER environment variable.' - -# end. +exit 1 diff --git a/indra/newview/linux_tools/refresh_desktop_app_entry.sh b/indra/newview/linux_tools/refresh_desktop_app_entry.sh new file mode 100755 index 0000000000..d2b2a732d5 --- /dev/null +++ b/indra/newview/linux_tools/refresh_desktop_app_entry.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +SCRIPTSRC=`readlink -f "$0" || echo "$0"` +RUN_PATH=`dirname "${SCRIPTSRC}" || echo .` + +install_prefix=${RUN_PATH}/.. + +function install_desktop_entry() +{ + local installation_prefix="$1" + local desktop_entries_dir="$2" + + local desktop_entry="\ +[Desktop Entry]\n\ +Name=Second Life\n\ +Comment=Client for the On-line Virtual World, Second Life\n\ +Exec=${installation_prefix}/secondlife\n\ +Icon=${installation_prefix}/secondlife_icon.png\n\ +Terminal=false\n\ +Type=Application\n\ +Categories=Application;Network;\n\ +StartupNotify=true\n\ +X-Desktop-File-Install-Version=3.0" + + echo " - Installing menu entries in ${desktop_entries_dir}" + mkdir -vp "${desktop_entries_dir}" + echo -e $desktop_entry > "${desktop_entries_dir}/secondlife-viewer.desktop" || "Failed to install application menu!" +} + +if [ "$UID" == "0" ]; then + # system-wide + install_desktop_entry "$install_prefix" /usr/local/share/applications +else + # user-specific + install_desktop_entry "$install_prefix" "$HOME/.local/share/applications" +fi diff --git a/indra/newview/linux_tools/register_secondlifeprotocol.sh b/indra/newview/linux_tools/register_secondlifeprotocol.sh index 4ab96f97d6..16e73cb854 100755 --- a/indra/newview/linux_tools/register_secondlifeprotocol.sh +++ b/indra/newview/linux_tools/register_secondlifeprotocol.sh @@ -7,10 +7,10 @@ HANDLER="$1" RUN_PATH=`dirname "$0" || echo .` -cd "${RUN_PATH}" +cd "${RUN_PATH}/.." if [ -z "$HANDLER" ]; then - HANDLER=`pwd`/handle_secondlifeprotocol.sh + HANDLER=`pwd`/etc/handle_secondlifeprotocol.sh fi # Register handler for GNOME-aware apps @@ -22,13 +22,12 @@ else fi # Register handler for KDE-aware apps -if [ -z "$KDEHOME" ]; then - KDEHOME=~/.kde -fi -LLKDEPROTDIR=${KDEHOME}/share/services -if [ -d "$LLKDEPROTDIR" ]; then - LLKDEPROTFILE=${LLKDEPROTDIR}/secondlife.protocol - cat > ${LLKDEPROTFILE} <<EOF || echo Warning: Did not register secondlife:// handler with KDE: Could not write ${LLKDEPROTFILE} +for LLKDECONFIG in kde-config kde4-config; do + if [ `which $LLKDECONFIG` ]; then + LLKDEPROTODIR=`$LLKDECONFIG --path services | cut -d ':' -f 1` + if [ -d "$LLKDEPROTODIR" ]; then + LLKDEPROTOFILE=${LLKDEPROTODIR}/secondlife.protocol + cat > ${LLKDEPROTOFILE} <<EOF || echo Warning: Did not register secondlife:// handler with KDE: Could not write ${LLKDEPROTOFILE} [Protocol] exec=${HANDLER} '%u' protocol=secondlife @@ -41,6 +40,9 @@ writing=false makedir=false deleting=false EOF -else - echo Warning: Did not register secondlife:// handler with KDE: Directory $LLKDEPROTDIR does not exist. -fi + else + echo Warning: Did not register secondlife:// handler with KDE: Directory $LLKDEPROTODIR does not exist. + fi + fi +done + diff --git a/indra/newview/linux_tools/wrapper.sh b/indra/newview/linux_tools/wrapper.sh index 070d45a5bb..d2df968544 100755 --- a/indra/newview/linux_tools/wrapper.sh +++ b/indra/newview/linux_tools/wrapper.sh @@ -4,21 +4,23 @@ ## These options are for self-assisted troubleshooting during this beta ## testing phase; you should not usually need to touch them. -## - Avoids using the ESD audio driver. -#export LL_BAD_ESD=x - -## - Avoids using the OSS audio driver. -#export LL_BAD_OSS=x - -## - Avoids using the ALSA audio driver. -#export LL_BAD_ALSA=x +## - Avoids using any OpenAL audio driver. +#export LL_BAD_OPENAL_DRIVER=x +## - Avoids using any FMOD audio driver. +#export LL_BAD_FMOD_DRIVER=x + +## - Avoids using the FMOD ESD audio driver. +#export LL_BAD_FMOD_ESD=x +## - Avoids using the FMOD OSS audio driver. +#export LL_BAD_FMOD_OSS=x +## - Avoids using the FMOD ALSA audio driver. +#export LL_BAD_FMOD_ALSA=x ## - 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 'off' for WindLight to help testing. Hopefully it's not -## really needed any more anyway. +## NOTE: This is now disabled by default. #export LL_GL_BASICEXT=x ## - Avoids *all* optional OpenGL extensions. This is the safest and least- @@ -34,6 +36,14 @@ ## 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 [ "`uname -m`" = "x86_64" ]; then + echo '64-bit Linux detected.' +fi ## Everything below this line is just for advanced troubleshooters. ##------------------------------------------------------------------- @@ -44,7 +54,7 @@ ## 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 --log-file=secondlife.vg --leak-check=full --suppressions=/usr/lib/valgrind/glibc-2.5.supp --suppressions=secondlife-i686.supp' +#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 @@ -57,6 +67,12 @@ 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. ##------------------------------------------------------------------- @@ -67,12 +83,14 @@ echo "Running from ${RUN_PATH}" cd "${RUN_PATH}" # Re-register the secondlife:// protocol handler every launch, for now. -./register_secondlifeprotocol.sh +./etc/register_secondlifeprotocol.sh + +# Re-register the application with the desktop system every launch, for now. +./etc/refresh_desktop_app_entry.sh + ## Before we mess with LD_LIBRARY_PATH, save the old one to restore for ## subprocesses that care. -if [ "${LD_LIBRARY_PATH+isset}" = "isset" ]; then - export SAVED_LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" -fi +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' @@ -92,9 +110,9 @@ if [ -n "$LL_TCMALLOC" ]; then fi fi -export SL_ENV='LD_LIBRARY_PATH="`pwd`"/lib:"`pwd`"/app_settings/mozilla-runtime-linux-i686:"${LD_LIBRARY_PATH}"' +export SL_ENV='LD_LIBRARY_PATH="`pwd`"/lib:"${LD_LIBRARY_PATH}"' export SL_CMD='$LL_WRAPPER bin/do-not-directly-run-secondlife-bin' -export SL_OPT="`cat gridargs.dat` $@" +export SL_OPT="`cat etc/gridargs.dat` $@" # Run the program eval ${SL_ENV} ${SL_CMD} ${SL_OPT} || LL_RUN_ERR=runerr @@ -104,8 +122,8 @@ if [ -n "$LL_RUN_ERR" ]; then LL_RUN_ERR_MSG="" if [ "$LL_RUN_ERR" = "runerr" ]; then # generic error running the binary - echo '*** Unclean shutdown. ***' - if [ "`arch`" = "x86_64" ]; then + echo '*** Bad shutdown. ***' + if [ "`uname -m`" = "x86_64" ]; then echo cat << EOFMARKER You are running the Second Life Viewer on a x86_64 platform. The |