From 739801d180ec862613e1ed3806ee964327cc1238 Mon Sep 17 00:00:00 2001 From: "paul.baranowski" Date: Mon, 4 Oct 2010 17:00:20 -0400 Subject: [PATCH] CC-1024 Update installation/build for webapp-only Moved more installation stuff into PHP. For some reason it's having trouble creating the cc_playlistcontents table. Removed old installer files that are no longer used. --- backend/Restore.php | 5 +- backend/StoredFile.php | 5 +- campcaster_version.php | 4 - conf.php | 199 ++++---- install/hubSetup.sh | 480 ------------------- install/install.php | 164 ++++--- install/installInit.php | 23 + install/nightlyBuild.sh | 84 ---- install/setupDevelopmentEnvironmentAndLog.sh | 208 -------- install/updateStudioConfig.sh | 236 --------- install/user_setup.sh | 352 -------------- 11 files changed, 235 insertions(+), 1525 deletions(-) delete mode 100644 campcaster_version.php delete mode 100755 install/hubSetup.sh delete mode 100755 install/nightlyBuild.sh delete mode 100755 install/setupDevelopmentEnvironmentAndLog.sh delete mode 100755 install/updateStudioConfig.sh delete mode 100755 install/user_setup.sh diff --git a/backend/Restore.php b/backend/Restore.php index e092d929a..e1071ba9e 100644 --- a/backend/Restore.php +++ b/backend/Restore.php @@ -1,5 +1,4 @@ gb =& $gb; $this->token = null; - $this->logFile = $CC_CONFIG['bufferDir'].'/'.ACCESS_TYPE.'.log'; + $this->logFile = $CC_CONFIG['bufferDir'].'/'.$this->ACCESS_TYPE.'.log'; if ($this->loglevel == 'debug') { $this->addLogItem("-I- ".date("Ymd-H:i:s")." construct\n"); } diff --git a/backend/StoredFile.php b/backend/StoredFile.php index 975c9161c..28de8b0dd 100644 --- a/backend/StoredFile.php +++ b/backend/StoredFile.php @@ -504,7 +504,8 @@ class StoredFile { $storedFile->name = isset($p_values['filename']) ? $p_values['filename'] : $p_values["filepath"]; // NOTE: POSTGRES-SPECIFIC KEYWORD "DEFAULT" BEING USED, WOULD BE "NULL" IN MYSQL - $storedFile->id = isset($p_values['id']) && is_integer($p_values['id'])?"'".$p_values['id']."'":'DEFAULT'; + $storedFile->id = isset($p_values['id']) && is_integer($p_values['id'])?(int)$p_values['id']:null; + $sqlId = !is_null($storedFile->id)?"'".$storedFile->id."'":'DEFAULT'; $storedFile->ftype = isset($p_values['filetype']) ? strtolower($p_values['filetype']) : "audioclip"; $storedFile->mime = (isset($p_values["mime"]) ? $p_values["mime"] : NULL ); // $storedFile->filepath = $p_values['filepath']; @@ -529,7 +530,7 @@ class StoredFile { $CC_DBC->query("BEGIN"); $sql = "INSERT INTO ".$CC_CONFIG['filesTable'] ."(id, name, gunid, mime, state, ftype, mtime, md5)" - ."VALUES ({$storedFile->id}, '{$escapedName}', " + ."VALUES ({$sqlId}, '{$escapedName}', " ." x'{$storedFile->gunid}'::bigint," ." '{$storedFile->mime}', 'incomplete', '$escapedFtype'," ." now(), '{$storedFile->md5}')"; diff --git a/campcaster_version.php b/campcaster_version.php deleted file mode 100644 index a56619f28..000000000 --- a/campcaster_version.php +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/conf.php b/conf.php index 4f161fa92..75ac1679c 100644 --- a/conf.php +++ b/conf.php @@ -1,83 +1,93 @@ - *
dsn
datasource setting - *
tblNamePrefix
prefix for table names in the database - *
authCookieName
secret token cookie name - *
AdminsGr
name of admin group - *
StationPrefsGr
name of station preferences group - *
AllGr
name of 'all users' group - *
storageDir
main directory for storing binary media files - *
bufferDir
directory for temporary files - *
transDir
directory for incomplete transferred files - *
accessDir
directory for symlinks to accessed files - *
validate
enable/disable validator - *
useTrash
enable/disable safe delete (move to trash) - *
storageUrlPath
path-URL-part of storageServer base dir - *
storageXMLRPC
XMLRPC server script address relative to storageUrlPath - *
storageUrlHost, storageUrlPort
host and port of storageServer - *
archiveUrlPath
path-URL-part of archiveServer base dir - *
archiveXMLRPC
XMLRPC server script address relative to archiveUrlPath - *
archiveUrlHost, archiveUrlPort
host and port of archiveServer - *
archiveAccountLogin, archiveAccountPass
account info - * for login to archive - *
sysSubjs
system users/groups - cannot be deleted - * - */ +define('CAMPCASTER_VERSION', '1.6.0-alpha'); +define('CAMPCASTER_COPYRIGHT_DATE', '2010'); -include("campcaster_version.php"); - -// these are the default values for the config +// These are the default values for the config. global $CC_CONFIG; +// Note that these values can be overridden by the user config file, +// located in ~/.campcaster/storageServer.conf.php +// To disable this, set this variable to false. +define('ALLOW_CONF_OVERRIDE', false); + $CC_CONFIG = array( - /* ================================================== basic configuration */ + // Database config 'dsn' => array( - 'username' => 'test', + 'username' => 'test2', 'password' => 'test', 'hostspec' => 'localhost', 'phptype' => 'pgsql', - 'database' => 'campcaster', + 'database' => 'campcaster2', ), + + // Name of the web server user 'webServerUser' => 'www-data', + // prefix for table names in the database + 'tblNamePrefix' => 'cc_', + + // main directory for storing binary media files + 'storageDir' => dirname(__FILE__).'/stor', + + // directory for temporary files + 'bufferDir' => dirname(__FILE__).'/stor/buffer', + + // directory for incomplete transferred files + 'transDir' => dirname(__FILE__).'/trans', + + // directory for symlinks to accessed files + 'accessDir' => dirname(__FILE__).'/access', + 'cronDir' => dirname(__FILE__).'/backend/cron', + + /* ================================================ storage configuration */ "rootDir" => dirname(__FILE__), "smartyTemplate" => dirname(__FILE__)."/htmlUI/templates", "smartyTemplateCompiled" => dirname(__FILE__)."/htmlUI/templates_c", + 'pearPath' => dirname(__FILE__).'/3rd_party/php/pear', - 'tblNamePrefix' => 'cc_', - /* ================================================ storage configuration */ + // secret token cookie name 'authCookieName'=> 'campcaster_session_id', + + // name of admin group //'AdminsGr' => 'Admins', + + // name of station preferences group 'StationPrefsGr'=> 'StationPrefs', + + // name of 'all users' group //'AllGr' => 'All', 'TrashName' => 'trash_', - 'storageDir' => dirname(__FILE__).'/stor', - 'bufferDir' => dirname(__FILE__).'/stor/buffer', - 'transDir' => dirname(__FILE__).'/trans', - 'accessDir' => dirname(__FILE__).'/access', - 'pearPath' => dirname(__FILE__).'/3rd_party/php/pear', -// 'zendPath' => dirname(__FILE__).'/../../../../usr/lib', - 'cronDir' => dirname(__FILE__).'/backend/cron', + + // enable/disable validator 'validate' => TRUE, + + // enable/disable safe delete (move to trash) 'useTrash' => TRUE, /* ==================================================== URL configuration */ - 'storageUrlPath' => '/campcaster/backend', - 'storageXMLRPC' => 'xmlrpc/xrLocStor.php', - 'storageUrlHost' => 'localhost', + // path-URL-part of storageServer base dir + 'storageUrlPath' => '/campcaster/backend', + + // XMLRPC server script address relative to storageUrlPath + 'storageXMLRPC' => 'xmlrpc/xrLocStor.php', + + // host and port of storageServer + 'storageUrlHost' => 'localhost', 'storageUrlPort' => 80, - /* ================================================ archive configuration */ + /* ================================================ remote link configuration */ + // path-URL-part of remote server base dir 'archiveUrlPath' => '/campcaster/backend', + + // XMLRPC server script address relative to archiveUrlPath 'archiveXMLRPC' => 'xmlrpc/xrLocStor.php', + + // host and port of archiveServer 'archiveUrlHost' => 'localhost', // 'archiveUrlHost' => '192.168.30.166', 'archiveUrlPort' => 80, + + // account info for login to archive 'archiveAccountLogin' => 'root', 'archiveAccountPass' => 'q', @@ -143,59 +153,64 @@ $CC_CONFIG['permSequence'] = $CC_CONFIG['permTable'].'_id'; $CC_CONFIG['subjSequence'] = $CC_CONFIG['subjTable'].'_id'; $CC_CONFIG['smembSequence'] = $CC_CONFIG['smembTable'].'_id'; +// system users/groups - cannot be deleted $CC_CONFIG['sysSubjs'] = array( 'root', /*$CC_CONFIG['AdminsGr'],*/ /*$CC_CONFIG['AllGr'],*/ $CC_CONFIG['StationPrefsGr'] ); + +// Add PEAR to the PHP path $old_include_path = get_include_path(); set_include_path('.'.PATH_SEPARATOR.$CC_CONFIG['pearPath'].PATH_SEPARATOR.$old_include_path); -// See if a ~/.campcaster/storageServer.conf.php exists, and -// overwrite the settings from there if any -$this_file = null; -if (isset($_SERVER["SCRIPT_FILENAME"])) { - $this_file = $_SERVER["SCRIPT_FILENAME"]; -} elseif(isset($argv[0])) { - $this_file = $argv[0]; -} -if (!is_null($this_file)) { - $fileowner_id = fileowner($this_file); - $fileowner_array = posix_getpwuid($fileowner_id); - $fileowner_homedir = $fileowner_array['dir']; - $fileowner_name = $fileowner_array['name']; - $home_conf = $fileowner_homedir . '/.campcaster/storageServer.conf.php'; - if (file_exists($home_conf)) { - $default_config = $CC_CONFIG; - $developer_name = $fileowner_name; - include($home_conf); - $user_config = $CC_CONFIG; - $CC_CONFIG = $user_config + $default_config; - } +if (ALLOW_CONF_OVERRIDE) { + // See if a ~/.campcaster/storageServer.conf.php exists, and + // overwrite the settings from there if any + $this_file = null; + if (isset($_SERVER["SCRIPT_FILENAME"])) { + $this_file = $_SERVER["SCRIPT_FILENAME"]; + } elseif(isset($argv[0])) { + $this_file = $argv[0]; + } + if (!is_null($this_file)) { + $fileowner_id = fileowner($this_file); + $fileowner_array = posix_getpwuid($fileowner_id); + $fileowner_homedir = $fileowner_array['dir']; + $fileowner_name = $fileowner_array['name']; + $home_conf = $fileowner_homedir . '/.campcaster/storageServer.conf.php'; + if (file_exists($home_conf)) { + $default_config = $CC_CONFIG; + $developer_name = $fileowner_name; + include($home_conf); + $user_config = $CC_CONFIG; + $CC_CONFIG = $user_config + $default_config; + } + } } // Check that all the required directories exist. -foreach (array('storageDir', 'bufferDir', 'transDir', 'accessDir', 'cronDir') as $d) { - $test = file_exists($CC_CONFIG[$d]); - if ( $test === FALSE ) { - echo " * Error: directory {$CC_CONFIG[$d]} is missing.\n"; - echo " * Please run the install script again.\n"; - exit(1); - } else { - $rp = realpath($CC_CONFIG[$d]); - } - $CC_CONFIG[$d] = $rp; -} +//foreach (array('storageDir', 'bufferDir', 'transDir', 'accessDir', 'cronDir') as $d) { +// $test = file_exists($CC_CONFIG[$d]); +// if ( $test === FALSE ) { +// echo " * Error: directory {$CC_CONFIG[$d]} is missing.\n"; +// echo " * Please run the install script again.\n"; +// exit(1); +// } else { +// $rp = realpath($CC_CONFIG[$d]); +// } +// $CC_CONFIG[$d] = $rp; +//} // Check that htmlUI/templates_c has the right permissions -$ss=@stat($CC_CONFIG["smartyTemplateCompiled"]); -$groupOwner = (function_exists('posix_getgrgid'))?@posix_getgrgid($ss['gid']):''; -if (!empty($groupOwner) && ($groupOwner["name"] != $CC_CONFIG["webServerUser"])) { - echo " * Error: Your directory permissions for {$CC_CONFIG['smartyTemplateCompiled']} are not set correctly.
\n"; - echo " * The group perms need to be set to the web server user, in this case '{$CC_CONFIG['webServerUser']}'.
\n"; - exit(1); -} -$fileperms=@fileperms($CC_CONFIG["smartyTemplateCompiled"]); -if (!($fileperms & 0x0400)) { - echo " * Error: Sticky bit not set for {$CC_CONFIG['smartyTemplateCompiled']}.
\n"; - exit(1); -} +//$ss=@stat($CC_CONFIG["smartyTemplateCompiled"]); +//$groupOwner = (function_exists('posix_getgrgid'))?@posix_getgrgid($ss['gid']):''; +//if (!empty($groupOwner) && ($groupOwner["name"] != $CC_CONFIG["webServerUser"])) { +// echo " * Error: Your directory permissions for {$CC_CONFIG['smartyTemplateCompiled']} are not set correctly.
\n"; +// echo " * The group perms need to be set to the web server user, in this case '{$CC_CONFIG['webServerUser']}'.
\n"; +// exit(1); +//} +//$fileperms=@fileperms($CC_CONFIG["smartyTemplateCompiled"]); +//if (!($fileperms & 0x0400)) { +// echo " * Error: Sticky bit not set for {$CC_CONFIG['smartyTemplateCompiled']}.
\n"; +// exit(1); +//} ?> \ No newline at end of file diff --git a/install/hubSetup.sh b/install/hubSetup.sh deleted file mode 100755 index 714d3f770..000000000 --- a/install/hubSetup.sh +++ /dev/null @@ -1,480 +0,0 @@ -#!/bin/bash -#------------------------------------------------------------------------------- -# Copyright (c) 2010 Sourcefabric O.P.S. -# -# This file is part of the Campcaster project. -# http://campcaster.sourcefabric.org/ -# To report bugs, send an e-mail to bugs@campware.org -# -# Campcaster is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# Campcaster 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 -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Campcaster; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# -# Author : $Author: fgerlits $ -# Version : $Revision: 2292 $ -# Location : $URL: svn+ssh://tomash@code.campware.org/home/svn/repo/livesupport/trunk/livesupport/bin/postInstallStation.sh $ -#------------------------------------------------------------------------------- -#------------------------------------------------------------------------------- -# This script makes installation steps for the Campcaster network hub. -# -# Invoke as: -# ./bin/hubSetup.sh -# -# To get usage help, try the -h option -# -#------------------------------------------------------------------------------- - -#------------------------------------------------------------------------------- -# Determine directories, files -#------------------------------------------------------------------------------- -reldir=`dirname $0`/.. -basedir=`cd $reldir; pwd;` -bindir=$basedir/bin -etcdir=$basedir/etc -srcdir=$basedir/src -tools_dir=$srcdir/tools -modules_dir=$srcdir/modules - - -#------------------------------------------------------------------------------- -# Print the usage information for this script. -#------------------------------------------------------------------------------- -printUsage() -{ - echo "Campcaster network hub install script."; - echo "parameters"; - echo ""; - echo " -d, --directory The installation directory, required."; - echo " -n, --hostname The remotely accessible hostname [default `hostname -f`]."; - echo " -D, --database The name of the Campcaster database."; - echo " [default: CampcasterHub]"; - echo " -g, --apache-group The group the apache daemon runs as."; - echo " [default: www-data]"; - echo " -r, --www-root The root directory for web documents served"; - echo " by apache [default: /var/www]"; - echo " -s, --dbserver The name of the database server host."; - echo " [default: localhost]"; - echo " -u, --dbuser The name of the database user to access the" - echo " database. [default: campcaster]"; - echo " -w, --dbpassword The database user password."; - echo " [default: campcaster]"; - echo " -p, --postgresql-dir The postgresql data directory, containing"; - echo " pg_hba.conf [default: /etc/postgresql]"; - echo " -i, --postgresql-init-script The name of the postgresql init"; - echo " script [default: /etc/init.d/postgresql]"; - echo " -P, --skip-postgresql Don't modify posgresql configuration."; - echo " -A, --skip-apache Don't modify apache configuration."; - echo " -h, --help Print this message and exit."; - echo ""; -} - - -#------------------------------------------------------------------------------- -# Process command line parameters -#------------------------------------------------------------------------------- -CMD=${0##*/} - -opts=$(getopt -o Ad:D:g:hi:n:p:Pr:s:u:w: -l apache-group:,database:,dbserver:,dbuser:,dbpassword:,directory:,help,hostname:,postgresql-dir:,postgresql-init-script:,skip-apache,skip-postgresql,www-root: -n $CMD -- "$@") || exit 1 -eval set -- "$opts" -while true; do - case "$1" in - -S|--skip-apache) - skip_apache="yes"; - shift;; - -d|--directory) - installdir=$2; - shift; shift;; - -D|--database) - database=$2; - shift; shift;; - -g|--apache-group) - apache_group=$2; - shift; shift;; - -h|--help) - printUsage; - exit 0;; - -i|--postgresql-init-script) - postgresql_init_script=$2; - shift; shift;; - -n|--hostname) - hostname=$2; - shift; shift;; - -p|--postgresql-dir) - postgresql_dir=$2; - shift; shift;; - -P|--skip-postgresql) - skip_postgresql="yes"; - shift;; - -r|--www-root) - www_root=$2; - shift; shift;; - -s|--dbserver) - dbserver=$2; - shift; shift;; - -u|--dbuser) - dbuser=$2; - shift; shift;; - -w|--dbpassword) - dbpassword=$2; - shift; shift;; - --) - shift; - break;; - *) - echo "Unrecognized option $1."; - printUsage; - exit 1; - esac -done - -if [ "x$installdir" == "x" ]; then - echo "Required parameter install directory not specified."; - printUsage; - exit 1; -fi - -if [ "x$dbserver" == "x" ]; then - dbserver=localhost; -fi - -if [ "x$database" == "x" ]; then - database=CampcasterHub; -fi - -if [ "x$dbuser" == "x" ]; then - dbuser=campcaster; -fi - -if [ "x$dbpassword" == "x" ]; then - dbpassword=campcaster; -fi - -if [ "x$apache_group" == "x" ]; then - apache_group=www-data; -fi - -if [ "x$postgresql_dir" == "x" ]; then - postgresql_dir=/etc/postgresql; -fi - -if [ "x$postgresql_init_script" == "x" ]; then - postgresql_init_script=/etc/init.d/postgresql; -fi - -if [ "x$www_root" == "x" ]; then - www_root=/var/www; -fi - -if [ "x$hostname" == "x" ]; then - hostname=`hostname -f` -fi - -www_port=80 - -echo "Installing Campcaster network hub."; -echo ""; -echo "Using the following installation parameters:"; -echo ""; -echo " installation directory: $installdir"; -echo " database server: $dbserver"; -echo " database: $database"; -echo " database user: $dbuser"; -echo " database user password: $dbpassword"; -echo " apache daemon group: $apache_group"; -echo " apache document root: $www_root"; -echo " postgresql data directory: $postgresql_dir"; -echo " postgresql init script: $postgresql_init_script"; -echo " hostname: $hostname"; -echo " www port: $www_port"; -echo "" - -#------------------------------------------------------------------------------- -# The details of installation -#------------------------------------------------------------------------------- -ls_dbserver=$dbserver -ls_dbuser=$dbuser -ls_dbpassword=$dbpassword -ls_database=$database - -postgres_user=postgres - -install_bin=$installdir/bin -install_etc=$installdir/etc -install_lib=$installdir/lib -install_usr=$installdir/usr -install_var_ls=$installdir/var/Campcaster - -url_prefix=campcaster_hub - -#------------------------------------------------------------------------------- -# Function to check for the existence of an executable on the PATH -# -# @param $1 the name of the exectuable -# @return 0 if the executable exists on the PATH, non-0 otherwise -#------------------------------------------------------------------------------- -check_exe() { - if [ -x "`which $1 2> /dev/null`" ]; then - echo "Executable $1 found..."; - return 0; - else - echo "Executable $1 not found..."; - return 1; - fi -} - - -#------------------------------------------------------------------------------- -# Check to see if this script is being run as root -#------------------------------------------------------------------------------- -if [ `whoami` != "root" ]; then - echo "Please run this script as root."; - exit ; -fi - - -#------------------------------------------------------------------------------- -# Check for required tools -#------------------------------------------------------------------------------- -echo "Checking for required tools..." - -check_exe "sed" || exit 1; -check_exe "psql" || exit 1; -check_exe "php" || exit 1; - - -#------------------------------------------------------------------------------- -# Check for the apache group to be a real group -#------------------------------------------------------------------------------- -group_tmp_file=/tmp/ls_group_check.$$ -touch $group_tmp_file -test_result=`chgrp $apache_group $group_tmp_file 2> /dev/null` -if [ $? != 0 ]; then - rm -f $group_tmp_file; - echo "Unable to use apache deamon group $apache_group."; - echo "Please check if $apache_group is a correct user group."; - exit 1; -fi -rm -f $group_tmp_file; - - -#------------------------------------------------------------------------------- -# Install the new pg_hba.conf file -#------------------------------------------------------------------------------- -if [ "$skip_postgresql" != "yes" ]; then - echo "Modifying postgresql access permissions..."; - - pg_config_dir=$postgresql_dir - pg_config_file=pg_hba.conf - pg_config_file_saved=pg_hba.conf.before-campcaster - - if [ -f $pg_config_dir/$pg_config_file ] ; then - mv -vf $pg_config_dir/$pg_config_file $pg_config_dir/$pg_config_file_saved ; - fi - cp -v $etcdir/$pg_config_file $pg_config_dir/$pg_config_file - chown root:$postgres_user $pg_config_dir/$pg_config_file - - # don't use restart for the init script, as it might return prematurely - # and in the later call to psql we wouldn't be able to connect - ${postgresql_init_script} stop - ${postgresql_init_script} start -fi - -#------------------------------------------------------------------------------- -# Configuring Apache -#------------------------------------------------------------------------------- -if [ "$skip_apache" != "yes" ]; then - echo "Configuring apache ..." - CONFFILE=90_php_campcaster.conf - AP_DDIR_FOUND=no - for APACHE_DDIR in \ - /etc/apache/conf.d /etc/apache2/conf.d /etc/apache2/conf/modules.d \ - /etc/httpd/conf.d /etc/apache2/modules.d - do - echo -n "$APACHE_DDIR " - if [ -d $APACHE_DDIR ]; then - echo "Y" - AP_DDIR_FOUND=yes - cp -v $basedir/etc/apache/$CONFFILE $APACHE_DDIR - break - else - echo "N" - fi - done - if [ "$AP_DDIR_FOUND" != "yes" ]; then - echo "###############################" - echo " Could not configure Apache" - echo " include following file into apache config manually:" - echo " $basedir/etc/apache/$CONFFILE" - echo "###############################" - else - echo "done" - echo "Restarting apache..."; - AP_SCR_FOUND=no - for APACHE_SCRIPT in apache apache2 httpd ; do - echo -n "$APACHE_SCRIPT " - if [ -x /etc/init.d/$APACHE_SCRIPT ]; then - echo "Y" - AP_SCR_FOUND=yes - /etc/init.d/$APACHE_SCRIPT restart - else - echo "N" - fi - done - if [ "$AP_SCR_FOUND" != "yes" ]; then - echo "###############################" - echo " Could not reload Apache" - echo " please reload apache manually" - echo "###############################" - fi - echo "done" - fi -fi - -#------------------------------------------------------------------------------- -# Create the necessary database user and database itself -#------------------------------------------------------------------------------- -echo "Creating database user '$ls_dbuser' and database '$ls_database' ..."; - -# FIXME: the below might not work for remote databases - -if [ "x$ls_dbserver" == "xlocalhost" ]; then - su - $postgres_user -c "echo \"CREATE USER $ls_dbuser \ - ENCRYPTED PASSWORD '$ls_dbpassword' \ - CREATEDB NOCREATEUSER;\" \ - | psql template1" \ - || echo "Couldn't create database user $ls_dbuser."; - - su - $postgres_user -c "echo \"CREATE DATABASE \\\"$ls_database\\\" \ - OWNER $ls_dbuser ENCODING 'utf-8';\" \ - | psql template1" \ - || echo "Couldn't create database $ls_database."; -else - echo "Unable to automatically create database user and table for"; - echo "remote database $ls_dbserver."; - echo "Make sure to create database user $ls_dbuser with password"; - echo "$ls_dbpassword on database server at $ls_dbserver."; - echo "Also create a database called $ls_database, owned by this user."; - echo ""; - echo "The easiest way to achieve this is by issuing the following SQL"; - echo "commands to PostgreSQL:"; - echo "CREATE USER $ls_dbuser"; - echo " ENCRYPTED PASSWORD '$ls_dbpassword'"; - echo " CREATEDB NOCREATEUSER;"; - echo "CREATE DATABASE \"$ls_database\""; - echo " OWNER $ls_dbuser ENCODING 'utf-8';"; -fi - - -# TODO: check for the success of these operations somehow - - -#------------------------------------------------------------------------------- -# Configuring modules -#------------------------------------------------------------------------------- -echo "Configuring modules ..."; - -cd $tools_dir/pear && ./configure --prefix=$installdir -cd $modules_dir/alib && ./configure --prefix=$installdir -cd $modules_dir/getid3 && ./configure --prefix=$installdir -#cd $modules_dir/htmlUI && ./configure --prefix=$installdir \ -# --with-apache-group=$apache_group \ -# --with-www-docroot=$www_root \ -# --with-storage-server=$installdir/var/Campcaster/storageServer -cd $modules_dir/storageAdmin && ./configure --prefix=$installdir \ - --with-storage-server=$installdir/var/Campcaster/storageServer \ - --with-phppart-dir=$installdir/var/Campcaster/storageAdmin -cd $modules_dir/storageServer && \ - ./configure --prefix=$installdir \ - --with-apache-group=$apache_group \ - --with-hostname=$hostname \ - --with-www-docroot=$www_root \ - --with-www-port=$www_port \ - --with-database-server=$dbserver \ - --with-database=$database \ - --with-database-user=$dbuser \ - --with-database-password=$dbpassword \ - --with-init-database=no \ - --with-url-prefix=$url_prefix - - -#------------------------------------------------------------------------------- -# Install -#------------------------------------------------------------------------------- -echo "Installing modules ..."; - -mkdir -p $installdir -#$tools_dir/pear/bin/install.sh -d $installdir || exit 1 -make -C $tools_dir/pear install -make -C $modules_dir/alib install -make -C $modules_dir/getid3 install -make -C $modules_dir/storageServer install -make -C $modules_dir/storageAdmin install - -mkdir -p $install_var_ls/storageServer/var/tests -for it in ex1.mp3 ex2.wav; do - cp $modules_dir/storageServer/var/tests/$it \ - $install_var_ls/storageServer/var/tests -done - -#------------------------------------------------------------------------------- -# Create symlinks -#------------------------------------------------------------------------------- -echo "Creating symlinks..."; - -# create symlink for the PHP pages in apache's document root -webentry=$www_root/$url_prefix -rm -f $webentry -ln -vs $install_var_ls $webentry - - -#------------------------------------------------------------------------------- -# Setup directory permissions -#------------------------------------------------------------------------------- -echo "Setting up directory permissions..." - -chgrp $apache_group $install_var_ls/storageServer/var/stor -chgrp $apache_group $install_var_ls/storageServer/var/access -chgrp $apache_group $install_var_ls/storageServer/var/trans -chgrp $apache_group $install_var_ls/storageServer/var/stor/buffer - -chmod g+sw $install_var_ls/storageServer/var/stor -chmod g+sw $install_var_ls/storageServer/var/access -chmod g+sw $install_var_ls/storageServer/var/trans -chmod g+sw $install_var_ls/storageServer/var/stor/buffer - -#chgrp $apache_group $install_var_ls/htmlUI/var/templates_c -#chgrp $apache_group $install_var_ls/htmlUI/var/html/img - -#chmod g+sw $install_var_ls/htmlUI/var/templates_c -#chmod g+sw $install_var_ls/htmlUI/var/html/img - - -#------------------------------------------------------------------------------- -# Initialize the database -#------------------------------------------------------------------------------- -echo "Initializing database..."; - -# create PHP-related database tables -cd $install_var_ls/storageServer/var/install -php -q install.php || exit 1; -cd - - -#------------------------------------------------------------------------------- -# Say goodbye -#------------------------------------------------------------------------------- -echo "Done." - - -exit - diff --git a/install/install.php b/install/install.php index 61fb97292..021eddb30 100644 --- a/install/install.php +++ b/install/install.php @@ -4,7 +4,6 @@ * @subpackage StorageServer * @copyright 2010 Sourcefabric O.P.S. * @license http://www.gnu.org/licenses/gpl.txt - * */ // Do not allow remote execution @@ -16,30 +15,55 @@ if (isset($arr["DOCUMENT_ROOT"]) && ($arr["DOCUMENT_ROOT"] != "") ) { exit(1); } -echo "*************************\n"; -echo "* StorageServer Install *\n"; -echo "*************************\n"; +echo "**********************\n"; +echo "* Campcaster Install *\n"; +echo "**********************\n"; require_once(dirname(__FILE__).'/../conf.php'); require_once(dirname(__FILE__).'/../backend/GreenBox.php'); require_once(dirname(__FILE__).'/../backend/cron/Cron.php'); require_once(dirname(__FILE__)."/installInit.php"); + +echo " *** Database Installation ***\n"; + +//sudo -u postgres createuser --no-superuser --no-createdb --no-createrole -A -P myuser + +// Create the database user +$command = "sudo -u postgres psql postgres --command \"CREATE USER {$CC_CONFIG['dsn']['username']} " + ." ENCRYPTED PASSWORD '{$CC_CONFIG['dsn']['password']}' CREATEDB NOCREATEUSER;\" 2>/dev/null"; +@exec($command, $output, $results); +if ($results == 0) { + echo " * User {$CC_CONFIG['dsn']['username']} created.\n"; +} else { + echo " * User {$CC_CONFIG['dsn']['username']} already exists.\n"; +} + +$command = "sudo -u postgres createdb {$CC_CONFIG['dsn']['database']} 2> /dev/null"; +@exec($command, $output, $results); +if ($results == 0) { + echo " * Database '{$CC_CONFIG['dsn']['database']}' created.\n"; +} else { + echo " * Database '{$CC_CONFIG['dsn']['database']}' already exists.\n"; +} + +// Connect to DB campcaster_db_connect(true); +// Install postgres scripting language $langIsInstalled = $CC_DBC->GetOne('select count(*) FROM pg_language WHERE lanname = \'plpgsql\''); if ($langIsInstalled == '0') { - echo " * Installing Postgres scripting language\n"; + echo " * Installing Postgres scripting language...\n"; $sql = "CREATE LANGUAGE 'plpgsql'"; camp_install_query($sql); } else { - echo " * Postgres scripting language already installed\n"; + echo " * Postgres scripting language already installed\n"; } //------------------------------------------------------------------------------ // Install database tables //------------------------------------------------------------------------------ if (!camp_db_table_exists($CC_CONFIG['subjTable'])) { - echo " * Creating database table ".$CC_CONFIG['subjTable']."..."; + echo " * Creating database table ".$CC_CONFIG['subjTable']."..."; $sql = "CREATE TABLE ".$CC_CONFIG['subjTable']." ( id int not null PRIMARY KEY, login varchar(255) not null default'', @@ -62,11 +86,11 @@ if (!camp_db_table_exists($CC_CONFIG['subjTable'])) { $CC_DBC->createSequence($CC_CONFIG['subjSequence']); echo "done.\n"; } else { - echo " * Skipping: database table already exists: ".$CC_CONFIG['subjTable']."\n"; + echo " * Skipping: database table already exists: ".$CC_CONFIG['subjTable']."\n"; } if (!camp_db_table_exists($CC_CONFIG['smembTable'])) { - echo " * Creating database table ".$CC_CONFIG['smembTable']."..."; + echo " * Creating database table ".$CC_CONFIG['smembTable']."..."; $sql = "CREATE TABLE ".$CC_CONFIG['smembTable']." ( id int not null PRIMARY KEY, uid int not null default 0, @@ -82,11 +106,11 @@ if (!camp_db_table_exists($CC_CONFIG['smembTable'])) { //$CC_DBC->createSequence($CC_CONFIG['smembSequence']); echo "done.\n"; } else { - echo " * Skipping: database table already exists: ".$CC_CONFIG['smembTable']."\n"; + echo " * Skipping: database table already exists: ".$CC_CONFIG['smembTable']."\n"; } if (!camp_db_table_exists($CC_CONFIG['permTable'])) { - echo " * Creating database table ".$CC_CONFIG['permTable']."..."; + echo " * Creating database table ".$CC_CONFIG['permTable']."..."; $sql = "CREATE TABLE ".$CC_CONFIG['permTable']." ( permid int not null PRIMARY KEY, subj int REFERENCES ".$CC_CONFIG['subjTable']." ON DELETE CASCADE, @@ -110,11 +134,11 @@ if (!camp_db_table_exists($CC_CONFIG['permTable'])) { //$CC_DBC->createSequence($CC_CONFIG['permSequence']); echo "done.\n"; } else { - echo " * Skipping: database table already exists: ".$CC_CONFIG['permTable']."\n"; + echo " * Skipping: database table already exists: ".$CC_CONFIG['permTable']."\n"; } if (!camp_db_table_exists($CC_CONFIG['sessTable'])) { - echo " * Creating database table ".$CC_CONFIG['sessTable']."..."; + echo " * Creating database table ".$CC_CONFIG['sessTable']."..."; $sql = "CREATE TABLE ".$CC_CONFIG['sessTable']." ( sessid char(32) not null PRIMARY KEY, userid int REFERENCES ".$CC_CONFIG['subjTable']." ON DELETE CASCADE, @@ -134,32 +158,29 @@ if (!camp_db_table_exists($CC_CONFIG['sessTable'])) { ON ".$CC_CONFIG['sessTable']." (login)"; camp_install_query($sql); } else { - echo " * Skipping: database table already exists: ".$CC_CONFIG['sessTable']."\n"; + echo " * Skipping: database table already exists: ".$CC_CONFIG['sessTable']."\n"; } /** * file states: - * + * empty + * incomplete + * ready + * edited + * deleted + * * file types: - * + * audioclip + * playlist + * webstream + * * access types: - * + * access + * download + * */ if (!camp_db_table_exists($CC_CONFIG['filesTable'])) { - echo " * Creating database table ".$CC_CONFIG['filesTable']."..."; + echo " * Creating database table ".$CC_CONFIG['filesTable']."..."; $sql = "CREATE TABLE ".$CC_CONFIG['filesTable']." ( @@ -243,11 +264,11 @@ if (!camp_db_table_exists($CC_CONFIG['filesTable'])) { //$CC_DBC->createSequence($CC_CONFIG['filesSequence']); } else { - echo " * Skipping: database table already exists: ".$CC_CONFIG['filesTable']."\n"; + echo " * Skipping: database table already exists: ".$CC_CONFIG['filesTable']."\n"; } if (!camp_db_table_exists($CC_CONFIG['playListTable'])) { - echo " * Creating database table ".$CC_CONFIG['playListTable']."..."; + echo " * Creating database table ".$CC_CONFIG['playListTable']."..."; $sql = "CREATE TABLE ".$CC_CONFIG['playListTable']." ( @@ -268,11 +289,11 @@ if (!camp_db_table_exists($CC_CONFIG['playListTable'])) { camp_install_query($sql); } else { - echo " * Skipping: database table already exists: ".$CC_CONFIG['playListTable']."\n"; + echo " * Skipping: database table already exists: ".$CC_CONFIG['playListTable']."\n"; } if (!camp_db_table_exists($CC_CONFIG['playListContentsTable'])) { - echo " * Creating database table ".$CC_CONFIG['playListContentsTable']."..."; + echo " * Creating database table ".$CC_CONFIG['playListContentsTable']."..."; $sql = "CREATE TABLE ".$CC_CONFIG['playListContentsTable']." ( @@ -325,7 +346,7 @@ if (!camp_db_table_exists($CC_CONFIG['playListContentsTable'])) { camp_install_query($sql); } else { - echo " * Skipping: database table already exists: ".$CC_CONFIG['playListContentsTable']."\n"; + echo " * Skipping: database table already exists: ".$CC_CONFIG['playListContentsTable']."\n"; } //if (!camp_db_sequence_exists($CC_CONFIG["filesSequence"])) { @@ -343,7 +364,7 @@ if (!camp_db_table_exists($CC_CONFIG['playListContentsTable'])) { //} if (!camp_db_table_exists($CC_CONFIG['accessTable'])) { - echo " * Creating database table ".$CC_CONFIG['accessTable']."..."; + echo " * Creating database table ".$CC_CONFIG['accessTable']."..."; $sql = "CREATE TABLE ".$CC_CONFIG['accessTable']." ( gunid bigint, -- global unique id token bigint, -- access token @@ -368,10 +389,10 @@ if (!camp_db_table_exists($CC_CONFIG['accessTable'])) { ON ".$CC_CONFIG['accessTable']." (parent)"; camp_install_query($sql); } else { - echo " * Skipping: database table already exists: ".$CC_CONFIG['accessTable']."\n"; + echo " * Skipping: database table already exists: ".$CC_CONFIG['accessTable']."\n"; } -echo " * Inserting default users...\n"; +echo " * Inserting default users...\n"; $gb = new GreenBox(); $r = $gb->initData(true); if (PEAR::isError($r)) { @@ -385,7 +406,7 @@ if (PEAR::isError($r)) { //------------------------------------------------------------------------------ if (!camp_db_table_exists($CC_CONFIG['transTable'])) { - echo " * Creating database table ".$CC_CONFIG['transTable']."..."; + echo " * Creating database table ".$CC_CONFIG['transTable']."..."; $sql = "CREATE TABLE ".$CC_CONFIG['transTable']." ( id int not null, -- primary key trtok char(16) not null, -- transport token @@ -436,14 +457,14 @@ if (!camp_db_table_exists($CC_CONFIG['transTable'])) { ON ".$CC_CONFIG['transTable']." (state)"; camp_install_query($sql); } else { - echo " * Skipping: database table already exists: ".$CC_CONFIG['transTable']."\n"; + echo " * Skipping: database table already exists: ".$CC_CONFIG['transTable']."\n"; } /** * Scheduler tables. */ if (!camp_db_table_exists($CC_CONFIG['scheduleTable'])) { - echo " * Creating database table ".$CC_CONFIG['scheduleTable']."..."; + echo " * Creating database table ".$CC_CONFIG['scheduleTable']."..."; $sql = "CREATE TABLE ".$CC_CONFIG['scheduleTable']."(" ." id bigint NOT NULL," ." playlist_id integer NOT NULL," @@ -460,7 +481,7 @@ if (!camp_db_table_exists($CC_CONFIG['scheduleTable'])) { ." CONSTRAINT unique_id UNIQUE (id))"; camp_install_query($sql); } else { - echo " * Skipping: database table already exists: ".$CC_CONFIG['scheduleTable']."\n"; + echo " * Skipping: database table already exists: ".$CC_CONFIG['scheduleTable']."\n"; } @@ -478,7 +499,7 @@ if (!camp_db_table_exists($CC_CONFIG['scheduleTable'])) { if (!camp_db_table_exists($CC_CONFIG['backupTable'])) { - echo " * Creating database table ".$CC_CONFIG['backupTable']."..."; + echo " * Creating database table ".$CC_CONFIG['backupTable']."..."; $sql = "CREATE TABLE ".$CC_CONFIG['backupTable']." (" ." token VARCHAR(64) NOT NULL," ." sessionId VARCHAR(64) NOT NULL," @@ -488,11 +509,11 @@ if (!camp_db_table_exists($CC_CONFIG['backupTable'])) { ." PRIMARY KEY(token))"; camp_install_query($sql); } else { - echo " * Skipping: database table already exists: ".$CC_CONFIG['backupTable']."\n"; + echo " * Skipping: database table already exists: ".$CC_CONFIG['backupTable']."\n"; } if (!camp_db_table_exists($CC_CONFIG['prefTable'])) { - echo " * Creating database table ".$CC_CONFIG['prefTable']."..."; + echo " * Creating database table ".$CC_CONFIG['prefTable']."..."; //$CC_DBC->createSequence($CC_CONFIG['prefSequence']); $sql = "CREATE TABLE ".$CC_CONFIG['prefTable']." ( id int not null, @@ -514,36 +535,37 @@ if (!camp_db_table_exists($CC_CONFIG['prefTable'])) { ON ".$CC_CONFIG['prefTable']." (subjid)"; camp_install_query($sql); - echo " * Inserting starting data into table ".$CC_CONFIG['prefTable']."..."; + echo " * Inserting starting data into table ".$CC_CONFIG['prefTable']."..."; $stPrefGr = Subjects::GetSubjId($CC_CONFIG['StationPrefsGr']); Prefs::Insert($CC_CONFIG["systemPrefId"], 'stationName', "Radio Station 1"); // $genres = file_get_contents( dirname(__FILE__).'/../genres.xml'); // Prefs::Insert($CC_CONFIG["systemPrefId"], 'genres', $genres); echo "done.\n"; } else { - echo " * Skipping: database table already exists: ".$CC_CONFIG['prefTable']."\n"; + echo " * Skipping: database table already exists: ".$CC_CONFIG['prefTable']."\n"; } //------------------------------------------------------------------------ // Install storage directories //------------------------------------------------------------------------ +echo " *** Directory Setup ***\n"; foreach (array('storageDir', 'bufferDir', 'transDir', 'accessDir', 'cronDir') as $d) { $test = file_exists($CC_CONFIG[$d]); if ( $test === FALSE ) { @mkdir($CC_CONFIG[$d], 02775); if (file_exists($CC_CONFIG[$d])) { $rp = realpath($CC_CONFIG[$d]); - echo " * Directory $rp created\n"; + echo " * Directory $rp created\n"; } else { - echo " * Failed creating {$CC_CONFIG[$d]}\n"; + echo " * Failed creating {$CC_CONFIG[$d]}\n"; exit(1); } } elseif (is_writable($CC_CONFIG[$d])) { $rp = realpath($CC_CONFIG[$d]); - echo " * Skipping directory already exists: $rp\n"; + echo " * Skipping directory already exists: $rp\n"; } else { $rp = realpath($CC_CONFIG[$d]); - echo " * WARNING: Directory already exists, but is not writable: $rp\n"; + echo " * WARNING: Directory already exists, but is not writable: $rp\n"; //exit(1); } $CC_CONFIG[$d] = $rp; @@ -553,16 +575,28 @@ foreach (array('storageDir', 'bufferDir', 'transDir', 'accessDir', 'cronDir') as // Storage directory writability test //------------------------------------------------------------------------ -echo " * Testing writability of ".$CC_CONFIG['storageDir']."..."; -if (!($fp = @fopen($CC_CONFIG['storageDir']."/_writeTest", 'w'))) { - echo "\nPlease make directory {$CC_CONFIG['storageDir']} writeable by your webserver". - "\nand run install again\n\n"; - exit(1); -} else { - fclose($fp); - unlink($CC_CONFIG['storageDir']."/_writeTest"); -} -echo "done.\n"; +//echo " * Testing writability of ".$CC_CONFIG['storageDir']."..."; +//if (!($fp = @fopen($CC_CONFIG['storageDir']."/_writeTest", 'w'))) { +// echo "\nPlease make directory {$CC_CONFIG['storageDir']} writeable by your webserver". +// "\nand run install again\n\n"; +// exit(1); +//} else { +// fclose($fp); +// unlink($CC_CONFIG['storageDir']."/_writeTest"); +//} +//echo "done.\n"; + + +// +// Make sure the Smarty Templates Compiled directory has the right perms +// +echo " * Setting dir permissions...\n"; +install_setDirPermissions($CC_CONFIG["smartyTemplateCompiled"]); +install_setDirPermissions($CC_CONFIG["storageDir"]); +install_setDirPermissions($CC_CONFIG["bufferDir"]); +install_setDirPermissions($CC_CONFIG["transDir"]); +install_setDirPermissions($CC_CONFIG["accessDir"]); + //------------------------------------------------------------------------ // Install Cron job @@ -595,8 +629,8 @@ $cron->ct->addCron($m, $h, $dom, $mon, $dow, $command); $cron->closeCrontab(); echo " Done.\n"; -echo "**********************************\n"; -echo "* StorageServer Install Complete *\n"; -echo "**********************************\n"; +echo "*******************************\n"; +echo "* Campcaster Install Complete *\n"; +echo "*******************************\n"; ?> \ No newline at end of file diff --git a/install/installInit.php b/install/installInit.php index c126e2d34..5869a831f 100644 --- a/install/installInit.php +++ b/install/installInit.php @@ -61,4 +61,27 @@ function campcaster_db_connect($p_exitOnError = true) { } } +function install_setDirPermissions($filePath) { + global $CC_CONFIG; + $success = chgrp($filePath, $CC_CONFIG["webServerUser"]); + $fileperms=@fileperms($filePath); + $fileperms = $fileperms | 0x0010; // group write bit + $fileperms = $fileperms | 0x0400; // group sticky bit + chmod($filePath, $fileperms); + + // Verify Smarty template dir permissions + $fileGroup = filegroup($CC_CONFIG["smartyTemplateCompiled"]); + $groupOwner = (function_exists('posix_getgrgid'))?@posix_getgrgid($fileGroup):''; + if (!empty($groupOwner) && ($groupOwner["name"] != $CC_CONFIG["webServerUser"])) { + echo " * Error: Your directory permissions for {$filePath} are not set correctly.
\n"; + echo " * The group perms need to be set to the web server user, in this case '{$CC_CONFIG['webServerUser']}'.
\n"; + echo " * Currently the group is set to be '{$groupOwner['name']}'.
\n"; + exit(1); + } + if (!($fileperms & 0x0400)) { + echo " * Error: Sticky bit not set for {$filePath}.
\n"; + exit(1); + } +} + ?> \ No newline at end of file diff --git a/install/nightlyBuild.sh b/install/nightlyBuild.sh deleted file mode 100755 index dcfb93566..000000000 --- a/install/nightlyBuild.sh +++ /dev/null @@ -1,84 +0,0 @@ -#!/bin/bash -#------------------------------------------------------------------------------- -# Copyright (c) 2010 Sourcefabric O.P.S. -# -# This file is part of the Campcaster project. -# http://campcaster.sourcefabric.org/ -# To report bugs, send an e-mail to bugs@campware.org -# -# Campcaster is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# Campcaster 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 -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Campcaster; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -#------------------------------------------------------------------------------- - -#------------------------------------------------------------------------------- -# This script generates the nightly builds and logs. -#------------------------------------------------------------------------------- - -reldir=`dirname $0`/.. -basedir=`cd $reldir; pwd;` -bindir=${basedir}/bin -tmpdir=${basedir}/tmp -logdir=${basedir}/tmp - -cd ${basedir} - - -#------------------------------------------------------------------------------- -# Update the source from the repository. -#------------------------------------------------------------------------------- -mv -f ${logdir}/nightlySvnUpdate.log ${logdir}/nightlySvnUpdate.log~ -svn update &> ${logdir}/nightlySvnUpdate.log -ls -l ${logdir}/nightlySvnUpdate.log >> ${logdir}/nightlySvnUpdate.log - - -#------------------------------------------------------------------------------- -# Generate the documentation. -#------------------------------------------------------------------------------- -mv -f ${logdir}/nightlyMakeDoxygen.log ${logdir}/nightlyMakeDoxygen.log~ -make doxygen &> ${logdir}/nightlyMakeDoxygen.log -ls -l ${logdir}/nightlyMakeDoxygen.log >> ${logdir}/nightlyMakeDoxygen.log - - -#------------------------------------------------------------------------------- -# Recompile the code. -#------------------------------------------------------------------------------- -mv -f ${logdir}/nightlyMakeRecompile.log ${logdir}/nightlyMakeRecompile.log~ -make recompile &> ${logdir}/nightlyMakeRecompile.log -ls -l ${logdir}/nightlyMakeRecompile.log >> ${logdir}/nightlyMakeRecompile.log - - -#------------------------------------------------------------------------------- -# Run the unit tests. -#------------------------------------------------------------------------------- -mv -f ${logdir}/nightlyMakeCheck.log ${logdir}/nightlyMakeCheck.log~ -make check &> ${logdir}/nightlyMakeCheck.log -ls -l ${logdir}/nightlyMakeCheck.log >> ${logdir}/nightlyMakeCheck.log - - -#------------------------------------------------------------------------------- -# Generate the test results report. -#------------------------------------------------------------------------------- -mv -f ${logdir}/nightlyMakeTestResults.log ${logdir}/nightlyMakeTestResults.log~ -make testresults &> ${logdir}/nightlyMakeTestResults.log -ls -l ${logdir}/nightlyMakeTestResults.log >> ${logdir}/nightlyMakeTestResults.log - - -#------------------------------------------------------------------------------- -# Generate the flawfinder report. -#------------------------------------------------------------------------------- -mv -f ${logdir}/nightlyMakeFlawfinder.log ${logdir}/nightlyMakeFlawfinder.log~ -make flawfinder &> ${logdir}/nightlyMakeFlawfinder.log -ls -l ${logdir}/nightlyMakeFlawfinder.log >> ${logdir}/nightlyMakeFlawfinder.log - diff --git a/install/setupDevelopmentEnvironmentAndLog.sh b/install/setupDevelopmentEnvironmentAndLog.sh deleted file mode 100755 index 63392c58d..000000000 --- a/install/setupDevelopmentEnvironmentAndLog.sh +++ /dev/null @@ -1,208 +0,0 @@ -#!/bin/bash -#------------------------------------------------------------------------------- -# Copyright (c) 2010 Sourcefabric O.P.S. -# -# This file is part of the Campcaster project. -# http://campcaster.sourcefabric.org/ -# To report bugs, send an e-mail to bugs@campware.org -# -# Campcaster is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# Campcaster 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 -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Campcaster; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -#------------------------------------------------------------------------------- - -#------------------------------------------------------------------------------- -# A script to set up the development environment for Campcaster -# -# Invoke as: -# ./bin/setupDevelopmentEnvironmentAndLog.sh -#------------------------------------------------------------------------------- - -#------------------------------------------------------------------------------- -# Determine directories, files -#------------------------------------------------------------------------------- -reldir=`dirname $0`/.. -basedir=`cd $reldir; pwd;` -bindir=$basedir/bin -tmpdir=$basedir/tmp -logdir=$basedir/tmp - -usrdir=`cd $basedir/usr; pwd;` - -#------------------------------------------------------------------------------- -# Print the usage information for this script. -#------------------------------------------------------------------------------- -printUsage() -{ - echo "Campcaster development environment setup script."; - echo "parameters"; - echo ""; - echo " -g, --apache-group The group the apache daemon runs as."; - echo " [default: www-data]"; - echo " -h, --help Print this message and exit."; - echo ""; -} - -#------------------------------------------------------------------------------- -# Process command line parameters -#------------------------------------------------------------------------------- -CMD=${0##*/} - -opts=$(getopt -o g:h -l apache-group:,help -n $CMD -- "$@") || exit 1 -eval set -- "$opts" -while true; do - case "$1" in - -g|--apache-group) - apache_group=$2; - shift; shift;; - -h|--help) - printUsage; - exit 0;; - --) - shift; - break;; - *) - echo "Unrecognized option $1."; - printUsage; - exit 1; - esac -done - -if [ "x$apache_group" = "x" ]; then - apache_group=www-data; -fi - -#------------------------------------------------------------------------------ -# All steps are being logged -#------------------------------------------------------------------------------ -echo ""; -echo "The compile process will be started. All steps are being logged in"; -echo "$logdir "; -echo ""; - -#------------------------------------------------------------------------------ -# Cleaning the setup -#------------------------------------------------------------------------------ -mv -f $logdir/make_modprod_distclean_setup.log \ - $logdir/make_modprod_distclean_setup.log~ -make -C $basedir modprod_distclean \ - > $logdir/make_modprod_distclean_setup.log 2>&1 -ls -l $logdir/make_modprod_distclean_setup.log \ - >> $logdir/make_modprod_distclean_setup.log - -#------------------------------------------------------------------------------- -# Create the configure script, using setup parameters -#------------------------------------------------------------------------------- -# --prefix=$usrdir --with-www-docroot=$usrdir/var =/var/www -# --with-hostname=localhost --with-apache-group=$apache_group -# --enable-debug --with-configure-apache=no =yes -# -# --with-create-database=no =yes --with-create-odbc-data-source=no =yes -# --with-init-database=no =yes --with-database=Campcaster-name -# --with-database-user=test --with-database-password=test -# -# --with-station-audio-out=default -# --with-studio-audio-out=default -# --with-studio-audio-cue=default -# - -rm -rf $tmpdir/configure -echo "Now Configure ... Development Environment"; -mv -f $logdir/configure_development_environment.log \ - $logdir/configure_development_environment.log~ -$bindir/autogen.sh \ - > $logdir/configure_development_environment.log 2>&1 -$basedir/configure --prefix=$usrdir --enable-debug \ - --with-hostname=localhost \ - --with-www-docroot=$usrdir/var \ - --with-apache-group=$apache_group \ - >> $logdir/configure_development_environment.log 2>&1 -ls -l $logdir/configure_development_environment.log \ - >> $logdir/configure_development_environment.log -echo ""; -echo "Configure is done, the configure_development_environment.log is created"; -echo ""; - -#------------------------------------------------------------------------------- -# Compile step by step -#------------------------------------------------------------------------------- -echo "Now Compiling ... Tools"; -mv -f $logdir/make_install_tools_setup.log \ - $logdir/make_install_tools_setup.log~ -make -C $basedir tools_setup \ - > $logdir/make_install_tools_setup.log 2>&1 -ls -l $logdir/make_install_tools_setup.log \ - >> $logdir/make_install_tools_setup.log -echo "Done Tools Setup, the make_install_tools_setup.log is created"; -echo ""; -echo "Now Compiling ... Doxytag"; -mv -f $logdir/make_doxytag_setup.log \ - $logdir/make_doxytag_setup.log~ -make -C $basedir doxytag_setup \ - > $logdir/make_doxytag_setup.log 2>&1 -ls -l $logdir/make_doxytag_setup.log \ - >> $logdir/make_doxytag_setup.log -echo "Done Doxytag Setup, the make_doxytag_setup.log is created"; -echo ""; -echo "Now Configure ... Modules ... Products"; -mv -f $logdir/make_configure_modules_setup.log \ - $logdir/make_configure_modules_setup.log~ -make -C $basedir modules_setup \ - > $logdir/make_configure_modules_setup.log 2>&1 -ls -l $logdir/make_configure_modules_setup.log \ - >> $logdir/make_configure_modules_setup.log -echo "Configure Modules is done, the make_configure_modules_setup.log is created"; -mv -f $logdir/make_configure_products_setup.log \ - $logdir/make_configure_products_setup.log~ -make -C $basedir products_setup \ - > $logdir/make_configure_products_setup.log 2>&1 -ls -l $logdir/make_configure_products_setup.log \ - >> $logdir/make_configure_products_setup.log -echo "Configure Products is done, the make_configure_products_setup.log is created"; -echo ""; -echo "Now Compiling ... Modules ... Products"; -mv -f $logdir/make_compile_setup.log \ - $logdir/make_compile_setup.log~ -make -C $basedir compile \ - > $logdir/make_compile_setup.log 2>&1 -ls -l $logdir/make_compile_setup.log \ - >> $logdir/make_compile_setup.log -echo "Compiling is done, the make_compile_setup.log is created"; -echo ""; - -#------------------------------------------------------------------------------- -# User setup -#------------------------------------------------------------------------------- -echo "Setting up user settings ..."; - -$bindir/user_setup.sh --apache-group=$apache_group || exit 1 - -#------------------------------------------------------------------------------- -# Checking what we have done -#------------------------------------------------------------------------------- -echo "Now Checking ..."; -mv -f $logdir/make_check_setup.log \ - $logdir/make_check_setup.log~ -make -C $basedir check \ - > $logdir/make_check_setup.log 2>&1 -ls -l $logdir/make_check_setup.log \ - >> $logdir/make_check_setup.log -echo "Checking is be done, the make_check_setup.log is created"; -echo ""; - -#------------------------------------------------------------------------------- -# We're done -#------------------------------------------------------------------------------- -echo "Done." - diff --git a/install/updateStudioConfig.sh b/install/updateStudioConfig.sh deleted file mode 100755 index 457544cbf..000000000 --- a/install/updateStudioConfig.sh +++ /dev/null @@ -1,236 +0,0 @@ -#!/bin/bash -#------------------------------------------------------------------------------- -# Copyright (c) 2010 Sourcefabric O.P.S. -# -# This file is part of the Campcaster project. -# http://campcaster.sourcefabric.org/ -# To report bugs, send an e-mail to bugs@campware.org -# -# Campcaster is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# Campcaster 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 -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Campcaster; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -#------------------------------------------------------------------------------- -# This script updates the configuration file of Campcaster Studio. -# -# Invoke as: -# ./bin/updateStudioConfig.sh -# -# To get usage help, try the -h option -#------------------------------------------------------------------------------- - -#------------------------------------------------------------------------------- -# Determine directories, files -#------------------------------------------------------------------------------- -reldir=`dirname $0`/.. -basedir=`cd $reldir; pwd;` -bindir=$basedir/bin -etcdir=$basedir/etc -docdir=$basedir/doc -tmpdir=$basedir/tmp - - -#------------------------------------------------------------------------------- -# Print the usage information for this script. -#------------------------------------------------------------------------------- -printUsage() -{ - echo "Campcaster Studio post-install script."; - echo "parameters"; - echo ""; - echo " -d, --directory The installation directory, required."; - echo " -H, --host The fully qualified host name of the system"; - echo " [default: guess]."; - echo " -p, --port The port of the apache web server [default: 80]" - echo " -P, --scheduler-port The port of the scheduler daemon to install" - echo " [default: 3344]"; - echo " -o, --output-device The audio device of live-mode broadcast"; - echo " [default: default]"; - echo " -c, --cue-device The audio device of preview listening"; - echo " [default: default]"; - echo " -h, --help Print this message and exit."; - echo ""; -} - - -#------------------------------------------------------------------------------- -# Process command line parameters -#------------------------------------------------------------------------------- -CMD=${0##*/} - -opts=$(getopt -o d:H:hp:P:c:o: -l directory:,host:,help,port:,scheduler-port:,cue-device:,output-device: -n $CMD -- "$@") || exit 1 -eval set -- "$opts" -while true; do - case "$1" in - -d|--directory) - installdir=$2; - shift; shift;; - -H|--host) - hostname=$2; - shift; shift;; - -h|--help) - printUsage; - exit 0;; - -p|--port) - http_port=$2; - shift; shift;; - -P|--scheduler-port) - scheduler_port=$2; - shift; shift;; - -o|--output-device) - output_alsa_device=$2; - shift; shift;; - -c|--cue-device) - cue_alsa_device=$2; - shift; shift;; - --) - shift; - break;; - *) - echo "Unrecognized option $1."; - printUsage; - exit 1; - esac -done - -if [ "x$installdir" == "x" ]; then - echo "Required parameter install directory not specified."; - printUsage; - exit 1; -fi - -if [ "x$hostname" == "x" ]; then - hostname=`hostname -f`; -fi - -if [ "x$http_port" == "x" ]; then - http_port=80; -fi - -if [ "x$scheduler_port" == "x" ]; then - scheduler_port=3344; -fi - -if [ "x$output_alsa_device" == "x" ]; then - output_alsa_device="default"; -fi - -if [ "x$cue_alsa_device" == "x" ]; then - cue_alsa_device="default"; -fi - -echo "Making post-install steps for Campcaster Studio."; -echo ""; -echo "Using the following installation parameters:"; -echo ""; -echo " installation directory: $installdir"; -echo " host name: $hostname"; -echo " web server port: $http_port"; -echo " scheduler port: $scheduler_port"; -echo " live broadcast device: $output_alsa_device"; -echo " preview device: $cue_alsa_device"; -echo "" - -#------------------------------------------------------------------------------- -# The details of installation -#------------------------------------------------------------------------------- -ls_php_host=$hostname -ls_php_port=$http_port -ls_php_urlPrefix=campcaster - -ls_alib_xmlRpcPrefix="xmlrpc/xrLocStor.php" -ls_storage_xmlRpcPrefix="xmlrpc/xrLocStor.php" - -ls_scheduler_host=$hostname -ls_scheduler_port=$scheduler_port -ls_scheduler_urlPrefix= -ls_scheduler_xmlRpcPrefix=RC2 -ls_output_alsa_device=$output_alsa_device -ls_cue_alsa_device=$cue_alsa_device - - -install_bin=$installdir/bin -install_etc=$installdir/etc -install_lib=$installdir/lib -install_tmp=$installdir/tmp -install_var=$installdir/var - - -# replace / characters with a \/ sequence, for sed below -# the sed statement is really "s/\//\\\\\//g", but needs escaping because of -# bash, hence the extra '\' characters -install_var_s=`echo $install_var | sed -e "s/\//\\\\\\\\\//g"` -ls_storage_xmlRpcPrefix_s=`echo $ls_storage_xmlRpcPrefix | \ - sed -e "s/\//\\\\\\\\\//g"` -ls_alib_xmlRpcPrefix_s=`echo $ls_alib_xmlRpcPrefix | sed -e "s/\//\\\\\\\\\//g"` -ls_php_urlPrefix_s=`echo $ls_php_urlPrefix | sed -e "s/\//\\\\\\\\\//g"` -ls_scheduler_urlPrefix_s=`echo $ls_scheduler_urlPrefix | \ - sed -e "s/\//\\\\\\\\\//g"` -ls_scheduler_xmlRpcPrefix_s=`echo $ls_scheduler_xmlRpcPrefix | \ - sed -e "s/\//\\\\\\\\\//g"` -ls_output_alsa_device_s=`echo $ls_output_alsa_device | sed -e "s/\//\\\\\\\\\//g"` -ls_cue_alsa_device_s=`echo $ls_cue_alsa_device | sed -e "s/\//\\\\\\\\\//g"` - -replace_sed_string="s/ls_var_dir/$install_var_s/; \ - s/ls_php_urlPrefix/$ls_php_urlPrefix_s/; \ - s/ls_php_host/$ls_php_host/; \ - s/ls_php_port/$ls_php_port/; \ - s/ls_alib_xmlRpcPrefix/$ls_alib_xmlRpcPrefix_s/; \ - s/ls_audio_output_device/$ls_output_alsa_device_s/; \ - s/ls_audio_cue_device/$ls_cue_alsa_device_s/; \ - s/ls_scheduler_host/$ls_scheduler_host/; \ - s/ls_scheduler_port/$ls_scheduler_port/; \ - s/ls_scheduler_xmlRpcPrefix/$ls_scheduler_xmlRpcPrefix_s/;" - - -#------------------------------------------------------------------------------- -# Function to check for the existence of an executable on the PATH -# -# @param $1 the name of the exectuable -# @return 0 if the executable exists on the PATH, non-0 otherwise -#------------------------------------------------------------------------------- -check_exe() { - if [ -x "`which $1 2> /dev/null`" ]; then - echo "Executable $1 found..."; - return 0; - else - echo "Executable $1 not found..."; - return 1; - fi -} - - -#------------------------------------------------------------------------------- -# Check for required tools -#------------------------------------------------------------------------------- -echo "Checking for required tools..." - -check_exe "sed" || exit 1; - - -#------------------------------------------------------------------------------- -# Customize the configuration files with the appropriate values -#------------------------------------------------------------------------------- -echo "Customizing configuration files..." - -# customize the Campcaster Studio config file -cat $install_etc/campcaster-studio.xml.template \ - | sed -e "$replace_sed_string" \ - > $install_etc/campcaster-studio.xml - - -#------------------------------------------------------------------------------- -# Say goodbye -#------------------------------------------------------------------------------- -echo "Done." - diff --git a/install/user_setup.sh b/install/user_setup.sh deleted file mode 100755 index 66140512a..000000000 --- a/install/user_setup.sh +++ /dev/null @@ -1,352 +0,0 @@ -#!/bin/bash -#------------------------------------------------------------------------------- -# Copyright (c) 2010 Sourcefabric O.P.S. -# -# This file is part of the Campcaster project. -# http://campcaster.sourcefabric.org/ -# To report bugs, send an e-mail to bugs@campware.org -# -# Campcaster is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# Campcaster 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 -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Campcaster; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -#------------------------------------------------------------------------------- -# This script configures the environment for a developer. -# -# Invoke as: -# ./bin/user_setup.sh -# -# To get usage help, try the -h option -#------------------------------------------------------------------------------- - -#------------------------------------------------------------------------------- -# Determine directories, files -#------------------------------------------------------------------------------- -reldir=`dirname $0`/.. -basedir=`cd $reldir; pwd;` -bindir=$basedir/bin -etcdir=$basedir/etc -docdir=$basedir/doc -srcdir=$basedir/src -tmpdir=$basedir/tmp -toolsdir=$srcdir/tools -modules_dir=$srcdir/modules -products_dir=$srcdir/products -scheduler_dir=$products_dir/scheduler -scheduler_bin_dir=$scheduler_dir/bin - -usrdir=`cd $basedir/usr; pwd;` - - -#------------------------------------------------------------------------------- -# Print the usage information for this script. -#------------------------------------------------------------------------------- -printUsage() -{ - echo "Campcaster local user settings setup script."; - echo "parameters"; - echo ""; - echo " -g, --apache-group The group the apache daemon runs as."; - echo " [default: apache]"; - echo " -h, --help Print this message and exit."; - echo ""; -} - - -#------------------------------------------------------------------------------- -# Process command line parameters -#------------------------------------------------------------------------------- -CMD=${0##*/} - -opts=$(getopt -o g:h -l apache-group:,help -n $CMD -- "$@") || exit 1 -eval set -- "$opts" -while true; do - case "$1" in - -g|--apache-group) - apache_group=$2; - shift; shift;; - -h|--help) - printUsage; - exit 0;; - --) - shift; - break;; - *) - echo "Unrecognized option $1."; - printUsage; - exit 1; - esac -done - -if [ "x$apache_group" == "x" ]; then - apache_group=apache; -fi - -scheduler_base_port=3344 - -user=`whoami` -# force localhost always -hostname=localhost -http_port=80 -scheduler_port=`expr $scheduler_base_port + $UID` -scheduler_storage_pass=change_me -dbserver=localhost -database=Campcaster-$user -dbuser=test -dbpassword=test -homedir=$HOME -configdir=$homedir/.campcaster -htmldir=$homedir/public_html -output_device=default -cue_device=default - - -echo "Configuring Campcaster development environment for user $user."; -echo ""; -echo "Using the following installation parameters:"; -echo ""; -echo " host name: $hostname"; -echo " web server port: $http_port"; -echo " scheduler port: $scheduler_port"; -echo " storage password for the scheduler: $scheduler_storage_pass"; -echo " database server: $dbserver"; -echo " database: $database"; -echo " database user: $dbuser"; -echo " database user password: $dbpassword"; -echo " apache daemon group: $apache_group"; -echo " home directory: $homedir"; -echo " configuration directory: $configdir"; -echo " web base directory: $htmldir"; -echo " output audio device: $output_device"; -echo "" - - -# check for the apache group to be a real group -group_tmp_file=/tmp/ls_group_check.$$ -touch $group_tmp_file -test_result=`chgrp $apache_group $group_tmp_file 2> /dev/null` -if [ $? != 0 ]; then - rm -f $group_tmp_file; - echo "Unable to use apache deamon group $apache_group."; - echo "Please check if $apache_group is a correct user group,"; - echo "and that the current user is a member of this group."; - exit 1; -fi -rm -f $group_tmp_file; - - -#------------------------------------------------------------------------------- -# The details of installation -#------------------------------------------------------------------------------- - -installdir=$usrdir - -ls_php_host=$hostname -ls_php_port=$http_port -ls_php_urlPrefix=~$user/campcaster - -ls_alib_xmlRpcPrefix="xmlrpc/xrLocStor.php" -ls_storage_xmlRpcPrefix="xmlrpc/xrLocStor.php" - -ls_dbserver=$dbserver -ls_dbuser=$dbuser -ls_dbpassword=$dbpassword -ls_database=$database - -ls_scheduler_host=$hostname -ls_scheduler_port=$scheduler_port -ls_scheduler_urlPrefix= -ls_scheduler_xmlRpcPrefix=RC2 -ls_tmp_dir=$installdir/tmp -ls_scheduler_daemon_command="$scheduler_bin_dir/campcaster-scheduler_devenv.sh" - -ls_audio_output_device=$output_device -ls_audio_cue_device=$cue_device - -# replace / characters with a \/ sequence, for sed below -# the sed statement is really "s/\//\\\\\//g", but needs escaping because of -# bash, hence the extra '\' characters -installdir_s=`echo $installdir | sed -e "s/\//\\\\\\\\\//g"` -ls_storage_xmlRpcPrefix_s=`echo $ls_storage_xmlRpcPrefix | \ - sed -e "s/\//\\\\\\\\\//g"` -ls_alib_xmlRpcPrefix_s=`echo $ls_alib_xmlRpcPrefix | sed -e "s/\//\\\\\\\\\//g"` -ls_php_urlPrefix_s=`echo $ls_php_urlPrefix | sed -e "s/\//\\\\\\\\\//g"` -ls_scheduler_urlPrefix_s=`echo $ls_scheduler_urlPrefix | \ - sed -e "s/\//\\\\\\\\\//g"` -ls_scheduler_xmlRpcPrefix_s=`echo $ls_scheduler_xmlRpcPrefix | \ - sed -e "s/\//\\\\\\\\\//g"` -ls_tmp_dir_s=`echo $ls_tmp_dir | sed -e "s/\//\\\\\\\\\//g"` -ls_scheduler_daemon_command_s=`echo $ls_scheduler_daemon_command | \ - sed -e "s/\//\\\\\\\\\//g"` - -replace_sed_string="s/ls_install_dir/$installdir_s/; \ - s/ls_dbuser/$ls_dbuser/; \ - s/ls_dbpassword/$ls_dbpassword/; \ - s/ls_dbserver/$ls_dbserver/; \ - s/ls_database/$ls_database/; \ - s/ls_storageUrlPath/\/$ls_php_urlPrefix_s\/storageServer\/var/; \ - s/ls_php_urlPrefix/$ls_php_urlPrefix_s/; \ - s/ls_storage_xmlRpcPrefix/$ls_storage_xmlRpcPrefix_s/; \ - s/ls_alib_xmlRpcPrefix/$ls_alib_xmlRpcPrefix_s/; \ - s/ls_php_host/$ls_php_host/; \ - s/ls_php_port/$ls_php_port/; \ - s/ls_scheduler_urlPrefix/$ls_scheduler_urlPrefix_s/; \ - s/ls_scheduler_xmlRpcPrefix/$ls_scheduler_xmlRpcPrefix_s/; \ - s/ls_scheduler_host/$ls_scheduler_host/; \ - s/ls_scheduler_port/$ls_scheduler_port/; \ - s/ls_audio_output_device/$ls_audio_output_device/; \ - s/ls_audio_cue_device/$ls_audio_cue_device/; \ - s/ls_tmp_dir/$ls_tmp_dir_s/; \ - s/ls_scheduler_daemon_command/$ls_scheduler_daemon_command_s/; \ - s/ls_scheduler_storage_pass/$scheduler_storage_pass/;" -echo -echo $replace_sed_string -echo - - -#------------------------------------------------------------------------------- -# Function to check for the existence of an executable on the PATH -# -# @param $1 the name of the exectuable -# @return 0 if the executable exists on the PATH, non-0 otherwise -#------------------------------------------------------------------------------- -check_exe() { - if [ -x "`which $1 2> /dev/null`" ]; then - echo "Executable $1 found..."; - return 0; - else - echo "Executable $1 not found..."; - return 1; - fi -} - - -#------------------------------------------------------------------------------- -# Check for required tools -#------------------------------------------------------------------------------- -echo "Checking for required tools..." - -check_exe "sed" || exit 1; -check_exe "php" || exit 1; - - -#------------------------------------------------------------------------------- -# Customize the configuration files with the appropriate values -#------------------------------------------------------------------------------- -echo "Customizing configuration files..." - -mkdir -p $configdir - -cat $modules_dir/storageServer/var/conf_only.php.template \ - | sed -e "$replace_sed_string" \ - > $configdir/storageServer.conf.php - -#cat $modules_dir/authentication/etc/webAuthentication.xml.template \ -# | sed -e "$replace_sed_string" \ -# > $configdir/webAuthentication.xml -# -#cat $modules_dir/db/etc/connectionManagerFactory.xml.template \ -# | sed -e "$replace_sed_string" \ -# > $configdir/connectionManagerFactory.xml -# -#cat $modules_dir/db/etc/simpleConnectionManager.xml.template \ -# | sed -e "$replace_sed_string" \ -# > $configdir/simpleConnectionManager.xml -# -#cat $modules_dir/schedulerClient/etc/schedulerClientFactory.xml.template \ -# | sed -e "$replace_sed_string" \ -# > $configdir/schedulerClientFactory.xml -# -#cat $modules_dir/schedulerClient/etc/schedulerDaemonXmlRpcClient.xml.template \ -# | sed -e "$replace_sed_string" \ -# > $configdir/schedulerDaemonXmlRpcClient.xml -# -#cat $modules_dir/storageClient/etc/webAuthenticationClient.xml.template \ -# | sed -e "$replace_sed_string" \ -# > $configdir/webAuthenticationClient.xml -# -#cat $modules_dir/storageClient/etc/webStorage.xml.template \ -# | sed -e "$replace_sed_string" \ -# > $configdir/webStorage.xml -# -#cat $products_dir/scheduler/etc/campcaster-scheduler.xml.template \ -# | sed -e "$replace_sed_string" \ -# > $configdir/campcaster-scheduler.xml -# -#cat $products_dir/gLiveSupport/etc/campcaster-studio.xml.user-template \ -# | sed -e "$replace_sed_string" \ -# > $configdir/campcaster-studio.xml -# -#cat $products_dir/gLiveSupport/etc/authenticationClient.xml.user-template \ -# | sed -e "$replace_sed_string" \ -# > $configdir/authenticationClient.xml -# -#cat $products_dir/gLiveSupport/etc/storageClient.xml.user-template \ -# | sed -e "$replace_sed_string" \ -# > $configdir/storageClient.xml - - -#------------------------------------------------------------------------------- -# Create the public html directory, and links to the PHP directories -#------------------------------------------------------------------------------- -echo "Creating public HTML directory and links to web interfaces..." - -mkdir -p $htmldir -rm -f $htmldir/campcaster -ln -s $modules_dir $htmldir/campcaster - - -#------------------------------------------------------------------------------- -# Setup storageServer -#------------------------------------------------------------------------------- -echo "Setting up storageServer..." - -make -C $modules_dir/storageServer storage || exit 1 - - -#------------------------------------------------------------------------------- -# Setup directory permissions -#------------------------------------------------------------------------------- -echo "Setting up directory permissions..." - -chgrp $apache_group $modules_dir/storageServer/var/stor -chgrp $apache_group $modules_dir/storageServer/var/access -chgrp $apache_group $modules_dir/storageServer/var/trans -chgrp $apache_group $modules_dir/storageServer/var/stor/buffer -chmod g+sw $modules_dir/storageServer/var/stor -chmod g+sw $modules_dir/storageServer/var/access -chmod g+sw $modules_dir/storageServer/var/trans -chmod g+sw $modules_dir/storageServer/var/stor/buffer - -chgrp $apache_group $modules_dir/htmlUI/var/templates_c -chgrp $apache_group $modules_dir/htmlUI/var/html/img - -chmod g+sw $modules_dir/htmlUI/var/templates_c -chmod g+sw $modules_dir/htmlUI/var/html/img - -cp $modules_dir/htmlUI/var/redirect.php $modules_dir/index.php -cp $modules_dir/htmlUI/var/redirect.php $modules_dir/htmlUI/index.php -cp $modules_dir/htmlUI/var/redirect.php $modules_dir/htmlUI/var/index.php -cp $modules_dir/htmlUI/var/redirect.php $modules_dir/htmlUI/var/html/index.php - - -#------------------------------------------------------------------------------- -# Say goodbye -#------------------------------------------------------------------------------- -echo ""; -echo "The HTML user interface for the Campcaster development environment"; -echo "for user $user is available at:"; -echo "http://$ls_php_host:$ls_php_port/$ls_php_urlPrefix/htmlUI/var"; -echo ""; -echo "Done." -