This commit was manufactured by cvs2svn to create branch
authorPlanet-Lab Support <support@planet-lab.org>
Tue, 18 Jul 2006 22:41:46 +0000 (22:41 +0000)
committerPlanet-Lab Support <support@planet-lab.org>
Tue, 18 Jul 2006 22:41:46 +0000 (22:41 +0000)
'myplc-0_4-branch'.

build.functions [new file with mode: 0644]
build_devel.sh [new file with mode: 0755]
doc/.cvsignore [new file with mode: 0644]
doc/plc_devel_variables.xml [new file with mode: 0644]
doc/plc_variables.xml [new file with mode: 0644]
plc-devel.sysconfig [new file with mode: 0644]
plc.sysconfig [new file with mode: 0644]
plc_devel_config.xml [new file with mode: 0644]

diff --git a/build.functions b/build.functions
new file mode 100644 (file)
index 0000000..8281801
--- /dev/null
@@ -0,0 +1,151 @@
+# -*-Shell-script-*-
+#
+# Common functions for MyPLC build scripts (build_devel.sh and
+# build.sh)
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id: functions,v 1.6 2006/07/10 21:05:37 mlhuang Exp $
+#
+
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+
+# In both a normal CVS environment and a PlanetLab RPM
+# build environment, all of our dependencies are checked out into
+# directories at the same level as us.
+if [ -d ../build ] ; then
+    PATH=$PATH:../build
+    srcdir=..
+else
+    echo "Error: Could not find $(cd .. && pwd -P)/build/"
+    exit 1
+fi
+
+export PATH
+
+# Release and architecture to install
+PLC_DEVEL_FEDORA_RELEASE=4
+PLC_DEVEL_FEDORA_ARCH=i386
+
+# Fedora Core mirror from which to install filesystems
+PLC_DEVEL_FEDORA_URL=file:///usr/share/mirrors/fedora
+
+# Build myplc inside myplc-devel
+PLC_DEVEL_BOOTSTRAP=true
+
+# We may be running inside a myplc-devel environment, which can
+# override these defaults. Specifically, whether to build myplc inside
+# myplc-devel (PLC_DEVEL_BOOTSTRAP).
+if [ -f /etc/planetlab/plc_config ] ; then
+    . /etc/planetlab/plc_config
+fi
+
+usage()
+{
+    echo "Usage: build.sh [OPTION]..."
+    echo "     -l url          Fedora mirror location (default: $PLC_DEVEL_FEDORA_URL)"
+    echo "     -r release      Fedora release number (default: $PLC_DEVEL_FEDORA_RELEASE)"
+    echo "     -a arch         Fedora architecture (default: $PLC_DEVEL_FEDORA_ARCH)"
+    echo "     -h              This message"
+    exit 1
+}
+
+# Get options
+while getopts "l:r:a:h" opt ; do
+    case $opt in
+       l)
+           PLC_DEVEL_FEDORA_URL=$OPTARG
+           ;;
+       r)
+           PLC_DEVEL_FEDORA_RELEASE=$OPTARG
+           ;;
+       a)
+           PLC_DEVEL_FEDORA_ARCH=$OPTARG
+           ;;
+       h|*)
+           usage
+           ;;
+    esac
+done
+
+# Do not tolerate errors
+set -e
+
+# Be verbose
+set -x
+
+# Make a basic chroot at the specified location given the specified
+# configuration.
+make_chroot() {
+    root=$1
+    config=$2
+
+    # Get group list
+    groups=
+    while read group ; do
+       groups="$groups -g \"$group\""
+    done < <(./plc-config --groups $config)
+
+    # Get package list
+    packages=
+    while read package ; do
+       packages="$packages -p \"$package\""
+    done < <(./plc-config --packages $config)
+
+    # Install base system
+    eval mkfedora -v -l $PLC_DEVEL_FEDORA_URL -r $PLC_DEVEL_FEDORA_RELEASE -a $PLC_DEVEL_FEDORA_ARCH $packages $groups $root
+
+    # Disable all services in reference image
+    chroot $root sh -c "/sbin/chkconfig --list | awk '{ print \$1 }' | xargs -i /sbin/chkconfig {} off"
+
+    # FC2 minilogd starts up during shutdown and makes unmounting
+    # impossible. Just get rid of it.
+    rm -f $root/sbin/minilogd
+    ln -nsf /bin/true $root/sbin/minilogd
+}
+
+# Move specified directories out of the chroot and into a "data"
+# directory that will be bind mounted on /data inside the chroot.
+move_datadirs() {
+    root=$1
+    data=$2
+    shift 2
+
+    mkdir -p $root/data
+    for datadir in "$@" ; do
+       mkdir -p ${data}$datadir
+       if [ -d $root/$datadir -a ! -h $root/$datadir ] ; then
+           (cd $root && find ./$datadir | cpio -p -d -u ../$data/)
+       fi
+       rm -rf $root/$datadir
+       mkdir -p $(dirname $root/$datadir)
+       ln -nsf /data$datadir $root/$datadir
+    done
+}
+
+# Make loopback filesystem from specified location
+make_image() {
+    root=$1
+    image=$2
+
+    # Leave about 100 MB free space and allow for about 20% inode overhead
+    bytes=$((($(du -sb $root | cut -f1) + 100000000) * 120 / 100))
+    bs=4096
+    blocks=$(($bytes / $bs))
+    dd bs=$bs count=$blocks if=/dev/zero of=$image
+    mkfs.ext3 -b $bs -j -F $image
+
+    # Temporarily mount it
+    tmp=$(mktemp -d tmp.XXXXXX)
+    mount -o loop $image $tmp
+    trap "umount $tmp; rmdir $tmp" ERR INT
+
+    # Move files to it
+    (cd $root && tar cpf - .) | (cd $tmp && tar xpf -)
+
+    # Unmount it
+    umount $tmp
+    rmdir $tmp
+    trap - ERR INT
+}
diff --git a/build_devel.sh b/build_devel.sh
new file mode 100755 (executable)
index 0000000..77893b3
--- /dev/null
@@ -0,0 +1,76 @@
+#!/bin/bash
+#
+# Build a complete MyPLC development environment. Requires PlanetLab
+# source code to be exported into directories at the same level as we
+# are (i.e., ..).
+#
+# devel/root.img (loopback image)
+# devel/root/ (mount point)
+# devel/data/ (various data files)
+# devel/data/cvs/ (local CVS repository)
+# devel/data/build/ (build area)
+# devel/data/etc/planetlab/ (configuration)
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id$
+#
+
+. build.functions
+
+echo "* myplc-devel: Installing base filesystem"
+mkdir -p devel/root
+make_chroot devel/root plc_devel_config.xml
+
+# Import everything (including ourself) into a private CVS tree
+echo "* myplc-devel: Building CVS repository"
+cvsroot=$PWD/devel/data/cvs
+mkdir -p $cvsroot
+cvs -d $cvsroot init
+
+myplc=$(basename $PWD)
+pushd ..
+for dir in * ; do
+    if [ ! -d $cvsroot/$dir ] ; then
+       pushd $dir
+       if [ "$dir" = "$myplc" ] ; then
+           # Ignore generated files
+           ignore="-I ! -I devel -I root -I root.img -I data" 
+       else
+           ignore="-I !"
+       fi
+       date=$(date +%Y-%m-%d)
+       cvs -d $cvsroot import -m "Initial import" -ko $ignore $dir planetlab planetlab-$date
+       popd
+    fi
+done
+popd
+
+# Install configuration file
+echo "* myplc-devel: Installing configuration file"
+install -D -m 444 plc_devel_config.xml devel/data/etc/planetlab/default_config.xml
+install -D -m 444 plc_config.dtd devel/data/etc/planetlab/plc_config.dtd
+
+# Install configuration scripts
+echo "* myplc-devel: Installing configuration scripts"
+install -D -m 755 plc_config.py devel/root/tmp/plc_config.py
+chroot devel/root sh -c 'cd /tmp; python plc_config.py build; python plc_config.py install'
+install -D -m 755 plc-config devel/root/usr/bin/plc-config
+
+# Install initscripts
+echo "* myplc-devel: Installing initscripts"
+find plc.d/functions | cpio -p -d -u devel/root/etc/
+install -D -m 755 guest.init devel/root/etc/init.d/plc
+chroot devel/root sh -c 'chkconfig --add plc; chkconfig plc on'
+
+# Move "data" directories out of the installation
+echo "* myplc-devel: Moving data directories out of the installation"
+move_datadirs devel/root devel/data \
+    /etc/planetlab /build /cvs
+
+# Make image out of directory
+echo "* myplc-devel: Building loopback image"
+make_image devel/root devel/root.img
+
+exit 0
diff --git a/doc/.cvsignore b/doc/.cvsignore
new file mode 100644 (file)
index 0000000..cdb1378
--- /dev/null
@@ -0,0 +1 @@
+*.xml.valid
diff --git a/doc/plc_devel_variables.xml b/doc/plc_devel_variables.xml
new file mode 100644 (file)
index 0000000..263aa3c
--- /dev/null
@@ -0,0 +1,58 @@
+<variablelist>
+  <varlistentry>
+    <term>PLC_DEVEL_FEDORA_RELEASE</term>
+    <listitem>
+      <para>
+                 Type: string</para>
+      <para>
+                 Default: 4</para>
+      <para>Version number of Fedora Core upon which to
+         base the build environment. Warning: Currently, only Fedora
+         Core 4 is supported.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_DEVEL_FEDORA_ARCH</term>
+    <listitem>
+      <para>
+                 Type: string</para>
+      <para>
+                 Default: i386</para>
+      <para>Base architecture of the build
+         environment. Warning: Currently, only i386 is
+         supported.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_DEVEL_FEDORA_URL</term>
+    <listitem>
+      <para>
+                 Type: string</para>
+      <para>
+                 Default: file:///usr/share/mirrors/fedora</para>
+      <para>Fedora Core mirror from which to install
+         filesystems.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_DEVEL_CVSROOT</term>
+    <listitem>
+      <para>
+                 Type: string</para>
+      <para>
+                 Default: /cvs</para>
+      <para>CVSROOT to use when checking out code.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_DEVEL_BOOTSTRAP</term>
+    <listitem>
+      <para>
+                 Type: boolean</para>
+      <para>
+                 Default: false</para>
+      <para>Controls whether MyPLC should be built inside
+         of its own development environment.</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
diff --git a/doc/plc_variables.xml b/doc/plc_variables.xml
new file mode 100644 (file)
index 0000000..e0d7806
--- /dev/null
@@ -0,0 +1,709 @@
+<variablelist>
+  <varlistentry>
+    <term>PLC_NAME</term>
+    <listitem>
+      <para>
+                 Type: string</para>
+      <para>
+                 Default: PlanetLab Test</para>
+      <para>The name of this PLC installation. It is used in
+         the name of the default system site (e.g., PlanetLab Central)
+         and in the names of various administrative entities (e.g.,
+         PlanetLab Support).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_SLICE_PREFIX</term>
+    <listitem>
+      <para>
+                 Type: string</para>
+      <para>
+                 Default: pl</para>
+      <para>The abbreviated name of this PLC
+         installation. It is used as the prefix for system slices
+         (e.g., pl_conf). Warning: Currently, this variable should
+         not be changed.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_ROOT_USER</term>
+    <listitem>
+      <para>
+                 Type: email</para>
+      <para>
+                 Default: root@localhost.localdomain</para>
+      <para>The name of the initial administrative
+         account. We recommend that this account be used only to create
+         additional accounts associated with real
+         administrators, then disabled.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_ROOT_PASSWORD</term>
+    <listitem>
+      <para>
+                 Type: password</para>
+      <para>
+                 Default: root</para>
+      <para>The password of the initial administrative
+         account. Also the password of the root account on the Boot
+         CD.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_ROOT_SSH_KEY_PUB</term>
+    <listitem>
+      <para>
+                 Type: file</para>
+      <para>
+                 Default: /etc/planetlab/root_ssh_key.pub</para>
+      <para>The SSH public key used to access the root
+         account on your nodes.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_ROOT_SSH_KEY</term>
+    <listitem>
+      <para>
+                 Type: file</para>
+      <para>
+                 Default: /etc/planetlab/root_ssh_key.rsa</para>
+      <para>The SSH private key used to access the root
+         account on your nodes.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_DEBUG_SSH_KEY_PUB</term>
+    <listitem>
+      <para>
+                 Type: file</para>
+      <para>
+                 Default: /etc/planetlab/debug_ssh_key.pub</para>
+      <para>The SSH public key used to access the root
+         account on your nodes when they are in Debug mode.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_DEBUG_SSH_KEY</term>
+    <listitem>
+      <para>
+                 Type: file</para>
+      <para>
+                 Default: /etc/planetlab/debug_ssh_key.rsa</para>
+      <para>The SSH private key used to access the root
+         account on your nodes when they are in Debug mode.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_ROOT_GPG_KEY_PUB</term>
+    <listitem>
+      <para>
+                 Type: file</para>
+      <para>
+                 Default: /etc/planetlab/pubring.gpg</para>
+      <para>The GPG public keyring used to sign the Boot
+         Manager and all node packages.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_ROOT_GPG_KEY</term>
+    <listitem>
+      <para>
+                 Type: file</para>
+      <para>
+                 Default: /etc/planetlab/secring.gpg</para>
+      <para>The SSH private key used to access the root
+         account on your nodes.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_MA_SA_NAMESPACE</term>
+    <listitem>
+      <para>
+                 Type: ip</para>
+      <para>
+                 Default: test</para>
+      <para>The namespace of your MA/SA. This should be a
+         globally unique value assigned by PlanetLab
+         Central.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_MA_SA_SSL_KEY</term>
+    <listitem>
+      <para>
+                 Type: file</para>
+      <para>
+                 Default: /etc/planetlab/ma_sa_ssl.key</para>
+      <para>The SSL private key used for signing documents
+         with the signature of your MA/SA. If non-existent, one will
+         be generated.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_MA_SA_SSL_CRT</term>
+    <listitem>
+      <para>
+                 Type: file</para>
+      <para>
+                 Default: /etc/planetlab/ma_sa_ssl.crt</para>
+      <para>The corresponding SSL public certificate. By
+         default, this certificate is self-signed. You may replace
+         the certificate later with one signed by the PLC root
+         CA.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_MA_SA_CA_SSL_CRT</term>
+    <listitem>
+      <para>
+                 Type: file</para>
+      <para>
+                 Default: /etc/planetlab/ma_sa_ca_ssl.crt</para>
+      <para>If applicable, the certificate of the PLC root
+         CA. If your MA/SA certificate is self-signed, then this file
+         is the same as your MA/SA certificate.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_MA_SA_CA_SSL_KEY_PUB</term>
+    <listitem>
+      <para>
+                 Type: file</para>
+      <para>
+                 Default: /etc/planetlab/ma_sa_ca_ssl.pub</para>
+      <para>If applicable, the public key of the PLC root
+         CA. If your MA/SA certificate is self-signed, then this file
+         is the same as your MA/SA public key.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_MA_SA_API_CRT</term>
+    <listitem>
+      <para>
+                 Type: file</para>
+      <para>
+                 Default: /etc/planetlab/ma_sa_api.xml</para>
+      <para>The API Certificate is your MA/SA public key
+         embedded in a digitally signed XML document. By default,
+         this document is self-signed. You may replace this
+         certificate later with one signed by the PLC root
+         CA.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_NET_DNS1</term>
+    <listitem>
+      <para>
+                 Type: ip</para>
+      <para>
+                 Default: 127.0.0.1</para>
+      <para>Primary DNS server address.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_NET_DNS2</term>
+    <listitem>
+      <para>
+                 Type: ip</para>
+      <para>
+                 Default: </para>
+      <para>Secondary DNS server address.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_DNS_ENABLED</term>
+    <listitem>
+      <para>
+                 Type: boolean</para>
+      <para>
+                 Default: true</para>
+      <para>Enable the internal DNS server. The server does
+          not provide reverse resolution and is not a production
+          quality or scalable DNS solution. Use the internal DNS
+          server only for small deployments or for
+          testing.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_MAIL_ENABLED</term>
+    <listitem>
+      <para>
+                 Type: boolean</para>
+      <para>
+                 Default: false</para>
+      <para>Set to false to suppress all e-mail notifications
+         and warnings.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_MAIL_SUPPORT_ADDRESS</term>
+    <listitem>
+      <para>
+                 Type: email</para>
+      <para>
+                 Default: root+support@localhost.localdomain</para>
+      <para>This address is used for support
+         requests. Support requests may include traffic complaints,
+         security incident reporting, web site malfunctions, and
+         general requests for information. We recommend that the
+         address be aliased to a ticketing system such as Request
+         Tracker.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_MAIL_BOOT_ADDRESS</term>
+    <listitem>
+      <para>
+                 Type: email</para>
+      <para>
+                 Default: root+install-msgs@localhost.localdomain</para>
+      <para>The API will notify this address when a problem
+         occurs during node installation or boot.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_MAIL_SLICE_ADDRESS</term>
+    <listitem>
+      <para>
+                 Type: email</para>
+      <para>
+                 Default: root+SLICE@localhost.localdomain</para>
+      <para>This address template is used for sending
+         e-mail notifications to slices. SLICE will be replaced with
+         the name of the slice.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_DB_ENABLED</term>
+    <listitem>
+      <para>
+                 Type: boolean</para>
+      <para>
+                 Default: true</para>
+      <para>Enable the database server on this
+         machine.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_DB_TYPE</term>
+    <listitem>
+      <para>
+                 Type: string</para>
+      <para>
+                 Default: postgresql</para>
+      <para>The type of database server. Currently, only
+         postgresql is supported.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_DB_HOST</term>
+    <listitem>
+      <para>
+                 Type: hostname</para>
+      <para>
+                 Default: localhost.localdomain</para>
+      <para>The fully qualified hostname of the database
+         server.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_DB_IP</term>
+    <listitem>
+      <para>
+                 Type: ip</para>
+      <para>
+                 Default: 127.0.0.1</para>
+      <para>The IP address of the database server, if not
+          resolvable by the configured DNS servers.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_DB_PORT</term>
+    <listitem>
+      <para>
+                 Type: int</para>
+      <para>
+                 Default: 5432</para>
+      <para>The TCP port number through which the database
+         server should be accessed.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_DB_NAME</term>
+    <listitem>
+      <para>
+                 Type: string</para>
+      <para>
+                 Default: planetlab3</para>
+      <para>The name of the database to access.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_DB_USER</term>
+    <listitem>
+      <para>
+                 Type: string</para>
+      <para>
+                 Default: pgsqluser</para>
+      <para>The username to use when accessing the
+         database.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_DB_PASSWORD</term>
+    <listitem>
+      <para>
+                 Type: password</para>
+      <para>
+                 Default: </para>
+      <para>The password to use when accessing the
+         database. If left blank, one will be
+         generated.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_API_ENABLED</term>
+    <listitem>
+      <para>
+                 Type: boolean</para>
+      <para>
+                 Default: true</para>
+      <para>Enable the API server on this
+         machine.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_API_DEBUG</term>
+    <listitem>
+      <para>
+                 Type: boolean</para>
+      <para>
+                 Default: false</para>
+      <para>Enable verbose API debugging. Do not enable on
+         a production system!</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_API_HOST</term>
+    <listitem>
+      <para>
+                 Type: hostname</para>
+      <para>
+                 Default: localhost.localdomain</para>
+      <para>The fully qualified hostname of the API
+         server.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_API_IP</term>
+    <listitem>
+      <para>
+                 Type: ip</para>
+      <para>
+                 Default: 127.0.0.1</para>
+      <para>The IP address of the API server, if not
+          resolvable by the configured DNS servers.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_API_PORT</term>
+    <listitem>
+      <para>
+                 Type: int</para>
+      <para>
+                 Default: 80</para>
+      <para>The TCP port number through which the API
+         should be accessed. Warning: SSL (port 443) access is not
+         fully supported by the website code yet. We recommend that
+         port 80 be used for now and that the API server either run
+         on the same machine as the web server, or that they both be
+         on a secure wired network.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_API_PATH</term>
+    <listitem>
+      <para>
+                 Type: string</para>
+      <para>
+                 Default: /PLCAPI/</para>
+      <para>The base path of the API URL.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_API_MAINTENANCE_USER</term>
+    <listitem>
+      <para>
+                 Type: string</para>
+      <para>
+                 Default: maint@localhost.localdomain</para>
+      <para>The username of the maintenance account. This
+         account is used by local scripts that perform automated
+         tasks, and cannot be used for normal logins.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_API_MAINTENANCE_PASSWORD</term>
+    <listitem>
+      <para>
+                 Type: password</para>
+      <para>
+                 Default: </para>
+      <para>The password of the maintenance account. If
+         left blank, one will be generated. We recommend that the
+         password be changed periodically.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_API_MAINTENANCE_SOURCES</term>
+    <listitem>
+      <para>
+                 Type: hostname</para>
+      <para>
+                 Default: </para>
+      <para>A space-separated list of IP addresses allowed
+         to access the API through the maintenance account. The value
+         of this variable is set automatically to allow only the API,
+         web, and boot servers, and should not be
+         changed.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_API_SSL_KEY</term>
+    <listitem>
+      <para>
+                 Type: file</para>
+      <para>
+                 Default: /etc/planetlab/api_ssl.key</para>
+      <para>The SSL private key to use for encrypting HTTPS
+         traffic. If non-existent, one will be
+         generated.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_API_SSL_CRT</term>
+    <listitem>
+      <para>
+                 Type: file</para>
+      <para>
+                 Default: /etc/planetlab/api_ssl.crt</para>
+      <para>The corresponding SSL public certificate. By
+         default, this certificate is self-signed. You may replace
+         the certificate later with one signed by a root
+         CA.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_API_CA_SSL_CRT</term>
+    <listitem>
+      <para>
+                 Type: file</para>
+      <para>
+                 Default: /etc/planetlab/api_ca_ssl.crt</para>
+      <para>The certificate of the root CA, if any, that
+         signed your server certificate. If your server certificate is
+         self-signed, then this file is the same as your server
+         certificate.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_WWW_ENABLED</term>
+    <listitem>
+      <para>
+                 Type: boolean</para>
+      <para>
+                 Default: true</para>
+      <para>Enable the web server on this
+         machine.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_WWW_DEBUG</term>
+    <listitem>
+      <para>
+                 Type: boolean</para>
+      <para>
+                 Default: false</para>
+      <para>Enable debugging output on web pages. Do not
+         enable on a production system!</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_WWW_HOST</term>
+    <listitem>
+      <para>
+                 Type: hostname</para>
+      <para>
+                 Default: localhost.localdomain</para>
+      <para>The fully qualified hostname of the web
+         server.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_WWW_IP</term>
+    <listitem>
+      <para>
+                 Type: ip</para>
+      <para>
+                 Default: 127.0.0.1</para>
+      <para>The IP address of the web server, if not
+          resolvable by the configured DNS servers.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_WWW_PORT</term>
+    <listitem>
+      <para>
+                 Type: int</para>
+      <para>
+                 Default: 80</para>
+      <para>The TCP port number through which the
+         unprotected portions of the web site should be
+         accessed.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_WWW_SSL_PORT</term>
+    <listitem>
+      <para>
+                 Type: int</para>
+      <para>
+                 Default: 443</para>
+      <para>The TCP port number through which the protected
+         portions of the web site should be accessed.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_WWW_SSL_KEY</term>
+    <listitem>
+      <para>
+                 Type: file</para>
+      <para>
+                 Default: /etc/planetlab/www_ssl.key</para>
+      <para>The SSL private key to use for encrypting HTTPS
+         traffic. If non-existent, one will be
+         generated.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_WWW_SSL_CRT</term>
+    <listitem>
+      <para>
+                 Type: file</para>
+      <para>
+                 Default: /etc/planetlab/www_ssl.crt</para>
+      <para>The corresponding SSL public certificate for
+         the HTTP server. By default, this certificate is
+         self-signed. You may replace the certificate later with one
+         signed by a root CA.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_WWW_CA_SSL_CRT</term>
+    <listitem>
+      <para>
+                 Type: file</para>
+      <para>
+                 Default: /etc/planetlab/www_ca_ssl.crt</para>
+      <para>The certificate of the root CA, if any, that
+         signed your server certificate. If your server certificate is
+         self-signed, then this file is the same as your server
+         certificate.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_BOOT_ENABLED</term>
+    <listitem>
+      <para>
+                 Type: boolean</para>
+      <para>
+                 Default: true</para>
+      <para>Enable the boot server on this
+         machine.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_BOOT_HOST</term>
+    <listitem>
+      <para>
+                 Type: hostname</para>
+      <para>
+                 Default: localhost.localdomain</para>
+      <para>The fully qualified hostname of the boot
+         server.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_BOOT_IP</term>
+    <listitem>
+      <para>
+                 Type: ip</para>
+      <para>
+                 Default: 127.0.0.1</para>
+      <para>The IP address of the boot server, if not
+          resolvable by the configured DNS servers.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_BOOT_PORT</term>
+    <listitem>
+      <para>
+                 Type: int</para>
+      <para>
+                 Default: 80</para>
+      <para>The TCP port number through which the
+         unprotected portions of the boot server should be
+         accessed.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_BOOT_SSL_PORT</term>
+    <listitem>
+      <para>
+                 Type: int</para>
+      <para>
+                 Default: 443</para>
+      <para>The TCP port number through which the protected
+         portions of the boot server should be
+         accessed.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_BOOT_SSL_KEY</term>
+    <listitem>
+      <para>
+                 Type: file</para>
+      <para>
+                 Default: /etc/planetlab/boot_ssl.key</para>
+      <para>The SSL private key to use for encrypting HTTPS
+         traffic.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_BOOT_SSL_CRT</term>
+    <listitem>
+      <para>
+                 Type: file</para>
+      <para>
+                 Default: /etc/planetlab/boot_ssl.crt</para>
+      <para>The corresponding SSL public certificate for
+         the HTTP server. By default, this certificate is
+         self-signed. You may replace the certificate later with one
+         signed by a root CA.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>PLC_BOOT_CA_SSL_CRT</term>
+    <listitem>
+      <para>
+                 Type: file</para>
+      <para>
+                 Default: /etc/planetlab/boot_ca_ssl.crt</para>
+      <para>The certificate of the root CA, if any, that
+         signed your server certificate. If your server certificate is
+         self-signed, then this file is the same as your server
+         certificate.</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
diff --git a/plc-devel.sysconfig b/plc-devel.sysconfig
new file mode 100644 (file)
index 0000000..f195566
--- /dev/null
@@ -0,0 +1,3 @@
+PLC_ROOT=/plc/devel/root
+PLC_DATA=/plc/devel/data
+#PLC_OPTIONS="-v"
diff --git a/plc.sysconfig b/plc.sysconfig
new file mode 100644 (file)
index 0000000..c2f698f
--- /dev/null
@@ -0,0 +1,3 @@
+PLC_ROOT=/plc/root
+PLC_DATA=/plc/data
+#PLC_OPTIONS="-v"
diff --git a/plc_devel_config.xml b/plc_devel_config.xml
new file mode 100644 (file)
index 0000000..cb9e5b0
--- /dev/null
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+Default PLC build environment configuration file
+
+Mark Huang <mlhuang@cs.princeton.edu>
+Copyright (C) 2006 The Trustees of Princeton University
+
+$Id: plc_devel_config.xml,v 1.1 2006/07/17 21:31:31 mlhuang Exp $
+-->
+
+<!DOCTYPE configuration PUBLIC "-//PlanetLab Central//DTD PLC configuration//EN" "plc_config.dtd">
+
+<configuration>
+  <variables>
+    <category id="plc_devel">
+      <name>Build Environment</name>
+      <description>These variables control the behavior of the
+      PlanetLab build environment.</description>
+
+      <variablelist>
+       <variable id="fedora_release" type="string">
+         <name>Fedora Core Release Version</name>
+         <value>4</value>
+         <description>Version number of Fedora Core upon which to
+         base the build environment. Warning: Currently, only Fedora
+         Core 4 is supported.</description>
+       </variable>
+
+       <variable id="fedora_arch" type="string">
+         <name>Fedora Core Base Architecture</name>
+         <value>i386</value>
+         <description>Base architecture of the build
+         environment. Warning: Currently, only i386 is
+         supported.</description>
+       </variable>
+
+       <variable id="fedora_url" type="string">
+         <name>Fedora Core Mirror URL</name>
+         <value>file:///usr/share/mirrors/fedora</value>
+         <description>Fedora Core mirror from which to install
+         filesystems.</description>
+       </variable>
+
+       <variable id="cvsroot" type="string">
+         <name>CVS Root</name>
+         <value>/cvs</value>
+         <description>CVSROOT to use when checking out code.</description>
+       </variable>
+
+       <variable id="bootstrap" type="boolean">
+         <name>Bootstrap Build</name>
+         <value>false</value>
+         <description>Controls whether MyPLC should be built inside
+         of its own development environment.</description>
+       </variable>
+      </variablelist>
+    </category>
+  </variables>
+
+  <comps>
+    <group>
+      <id>development-libs</id>
+      <name>Development Libraries</name>
+      <default>true</default>
+      <description>The packages in this group are core libraries
+      needed to develop applications.</description>
+      <uservisible>true</uservisible>
+      <packagelist>
+       <!-- This is just a placeholder. The actual group is defined
+            in the Fedora Core 4 comps.xml. -->
+      </packagelist>
+    </group>
+
+    <group>
+      <id>development-tools</id>
+      <name>Development Tools</name>
+      <default>true</default>
+      <description>These tools include core development tools such as
+      automake, gcc, perl, python, and debuggers.</description>
+      <uservisible>true</uservisible>
+      <packagelist>
+       <!-- This is just a placeholder. The actual group is defined
+            in the Fedora Core 4 comps.xml. -->
+      </packagelist>
+    </group>
+
+    <group>
+      <id>legacy-software-development</id>
+      <name>Legacy Software Development</name>
+      <description>These packages provide compatibility support for
+      previous releases.</description>
+      <uservisible>true</uservisible>
+      <packagelist>
+       <!-- This is just a placeholder. The actual group is defined
+            in the Fedora Core 4 comps.xml. -->
+      </packagelist>
+    </group>
+
+    <group>
+      <id>plc-build</id>
+      <name>PlanetLab Build Tools</name>
+      <description>Additional tools required to build PlanetLab
+      software.</description>
+      <packagelist>
+       <!-- kernel-vserver is intended for the vserver-reference, but
+            serves the same useful purpose for MyPLC, namely, to
+            Provide: kernel without actually installing anything. -->
+       <packagereq type="mandatory">kernel-vserver</packagereq>        
+
+       <!-- kernel -->
+       <packagereq type="mandatory">gnupg</packagereq>
+       <packagereq type="mandatory">diffutils</packagereq>
+
+       <!-- util-vserver -->
+       <packagereq type="mandatory">vconfig</packagereq>
+       <packagereq type="mandatory">iptables</packagereq>
+       <packagereq type="mandatory">wget</packagereq>
+       <packagereq type="mandatory">beecrypt-devel</packagereq>
+       <packagereq type="mandatory">tetex-latex</packagereq>
+       <packagereq type="mandatory">gcc-c++</packagereq>
+
+       <!-- ulogd -->
+       <packagereq type="mandatory">libpcap</packagereq>
+
+       <!-- iptables -->
+       <packagereq type="mandatory">linuxdoc-tools</packagereq>
+
+       <!-- vserver-reference -->
+       <packagereq type="mandatory">sudo</packagereq>
+       <packagereq type="mandatory">yum</packagereq>
+       <packagereq type="mandatory">createrepo</packagereq>
+
+       <!-- mysql -->
+       <packagereq type="mandatory">gperf</packagereq>
+       <packagereq type="mandatory">time</packagereq>
+
+       <!-- bootmanager -->
+       <packagereq type="mandatory">sharutils</packagereq>
+
+       <!-- bootcd -->
+       <packagereq type="mandatory">nasm</packagereq>
+       <packagereq type="mandatory">mkisofs</packagereq>
+       <packagereq type="mandatory">dosfstools</packagereq>
+
+       <!-- myplc -->
+       <packagereq type="mandatory">rsync</packagereq>
+      </packagelist>
+    </group>
+
+  </comps>
+
+</configuration>