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:
Lirusaito
2013-04-24 11:37:26 -04:00
parent bfb6e852a2
commit 464b1890f5
6 changed files with 229 additions and 63 deletions

View File

@@ -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.

View File

@@ -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

View 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

View 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

View File

@@ -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

View File

@@ -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("*")