Refactor uninstall script. No legacy code remains, so relicense under BSD-style license. Remove uninstall app from package for now, until we can come up with a new version that doesn't have any legacy code.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@630 632fc199-4ca6-4c93-a231-07263d6284db
This commit is contained in:
DRC
2011-05-24 13:59:14 +00:00
parent be49b8c0cf
commit 81f5f7c110
4 changed files with 71 additions and 109 deletions

View File

@@ -1,80 +1,88 @@
# Copyright (C)2009-2011 D. R. Commander
# Copyright (C)2009 Sun Microsystems, Inc.
#
# This library is free software and may be redistributed and/or modified under
# the terms of the wxWindows Library License, Version 3.1 or (at your option)
# any later version. The full license is in the LICENSE.txt file included
# with this distribution.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# wxWindows Library License for more details.
/*
* Copyright (C)2009-2011 D. R. Commander. 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 the libjpeg-turbo Project 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 HOLDERS 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.
*/
#!/bin/sh
error()
{
echo $1
exit -1
}
if [ ! "`id -u`" = "0" ]; then
error "This command must be run as root"
echo "ERROR: This script must be executed as root"
exit -1
fi
PKGNAME=@PACKAGE_NAME@
MACPKGNAME=com.$PKGNAME.$PKGNAME
RCPT=/Library/Receipts/$PKGNAME.pkg
PACKAGE=@PACKAGE_NAME@
MACPACKAGE=com.$PACKAGE.$PACKAGE
RECEIPT=/Library/Receipts/$PACKAGE.pkg
LSBOM=
if [ -d $RCPT ]; then
LSBOM='lsbom -s -f -l '$RCPT'/Contents/Archive.bom'
if [ -d $RECEIPT ]; then
LSBOM='lsbom -s -f -l '$RECEIPT'/Contents/Archive.bom'
else
LSBOM='pkgutil --files '$MACPKGNAME
LSBOM='pkgutil --files '$MACPACKAGE
fi
echo Removing files ...
$LSBOM >/dev/null || error "Could not list package contents"
RETCODE=0
PWD=`pwd`
cd /
$LSBOM | while read line; do
if [ ! -d "$line" ]; then rm "$line" 2>&1 || RETCODE=-1; fi
echo Removing package files ...
EXITSTATUS=0
pushd /
($LSBOM || (echo "ERROR: Could not list package contents"; exit -1))
| while read file; do
if [ ! -d "$file" ]; then rm "$file" 2>&1 || EXITSTATUS=-1; fi
done
cd $PWD
popd
echo Removing directories ...
rmdir /opt/$PKGNAME/bin 2>&1 || RETCODE=-1
if [ -d /opt/$PKGNAME/bin ]; then
rmdir /opt/$PKGNAME/bin 2>&1 || RETCODE=-1
echo Removing package directories ...
if [ -d /opt/$PACKAGE/bin ]; then
rmdir /opt/$PACKAGE/bin 2>&1 || EXITSTATUS=-1
fi
if [ -d /opt/$PKGNAME/lib ]; then
rmdir /opt/$PKGNAME/lib 2>&1 || RETCODE=-1
if [ -d /opt/$PACKAGE/lib ]; then
rmdir /opt/$PACKAGE/lib 2>&1 || EXITSTATUS=-1
fi
if [ -d /opt/$PKGNAME/include ]; then
rmdir /opt/$PKGNAME/include 2>&1 || RETCODE=-1
if [ -d /opt/$PACKAGE/include ]; then
rmdir /opt/$PACKAGE/include 2>&1 || EXITSTATUS=-1
fi
rm /opt/$PKGNAME/lib32 2>&1 || RETCODE=-1
rm /opt/$PKGNAME/lib64 2>&1 || RETCODE=-1
if [ -d /opt/$PKGNAME/man/man1 ]; then
rmdir /opt/$PKGNAME/man/man1 2>&1 || RETCODE=-1
rm /opt/$PACKAGE/lib32 2>&1 || EXITSTATUS=-1
rm /opt/$PACKAGE/lib64 2>&1 || EXITSTATUS=-1
if [ -d /opt/$PACKAGE/man/man1 ]; then
rmdir /opt/$PACKAGE/man/man1 2>&1 || EXITSTATUS=-1
fi
if [ -d /opt/$PKGNAME/man ]; then
rmdir /opt/$PKGNAME/man 2>&1 || RETCODE=-1
if [ -d /opt/$PACKAGE/man ]; then
rmdir /opt/$PACKAGE/man 2>&1 || EXITSTATUS=-1
fi
if [ -d /opt/$PKGNAME/classes ]; then
rmdir /opt/$PKGNAME/classes 2>&1 || RETCODE=-1
if [ -d /opt/$PACKAGE/classes ]; then
rmdir /opt/$PACKAGE/classes 2>&1 || EXITSTATUS=-1
fi
rmdir /opt/$PKGNAME 2>&1 || RETCODE=-1
rmdir /Library/Documentation/$PKGNAME 2>&1 || RETCODE=-1
rmdir /opt/$PACKAGE 2>&1 || EXITSTATUS=-1
rmdir /Library/Documentation/$PACKAGE 2>&1 || EXITSTATUS=-1
if [ -d $RCPT ]; then
echo Removing package receipt $RCPT ...
rm -r $RCPT 2>&1 || RETCODE=-1
if [ -d $RECEIPT ]; then
echo Removing package receipt ...
rm -r $RECEIPT 2>&1 || EXITSTATUS=-1
else
echo Forgetting package $MACPKGNAME
pkgutil --forget $MACPKGNAME
echo Forgetting package $MACPACKAGE ...
pkgutil --forget $MACPACKAGE
fi
exit $RETCODE
exit $EXITSTATUS