Skip to Content.
Sympa Menu

sm-commit - [SM-Commit] GIT changes to master cauldron by Justin Boffemmyer (67a11f4bd6888a50d25421bdaebc90ef1dfca3d6)

sm-commit AT lists.ibiblio.org

Subject: Source Mage code commit list

List archive

Chronological Thread  
  • From: Justin Boffemmyer <scm AT sourcemage.org>
  • To: sm-commit AT lists.ibiblio.org
  • Subject: [SM-Commit] GIT changes to master cauldron by Justin Boffemmyer (67a11f4bd6888a50d25421bdaebc90ef1dfca3d6)
  • Date: Fri, 20 Aug 2010 03:03:49 -0500

GIT changes to master cauldron by Justin Boffemmyer <flux AT sourcemage.org>:

API | 2
HACKING | 12 +-
TODO | 12 +-
cauldron/errorcodes | 216
++++++++++++++++++++++++++++++-------------------
cauldron/lib.chroot | 4
cauldron/lib.sorcerous | 18 ++--
cauldron/lib.toolchain | 6 -
cauldron/libcauldron | 4
8 files changed, 169 insertions(+), 105 deletions(-)

New commits:
commit 67a11f4bd6888a50d25421bdaebc90ef1dfca3d6
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

TODO: add some ideas for > 1.0

Added some ideas for additional installation methods that I would like
to see implemented.

commit a98a7885e25e4f5c03aef9a744ffc2ab8c3aac69
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

HACKING: correct file naming in description

I had copy-pasted the description for the cauldron config files and then
modified it to fit enchantment, but accidentally left the filenames as
they were. The file names are now updated to properly reference
enchantment.

commit 3d4cf6253c9befa5c1520e340ed3a9ed6807376f
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

API: fix typo

Fix a simple mispelling/typo.

commit 8f92843f805af9cc8e812d142126e80ad18f8c81
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

cauldron: update and reorganize error codes

Reorganized the error codes by error type in the definition file.
Updated many of the error code names for better API compliance and
clarity. Updated corresponding error code usage instances in the
different source files.

diff --git a/API b/API
index 61d13df..4342168 100644
--- a/API
+++ b/API
@@ -117,7 +117,7 @@ In the comment block preceding the function definition,
the parameters are
defined according to the bashdoc specification, and following that is clear
text which explains the purpose of the function and what the parameters will
be
used for. The function definition is preceded by the "function" keyword so
that
-bashdoc can properly identify the fucntion definition. The function name is
+bashdoc can properly identify the function definition. The function name is
prefixed by "cauldron_" since this is a cauldron function (incidentally, this
function is defined in libcauldron). Local variable copies of the API-named
parameters are made as shorthand notations for the full API names.
diff --git a/HACKING b/HACKING
index 0b1ed74..1f42b82 100644
--- a/HACKING
+++ b/HACKING
@@ -272,12 +272,12 @@ which is the path to the potion to use for automating
the module.
**************
* etc/config *
**************
- The config file contains all the global variables used by the
enchantment
-scripts used during the ISO runtime that can be user-configured. Like the
-sorcery config file(s), etc/cauldron/config is the main (default) config
file,
-and etc/cauldron/local/config is meant to contain modified or custom values.
-For any setting found in both config files, the etc/cauldron/local/config
file
-overrides what is in etc/cauldron/config.
+ The config file contains all the global variables used by the
+enchantment scripts used during the ISO runtime that can be user-configured.
+Like the sorcery config file(s), etc/enchantment/config is the main (default)
+config file, and etc/enchantment/local/config is meant to contain modified or
+custom values. For any setting found in both config files, the
+etc/enchantment/local/config file overrides what is in
etc/enchantment/config.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

diff --git a/TODO b/TODO
index 04b7f52..66e2e31 100644
--- a/TODO
+++ b/TODO
@@ -59,12 +59,16 @@ Things to do in order to achieve 0.1
debug messages - once we determine all this we can start properly
handling, passing, or ignoring errors

-====================
-Things to do for 1.0
-====================
+===============================
+Things to do for 1.0 (or later)
+===============================

* No (known) bugs
+* cauldron "possess" command for taking possession of a machine under another
+ distro (don't generate install media, since the host system itself will be
+ the install media)
+* simple tab-completion for enchantment (CLI) and all its subcommands?
* web installer (html), X installer? (xdirectfb?)
-* net install (tftp, ssh, etc.?)
+* net install (tftp, ssh, etc.?) called "voodoo"
* ???

diff --git a/cauldron/errorcodes b/cauldron/errorcodes
index 0003c8e..af0e094 100644
--- a/cauldron/errorcodes
+++ b/cauldron/errorcodes
@@ -18,92 +18,146 @@

#-------------------------------------------------------------------------------
# ERROR definitions

#-------------------------------------------------------------------------------
-# error codes
+# base error codes
ERR_OK=0 # everything is good
ERR_FATAL=1 # fatal error (missing cauldron libs, etc.)
-ERR_ARCHIVE=2 # problem creating archives
-ERR_CHROOT=3 # problem with a chroot
-ERR_CLEANFILE=4 # missing cleaner files
-ERR_TARGET_SORCERY=5 # missing target sorcery files
-ERR_HOST_SORCERY=6 # sorcery not installed on host
-ERR_LOAD_LIBRARY=7 # problem loading a library/include
-ERR_CHROOT_UNDEF=8 # chroot TARGET is undefined
-ERR_CHROOT_INIT=9 # couldn't init chroot
-ERR_CHROOT_DONE=10 # couldn't close chroot
-ERR_CHROOT_NOT_INIT=11 # chroot isn't initialized
-ERR_CREATE_CACHE=12 # error creating spell cache
-ERR_LIBCOLOR=13 # problem loading libcolor when it was requested
-ERR_CP_CACHE=14 # problem copying spell cache from HOST to build
dir
-ERR_BUILD_CACHE=15 # problem building cache file from spell install
info
-ERR_UNPACK_CACHE=16 # couldn't unpack spell cache inside build dir
-ERR_RM_CACHE=17 # couldn't remove spell cache after unpacking in
build
-ERR_HOST_TRIPLE=18 # couldn't get host triple for builds
-ERR_ISO_SORCERY_CONFIG=19 # couldn't create the ISO local sorcery config dir
-ERR_INSTALLER_DIR=20 # couldn't create the ISO installer dir
-ERR_BUILD_SPOOL=21 # build directory sorcery spool does not exist
-ERR_DOWNLOAD_SORCERY=22 # could not download sorcery
-ERR_CHROOT_CAST=23 # chroot cast failed
-ERR_CHROOT_DISPEL=24 # chroot dispel failed
-ERR_CHROOT_REBUILD=25 # chroot rebuild failed
-ERR_CLEANUP_BUILD=26 # could not clean up build dir
-ERR_CLEANUP_TMP=27 # could not clean up tmp dir
-ERR_CLEAN_DIR=28 # failed to clean dir from ISO
-ERR_CLEAN_FILE=29 # failed to clean file from ISO
-ERR_COMPRESS_ISO=30 # could not compress final ISO file
-ERR_COPY_INSTALLER=31 # could not copy installer to ISO
-ERR_LINK_INSTALLER=32 # could not link installer programs to ISO
usr/sbin/
-ERR_ENCHANT_CONFIG=33 # could not source enchant config
-ERR_MK_ISOFS=34 # could not create the final ISO file
-ERR_RESOLV=35 # resolv missing in the build dir
-ERR_SORCERY_INSTALL=36 # could not install sorcery into the build dir
-ERR_TOOLCHAIN_STAGE1=37 # cross-toolchain failed at stage 1
-ERR_TOOLCHAIN_STAGE2=38 # cross-toolchain failed at stage 2
-ERR_TOOLCHAIN_STAGE3=39 # cross-toolchain failed at stage 3
-ERR_MKISOFS=40 # could not create final ISO filesystem
+ERR_MK_DIR=2 # couldn't make directory
+ERR_DIR_EXISTS=3 # directory already exists
+ERR_FILE_NOT_FOUND=5 # requested file not found
+ERR_DIR_NOT_FOUND=6 # requested dir not found
+
+# libcauldron base
+ERR_LOAD_LIBRARY=10 # problem loading a library/include
+ERR_CLEANUP_BUILD=11 # could not clean up build dir
+ERR_CLEANUP_TMP=12 # could not clean up tmp dir
+
+# libcauldron build
+ERR_UNPACK_CACHE=20 # couldn't unpack spell cache inside build dir
+ERR_RM_CACHE=21 # couldn't remove spell cache after unpacking in
build
+ERR_HOST_TRIPLE=22 # couldn't get host triple for builds
+ERR_BUILD_SPOOL=23 # build directory sorcery spool does not exist
+ERR_RESOLV=24 # resolv.conf missing in the build dir
+
+# libcauldron cleaner files
+ERR_CLEAN_CLEANER=30 # missing cleaner files
+ERR_CLEAN_DIR=31 # failed to clean dir from ISO
+ERR_CLEAN_FILE=32 # failed to clean file from ISO
+
+# libcauldron enchantment
+ERR_ENCHANT_CONFIG=40 # could not source enchant config
+ERR_INSTALLER_DIR=41 # could not create the ISO installer dir
+ERR_COPY_INSTALLER=42 # could not copy installer to ISO
+ERR_LINK_INSTALLER=43 # could not copy installer to ISO
+
+# libcauldron final product
+ERR_MKISOFS=50 # could not create final ISO filesystem
+ERR_MK_ISOFS=51 # could not create the final ISO file
+ERR_COMPRESS_ISO=52 # could not compress final ISO file
+
+# lib.chroot
+ERR_CHROOT_UNDEF=60 # chroot TARGET is undefined
+ERR_CHROOT_INIT=61 # couldn't init chroot
+ERR_CHROOT_DONE=62 # couldn't close chroot
+ERR_CHROOT_NOT_INIT=63 # chroot isn't initialized
+ERR_CHROOT_EXEC=64 # could not execute chroot command
+ERR_CHROOT_CAST=65 # chroot cast failed
+ERR_CHROOT_DISPEL=66 # chroot dispel failed
+ERR_CHROOT_REBUILD=67 # chroot rebuild failed
+
+# lib.init
+ERR_INSTALL_RAMFS=70 # problem installing built initramfs into ISO fs
+
+# lib.sorcerous
+ERR_SORCEROUS_CREATE_CACHE=80 # error creating spell cache
+ERR_SORCEROUS_HOST_SORCERY=81 # sorcery not installed on host
+ERR_SORCEROUS_TARGET_SORCERY=82 # missing target sorcery files
+ERR_SORCEROUS_ISO_SORCERY_CONFIG=83 # couldn't create the ISO local sorcery
config dir
+ERR_SORCEROUS_DOWNLOAD=84 # could not download sorcery
+ERR_SORCEROUS_INSTALL=85 # could not install sorcery into the build dir
+ERR_SORCEROUS_ARCHIVE=86 # target sorcery not set to archive casts
+
+# lib.toolchain
+ERR_TOOLCHAIN_CP_CACHE=90 # problem copying spell cache from HOST to
build dir
+ERR_TOOLCHAIN_BUILD_CACHE=91 # problem building cache file from spell
install info
+ERR_TOOLCHAIN_STAGE1=92 # cross-toolchain failed at stage 1
+ERR_TOOLCHAIN_STAGE2=93 # cross-toolchain failed at stage 2
+ERR_TOOLCHAIN_STAGE3=94 # cross-toolchain failed at stage 3
+ERR_TOOLCHAIN_CAST=95 # failed to cast toolchain spell
+ERR_TOOLCHAIN_DISPEL=96 # failed to dispel toolchain spell
+ERR_TOOLCHAIN_GATHER=97 # failed to generate toolchain spell cache
+ERR_TOOLCHAIN_SORCERY=98 # sorcery not installed in toolchain chroot
+

# error messages
ERR_MSGS=(
- "operation succeeded" # ERR_OK
- "fatal error" # ERR_FATAL
- "sorcery not set to archive" # ERR_ARCHIVE
- "could not perform chroot command" # ERR_CHROOT
- "cleanfile not found" # ERR_CLEANFILE
- "could not load target sorcery" # ERR_TARGET_SORCERY
- "could not load host sorcery" # ERR_HOST_SORCERY
- "could not load cauldron library" # ERR_LOAD_LIBRARY
- "target chroot dir undefined" # ERR_CHROOT_UNDEF
- "could not init chroot" # ERR_CHROOT_INIT
- "could not clean up chroot" # ERR_CHROOT_DONE
- "cauldron chroot not initialized" # ERR_CHROOT_NOT_INIT
- "could not create spell cache" # ERR_CREATE_CACHE
- "libcolor requested but couldn't load libcolor" # ERR_LIBCOLOR
- "could not copy spell cache file to build dir" # ERR_CP_CACHE
- "could not build spell cache file" # ERR_BUILD_CACHE
- "could not unpack spell cache in build dir" # ERR_UNPACK_CACHE
- "could not remove temporary spell cache file" # ERR_RM_CACHE
- "could not get host triple needed for builds" # ERR_HOST_TRIPLE
- "couldn't create the ISO local sorcery config dir" #
ERR_ISO_SORCERY_CONFIG
- "couldn't create the installer dir" # ERR_INSTALLER_DIR
- "build directory sorcery spool does not exist" # ERR_BUILD_SPOOL
- "could not download sorcery" # ERR_DOWNLOAD_SORCERY
- "chroot cast failed" # ERR_CHROOT_CAST
- "chroot dispel failed" # ERR_CHROOT_DISPEL
- "chroot rebuild failed" # ERR_CHROOT_REBUILD
- "could not clean up build dir" # ERR_CLEANUP_BUILD
- "could not clean up tmp dir" # ERR_CLEANUP_TMP
- "failed to clean dir from ISO" # ERR_CLEAN_DIR
- "failed to clean file from ISO" # ERR_CLEAN_FILE
- "could not compress final ISO file" # ERR_COMPRESS_ISO
- "could not copy installer to ISO" # ERR_COPY_INSTALLER
- "could not link installer programs to usr/sbin/" # ERR_LINK_INSTALLER
- "could not source enchant config" # ERR_ENCHANT_CONFIG
- "could not create the final ISO file" # ERR_MK_ISOFS
- "resolv missing in the build dir" # ERR_RESOLV
- "could not install sorcery into the build dir" # ERR_SORCERY_INSTALL
- "cross-toolchain failed at stage 1" # ERR_TOOLCHAIN_STAGE1
- "cross-toolchain failed at stage 2" # ERR_TOOLCHAIN_STAGE2
- "cross-toolchain failed at stage 3" # ERR_TOOLCHAIN_STAGE3
- "could not create final ISO filesystem" # ERR_MKISOFS
+ # base error codes
+ "operation succeeded" # ERR_OK
+ "fatal error" # ERR_FATAL
+ "could not make directory" # ERR_MK_DIR
+ "directory already exists" # ERR_DIR_EXISTS
+ "file not found" #
ERR_FILE_NOT_FOUND
+ "directory not found" #
ERR_DIR_NOT_FOUND
+
+ # libcauldron base
+ "could not load cauldron library" #
ERR_LOAD_LIBRARY
+ "could not clean up build dir" #
ERR_CLEANUP_BUILD
+ "could not clean up tmp dir" # ERR_CLEANUP_TMP
+
+ # libcauldron build
+ "could not unpack spell cache in build dir" #
ERR_UNPACK_CACHE
+ "could not remove temporary spell cache file" # ERR_RM_CACHE
+ "could not get host triple needed for builds" # ERR_HOST_TRIPLE
+ "build directory sorcery spool does not exist" # ERR_BUILD_SPOOL
+ "resolv.conf missing in the build dir" # ERR_RESOLV
+
+ # libcauldron cleaner files
+ "cleanfile not found" #
ERR_CLEAN_CLEANER
+ "failed to clean dir from ISO" # ERR_CLEAN_DIR
+ "failed to clean file from ISO" # ERR_CLEAN_FILE
+
+ # libcauldron enchantment
+ "could not source enchant config" #
ERR_ENCHANT_CONFIG
+ "couldn't create the installer dir" #
ERR_INSTALLER_DIR
+ "could not copy installer to ISO" #
ERR_COPY_INSTALLER
+ "could not link installer programs to usr/sbin/" #
ERR_LINK_INSTALLER
+
+ # libcauldron final product
+ "could not create the final ISO file" # ERR_MK_ISOFS
+ "could not create final ISO filesystem" # ERR_MKISOFS
+ "could not compress final ISO file" #
ERR_COMPRESS_ISO
+
+ # lib.chroot
+ "target chroot dir undefined" #
ERR_CHROOT_UNDEF
+ "could not init chroot" # ERR_CHROOT_INIT
+ "could not clean up chroot" # ERR_CHROOT_DONE
+ "cauldron chroot not initialized" #
ERR_CHROOT_NOT_INIT
+ "could not execute chroot command" # ERR_CHROOT_EXEC
+ "chroot cast failed" # ERR_CHROOT_CAST
+ "chroot dispel failed" #
ERR_CHROOT_DISPEL
+ "chroot rebuild failed" #
ERR_CHROOT_REBUILD
+
+ # lib.init
+ "problem installing built initramfs into ISO fs" #
ERR_INSTALL_RAMFS
+
+ # lib.sorcerous
+ "sorcery not set to archive" #
ERR_SORCEROUS_ARCHIVE
+ "could not load target sorcery" #
ERR_SORCEROUS_TARGET_SORCERY
+ "could not load host sorcery" #
ERR_SORCEROUS_HOST_SORCERY
+ "could not create spell cache" #
ERR_SORCEROUS_CREATE_CACHE
+ "couldn't create ISO sorcery local config dir" #
ERR_SORCEROUS_ISO_SORCERY_CONFIG
+ "could not download sorcery" #
ERR_SORCEROUS_DOWNLOAD
+ "could not install sorcery into the build dir" #
ERR_SORCEROUS_INSTALL
+
+ # lib.toolchain
+ "could not copy spell cache file to build dir" #
ERR_TOOLCHAIN_CP
+ "could not build spell cache file" #
ERR_TOOLCHAIN_MAKE
+ "cross-toolchain failed at stage 1" #
ERR_TOOLCHAIN_STAGE1
+ "cross-toolchain failed at stage 2" #
ERR_TOOLCHAIN_STAGE2
+ "cross-toolchain failed at stage 3" #
ERR_TOOLCHAIN_STAGE3
+ "failed to cast toolchain spell" #
ERR_TOOLCHAIN_CAST
+ "failed to dispel toolchain spell" #
ERR_TOOLCHAIN_DISPEL
+ "failed to generate toolchain spell cache" #
ERR_TOOLCHAIN_GATHER
+ "sorcery not installed in toolcahin chroot" #
ERR_TOOLCHAIN_SORCERY
)


#-------------------------------------------------------------------------------
diff --git a/cauldron/lib.chroot b/cauldron/lib.chroot
index 6f0db9e..d28ed93 100644
--- a/cauldron/lib.chroot
+++ b/cauldron/lib.chroot
@@ -49,7 +49,7 @@ function cauldron_chroot_init() {
cauldron_load_library lib.sorcerous
fi
# source the target sorcery, so we have access to its functions
- cauldron_source_sorcery "$target" || return $ERR_TARGET_SORCERY
+ cauldron_sorcerous_load "$target" || return $ERR_SORCEROUS_TARGET_SORCERY

# everything went OK, so export the chroot definitions
export CAULDRON_CHROOTINIT=1
@@ -98,7 +98,7 @@ function cauldron_chroot_done() {
function cauldron_chroot() {
if [[ "$CAULDRON_CHROOTINIT" -eq 1 ]]
then
- ${CAULDRON_CHROOT} $* || return $ERR_CHROOT
+ "$CAULDRON_CHROOT" $* || return $ERR_CHROOT_EXEC
else
return $ERR_CHROOT_NOT_INIT
fi
diff --git a/cauldron/lib.sorcerous b/cauldron/lib.sorcerous
index 78e61db..bd6938f 100644
--- a/cauldron/lib.sorcerous
+++ b/cauldron/lib.sorcerous
@@ -33,12 +33,12 @@ function cauldron_sorcerous_load() {
local local_config="${2:-$CAULDRON_ISORCERY_LCONFIG}"

# source the main config file
- source "$config" || return $ERR_TARGET_SORCERY
+ source "$config" || return $ERR_SORCEROUS_CONFIG

# if the local config exists, source it
if [[ -f "$local_config" ]]
then
- source "$local_config" || return $ERR_TARGET_SORCERY
+ source "$local_config" || return $ERR_SORCEROUS_LOCAL_CONFIG
fi

return $ERR_OK
@@ -65,11 +65,11 @@ function cauldron_sorcerous_cross_configure() {
if [[ -z modify_config ]]
then
. "$CAULDRON_HSORCERY_LIBS/libtrack" 2> $CAULDRON_NULL ||
- liberror_die $ERR_HOST_SORCERY
+ liberror_die $ERR_SORCEROUS_HOST_SORCERY
fi

# make sure the sorcery local config dir exists on the ISO
- mkdir -p "$CAULDRON_ISORCERY_LCONFIG" || return $ERR_ISO_SORCERY_CONFIG
+ mkdir -p "$CAULDRON_ISORCERY_LCONFIG" || return
$ERR_SORCEROUS_ISO_SORCERY_CONFIG

case "$stage" in
1)
@@ -105,7 +105,7 @@ function cauldron_sorcerous_download() {
(
cd ${spool}
wget "$sorcery_url/$sorcery" ||
- return $ERR_DOWNLOAD_SORCERY
+ return $ERR_SORCEROUS_DOWNLOAD
)

return $ERR_OK
@@ -147,7 +147,8 @@ function cauldron_sorcerous_install() {
fi

# unpack the source tarball
- tar -C "$CAULDRON_BUILD"/usr/src -jxf "$spool"/sorcery-${branch}.tar.bz2
+ tar -C "$CAULDRON_BUILD/usr/src" -jxf "$spool/sorcery-${branch}.tar.bz2" ||
+ return $ERR_SORCEROUS_UNPACK

# make sure the chroot library is loaded so cauldron_chroot is available
if [[ -z cauldron_chroot ]]
@@ -155,7 +156,10 @@ function cauldron_sorcerous_install() {
cauldron_load_library lib.chroot
fi
# install the source tarball, relative to CAULDRON_BUILD
- "$CAULDRON_BUILD"/usr/src/sorcery/install "$CAULDRON_BUILD"
+ "$CAULDRON_BUILD/usr/src/sorcery/install" "$CAULDRON_BUILD" ||
+ return $ERR_SORCEROUS_INSTALL
+
+ return $ERR_OK
}


#-------------------------------------------------------------------------------
diff --git a/cauldron/lib.toolchain b/cauldron/lib.toolchain
index 2343e47..c37e7a2 100644
--- a/cauldron/lib.toolchain
+++ b/cauldron/lib.toolchain
@@ -33,11 +33,13 @@ function cauldron_create_host_cache() {
if [[ -z create_cache_archive ]]
then
. "$CAULDRON_HSORCERY_LIBS/libstate" 2>$CAULDRON_NULL ||
- liberror_die $ERR_HOST_SORCERY
+ liberror_die $ERR_SORCEROUS_HOST_SORCERY
fi

create_cache_archive "$install_log" "$cache" "${cache}${EXTENSION}" ||
- return $ERR_CREATE_CACHE
+ return $ERR_TOOLCHAIN_RESURRECT
+
+ return $ERR_OK
}


#-------------------------------------------------------------------------------
diff --git a/cauldron/libcauldron b/cauldron/libcauldron
index 7c903c1..ce5b73a 100755
--- a/cauldron/libcauldron
+++ b/cauldron/libcauldron
@@ -260,7 +260,7 @@ function cauldron_build_target_system() {
function cauldron_clean_iso_system() {
local cleanfile="$1"

- [[ -z "$cleanfile" ]] && return $ERR_CLEANFILE
+ [[ -z "$cleanfile" ]] && return $ERR_CLEAN_FILE

for i in $(sort -r $cleanfile)
do
@@ -390,7 +390,7 @@ function cauldron_prepare() {

# cauldron is a spell
# there is a spoon
- cauldron_chroot "$CAULDRON_CAST" cauldron || return $ERR_CHROOT
+ cauldron_chroot "$CAULDRON_CAST" cauldron || return $ERR_CHROOT_CAST

return $ERR_OK
}



  • [SM-Commit] GIT changes to master cauldron by Justin Boffemmyer (67a11f4bd6888a50d25421bdaebc90ef1dfca3d6), Justin Boffemmyer, 08/20/2010

Archive powered by MHonArc 2.6.24.

Top of Page