Skip to Content.
Sympa Menu

sm-commit - [SM-Commit] GIT changes to master grimoire by Mark Bainter (8799ae1e0b288c675eac43acfac78863ab4b3297)

sm-commit AT lists.ibiblio.org

Subject: Source Mage code commit list

List archive

Chronological Thread  
  • From: Mark Bainter <scm AT sourcemage.org>
  • To: sm-commit AT lists.ibiblio.org
  • Subject: [SM-Commit] GIT changes to master grimoire by Mark Bainter (8799ae1e0b288c675eac43acfac78863ab4b3297)
  • Date: Tue, 22 Jun 2010 13:29:58 -0500

GIT changes to master grimoire by Mark Bainter <mbainter AT sourcemage.org>:

ChangeLog | 13 +++++++++
accounts | 1
groups | 3 +-
ruby-raa/facter/BUILD | 1
ruby-raa/facter/DEPENDS | 1
ruby-raa/facter/DETAILS | 16 +++++++++++
ruby-raa/facter/HISTORY | 4 ++
ruby-raa/facter/INSTALL | 1
ruby-raa/facter/PRE_BUILD | 3 ++
ruby-raa/facter/ftools.patch | 46 ++++++++++++++++++++++++++++++++
ruby-raa/ruby-augeas/BUILD | 1
ruby-raa/ruby-augeas/DEPENDS | 2 +
ruby-raa/ruby-augeas/DETAILS | 15 ++++++++++
ruby-raa/ruby-augeas/HISTORY | 3 ++
ruby-raa/ruby-augeas/INSTALL | 1
utils/augeas/DEPENDS | 1
utils/augeas/DETAILS | 17 +++++++++++
utils/augeas/HISTORY | 3 ++
utils/puppet/BUILD | 1
utils/puppet/CONFIGURE | 5 +++
utils/puppet/DEPENDS | 5 +++
utils/puppet/DETAILS | 20 ++++++++++++++
utils/puppet/HISTORY | 5 +++
utils/puppet/INSTALL | 54
++++++++++++++++++++++++++++++++++++++
utils/puppet/PRE_BUILD | 4 ++
utils/puppet/ftools_gemtask.patch | 40 ++++++++++++++++++++++++++++
utils/puppet/puppet.conf | 5 +++
utils/puppet/puppetmaster.conf | 12 ++++++++
28 files changed, 282 insertions(+), 1 deletion(-)

New commits:
commit 8799ae1e0b288c675eac43acfac78863ab4b3297
Author: Mark Bainter <mbainter AT sourcemage.org>
Commit: Mark Bainter <mbainter AT sourcemage.org>

utils/puppet: new spell - Configuration Management System
accounts: Added puppet user
groups: Added puppet user, corrected entry for avahi-autoipd group

commit 9dfa5285e19d4ae635bc1952964e00cb0074a36e
Author: Mark Bainter <mbainter AT sourcemage.org>
Commit: Mark Bainter <mbainter AT sourcemage.org>

utils/augeas: new spell - Configuration editing API

commit 7c928f80078c379951a95b9add33d59a8d994098
Author: Mark Bainter <mbainter AT sourcemage.org>
Commit: Mark Bainter <mbainter AT sourcemage.org>

ruby-raa/ruby-augeas: new spell - ruby bindings for augeas

commit 724a802928cc363e88114199f6bda9a5c280be63
Author: Mark Bainter <mbainter AT sourcemage.org>
Commit: Mark Bainter <mbainter AT sourcemage.org>

ruby-raa/facter: new spell - library for retrieving facts about OS

diff --git a/ChangeLog b/ChangeLog
index 5de40df..b5a71e5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2010-06-21 Mark Bainter <mbainter AT sourcemage.org>
+ * utils/puppet: new spell, Configuration Management system
+
+2010-06-21 Mark Bainter <mbainter AT sourcemage.org>
+ * utils/augeas: new spell, Configuration editing API
+
+2010-06-21 Mark Bainter <mbainter AT sourcemage.org>
+ * ruby-raa/augeas: new spell, ruby bindings for augeas config editing
+
+2010-06-21 Mark Bainter <mbainter AT sourcemage.org>
+ * ruby-raa/facter: new spell, ruby lib for retrieving facts about os
+
+
2010-06-20 Bor Kraljič <pyrobor AT ver.si>
* telephony/telepathy.gpg: imported key F8A8D3DD, AC51E219 & A3E3C08B
from subkeys.pgp.net
diff --git a/accounts b/accounts
index 29ac051..70f8bc7 100755
--- a/accounts
+++ b/accounts
@@ -86,4 +86,5 @@ memcached:176:177
camera:177:178
mariadb:178:180
avahi-autoipd:180:180
+puppet:181:181
nobody:65534:65534
diff --git a/groups b/groups
index da9e656..675d78a 100755
--- a/groups
+++ b/groups
@@ -104,6 +104,7 @@ memcached:177:
camera:178:
libvirt:179:
mariadb:180:
-avahi-autoipd:180
+avahi-autoipd:180:
+puppet:181:
users:1000:
nogroup:65534:
diff --git a/ruby-raa/facter/BUILD b/ruby-raa/facter/BUILD
new file mode 100755
index 0000000..27ba77d
--- /dev/null
+++ b/ruby-raa/facter/BUILD
@@ -0,0 +1 @@
+true
diff --git a/ruby-raa/facter/DEPENDS b/ruby-raa/facter/DEPENDS
new file mode 100755
index 0000000..15d80ef
--- /dev/null
+++ b/ruby-raa/facter/DEPENDS
@@ -0,0 +1 @@
+depends RUBY
diff --git a/ruby-raa/facter/DETAILS b/ruby-raa/facter/DETAILS
new file mode 100755
index 0000000..0bb1502
--- /dev/null
+++ b/ruby-raa/facter/DETAILS
@@ -0,0 +1,16 @@
+ SPELL=facter
+ VERSION=1.5.7
+ SOURCE="${SPELL}-${VERSION}.tar.gz"
+ SOURCE_URL[0]=http://puppetlabs.com/downloads/${SPELL}/${SOURCE}
+
SOURCE_HASH=sha512:722afd5b75e206e9a2d16c371edeb71810ace1b4e713e7a22945ab1c2ad90299b1dd211003d48452930b8897359e3214d0ccb84dac7c7a9efbc035564f48c8fa
+SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-${VERSION}"
+ WEB_SITE="http://www.puppetlabs.com/puppet/related-projects/facter/";
+ LICENSE[0]=GPL
+ ENTERED=20100617
+ SHORT="A cross-platform Ruby library for retrieving facts from
operating systems"
+cat << EOF
+Facter is a lightweight program that gathers basic node information about
+the hardware and operating system. Facter is especially useful for retrieving
+things like operating system names, hardware characteristics, IP addresses,
+MAC addresses, and SSH keys.
+EOF
diff --git a/ruby-raa/facter/HISTORY b/ruby-raa/facter/HISTORY
new file mode 100644
index 0000000..e46382f
--- /dev/null
+++ b/ruby-raa/facter/HISTORY
@@ -0,0 +1,4 @@
+2010-06-17 Mark Bainter <mbainter AT sourcemage.org>
+ * PRE_BUILD, BUILD, DEPENDS, DETAILS, INSTALL: spell created
+ * ftools.patch: enable building against Ruby 1.9.1
+
diff --git a/ruby-raa/facter/INSTALL b/ruby-raa/facter/INSTALL
new file mode 100755
index 0000000..87396fe
--- /dev/null
+++ b/ruby-raa/facter/INSTALL
@@ -0,0 +1 @@
+cd $SOURCE_DIRECTORY && ls && ruby ./install.rb
diff --git a/ruby-raa/facter/PRE_BUILD b/ruby-raa/facter/PRE_BUILD
new file mode 100755
index 0000000..39cc0ed
--- /dev/null
+++ b/ruby-raa/facter/PRE_BUILD
@@ -0,0 +1,3 @@
+default_pre_build &&
+cd $SOURCE_DIRECTORY &&
+patch -p1 < $SCRIPT_DIRECTORY/ftools.patch
diff --git a/ruby-raa/facter/ftools.patch b/ruby-raa/facter/ftools.patch
new file mode 100644
index 0000000..e5860e8
--- /dev/null
+++ b/ruby-raa/facter/ftools.patch
@@ -0,0 +1,46 @@
+commit 5412eab12df89a7a701ffea4f5dfb98d0f56985e
+Author: Stéphan Gorget <phantez AT gmail.com>
+Date: Thu Nov 5 00:51:34 2009 +0100
+
+ Fixed : 2788 - ftools missing in Ruby 1.9
+
+ Signed-off-by: Stéphan Gorget <phantez AT gmail.com>
+
+diff --git a/install.rb b/install.rb
+index ec16c4b..1280f04 100755
+--- a/install.rb
++++ b/install.rb
+@@ -35,7 +35,13 @@
+ require 'rbconfig'
+ require 'find'
+ require 'fileutils'
+-require 'ftools' # apparently on some system ftools doesn't get loaded
++begin
++ require 'ftools' # apparently on some system ftools doesn't get loaded
++ $haveftools = true
++rescue LoadError
++ puts "ftools not found. Using FileUtils instead.."
++ $haveftools = false
++end
+ require 'optparse'
+ require 'ostruct'
+
+@@ -91,9 +97,15 @@ def do_libs(libs, strip = 'lib/')
+ libs.each do |lf|
+ olf = File.join(InstallOptions.site_dir, lf.gsub(/#{strip}/, ''))
+ op = File.dirname(olf)
+- File.makedirs(op, true)
+- File.chmod(0755, op)
+- File.install(lf, olf, 0644, true)
++ if $haveftools
++ File.makedirs(op, true)
++ File.chmod(0755, op)
++ File.install(lf, olf, 0644, true)
++ else
++ FileUtils.makedirs(op, {:mode => 0755, :verbose => true})
++ FileUtils.chmod(0755, op)
++ FileUtils.install(lf, olf, {:mode => 0644, :verbose => true})
++ end
+ end
+ end
+
diff --git a/ruby-raa/ruby-augeas/BUILD b/ruby-raa/ruby-augeas/BUILD
new file mode 100755
index 0000000..97cdf76
--- /dev/null
+++ b/ruby-raa/ruby-augeas/BUILD
@@ -0,0 +1 @@
+rake build
diff --git a/ruby-raa/ruby-augeas/DEPENDS b/ruby-raa/ruby-augeas/DEPENDS
new file mode 100755
index 0000000..3ae5273
--- /dev/null
+++ b/ruby-raa/ruby-augeas/DEPENDS
@@ -0,0 +1,2 @@
+depends RUBY &&
+depends augeas
diff --git a/ruby-raa/ruby-augeas/DETAILS b/ruby-raa/ruby-augeas/DETAILS
new file mode 100755
index 0000000..c694c0b
--- /dev/null
+++ b/ruby-raa/ruby-augeas/DETAILS
@@ -0,0 +1,15 @@
+ SPELL=ruby-augeas
+ VERSION=0.3.0
+ SOURCE="${SPELL}-${VERSION}.tgz"
+ SOURCE_URL[0]=http://augeas.net/download/ruby/${SOURCE}
+
SOURCE_HASH=sha512:d0f23c290dc533b44d6abce39e57b93fc2e04aa660fbd29dfa1325165776f4f5e798c3b54e903831c7f3cd23761d1147a3b6a879742b4bc79ec0bef1cc91bfb4
+SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-${VERSION}"
+ WEB_SITE="http://augeas.net/";
+ LICENSE[0]=LGPL
+ ENTERED=20100617
+ SHORT="Ruby bindings for Augeas"
+cat << EOF
+Augeas is a configuration editing tool. It parses configuration files in
+their native formats and transforms them into a tree. Configuration changes
+are made by manipulating this tree and saving it back into native config
files.
+EOF
diff --git a/ruby-raa/ruby-augeas/HISTORY b/ruby-raa/ruby-augeas/HISTORY
new file mode 100644
index 0000000..8dba8a9
--- /dev/null
+++ b/ruby-raa/ruby-augeas/HISTORY
@@ -0,0 +1,3 @@
+2010-06-17 Mark Bainter <mbainter AT sourcemage.org>
+ * DEPENDS, DETAILS, BUILD, INSTALL: spell created
+
diff --git a/ruby-raa/ruby-augeas/INSTALL b/ruby-raa/ruby-augeas/INSTALL
new file mode 100755
index 0000000..4a8a076
--- /dev/null
+++ b/ruby-raa/ruby-augeas/INSTALL
@@ -0,0 +1 @@
+cd $SOURCE_DIRECTORY/ext/augeas && make install
diff --git a/utils/augeas/DEPENDS b/utils/augeas/DEPENDS
new file mode 100755
index 0000000..9600945
--- /dev/null
+++ b/utils/augeas/DEPENDS
@@ -0,0 +1 @@
+depends readline
diff --git a/utils/augeas/DETAILS b/utils/augeas/DETAILS
new file mode 100755
index 0000000..d546b0d
--- /dev/null
+++ b/utils/augeas/DETAILS
@@ -0,0 +1,17 @@
+ SPELL=augeas
+ VERSION=0.6.0
+ SOURCE="${SPELL}-${VERSION}.tar.gz"
+ SOURCE_URL[0]=http://${SPELL}.net/download/${SOURCE}
+
SOURCE_HASH=sha512:d4a655f120cc41c8c97b8625bac15955567a5de67615eb1cac4a91178ea50fa590524ed0a086d208661c5a3821c1fef44d1d6aa72b8d4795cafb0ee3ac50e8a2
+SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-${VERSION}"
+ WEB_SITE="http://augeas.net/";
+ LICENSE[0]="LGPL"
+ ENTERED=20100617
+ KEYWORDS="Software Development, Libraries, Installation/Setup,
Systems Administration, Text Processing"
+ SHORT="A configuration API."
+cat << EOF
+Augeas is a configuration API and editing tool. It parses common
configuration
+files like /etc/hosts or /etc/grub.conf in their native formats and
transforms
+them into a tree. Configuration changes are made by manipulating this tree
+and saving it back into native configuration files.
+EOF
diff --git a/utils/augeas/HISTORY b/utils/augeas/HISTORY
new file mode 100644
index 0000000..ba2c9a1
--- /dev/null
+++ b/utils/augeas/HISTORY
@@ -0,0 +1,3 @@
+2010-06-17 Mark Bainter <mbainter AT sourcemage.org>
+ * DEPENDS, DETAILS: spell created
+
diff --git a/utils/puppet/BUILD b/utils/puppet/BUILD
new file mode 100755
index 0000000..54843c5
--- /dev/null
+++ b/utils/puppet/BUILD
@@ -0,0 +1 @@
+create_account puppet "/var/lib/puppet"
diff --git a/utils/puppet/CONFIGURE b/utils/puppet/CONFIGURE
new file mode 100755
index 0000000..dd37a05
--- /dev/null
+++ b/utils/puppet/CONFIGURE
@@ -0,0 +1,5 @@
+config_query CLIENT_ONLY 'Install client only?' y
+
+config_query VIM_SYNTAX 'Install vim syntax highlighting?' y
+
+config_query INSTALL_EXAMPLES 'Install examples?' n
diff --git a/utils/puppet/DEPENDS b/utils/puppet/DEPENDS
new file mode 100755
index 0000000..bdcb984
--- /dev/null
+++ b/utils/puppet/DEPENDS
@@ -0,0 +1,5 @@
+depends facter &&
+depends RUBY &&
+suggest_depends shadow "" "" "for shadow file support" &&
+suggest_depends augeas "" "" "for automated editing of configuration files"
&&
+suggest_depends rrdtool "" "" "for generating graphs from report data"
diff --git a/utils/puppet/DETAILS b/utils/puppet/DETAILS
new file mode 100755
index 0000000..724ea09
--- /dev/null
+++ b/utils/puppet/DETAILS
@@ -0,0 +1,20 @@
+ SPELL=puppet
+ VERSION=0.25.5
+ SOURCE="puppet-${VERSION}.tar.gz"
+ SOURCE_URL[0]=http://puppetlabs.com/downloads/puppet/${SOURCE}
+
SOURCE_HASH=sha512:a563421f57e30eb09dc0596f4769ccaa45e9f9c6f29aa4072f370cc95cb50aab00b9ec3450289ea20b7383bb184c491a2ddbe003845beb7d01d328083f3dbad7
+SOURCE_DIRECTORY="${BUILD_DIRECTORY}/puppet-${VERSION}"
+ WEB_SITE="http://puppetlabs.com/";
+ LICENSE[0]=GPL
+ ENTERED=20100617
+ SHORT="Puppet is a configuration management system"
+cat << EOF
+Puppet lets you centrally manage every important aspect of your system
+using a cross-platform specification language that manages all the separate
+elements normally aggregated in different files, including users, cron jobs,
+and hosts, along with obviously discrete elements like packages, services,
+and files. Its simple declarative specification language provides powerful
+classing abilities for drawing out the similarities between hosts while
+allowing them to be as specific as necessary, and it handles dependency and
+prerequisite relationships between objects clearly and explicitly.
+EOF
diff --git a/utils/puppet/HISTORY b/utils/puppet/HISTORY
new file mode 100644
index 0000000..a3c22b1
--- /dev/null
+++ b/utils/puppet/HISTORY
@@ -0,0 +1,5 @@
+2010-06-17 Mark Bainter <mbainter AT sourcemage.org>
+ * DEPENDS, DETAILS, CONFIGURE< PRE_BUILD, BUILD, INSTALL: spell
created
+ * puppet.conf, puppetmaster.conf: basic configuration files
+ * ftools_gemtask.patch: Allows spell to build against ruby 1.9.1
+
diff --git a/utils/puppet/INSTALL b/utils/puppet/INSTALL
new file mode 100755
index 0000000..ad9fd5b
--- /dev/null
+++ b/utils/puppet/INSTALL
@@ -0,0 +1,54 @@
+cd ${SOURCE_DIRECTORY} && ruby install.rb --destdir="${INSTALL_ROOT}" &&
+echo "***************** COMPLETED RUBY INSTALL *************************" &&
+
+install_config_file "$SPELL_DIRECTORY/puppet.conf" \
+ "${INSTALL_ROOT}/etc/sysconfig/puppet.conf" &&
+
+if [[ "$CLIENT_ONLY" != 'y' ]]; then
+ echo "************* NOT CLIENT_ONLY (${CLIENT_ONLY}) - installing
puppetmaster config ***************" &&
+ install_config_file "$SPELL_DIRECTORY/puppetmaster.conf" \
+ "${INSTALL_ROOT}/etc/sysconfig/puppetmaster.conf"
+fi &&
+
+if [[ ! -d "${INSTALL_ROOT}/etc/puppet" ]]; then
+ echo "************* /etc/puppet DOES NOT EXIST, CREATING *************" &&
+ install -vdm 755 "${INSTALL_ROOT}/etc/puppet"
+fi &&
+
+echo "**************** INSTALLING CONFIG FILES ********************" &&
+install_config_file "${SOURCE_DIRECTORY}/conf/auth.conf" \
+ "${INSTALL_ROOT}/etc/puppet/auth.conf" &&
+install_config_file "${SOURCE_DIRECTORY}/conf/namespaceauth.conf" \
+ "${INSTALL_ROOT}/etc/puppet/namespaceauth.conf" &&
+
+if [[ "$CLIENT_ONLY" != 'y' ]]; then
+ echo "************* NOT CLIENT_ONLY (${CLIENT_ONLY}) - installing
manifests/modules ***************" &&
+ install -vdm 755 "${INSTALL_ROOT}"/etc/puppet/{manifests,modules}
+fi &&
+
+if [[ "$VIM_SYNTAX" == 'y' ]]; then
+ echo "************** VIM_SYNTAX set (${VIM_SYNTAX}) - installing
**********" &&
+ install -vm 644 "${SOURCE_DIRECTORY}/ext/vim/syntax/puppet.vim" \
+ "${INSTALL_ROOT}/usr/share/vim/vimfiles/syntax" &&
+ install -vm 644 "${SOURCE_DIRECTORY}/ext/vim/ftdetect/puppet.vim" \
+ "${INSTALL_ROOT}/usr/share/vim/vimfiles/ftdetect"
+fi &&
+
+if [[ "$INSTALL_EXAMPLES" == 'y' ]]; then
+ echo "************ INSTALL_EXAMPLES set ($INSTALL_EXAMPLES) - installing
************" &&
+ if [[ ! -d "${INSTALL_ROOT}/usr/share/doc/puppet" ]]; then
+ install -vdm 755 "${INSTALL_ROOT}/usr/share/doc/puppet"
+ fi
+ for f in $(find ext examples -type f); do
+ if [[ ! -d "${INSTALL_ROOT}"/usr/share/doc/puppet/$(dirname ${f}) ]];
then
+ install -vdm 755 "${INSTALL_ROOT}"/usr/share/doc/puppet/$(dirname
${f})
+ fi
+ install -vm 644 "$f" "${INSTALL_ROOT}/usr/share/doc/puppet/${f}"
+ done
+fi &&
+
+if [[ "$CLIENT_ONLY" == 'y' ]]; then
+ echo "******************* CLIENT ONLY FLAG SET (${CLIENT_ONLY})
*********************" &&
+ rm -f "${INSTALL_ROOT}"/usr/sbin/{puppetmasterd,puppetqd,puppetrun}
+fi
+
diff --git a/utils/puppet/PRE_BUILD b/utils/puppet/PRE_BUILD
new file mode 100755
index 0000000..f571948
--- /dev/null
+++ b/utils/puppet/PRE_BUILD
@@ -0,0 +1,4 @@
+default_pre_build &&
+cd $SOURCE_DIRECTORY &&
+patch -p0 < $SCRIPT_DIRECTORY/ftools_gemtask.patch
+
diff --git a/utils/puppet/ftools_gemtask.patch
b/utils/puppet/ftools_gemtask.patch
new file mode 100644
index 0000000..2ebb9c8
--- /dev/null
+++ b/utils/puppet/ftools_gemtask.patch
@@ -0,0 +1,40 @@
+--- tasks/rake/gem-orig.rake 2010-05-16 23:10:24.000000000 -0500
++++ tasks/rake/gem.rake 2010-06-18 05:28:29.000000000 -0500
+@@ -1,4 +1,10 @@
+-require 'ftools'
++begin
++ require 'ftools'
++ $haveftools = true
++rescue LoadError
++ puts "ftools not found. Using FileUtils instead.."
++ $haveftools = false
++end
+
+ GEM_FILES = FileList[
+ '[A-Z]*',
+@@ -44,7 +50,11 @@
+ desc "Prepare binaries for gem creation"
+ task :prepare_gem do
+ SBIN.each do |f|
+- File.copy(f,"bin")
++ if $haveftools
++ FileUtils.copy(f,"bin")
++ else
++ File.copy(f,"bin")
++ end
+ end
+ end
+
+@@ -52,7 +62,11 @@
+ task :create_gem => :prepare_gem do
+ Dir.mkdir("pkg") rescue nil
+ Gem::Builder.new(spec).build
+- File.move("puppet-#{Puppet::PUPPETVERSION}.gem", "pkg")
++ if $haveftools
++ FileUtils.move("puppet-#{Puppet::PUPPETVERSION}.gem", "pkg")
++ else
++ File.move("puppet-#{Puppet::PUPPETVERSION}.gem", "pkg")
++ end
+ SBIN.each do |f|
+ File.unlink("bin/" + f.gsub(/sbin\//, ''))
+ end
diff --git a/utils/puppet/puppet.conf b/utils/puppet/puppet.conf
new file mode 100644
index 0000000..e7e6257
--- /dev/null
+++ b/utils/puppet/puppet.conf
@@ -0,0 +1,5 @@
+# Location of PID files
+PUPPET_PID_DIR="/var/run/puppet"
+
+# You may specify other parameters to the puppet client here
+#PUPPET_EXTRA_OPTS=""
diff --git a/utils/puppet/puppetmaster.conf b/utils/puppet/puppetmaster.conf
new file mode 100644
index 0000000..37b04d4
--- /dev/null
+++ b/utils/puppet/puppetmaster.conf
@@ -0,0 +1,12 @@
+# Location of PID files
+PUPPETMASTER_PID_DIR="/var/run/puppet"
+
+# Location of the main manifest
+#PUPPETMASTER_MANIFEST="/etc/puppet/manifests/site.pp"
+
+# Where to log general messages to.
+# Specify syslog to send log messages to the system log.
+#PUPPETMASTER_LOG="syslog"
+
+# You may specify other parameters to the puppetmaster here
+#PUPPETMASTER_EXTRA_OPTS="--no-ca"



  • [SM-Commit] GIT changes to master grimoire by Mark Bainter (8799ae1e0b288c675eac43acfac78863ab4b3297), Mark Bainter, 06/22/2010

Archive powered by MHonArc 2.6.24.

Top of Page