summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornmaxwell@google.com <nmaxwell@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-20 23:45:59 +0000
committernmaxwell@google.com <nmaxwell@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-20 23:45:59 +0000
commit6a45945266d968f8d1523fecbf85e8f31491b8a3 (patch)
treebec3e6592bef6ff269e6bcb1270acec9a3462a4a
parent7b7ce9d8e46d33664449c940b3e95ede0aecb3e9 (diff)
downloadchromium_src-6a45945266d968f8d1523fecbf85e8f31491b8a3.zip
chromium_src-6a45945266d968f8d1523fecbf85e8f31491b8a3.tar.gz
chromium_src-6a45945266d968f8d1523fecbf85e8f31491b8a3.tar.bz2
Setup script for O3D plugin installer. This is the installer that we will give to users that don't have a .deb or .rpm compatible distro. Creating a new issue since the last one was broken.
Review URL: http://codereview.chromium.org/173081 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23918 0039d316-1c4b-4281-b951-d872f2087c98
-rwxr-xr-xo3d/installer/linux/generic/setup.sh156
1 files changed, 156 insertions, 0 deletions
diff --git a/o3d/installer/linux/generic/setup.sh b/o3d/installer/linux/generic/setup.sh
new file mode 100755
index 0000000..93d6870
--- /dev/null
+++ b/o3d/installer/linux/generic/setup.sh
@@ -0,0 +1,156 @@
+#!/bin/sh
+# Installs O3D plugin for Linux.
+#
+# Copyright 2009, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PATH=$PATH:/usr/bin/:/usr/local/bin
+
+CheckArch() {
+ # Look for 32 or 64 bit arch from the kernel. If we can not get a read
+ # on the arch, we'll go with "unknown".
+ ARCH=$(uname -m)
+ case $ARCH in
+ i?86 | i86*)
+ ARCH="32bit";;
+ x86_64 | amd64)
+ ARCH="64bit";;
+ *)
+ ARCH="unknown";;
+ esac
+
+ echo "System architecture mapped to: $ARCH"
+}
+
+
+SetRootUser() {
+ # We need to be root (or run as sudo) in order to perform setup.
+ USER=$(id -u)
+ if [ "$USER" != "0" ]; then
+ echo "You must be root (or sudo) to install this package."
+ exit 1
+ fi
+}
+
+
+SetupO3d() {
+ # Create npapi plugin directories, copy and symlink libs.
+ O3D_DIR="/opt/google/o3d"
+
+ PLUGIN_DIRS="/usr/lib/firefox/plugins
+ /usr/lib/iceape/plugins
+ /usr/lib/iceweasel/plugins
+ /usr/lib/midbrowser/plugins
+ /usr/lib/mozilla/plugins
+ /usr/lib/xulrunner/plugins
+ /usr/lib/xulrunner-addons/plugins"
+
+ LIBS="libCg.so
+ libCgGL.so
+ libGLEW.so.1.5"
+
+ LIB3D="libnpo3dautoplugin.so"
+
+ echo -n "Creating plugin directories..."
+ mkdir -p $PLUGIN_DIRS $O3D_DIR
+ echo "ok"
+
+ echo -n "Installing files to $O3D_DIR..."
+ install --mode=644 ${LIB3D} $O3D_DIR
+ install --mode=644 ${LIBS} $O3D_DIR
+ echo "ok"
+
+ echo -n "Creating symlinks to plugin..."
+ for dir in $PLUGIN_DIRS; do
+ ln -sf ${O3D_DIR}/${LIB3D} ${dir}/
+ done
+ echo "ok"
+
+ # If 32bit arch, use /usr/lib. If 64bit, use /usr/lib32
+ if [ "$ARCH" = "32bit" ]; then
+ LIBDIR="/usr/lib"
+ elif [ "$ARCH" = "64bit" ]; then
+ LIBDIR="/usr/lib32"
+ NP_WRAP="yes"
+ else
+ echo "$ARCH not recognized"
+ exit 1
+ fi
+
+ echo -n "Creating symlinks to libs..."
+ mkdir -p $LIBDIR
+ for lib in $LIBS; do
+ if [ -e "${LIBDIR}/${lib}" ]; then
+ echo "$lib already exists, not replacing."
+ else
+ ln -s ${O3D_DIR}/${lib} ${LIBDIR}/
+ fi
+ done
+ echo "ok"
+
+ # 64bit only: Check for nspluginwrapper, wrap libnpo3dautoplugin.so if found.
+ if [ "$NP_WRAP" = "yes" ]; then
+ echo -n "Attempting to wrap $LIB3D via nspluginwrapper..."
+ NSPW=$(which nspluginwrapper)
+ if [ -z "$NSPW" ]; then
+ echo "
+ nspluginwrapper not found. Without nspluginwrapper you will be
+ unable to use O3D in 64-bit browsers. Continue installation? (y/N)"
+ read answer
+ if [ "$answer" = "y" ]; then
+ echo "Ok, Installation complete."
+ exit 0
+ else
+ echo "Aborted install at user request."
+ exit 1
+ fi
+ fi
+ WRAPPED_PLUGIN_PATH="/usr/lib/mozilla/plugins/npwrapper.libnpo3dautoplugin.so"
+ APPS="iceape iceweasel firefox xulrunner midbrowser xulrunner-addons"
+ echo -n "Wrapping $LIB3D..."
+ $NSPW -i ${O3D_DIR}/${LIB3D}
+ echo "ok"
+ echo -n "Creating symlinks to npwrapper.libnpo3dautoplugin.so..."
+ for app in $APPS; do
+ ln -sf $WRAPPED_PLUGIN_PATH /usr/lib/${app}/plugins/
+ done
+ echo "ok"
+ fi
+
+ if [ $? -ne 0 ]; then
+ echo "Installation failed"
+ exit 1
+ else
+ echo "Installation completed successfully!"
+ fi
+}
+
+CheckArch
+SetRootUser
+SetupO3d