summaryrefslogtreecommitdiff
path: root/www/urchin5
diff options
context:
space:
mode:
authorEdwin Groothuis <edwin@FreeBSD.org>2004-01-03 08:08:51 +0000
committerEdwin Groothuis <edwin@FreeBSD.org>2004-01-03 08:08:51 +0000
commitc55ad84713a31b9d4d30d388223d619077a89a9d (patch)
tree2ad02d77a9d30f0fba50912531ffafa8186ce527 /www/urchin5
parentNew port: chinese/cdrtools (diff)
New port: www/urchin, web traffic analysis tool
Urchin is the most powerful web traffic analysis program available. We have set this to install into $PREFIX/urchin, i.e. /usr/local/urchin and upon completion two services start up, our Apache server on port 9999 and a scheduling daemon. If starting up a service is a problem, it can be adjusted in the Makefile (START_SERVERS = yes). PR: ports/58646 Submitted by: Doug Silver <freebsd@urchin.com>
Notes
Notes: svn path=/head/; revision=97187
Diffstat (limited to 'www/urchin5')
-rw-r--r--www/urchin5/Makefile62
-rw-r--r--www/urchin5/distinfo1
-rw-r--r--www/urchin5/files/install.sh1210
-rw-r--r--www/urchin5/pkg-descr12
-rw-r--r--www/urchin5/pkg-plist601
5 files changed, 1886 insertions, 0 deletions
diff --git a/www/urchin5/Makefile b/www/urchin5/Makefile
new file mode 100644
index 000000000000..d960225f63a3
--- /dev/null
+++ b/www/urchin5/Makefile
@@ -0,0 +1,62 @@
+# New ports collection makefile for: urchin5
+# Date created: September 8, 2003
+# Whom: Urchin Software
+#
+# $FreeBSD$
+#
+
+PORTNAME= urchin
+PORTVERSION= 5.101
+CATEGORIES= www
+MASTER_SITES= ftp://ftp.urchin.com/pub/urchin5/
+DISTNAME= urchin5101_freebsd4x
+
+MAINTAINER= freebsd@urchin.com
+COMMENT= The most powerful web traffic analysis program available
+
+ONLY_FOR_ARCHS= i386
+LICENSE= commercial
+RESTRICTED= "Commercial software, also comes bundled with Apache-SSL"
+NO_BUILD= YES
+NO_CDROM= "Our installer must be run for proper permissions to be set"
+NO_PACKAGE= "Our installer must be run for proper permissions to be set"
+
+# Feel free to change this to the user you want Urchin 5 to
+# run as and the files to be owned by. It's *strongly* advised
+# to make this a non-privileged user. The port can be changed later
+# if desired.
+USER?= nobody
+GROUP?= nobody
+PORT= 9999
+INSTALLDIR= ${PREFIX}/urchin
+QUIET= -q
+START_SERVERS= yes
+
+do-configure:
+ ${CP} ${FILESDIR}/install.sh ./work
+
+do-install:
+ @if test -f ${INSTALLDIR}/data/conf/uconf.uni; then \
+ ${ECHO_CMD} "The Urchin configuration files already exist,"; \
+ ${ECHO_CMD} "so I will attempt to do an upgrade instead of a new installation."; \
+ ${ECHO_CMD} ; \
+ cd ./work; \
+ ${SH} ./install.sh ${QUIET} -d ${INSTALLDIR} -p ${PORT} -u ${USER} -g ${GROUP} -s ${START_SERVERS} -m; \
+ else \
+ cd ./work; \
+ ${SH} ./install.sh ${QUIET} -d ${INSTALLDIR} -p ${PORT} -u ${USER} -g ${GROUP} -s ${START_SERVERS} -n; \
+ fi
+
+post-install:
+ ${INSTALL_DATA} ${INSTALLDIR}/util/urchin_daemons ${PREFIX}/etc/rc.d/urchin5_daemons.sh-dist
+ @if [ ! -f ${PREFIX}/etc/rc.d/urchin5_daemons.sh ]; then \
+ ${ECHO} "Installing ${PREFIX}/etc/rc.d/urchin5_daemons.sh startup file."; \
+ ${INSTALL_SCRIPT} ${INSTALLDIR}/util/urchin_daemons ${PREFIX}/etc/rc.d/urchin5_daemons.sh; \
+ fi
+ @${ECHO_MSG} ""
+ @${ECHO_MSG} "Thank you for installing Urchin 5!"
+ @${ECHO_MSG} ""
+ @${ECHO_MSG} "Be sure to read the license agreement in ${INSTALLDIR}/doc/license.txt"
+ @${ECHO_MSG} ""
+
+.include <bsd.port.mk>
diff --git a/www/urchin5/distinfo b/www/urchin5/distinfo
new file mode 100644
index 000000000000..edccc62619aa
--- /dev/null
+++ b/www/urchin5/distinfo
@@ -0,0 +1 @@
+MD5 (urchin5101_freebsd4x.tar.gz) = 39e554595c6f404dd98c18759e557eda
diff --git a/www/urchin5/files/install.sh b/www/urchin5/files/install.sh
new file mode 100644
index 000000000000..d8318ed51e0d
--- /dev/null
+++ b/www/urchin5/files/install.sh
@@ -0,0 +1,1210 @@
+#!/bin/sh
+#
+# UNIX installation and upgrade script for Urchin
+# Copyright (c) 2003 Urchin Software Corporation
+
+# Set shell variables and defaults for installation
+PATH=/usr/bin:/usr/sbin:/bin:/sbin:$PATH
+OS=`uname -s`
+HOST=`uname -n`
+INSTALLDIR=/usr/local/urchin
+PORT=9999
+NOW=`date +%Y%m%d%H%M%S`
+LANGUAGE=en
+
+# This sets up a portable way to have echo \c and echo -n be equivalent
+case "`echo 'x\c'`" in
+ 'x\c') echo="echo -n" nnl= ;; #BSD style echo
+ x) echo="echo" nnl="\c" ;; #SysV style echo
+ *) echo "$0 quitting: Can't set up echo command" 1>&2; exit 1 ;;
+esac
+
+# Ask user to choose language
+if [ $# -eq 0 ]; then
+ echo "Choose Language: [Default: 1]"
+ echo " 1. English"
+ echo " 2. Japanese / 日本語"
+ $echo "-> ${nnl}"
+ read ans
+ case $ans in
+ ""|1) LANGUAGE=en
+ ;;
+ 2) LANGUAGE=ja
+ ;;
+ esac
+fi
+
+# Language Dictionary
+case $LANGUAGE in
+ en)
+ ENTRY0001="Error"
+ ENTRY0002="Unable to determine the current directory"
+ ENTRY0003="Missing installer file"
+ ENTRY0004="Welcome to the Urchin Installation and Upgrade Utility"
+ ENTRY0005="Please select the installation type"
+ ENTRY0006="New"
+ ENTRY0007="Upgrade"
+ ENTRY0008="Default"
+ ENTRY0009="Version"
+ ENTRY0010="Invalid response. Please try again."
+ ENTRY0011="Please read the install.txt file before continuing. Urchin installs and uses a lightweight Apache webserver for web-based administration and report delivery. The installer may ask for the following information during installation"
+ ENTRY0012="Be sure to backup the current installation before continuing with this upgrade."
+ ENTRY0013="Japanese"
+ ENTRY0014="A port number for the Urchin webserver. Port numbers below 1024 require superuser privileges."
+ ENTRY0015="A valid user and group for ownership and operation."
+ ENTRY0016="Specify the installation directory"
+ ENTRY0017="Specify the directory where Urchin was installed"
+ ENTRY0018="The specified location exists and is not a directory"
+ ENTRY0019="The specified location is not a directory"
+ ENTRY0020="The specified directory does not exist"
+ ENTRY0021="Do you want the script to create it?"
+ ENTRY0022="Yes"
+ ENTRY0023="No"
+ ENTRY0024="Failed to make directory"
+ ENTRY0025="You do not have permissions to write to the specified directory. You may need to rerun this script as root or a different user."
+ ENTRY0026="The specified directory already exists."
+ ENTRY0027="Are you sure you want to install in this location?"
+ ENTRY0028="The specified directory does not contain the necessary files for performing an upgrade."
+ ENTRY0029="Unable to change ownership of files to the specified group. The group is either invalid or you don't have permission to change files to that group."
+ ENTRY0030="Unable to test group argument."
+ ENTRY0031="Invalid option. You cannot specify a new installation and an upgrade at the same time."
+ ENTRY0032="Invalid user."
+ ENTRY0033="You must be root to specify a different user."
+ ENTRY0034="The webserver cannot be run as root."
+ ENTRY0035="Invalid argument supplied after -s option."
+ ENTRY0036="A port number less than 1024 requires superuser privileges."
+ ENTRY0037="The specified port is not available."
+ ENTRY0038="You appear to be downgrading Urchin."
+ ENTRY0039="Installed Version"
+ ENTRY0040="Installer Version"
+ ENTRY0041="Stopping Urchin webserver and scheduler"
+ ENTRY0042="Choose a port number for the webserver"
+ ENTRY0043="Choose a user for the webserver and file ownership"
+ ENTRY0044="Choose a group for the webserver and file ownership"
+ ENTRY0045="Would you like the installer to start the Urchin webserver and scheduler at the end of the installation?"
+ ENTRY0046="Summary Information"
+ ENTRY0047="Installing Urchin"
+ ENTRY0048="Upgrading Urchin"
+ ENTRY0049="Installation Directory"
+ ENTRY0050="Webserver Port"
+ ENTRY0051="Webserver User"
+ ENTRY0052="Webserver Group"
+ ENTRY0053="Start Webserver and Scheduler"
+ ENTRY0054="Press return to continue"
+ ENTRY0055="Please select continue or exit"
+ ENTRY0056="Backing up configuration databases and files"
+ ENTRY0057="The following configuration file is not the same as the distributed version. Please check this file to make sure it contains the correct options"
+ ENTRY0058="Installing Urchin"
+ ENTRY0059="Continue"
+ ENTRY0060="Creating webserver configuration"
+ ENTRY0061="Initializing the configuration databases"
+ ENTRY0062="Upgrading Urchin"
+ ENTRY0063="Updating the configuration databases"
+ ENTRY0064="Setting file ownership and permission"
+ ENTRY0065="Starting the Urchin webserver and scheduler daemon"
+ ENTRY0066="Installation Complete"
+ ENTRY0067="Problems changing permissions on the distribution files"
+ ENTRY0068="The Urchin administrative interface should be ready to use at"
+ ENTRY0069="The Urchin administrative interface will be ready to use at the following address after the webserver and scheduler have been started."
+ ENTRY0070="The administrative interface default username is admin and the password is urchin. A wizard will direct you through the process of licensing the product and changing the default password. We strongly recommend that you change the default value to something more secure."
+ ENTRY0071="To start or stop the Urchin webserver or scheduler, run 'urchinctl start' or 'urchinctl stop' from the installation bin directory."
+ ENTRY0072="Usage"
+ ENTRY0073="directory"
+ ENTRY0074="port"
+ ENTRY0075="user"
+ ENTRY0076="group"
+ ENTRY0077="prints this help message"
+ ENTRY0078="operates the installer in quiet mode (disables some messages)"
+ ENTRY0079="specifies the installation directory"
+ ENTRY0080="specifies the port for the webserver"
+ ENTRY0081="specifies the group for the webserver"
+ ENTRY0082="specifies the user for the webserver"
+ ENTRY0083="specifies whether to start the Urchin webserver and scheduler"
+ ENTRY0084="specifies a new installation"
+ ENTRY0085="specifies an upgrade installation"
+ ENTRY0086="Exit"
+ ENTRY0087="Restarting Urchin webserver and scheduler"
+ ENTRY0088="Determining data and var directory locations"
+ ENTRY0089="Installer cannot continue with upgrade"
+ ENTRY0090="Warning"
+ ;;
+ ja)
+ ENTRY0001="エラー"
+ ENTRY0002="現在のディレクトリが見つかりません"
+ ENTRY0003="インストールファイルが不足しています"
+ ENTRY0004="Urchin インストールとアップグレードユーティリティへようこそ"
+ ENTRY0005="インストールタイプを選択してください。"
+ ENTRY0006="新規"
+ ENTRY0007="アップグレード"
+ ENTRY0008="デフォルト"
+ ENTRY0009="バージョン"
+ ENTRY0010="入力が間違っています。もう一度入力してください。"
+ ENTRY0011="続行する前に install.txt をお読みください。Urchin は、ウェブベースの管理・リポート配布に行うため、軽量化された Apache ウェブサーバーをインストールします。インストール中にこれらの情報を必要とすることがあります。"
+ ENTRY0012="アップグレードを続行する前に、現在インストールされている Urchin をバックアップしてください。"
+ ENTRY0013="日本語"
+ ENTRY0014="Urchin ウェブサーバー用のポート番号です。1024以下のポート番号使用にはスーパーユーザーの権限を必要とします。"
+ ENTRY0015="所有用と操作用の有効なユーザとグループ"
+ ENTRY0016="インストールディレクトリを指定してください"
+ ENTRY0017="Urchin がインストールされているディレクトリを指定してください"
+ ENTRY0018="指定された場所は存在しますが、ディレクトリではありません"
+ ENTRY0019="指定された場所はディレクトリではありません"
+ ENTRY0020="指定されたディレクトリは存在しません"
+ ENTRY0021="スクリプトによってそれを作成しますか?"
+ ENTRY0022="はい"
+ ENTRY0023="いいえ"
+ ENTRY0024="ディレクトリ作成に失敗しました"
+ ENTRY0025="指定されたディレクトリに書き込む権限がありません。ルート、又は別のユーザーでこのスクリプトを再起動してください。"
+ ENTRY0026="指定されたディレクトリはすでに存在します。"
+ ENTRY0027="本当にこの場所にインストールしてもよろしいですか?"
+ ENTRY0028="指定されたディレクトリには、アップグレードに必要なファイルが存在しません。"
+ ENTRY0029="ファイルの所有権を、指定したグループに変更できません。このグループが不正であるか、あなたにファイルをこのグループに変更する権限がありません。"
+ ENTRY0030="グループ引数を変更できません。"
+ ENTRY0031="不正なオプションです。新規インストールとアップグレードを同時に行えません。"
+ ENTRY0032="不正なユーザー"
+ ENTRY0033="違うユーザーを指定するにはルートユーザーになる必要があります。"
+ ENTRY0034="ウェブサーバはルートでは起動できません。"
+ ENTRY0035="-s の後に不正な引数が付いています。"
+ ENTRY0036="1024より小さいポート番号にはスーパーユーザーの権限が必要です。A"
+ ENTRY0037="選択されたポートは有効ではありません。"
+ ENTRY0038="Urchin をダウングレードしようとしています。"
+ ENTRY0039="インストールされたバージョン"
+ ENTRY0040="インストーラのバージョン"
+ ENTRY0041="Urchin ウェブサーバーとスケジューラを停止しいます。"
+ ENTRY0042="ウェブサーバ用のポート番号を選択してください"
+ ENTRY0043="ウェブサーバとファイルの所有権を持つユーザを選択してください"
+ ENTRY0044="ウェブサーバとファイルの所有権を持つグループを選択してください"
+ ENTRY0045="インストールの最後に Urchin ウェブサーバとスケジューラを立ち上げますか?"
+ ENTRY0046="要約情報"
+ ENTRY0047="Urchin インストール中"
+ ENTRY0048="Urchin アップグレード中"
+ ENTRY0049="インストールディレクトリ"
+ ENTRY0050="ウェブサーバポート"
+ ENTRY0051="ウェブサーバユーザー"
+ ENTRY0052="ウェブサーバグループ"
+ ENTRY0053="ウェブサーバとスケジューラを起動してください"
+ ENTRY0054="続けるためにはリターンを押してください"
+ ENTRY0055="Please select continue or exit"
+ ENTRY0056="Backing up configuration databases and files"
+ ENTRY0057="The following configuration file is not the same as the distributed version. Please check this file to make sure it contains the correct options"
+ ENTRY0058="Urchin のインストール中"
+ ENTRY0059="Continue"
+ ENTRY0060="ウェブサーバ設定の作成中"
+ ENTRY0061="設定データベースの初期化中"
+ ENTRY0062="Upgrading Urchin"
+ ENTRY0063="設定データベースのアップデート中"
+ ENTRY0064="ファイル所有権・パーミッションの設定中"
+ ENTRY0065="Urchin ウェブサーバとスケジューラデーモンの起動中"
+ ENTRY0066="インストール完了"
+ ENTRY0067="配布ファイルのパーミッション変更に問題があります"
+ ENTRY0068="Urchin 管理インターフェースは使用中です"
+ ENTRY0069="ウェブサーバとスケジューラ起動後、Urchin 管理インターフェースが以下のアドレスで使用されます。"
+ ENTRY0070="管理インターフェースでは、デフォルトユーザー名は admin、パスワードはurchin です。ウィザードから製品のライセンス化とデフォルトパスワードの変更を行えます。デフォルト値をより安全なものに変更することをお勧めします。"
+ ENTRY0071="Urchin ウェブサーバとスケジューラの起動・停止には、インストール bin ディレクトリから、「urchinctl start」又は「urchinctl stop」を起動してください。"
+ ENTRY0072="使用法"
+ ENTRY0073="ディレクトリ"
+ ENTRY0074="ポート"
+ ENTRY0075="ユーザー"
+ ENTRY0076="グループ"
+ ENTRY0077="このヘルプメッセージをプリントしてください"
+ ENTRY0078="インストーラを quiet モード(幾つかのメッセージが非表示になります)で行ってください"
+ ENTRY0079="インストールディレクトリを指定してください"
+ ENTRY0080="ウェブサーバのポートを指定してください"
+ ENTRY0081="ウェブサーバのグループを指定してください"
+ ENTRY0082="ウェブサーバのユーザを指定してください"
+ ENTRY0083="Urchin ウェブサーバとスケジューラを起動するかを指定してください"
+ ENTRY0084="新規インストールを指定してください"
+ ENTRY0085="アップグレードインストールを指定してください"
+ ENTRY0086="Exit"
+ ENTRY0087="Restarting Urchin webserver and scheduler"
+ ENTRY0088="Determining data and var directory locations"
+ ENTRY0089="Installer cannot continue with upgrade"
+ ENTRY0090="Warning"
+ ;;
+esac
+
+# Function to format text output
+echof () {
+ if [ -f /usr/bin/fmt ] && [ $LANGUAGE = en ]; then
+ echo "$1" | fmt
+ else
+ echo "$1"
+ fi
+}
+
+# Determine the current directory and the location of the installation files
+CURRENTDIR=`pwd`
+if [ "x$CURRENTDIR" = x ]; then
+ echof "## $ENTRY0001: $ENTRY0002"
+ exit 1
+fi
+TEMPDIR=`dirname $0`
+if [ "x$TEMPDIR" != x ] && [ "x$TEMPDIR" != x. ]; then
+ INSTALLERDIR=$CURRENTDIR/$TEMPDIR
+else
+ INSTALLERDIR=$CURRENTDIR
+fi
+
+# Verify installation files are present in the installer's directory
+INSPECTOR=$INSTALLERDIR/inspector
+if [ ! -f "$INSPECTOR" ]; then
+ echof "## $ENTRY0001: $ENTRY0003: $INSPECTOR"
+ exit 1
+fi
+GUNZIP=$INSTALLERDIR/gunzip
+if [ ! -f "$GUNZIP" ]; then
+ if [ -f /usr/bin/gunzip ] && [ -x /usr/bin/gunzip ]; then
+ GUNZIP=/usr/bin/gunzip
+ else
+ echof "## $ENTRY0001: $ENTRY0003: $GUNZIP"
+ exit 1
+ fi
+fi
+DIST=$INSTALLERDIR/urchin.tar.gz
+if [ ! -f "$DIST" ]; then
+ echof "## $ENTRY0001: $ENTRY0003: $DIST"
+ exit 1
+fi
+
+# Get the version number for displaying to the user
+NEWVERSION=`"$INSPECTOR" -v | cut -d ":" -f 2 | cut -d " " -f 3 | cut -c 1,2,3,4`
+MAJORVERSION=`echo $NEWVERSION | cut -c 1`
+MINORVERSION=`echo $NEWVERSION | cut -c 2,3,4`
+
+# Determine username of the person executing this script
+if [ $OS = SunOS ]; then
+ if [ -f /usr/xpg4/bin/id ]; then
+ MYLOGIN=`/usr/xpg4/bin/id -un`
+ fi
+else
+ MYLOGIN=`id -un`
+fi
+
+# Verify MYLOGIN was set
+if [ x$MYLOGIN = x ]; then
+ if [ ! x$USER = x ]; then
+ MYLOGIN=$USER
+ elif [ ! x$LOGNAME = x ]; then
+ MYLOGIN=$LOGNAME
+ else
+ MYLOGIN=nobody
+ fi
+fi
+
+# Set the default user for the web server. This will be verified later...
+if [ $MYLOGIN = root ]; then
+ WUSER=nobody
+else
+ WUSER=$MYLOGIN
+fi
+
+# Set the default group for the user. This will be verified later...
+if [ $OS = SunOS ]; then
+ if [ -f /usr/xpg4/bin/id ]; then
+ WGROUP=`/usr/xpg4/bin/id -gn $WUSER`
+ fi
+else
+ WGROUP=`id -gn $WUSER`
+fi
+if [ x$WGROUP = x ]; then
+ WGROUP=`groups $WUSER | awk '{print $1}'`
+fi
+
+# Set flags for command line options
+dflag=0 # Install Directory flag
+gflag=0 # Group flag
+pflag=0 # Port flag
+qflag=0 # Quiet flag
+sflag=0 # Start scheduler and webserver flag
+tflag=0 # Installation type (new or upgrade)
+uflag=0 # User flag
+
+# Check for a --help argument
+for arg in "$@"; do
+ if [ "x$arg" = x--help ]; then
+ $0 -h
+ exit 0
+ fi
+done
+
+# Read in command line arguments and set flags and variables accordingly
+while getopts d:g:hnmp:qs:u: OPT; do
+ case $OPT in
+ # Partially verify the installation directory
+ d) if [ "x$OPTARG" != x ]; then
+ if [ -r "$OPTARG" ] || [ -w "$OPTARG" ] || [ -x "$OPTARG" ] && [ ! -d "$OPTARG" ]; then
+ echof "## $ENTRY0001: $ENTRY0018: $OPTARG"
+ exit 1
+ fi
+ # Perform remainder of directory checks at end of the getopts while loop right after
+ # selection of installation type.
+ INSTALLDIR=$OPTARG
+ dflag=1
+ fi
+ ;;
+ # Verify the group
+ g) if [ x$OPTARG != x ]; then
+ if [ ! -d /tmp/.urchin$$ ] && [ ! -f /tmp/.urchin$$ ] && [ ! -r /tmp/.urchin$$ ] && [ ! -w /tmp/.urchin$$ ] && [ ! -x /tmp/.urchin$$ ]; then
+ touch /tmp/.urchin$$
+ chgrp $OPTARG /tmp/.urchin$$ > /dev/null 2>&1
+ if [ $? != 0 ]; then
+ echof "## $ENTRY0001: $ENTRY0029: $OPTARG"
+ exit 1
+ else
+ WGROUP=$OPTARG
+ gflag=1
+ fi
+ if [ -f /tmp/.urchin$$ ]; then
+ rm /tmp/.urchin$$
+ fi
+ else
+ echof "## $ENTRY0001: $ENTRY0030"
+ fi
+ fi
+ ;;
+ # Print help information
+ h) echof "$ENTRY0072: $0 [-h] [-q] [-d $ENTRY0073] [-p $ENTRY0074] [-g $ENTRY0076] [-u $ENTRY0075] [-s (yes|no)] [-n|-m]"
+ echof " -h $ENTRY0077"
+ echof " -q $ENTRY0078"
+ echof " -d $ENTRY0079"
+ echof " -p $ENTRY0080"
+ echof " -g $ENTRY0081"
+ echof " -u $ENTRY0082"
+ echof " -s $ENTRY0083"
+ echof " -n $ENTRY0084"
+ echof " -m $ENTRY0085"
+ echof ""
+ exit 0
+ ;;
+ # New installation
+ n) if [ $tflag -eq 0 ]; then
+ upgrade=0
+ tflag=1
+ else
+ if [ $upgrade -eq 1 ]; then
+ echof "## $ENTRY0001: $ENTRY0031"
+ exit 1
+ fi
+ fi
+ ;;
+ # Upgrade installation
+ m) if [ $tflag -eq 0 ]; then
+ upgrade=1
+ tflag=1
+ else
+ if [ $upgrade -eq 0 ]; then
+ echof "## $ENTRY0001: $ENTRY0031"
+ exit 1
+ fi
+ fi
+ ;;
+ # Verify the port
+ p) if [ x$OPTARG != x ]; then
+ if [ $MYLOGIN != root ] && [ $OPTARG -lt 1024 ]; then
+ echof "## $ENTRY0001: $ENTRY0036: $OPTARG"
+ exit 1
+ else
+ PORT=$OPTARG
+ pflag=1
+ fi
+ fi
+ ;;
+ # Set the quiet flag
+ q) qflag=1
+ ;;
+ # Set the start flag
+ s) if [ x$OPTARG != x ]; then
+ if [ x$OPTARG = xyes ]; then
+ startservers=1
+ elif [ x$OPTARG = xno ]; then
+ startservers=0
+ else
+ echof "## $ENTRY0001: $ENTRY0035"
+ exit 1
+ fi
+ sflag=1
+ fi
+ ;;
+ # Verify the user
+ u) if [ x$OPTARG != x ]; then
+ if [ $OPTARG = root ]; then
+ echof "## $ENTRY0001: $ENTRY0034: $OPTARG"
+ exit 1
+ fi
+ id $OPTARG > /dev/null 2>&1
+ if [ ! $? = 0 ]; then
+ echof "## $ENTRY0001: $ENTRY0032: $OPTARG"
+ exit 1
+ elif [ $OPTARG != $MYLOGIN ] && [ $MYLOGIN != root ]; then
+ echof "## $ENTRY0001: $ENTRY0033: $OPTARG"
+ exit 1
+ else
+ WUSER=$OPTARG
+ uflag=1
+ fi
+ fi
+ ;;
+ \?) $0 -h
+ exit 1
+ ;;
+ esac
+done
+
+# Print installation splash screen and basic information
+if [ $qflag -eq 0 ]; then
+ clear
+ echof "------------------------------------------------------------------------"
+ echof "-- $ENTRY0004"
+ echof "-- $ENTRY0009 $MAJORVERSION.$MINORVERSION"
+ echof "------------------------------------------------------------------------"
+ echof ""
+ echof "$ENTRY0011:"
+ echof " 1. $ENTRY0014"
+ echof " 2. $ENTRY0015"
+ echof ""
+fi
+
+# Prompt user for new install vs upgrade
+if [ $tflag -eq 0 ]; then
+ wflag=0
+ while [ $wflag -eq 0 ]; do
+ echof "$ENTRY0005 [$ENTRY0008: 1]"
+ echof " 1. $ENTRY0006"
+ echof " 2. $ENTRY0007"
+ $echo "-> ${nnl}"
+ read ans
+ case $ans in
+ ""|1) upgrade=0
+ wflag=1
+ ;;
+ 2) upgrade=1
+ wflag=1
+ ;;
+ *) echof "$ENTRY0010"
+ ;;
+ esac
+ echof ""
+ done
+fi
+
+# Warn user to backup before proceeding
+if [ $upgrade -eq 1 ] && [ $qflag -eq 0 ]; then
+ echof "$ENTRY0012"
+ echof ""
+fi
+
+# Finish verification of directory entered as a command line option based on installation type.
+if [ $dflag -eq 1 ]; then
+ # Check if $INSTALLDIR does not exist
+ if [ ! -d "$INSTALLDIR" ]; then
+ if [ $upgrade -eq 0 ]; then
+ mkdir "$INSTALLDIR"
+ if [ $? -gt 0 ]; then
+ echof "## $ENTRY0001: $ENTRY0024: $INSTALLDIR"
+ exit 1
+ fi
+ else
+ echof "## $ENTRY0001: $ENTRY0020: $INSTALLDIR"
+ exit 1
+ fi
+ # Check if $INSTALLDIR is not writeable
+ elif [ ! -w "$INSTALLDIR" ]; then
+ echof "## $ENTRY0001: $ENTRY0025: $INSTALLDIR"
+ exit 1
+ fi
+fi
+
+# Verify the port is available if this is a new installation and the port was a command line option.
+if [ $upgrade -eq 0 ] && [ $pflag -eq 1 ]; then
+ "$INSPECTOR" -P $PORT
+ if [ $? -ne 0 ]; then
+ echof "## $ENTRY0001: $ENTRY0037: $PORT"
+ exit 1
+ fi
+fi
+
+# ---Installation Directory---
+# Perform necessary checks on the installation directory entered by the user
+if [ $dflag -eq 0 ]; then
+ wflag=0
+ while [ $wflag -eq 0 ]; do
+ # Prompt user for installation directory
+ if [ $upgrade -eq 0 ]; then
+ echof "$ENTRY0016 [$ENTRY0008: $INSTALLDIR]:"
+ $echo "-> ${nnl}"
+ else
+ echof "$ENTRY0017 [$ENTRY0008: $INSTALLDIR]:"
+ $echo "-> ${nnl}"
+ fi
+ read dir
+ echof ""
+
+ # Assign default answer to $dir if nothing was entered
+ if [ "x$dir" = "x" ]; then
+ dir=$INSTALLDIR
+ fi
+
+ # Verify that $dir is not already a file
+ if [ -r "$dir" -o -w "$dir" -o -x "$dir" ] && [ ! -d "$dir" ]; then
+ if [ $upgrade -eq 0 ]; then
+ echof "$ENTRY0018: $dir"
+ else
+ echof "$ENTRY0019: $dir"
+ fi
+ echof ""
+ # Check if $dir does not exist
+ elif [ ! -d "$dir" ]; then
+ if [ $upgrade -eq 0 ]; then
+ echof "$ENTRY0020: $dir"
+ echof ""
+ wflag2=0
+ while [ $wflag2 -eq 0 ]; do
+ # Prompt user regarding creation of $dir
+ echof "$ENTRY0021 [$ENTRY0008: 1]"
+ echof " 1. $ENTRY0022"
+ echof " 2. $ENTRY0023"
+ $echo "-> ${nnl}"
+ read ans
+ case $ans in
+ ""|1) mkdir "$dir"
+ if [ $? -gt 0 ]; then
+ echof "## $ENTRY0001: $ENTRY0024: $dir"
+ exit 1
+ fi
+ INSTALLDIR=$dir
+ wflag2=1
+ wflag=1
+ ;;
+ 2) wflag2=1
+ ;;
+ *) echof "$ENTRY0010"
+ ;;
+ esac
+ echof ""
+ done
+ else
+ echof "$ENTRY0020: $dir"
+ echof ""
+ fi
+ elif [ ! -w "$dir" ]; then
+ echof "$ENTRY0025"
+ echof ""
+ else
+ if [ $upgrade -eq 0 ]; then
+ wflag2=0
+ echof "$ENTRY0026"
+ while [ $wflag2 -eq 0 ]; do
+ echof "$ENTRY0027 [$ENTRY0008: 2]"
+ echof " 1. $ENTRY0022"
+ echof " 2. $ENTRY0023"
+ $echo "-> ${nnl}"
+ read ans
+ case $ans in
+ 1) wflag2=1
+ INSTALLDIR=$dir
+ wflag=1
+ ;;
+ ""|2) wflag2=1
+ ;;
+ *) echof "$ENTRY0010"
+ ;;
+ esac
+ echof ""
+ done
+ else
+ if [ ! -f "$dir/bin/urchin" ]; then
+ echof "$ENTRY0028"
+ echof ""
+ else
+ INSTALLDIR=$dir
+ wflag=1
+ fi
+ fi
+ fi
+ done
+fi
+
+# Verify this is an upgrade and not a downgrade
+if [ $upgrade -eq 1 ]; then
+ # Check the version number to make sure this is an upgrade and not a downgrade.
+ OLDVERSION=0
+ if [ -x "$INSTALLDIR/bin/urchin" ]; then
+ OLDVERSION=`"$INSTALLDIR/bin/urchin" -v | cut -d ":" -f 2 | cut -d " " -f 3 | cut -c 1,2,3,4`
+ fi
+ if [ $NEWVERSION -lt $OLDVERSION ]; then
+ echof "## $ENTRY0001: $ENTRY0038"
+ echof "$ENTRY0039: $OLDVERSION"
+ echof "$ENTRY0040: $NEWVERSION"
+ exit 1
+ fi
+fi
+
+# Determine the locations of the data and var directories from urchin.conf
+INSTALLDATADIR="$INSTALLDIR/data"
+INSTALLVARDIR="$INSTALLDIR/var"
+if [ $upgrade -eq 1 ]; then
+ if [ $qflag -eq 0 ]; then
+ echof "$ENTRY0088"
+ fi
+ if [ -f "$INSTALLDIR/etc/urchin.conf" ]; then
+ DATADIR=`grep "^[ \t]*dataDirectory:" "$INSTALLDIR/etc/urchin.conf" | cut -d : -f 2 | sed -e 's/^[ \t]*//'`
+ VARDIR=`grep "^[ \t]*varDirectory:" "$INSTALLDIR/etc/urchin.conf" | cut -d : -f 2 | sed -e 's/^[ \t]*//'`
+ fi
+ if [ x$DATADIR != x ]; then
+ LETTER1=`echo "$DATADIR" | cut -c 1`
+ if [ x$LETTER1 = x/ ]; then
+ INSTALLDATADIR="$DATADIR"
+ else
+ INSTALLDATADIR="$INSTALLDIR/$DATADIR"
+ fi
+ fi
+ if [ x$VARDIR != x ]; then
+ LETTER1=`echo "$VARDIR" | cut -c 1`
+ if [ x$LETTER1 = x/ ]; then
+ INSTALLVARDIR="$VARDIR"
+ else
+ INSTALLVARDIR="$INSTALLDIR/$VARDIR"
+ fi
+ fi
+
+ # Verify that the data directory is a directory and is writable
+ if [ -r "$INSTALLDATADIR" -o -w "$INSTALLDATADIR" -o -x "$INSTALLDATADIR" ] && [ ! -d "$INSTALLDATADIR" ]; then
+ echof "## $ENTRY0001: $ENTRY0018: $INSTALLDATADIR"
+ echof "## $ENTRY0089"
+ exit 1
+ elif [ ! -d "$INSTALLDATADIR" ]; then
+ echof "## $ENTRY0001: $ENTRY0020: $INSTALLDATADIR"
+ echof "## $ENTRY0089"
+ exit 1
+ elif [ ! -w "$INSTALLDATADIR" ]; then
+ echof "## $ENTRY0001: $ENTRY0025: $INSTALLDATADIR"
+ echof "## $ENTRY0089"
+ exit 1
+ fi
+
+ # Verify that the var directory is a directory and is writable
+ if [ -r "$INSTALLVARDIR" -o -w "$INSTALLVARDIR" -o -x "$INSTALLVARDIR" ] && [ ! -d "$INSTALLVARDIR" ]; then
+ echof "## $ENTRY0001: $ENTRY0018: $INSTALLVARDIR"
+ echof "## $ENTRY0089"
+ exit 1
+ elif [ ! -d "$INSTALLVARDIR" ]; then
+ echof "## $ENTRY0001: $ENTRY0020: $INSTALLVARDIR"
+ echof "## $ENTRY0089"
+ exit 1
+ elif [ ! -w "$INSTALLVARDIR" ]; then
+ echof "## $ENTRY0001: $ENTRY0025: $INSTALLVARDIR"
+ echof "## $ENTRY0089"
+ exit 1
+ fi
+
+ if [ $qflag -eq 0 ]; then
+ echof ""
+ fi
+fi
+
+# Shutdown the webserver and scheduler if they are running
+if [ -f "$INSTALLVARDIR/httpd.pid" ] || [ -f "$INSTALLVARDIR/urchind.pid" ] || [ -f "$INSTALLVARDIR/urchinwebd.pid" ]; then
+ if [ $qflag -eq 0 ]; then
+ echof "$ENTRY0041"
+ if [ -f "$INSTALLDIR/bin/wrapper" ]; then
+ cd "$INSTALLDIR/bin"
+ ./wrapper -disable
+ cd "$CURRENTDIR"
+ else
+ "$INSTALLDIR/bin/urchinctl" stop
+ fi
+ echof ""
+ else
+ if [ -f "$INSTALLDIR/bin/wrapper" ]; then
+ cd "$INSTALLDIR/bin"
+ ./wrapper -disable > /dev/null 2>&1
+ cd "$CURRENTDIR"
+ else
+ "$INSTALLDIR/bin/urchinctl" stop > /dev/null 2>&1
+ fi
+ fi
+fi
+
+# Verify the port is available if this is an upgrade and the port was a command line option.
+if [ $upgrade -eq 1 ] && [ $pflag -eq 1 ]; then
+ "$INSPECTOR" -P $PORT
+ if [ $? -ne 0 ]; then
+ echof "## $ENTRY0001: $ENTRY0037: $PORT"
+ exit 1
+ fi
+fi
+
+# ---Webserver Configuration---
+# Prompt user for the webserver port
+if [ $pflag -eq 0 ]; then
+ wflag=0
+ while [ $wflag -eq 0 ]; do
+ if [ $upgrade -eq 0 ]; then
+ echof "$ENTRY0042 [$ENTRY0008: $PORT]"
+ $echo "-> ${nnl}"
+ else
+ port=0
+ if [ -r "$INSTALLVARDIR/urchinwebd.conf" ]; then
+ port=`grep "^Port" "$INSTALLVARDIR/urchinwebd.conf" | cut -d " " -f 2`
+ elif [ -r "$INSTALLDIR/etc/httpd.conf" ]; then
+ port=`grep "^Port" "$INSTALLDIR/etc/httpd.conf" | cut -d " " -f 2`
+ fi
+ if [ $port -ne 0 ]; then
+ PORT=$port
+ fi
+ echof "$ENTRY0042 [$ENTRY0008: $PORT]"
+ $echo "-> ${nnl}"
+ fi
+ read portin
+ echof ""
+ if [ x$portin = x ]; then
+ portin=$PORT
+ fi
+ if [ $MYLOGIN != root ] && [ $portin -lt 1024 ]; then
+ echof "$ENTRY0036"
+ echof ""
+ else
+ # Verify the port is available
+ "$INSPECTOR" -P $portin
+ if [ $? -ne 0 ]; then
+ echof "$ENTRY0037"
+ echof ""
+ else
+ PORT=$portin
+ wflag=1
+ fi
+ fi
+ done
+fi
+
+# Determine and verify the user
+if [ $uflag -eq 0 ]; then
+ # If we're root, we can choose which user to run the webserver as
+ if [ $MYLOGIN = root ]; then
+ wflag=0
+ while [ $wflag -eq 0 ]; do
+ if [ $upgrade -eq 0 ]; then
+ echof "$ENTRY0043 [$ENTRY0008: $WUSER]"
+ $echo "-> ${nnl}"
+ else
+ if [ -r "$INSTALLVARDIR/urchinwebd.conf" ]; then
+ user=`grep "^User" "$INSTALLVARDIR/urchinwebd.conf" | cut -d " " -f 2`
+ elif [ -r "$INSTALLDIR/etc/httpd.conf" ]; then
+ user=`grep "^User" "$INSTALLDIR/etc/httpd.conf" | cut -d " " -f 2`
+ fi
+ if [ x$user != x ]; then
+ WUSER=$user
+ fi
+ echof "$ENTRY0043 [$ENTRY0008: $WUSER]"
+ $echo "-> ${nnl}"
+ fi
+ read userin
+ echof ""
+ if [ x$userin = x ]; then
+ userin=$WUSER
+ fi
+ if [ $userin = root ]; then
+ echof "$ENTRY0034"
+ echof ""
+ else
+ id $userin > /dev/null 2>&1
+ if [ $? -ne 0 ]; then
+ echof "$ENTRY0032"
+ echof ""
+ else
+ WUSER=$userin
+ wflag=1
+ fi
+ fi
+ done
+ fi
+fi
+
+# Determine and verify the group
+if [ $gflag -eq 0 ]; then
+ # If we're root, we can choose which group to run the webserver as
+ if [ $MYLOGIN = root ]; then
+ wflag=0
+ while [ $wflag -eq 0 ]; do
+ if [ $OS = SunOS ]; then
+ if [ -f /usr/xpg4/bin/id ]; then
+ WGROUP=`/usr/xpg4/bin/id -gn $WUSER`
+ fi
+ else
+ WGROUP=`id -gn $WUSER`
+ fi
+ if [ x$WGROUP = x ]; then
+ WGROUP=`groups $WUSER | awk '{print $1}'`
+ fi
+ if [ $upgrade -eq 0 ]; then
+ echof "$ENTRY0044 [$ENTRY0008: $WGROUP]"
+ $echo "-> ${nnl}"
+ else
+ if [ -r "$INSTALLVARDIR/urchinwebd.conf" ]; then
+ group=`grep "^Group" "$INSTALLVARDIR/urchinwebd.conf" | cut -d " " -f 2`
+ elif [ -r "$INSTALLDIR/etc/httpd.conf" ]; then
+ group=`grep "^Group" "$INSTALLDIR/etc/httpd.conf" | cut -d " " -f 2`
+ fi
+ if [ x$group != x ]; then
+ WGROUP=$group
+ fi
+ echof "$ENTRY0044 [$ENTRY0008: $WGROUP]"
+ $echo "-> ${nnl}"
+ fi
+ read groupin
+ echof ""
+ if [ x$groupin = x ]; then
+ groupin=$WGROUP
+ fi
+ touch "$INSTALLDIR/.urchin$$"
+ chgrp $groupin "$INSTALLDIR/.urchin$$" > /dev/null 2>&1
+ if [ $? != 0 ]; then
+ echof "$ENTRY0029"
+ echof ""
+ else
+ WGROUP=$groupin
+ wflag=1
+ fi
+ rm "$INSTALLDIR/.urchin$$"
+ done
+ fi
+fi
+
+# Verify the user wishes to start the webserver and scheduler
+if [ $sflag -eq 0 ]; then
+ wflag=0
+ while [ $wflag -eq 0 ]; do
+ echof "$ENTRY0045 [$ENTRY0008: 1]"
+ echof " 1. $ENTRY0022"
+ echof " 2. $ENTRY0023"
+ $echo "-> ${nnl}"
+ read ans
+ case $ans in
+ ""|1) startservers=1
+ wflag=1
+ ;;
+ 2) startservers=0
+ wflag=1
+ ;;
+ *) echof "$ENTRY0010"
+ ;;
+ esac
+ echof ""
+ done
+fi
+
+# Print summary information for installation
+if [ $qflag -eq 0 ]; then
+ echof "------------------------------------------------------------------------"
+ echof "-- $ENTRY0046"
+ if [ $upgrade -eq 0 ]; then
+ echof "-- $ENTRY0047 $MAJORVERSION.$MINORVERSION"
+ else
+ echof "-- $ENTRY0048 $MAJORVERSION.$MINORVERSION"
+ fi
+ echof "------------------------------------------------------------------------"
+ echof ""
+ echof "$ENTRY0049: $INSTALLDIR"
+ echof "$ENTRY0050: $PORT"
+ echof "$ENTRY0051: $WUSER"
+ echof "$ENTRY0052: $WGROUP"
+ if [ $startservers -eq 1 ]; then
+ echof "$ENTRY0053: $ENTRY0022"
+ else
+ echof "$ENTRY0053: $ENTRY0023"
+ fi
+ echof ""
+fi
+
+# Prompt user to continue or exit
+if [ $qflag -eq 0 ]; then
+ wflag=0
+ while [ $wflag -eq 0 ]; do
+ echof "$ENTRY0055 [$ENTRY0008: 1]"
+ echof " 1. $ENTRY0059"
+ echof " 2. $ENTRY0086"
+ $echo "-> ${nnl}"
+ read ans
+ case $ans in
+ ""|1) wflag=1
+ ;;
+ 2) if [ $upgrade -eq 1 ]; then
+ echof "$ENTRY0087"
+ if [ -f "$INSTALLDIR/bin/urchinctl" ]; then
+ "$INSTALLDIR/bin/urchinctl" start
+ elif [ -f "$INSTALLDIR/bin/wrapper" ]; then
+ cd "$INSTALLDIR/bin"
+ ./wrapper -enable
+ cd "$CURRENTDIR"
+ fi
+ fi
+ exit 0
+ ;;
+ *) echof "$ENTRY0010"
+ ;;
+ esac
+ done
+ echof ""
+fi
+
+# Backup configuration databases and files
+if [ $upgrade -eq 1 ]; then
+ if [ $qflag -eq 0 ]; then
+ echof "$ENTRY0056"
+ "$INSTALLDIR/util/uconf-export" -f "$INSTALLDIR/util/conf.backup.$NOW"
+ echof ""
+ else
+ "$INSTALLDIR/util/uconf-export" -f "$INSTALLDIR/util/conf.backup.$NOW" > /dev/null 2>&1
+ fi
+ SESSIONCONF="$INSTALLDIR/etc/session.conf"
+ URCHINCONF="$INSTALLDIR/etc/urchin.conf"
+ HTTPDCONF="$INSTALLDIR/etc/httpd.conf"
+ URCHINWEBDCONF="$INSTALLVARDIR/urchinwebd.conf.template"
+ if [ -f "$SESSIONCONF" ]; then
+ mv "$SESSIONCONF" "$SESSIONCONF.sav$NOW"
+ fi
+ if [ -f "$URCHINCONF" ]; then
+ mv "$URCHINCONF" "$URCHINCONF.sav$NOW"
+ fi
+ if [ -f "$HTTPDCONF" ]; then
+ mv "$HTTPDCONF" "$HTTPDCONF.sav$NOW"
+ fi
+ if [ -f "$URCHINWEBDCONF" ]; then
+ mv "$URCHINWEBDCONF" "$URCHINWEBDCONF.sav$NOW"
+ fi
+fi
+
+# Uncompress and extract files into the installation directory
+if [ $upgrade -eq 0 ]; then
+ if [ $qflag -eq 0 ]; then
+ echof "$ENTRY0058"
+ echof ""
+ fi
+ "$GUNZIP" -c "$DIST" | (cd "$INSTALLDIR"; tar xf -)
+else
+ if [ $qflag -eq 0 ]; then
+ echof "$ENTRY0062"
+ echof ""
+ fi
+ if [ ! -d "$INSTALLERDIR/tmp.$NOW.$$" ]; then
+ mkdir "$INSTALLERDIR/tmp.$NOW.$$"
+ if [ $? -gt 0 ]; then
+ echof "## $ENTRY0001: $ENTRY0024: $INSTALLERDIR/tmp.$NOW.$$"
+ exit 1
+ fi
+ fi
+ "$GUNZIP" -c "$DIST" | (cd "$INSTALLDIR"; tar xf - bin doc etc htdocs lib util)
+ "$GUNZIP" -c "$DIST" | (cd "$INSTALLERDIR/tmp.$NOW.$$"; tar xf - data var)
+ cd "$INSTALLERDIR/tmp.$NOW.$$/data"
+ tar cf - cache conf geodata history logs reports session | (cd "$INSTALLERDIR"; cd "$INSTALLDATADIR"; tar xf -)
+ cd "$INSTALLERDIR/tmp.$NOW.$$/var"
+ tar cf - * | (cd "$INSTALLERDIR"; cd "$INSTALLVARDIR"; tar xf -)
+ cd "$INSTALLERDIR"
+ /bin/rm -rf "$INSTALLERDIR/tmp.$NOW.$$"
+fi
+
+# Create webserver configuration template and startup/shutdown script
+if [ $qflag -eq 0 ]; then
+ echof "$ENTRY0060"
+ echof ""
+fi
+sed -e "s^XXXUSERXXX^${WUSER}^" -e "s^XXXGROUPXXX^${WGROUP}^" "$INSTALLVARDIR/urchinwebd_unix.conf.template" > "$INSTALLVARDIR/urchinwebd.conf.template"
+rm -f "$INSTALLVARDIR/urchinwebd_unix.conf.template"
+sed -e "s^XXXINSTALLDIRXXX^${INSTALLDIR}^" "$INSTALLDIR/util/urchin_daemons.template" > "$INSTALLDIR/util/urchin_daemons"
+
+# Save distributed configuration files with .dist extension
+if [ -f "$SESSIONCONF" ]; then
+ cp "$SESSIONCONF" "$SESSIONCONF.dist"
+fi
+if [ -f "$URCHINCONF" ]; then
+ cp "$URCHINCONF" "$URCHINCONF.dist"
+fi
+if [ -f "$URCHINWEBDCONF" ]; then
+ cp "$URCHINWEBDCONF" "$URCHINWEBDCONF.dist"
+fi
+
+# Copy saved configuration files back into position
+if [ $upgrade -eq 1 ]; then
+ if [ -f "$SESSIONCONF.sav$NOW" ] && [ $OLDVERSION -ge "5000" ]; then
+ cp "$SESSIONCONF.sav$NOW" "$SESSIONCONF"
+ fi
+ if [ -f "$URCHINCONF.sav$NOW" ]; then
+ cp "$URCHINCONF.sav$NOW" "$URCHINCONF"
+ fi
+ if [ -f "$URCHINWEBDCONF.sav$NOW" ]; then
+ sed -e "s/^User[ \t].*/User ${WUSER}/" -e "s/^Group[ \t].*/Group ${WGROUP}/" "$URCHINWEBDCONF.sav$NOW" > "$URCHINWEBDCONF"
+ fi
+fi
+
+# Warn users if configuration files differ from distributed files
+if [ $upgrade -eq 1 ]; then
+ if [ -f "$SESSIONCONF" ] && [ -f "$SESSIONCONF.dist" ]; then
+ `diff "$SESSIONCONF" "$SESSIONCONF.dist" > /dev/null 2>&1`
+ if [ $? -ne 0 ]; then
+ echof "## $ENTRY0090: $ENTRY0057: $SESSIONCONF"
+ echof ""
+ fi
+ fi
+ if [ -f "$URCHINCONF" ] && [ -f "$URCHINCONF.dist" ]; then
+ `diff "$URCHINCONF" "$URCHINCONF.dist" > /dev/null 2>&1`
+ if [ $? -ne 0 ]; then
+ echof "## $ENTRY0090: $ENTRY0057: $URCHINCONF"
+ echof ""
+ fi
+ fi
+ if [ -f "$URCHINWEBDCONF" ] && [ -f "$URCHINWEBDCONF.dist" ]; then
+ `diff "$URCHINWEBDCONF" "$URCHINWEBDCONF.dist" > /dev/null 2>&1`
+ if [ $? -ne 0 ]; then
+ echof "## $ENTRY0090: $ENTRY0057: $URCHINWEBDCONF"
+ echof ""
+ fi
+ fi
+fi
+
+# Move the domain databases into place if they don't exist
+if [ ! -f "$INSTALLDATADIR/geodata/domain.unf" ] || [ ! -f "$INSTALLDATADIR/geodata/domain.unh" ] || [ ! -f "$INSTALLDATADIR/geodata/domain.uni" ] || [ ! -f "$INSTALLDATADIR/geodata/domain.uns" ]; then
+ mv "$INSTALLDATADIR/geodata/.domain.unf" "$INSTALLDATADIR/geodata/domain.unf"
+ mv "$INSTALLDATADIR/geodata/.domain.unh" "$INSTALLDATADIR/geodata/domain.unh"
+ mv "$INSTALLDATADIR/geodata/.domain.uni" "$INSTALLDATADIR/geodata/domain.uni"
+ mv "$INSTALLDATADIR/geodata/.domain.uns" "$INSTALLDATADIR/geodata/domain.uns"
+else
+ rm "$INSTALLDATADIR/geodata/.domain.unf"
+ rm "$INSTALLDATADIR/geodata/.domain.unh"
+ rm "$INSTALLDATADIR/geodata/.domain.uni"
+ rm "$INSTALLDATADIR/geodata/.domain.uns"
+fi
+if [ ! -f "$INSTALLDATADIR/geodata/domain.local" ]; then
+ mv "$INSTALLDATADIR/geodata/.domain.local" "$INSTALLDATADIR/geodata/domain.local"
+else
+ rm "$INSTALLDATADIR/geodata/.domain.local"
+fi
+
+# Remove outdated files (for upgrade only)
+if [ $upgrade -eq 1 ]; then
+ # For upgrade from 4.006 to 4.100+
+ rm -f "$INSTALLDIR/bin/httpd"
+ rm -f "$INSTALLDIR/bin/httpdctl.sh"
+ rm -f "$INSTALLDIR/bin/urchindctl.sh"
+ rm -f "$INSTALLDIR/bin/wrapper"
+ rm -f "$INSTALLDIR/etc/httpd.conf"
+ rm -f "$INSTALLDIR/etc/httpd.conf.template"
+ rm -f "$INSTALLDIR/etc/httpd.conf.template_unix"
+ # For upgrade from 4.002 to 4.003+
+ rm -f "$INSTALLDIR/htdocs/ujs/calender.js"
+ # For upgrade from 4.101 to 4.102+
+ rm -f "$INSTALLDIR/util/setup_conf.sh"
+ # For upgrade from 4.102+ to 5.000
+ rm -rf "$INSTALLDIR/lib/languages"
+ rm -rf "$INSTALLDIR/lib/templates"
+ rm -rf "$INSTALLDIR/lib/ugroups"
+ rm -rf "$INSTALLDIR/lib/views"
+fi
+
+# Initialize or update the configuration databases
+if [ $upgrade -eq 0 ]; then
+ if [ $qflag -eq 0 ]; then
+ echof "$ENTRY0061"
+ echof ""
+ "$INSTALLDIR/util/uconf-import" -r -f "$INSTALLDIR/util/initialdb.config"
+ echof ""
+ else
+ "$INSTALLDIR/util/uconf-import" -r -f "$INSTALLDIR/util/initialdb.config" > /dev/null 2>&1
+ fi
+else
+ if [ $qflag -eq 0 ]; then
+ echof "$ENTRY0063"
+ echof ""
+ "$INSTALLDIR/util/uconf-import" -f "$INSTALLDIR/util/initialdb.config"
+ echof ""
+ else
+ "$INSTALLDIR/util/uconf-import" -f "$INSTALLDIR/util/initialdb.config" > /dev/null 2>&1
+ fi
+fi
+
+# Update __domaindb task with day/time for download
+SETDATE=`"$INSTALLDIR/util/uconf-driver" table=task name=__domaindb action=get_parameter parameter=ct_setdate`
+if [ "x$SETDATE" != "x1" ]; then
+ DAY=`date +%d`
+ if [ $DAY -eq 1 ]; then
+ DAY=28
+ else
+ DAY=`expr $DAY - 1`
+ fi
+ if [ $DAY -lt 1 ] || [ $DAY -gt 28 ]; then
+ DAY=1
+ fi
+ HOUR=`date +%H`
+ if [ $HOUR -lt 0 ] || [ $HOUR -gt 23 ]; then
+ HOUR=0
+ fi
+ MIN=`date +%M`
+ if [ $MIN -lt 0 ] || [ $MIN -gt 59 ]; then
+ MIN=0
+ fi
+ "$INSTALLDIR/util/uconf-driver" action=set_parameter cs_dom=$DAY table=task name=__domaindb > /dev/null 2>&1
+ "$INSTALLDIR/util/uconf-driver" action=set_parameter cs_hour=$HOUR table=task name=__domaindb > /dev/null 2>&1
+ "$INSTALLDIR/util/uconf-driver" action=set_parameter cs_minute=$MIN table=task name=__domaindb > /dev/null 2>&1
+ "$INSTALLDIR/util/uconf-driver" action=set_parameter ct_setdate=1 table=task name=__domaindb > /dev/null 2>&1
+fi
+
+# Set the user and group on the installed files.
+# Only change owner if installer is run as root
+if [ $qflag -eq 0 ]; then
+ echof "$ENTRY0064"
+ if [ $MYLOGIN = root ]; then
+ chown -R $WUSER "$INSTALLDIR"
+ chown -R $WUSER "$INSTALLDATADIR"
+ fi
+ chgrp -R $WGROUP "$INSTALLDIR"
+ chgrp -R $WGROUP "$INSTALLDATADIR"
+ # Use the installed inspector in repair mode to set the permissions of the files
+ "$INSTALLDIR/util/inspector" -R
+ if [ $? -ne 0 ]; then
+ echof ""
+ echof "## $ENTRY0001: $ENTRY0067"
+ fi
+ echof ""
+else
+ if [ $MYLOGIN = root ]; then
+ chown -R $WUSER "$INSTALLDIR"
+ chown -R $WUSER "$INSTALLDATADIR"
+ fi
+ chgrp -R $WGROUP "$INSTALLDIR"
+ chgrp -R $WGROUP "$INSTALLDATADIR"
+ # Use the installed inspector in repair mode to set the permissions of the files
+ "$INSTALLDIR/util/inspector" -R > /dev/null 2>&1
+ if [ $? -ne 0 ]; then
+ echof "## $ENTRY0001: $ENTRY0067"
+ fi
+fi
+
+# Start the Urchin webserver and scheduler daemon
+if [ $startservers -eq 1 ]; then
+ if [ $qflag -eq 0 ]; then
+ echof "$ENTRY0065"
+ "$INSTALLDIR/bin/urchinctl" -p $PORT start
+ echof ""
+ else
+ "$INSTALLDIR/bin/urchinctl" -p $PORT start > /dev/null 2>&1
+ fi
+else
+ "$INSTALLDIR/bin/urchinctl" -p $PORT status > /dev/null 2>&1
+fi
+
+# Administrative announcements
+if [ $qflag -eq 0 ]; then
+ echof "------------------------------------------------------------------------"
+ echof "-- $ENTRY0066"
+ echof "------------------------------------------------------------------------"
+ echof ""
+ if [ $startservers -eq 1 ]; then
+ echof "$ENTRY0068"
+ else
+ echof "$ENTRY0069"
+ fi
+ echof ""
+ echof " http://${HOST}:${PORT}/"
+ echof ""
+ echof "$ENTRY0071"
+ echof ""
+ echof "$ENTRY0070"
+fi
diff --git a/www/urchin5/pkg-descr b/www/urchin5/pkg-descr
new file mode 100644
index 000000000000..64fa3717ea5a
--- /dev/null
+++ b/www/urchin5/pkg-descr
@@ -0,0 +1,12 @@
+Urchin is a web analytics software product that, in basic terms, reads log
+files and produces usage reports. Urchin uses Adobe's SVG graphics
+technology to generate gorgeous, quick-rendering, interactive graphs that
+can be easily pasted into common Office applications. Urchin achieves a
+high level of accuracy and captures a wealth of visitor parameters via the
+Urchin Tracking Module (UTM2), a client-side data collection component that
+transparently sends additional data back to the server and into the log
+file. The UTM2 uses a first-party cookie to overcome the effects of caches,
+proxies, and IP-recycling to provide the most accurate and complete
+reporting available from ANY analytics solution.
+
+WWW: http://www.urchin.com
diff --git a/www/urchin5/pkg-plist b/www/urchin5/pkg-plist
new file mode 100644
index 000000000000..06367226a447
--- /dev/null
+++ b/www/urchin5/pkg-plist
@@ -0,0 +1,601 @@
+@unexec %D/urchin/bin/urchinctl stop > /dev/null 2>&1 || true
+urchin/bin/admin
+urchin/bin/auth
+urchin/bin/rollup.cgi
+urchin/bin/urchin
+urchin/bin/urchin.cgi
+urchin/bin/urchinctl
+urchin/bin/urchind
+urchin/bin/urchinwebd
+urchin/doc/install.txt
+urchin/doc/license.txt
+urchin/doc/README
+urchin/doc/ReleaseNotes
+urchin/etc/mime.types
+urchin/htdocs/ucss/uch.css
+urchin/htdocs/ucss/uformat.css
+urchin/htdocs/ucss/uja.css
+urchin/htdocs/ucss/uko.css
+urchin/htdocs/ucss/usvg.css
+urchin/htdocs/ucss/uwest.css
+urchin/htdocs/.report.conf
+urchin/htdocs/favicon.ico
+urchin/htdocs/robots.txt
+urchin/htdocs/uicons/default/ee/images/bottom.gif
+urchin/htdocs/uicons/default/ee/images/brushback.gif
+urchin/htdocs/uicons/default/ee/images/left.gif
+urchin/htdocs/uicons/default/ee/images/leftbutton.gif
+urchin/htdocs/uicons/default/ee/images/lowleft.gif
+urchin/htdocs/uicons/default/ee/images/lowright.gif
+urchin/htdocs/uicons/default/ee/images/right.gif
+urchin/htdocs/uicons/default/ee/images/rightbutton.gif
+urchin/htdocs/uicons/default/ee/images/top.gif
+urchin/htdocs/uicons/default/ee/index.html
+urchin/htdocs/uicons/default/ee/slides/slide1.gif
+urchin/htdocs/uicons/default/ee/slides/slide10.gif
+urchin/htdocs/uicons/default/ee/slides/slide11.gif
+urchin/htdocs/uicons/default/ee/slides/slide12.gif
+urchin/htdocs/uicons/default/ee/slides/slide13.gif
+urchin/htdocs/uicons/default/ee/slides/slide14.gif
+urchin/htdocs/uicons/default/ee/slides/slide15.gif
+urchin/htdocs/uicons/default/ee/slides/slide16.gif
+urchin/htdocs/uicons/default/ee/slides/slide17.gif
+urchin/htdocs/uicons/default/ee/slides/slide18.gif
+urchin/htdocs/uicons/default/ee/slides/slide19.gif
+urchin/htdocs/uicons/default/ee/slides/slide2.gif
+urchin/htdocs/uicons/default/ee/slides/slide20.gif
+urchin/htdocs/uicons/default/ee/slides/slide21.gif
+urchin/htdocs/uicons/default/ee/slides/slide22.gif
+urchin/htdocs/uicons/default/ee/slides/slide23.gif
+urchin/htdocs/uicons/default/ee/slides/slide24.gif
+urchin/htdocs/uicons/default/ee/slides/slide25.gif
+urchin/htdocs/uicons/default/ee/slides/slide3.gif
+urchin/htdocs/uicons/default/ee/slides/slide4.gif
+urchin/htdocs/uicons/default/ee/slides/slide5.gif
+urchin/htdocs/uicons/default/ee/slides/slide6.gif
+urchin/htdocs/uicons/default/ee/slides/slide7.gif
+urchin/htdocs/uicons/default/ee/slides/slide8.gif
+urchin/htdocs/uicons/default/ee/slides/slide9.gif
+urchin/htdocs/uicons/default/about.gif
+urchin/htdocs/uicons/default/about3.gif
+urchin/htdocs/uicons/default/add.gif
+urchin/htdocs/uicons/default/add1.gif
+urchin/htdocs/uicons/default/aff.gif
+urchin/htdocs/uicons/default/alert.gif
+urchin/htdocs/uicons/default/arrow.gif
+urchin/htdocs/uicons/default/arrow_l.gif
+urchin/htdocs/uicons/default/arrow_open.gif
+urchin/htdocs/uicons/default/arrow_r.gif
+urchin/htdocs/uicons/default/bg_admin.gif
+urchin/htdocs/uicons/default/bg_report.gif
+urchin/htdocs/uicons/default/bgstriped.gif
+urchin/htdocs/uicons/default/bigtab.gif
+urchin/htdocs/uicons/default/bigtab2.gif
+urchin/htdocs/uicons/default/blue.gif
+urchin/htdocs/uicons/default/blue_arrow.gif
+urchin/htdocs/uicons/default/blue_book.gif
+urchin/htdocs/uicons/default/bottom_shadow.gif
+urchin/htdocs/uicons/default/brushed_aluminum.gif
+urchin/htdocs/uicons/default/cal.gif
+urchin/htdocs/uicons/default/bullet_red.gif
+urchin/htdocs/uicons/default/bullet_green.gif
+urchin/htdocs/uicons/default/button_left.gif
+urchin/htdocs/uicons/default/button_right.gif
+urchin/htdocs/uicons/default/calendar_back.gif
+urchin/htdocs/uicons/default/calendar_back2.gif
+urchin/htdocs/uicons/default/calendar_back3.gif
+urchin/htdocs/uicons/default/calendar_back4.gif
+urchin/htdocs/uicons/default/calendar_back5.gif
+urchin/htdocs/uicons/default/check.gif
+urchin/htdocs/uicons/default/click_from.gif
+urchin/htdocs/uicons/default/click_to.gif
+urchin/htdocs/uicons/default/dcorner_tleft.gif
+urchin/htdocs/uicons/default/dcorner_tright.gif
+urchin/htdocs/uicons/default/delete.gif
+urchin/htdocs/uicons/default/delete1.gif
+urchin/htdocs/uicons/default/dir.gif
+urchin/htdocs/uicons/default/dot.gif
+urchin/htdocs/uicons/default/dot2.gif
+urchin/htdocs/uicons/default/dots.gif
+urchin/htdocs/uicons/default/down.gif
+urchin/htdocs/uicons/default/duplicate.gif
+urchin/htdocs/uicons/default/duplicate1.gif
+urchin/htdocs/uicons/default/edit.gif
+urchin/htdocs/uicons/default/edit1.gif
+urchin/htdocs/uicons/default/embossed_urchin.gif
+urchin/htdocs/uicons/default/embossed_urchin2.gif
+urchin/htdocs/uicons/default/error.gif
+urchin/htdocs/uicons/default/export.gif
+urchin/htdocs/uicons/default/file.gif
+urchin/htdocs/uicons/default/filter.gif
+urchin/htdocs/uicons/default/fin_active.gif
+urchin/htdocs/uicons/default/fin_inactive.gif
+urchin/htdocs/uicons/default/fout_active.gif
+urchin/htdocs/uicons/default/fout_inactive.gif
+urchin/htdocs/uicons/default/glossary.gif
+urchin/htdocs/uicons/default/gochinese.gif
+urchin/htdocs/uicons/default/goenglish.gif
+urchin/htdocs/uicons/default/gofrench.gif
+urchin/htdocs/uicons/default/gogerman.gif
+urchin/htdocs/uicons/default/goitalian.gif
+urchin/htdocs/uicons/default/gojapanese.gif
+urchin/htdocs/uicons/default/gokorean.gif
+urchin/htdocs/uicons/default/goportuguese.gif
+urchin/htdocs/uicons/default/gospanish.gif
+urchin/htdocs/uicons/default/goswedish.gif
+urchin/htdocs/uicons/default/graph_bar.gif
+urchin/htdocs/uicons/default/graph_bar1.gif
+urchin/htdocs/uicons/default/graph_bar2.gif
+urchin/htdocs/uicons/default/graph_barline.gif
+urchin/htdocs/uicons/default/graph_line.gif
+urchin/htdocs/uicons/default/graph_line1.gif
+urchin/htdocs/uicons/default/graph_line2.gif
+urchin/htdocs/uicons/default/graph_pie.gif
+urchin/htdocs/uicons/default/graph_pie1.gif
+urchin/htdocs/uicons/default/graph_pie2.gif
+urchin/htdocs/uicons/default/graph_sbar1.gif
+urchin/htdocs/uicons/default/graph_sbar2.gif
+urchin/htdocs/uicons/default/green.gif
+urchin/htdocs/uicons/default/green_arrow.gif
+urchin/htdocs/uicons/default/grid2.gif
+urchin/htdocs/uicons/default/group.gif
+urchin/htdocs/uicons/default/harrow.gif
+urchin/htdocs/uicons/default/log.gif
+urchin/htdocs/uicons/default/hbar.gif
+urchin/htdocs/uicons/default/hbar2.gif
+urchin/htdocs/uicons/default/hbar3.gif
+urchin/htdocs/uicons/default/hbar4.gif
+urchin/htdocs/uicons/default/hbarg.gif
+urchin/htdocs/uicons/default/hbarg2.gif
+urchin/htdocs/uicons/default/hbaro.gif
+urchin/htdocs/uicons/default/hbaro2.gif
+urchin/htdocs/uicons/default/help.gif
+urchin/htdocs/uicons/default/help2.gif
+urchin/htdocs/uicons/default/highlight.gif
+urchin/htdocs/uicons/default/highlight1.gif
+urchin/htdocs/uicons/default/highlight2.gif
+urchin/htdocs/uicons/default/icon_add.gif
+urchin/htdocs/uicons/default/icon_add2.gif
+urchin/htdocs/uicons/default/icon_config.gif
+urchin/htdocs/uicons/default/icon_config2.gif
+urchin/htdocs/uicons/default/icon_delete.gif
+urchin/htdocs/uicons/default/icon_delete2.gif
+urchin/htdocs/uicons/default/icon_edit.gif
+urchin/htdocs/uicons/default/icon_edit2.gif
+urchin/htdocs/uicons/default/icon_import.gif
+urchin/htdocs/uicons/default/tod.gif
+urchin/htdocs/uicons/default/ind10.gif
+urchin/htdocs/uicons/default/icon_import2.gif
+urchin/htdocs/uicons/default/icon_prefs.gif
+urchin/htdocs/uicons/default/icon_prefs2.gif
+urchin/htdocs/uicons/default/icon_view.gif
+urchin/htdocs/uicons/default/icon_view2.gif
+urchin/htdocs/uicons/default/icon_vreport.gif
+urchin/htdocs/uicons/default/icon_vreport2.gif
+urchin/htdocs/uicons/default/ind11.gif
+urchin/htdocs/uicons/default/ind15.gif
+urchin/htdocs/uicons/default/ind16.gif
+urchin/htdocs/uicons/default/ind17.gif
+urchin/htdocs/uicons/default/ind18.gif
+urchin/htdocs/uicons/default/ind19.gif
+urchin/htdocs/uicons/default/ind20.gif
+urchin/htdocs/uicons/default/ind3.gif
+urchin/htdocs/uicons/default/ind9.gif
+urchin/htdocs/uicons/default/info.gif
+urchin/htdocs/uicons/default/info_button.gif
+urchin/htdocs/uicons/default/lbigtab.gif
+urchin/htdocs/uicons/default/lbigtab2.gif
+urchin/htdocs/uicons/default/left_arrow.gif
+urchin/htdocs/uicons/default/lscale.gif
+urchin/htdocs/uicons/default/minirun.gif
+urchin/htdocs/uicons/default/left_grey_arrow.gif
+urchin/htdocs/uicons/default/log_out2.gif
+urchin/htdocs/uicons/default/minirun1.gif
+urchin/htdocs/uicons/default/minus.gif
+urchin/htdocs/uicons/default/nav_back_b.gif
+urchin/htdocs/uicons/default/nav_back_l.gif
+urchin/htdocs/uicons/default/nav_back_l2.gif
+urchin/htdocs/uicons/default/nav_back_line.gif
+urchin/htdocs/uicons/default/nav_back_t.gif
+urchin/htdocs/uicons/default/nav_corner.gif
+urchin/htdocs/uicons/default/nav_corner_bl.gif
+urchin/htdocs/uicons/default/nav_corner_br.gif
+urchin/htdocs/uicons/default/nav_corner_tl.gif
+urchin/htdocs/uicons/default/nav_corner_tr.gif
+urchin/htdocs/uicons/default/nav_tab_corner.gif
+urchin/htdocs/uicons/default/orange.gif
+urchin/htdocs/uicons/default/page.gif
+urchin/htdocs/uicons/default/panel_bottom.gif
+urchin/htdocs/uicons/default/panel_left.gif
+urchin/htdocs/uicons/default/up.gif
+urchin/htdocs/uicons/default/plus.gif
+urchin/htdocs/uicons/default/panel_right.gif
+urchin/htdocs/uicons/default/panel_top.gif
+urchin/htdocs/uicons/default/plate_left.gif
+urchin/htdocs/uicons/default/plate_middle.gif
+urchin/htdocs/uicons/default/plate_right.gif
+urchin/htdocs/uicons/default/printer.gif
+urchin/htdocs/uicons/default/printer2.gif
+urchin/htdocs/uicons/default/question.gif
+urchin/htdocs/uicons/default/rbigtab.gif
+urchin/htdocs/uicons/default/rcorner_bleft.gif
+urchin/htdocs/uicons/default/rcorner_bright.gif
+urchin/htdocs/uicons/default/rcorner_tleft.gif
+urchin/htdocs/uicons/default/rcorner_tleft2.gif
+urchin/htdocs/uicons/default/rcorner_tleft_w.gif
+urchin/htdocs/uicons/default/rcorner_tright.gif
+urchin/htdocs/uicons/default/rcorner_tright2.gif
+urchin/htdocs/uicons/default/red_arrow.gif
+urchin/htdocs/uicons/default/report.gif
+urchin/htdocs/uicons/default/report_icons.gif
+urchin/htdocs/uicons/default/right_arrow.gif
+urchin/htdocs/uicons/default/right_grey_arrow.gif
+urchin/htdocs/uicons/default/round_button.gif
+urchin/htdocs/uicons/default/rscale.gif
+urchin/htdocs/uicons/default/rtab.gif
+urchin/htdocs/uicons/default/rtab_back.gif
+urchin/htdocs/uicons/default/rtop_back.gif
+urchin/htdocs/uicons/default/runnow.gif
+urchin/htdocs/uicons/default/scale2.gif
+urchin/htdocs/uicons/default/scale3.gif
+urchin/htdocs/uicons/default/scale4.gif
+urchin/htdocs/uicons/default/scalex.gif
+urchin/htdocs/uicons/default/scalex2.gif
+urchin/htdocs/uicons/default/sortarrow.gif
+urchin/htdocs/uicons/default/sortarrow2.gif
+urchin/htdocs/uicons/default/sortarrow3.gif
+urchin/htdocs/uicons/default/stop_button.gif
+urchin/htdocs/uicons/default/submitchinese.gif
+urchin/htdocs/uicons/default/submitenglish.gif
+urchin/htdocs/uicons/default/submitfrench.gif
+urchin/htdocs/uicons/default/submitgerman.gif
+urchin/htdocs/uicons/default/submititalian.gif
+urchin/htdocs/uicons/default/submitjapanese.gif
+urchin/htdocs/uicons/default/submitkorean.gif
+urchin/htdocs/uicons/default/submitportuguese.gif
+urchin/htdocs/uicons/default/submitspanish.gif
+urchin/htdocs/uicons/default/submitswedish.gif
+urchin/htdocs/uicons/default/svg_urchin.gif
+urchin/htdocs/uicons/default/tab_off_left.gif
+urchin/htdocs/uicons/default/tab_off_right.gif
+urchin/htdocs/uicons/default/tab_on_left.gif
+urchin/htdocs/uicons/default/tab_on_right.gif
+urchin/htdocs/uicons/default/tabside1.gif
+urchin/htdocs/uicons/default/tabside2.gif
+urchin/htdocs/uicons/default/taskbar.gif
+urchin/htdocs/uicons/default/tspace.gif
+urchin/htdocs/uicons/default/u5_base.gif
+urchin/htdocs/uicons/default/u5_camp.gif
+urchin/htdocs/uicons/default/u5_ecom.gif
+urchin/htdocs/uicons/default/u5_lang.gif
+urchin/htdocs/uicons/default/u5_load.gif
+urchin/htdocs/uicons/default/u5_pack.gif
+urchin/htdocs/uicons/default/updir.gif
+urchin/htdocs/uicons/default/urchin5.gif
+urchin/htdocs/uicons/default/urchin_login.gif
+urchin/htdocs/uicons/default/urchin_wizard_a.gif
+urchin/htdocs/uicons/default/urchin_wizard_b.gif
+urchin/htdocs/uicons/default/urchinlogo.gif
+urchin/htdocs/uicons/default/urchinlogo2.gif
+urchin/htdocs/uicons/default/urchinlogo3.gif
+urchin/htdocs/uicons/default/user.gif
+urchin/htdocs/uicons/default/vbar2.gif
+urchin/htdocs/uicons/default/vbar3.gif
+urchin/htdocs/uicons/default/vbar4.gif
+urchin/htdocs/uicons/default/view.gif
+urchin/htdocs/uicons/default/viewr.gif
+urchin/htdocs/uicons/default/viewr1.gif
+urchin/htdocs/uicons/default/week_arrow.gif
+urchin/htdocs/uicons/default/whelp.gif
+urchin/htdocs/uicons/default/whelp1.gif
+urchin/htdocs/uicons/default/wiz_tab.gif
+urchin/htdocs/uicons/default/wiz_urchin.gif
+urchin/htdocs/uicons/default/www2.gif
+urchin/htdocs/uicons/default/xcomma.gif
+urchin/htdocs/uicons/default/xexcel.gif
+urchin/htdocs/uicons/default/xhelp.gif
+urchin/htdocs/uicons/default/xind10.gif
+urchin/htdocs/uicons/default/xind16.gif
+urchin/htdocs/uicons/default/xind17.gif
+urchin/htdocs/uicons/default/xind18.gif
+urchin/htdocs/uicons/default/xind9.gif
+urchin/htdocs/uicons/default/xsep.gif
+urchin/htdocs/uicons/default/xtab.gif
+urchin/htdocs/uicons/default/xword.gif
+urchin/htdocs/ujs/admin.js
+urchin/htdocs/ujs/calendar.js
+urchin/htdocs/ujs/general.js
+urchin/htdocs/ujs/svgcheck.js
+urchin/htdocs/ujs/svgcheck.vbs
+urchin/htdocs/ujs/ugraph.js
+urchin/htdocs/ujs/urchin.js
+urchin/htdocs/usvg/ugraph.svg
+urchin/htdocs/report.cgi
+urchin/htdocs/session.cgi
+urchin/lib/admin/languages/en.db
+urchin/lib/admin/languages/en.txt
+urchin/lib/admin/languages/fr.txt
+urchin/lib/admin/languages/ge.txt
+urchin/lib/admin/languages/ja.txt
+urchin/lib/admin/languages/sp.txt
+urchin/lib/admin/languages/fr.db
+urchin/lib/admin/languages/ge.db
+urchin/lib/admin/languages/ja.db
+urchin/lib/admin/languages/sp.db
+urchin/lib/admin/templates/form_about.tpl
+urchin/lib/admin/templates/form_access1.tpl
+urchin/lib/admin/templates/form_access2.tpl
+urchin/lib/admin/templates/form_access3.tpl
+urchin/lib/admin/templates/form_access4.tpl
+urchin/lib/admin/templates/form_account.tpl
+urchin/lib/admin/templates/form_aff1.tpl
+urchin/lib/admin/templates/form_aff2.tpl
+urchin/lib/admin/templates/form_auto1.tpl
+urchin/lib/admin/templates/form_auto2.tpl
+urchin/lib/admin/templates/form_browser.tpl
+urchin/lib/admin/templates/form_dbrowser.tpl
+urchin/lib/admin/templates/form_filter1.tpl
+urchin/lib/admin/templates/form_filter2.tpl
+urchin/lib/admin/templates/form_filter3.tpl
+urchin/lib/admin/templates/form_filter4.tpl
+urchin/lib/admin/templates/form_group1.tpl
+urchin/lib/admin/templates/form_group2.tpl
+urchin/lib/admin/templates/form_group3.tpl
+urchin/lib/admin/templates/form_group4.tpl
+urchin/lib/admin/templates/form_history.tpl
+urchin/lib/admin/templates/form_import.tpl
+urchin/lib/admin/templates/form_license.tpl
+urchin/lib/admin/templates/form_license2.tpl
+urchin/lib/admin/templates/form_list.tpl
+urchin/lib/admin/templates/form_list2.tpl
+urchin/lib/admin/templates/form_log1.tpl
+urchin/lib/admin/templates/form_log2.tpl
+urchin/lib/admin/templates/form_log3.tpl
+urchin/lib/admin/templates/form_log4.tpl
+urchin/lib/admin/templates/form_log5.tpl
+urchin/lib/admin/templates/form_log6.tpl
+urchin/lib/admin/templates/form_machine2.tpl
+urchin/lib/admin/templates/form_machine3.tpl
+urchin/lib/admin/templates/form_prefs.tpl
+urchin/lib/admin/templates/form_profile1.tpl
+urchin/lib/admin/templates/form_profile2.tpl
+urchin/lib/admin/templates/form_profile3.tpl
+urchin/lib/admin/templates/form_profile4.tpl
+urchin/lib/admin/templates/form_profile5.tpl
+urchin/lib/admin/templates/form_profile6.tpl
+urchin/lib/admin/templates/form_profile7.tpl
+urchin/lib/admin/templates/form_profile8.tpl
+urchin/lib/admin/templates/form_rbrowser.tpl
+urchin/lib/admin/templates/form_rs.tpl
+urchin/lib/admin/templates/form_scheduler.tpl
+urchin/lib/admin/templates/form_slist.tpl
+urchin/lib/admin/templates/form_ubrowser.tpl
+urchin/lib/admin/templates/form_user1.tpl
+urchin/lib/admin/templates/form_user2.tpl
+urchin/lib/admin/templates/form_user3.tpl
+urchin/lib/admin/templates/form_user4.tpl
+urchin/lib/admin/templates/form_user5.tpl
+urchin/lib/admin/templates/form_vbrowser.tpl
+urchin/lib/admin/templates/form_viewreports.tpl
+urchin/lib/admin/templates/history_frame1.tpl
+urchin/lib/admin/templates/history_frame2.tpl
+urchin/lib/admin/templates/history_framep.tpl
+urchin/lib/admin/templates/include_access_tab.tpl
+urchin/lib/admin/templates/include_aff_tab.tpl
+urchin/lib/admin/templates/include_auto_tab.tpl
+urchin/lib/admin/templates/include_ffooter.tpl
+urchin/lib/admin/templates/include_fheader.tpl
+urchin/lib/admin/templates/include_filter_tab.tpl
+urchin/lib/admin/templates/include_footer.tpl
+urchin/lib/admin/templates/include_gfooter.tpl
+urchin/lib/admin/templates/include_gheader.tpl
+urchin/lib/admin/templates/include_group_tab.tpl
+urchin/lib/admin/templates/include_header.tpl
+urchin/lib/admin/templates/include_lfooter.tpl
+urchin/lib/admin/templates/include_lheader.tpl
+urchin/lib/admin/templates/include_log_tab.tpl
+urchin/lib/admin/templates/include_machine_tab.tpl
+urchin/lib/admin/templates/include_profile_tab.tpl
+urchin/lib/admin/templates/include_simple_header.tpl
+urchin/lib/admin/templates/include_user_tab.tpl
+urchin/lib/admin/templates/include_wfooter.tpl
+urchin/lib/admin/templates/include_wheader.tpl
+urchin/lib/admin/templates/include_wsfooter.tpl
+urchin/lib/admin/templates/include_wsheader.tpl
+urchin/lib/admin/templates/main_comps.tpl
+urchin/lib/admin/templates/main_config.tpl
+urchin/lib/admin/templates/main_framed.tpl
+urchin/lib/admin/templates/main_license.tpl
+urchin/lib/admin/templates/main_popup.tpl
+urchin/lib/admin/templates/main_simple.tpl
+urchin/lib/admin/templates/main_task.tpl
+urchin/lib/admin/templates/main_wizard.tpl
+urchin/lib/admin/templates/task_frame1.tpl
+urchin/lib/admin/templates/task_frame2.tpl
+urchin/lib/admin/templates/task_frame3.tpl
+urchin/lib/admin/templates/task_frame4.tpl
+urchin/lib/admin/templates/task_frame5.tpl
+urchin/lib/admin/templates/task_frame6.tpl
+urchin/lib/admin/templates/task_framep.tpl
+urchin/lib/admin/templates/wizard_aff1.tpl
+urchin/lib/admin/templates/wizard_aff2.tpl
+urchin/lib/admin/templates/wizard_filter1.tpl
+urchin/lib/admin/templates/wizard_filter11.tpl
+urchin/lib/admin/templates/wizard_filter12.tpl
+urchin/lib/admin/templates/wizard_filter2.tpl
+urchin/lib/admin/templates/wizard_filter3.tpl
+urchin/lib/admin/templates/wizard_group1.tpl
+urchin/lib/admin/templates/wizard_group2.tpl
+urchin/lib/admin/templates/wizard_log1.tpl
+urchin/lib/admin/templates/wizard_log11.tpl
+urchin/lib/admin/templates/wizard_log12.tpl
+urchin/lib/admin/templates/wizard_log2.tpl
+urchin/lib/admin/templates/wizard_log3.tpl
+urchin/lib/admin/templates/wizard_log4.tpl
+urchin/lib/admin/templates/wizard_log5.tpl
+urchin/lib/admin/templates/wizard_profile1.tpl
+urchin/lib/admin/templates/wizard_profile2.tpl
+urchin/lib/admin/templates/wizard_profile3.tpl
+urchin/lib/admin/templates/wizard_profile4.tpl
+urchin/lib/admin/templates/wizard_profiled1.tpl
+urchin/lib/admin/templates/wizard_profiled2.tpl
+urchin/lib/admin/templates/wizard_settings1.tpl
+urchin/lib/admin/templates/wizard_settings2.tpl
+urchin/lib/admin/templates/wizard_settings3.tpl
+urchin/lib/admin/templates/wizard_settingsw.tpl
+urchin/lib/admin/templates/wizard_user1.tpl
+urchin/lib/admin/templates/wizard_user2.tpl
+urchin/lib/admin/templates/wizard_user3.tpl
+urchin/lib/admin/views/action.vw
+urchin/lib/admin/views/action_s1.vw
+urchin/lib/admin/views/action_s2.vw
+urchin/lib/admin/views/nav.vw
+urchin/lib/admin/views/nav_s1.vw
+urchin/lib/admin/views/nav_s2.vw
+urchin/lib/admin/views/view.vw
+urchin/lib/admin/views/view_s1.vw
+urchin/lib/admin/views/view_s2.vw
+urchin/lib/custom/cobrands/cobrand_admin.tpl.sample
+urchin/lib/custom/cobrands/cobrand_report.tpl.sample
+urchin/lib/custom/languages/en.txt.sample
+urchin/lib/custom/logformats/custom.lf.sample
+urchin/lib/custom/logformats/fieldlist.txt.sample
+urchin/lib/custom/profiletypes/E-Commerce_Website/All_Reports.rs.sample
+urchin/lib/custom/profiletypes/Standard_Website/All_Reports.rs.sample
+urchin/lib/reporting/languages/en.db
+urchin/lib/reporting/languages/en.txt
+urchin/lib/reporting/languages/fr.txt
+urchin/lib/reporting/languages/ge.txt
+urchin/lib/reporting/languages/ja.txt
+urchin/lib/reporting/languages/sp.txt
+urchin/lib/reporting/languages/fr.db
+urchin/lib/reporting/languages/ge.db
+urchin/lib/reporting/languages/ja.db
+urchin/lib/reporting/languages/sp.db
+urchin/lib/reporting/logformats/auto.lf
+urchin/lib/reporting/logformats/elf.lf
+urchin/lib/reporting/logformats/elf2.lf
+urchin/lib/reporting/logformats/fieldlist.txt
+urchin/lib/reporting/logformats/ncsa.lf
+urchin/lib/reporting/logformats/netscape.lf
+urchin/lib/reporting/logformats/w3c.lf
+urchin/lib/reporting/profiletypes/rollup.rs
+urchin/lib/reporting/profiletypes/E-Commerce_Website/default.config
+urchin/lib/reporting/profiletypes/E-Commerce_Website/Basic_All.rs
+urchin/lib/reporting/profiletypes/E-Commerce_Website/Basic_IT.rs
+urchin/lib/reporting/profiletypes/E-Commerce_Website/Basic_Lite.rs
+urchin/lib/reporting/profiletypes/E-Commerce_Website/UTM-Enabled_All.rs
+urchin/lib/reporting/profiletypes/E-Commerce_Website/UTM-Enabled_Nopaths.rs
+urchin/lib/reporting/profiletypes/E-Commerce_Website/UTM-Enabled_Webdesign.rs
+urchin/lib/reporting/profiletypes/E-Commerce_Website/datamap.dm
+urchin/lib/reporting/profiletypes/Standard_Website/default.config
+urchin/lib/reporting/profiletypes/Standard_Website/Basic_All.rs
+urchin/lib/reporting/profiletypes/Standard_Website/Basic_IT.rs
+urchin/lib/reporting/profiletypes/Standard_Website/Basic_Lite.rs
+urchin/lib/reporting/profiletypes/Standard_Website/UTM-Enabled_All.rs
+urchin/lib/reporting/profiletypes/Standard_Website/UTM-Enabled_Nopaths.rs
+urchin/lib/reporting/profiletypes/Standard_Website/UTM-Enabled_Webdesign.rs
+urchin/lib/reporting/profiletypes/Standard_Website/datamap.dm
+urchin/lib/reporting/templates/ERROR_SVG.svg
+urchin/lib/reporting/templates/graph_standard.tpl
+urchin/lib/reporting/templates/graph_standard2.tpl
+urchin/lib/reporting/templates/include_footer.tpl
+urchin/lib/reporting/templates/include_footer_s.tpl
+urchin/lib/reporting/templates/include_header.tpl
+urchin/lib/reporting/templates/include_header_s.tpl
+urchin/lib/reporting/templates/include_selectreports.tpl
+urchin/lib/reporting/templates/main_blank.tpl
+urchin/lib/reporting/templates/main_comps.tpl
+urchin/lib/reporting/templates/main_popup.tpl
+urchin/lib/reporting/templates/main_report.tpl
+urchin/lib/reporting/templates/main_simple.tpl
+urchin/lib/reporting/templates/report_clicktree.tpl
+urchin/lib/reporting/templates/report_graph.tpl
+urchin/lib/reporting/templates/report_graph2.tpl
+urchin/lib/reporting/templates/report_summary.tpl
+urchin/lib/reporting/templates/report_text.tpl
+urchin/lib/reporting/templates/svg.tpl
+urchin/lib/reporting/templates/report_topdate.tpl
+urchin/lib/reporting/templates/report_topten.tpl
+urchin/lib/reporting/templates/svg2.tpl
+urchin/lib/reporting/templates/view_about.tpl
+urchin/lib/reporting/templates/view_export.tpl
+urchin/lib/reporting/templates/view_print.tpl
+urchin/lib/reporting/templates/xe_report_clicktree.tpl
+urchin/lib/reporting/templates/xe_report_graph.tpl
+urchin/lib/reporting/templates/xe_report_graph2.tpl
+urchin/lib/reporting/templates/xe_report_summary.tpl
+urchin/lib/reporting/templates/xe_report_topdate.tpl
+urchin/lib/reporting/templates/xe_report_topten.tpl
+urchin/lib/reporting/templates/xw_report_clicktree.tpl
+urchin/lib/reporting/templates/xw_report_graph.tpl
+urchin/lib/reporting/templates/xw_report_graph2.tpl
+urchin/lib/reporting/templates/xw_report_summary.tpl
+urchin/lib/reporting/templates/xw_report_topdate.tpl
+urchin/lib/reporting/templates/xw_report_topten.tpl
+urchin/lib/session/languages/en.db
+urchin/lib/session/languages/en.txt
+urchin/lib/session/languages/ja.db
+urchin/lib/session/languages/ja.txt
+urchin/lib/session/templates/comps.tpl
+urchin/lib/session/templates/template.tpl
+urchin/util/utm/__utm.gif
+urchin/util/utm/__utm.js
+urchin/util/geo-update
+urchin/util/initialdb.config
+urchin/util/inspector
+urchin/util/u3importer
+urchin/util/uconf-driver
+urchin/util/uconf-export
+urchin/util/uconf-import
+urchin/util/uconf-schedule
+urchin/util/udb-sanitizer
+urchin/util/urchin_daemons.template
+urchin/util/urchin_daemons
+urchin/util/unzip
+urchin/util/zip
+urchin/var/manifest.txt
+urchin/var/server.crt.sample
+urchin/var/server.key.sample
+urchin/var/urchinwebd.conf
+urchin/var/urchinwebd.conf.template
+@dirrm urchin/bin
+@unexec rm -rf %D/urchin/data/cache 2>/dev/null
+@unexec rmdir %D/urchin/data/history 2>/dev/null || true
+@unexec rmdir %D/urchin/data/logs 2>/dev/null || true
+@unexec rmdir %D/urchin/data/reports 2>/dev/null || true
+@unexec rmdir %D/urchin/data/session 2>/dev/null || true
+@dirrm urchin/doc
+@dirrm urchin/htdocs/ucss
+@dirrm urchin/htdocs/uicons/default/ee/images
+@dirrm urchin/htdocs/uicons/default/ee/slides
+@dirrm urchin/htdocs/uicons/default/ee
+@dirrm urchin/htdocs/uicons/default
+@dirrm urchin/htdocs/uicons
+@dirrm urchin/htdocs/ujs
+@dirrm urchin/htdocs/usvg
+@dirrm urchin/htdocs
+@dirrm urchin/lib/admin/languages
+@dirrm urchin/lib/admin/templates
+@dirrm urchin/lib/admin/views
+@dirrm urchin/lib/admin
+@unexec rmdir %D/urchin/lib/custom/cobrands 2>/dev/null || true
+@unexec rmdir %D/urchin/lib/custom/languages 2>/dev/null || true
+@unexec rmdir %D/urchin/lib/custom/logformats 2>/dev/null || true
+@unexec rmdir %D/urchin/lib/custom/profiletypes/E-Commerce_Website 2>/dev/null || true
+@unexec rmdir %D/urchin/lib/custom/profiletypes/Standard_Website 2>/dev/null || true
+@unexec rmdir %D/urchin/lib/custom/profiletypes 2>/dev/null || true
+@unexec rmdir %D/urchin/lib/custom 2>/dev/null || true
+@dirrm urchin/lib/reporting/languages
+@dirrm urchin/lib/reporting/logformats
+@dirrm urchin/lib/reporting/profiletypes/E-Commerce_Website
+@dirrm urchin/lib/reporting/profiletypes/Standard_Website
+@dirrm urchin/lib/reporting/profiletypes
+@dirrm urchin/lib/reporting/templates
+@dirrm urchin/lib/reporting
+@dirrm urchin/lib/session/languages
+@dirrm urchin/lib/session/templates
+@dirrm urchin/lib/session
+@unexec rmdir %D/urchin/lib 2>/dev/null || true
+@dirrm urchin/util/utm
+@unexec rmdir %D/urchin/util 2>/dev/null || true