Fix remaining issues with new packaging system (mostly Linux)

Thanks to Duncan Armundsen and Damian Zhaoying for the pointers
(merges slightly with alchemy)
This commit is contained in:
Inusaito Sayori
2015-01-27 12:08:46 -05:00
parent a35f159117
commit a7c424fc68
10 changed files with 35 additions and 49 deletions

View File

@@ -93,15 +93,18 @@ LLDir_Linux::LLDir_Linux()
#else #else
mAppRODataDir = tmp_str; mAppRODataDir = tmp_str;
#endif #endif
std::string::size_type build_dir_pos = mExecutableDir.rfind("/indra/viewer-linux-"); std::string::size_type build_dir_pos = mExecutableDir.rfind("/build-linux-");
if (build_dir_pos != std::string::npos) if (build_dir_pos != std::string::npos)
{ {
// ...we're in a dev checkout // ...we're in a dev checkout
mSkinBaseDir = mExecutableDir.substr(0, build_dir_pos) + "/indra/newview/skins"; mSkinBaseDir = mExecutableDir.substr(0, build_dir_pos) + "/indra/newview/skins";
llinfos << "Running in dev checkout with mSkinBaseDir " if (LLFile::isdir(mSkinBaseDir))
<< mSkinBaseDir << llendl; llinfos << "Running in dev checkout with mSkinBaseDir "
<< mSkinBaseDir << LL_ENDL;
else
mSkinBaseDir = "";
} }
else if (mSkinBaseDir.empty())
{ {
// ...normal installation running // ...normal installation running
mSkinBaseDir = mAppRODataDir + mDirDelimiter + "skins"; mSkinBaseDir = mAppRODataDir + mDirDelimiter + "skins";

View File

@@ -130,7 +130,7 @@ LLDir_Win32::LLDir_Win32()
{ {
w_str[size] = '\0'; w_str[size] = '\0';
mExecutablePathAndName = utf16str_to_utf8str(llutf16string(w_str)); mExecutablePathAndName = utf16str_to_utf8str(llutf16string(w_str));
S32 path_end = mExecutablePathAndName.find_last_of('\\'); size_t path_end = mExecutablePathAndName.find_last_of('\\');
if (path_end != std::string::npos) if (path_end != std::string::npos)
{ {
mExecutableDir = mExecutablePathAndName.substr(0, path_end); mExecutableDir = mExecutablePathAndName.substr(0, path_end);
@@ -156,6 +156,8 @@ LLDir_Win32::LLDir_Win32()
mAppRODataDir = mWorkingDir; mAppRODataDir = mWorkingDir;
// if (mExecutableDir.find("indra") == std::string::npos)
// *NOTE:Mani - It is a mistake to put viewer specific code in // *NOTE:Mani - It is a mistake to put viewer specific code in
// the LLDir implementation. The references to 'skins' and // the LLDir implementation. The references to 'skins' and
// 'llplugin' need to go somewhere else. // 'llplugin' need to go somewhere else.
@@ -168,20 +170,9 @@ LLDir_Win32::LLDir_Win32()
mAppRODataDir = mExecutableDir; mAppRODataDir = mExecutableDir;
} }
llinfos << "mAppRODataDir = " << mAppRODataDir << llendl; // LL_INFOS() << "mAppRODataDir = " << mAppRODataDir << LL_ENDL;
std::string::size_type build_dir_pos = mExecutableDir.rfind("indra" + mDirDelimiter); mSkinBaseDir = mAppRODataDir + mDirDelimiter + "skins";
if (build_dir_pos != std::string::npos)
{
// ...we're in a dev checkout
mSkinBaseDir = mExecutableDir.substr(0, build_dir_pos) + "indra" + mDirDelimiter + "newview" + mDirDelimiter + "skins";
llinfos << "Running in dev checkout with mSkinBaseDir " << mSkinBaseDir << llendl;
}
else
{
// ...normal installation running
mSkinBaseDir = mAppRODataDir + mDirDelimiter + "skins";
}
// Build the default cache directory // Build the default cache directory
mDefaultCacheDir = buildSLOSCacheDir(); mDefaultCacheDir = buildSLOSCacheDir();

View File

@@ -41,7 +41,7 @@ applications such as the Second Life Viewer, as follows:
* Ubuntu or Gentoo Linux Configuration: * Ubuntu or Gentoo Linux Configuration:
For a quick start, you can simply paste the following line into a terminal 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: 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.rules' 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 For more comprehensive Linux SpaceNavigator configuration information please
see the section 'Installing SpaceNavigator without the official driver' here: see the section 'Installing SpaceNavigator without the official driver' here:

View File

@@ -22,18 +22,10 @@ REQUIREMENTS
-=-=-=-=-=-= -=-=-=-=-=-=
* A headset/microphone supported by your chosen version of Linux * A headset/microphone supported by your chosen version of Linux
* The ALSA sound system (you probably already have this - * At this time, the PulseAudio audio system is recommended; this software
i.e. the alsa-base and alsa-utils packages on Ubuntu) is already part of most modern (2009+) Linux desktop systems. Alternatively,
the ALSA audio system may be used on systems installed from around
Success with Linux Voice support has been reported on the following 2007 onwards (again this is likely already installed on your system).
systems:
* Ubuntu 6.06 (Dapper) with Intel ICH5/CMI9761A+ audio chipset
* Ubuntu 6.06 (Dapper) with SigmaTel STAC2997 audio chipset
* Ubuntu 6.06 (Dapper) with Creative EMU10K1 audio chipset
* Ubuntu 7.04 (Feisty) with USB Plantronics headset
* Ubuntu 7.04 (Feisty) with Intel HDA audio chipset
* Fedora Core 6 with (unknown) audio chipset
* Ubuntu 8.04 (Hardy) with (unknown) audio chipset
TESTING YOUR SETTINGS TESTING YOUR SETTINGS
-=-=-=-=-=-=-=-=-=-=- -=-=-=-=-=-=-=-=-=-=-
@@ -45,8 +37,8 @@ when you speak.
KNOWN PROBLEMS KNOWN PROBLEMS
-=-=-=-=-=-=-= -=-=-=-=-=-=-=
* The 'Input Level' meter in the Voice Chat Device Settings dialog * Compatibility with old ALSA-based audio systems (such as Ubuntu Dapper
does not respond to audio input. from 2006) is poor.
TROUBLESHOOTING TROUBLESHOOTING
-=-=-=-=-=-=-=- -=-=-=-=-=-=-=-

View File

@@ -55,10 +55,13 @@ Minimum requirements:
is required. If you are running a 64-bit Linux distribution then is required. If you are running a 64-bit Linux distribution then
you will need its 32-bit compatibility environment installed, but you will need its 32-bit compatibility environment installed, but
this configuration is not currently supported. 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: * Video/Graphics Card:
o nVidia GeForce 2, GeForce 4mx, or better (recommend one of the o nVidia GeForce 2, GeForce 4mx, or better (recommend one of the
following: 6700, 6800, 7600, 7800, 7900, 8400, 8500, 8600, 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 o OR ATI Radeon 8500, 9250, or better
(nVidia cards are recommended for the Linux client) (nVidia cards are recommended for the Linux client)
@@ -97,10 +100,7 @@ you wish.
4. KNOWN ISSUES 4. KNOWN ISSUES
-=-=-=-=-=-=-=- -=-=-=-=-=-=-=-
* UPDATING - when the client detects that a new version of Second Life * No significant known issues at this time.
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/>.
5. TROUBLESHOOTING 5. TROUBLESHOOTING

View File

@@ -11,7 +11,7 @@ if [ -z "$URL" ]; then
fi fi
RUN_PATH=`dirname "$0" || echo .` RUN_PATH=`dirname "$0" || echo .`
cd "${RUN_PATH}" cd "${RUN_PATH}/.."
exec ./@VIEWER_BRANDING_ID@ -url \'"${URL}"\' exec ./@VIEWER_BRANDING_ID@ -url \'"${URL}"\'

View File

@@ -77,7 +77,7 @@ function root_install()
install_to_prefix "$install_prefix" install_to_prefix "$install_prefix"
mkdir -p /usr/local/share/applications mkdir -p /usr/local/share/applications
${install_prefix}/refresh_desktop_app_entry.sh ${install_prefix}/etc/refresh_desktop_app_entry.sh
} }
function install_to_prefix() function install_to_prefix()

View File

@@ -3,7 +3,7 @@
SCRIPTSRC=`readlink -f "$0" || echo "$0"` SCRIPTSRC=`readlink -f "$0" || echo "$0"`
RUN_PATH=`dirname "${SCRIPTSRC}" || echo .` RUN_PATH=`dirname "${SCRIPTSRC}" || echo .`
install_prefix=${RUN_PATH} install_prefix=${RUN_PATH}/..
function install_desktop_entry() function install_desktop_entry()
{ {

View File

@@ -109,10 +109,10 @@ echo "Running from ${RUN_PATH}"
cd "${RUN_PATH}" cd "${RUN_PATH}"
# Re-register the secondlife:// protocol handler every launch, for now. # 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. # Re-register the application with the desktop system every launch, for now.
./refresh_desktop_app_entry.sh ./etc/refresh_desktop_app_entry.sh
## Before we mess with LD_LIBRARY_PATH, save the old one to restore for ## Before we mess with LD_LIBRARY_PATH, save the old one to restore for
## subprocesses that care. ## subprocesses that care.
@@ -144,10 +144,10 @@ fi
export VIEWER_BINARY='@VIEWER_BRANDING_ID@-do-not-run-directly' export VIEWER_BINARY='@VIEWER_BRANDING_ID@-do-not-run-directly'
BINARY_TYPE=$(expr match "$(file -b bin/$VIEWER_BINARY)" '\(.*executable\)' | sed -e 's/ / /g') BINARY_TYPE=$(expr match "$(file -b bin/$VIEWER_BINARY)" '\(.*executable\)' | sed -e 's/ / /g')
if [ "${BINARY_TYPE}" == "ELF 64-bit LSB executable" ]; then if [ "${BINARY_TYPE}" == "ELF 32-bit LSB executable" ]; then
SL_ENV+='LD_LIBRARY_PATH="`pwd`/lib64:`pwd`/lib32:$LD_LIBRARY_PATH"' SL_ENV+='LD_LIBRARY_PATH="`pwd`/lib:$LD_LIBRARY_PATH"'
else else
SL_ENV+='LD_LIBRARY_PATH="`pwd`/lib:$LD_LIBRARY_PATH"' SL_ENV+='LD_LIBRARY_PATH="`pwd`/lib64:`pwd`/lib32:$LD_LIBRARY_PATH"'
fi fi
export SL_CMD='$LL_WRAPPER bin/$VIEWER_BINARY' export SL_CMD='$LL_WRAPPER bin/$VIEWER_BINARY'

View File

@@ -900,7 +900,7 @@ class Linux_x86_64Manifest(LinuxManifest):
def construct(self): def construct(self):
super(Linux_x86_64Manifest, self).construct() super(Linux_x86_64Manifest, self).construct()
if (not self.standalone()) and self.prefix(src="../packages/lib/release", alt_build="../packages/libraries/x86_64-linux/lib/release", dst="lib"): if (not self.standalone()) and self.prefix(src="../packages/lib/release", alt_build="../packages/libraries/x86_64-linux/lib/release", dst="lib64"):
self.path("libapr-1.so*") self.path("libapr-1.so*")
self.path("libaprutil-1.so*") self.path("libaprutil-1.so*")
@@ -933,9 +933,9 @@ class Linux_x86_64Manifest(LinuxManifest):
self.path("libboost_system-mt.so.*") self.path("libboost_system-mt.so.*")
self.path("libboost_thread-mt.so.*") self.path("libboost_thread-mt.so.*")
self.end_prefix("lib") self.end_prefix("lib64")
if (not self.standalone()) and self.prefix(src='', alt_build="../packages/lib/release", dst="lib"): if (not self.standalone()) and self.prefix(src='', alt_build="../packages/lib/release", dst="lib64"):
self.add_extra_libraries() self.add_extra_libraries()
self.end_prefix() self.end_prefix()