Apertura del repositorio

This commit is contained in:
2025-05-24 18:09:39 -03:00
parent 76e6359dad
commit d883ddd0d0
35253 changed files with 2891973 additions and 2 deletions
@@ -0,0 +1,3 @@
If you wish to install Firestorm on your desktop menus, we no longer do this by default. Instead, run:
./etc/refresh_desktop_app_entry.sh
@@ -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).
@@ -0,0 +1,81 @@
Second Life - Linux Voice Support README
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
WHAT IS IT?
-=-=-=-=-=-
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
* 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).
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
-=-=-=-=-=-=-=
* Compatibility with old ALSA-based audio systems (such as Ubuntu Dapper
from 2006) is poor.
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' 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 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
residents nearby are active Voice users.
SOLUTION: This is an incompatibility between the Voice support and your
system's audio (ALSA) driver version/configuration.
a. Back-up and remove your ~/.asoundrc file, re-test.
b. Check for updates to your kernel, kernel modules and ALSA-related
packages using your Linux distribution's package-manager - install these,
reboot and re-test.
c. Update to the latest version of ALSA manually. For a guide, see the
'Update to the Latest Version of ALSA' section of this page:
<https://help.ubuntu.com/community/HdaIntelSoundHowto> or the official
documentation on the ALSA site: <http://www.alsa-project.org/> - reboot
and re-test.
PROBLEM 3: I can hear other people, but they cannot hear me.
SOLUTION:
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 (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.
SOLUTION:
a. Use your system mixer-setting program or the 'alsamixer' program to ensure
that microphone Gain/Boost is not set too high.
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).
+229
View File
@@ -0,0 +1,229 @@
Firestorm - Linux Beta README
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
This document contains information about the Firestorm Linux
client
1. Introduction
2. System Requirements
3. Installing & Running
4. Known Issues
5. Troubleshooting
5.1. 'Error creating window.'
5.2. System hangs
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 and Flash playback
6. Advanced Troubleshooting
6.1. Audio
6.2. OpenGL
7. Obtaining and working with the client source code
8. Getting more help, and reporting problems
1. INTRODUCTION
-=-=-=-=-=-=-=-
Hi! This is a BETA release of the Firestorm client for Linux.
The 'beta' status means that although we're still smoothing-out a few rough
edges, this version of the client is functionally complete and should
work quite well 'out of the box'.
We encourage you to try it out and let us know of its compatibility
with your system. Be aware that although this is a 'beta' client, it connects
to the main Second Life world and changes you make there are permanent.
Please enjoy!
2. SYSTEM REQUIREMENTS
-=-=-=-=-=-=-=-=-=-=-=
Minimum requirements:
* Internet Connection: Cable or DSL
* Computer Processor: 800MHz Pentium III or Athlon or better
(recommended: 1.5GHz or more)
* Computer Memory: 2048MB (ie, 2GB)
* 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, 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, +)
o OR ATI Radeon 8500, 9250, or better
(nVidia cards are recommended for the Linux client)
**NOTE**: Firestorm absolutely requires you to have recent, correctly-
configured OpenGL 3D drivers for your hardware - the graphics drivers
that came with your operating system may not be good enough! See the
TROUBLESHOOTING section if you encounter problems starting Firestorm.
For a more comfortable experience, the RECOMMENDED hardware for the Second
Life Linux client is very similar to that for Windows, as detailed at:
<https://secondlife.com/corporate/sysreqs.php>
3. INSTALLING & RUNNING
-=-=-=-=-=-=-=-=-=-=-=-
The Firestorm 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 './firestorm' from the installation directory to start Firestorm.
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
be able to install it (see TROUBLESHOOTING).
User data is stored in the hidden directory ~/.firestorm by default; you may
override this location with the FIRESTORM_USER_DIR, or FIRESTORM_X64_USER_DIR
if using the 64 bit version, environment variable if you wish.
4. KNOWN ISSUES
-=-=-=-=-=-=-=-
* No significant known issues at this time.
5. TROUBLESHOOTING
-=-=-=-=-=-=-=-=-=
The client prints a lot of diagnostic information to the console it was
run from. Most of this is also replicated in ~/.firestorm/logs/Firestorm.log
- 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.
SPACENAVIGATOR OR JOYSTICK PROBLEMS? See the separate
README-linux-joystick.txt file for configuration information.
PROBLEM 1:- Firestorm fails to start up, with a warning on the console like:
'Error creating window.' or
'Unable to create window, be sure screen is set at 32-bit color' or
'SDL: Couldn't find matching GLX visual.'
SOLUTION:- Usually this indicates that your graphics card does not meet
the minimum requirements, or that your system's OpenGL 3D graphics driver is
not updated and configured correctly. If you believe that your graphics
card DOES meet the minimum requirements then you likely need to install the
official so-called 'non-free' nVidia or ATI (fglrx) graphics drivers; we
suggest one of the following options:
* Consult your Linux distribution's documentation for installing these
official drivers. For example, Ubuntu provides documentation here:
<https://help.ubuntu.com/community/BinaryDriverHowto>
* If your distribution does not make it easy, then you can download the
required Linux drivers straight from your graphics card manufacturer:
- <https://wiki.firestormviewer.org/downloads#video_drivers>
PROBLEM 2:- My whole system seems to hang when running Firestorm.
SOLUTION:- This is typically a hardware/driver issue. The first thing to
do is to check that you have the most recent official drivers for your
graphics card (see PROBLEM 1).
SOLUTION:- Some residents with ATI cards have reported that running
'sudo aticonfig --locked-userpages=off' before running Firestorm solves
their stability issues.
SOLUTION:- As a last resort, you can disable most of Firestorm's advanced
graphics features by editing the 'firestorm' script and removing the '#'
from the line which reads '#export LL_GL_NOEXT=x'
PROBLEM 3:- After I minimize the Firestorm window, it's just blank when
it comes back.
SOLUTION:- Some Linux desktop 'Visual Effects' features are incompatible
with Firestorm. 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 Firestorm. 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 Firestorm window.
SOLUTION:- Some window managers eat the Alt key for their own purposes; you
can configure your window manager to use a different key instead (for
example, the 'Windows' key!) which will allow the Alt key to function
properly with mouse actions in Firestorm and other applications.
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 (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 Firestorm.
6. ADVANCED TROUBLESHOOTING
-=-=-=-=-=-=-=-=-=-=-=-=-=-
The 'firestorm' script which launches Firestorm contains some
configuration options for advanced troubleshooters.
* AUDIO - Edit the 'secondlife' script and you will see these audio
options: LL_BAD_OPENAL_DRIVER, LL_BAD_FMODSTUDIO_DRIVER.
Firestorm tries to use OpenAL, FMODSTUDIO (PULSEAUDIO, 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
letter ("a"-"o"). If you can narrow down a stability problem on your system
to just one or two GL extensions then please post details of your hardware
(and drivers) to the Linux Client Testers forum (see link below) along
with the minimal LL_GL_BLACKLIST which solves your problems. This will help
us to improve stability for your hardware while minimally impacting
performance.
LL_GL_BASICEXT and LL_GL_NOEXT should be commented-out for this to be useful.
7. OBTAINING AND WORKING WITH THE CLIENT SOURCE CODE
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
We're pleased to have released Firestorm client's source code under
an Open Source license compatible with the 'LGPL'.
<https://wiki.firestormviewer.org/downloads#source_code>
8. GETTING MORE HELP AND REPORTING PROBLEMS
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
For general help and support with Firestorm:
<http://wiki.firestormviewer.org>
In-world discussion:
Main support: Join one of our in-world support groups.
<http://wiki.firestormviewer.org/firestorm_in-world_groups>
There is also a 'Linux Client Users' group inside Second Life which
is free to join. You can find it by pressing the 'Search' button at
the bottom of the window and then selecting the 'Groups' tab and
searching for 'Linux'. This group is useful for discussing Linux
issues with fellow Linux client users who are online.
The Firestorm Issue Tracker:
<https://jira.firestormviewer.org/>
This is the right place for finding known issues and reporting new
bugs in all Firestorm releases if you find that the Troubleshooting
section in this file hasn't helped.
+25
View File
@@ -0,0 +1,25 @@
#!/bin/bash
# Send a URL of the form secondlife://... to the viewer.
#
URL="$1"
if [ -z "$URL" ]; then
#echo Usage: $0 secondlife://...
echo "Usage: $0 [ secondlife:// | hop:// ] ..."
exit
fi
RUN_PATH=`dirname "$0" || echo .`
#cd "${RUN_PATH}/.."
ch "${RUN_PATH}"
#exec ./firestorm -url \'"${URL}"\'
if [ `pidof do-not-directly-run-puma-bin` ]; then
exec dbus-send --type=method_call --dest=com.secondlife.ViewerAppAPIService /com/secondlife/ViewerAppAPI com.secondlife.ViewerAppAPI.GoSLURL string:"$1"
else
exec ../firestorm -url \'"${URL}"\'
fi
`
+229
View File
@@ -0,0 +1,229 @@
#!/bin/bash
# Enhanced Puma Viewer Installation Script
# Features:
# - Creates a timestamped backup of existing installation
# - Allows installation with custom suffixes for parallel versions (e.g., beta, release, debug)
# - Supports both system-wide and user-specific installations
# - Provides command-line options for flexibility
# ANSI color codes for styling
VT102_STYLE_NORMAL='\E[0m'
VT102_COLOR_RED='\E[31m'
# Resolve the script's directory
SCRIPTSRC=$(readlink -f "$0" || echo "$0")
RUN_PATH=$(dirname "${SCRIPTSRC}" || echo .)
tarball_path="${RUN_PATH}"
# Default installation directories
DEFAULT_SYSTEM_INSTALL_DIR="/opt/puma"
DEFAULT_USER_INSTALL_DIR="$HOME/puma"
# Backup directory base
BACKUP_BASE_DIR="${DEFAULT_SYSTEM_INSTALL_DIR}_backups"
# Function to display usage information
usage() {
echo "Usage: $0 [OPTIONS]"
echo ""
echo "Options:"
echo " --suffix <suffix> Append a suffix to the installation directory (e.g., beta, release, debug)"
echo " --install-dir <directory> Specify a custom installation directory"
echo " --help, -h Display this help message"
exit 1
}
# Function to prompt the user with a yes/no question
prompt() {
local prompt_message="$1"
local input
echo -n "$prompt_message"
while read -r input; do
case "$input" in
[Yy]* )
return 1
;;
[Nn]* )
return 0
;;
* )
echo "Please enter yes or no."
echo -n "$prompt_message"
;;
esac
done
}
# Function to display warning messages in red
warn() {
echo -e "${VT102_COLOR_RED}$1${VT102_STYLE_NORMAL}"
}
# Function to exit the script with a warning message
die() {
warn "$1"
exit 1
}
# Function to create a timestamped backup of the existing installation
backup_previous_installation() {
local install_dir="$1"
local timestamp=$(date +"%Y%m%d_%H%M%S")
local backup_dir="${install_dir}-${timestamp}"
echo " - Backing up previous installation from ${install_dir} to ${backup_dir}"
mv "$install_dir" "$backup_dir" || die "Failed to create backup of existing installation!"
echo " - Backup created successfully."
}
# Function to install Puma Viewer to the specified directory
install_to_prefix() {
local install_prefix="$1"
# Check if the installation directory already exists
if [[ -e "$install_prefix" ]]; then
backup_previous_installation "$install_prefix"
fi
# Create the installation directory
mkdir -p "$install_prefix" || die "Failed to create installation directory: $install_prefix"
echo " - Installing Puma Viewer to $install_prefix"
# Copy all files from the tarball to the installation directory
cp -a "${tarball_path}/." "$install_prefix/" || die "Failed to complete the installation!"
echo " - Installation completed successfully."
}
# Function for user-specific installation (non-root)
homedir_install() {
warn "You are not running as a privileged user, so you will only be able"
warn "to install the Puma Viewer in your home directory. If you"
warn "would like to install the Puma Viewer system-wide, please run"
warn "this script as the root user, or with the 'sudo' command."
echo
local install_prefix="$DEFAULT_USER_INSTALL_DIR"
if [[ -n "$SUFFIX" ]]; then
install_prefix="${install_prefix}_${SUFFIX}"
fi
echo -n "Enter the desired installation directory [${install_prefix}]: "
read -r user_input
if [[ -n "$user_input" ]]; then
install_prefix="$user_input"
fi
install_to_prefix "${install_prefix}"
"${install_prefix}/etc/refresh_desktop_app_entry.sh"
}
# Function for system-wide installation (root)
root_install() {
local default_prefix="$DEFAULT_SYSTEM_INSTALL_DIR"
# Determine the installation directory based on suffix or custom directory
if [[ -n "$CUSTOM_INSTALL_DIR" ]]; then
local install_prefix="$CUSTOM_INSTALL_DIR"
elif [[ -n "$SUFFIX" ]]; then
local install_prefix="$default_prefix_$SUFFIX"
else
local install_prefix="$default_prefix"
fi
echo -n "Enter the desired installation directory [${install_prefix}]: "
read -r user_input
if [[ -n "$user_input" ]]; then
install_prefix="$user_input"
fi
install_to_prefix "$install_prefix"
# Ensure the applications directory exists
mkdir -p /usr/local/share/applications || die "Failed to create /usr/local/share/applications"
"${install_prefix}/etc/refresh_desktop_app_entry.sh"
}
# Function to parse command-line arguments
parse_arguments() {
while [[ "$#" -gt 0 ]]; do
case $1 in
--suffix)
if [[ -n "$2" && ! "$2" =~ ^-- ]]; then
SUFFIX="$2"
shift 2
else
die "Error: --suffix requires a non-empty option argument."
fi
;;
--install-dir)
if [[ -n "$2" && ! "$2" =~ ^-- ]]; then
CUSTOM_INSTALL_DIR="$2"
shift 2
else
die "Error: --install-dir requires a non-empty option argument."
fi
;;
--help|-h)
usage
;;
*)
die "Unknown option: $1"
;;
esac
done
}
# Function to download Puma Viewer (optional enhancement)
download_puma() {
# Define Puma Viewer download URL
# NOTE: Replace this URL with the actual download link as needed
PUMA_URL="https://avataresargentinos/puma/descargas/linux/puma.tar.gz"
# Temporary download location
TEMP_DOWNLOAD="/tmp/puma.tar.gz"
echo "Downloading Puma Viewer from $PUMA_URL..."
wget -O "$TEMP_DOWNLOAD" "$PUMA_URL" || die "Failed to download Puma Viewer!"
echo "Download completed."
# Extract the tarball to the run path
tar -xzf "$TEMP_DOWNLOAD" -C "$tarball_path" --strip-components=1 || die "Failed to extract Puma Viewer tarball!"
echo "Extraction completed."
# Clean up the downloaded tarball
rm "$TEMP_DOWNLOAD"
}
# Main installation workflow
main() {
echo "Starting Puma Viewer installation script..."
# Parse command-line arguments
parse_arguments "$@"
echo "Installation Options:"
echo " Suffix: ${SUFFIX:-None}"
echo " Custom Install Directory: ${CUSTOM_INSTALL_DIR:-None}"
echo
# Optionally, download Puma Viewer if not already present
# Uncomment the following line if you want the script to handle downloading
# download_Puma
# Determine if the script is run as root
if [[ "$EUID" -eq 0 ]]; then
root_install
else
homedir_install
fi
echo "Puma Viewer installation process completed successfully."
}
# Execute the main function with all passed arguments
main "$@"
+87
View File
@@ -0,0 +1,87 @@
#!/bin/bash
# This script loads a web page in the 'default' graphical web browser.
# It MUST return immediately (or soon), so the browser should be
# launched in the background (thus no text-only browsers).
# This script does not trust the URL to be well-escaped or shell-safe.
#
# On Unixoids we try, in order of decreasing priority:
# - $BROWSER if set (preferred)
# - Default GNOME browser
# - Default KDE browser
# - x-www-browser
# - The first browser in $BROWSER_COMMANDS that is found.
URL="$1"
if [ -z "$URL" ]; then
echo "Usage: $(basename "$0") URL"
exit
fi
# restore LD_LIBRARY_PATH from SAVED_LD_LIBRARY_PATH if it exists
if [ "${SAVED_LD_LIBRARY_PATH+isset}" = "isset" ]; then
export LD_LIBRARY_PATH="${SAVED_LD_LIBRARY_PATH}"
echo "$0: Restored library path to '${SAVED_LD_LIBRARY_PATH}'"
fi
# if $BROWSER is defined, use it.
XBROWSER=`echo "$BROWSER" |cut -f1 -d:`
if [ ! -z "$XBROWSER" ]; then
XBROWSER_CMD=`echo "$XBROWSER" |cut -f1 -d' '`
# look for $XBROWSER_CMD either literally or in PATH
if [ -x "$XBROWSER_CMD" ] || which $XBROWSER_CMD >/dev/null; then
# check for %s string, avoiding bash2-ism of [[ ]]
if echo "$XBROWSER" | grep %s >/dev/null; then
# $XBROWSER has %s which needs substituting
echo "$URL" | xargs -r -i%s $XBROWSER &
exit
fi
# $XBROWSER has no %s, tack URL on the end instead
$XBROWSER "$URL" &
exit
fi
echo "$0: Couldn't find the browser specified by \$BROWSER ($BROWSER)"
echo "$0: Trying some others..."
fi
# Launch the default GNOME browser.
if [ ! -z "$GNOME_DESKTOP_SESSION_ID" ] && which gnome-open >/dev/null; then
gnome-open "$URL" &
exit
fi
# Launch the default KDE browser.
if [ ! -z "$KDE_FULL_SESSION" ] && which kfmclient >/dev/null; then
kfmclient openURL "$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=" \
xdg-open \
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.'
exit 1
+37
View File
@@ -0,0 +1,37 @@
#!/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=Puma Viewer\n\
Comment=Client for accessing 3D virtual worlds\n\
Exec=${installation_prefix}/puma\n\
Icon=${installation_prefix}/puma_icon.png\n\
Terminal=false\n\
Type=Application\n\
Categories=Application;Internet;Network;\n\
StartupNotify=true\n\
X-Desktop-File-Install-Version=3.0\n\
StartupWMClass=do-not-directly-run-puma-bin"
echo " - Installing menu entries in ${desktop_entries_dir}"
mkdir -vp "${desktop_entries_dir}"
echo -e $desktop_entry > "${desktop_entries_dir}/puma-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
+48
View File
@@ -0,0 +1,48 @@
#!/bin/bash
# Register a protocol handler (default: handle_secondlifeprotocol.sh) for
# URLs of the form hop://...
#
HANDLER="$1"
RUN_PATH=`dirname "$0" || echo .`
cd "${RUN_PATH}/.."
if [ -z "$HANDLER" ]; then
HANDLER=`pwd`/etc/handle_secondlifeprotocol.sh
fi
# Register handler for GNOME-aware apps
LLGCONFTOOL2=gconftool-2
if which ${LLGCONFTOOL2} >/dev/null; then
(${LLGCONFTOOL2} -s -t string /desktop/gnome/url-handlers/secondlife/command "${HANDLER} \"%s\"" && ${LLGCONFTOOL2} -s -t bool /desktop/gnome/url-handlers/secondlife/enabled true) || echo Warning: Did not register hop:// handler with GNOME: ${LLGCONFTOOL2} failed.
else
echo Warning: Did not register hop:// handler with GNOME: ${LLGCONFTOOL2} not found.
fi
# Register handler for KDE-aware apps
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 hop:// handler with KDE: Could not write ${LLKDEPROTOFILE}
[Protocol]
exec=${HANDLER} '%u'
protocol=secondlife
input=none
output=none
helper=true
listing=
reading=false
writing=false
makedir=false
deleting=false
EOF
else
echo Warning: Did not register hop:// handler with KDE: Directory $LLKDEPROTODIR does not exist.
fi
fi
done
+48
View File
@@ -0,0 +1,48 @@
#!/bin/bash
# Register a protocol handler (default: handle_secondlifeprotocol.sh) for
# URLs of the form secondlife://...
#
HANDLER="$1"
RUN_PATH=`dirname "$0" || echo .`
cd "${RUN_PATH}/.."
if [ -z "$HANDLER" ]; then
HANDLER=`pwd`/etc/handle_secondlifeprotocol.sh
fi
# Register handler for GNOME-aware apps
LLGCONFTOOL2=gconftool-2
if which ${LLGCONFTOOL2} >/dev/null; then
(${LLGCONFTOOL2} -s -t string /desktop/gnome/url-handlers/secondlife/command "${HANDLER} \"%s\"" && ${LLGCONFTOOL2} -s -t bool /desktop/gnome/url-handlers/secondlife/enabled true) || echo Warning: Did not register secondlife:// handler with GNOME: ${LLGCONFTOOL2} failed.
else
echo Warning: Did not register secondlife:// handler with GNOME: ${LLGCONFTOOL2} not found.
fi
# Register handler for KDE-aware apps
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
input=none
output=none
helper=true
listing=
reading=false
writing=false
makedir=false
deleting=false
EOF
else
echo Warning: Did not register secondlife:// handler with KDE: Directory $LLKDEPROTODIR does not exist.
fi
fi
done
+187
View File
@@ -0,0 +1,187 @@
#!/bin/bash
exportMutliArchDRIPath() {
MULTIARCH="$(dpkg-architecture -a$1 -qDEB_HOST_MULTIARCH 2>/dev/null)"
MULTIARCH_ERR=$?
if [ $MULTIARCH_ERR -eq 0 ]; then
echo "Multi-arch support detected for $1."
MULTIARCH_GL_DRIVERS="/usr/lib/${MULTIARCH}/dri"
if [ -z ${LIBGL_DRIVERS_PATH} ]
then
export LIBGL_DRIVERS_PATH="${MULTIARCH_GL_DRIVERS}"
else
export LIBGL_DRIVERS_PATH="${LIBGL_DRIVERS_PATH}:${MULTIARCH_GL_DRIVERS}"
fi
fi
}
## 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.
## - Avoids using any FMOD STUDIO audio driver.
#export LL_BAD_FMODSTUDIO_DRIVER=x
## - Avoids using any OpenAL audio driver.
#export LL_BAD_OPENAL_DRIVER=x
## - Avoids using the FMOD Studio PulseAudio audio driver.
#export LL_BAD_FMOD_PULSEAUDIO=x
## - Avoids using the FMOD Studio 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 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
## Help fontconfig find its default configuration file, otherwise the viewer will stall
## with Fontconfig error: Cannot load default config file
# export FONTCONFIG_PATH=/etc/fonts
## - Enable NVidia's threaded optimization by default. If you experience
## weird behavior starting with the 6.6.17 Firestorm release that you
## can verify not to be present in earlier versions, comment out the
## next line. Thanks to Jira user Pazako Karu on FIRE-33398 to make us
## aware of this option!
export __GL_THREADED_OPTIMIZATIONS=1
if [ "`uname -m`" = "x86_64" ]; then
echo '64-bit Linux detected.'
fi
## 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
exportMutliArchDRIPath "amd64"
if [ -z ${LIBGL_DRIVERS_PATH} ]
then
export LIBGL_DRIVERS_PATH="/usr/lib64/dri:/usr/lib/dri:/usr/lib/x86_64-linux-gnu/dri"
else
export LIBGL_DRIVERS_PATH="${LIBGL_DRIVERS_PATH}:/usr/lib64/dri:/usr/lib/dri:/usr/lib/x86_64-linux-gnu/dri"
fi
export LIBGL_DRIVERS_PATH="${LIBGL_DRIVERS_PATH}:/usr/lib64/xorg/modules/dri"
echo "LIBGL_DRIVERS_PATH is ${LIBGL_DRIVERS_PATH}"
## - The 'scim' GTK IM module widely crashes the viewer. Avoid it.
if [ "$GTK_IM_MODULE" = "scim" ]; then
export GTK_IM_MODULE=xim
fi
if [ "$XMODIFIERS" = "" ]; then
## IME is valid only for fcitx, not when using ibus
export XMODIFIERS="@im=fcitx"
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 hop:// and secondlife:// protocol handler every launch, for now.
test -x ./etc/register_hopprotocol.sh && ./etc/register_hopprotocol.sh
test -x ./etc/register_secondlifeprotocol.sh && ./etc/register_secondlifeprotocol.sh
# Re-register the application with the desktop system every launch, for now.
# AO: Disabled don't install by default
#./etc/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}"
if ! test -f FS_No_LD_Hacks.txt; then
export LD_LIBRARY_PATH="$PWD/lib:${LD_LIBRARY_PATH}"
# AO: experimentally removing to allow --settings on the command line w/o error. FIRE-1031
#export SL_OPT="`cat etc/gridargs.dat` $@"
# <FS:ND> [blerg] set LD_PRELOAD so plugins will pick up the correct sll libs, otherwise they will pick up the system versions.
LLCRYPTO="`pwd`/lib/libcrypto.so.1.0.0"
LLSSL="`pwd`/lib/libssl.so.1.0.0"
if [ -f ${LLCRYPTO} ]
then
export LD_PRELOAD="${LD_PRELOAD}:${LLCRYPTO}"
fi
if [ -f ${LLSSL} ]
then
export LD_PRELOAD="${LD_PRELOAD}:${LLSSL}"
fi
fi
FSJEMALLOC="$(pwd)/lib/libjemalloc.so"
if [ -f ${FSJEMALLOC} ]
then
echo "Using jemalloc"
export LD_PRELOAD="${LD_PRELOAD}:${FSJEMALLOC}"
fi
# Copy "$@" to ARGS array specifically to delete the --skip-gridargs switch.
# The gridargs.dat file is no more, but we still want to avoid breaking
# scripts that invoke this one with --skip-gridargs.
ARGS=()
for ARG in "$@"; do
if [ "--skip-gridargs" != "$ARG" ]; then
ARGS[${#ARGS[*]}]="$ARG"
fi
done
# Run the program.
# Don't quote $LL_WRAPPER because, if empty, it should simply vanish from the
# command line. But DO quote "${ARGS[@]}": preserve separate args as
# individually quoted.
$LL_WRAPPER bin/do-not-directly-run-puma-bin "${ARGS[@]}"
LL_RUN_ERR=$?
# Handle any resulting errors
if [ $LL_RUN_ERR -ne 0 ]; then
# generic error running the binary
echo '*** Bad shutdown ($LL_RUN_ERR). ***'
fi