summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornmaxwell@google.com <nmaxwell@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-03 03:52:57 +0000
committernmaxwell@google.com <nmaxwell@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-03 03:52:57 +0000
commit5c63349d029718212dea86dcd91a409c8a27ec1e (patch)
tree03dc67e20992cb7b12efebc8e92b7dc6214db7f7
parent26103c1a53d4db0e87879af3e7ceece412f33f3e (diff)
downloadchromium_src-5c63349d029718212dea86dcd91a409c8a27ec1e.zip
chromium_src-5c63349d029718212dea86dcd91a409c8a27ec1e.tar.gz
chromium_src-5c63349d029718212dea86dcd91a409c8a27ec1e.tar.bz2
Adding uninstall.sh script to be included in self-extracting archive. This will get called within the setup.sh script to uninstall previous versions of O3D. Can also be manually invoked by a user directly to remove files.
Review URL: http://codereview.chromium.org/171128 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25297 0039d316-1c4b-4281-b951-d872f2087c98
-rwxr-xr-xo3d/installer/linux/generic/setup.sh15
-rwxr-xr-xo3d/installer/linux/generic/uninstall.sh114
2 files changed, 127 insertions, 2 deletions
diff --git a/o3d/installer/linux/generic/setup.sh b/o3d/installer/linux/generic/setup.sh
index 6606e18..82d2633 100755
--- a/o3d/installer/linux/generic/setup.sh
+++ b/o3d/installer/linux/generic/setup.sh
@@ -59,6 +59,15 @@ SetRootUser() {
}
+UninstallO3d() {
+ # Uninstall previous version(s) of O3D before running setup
+ if [ -x "/opt/google/o3d/uninstall.sh" ]; then
+ echo "Removing previous version(s) of O3D"
+ /opt/google/o3d/uninstall.sh
+ fi
+}
+
+
SetupO3d() {
# Create npapi plugin directories, copy and symlink libs.
O3D_DIR="/opt/google/o3d"
@@ -83,8 +92,9 @@ SetupO3d() {
echo "ok"
echo -n "Installing files to $O3D_DIR..."
- install --mode=644 ${LIB3D} $O3D_DIR
- install --mode=644 ${LIBS} $LIB_DIR
+ install --mode=0644 ${LIB3D} $O3D_DIR
+ install --mode=0755 ./uninstall.sh $O3D_DIR
+ install --mode=0644 ${LIBS} $LIB_DIR
echo "ok"
echo -n "Creating symlinks to plugin..."
@@ -132,4 +142,5 @@ SetupO3d() {
CheckArch
SetRootUser
+UninstallO3d
SetupO3d
diff --git a/o3d/installer/linux/generic/uninstall.sh b/o3d/installer/linux/generic/uninstall.sh
new file mode 100755
index 0000000..4b94b57
--- /dev/null
+++ b/o3d/installer/linux/generic/uninstall.sh
@@ -0,0 +1,114 @@
+#!/bin/sh
+# Uninstalls 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 uninstall.
+ USER=$(id -u)
+ if [ "$USER" != "0" ]; then
+ echo "You must be root (or sudo) to remove this package."
+ exit 1
+ fi
+}
+
+
+Uninstall() {
+ # Remove O3D plugin, dirs and symlinks.
+ O3D_DIR="/opt/google/o3d"
+ APPS="mozilla firefox iceape iceweasel xulrunner midbrowser xulrunner-addons"
+ LIBS="libCg.so libCgGL.so libGLEW.so.1.5"
+ LIB3D="libnpo3dautoplugin.so"
+ LIB3D_WRAPPED="npwrapper.libnpo3dautoplugin.so"
+
+ # Prompt user for verification to remove files and directories.
+ echo "
+ Do you wish to completely remove all previous version(s) of
+ the O3D plugin, directories and included libs? (y/N)"
+ read answer
+ if [ "$answer" = "y" ]; then
+ echo -n "Removing O3D plugin, directories and libs..."
+ rm ${O3D_DIR}/libnpo3dautoplugin.so
+ rm ${O3D_DIR}/lib/libCg.so
+ rm ${O3D_DIR}/lib/libCgGL.so
+ rm ${O3D_DIR}/lib/libGLEW.so.1.5
+ for app in $APPS; do
+ for lib in $LIBS; do
+ if [ -L "/usr/lib/${app}/plugins/${lib}" ]; then
+ rm /usr/lib/${app}/plugins/${lib}
+ fi
+ done
+ done
+ rm ${O3D_DIR}/uninstall.sh
+ rmdir $O3D_DIR
+ echo "ok"
+ else
+ echo "Aborting at users request"
+ exit 0
+ fi
+
+ # If 64bit, remove the wrapped plugin.
+ if [ "$ARCH" = "64bit" ]; then
+ echo -n "Removing $LIB3D_WRAPPED..."
+ for app in $APPS; do
+ if [ -L "/usr/lib/${app}/plugins/${LIB3D_WRAPPED}" ]; then
+ rm /usr/lib/${app}/plugins/${LIB3D_WRAPPED}
+ fi
+ done
+ echo "Done. Uninstall complete!"
+ exit 0
+ fi
+
+ echo "Done. Uninstall complete!"
+ exit 0
+}
+
+CheckArch
+SetRootUser
+Uninstall