summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaurice van der Pot <griffon26@gentoo.org>2004-10-03 19:37:12 +0000
committerMaurice van der Pot <griffon26@gentoo.org>2004-10-03 19:37:12 +0000
commit19a1c9333d976dd2bf653944071bf9d0079f2a87 (patch)
tree0748e84fd77668def03fd61a9780dcda7b15ed61 /net-fs/coda/coda-6.0.6.ebuild
parent~amd64 (Manifest recommit) (diff)
downloadgentoo-2-19a1c9333d976dd2bf653944071bf9d0079f2a87.tar.gz
gentoo-2-19a1c9333d976dd2bf653944071bf9d0079f2a87.tar.bz2
gentoo-2-19a1c9333d976dd2bf653944071bf9d0079f2a87.zip
Added pkg_config implementation for coda-6.0.6
Diffstat (limited to 'net-fs/coda/coda-6.0.6.ebuild')
-rw-r--r--net-fs/coda/coda-6.0.6.ebuild161
1 files changed, 159 insertions, 2 deletions
diff --git a/net-fs/coda/coda-6.0.6.ebuild b/net-fs/coda/coda-6.0.6.ebuild
index 49d395815d5f..d0aea3be48d4 100644
--- a/net-fs/coda/coda-6.0.6.ebuild
+++ b/net-fs/coda/coda-6.0.6.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-fs/coda/coda-6.0.6.ebuild,v 1.5 2004/08/12 09:22:54 griffon26 Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-fs/coda/coda-6.0.6.ebuild,v 1.6 2004/10/03 19:37:12 griffon26 Exp $
inherit eutils
@@ -117,6 +117,163 @@ pkg_postinst () {
einfo " rc-update add codasrv default"
einfo " rc-update add venus default"
einfo
- einfo "* To get started, run venus-setup and vice-setup"
+ einfo "To get started, run vice-setup and venus-setup."
einfo
+ einfo "Alternatively you can get a default coda setup by running:"
+ einfo " ebuild /var/db/pkg/${CATEGORY}/${PF}/${PF}.ebuild config"
}
+
+pkg_config () {
+
+ # Set of default configuration values
+ local CODA_ROOT_DIR="/var/lib/vice"
+ local CODA_ROOT_VOLUME="codarootvol"
+ local CODA_TEST_VOLUME="codatestvol"
+ local CODA_TEST_VOLUME_MOUNTPOINT="test"
+ local CODA_ADMIN_UID="6000"
+ local CODA_ADMIN_NAME="codaroot"
+ local CODA_STORAGE_DIR="/var/lib/vice"
+ local RVM_LOG_PARTITION="rvmlogpartition.img"
+ local RVM_DATA_PARTITION="rvmdatapartition.img"
+ local VICE_PARTITION="vicepa"
+ local UPDATE_AUTHENTICATION_TOKEN="updatetoken"
+ local AUTH2_AUTHENTICATION_TOKEN="auth2token"
+ local VOLUTIL_AUTHENTICATION_TOKEN="volutiltoken"
+
+ # Do not modify after this line
+
+ local FQDN=$(hostname --fqdn)
+ local CODA_MOUNTPOINT=$(codaconfedit venus.conf mountpoint)
+
+ # Make sure coda is not running before we start messing with its files
+ if [ "x$(pidof auth2)" != "x" ]; then
+ eerror "Please stop coda, coda-update and auth2 first."
+ exit 1
+ fi
+
+ # Also make sure venus is not running
+ if [ "x$(pidof venus)" != "x" ]; then
+ eerror "Please stop venus first."
+ exit 1
+ fi
+
+ # Check if an existing server.conf is in the way
+ conf=$(codaconfedit server.conf)
+ intheway=
+ if [ ${conf} != /dev/null ]; then
+ intheway="${intheway} ${conf}"
+ fi
+
+ # Check if an existing /var/lib/vice is in the way
+ if [ -e ${CODA_ROOT_DIR} ]; then
+ intheway="${intheway} ${CODA_ROOT_DIR}"
+ fi
+
+ # Check if an existing vice partition is in the way
+ if [ -e ${CODA_STORAGE_DIR}/${VICE_PARTITION} ]; then
+ intheway="${intheway} ${CODA_STORAGE_DIR}/${VICE_PARTITION}"
+ fi
+
+ if [ "x${intheway}" != "x" ]; then
+ eerror "Please remove the following items manually first if you want to"
+ eerror "set up a default coda configuration:"
+ for item in ${intheway}; do
+ eerror "\t${item}"
+ done
+ exit 1
+ fi
+
+ ewarn "This default configuration of coda will require 350MB of free space"
+ ewarn "for Recoverable Virtual Memory. Additional space is required for"
+ ewarn "the files that you store on your coda volume."
+ echo
+ einfon "Please specify where coda should store this data [${CODA_STORAGE_DIR}]: "
+ read new_storage_dir
+ if [ "x${new_storage_dir}" != "x" ]; then
+ CODA_STORAGE_DIR=${new_storage_dir}
+ fi
+
+ echo
+ einfo "A default coda server and client configuration will be set up that consists of:"
+ einfo "- a coda SCM (System Control Machine)"
+ einfo "- a coda administrator '${CODA_ADMIN_NAME}' with coda uid ${CODA_ADMIN_UID} and password 'changeme'"
+ einfo "- a coda root volume available at /mnt/coda/${FQDN}"
+ einfo "- a writable coda volume available at ${CODA_MOUNTPOINT}/${FQDN}/${CODA_TEST_VOLUME_MOUNTPOINT}"
+ echo
+ einfon "Are you sure you want to do this? (y/n) "
+ read answer
+ if [ "x${answer}" != "xy" ]; then
+ exit 1
+ fi
+ echo
+
+ einfo "Setting up vice (the coda server)..."
+ vice-setup > /dev/null <<- EOF
+ yes
+ ${CODA_ROOT_DIR}
+ y
+ ${UPDATE_AUTHENTICATION_TOKEN}
+ ${AUTH2_AUTHENTICATION_TOKEN}
+ ${VOLUTIL_AUTHENTICATION_TOKEN}
+ 1
+ ${CODA_ROOT_VOLUME}
+ ${CODA_ADMIN_UID}
+ ${CODA_ADMIN_NAME}
+ yes
+ ${CODA_STORAGE_DIR}/${RVM_LOG_PARTITION}
+ 2M
+ ${CODA_STORAGE_DIR}/${RVM_DATA_PARTITION}
+ 315M
+ y
+ ${CODA_STORAGE_DIR}/${VICE_PARTITION}
+ y
+ 2M
+ EOF
+
+ # Start coda server
+ /etc/init.d/codasrv start || exit 1
+
+ einfo "Creating root volume..."
+ # Create root volume
+ createvol_rep ${CODA_ROOT_VOLUME} E0000100 ${CODA_STORAGE_DIR}/${VICE_PARTITION} &> /dev/null <<- EOF
+ n
+ EOF
+
+ einfo "Creating writable volume..."
+ # Create test volume
+ createvol_rep ${CODA_TEST_VOLUME} E0000100 ${CODA_STORAGE_DIR}/${VICE_PARTITION} &> /dev/null <<- EOF
+ n
+ EOF
+
+ einfo "Setting up venus (the coda client)..."
+ venus-setup ${FQDN} 20000 > /dev/null
+
+ /etc/init.d/venus start
+
+ einfo "Waiting for ${CODA_MOUNTPOINT} to be mounted... "
+ for count in 4 3 2 1 0; do
+ if [ ! -e ${CODA_MOUNTPOINT}/NOT_REALLY_CODA ]; then
+ break
+ fi
+ sleep 1
+ done
+
+ if [ ${count} = 0 ]; then
+ eerror "Mounting failed!"
+ exit 1
+ fi
+
+ einfo "Mounting coda volume at ${CODA_MOUNTPOINT}/${FQDN}/${CODA_TEST_VOLUME_MOUNTPOINT}"
+ clog ${CODA_ADMIN_NAME}@${FQDN} > /dev/null <<- EOF
+ changeme
+ EOF
+
+ cfs mkmount ${CODA_MOUNTPOINT}/${FQDN}/${CODA_TEST_VOLUME_MOUNTPOINT} ${CODA_TEST_VOLUME}
+
+ echo
+ einfo "The coda server and client have been set up successfully."
+ einfo "Please refer to http://www.coda.cs.cmu.edu/doc/html/ for Coda documentation."
+ echo
+ einfo "Tip: use pdbtool to add a normal coda user and clog to authenticate and get write access."
+}
+