Index: /trunk/build/bin/oforge-defaults-install.sh
===================================================================
--- /trunk/build/bin/oforge-defaults-install.sh	(revision 818)
+++ /trunk/build/bin/oforge-defaults-install.sh	(revision 818)
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+# loading OForge meta
+source $(dirname $0)/oforge-meta.sh
+
+# create default OForge data layout
+if [ ! -d $OFORGE_DATA ]; then
+  mkdir -p $OFORGE_DATA/trac $OFORGE_DATA/svn \
+    $OFORGE_DATA/public-trac $OFORGE_DATA/public-svn
+  
+  # SVN template
+  mkdir -p $OFORGE_DATA/svn/template/trunk \
+    $OFORGE_DATA/svn/template/branches $OFORGE_DATA/svn/template/tags 
+  
+  # init oforge-defaults SVN repository
+  svnadmin create --fs-type=fsfs $OFORGE_DATA/svn/oforge-defaults
+  svn import $OFORGE_DATA/svn/template \
+    file://$OFORGE_DATA/svn/oforge-defaults -m "Default SVN layout"
+
+  # init oforge-defaults locals
+  trac_admin="env PYTHONPATH=$PYTHONPATH $OFORGE_LIB_PREFIX/bin/trac-admin"
+  oforge_defaults="$OFORGE_DATA/trac/oforge-defaults"
+  
+  # init oforge-defaults 
+  $trac_admin $oforge_defaults initenv \
+    --inherit=$OFORGE_LIB_PREFIX/share/conf/trac.ini \
+    oforge-defaults sqlite:db/trac.db svn $OFORGE_DATA/svn/oforge-defaults 
+
+  # adding default global user
+  htpasswd -bc $OFORGE_DATA/passwd oforge oforge
+
+  # change owner to OForge user
+  chown -R $OFORGE_USER:$OFORGE_USER $OFORGE_DATA
+fi
Index: /trunk/build/bin/oforge-trac-install.sh
===================================================================
--- /trunk/build/bin/oforge-trac-install.sh	(revision 818)
+++ /trunk/build/bin/oforge-trac-install.sh	(revision 818)
@@ -0,0 +1,54 @@
+#!/bin/bash
+
+# loading OForge meta
+source $(dirname $0)/oforge-meta.sh
+
+# setup site dir
+site_dir="${OFORGE_LIB_PREFIX}/lib/python${PYTHON_VERSION}/site-packages"
+mkdir -p "${site_dir}"
+
+setupargs=" install --prefix=${OFORGE_LIB_PREFIX}"
+package_dirs="vendor trac-hacks plugins forks"
+
+# fix trac genshi dependency
+sed -i "s#Genshi>=0.6dev-r960#Genshi>=0.6dev#g" $OFORGE_SRC/vendor/trac/setup.py
+
+# installing trac-oforge packages
+for package_dir in $package_dirs
+do 
+  echo "Installing packages from ${package_dir}"
+  find $OFORGE_SRC/$package_dir -maxdepth 2 -name setup.py \
+    -execdir env PYTHONPATH=$PYTHONPATH python {} $setupargs \;
+done
+
+# setting up share dir
+oforge_share=$OFORGE_LIB_PREFIX/share
+mkdir -p $oforge_share
+rsync -rlpgo --exclude=".svn/" $OFORGE_SRC/share/* "${oforge_share}" 
+rsync -rlpgo --exclude=".svn/" $OFORGE_SRC/plugins/oforgeplugin/share/* "${oforge_share}" 
+
+# setting up static files
+rsync -a --exclude=".svn/" $OFORGE_SRC/vendor/trac/trac/htdocs/ ${oforge_share}/htdocs/
+
+# added global trac.ini file
+if [ ! -e ${oforge_share}/conf/trac.ini ]; then
+  cat <<EOF > ${oforge_share}/conf/trac.ini
+[inherit]
+file = ${oforge_share}/conf/trac.ini.oforge
+EOF
+fi
+
+# fixing post commit hook
+cp $OFORGE_SRC/vendor/trac/contrib/trac-post-commit-hook $OFORGE_LIB_PREFIX/bin/
+
+# fixing oforge-alfresco download 
+cp $OFORGE_SRC/plugins/alfrescoplugin/cgi-bin/tracalfresco_auth.py $OFORGE_LIB_PREFIX/share/cgi-bin/
+chmod +x $OFORGE_LIB_PREFIX/share/cgi-bin/tracalfresco_auth.py
+
+# fixing svnpolicies plugin
+cp $OFORGE_SRC/plugins/svnpoliciesplugin/bin/svn-hook $OFORGE_LIB_PREFIX/bin/
+cat <<EOF > /etc/svnpolicies.conf 
+[paths]
+python_path = $site_dir
+trac_base_dir = $OFORGE_DATA/trac
+EOF
Index: /trunk/build/bin/ubuntu-oforge-apache-ssl-config.sh
===================================================================
--- /trunk/build/bin/ubuntu-oforge-apache-ssl-config.sh	(revision 818)
+++ /trunk/build/bin/ubuntu-oforge-apache-ssl-config.sh	(revision 818)
@@ -0,0 +1,176 @@
+#!/bin/bash -e
+
+# loading OForge meta
+source $(dirname $0)/oforge-meta.sh
+
+# create SSL cert
+if [ ! -d /etc/apache2/ssl/ ] && [ -z $OFORGE_INSTALL_NOINTERACTIVE ];then
+  mkdir -p /etc/apache2/ssl/
+  openssl genrsa 1024 > /etc/apache2/ssl/server.key
+  openssl req -new -x509 -nodes -sha1 -days 365 \
+    -key /etc/apache2/ssl/server.key > /etc/apache2/ssl/server.crt
+fi
+
+# OForge apache setup
+cat<<EOF > /etc/apache2/sites-available/020-oforge-https
+# generic config
+WSGIPythonPath ${PYTHONPATH}
+
+<AuthnProviderAlias wsgi oforge-workspace>
+    WSGIAuthUserScript ${OFORGE_LIB_PREFIX}/share/cgi-bin/oforge-auth.wsgi
+</AuthnProviderAlias>
+
+<AuthnProviderAlias file oforge-global>
+  AuthUserFile ${OFORGE_DATA}/passwd
+</AuthnProviderAlias>
+
+# oforge-ssl vhost
+<VirtualHost _default_:443>
+    SSLEngine on
+    SSLCertificateFile /etc/apache2/ssl/server.crt
+    SSLCertificateKeyFile /etc/apache2/ssl/server.key
+    SSLCipherSuite HIGH:MEDIUM
+
+    # Set to your hostname
+    ServerName https://$OFORGE_DNSNAME
+
+    LogLevel Debug
+    ErrorLog /var/log/apache2/error_log.oforge_https
+    CustomLog /var/log/apache2/combined_log.oforge_https combined env=!dontlog
+    CustomLog /var/log/apache2/userlog.oforge_https "%t %u \"%r\" %>s "
+    CustomLog /var/log/apache2/svn_logfile.oforge_https "%t %u %{SVN-ACTION}e" env=SVN-ACTION
+    
+    ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html
+    ErrorDocument 403 /error/HTTP_FORBIDDEN.html
+    ErrorDocument 404 /error/HTTP_NOT_FOUND.html
+
+    KeepAlive On
+    FileETag None
+    ExpiresActive On
+    
+    SetEnvIfNoCase Request_URI /trac/(.+)/raw-attachment/(.*)  attachments
+    Header append Vary * env=attachments
+
+    RewriteEngine On
+    RewriteRule ^/$ /projects [R]
+    RewriteRule ^/trac$ /projects [R]
+    RewriteRule ^/trac/$ /projects [R]
+
+    WSGIDaemonProcess ${OFORGE_USER}-ssl display-name=${OFORGE_USER}-ssl-wsgi user=${OFORGE_USER} group=${OFORGE_USER} processes=5 threads=25 maximum-requests=500 shutdown-timeout=600 python-path=${PYTHONPATH}    
+    WSGIScriptAlias /trac ${OFORGE_LIB_PREFIX}/share/cgi-bin/trac.wsgi
+    WSGIScriptAlias /projects ${OFORGE_LIB_PREFIX}/lib/python${PYTHON_VERSION}/site-packages/oforgetools/apache/django.wsgi
+    
+    WSGIApplicationGroup %{GLOBAL}
+    
+    Alias /oforgetools/admin-media ${DJANGO_LIB_PREFIX}/contrib/admin/media
+    Alias /static/chrome/common ${OFORGE_LIB_PREFIX}/share/htdocs
+    Alias /static ${OFORGE_LIB_PREFIX}/share/htdocs.oforge
+
+    DocumentRoot "${OFORGE_LIB_PREFIX}/share/htdocs.oforge"
+
+    <Directory "${OFORGE_LIB_PREFIX}/share/htdocs.oforge">
+        Order allow,deny
+        Allow from all
+        Satisfy Any
+    </Directory>
+
+    <Location "/">
+        Order allow,deny
+        Allow from All
+    </Location>
+
+    <Location "/trac">
+        AuthType Basic
+        AuthName "OForge Security"
+        AuthBasicProvider oforge-global 
+        Require valid-user
+        Deny from All
+        
+        SetEnv trac.env_parent_dir ${OFORGE_DATA}/trac
+        SetEnv TRAC_DB_POOL_SIZE 40
+    </Location>
+
+    <LocationMatch "^/(svn|files)($|/)">
+        SVNParentPath ${OFORGE_DATA}/svn/
+    </LocationMatch>
+
+    <LocationMatch "^/(trac|svn|files|projects)"  >
+        AuthType Basic
+        AuthName "OForge Security"
+        AuthBasicProvider oforge-global oforge-workspace
+        Require valid-user
+        Satisfy any
+        Deny from All
+        
+        WSGIProcessGroup ${OFORGE_USER}-ssl
+    </LocationMatch>
+    
+    <Directory "${OFORGE_LIB_PREFIX}/share/cgi-bin">
+        Options All
+        Order allow,deny
+        Allow from All
+        Satisfy Any
+    </Directory>
+        
+    <Location "/svn">
+        DAV svn
+        SVNPathAuthz Off
+    </Location>
+    
+    <Location "/files">
+        DAV svn
+        SVNPathAuthz Off
+        RewriteRule     \.DS_Store$ - [F]
+        SVNAutoversioning  on
+        ModMimeUsePathInfo on
+    </Location>
+    
+    <Directory "${DJANGO_LIB_PREFIX}/contrib/admin/media">
+        Allow from All
+        AllowOverride All
+    </Directory>
+        
+    <Location "/static">
+        Options +IncludesNoExec
+        AddOutputFilter Includes html
+        Satisfy Any
+        # NOTE: This Expires setting can be longer in production
+        ExpiresDefault "access plus 7 day"
+        SetOutputFilter DEFLATE
+    </Location>
+    
+    <LocationMatch "^/trac/[^/]+/chrome/.*(js|png|css|gif)$">
+        # NOTE: This Expires setting can be longer in production
+        ExpiresDefault "access plus 7 day"
+        SetOutputFilter DEFLATE
+    </LocationMatch>
+    
+    <LocationMatch "^/trac/[^/]+/raw-attachment/.*UserManagerPluginPictures">
+        # NOTE: This Expires setting can be longer in production
+        ExpiresDefault "access plus 4 hour"
+        Header unset Vary
+    </LocationMatch>
+    
+    <Location "/error">
+        Options IncludesNoExec
+        AddOutputFilter Includes html
+        Satisfy Any
+    </Location>
+    
+</VirtualHost>
+EOF
+
+# enabled needed apache modules
+a2enmod authn_alias
+a2enmod rewrite
+a2enmod include
+a2enmod headers
+a2enmod expires
+a2enmod ssl
+a2enmod deflate
+
+# enable oforge site
+a2ensite 020-oforge-https
+
+# restarting apache
+service apache2 restart
Index: /trunk/build/bin/ubuntu-oforge-apache-config.sh
===================================================================
--- /trunk/build/bin/ubuntu-oforge-apache-config.sh	(revision 818)
+++ /trunk/build/bin/ubuntu-oforge-apache-config.sh	(revision 818)
@@ -0,0 +1,141 @@
+#!/bin/bash -e
+
+# loading OForge meta
+source $(dirname $0)/oforge-meta.sh
+
+# OForge apache setup
+cat<<EOF > /etc/apache2/sites-available/030-oforge-http
+<VirtualHost _default_:80>
+    RewriteEngine On
+    RewriteRule ^/trac/([^/]+)$ /trac/\$1/ [R]
+    RewriteRule ^/$ /trac [R]
+
+    # Change this to your hostname
+    ServerName $OFORGE_DNSNAME
+
+    # This directory is public, don't put anything there you don't want to share.
+    DocumentRoot "${OFORGE_LIB_PREFIX}/share/htdocs.oforge"
+
+    LogLevel Notice
+    ErrorLog /var/log/apache2/error_log.oforge_http
+    CustomLog /var/log/apache2/combined_log.oforge_http combined env=!dontlog
+    CustomLog /var/log/apache2/userlog.oforge_http "%t %u \"%r\" %>s "
+    CustomLog /var/log/apache2/svn_logfile.oforge_http "%t %u %{SVN-ACTION}e" env=SVN-ACTION
+
+    <Directory "${OFORGE_LIB_PREFIX}/share/htdocs.oforge">
+        Order allow,deny
+        Allow from all
+    </Directory>
+
+    <Location "/static">
+        Order allow,deny
+        Allow from all
+    </Location>
+
+    <Location "/robots.txt">
+        Order allow,deny
+        Allow from all
+    </Location>
+
+    <LocationMatch "^/trac">
+        SetEnv trac.env_parent_dir ${OFORGE_DATA}/public-trac
+    </LocationMatch>
+
+    <LocationMatch "^/(svn|files)/.*">
+        SVNParentPath ${OFORGE_DATA}/public-svn
+        <LimitExcept GET PROPFIND OPTIONS REPORT>
+            Order deny,allow
+            Deny from all
+        </LimitExcept>
+    </LocationMatch>
+
+    WSGIDaemonProcess ${OFORGE_USER} display-name=${OFORGE_USER}-wsgi user=${OFORGE_USER} group=${OFORGE_USER} processes=5 threads=25 maximum-requests=500 shutdown-timeout=600 python-path=${PYTHONPATH}
+
+    KeepAlive      On
+    FileETag       None
+    ExpiresActive  On
+    
+    SetEnvIfNoCase Request_URI /trac/(.+)/raw-attachment/(.*)  attachments
+    Header append Vary * env=attachments
+    
+    ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html
+    ErrorDocument 403 /error/HTTP_FORBIDDEN.html
+    ErrorDocument 404 /error/HTTP_NOT_FOUND.html
+    
+    WSGIScriptAliasMatch ^/trac\/?$    ${OFORGE_LIB_PREFIX}/share/cgi-bin/trac-index.wsgi
+    WSGIScriptAlias      /trac         ${OFORGE_LIB_PREFIX}/share/cgi-bin/trac.wsgi
+    WSGIApplicationGroup %{GLOBAL}
+    
+    Alias /static/chrome/common    ${OFORGE_LIB_PREFIX}/share/htdocs
+    Alias /static                  ${OFORGE_LIB_PREFIX}/share/htdocs.oforge
+    
+    <Directory "${OFORGE_LIB_PREFIX}/share/cgi-bin">
+        Options All
+        Order allow,deny
+        Allow from All
+        Satisfy Any
+    </Directory>
+        
+    <Location "/svn">
+        DAV svn
+        SVNIndexXSLT "/static/svn/index.xsl"
+        SVNPathAuthz Off
+    </Location>
+    
+    <Location "/files">
+        DAV svn
+        SVNIndexXSLT "/static/svn/index.xsl"
+        SVNPathAuthz Off
+        RewriteRule     \.DS_Store$ - [F]
+        SVNAutoversioning  on
+        ModMimeUsePathInfo on
+    </Location>
+    
+    <Location "/trac">
+        WSGIProcessGroup ${OFORGE_USER}
+        SetEnv TRAC_DB_POOL_SIZE 80
+    </Location>
+    
+    <Location "/static">
+        Options +IncludesNoExec
+        AddOutputFilter Includes html
+        Satisfy Any
+        ExpiresDefault "access plus 7 day"
+        SetOutputFilter DEFLATE
+    </Location>
+    
+    <LocationMatch "^/trac/[^/]+/chrome/.*(js|png|css|gif)$">
+        # NOTE: This Expires setting can be longer in production
+        ExpiresDefault "access plus 7 day"
+        SetOutputFilter DEFLATE
+    </LocationMatch>
+    
+    <LocationMatch "^/trac/[^/]+/raw-attachment/.*UserManagerPluginPictures">
+        ExpiresDefault "access plus 4 hour"
+        Header unset Vary
+    </LocationMatch>
+    
+    <Location "/error">
+        Options IncludesNoExec
+        AddOutputFilter Includes html
+        Satisfy Any
+    </Location>
+</VirtualHost>
+EOF
+
+# enabled needed apache modules
+a2enmod authn_alias
+a2enmod rewrite
+a2enmod include
+a2enmod headers
+a2enmod expires
+a2enmod deflate
+
+# enable oforge site
+a2ensite 030-oforge-http
+
+# disable default http site
+a2dissite 000-default
+
+# restarting apache
+service apache2 restart
Index: /trunk/build/bin/oforge-install.sh
===================================================================
--- /trunk/build/bin/oforge-install.sh	(revision 818)
+++ /trunk/build/bin/oforge-install.sh	(revision 818)
@@ -0,0 +1,12 @@
+#!/bin/bash -e
+
+oforge_install_src=$(dirname $0)
+
+# oforge-trac install
+bash ${oforge_install_src}/oforge-trac-install.sh
+
+# oforge-defaults install
+bash ${oforge_install_src}/oforge-defaults-install.sh
+
+# oforge-oforgetools install
+bash ${oforge_install_src}/oforge-oforgetools-install.sh
Index: /trunk/build/bin/oforge-meta.sh
===================================================================
--- /trunk/build/bin/oforge-meta.sh	(revision 818)
+++ /trunk/build/bin/oforge-meta.sh	(revision 818)
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+OFORGE_SRC="/var/spool/oforge-install-data/oforge/"
+OFORGE_DATA="/var/oforge/"
+OFORGE_LIB_PREFIX="/usr/lib/oforge/"
+OFORGE_USER="ubuntu"
+OFORGE_DNSNAME="oforge"
+
+OFORGETOOLS_ADMINS="('$OFORGE_USER')"
+OFORGETOOLS_DATABASE_ENGINE="sqlite3"
+OFORGETOOLS_DATABASE_HOST=""
+OFORGETOOLS_DATABASE_NAME="$OFORGE_DATA/oforgetools.db"
+OFORGETOOLS_DATABASE_PASSWORD=""
+OFORGETOOLS_DATABASE_USER=""
+
+PYTHON_VERSION=$(python -c "import sys;print sys.version[:3]")
+PYTHONPATH="${OFORGE_LIB_PREFIX}/lib/python${PYTHON_VERSION}/site-packages"
+DJANGO_LIB_PREFIX="/var/lib/python-support/python${PYTHON_VERSION}/django/"
Index: /trunk/build/bin/oforge-oforgetools-install.sh
===================================================================
--- /trunk/build/bin/oforge-oforgetools-install.sh	(revision 818)
+++ /trunk/build/bin/oforge-oforgetools-install.sh	(revision 818)
@@ -0,0 +1,39 @@
+#!/bin/bash -e
+
+# loading oforge meta
+source $(dirname $0)/oforge-meta.sh
+
+site_dir="${OFORGE_LIB_PREFIX}/lib/python${PYTHON_VERSION}/site-packages"
+
+# install oforgetools
+cp -a $OFORGE_SRC/oforgetools $site_dir
+
+# config oforgetools
+cat<<EOF > ${site_dir}/oforgetools/settings_local.py
+ADMINS = ${OFORGETOOLS_ADMINS}
+
+DATABASE_ENGINE = '${OFORGETOOLS_DATABASE_ENGINE}'
+DATABASE_NAME = '${OFORGETOOLS_DATABASE_NAME}'
+DATABASE_USER = '${OFORGETOOLS_DATABASE_USER}'
+DATABASE_PASSWORD = '${OFORGETOOLS_DATABASE_PASSWORD}'
+DATABASE_HOST = '${OFORGETOOLS_DATABASE_HOST}'
+
+TEMPLATE_DIRS = (
+    "${OFORGE_LIB_PREFIX}/share/templates.oforgetools",
+    "${site_dir}/oforgetools/templates",
+    "${DJANGO_LIB_PREFIX}/contrib/admin/templates"
+)
+
+CREATE_PROJECT_DEFAULTS = {
+    'svntemplate': '${OFORGE_DATA}/svn/template',
+    'defaultworkspace': '${OFORGE_DATA}/trac/oforge-defaults',
+    'usepostgres': False
+}
+
+OFORGE_CONFIGFILE = '${OFORGE_LIB_PREFIX}/share/conf/trac.ini'
+EOF
+
+# syncdb
+if [ -z $OFORGE_INSTALL_NOINTERACTIVE ]; then
+  sudo -u $OFORGE_USER django-admin syncdb --settings="oforgetools.settings" --pythonpath=${PYTHONPATH}
+fi
Index: /trunk/build/bin/ubuntu-oforge-install.sh
===================================================================
--- /trunk/build/bin/ubuntu-oforge-install.sh	(revision 818)
+++ /trunk/build/bin/ubuntu-oforge-install.sh	(revision 818)
@@ -0,0 +1,12 @@
+#!/bin/bash -e
+
+oforge_install_src=$(dirname $0)
+
+# oforge-apache config
+bash ${oforge_install_src}/oforge-install.sh
+
+# oforge-apache config
+bash ${oforge_install_src}/oforge-apache-config.sh
+
+# oforge-apache config
+bash ${oforge_install_src}/oforge-apache-ssl-config.sh
Index: /trunk/build/vmbuilder/oforge-vm/oforge-vm.cfg
===================================================================
--- /trunk/build/vmbuilder/oforge-vm/oforge-vm.cfg	(revision 818)
+++ /trunk/build/vmbuilder/oforge-vm/oforge-vm.cfg	(revision 818)
@@ -0,0 +1,29 @@
+[DEFAULT]
+arch = i386
+part = oforge-vm/oforge-vm.partition
+components = main,restricted,universe
+execscript = oforge-vm/vmbuilder/oforge-install.sh
+tmpfs = -
+
+[vmserver]
+firstboot = oforge-vm/vmbuilder/vmserver-oforge-firstboot.sh
+templates = oforge-vm/templates/
+swapsize = 512
+user = ubuntu
+name = oforge
+pass = oforge
+mem = 256
+destdir = /var/cbalan-data/vms/oforge-vm
+
+[xen]
+firstboot = oforge-vm/vmbuilder/xen-oforge-firstboot.sh
+firstlogin = oforge-vm/vmbuilder/xen-oforge-firstlogin.sh
+destdir = /tmp/oforge-xen/
+part = oforge-vm/oforge-vm-xen.partition
+
+[ubuntu]
+mirror = http://127.0.0.1:9999/ubuntu
+suite = karmic
+flavour = virtual
+hostname = oforge-server
+addpkg = apache2, libapache2-mod-wsgi, libapache2-svn, postgresql, python-dev, python-setuptools, python-subversion, python-textile, python-configobj, python-pygments, python-django, python-django-tagging, htmldoc, python-tz, python-cjson, python-psycopg2, python-docutils, libsvn-notify-perl, librsvg2-bin, python-pydot, curl, subversion, wget, bash-completion, cron, rsync, screen, vim, htop, man, patch, busybox, unzip
Index: /trunk/build/vmbuilder/oforge-vm/oforge-vm-xen.partition
===================================================================
--- /trunk/build/vmbuilder/oforge-vm/oforge-vm-xen.partition	(revision 818)
+++ /trunk/build/vmbuilder/oforge-vm/oforge-vm-xen.partition	(revision 818)
@@ -0,0 +1,3 @@
+root 6048 a1
+/mnt 1 a2
+swap 1024 a3
Index: /trunk/build/vmbuilder/oforge-vm/oforge-vm.partition
===================================================================
--- /trunk/build/vmbuilder/oforge-vm/oforge-vm.partition	(revision 818)
+++ /trunk/build/vmbuilder/oforge-vm/oforge-vm.partition	(revision 818)
@@ -0,0 +1,2 @@
+root 6000
+swap 512
Index: /trunk/build/vmbuilder/oforge-vm/vmbuilder/oforge-firstlogin.sh
===================================================================
--- /trunk/build/vmbuilder/oforge-vm/vmbuilder/oforge-firstlogin.sh	(revision 818)
+++ /trunk/build/vmbuilder/oforge-vm/vmbuilder/oforge-firstlogin.sh	(revision 818)
@@ -0,0 +1,8 @@
+#!/bin/bash -e
+
+# ssh server install
+apt-get update
+apt-get install -qqy --force-yes openssh-server
+
+# oforge-install script
+bash /var/spool/oforge-install-data/build/bin/ubuntu-oforge-install.sh
Index: /trunk/build/vmbuilder/oforge-vm/vmbuilder/oforge-install.sh
===================================================================
--- /trunk/build/vmbuilder/oforge-vm/vmbuilder/oforge-install.sh	(revision 818)
+++ /trunk/build/vmbuilder/oforge-vm/vmbuilder/oforge-install.sh	(revision 818)
@@ -0,0 +1,11 @@
+#!/bin/bash -ex
+
+OFORGE_SVN=http://code.optaros.com/svn/oforge/trunk
+OFORGE_TARGET_INSTALL=/var/spool/oforge-install-data/
+
+# fix mirror 
+sed -i -e "s/127.0.0.1:9999/archive.ubuntu.com/g" $1/etc/apt/sources.list
+
+# download OForge source
+mkdir -p $1/$OFORGE_TARGET_INSTALL
+svn export $OFORGE_SVN $1/$OFORGE_TARGET_INSTALL/oforge
Index: /trunk/build/vmbuilder/oforge-vm/templates/vmware/flat.vmdk.tmpl
===================================================================
--- /trunk/build/vmbuilder/oforge-vm/templates/vmware/flat.vmdk.tmpl	(revision 818)
+++ /trunk/build/vmbuilder/oforge-vm/templates/vmware/flat.vmdk.tmpl	(revision 818)
@@ -0,0 +1,19 @@
+# Disk DescriptorFile for Virtual Disk: $diskname
+version=1 
+CID=ffffffff 
+parentCID=ffffffff 
+createType="vmfs" 
+ 
+# Extent description 
+RW $disksize FLAT "$diskname" 0 
+# The Disk Data Base 
+#DDB 
+ddb.toolsVersion = "0" 
+ddb.adapterType = "$adaptertype" 
+ddb.geometry.biosSectors = "$sectors" 
+ddb.geometry.biosHeads = "255" 
+ddb.geometry.biosCylinders = "63" 
+ddb.geometry.sectors = "$sectors" 
+ddb.geometry.heads = "255" 
+ddb.geometry.cylinders = "63" 
+ddb.virtualHWVersion = "4"
Index: /trunk/build/vmbuilder/oforge-vm/templates/vmware/esxi.vmx.tmpl
===================================================================
--- /trunk/build/vmbuilder/oforge-vm/templates/vmware/esxi.vmx.tmpl	(revision 818)
+++ /trunk/build/vmbuilder/oforge-vm/templates/vmware/esxi.vmx.tmpl	(revision 818)
@@ -0,0 +1,57 @@
+config.version = "8"
+virtualHW.version = "$vmhwversion"
+floppy0.present = "true"
+nvram = "nvram"
+deploymentPlatform = "windows"
+virtualHW.productCompatibility = "hosted"
+tools.upgrade.policy = "useGlobal"
+powerType.powerOff = "default"
+powerType.powerOn = "default"
+powerType.suspend = "default"
+powerType.reset = "default"
+
+displayName = "$hostname $arch"
+
+numvcpus = "$cpu"
+scsi0.present = "true"
+scsi0.sharedBus = "none"
+scsi0.virtualDev = "lsilogic"
+memsize = "$mem"
+
+#set $i = -1
+#for $disk in $disks
+    #set $i = $i + 1
+    #set $bus = $i / 2
+    #set $id = $i % 2
+scsi${bus}:${id}.present = "true"
+scsi${bus}:${id}.fileName = "${disk}.vmdk"
+scsi${bus}:${id}.deviceType = "scsi-hardDisk"
+#end for
+
+ide0:0.present = "true"
+ide0:0.clientDevice = "TRUE"
+ide0:0.deviceType = "cdrom-raw"
+ide0:0.startConnected = "FALSE"
+floppy0.startConnected = "false"
+floppy0.clientDevice = "true"
+
+ethernet0.present = "true"
+ethernet0.virtualDev = "e1000"
+ethernet0.networkName = "VM Network"
+ethernet0.addressType = "generated"
+
+guestOSAltName = "$guestos ($arch)"
+guestOS = "$guestos"
+
+toolScripts.afterPowerOn = "true"
+toolScripts.afterResume = "true"
+toolScripts.beforeSuspend = "true"
+toolScripts.beforePowerOff = "true"
+
+scsi0:0.redo = ""
+
+tools.syncTime = "FALSE"
+ethernet0.generatedAddressOffset = "0"
+tools.remindInstall = "TRUE"
+
+evcCompatibilityMode = "FALSE"
Index: /trunk/build/vmbuilder/oforge-vm/templates/vmware/vmware.tmpl
===================================================================
--- /trunk/build/vmbuilder/oforge-vm/templates/vmware/vmware.tmpl	(revision 818)
+++ /trunk/build/vmbuilder/oforge-vm/templates/vmware/vmware.tmpl	(revision 818)
@@ -0,0 +1,19 @@
+config.version = "8"
+virtualHW.version = "$vmhwversion"
+scsi0.present = "FALSE"
+scsi0.virtualDev = "lsilogic"
+memsize = "$mem"
+Ethernet0.virtualDev = "vlance"
+Ethernet0.present = "TRUE"
+Ethernet0.connectionType = "nat"
+displayName = "OView Dev - $hostname $arch"
+guestOS = "$guestos"
+priority.grabbed = "normal"
+priority.ungrabbed = "normal"
+powerType.powerOff = "hard"
+powerType.powerOn = "hard"
+powerType.suspend = "hard"
+powerType.reset = "hard"
+floppy0.present = "FALSE"
+ide0:0.present = "TRUE"
+ide0:0.fileName = "disk0.vmdk"
Index: /trunk/build/vmbuilder/build-oforge-ami.sh
===================================================================
--- /trunk/build/vmbuilder/build-oforge-ami.sh	(revision 818)
+++ /trunk/build/vmbuilder/build-oforge-ami.sh	(revision 818)
@@ -0,0 +1,25 @@
+#!/bin/bash -e
+#
+# Required ENV
+#  - ${AWS_X509_CERT_PATH} 
+#  - ${AWS_X509_KEY_PATH}
+#  - ${AWS_ACCESS_KEY_ID}
+#  - ${AWS_SECRET_ACCESS_KEY}
+#  - ${AWS_ACCOUNT_NUMBER}
+#  - ${VMBUILDER_BUCKET} - S3 bucket where this AMI should be stored
+#
+sudo vmbuilder xen ubuntu \
+ --config oforge-vm/oforge-vm.cfg \
+ --in-place --overwrite --debug \
+ --ec2 \
+ --ec2-cert "${AWS_X509_CERT_PATH}" \
+ --ec2-key "${AWS_X509_KEY_PATH}" \
+ --ec2-access-key "${AWS_ACCESS_KEY_ID}" \
+ --ec2-secret-key "${AWS_SECRET_ACCESS_KEY}" \
+ --ec2-user "${AWS_ACCOUNT_NUMBER}" \
+ --ec2-bucket "${VMBUILDER_BUCKET}" \
+ --ec2-prefix "oforge-karmic-$(date +%Y%m%d%H%M)-i386" \
+ --ec2-version "OForge AMI - $(date +%Y%m%d)" \
+ --ec2-kernel "aki-5f15f636" \
+ --ec2-ramdisk "ari-0915f660" \
+ --ec2-bundle --ec2-upload --ec2-register
Index: /trunk/build/vmbuilder/build-oforge-vmserver.sh
===================================================================
--- /trunk/build/vmbuilder/build-oforge-vmserver.sh	(revision 818)
+++ /trunk/build/vmbuilder/build-oforge-vmserver.sh	(revision 818)
@@ -0,0 +1,4 @@
+#!/bin/bash -e
+sudo vmbuilder vmserver ubuntu  \
+ --config oforge-vm/oforge-vm.cfg \
+ --in-place --overwrite --debug
