Update to linux_tools
Modernizes viewer_manifest.py adds install.sh and refresh_desktop_app_entry.sh for those who want to "install" Singularity to their applications. Updates client-readme-voice.txt to explain about Multi-Voice
This commit is contained in:
@@ -4,14 +4,20 @@ 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 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.
|
||||
|
||||
Linux Voice Support is currently EXPERIMENTAL and is known to still
|
||||
have some compatibility issues.
|
||||
|
||||
SINGULARITY MULTI-VOICE
|
||||
-=-=-=-=-=-=-=-=-=-=-=-
|
||||
Singularity multi-voice is an experimental feature that allows you to run multiple
|
||||
SLVoice daemons at the same time, in order to do this, the debug setting VoiceMultiInstance
|
||||
must be TRUE, this allows multiple instances of the viewer to run concurrently and
|
||||
each connect to voice.
|
||||
|
||||
REQUIREMENTS
|
||||
-=-=-=-=-=-=
|
||||
|
||||
@@ -29,6 +35,13 @@ systems:
|
||||
* Fedora Core 6 with (unknown) audio chipset
|
||||
* Ubuntu 8.04 (Hardy) with (unknown) audio chipset
|
||||
|
||||
TESTING YOUR SETTINGS
|
||||
-=-=-=-=-=-=-=-=-=-=-
|
||||
|
||||
* 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
|
||||
-=-=-=-=-=-=-=
|
||||
|
||||
@@ -41,12 +54,12 @@ 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 chat' is enabled in the 'Voice Chat' section of the
|
||||
Preferences window, and that you are in a voice-enabled area
|
||||
(you will see a blue headphone icon in the SL menu-bar).
|
||||
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
|
||||
@@ -65,12 +78,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 'Talk' 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.
|
||||
|
||||
@@ -15,7 +15,7 @@ Life itself - please see <http://www.secondlife.com/whatis/>.
|
||||
5.3. Blank window after minimizing it
|
||||
5.4. Audio
|
||||
5.5. 'Alt' key for camera controls doesn't work
|
||||
5.6. In-world streaming movie/music playback
|
||||
5.6. In-world streaming movie, music and Flash playback
|
||||
6. Advanced Troubleshooting
|
||||
6.1. Audio
|
||||
6.2. OpenGL
|
||||
@@ -75,10 +75,11 @@ 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 Singularity 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.
|
||||
Run ./singularity from the installation directory to start Singularity.
|
||||
|
||||
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
|
||||
@@ -168,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 and/or music 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 music/movies but not others
|
||||
then you need to install a wider selection of GStreamer plugins, either
|
||||
from your vendor or an appropriate third party.
|
||||
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
|
||||
|
||||
106
indra/newview/linux_tools/install.sh
Normal file
106
indra/newview/linux_tools/install.sh
Normal file
@@ -0,0 +1,106 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Install Singularity 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 Singularity Viewer in your home directory. If you"
|
||||
warn "would like to install Singularity 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/.singularity-install"
|
||||
$HOME/.singularity-install/refresh_desktop_app_entry.sh
|
||||
}
|
||||
|
||||
function root_install()
|
||||
{
|
||||
local default_prefix="/opt/singularity-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}/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
|
||||
36
indra/newview/linux_tools/refresh_desktop_app_entry.sh
Normal file
36
indra/newview/linux_tools/refresh_desktop_app_entry.sh
Normal file
@@ -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=Singularity\n\
|
||||
Comment=Client for Online Virtual Worlds, such as Second Life\n\
|
||||
Exec=${installation_prefix}/singularity\n\
|
||||
Icon=${installation_prefix}/singularity_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}/singularity-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
|
||||
@@ -4,10 +4,10 @@
|
||||
## These options are for self-assisted troubleshooting during this beta
|
||||
## testing phase; you should not usually need to touch them.
|
||||
|
||||
## - Avoids using any OpenAL audio driver.
|
||||
#export LL_BAD_OPENAL_DRIVER=x
|
||||
## - Avoids using any FMOD Ex audio driver.
|
||||
#export LL_BAD_FMODEX_DRIVER=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
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
## - Avoids using the FMOD or FMOD Ex ESD audio driver.
|
||||
#export LL_BAD_FMOD_ESD=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
|
||||
@@ -109,6 +108,10 @@ cd "${RUN_PATH}"
|
||||
|
||||
# Re-register the secondlife:// protocol handler every launch, for now.
|
||||
./register_secondlifeprotocol.sh
|
||||
|
||||
# Re-register the application with the desktop system every launch, for now.
|
||||
./refresh_desktop_app_entry.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}"
|
||||
@@ -147,16 +150,11 @@ fi
|
||||
export SL_CMD='$LL_WRAPPER bin/$VIEWER_BINARY'
|
||||
export SL_OPT="`cat gridargs.dat` $@"
|
||||
|
||||
# Run the program
|
||||
# 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 '*** Bad shutdown. ***'
|
||||
|
||||
|
||||
fi
|
||||
if [ -n "$LL_RUN_ERR" = "runerr" ]; then
|
||||
# generic error running the binary
|
||||
echo '*** Bad shutdown. ***'
|
||||
fi
|
||||
|
||||
@@ -1,35 +1,36 @@
|
||||
#!/usr/bin/python
|
||||
# @file viewer_manifest.py
|
||||
# @author Ryan Williams
|
||||
# @brief Description of all installer viewer files, and methods for packaging
|
||||
# them into installers for all supported platforms.
|
||||
#
|
||||
# $LicenseInfo:firstyear=2006&license=viewergpl$
|
||||
#
|
||||
# Copyright (c) 2006-2009, Linden Research, Inc.
|
||||
#
|
||||
# Second Life Viewer Source Code
|
||||
# The source code in this file ("Source Code") is provided by Linden Lab
|
||||
# to you under the terms of the GNU General Public License, version 2.0
|
||||
# ("GPL"), unless you have obtained a separate licensing agreement
|
||||
# ("Other License"), formally executed by you and Linden Lab. Terms of
|
||||
# the GPL can be found in doc/GPL-license.txt in this distribution, or
|
||||
# online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
|
||||
#
|
||||
# There are special exceptions to the terms and conditions of the GPL as
|
||||
# it is applied to this Source Code. View the full text of the exception
|
||||
# in the file doc/FLOSS-exception.txt in this software distribution, or
|
||||
# online at
|
||||
# http://secondlifegrid.net/programs/open_source/licensing/flossexception
|
||||
#
|
||||
# By copying, modifying or distributing this software, you acknowledge
|
||||
# that you have read and understood your obligations described above,
|
||||
# and agree to abide by those obligations.
|
||||
#
|
||||
# ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
|
||||
# WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
|
||||
# COMPLETENESS OR PERFORMANCE.
|
||||
# $/LicenseInfo$
|
||||
#!/usr/bin/env python
|
||||
"""\
|
||||
@file viewer_manifest.py
|
||||
@author Ryan Williams
|
||||
@brief Description of all installer viewer files, and methods for packaging
|
||||
them into installers for all supported platforms.
|
||||
|
||||
$LicenseInfo:firstyear=2006&license=viewergpl$
|
||||
Second Life Viewer Source Code
|
||||
Copyright (c) 2006-2009, Linden Research, Inc.
|
||||
|
||||
The source code in this file ("Source Code") is provided by Linden Lab
|
||||
to you under the terms of the GNU General Public License, version 2.0
|
||||
("GPL"), unless you have obtained a separate licensing agreement
|
||||
("Other License"), formally executed by you and Linden Lab. Terms of
|
||||
the GPL can be found in doc/GPL-license.txt in this distribution, or
|
||||
online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
|
||||
|
||||
There are special exceptions to the terms and conditions of the GPL as
|
||||
it is applied to this Source Code. View the full text of the exception
|
||||
in the file doc/FLOSS-exception.txt in this software distribution, or
|
||||
online at
|
||||
http://secondlifegrid.net/programs/open_source/licensing/flossexception
|
||||
|
||||
By copying, modifying or distributing this software, you acknowledge
|
||||
that you have read and understood your obligations described above,
|
||||
and agree to abide by those obligations.
|
||||
|
||||
ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
|
||||
WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
|
||||
COMPLETENESS OR PERFORMANCE.
|
||||
$/LicenseInfo$
|
||||
"""
|
||||
import sys
|
||||
import os.path
|
||||
import re
|
||||
@@ -56,10 +57,13 @@ class ViewerManifest(LLManifest):
|
||||
|
||||
# include the entire shaders directory recursively
|
||||
self.path("shaders")
|
||||
|
||||
# ... and the entire windlight directory
|
||||
self.path("windlight")
|
||||
|
||||
# ... and the hunspell dictionaries
|
||||
self.path("dictionaries")
|
||||
|
||||
self.end_prefix("app_settings")
|
||||
|
||||
if self.prefix(src="character"):
|
||||
@@ -104,6 +108,7 @@ class ViewerManifest(LLManifest):
|
||||
self.path("*/*/*.html")
|
||||
self.path("*/*/*.gif")
|
||||
self.end_prefix("*/html")
|
||||
|
||||
self.end_prefix("skins")
|
||||
|
||||
# Files in the newview/ directory
|
||||
@@ -359,6 +364,7 @@ class WindowsManifest(ViewerManifest):
|
||||
result += 'File ' + pkg_file + '\n'
|
||||
else:
|
||||
result += 'Delete ' + wpath(os.path.join('$INSTDIR', rel_file)) + '\n'
|
||||
|
||||
# at the end of a delete, just rmdir all the directories
|
||||
if not install:
|
||||
deleted_file_dirs = [os.path.dirname(pair[1].replace(self.get_dst_prefix()+os.path.sep,'')) for pair in self.file_list]
|
||||
@@ -695,6 +701,9 @@ class LinuxManifest(ViewerManifest):
|
||||
self.path("wrapper.sh",self.wrapper_name())
|
||||
self.path("handle_secondlifeprotocol.sh")
|
||||
self.path("register_secondlifeprotocol.sh")
|
||||
self.path("refresh_desktop_app_entry.sh")
|
||||
self.path("launch_url.sh")
|
||||
self.path("install.sh")
|
||||
self.end_prefix("linux_tools")
|
||||
|
||||
# Create an appropriate gridargs.dat for this package, denoting required grid.
|
||||
@@ -707,7 +716,6 @@ class LinuxManifest(ViewerManifest):
|
||||
self.path("secondlife-bin","bin/"+self.binary_name())
|
||||
self.path("../linux_crash_logger/linux-crash-logger","linux-crash-logger.bin")
|
||||
|
||||
self.path("linux_tools/launch_url.sh","launch_url.sh")
|
||||
self.path("../llplugin/slplugin/SLPlugin", "bin/SLPlugin")
|
||||
if self.prefix("res-sdl"):
|
||||
self.path("*")
|
||||
|
||||
Reference in New Issue
Block a user