Skip to Content.
Sympa Menu

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

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 (126cbc2752f61b06d0cdc626dbde0f86b8e11c32)
  • Date: Fri, 25 Mar 2011 01:21:02 -0500

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

API | 4
HACKING | 22 +----
cauldron/PROCESS | 36 ++++++++
cauldron/config/arch/host_arch.conf | 15 +++
cauldron/config/arch/ppc.conf | 5 +
cauldron/config/arch/x86.conf | 5 +
cauldron/config/arch/x86_64.conf | 5 +
cauldron/config/build.conf | 23 +++++
cauldron/config/commands.conf | 108 +++++++++++++++++++++++++
cauldron/config/default.conf | 25 +++++
cauldron/config/display.conf | 5 +
cauldron/config/iso.conf | 34 ++++++++
cauldron/config/paths.conf | 20 ++++
cauldron/config/security.conf | 6 +
cauldron/config/sorcery.conf | 37 ++++++++
cauldron/config/sys.conf | 16 +++
cauldron/etc/cauldron.conf | 12 ++
cauldron/etc/config | 152
------------------------------------
enchantment/doc/enchantment.8 | 2
enchantment/etc/config | 97 ----------------------
enchantment/etc/enchantment.conf | 97 ++++++++++++++++++++++
enchantment/shell/bashrc | 2
enchantment/shell/bin/enchantment | 3
ward/TODO | 17 ++++
ward/ward-configvars | 6 -
ward/ward-functions | 2
26 files changed, 482 insertions(+), 274 deletions(-)

New commits:
commit 126cbc2752f61b06d0cdc626dbde0f86b8e11c32
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

cauldron: cascading logical config system

Rather than having a single config file that defines all default values
and a local config that overrides them, push all config variables to a
separate location that is not meant to be user-edited. The etc config
file then sources (includes) the relevant config material that is
actually wanted. All config variables are divided into separate files
based on logical cohesion, and the config files can cascade (one config
file can include others, providing configuration "profiles"). The
default configuration provided in etc/ now consists of only two lines:
one to source the architecture config, and one to source the default
cauldron configuration.

This should make the actual configurations themselves more transparent,
as they are better described for function and purpose by being grouped
logically. The system is also easier to configure to the user's liking,
since relevant portions can be included, and all of them can be
overridden by redefining a variable after it is included anyway.

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

rename config files to component.conf

Rename the config files to <Component_Name>.conf. This will help make it
more clear which file is being referenced in debugging sessions,
particularly with new end users. This is also in preparation of a change
to the config file structure that will be forthcoming.

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

cauldron: add PROCESS to describe build process

Add a PROCESS file which describes the general cauldron build process
for both the sys and iso targets. This information could be helpful to
any new contributors (or anyone just curious). The entire process is
broken down into a list of sub-processes that should be separate (though
some are of course interdependent).

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

ward: add TODO file

Add a TODO file listing forward goals of ward development. Any
contributors willing to volunteer time/effort on ward should check this
file for what they could help implement.

diff --git a/API b/API
index 4342168..22925ef 100644
--- a/API
+++ b/API
@@ -36,8 +36,8 @@ Anything pertaining to installers is referred to
collectively as "enchantment"
underscores, and trailing numbers
- in regexp, [A-Z][A-Z_]*[0-9]*
* Global variables should be defined in the relevant config file
- (etc/cauldron/config for cauldron and etc/enchantment/config for
- enchantment)
+ (etc/cauldron/cauldron.conf for cauldron and
+ etc/enchantment/enchantment.conf for enchantment)

* Local variables are to be in all lowercase, must begin with a letter, and
can contain only letters, underscores, and trailing numbers
diff --git a/HACKING b/HACKING
index 1f42b82..c84ce37 100644
--- a/HACKING
+++ b/HACKING
@@ -75,15 +75,11 @@ Their spell caches are provided instead, and they are to
be accessed from the
installed platform.


-**************
-* etc/config *
-**************
+*********************
+* etc/cauldron.conf *
+*********************
The config file contains all the global variables used by the cauldron
-scripts used to build an ISO 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.
+scripts used to build an ISO that can be user-configured.

********************
* etc/$ARCH/spells *
@@ -269,15 +265,11 @@ process of the module. Each script in this directory
must take one argument,
which is the path to the potion to use for automating the module.


-**************
-* etc/config *
-**************
+************************
+* etc/enchantment.conf *
+************************
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/cauldron/PROCESS b/cauldron/PROCESS
new file mode 100644
index 0000000..0d0a049
--- /dev/null
+++ b/cauldron/PROCESS
@@ -0,0 +1,36 @@
+toolchain:
+ get CC (gcc, llvm?, etc.?), binutils, glibc, coreutils, bash, gawk,
+ bzip2, ncurses, make, gnupg, autoconf, and anything else directly
+ needed for compiling the initial sources (gcc, binutils, and glibc)
+ if doing a cross-compile, rebuild the compiler chain (gcc, binutils,
+ glibc) for the new arch, then rebuild the basesystem spells using
the
+ cross-compiler
+ if using a baseroot, scribe update && sorcery queue && cast --queue to
+ ensure up-to-date packages?
+sys:
+ build all spells required for initial sys runtime (mostly just
+ basesystem, perhaps with a few exceptions)
+ clean the sys filesystem (sanity/security/QA)
+ package sys into a compressed tarball
+
+iso:
+ build all spells required for iso runtime, save the caches of the
+ builds for later install
+ build caches for recommended install that are not needed for the iso
+ runtime
+ summon sources for optional install
+ acquire sources for a kernel, implant a predetermined .config, and
+ build the kernel
+ save the kernel sources for recommended install
+ copy the built kernel and modules into the iso filesystem
+ enchant the iso
+ generate an initramfs/initrd for the iso using the content generated
to
+ this point
+ setup the iso init system (which installer(s) to start initially on
+ what terminal(s), etc.)
+ install sys tarball into iso filesystem
+ clean the iso filesystem (sanity/security/QA)
+ package into the final media form (iso9660, udf, etc.)
+ compress the final output
+
+each individual part of this process should be separately executable
diff --git a/cauldron/config/arch/host_arch.conf
b/cauldron/config/arch/host_arch.conf
new file mode 100644
index 0000000..e92e843
--- /dev/null
+++ b/cauldron/config/arch/host_arch.conf
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# contains the arch info for the HOST
+CAULDRON_HOST_TRIPLE="${CAULDRON_HOST_TRIPLE:-}"
+
+CAULDRON_HOST_ARCH_PATH=$(grep 'ARCH_SPECS=' "$CAULDRON_HSORCERY_CONFIG" |
cut -d= -f2-)
+
+CAULDRON_HOST_CACHE_PATH="${CAULDRON_HOST_CACHE_PATH:-/var/cache/sorcery}"
+
+eval CAULDRON_HOST_ARCH=$(grep 'ARCHITECTURE=' "$CAULDRON_HSORCERY_CONFIG" |
cut -d= -f2-)
+
+eval CAULDRON_CACHE_EXTENSION=$(grep 'EXTENSION='
"$CAULDRON_HSORCERY_CONFIG" | cut -d= -f2-)
+
+
+# vim:ai:tw=80:tabstop=2:softtabstop=2:shiftwidth=2:expandtab
diff --git a/cauldron/config/arch/ppc.conf b/cauldron/config/arch/ppc.conf
new file mode 100644
index 0000000..a30f03e
--- /dev/null
+++ b/cauldron/config/arch/ppc.conf
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+# the arch to generate the .iso for
+CAULDRON_ARCH="${CAULDRON_ARCH:-ppc}"
+
diff --git a/cauldron/config/arch/x86.conf b/cauldron/config/arch/x86.conf
new file mode 100644
index 0000000..0b4d32d
--- /dev/null
+++ b/cauldron/config/arch/x86.conf
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+# the arch to generate the .iso for
+CAULDRON_ARCH="${CAULDRON_ARCH:-x86}"
+
diff --git a/cauldron/config/arch/x86_64.conf
b/cauldron/config/arch/x86_64.conf
new file mode 100644
index 0000000..5134a8f
--- /dev/null
+++ b/cauldron/config/arch/x86_64.conf
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+# the arch to generate the .iso for
+CAULDRON_ARCH="${CAULDRON_ARCH:-x86_64}"
+
diff --git a/cauldron/config/build.conf b/cauldron/config/build.conf
new file mode 100644
index 0000000..0973385
--- /dev/null
+++ b/cauldron/config/build.conf
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+# path to the ISO build chroots
+CAULDRON_BUILD="${CAULDRON_BUILD:-$CAULDRON_TMP/build}"
+
+# file listing all the spells needed for the build toolchain
+CAULDRON_TOOLCHAIN="${CAULDRON_TOOLCHAIN:-$CAULDRON_DATA/$CAULDRON_ARCH/toolchain}"
+
+# name of the local on-disk basesystem chroot image to use for the
+# baseroot method (i.e. cauldron_toolchain_baseroot)
+CAULDRON_BASEROOT="${CAULDRON_BASEROOT:-smgl-stable-0.47-basesytem-$CAULDRON_ARCH.tar.bz2}"
+# URL to a basesystem chroot for use with cauldron_toolchain_baseroot
+# only used when generating CAULDRON_BUILD from the baseroot method
+CAULDRON_BASEROOT_URL="${CAULDRON_BASEROOT_URL:-http://download.sourcemage.org/image/official/$CAULDRON_BASEROOT}";
+
+# whether CAULDRON_BUILD should be rm'ed after cauldron has finished
+CAULDRON_CLEAN="${CAULDRON_CLEAN:-no}"
+
+# whether cauldron should try it's hardest to generate needed spell
+# caches, even if that means casting and dispelling extra spells in a
+# chroot (only used when generating the base toolchain)
+CAULDRON_AGGRESSIVE="${CAULDRON_AGGRESSIVE:-yes}"
+
diff --git a/cauldron/config/commands.conf b/cauldron/config/commands.conf
new file mode 100644
index 0000000..bf094b5
--- /dev/null
+++ b/cauldron/config/commands.conf
@@ -0,0 +1,108 @@
+#!/bin/bash
+
+# command to enter a chroot
+[[ -n "${CAULDRON_CMD_CHROOT[@]}" ]] ||
+ CAULDRON_CMD_CHROOT=(
+ chroot
+ )
+
+# command to download a url from the internet
+[[ -n "${CAULDRON_CMD_URL_DL[@]}" ]] ||
+ CAULDRON_CMD_URL_DL=(
+ wget
+ )
+
+# command used to generate the final iso media
+[[ -n "${CAULDRON_CMD_MKISOFS[@]}" ]] ||
+ CAULDRON_CMD_MKISOFS=(
+ mkisofs
+ -R
+ -b isolinux/isolinux.bin
+ -c isolinux/boot.cat
+ -no-emul-boot
+ -boot-load-size 4
+ -boot-info-table
+ -o "$CAULDRON_ISO_NAME"
+ "$CAULDRON_BUILD"
+ )
+
+# command to archive the iso and sys packages (e.g., tar, cpio, etc.)
+[[ -n "${CAULDRON_CMD_ARCHIVE[@]}" ]] ||
+ CAULDRON_CMD_ARCHIVE=(
+ tar
+ cf "$CAULDRON_BUILD"/"${CAULDRON_SYS_NAME%.*}"
+ -C "$CAULDRON_SYS"
+ )
+
+# command to compress files
+[[ -n "${CAULDRON_CMD_COMPRESS[@]}" ]] ||
+ CAULDRON_CMD_COMPRESS=(
+ bzip2
+ "${CAULDRON_SYS_NAME%.*}"
+ )
+
+# command to make a directory
+[[ -n "${CAULDRON_CMD_MKDIR[@]}" ]] ||
+ CAULDRON_CMD_MKDIR=(
+ mkdir
+ -p
+ )
+
+# command to remove a directory
+[[ -n "${CAULDRON_CMD_RMDIR[@]}" ]] ||
+ CAULDRON_CMD_RMDIR=(
+ rmdir
+ )
+
+# command to copy a file/directory
+[[ -n "${CAULDRON_CMD_CP[@]}" ]] ||
+ CAULDRON_CMD_CP=(
+ cp
+ )
+
+# command to move a file/directory
+[[ -n "${CAULDRON_CMD_RM[@]}" ]] ||
+ CAULDRON_CMD_RM=(
+ rm
+ )
+
+# command to remove a file
+[[ -n "${CAULDRON_CMD_RM[@]}" ]] ||
+ CAULDRON_CMD_RM=(
+ rm
+ )
+
+# command to grep a file/stream
+[[ -n "${CAULDRON_CMD_GREP[@]}" ]] ||
+ CAULDRON_CMD_GREP=(
+ grep
+ )
+
+# command to awk a file/stream
+[[ -n "${CAULDRON_CMD_AWK[@]}" ]] ||
+ CAULDRON_CMD_AWK=(
+ gawk
+ )
+
+# command to sed a file/stream
+[[ -n "${CAULDRON_CMD_SED[@]}" ]] ||
+ CAULDRON_CMD_SED=(
+ sed
+ )
+
+# sorcery cast/dispel/rebuild commands
+[[ -n "${CAULDRON_CMD_CAST[@]}" ]] ||
+ CAULDRON_CMD_CAST=(
+ "$CAULDRON_HSORCERY_PATH/cast"
+ )
+[[ -n "${CAULDRON_CMD_DISPEL[@]}" ]] ||
+ CAULDRON_CMD_DISPEL=(
+ "$CAULDRON_HSORCERY_PATH/dispel"
+ )
+[[ -n "${CAULDRON_CMD_REBUILD[@]}" ]] ||
+ CAULDRON_CMD_REBUILD=(
+ "$CAULDRON_HSORCERY_PATH/sorcery"
+ rebuild
+ )
+
+# vim:ai:tw=80:tabstop=2:softtabstop=2:shiftwidth=2:expandtab
diff --git a/cauldron/config/default.conf b/cauldron/config/default.conf
new file mode 100644
index 0000000..9225ffe
--- /dev/null
+++ b/cauldron/config/default.conf
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+# base configuration values
+source "$CAULDRON_CONF/paths.conf"
+source "$CAULDRON_CONF/security.conf"
+source "$CAULDRON_CONF/display.conf"
+
+# output product configuration values
+source "$CAULDRON_CONF/iso.conf"
+source "$CAULDRON_CONF/sys.conf"
+
+# interaction with sorcery
+source "$CAULDRON_CONF/sorcery.conf"
+
+# build configurations (toolchain, product builds)
+source "$CAULDRON_CONF/build.conf"
+
+# host architecture (i.e., the arch of the system running cauldron, not the
+# arch of the media to be generated)
+source "$CAULDRON_CONF/arch/host_arch.conf"
+
+# should be sourced last, since some of the command definitions depend on
other
+# config variable definitions
+source "$CAULDRON_CONF/commands.conf"
+
diff --git a/cauldron/config/display.conf b/cauldron/config/display.conf
new file mode 100644
index 0000000..f850ac1
--- /dev/null
+++ b/cauldron/config/display.conf
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+# whether to use color for displaying messages
+CAULDRON_COLOR="${CAULDRON_COLOR:-yes}"
+
diff --git a/cauldron/config/iso.conf b/cauldron/config/iso.conf
new file mode 100644
index 0000000..18bf91c
--- /dev/null
+++ b/cauldron/config/iso.conf
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+# path where the final ISO product is generated
+CAULDRON_ISO="${CAULDRON_ISO:-$CAULDRON_TMP/iso}"
+
+# kernel config used to build the kernel for the ISO
+CAULDRON_KERN_CONF="${CAULDRON_KERN_CONF:-$CAULDRON_DATA/$CAULDRON_ARCH/kernel}"
+
+# the version of the kernel to be used in the .iso
+# if empty, then it will default to the version in cauldron
+CAULDRON_KVERS="${CAULDRON_KVERS:-}"
+
+# busybox config used to build busybox for the initrd/initramfs in the ISO
+CAULDRON_BBOX_CONF="${CAULDRON_BBOX_CONF:-$CAULDRON_DATA/$CAULDRON_ARCH/initfs/busybox}"
+
+# file listing all the spells to compose the ISO runtime
+CAULDRON_ISO_SPELLS="${CAULDRON_ISO_SPELLS:-$CAULDRON_DATA/$CAULDRON_ARCH/iso.spells}"
+# file listing all the sources to supply in the ISO runtime
+CAULDRON_ISO_SOURCES="${CAULDRON_ISO_SOURCES:-$CAULDRON_DATA/$CAULDRON_ARCH/iso.sources}"
+# file listing all the spell caches to supply in the ISO runtime
+CAULDRON_ISO_CACHES="${CAULDRON_ISO_CACHES:-$CAULDRON_DATA/$CAULDRON_ARCH/iso.caches}"
+
+# list of installers to include in the ISO
+CAULDRON_INSTALLERS=(
+ "shell"
+ # "menu"
+ )
+
+# filename of the produced .iso (should follow Cauldron naming conventions)
+CAULDRON_ISO_NAME="${CAULDRON_ISO_NAME:-smgl-devel-$(date
+%Y%m%d).$CAULDRON_ARCH}"
+
+# do we keep the uncompressed .iso file in addition to the compressed one?
+CAULDRON_KEEPISO="${CAULDRON_KEEPISO:-yes}"
+
diff --git a/cauldron/config/paths.conf b/cauldron/config/paths.conf
new file mode 100644
index 0000000..0fea1b6
--- /dev/null
+++ b/cauldron/config/paths.conf
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+# path to the host system (null for normal use)
+CAULDRON_HOST="${CAULDRON_HOST:-}"
+
+# path to the host base library modules
+CAULDRON_BASE="${CAULDRON_BASE:-$CAULDRON_HOST/usr/share/smgl}"
+
+# path to the host cauldron library modules
+CAULDRON_LIBS="${CAULDRON_LIBS:-$CAULDRON_BASE/cauldron}"
+
+# path to Source Mage common library modules
+CAULDRON_COMMON="${CAULDRON_COMMON:-$CAULDRON_BASE/common}"
+
+# path to the host cauldron configs
+CAULDRON_DATA="${CAULDRON_DATA:-$CAULDRON_HOST/etc/cauldron}"
+
+# temporary files generated while cauldron does its work
+CAULDRON_TMP="${CAULDRON_TMP:-$CAULDRON_HOST/tmp/cauldron}"
+
diff --git a/cauldron/config/security.conf b/cauldron/config/security.conf
new file mode 100644
index 0000000..fa9254c
--- /dev/null
+++ b/cauldron/config/security.conf
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+# the user cauldron should run as make sure the user you choose has proper
+# permissions (especially for chrooting)
+CAULDRON_USER="${CAULDRON_USER:-root}"
+
diff --git a/cauldron/config/sorcery.conf b/cauldron/config/sorcery.conf
new file mode 100644
index 0000000..ea2f7bd
--- /dev/null
+++ b/cauldron/config/sorcery.conf
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+# branch of sorcery to use in the ISO
+CAULDRON_SORCERY_BRANCH="${CAULDRON_SORCERY_BRANCH:-stable}"
+
+# whether to always download sorcery anew or use an already downloaded file
+# if found
+CAULDRON_FORCE_DOWNLOAD="${CAULDRON_FORCE_DOWNLOAD:-yes}"
+
+# branch of sorcery to use in the ISO
+CAULDRON_SORCERY_PKG="${CAULDRON_SORCERY_PACKAGE:-sorcery-${CAULDRON_SORCERY_BRANCH}.tar.bz2}"
+
+# URL to download sorcery from
+CAULDRON_SORCERY_URL="${CAULDRON_SORCERY_URL:-http://download.sourcemage.org/sorcery/$CAULDRON_SORCERY_PKG}";
+
+# sorcery modules location in the ISO
+CAULDRON_ISORCERY_LIBS="${CAULDRON_ISORCERY_LIBS:-$CAULDRON_BUILD/var/lib/sorcery/modules}"
+# sorcery config location in the ISO
+CAULDRON_ISORCERY_CONFIG="${CAULDRON_ISORCERY_CONFIG:-$CAULDRON_BUILD/etc/sorcery/config}"
+# sorcery local config location in the ISO
+CAULDRON_ISORCERY_LCONFIG="${CAULDRON_ISORCERY_LCONFIG:-$CAULDRON_BUILD/etc/sorcery/local/config}"
+
+# host system sorcery libraries/modules
+CAULDRON_HSORCERY_LIBS="${CAULDRON_HSORCERY_LIBS:-$CAULDRON_HOST/var/lib/sorcery/modules}"
+# host system sorcery config
+CAULDRON_HSORCERY_CONFIG="${CAULDRON_HSORCERY_CONFIG:-$CAULDRON_HOST/etc/sorcery/config}"
+# host system sorcery local config
+CAULDRON_HSORCERY_LCONFIG="${CAULDRON_HSORCERY_LCONFIG:-$CAULDRON_HOST/etc/sorcery/local/config}"
+# host system sorcery packages file (lists installed packages)
+CAULDRON_HSORCERY_PACKAGES="${CAULDRON_HSORCERY_PACKAGES:-$CAULDRON_HOST/var/state/sorcery/packages}"
+# host system sorcery spool location (where spell sources are kept)
+CAULDRON_HSORCERY_SPOOL="${CAULDRON_HSORCERY_SPOOL:-$CAULDRON_HOST/var/spool/sorcery}"
+
+# path where sorcery binaries are located
+CAULDRON_HSORCERY_PATH="${CAULDRON_SORCERY_PATH:-$CAULDRON_HOST/usr/sbin}"
+
+# vim:ai:tw=80:tabstop=2:softtabstop=2:shiftwidth=2:expandtab
diff --git a/cauldron/config/sys.conf b/cauldron/config/sys.conf
new file mode 100644
index 0000000..16fcb90
--- /dev/null
+++ b/cauldron/config/sys.conf
@@ -0,0 +1,16 @@
+#!/bin/bash
+
+# path where the installable system chroot is generated
+CAULDRON_SYS="${CAULDRON_SYS:-$CAULDRON_TMP/sys}"
+
+# file listing all the spells to compose the SYS runtime
+CAULDRON_SYS_SPELLS="${CAULDRON_SYS_SPELLS:-$CAULDRON_DATA/$CAULDRON_ARCH/sys.spells}"
+# file listing all the sources to supply in the SYS runtime
+CAULDRON_SYS_SOURCES="${CAULDRON_SYS_SOURCES:-$CAULDRON_DATA/$CAULDRON_ARCH/sys.sources}"
+# file listing all the spell caches to supply in the SYS runtime
+CAULDRON_SYS_CACHES="${CAULDRON_SYS_CACHES:-$CAULDRON_DATA/$CAULDRON_ARCH/sys.caches}"
+
+# filename of the compressed system archive that goes into the base of
+# the iso filesystem for base installation
+CAULDRON_SYS_NAME="${CAULDRON_SYS_NAME:-system.tar.bz2}"
+
diff --git a/cauldron/etc/cauldron.conf b/cauldron/etc/cauldron.conf
new file mode 100644
index 0000000..74f53e1
--- /dev/null
+++ b/cauldron/etc/cauldron.conf
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+# location where the default config files are installed
+# default location is /usr/share/smgl/cauldron/config
+CAULDRON_CONF=/usr/share/smgl/cauldron/config
+
+# load the architecture definition first
+source "$CAULDRON_CONF"/arch/x86.conf
+
+# load the default profile, providing the default config values
+source "$CAULDRON_CONF"/default.conf
+
diff --git a/cauldron/etc/config b/cauldron/etc/config
deleted file mode 100644
index 1b0dfcb..0000000
--- a/cauldron/etc/config
+++ /dev/null
@@ -1,152 +0,0 @@
-#!/bin/bash
- # the user cauldron should run as
- # make sure the user you choose has proper permissions
- # (especially for chrooting)
- CAULDRON_USER="${CAULDRON_USER:-root}"
-
- # the arch to generate the .iso for
- CAULDRON_ARCH="${CAULDRON_ARCH:-x86}"
-
- # filename of the produced .iso (should follow Cauldron naming
conventions)
- CAULDRON_ISO_NAME="${CAULDRON_ISO_NAME:-smgl-devel-$(date
+%Y%m%d).$CAULDRON_ARCH}"
- # filename of the compressed system archive that goes into the base
of
- # the iso filesystem for base installation
- CAULDRON_SYS_NAME="${CAULDRON_SYS_NAME:-system.tar.bz2}"
-
- # the version of the kernel to be used in the .iso
- # if empty, then it will default to the version in cauldron
- CAULDRON_KVERS="${CAULDRON_KVERS:-}"
-
- # whether CAULDRON_BUILD should be rm'ed after cauldron has
finished
- CAULDRON_CLEAN="${CAULDRON_CLEAN:-no}"
-
- # do we keep the uncompressed .iso file in addition to the
compressed one?
- CAULDRON_KEEPISO="${CAULDRON_KEEPISO:-yes}"
-
- # whether to use color for displaying messages
- CAULDRON_COLOR="${CAULDRON_COLOR:-yes}"
-
- # branch of sorcery to use in the ISO
- CAULDRON_SORCERY_BRANCH="${CAULDRON_SORCERY_BRANCH:-stable}"
- # whether to always download sorcery anew or use an already downloaded
file
- # if found
- CAULDRON_FORCE_DOWNLOAD="${CAULDRON_FORCE_DOWNLOAD:-yes}"
- # name of the sorcery file to download
-
CAULDRON_SORCERY_PKG="${CAULDRON_SORCERY_PACKAGE:-sorcery-${CAULDRON_SORCERY_BRANCH}.tar.bz2}"
- # URL to download sorcery from
-
CAULDRON_SORCERY_URL="${CAULDRON_SORCERY_URL:-http://download.sourcemage.org/sorcery/$CAULDRON_SORCERY_PKG}";
-
- # list of installers to include in the ISO
- CAULDRON_INSTALLERS=(
- "shell"
- # "menu"
- )
-
- # whether cauldron should try it's hardest to generate needed spell
- # caches, even if that means casting and dispelling extra spells in a
- # chroot (only used when generating the base toolchain)
- CAULDRON_AGGRESSIVE="${CAULDRON_AGGRESSIVE:-yes}"
-
-
- # path to the host system (null for normal use)
- CAULDRON_HOST="${CAULDRON_HOST:-}"
- # path to the host base library modules
- CAULDRON_BASE="${CAULDRON_BASE:-$CAULDRON_HOST/usr/share/smgl}"
- # path to the host cauldron library modules
- CAULDRON_LIBS="${CAULDRON_LIBS:-$CAULDRON_BASE/cauldron}"
- # path to Source Mage common library modules
- CAULDRON_COMMON="${CAULDRON_COMMON:-$CAULDRON_BASE/common}"
- # path to the host cauldron configs
- CAULDRON_DATA="${CAULDRON_DATA:-$CAULDRON_HOST/etc/cauldron}"
-
- # temporary files generated while cauldron does its work
- CAULDRON_TMP="${CAULDRON_TMP:-$CAULDRON_HOST/tmp/cauldron}"
- # path to the ISO build chroots
- CAULDRON_BUILD="${CAULDRON_BUILD:-$CAULDRON_TMP/build}"
- # path where the final ISO product is generated
- CAULDRON_ISO="${CAULDRON_ISO:-$CAULDRON_TMP/iso}"
- # path where the installable system chroot is generated
- CAULDRON_SYS="${CAULDRON_SYS:-$CAULDRON_TMP/sys}"
-
- # file listing all the spells needed for the build toolchain
-
CAULDRON_TOOLCHAIN="${CAULDRON_TOOLCHAIN:-$CAULDRON_DATA/$CAULDRON_ARCH/toolchain}"
-
- # kernel config used to build the kernel for the ISO
-
CAULDRON_KERN_CONF="${CAULDRON_KERN_CONF:-$CAULDRON_DATA/$CAULDRON_ARCH/kernel}"
-
- # busybox config used to build busybox for the initrd/initramfs in
the ISO
-
CAULDRON_BBOX_CONF="${CAULDRON_BBOX_CONF:-$CAULDRON_DATA/$CAULDRON_ARCH/initfs/busybox}"
-
- # file listing all the spells to compose the ISO runtime
-
CAULDRON_ISO_SPELLS="${CAULDRON_ISO_SPELLS:-$CAULDRON_DATA/$CAULDRON_ARCH/iso.spells}"
- # file listing all the sources to supply in the ISO runtime
-
CAULDRON_ISO_SOURCES="${CAULDRON_ISO_SOURCES:-$CAULDRON_DATA/$CAULDRON_ARCH/iso.sources}"
- # file listing all the spell caches to supply in the ISO runtime
-
CAULDRON_ISO_CACHES="${CAULDRON_ISO_CACHES:-$CAULDRON_DATA/$CAULDRON_ARCH/iso.caches}"
-
- # file listing all the spells to compose the SYS runtime
-
CAULDRON_SYS_SPELLS="${CAULDRON_SYS_SPELLS:-$CAULDRON_DATA/$CAULDRON_ARCH/sys.spells}"
- # file listing all the sources to supply in the SYS runtime
-
CAULDRON_SYS_SOURCES="${CAULDRON_SYS_SOURCES:-$CAULDRON_DATA/$CAULDRON_ARCH/sys.sources}"
- # file listing all the spell caches to supply in the SYS runtime
-
CAULDRON_SYS_CACHES="${CAULDRON_SYS_CACHES:-$CAULDRON_DATA/$CAULDRON_ARCH/sys.caches}"
-
- # command to enter a chroot
- CAULDRON_CHROOT_CMD=( ${CAULDRON_CHROOT_CMD[@]:-chroot} )
-
- # command to generate the final iso media
- CAULDRON_MKISO_CMD=( ${CAULDRON_MKISO_CMD[@]:-mkisofs -R
- -b isolinux/isolinux.bin
- -c isolinux/boot.cat
- -no-emul-boot
- -boot-load-size 4
- -boot-info-table
- -o "$CAULDRON_ISO_NAME"
- "$CAULDRON_ISO"
- }
- )
-
- # command to archive the sys directory
- CAULDRON_ARCHIVE_CMD=( ${CAULDRON_ARCHIVE_CMD[@]:-tar
- cf "$CAULDRON_BUILD"/"${CAULDRON_SYS_NAME%.*}"
- -C "$CAULDRON_SYS"
- }
- )
-
- # command to archive the sys directory
- CAULDRON_COMPRESS_CMD=( ${CAULDRON_COMPRESS_CMD[@]:-bzip2
- "${CAULDRON_SYS_NAME%.*}"
- }
- )
-
- # command to download a url from the internet
- CAULDRON_URL_DL_CMD=( ${CAULDRON_URL_DL_CMD[@]:-wget} )
-
- # sorcery cast/dispel/rebuild commands
-
CAULDRON_SORCERY_PATH="${CAULDRON_SORCERY_PATH:-$CAULDRON_HOST/usr/sbin}"
- CAULDRON_CAST="${CAULDRON_CAST:-$CAULDRON_SORCERY_PATH/cast}"
-
CAULDRON_DISPEL="${CAULDRON_DISPEL:-$CAULDRON_SORCERY_PATH/dispel}"
-
CAULDRON_REBUILD="${CAULDRON_REBUILD:-$CAULDRON_SORCERY_PATH/sorcery rebuild}"
-
- # sorcery modules location in the ISO
-
CAULDRON_ISORCERY_LIBS="${CAULDRON_ISORCERY_LIBS:-$CAULDRON_BUILD/var/lib/sorcery/modules}"
- # sorcery config location in the ISO
-
CAULDRON_ISORCERY_CONFIG="${CAULDRON_ISORCERY_CONFIG:-$CAULDRON_BUILD/etc/sorcery/config}"
- # sorcery local config location in the ISO
-
CAULDRON_ISORCERY_LCONFIG="${CAULDRON_ISORCERY_LCONFIG:-$CAULDRON_BUILD/etc/sorcery/local/config}"
-
-
CAULDRON_HSORCERY_LIBS="${CAULDRON_HSORCERY_LIBS:-$CAULDRON_HOST/var/lib/sorcery/modules}"
-
CAULDRON_HSORCERY_CONFIG="${CAULDRON_HSORCERY_CONFIG:-$CAULDRON_HOST/etc/sorcery/config}"
-
CAULDRON_HSORCERY_LCONFIG="${CAULDRON_HSORCERY_LCONFIG:-$CAULDRON_HOST/etc/sorcery/local/config}"
-CAULDRON_HSORCERY_PACKAGES="${CAULDRON_HSORCERY_PACKAGES:-$CAULDRON_HOST/var/state/sorcery/packages}"
-
CAULDRON_HSORCERY_SPOOL="${CAULDRON_HSORCERY_SPOOL:-$CAULDRON_HOST/var/spool/sorcery}"
-
- # contains the arch info for the HOST
- CAULDRON_HOST_TRIPLE="${CAULDRON_HOST_TRIPLE:-}"
- CAULDRON_HOST_ARCH_PATH="$(grep ARCH_SPECS= $CAULDRON_HSORCERY_CONFIG
| cut -d= -f2-)"
-
CAULDRON_HOST_CACHE_PATH="${CAULDRON_HOST_CACHE_PATH:-/var/cache/sorcery}"
- eval CAULDRON_HOST_ARCH="$(grep ARCHITECTURE=
$CAULDRON_HSORCERY_CONFIG | cut -d= -f2-)"
-eval CAULDRON_CACHE_EXTENSION="$(grep EXTENSION= $CAULDRON_HSORCERY_CONFIG |
cut -d= -f2-)"
-
-
-# vim:ai:tw=80:tabstop=2:softtabstop=2:shiftwidth=2:expandtab
diff --git a/enchantment/doc/enchantment.8 b/enchantment/doc/enchantment.8
index 57d9c2c..a70f9c9 100644
--- a/enchantment/doc/enchantment.8
+++ b/enchantment/doc/enchantment.8
@@ -213,7 +213,7 @@ A compressed archive of a pre-built spell.
.RE
.SH "ENVIRONMENT VARIABLES"

-Various enchantment commands use the following user-level environment
variables. The default value is given in square brackets ('[' and ']') after
the name of the environment variable. The default values may be
overridden/changed either on the command line in the shell, or by setting the
variable's value in the local enchantment config file
\fI/etc/enchantment/local/config\fR.
+Various enchantment commands use the following user-level environment
variables. The default value is given in square brackets ('[' and ']') after
the name of the environment variable. The default values may be
overridden/changed either on the command line in the shell, or by setting the
variable's value in the enchantment config file
\fI/etc/enchantment/enchantment.conf\fR.
.SS "Source Paths"
.PP
\fIENCHANT_ISO_PATH\fR [/]
diff --git a/enchantment/etc/config b/enchantment/etc/config
deleted file mode 100644
index 108a3fd..0000000
--- a/enchantment/etc/config
+++ /dev/null
@@ -1,97 +0,0 @@
-#!/bin/bash
-
- # path to the ISO system (this should usually be null, unless
- # you are doing some tricky hacking)
- ENCHANT_ISO_PATH="${ENCHANT_ISO_PATH:-}"
-
- # path to the enchant library modules
- ENCHANT_BASE="${ENCHANT_BASE:-$ENCHANT_ISO_PATH/var/lib/cauldron}"
- ENCHANT_LIBS="${ENCHANT_LIBS:-$ENCHANT_BASE/enchantment}"
-
- # where the installer files are located
-
ENCHANT_DATA="${ENCHANT_DATA:-$ENCHANT_ISO_PATH/usr/share/enchantment}"
- # location of the install modules (steps)
- ENCHANT_MODULES="${ENCHANT_MODULES:-$ENCHANT_DATA/modules}"
- # location of installer documentation
-
ENCHANT_DOCS="${ENCHANT_DOCS:-$ENCHANT_ISO_PATH/usr/share/doc/enchantment}"
-
- # temp directory used during the install
- ENCHANT_TMP="${ENCHANT_TMP:-$ENCHANT_ISO_PATH/tmp/enchantment}"
-
- # path where potion state data is stored
- ENCHANT_POTION="${ENCHANT_POTION:-$ENCHANT_TMP/potion}"
-
- # where the target system is mounted
- ENCHANT_TARGET="${ENCHANT_TARGET:-$ENCHANT_ISO_PATH/mnt/root}"
-
- # absolute path to the file which the kernel should be installed as
-
ENCHANT_TARGET_KERNEL="${ENCHANT_TARGET_KERNEL:-$ENCHANT_TARGET/boot/vmlinuz}"
- # path where kernel modules should be installed
- ENCHANT_TARGET_KMODS="${ENCHANT_TARGET_KMODS:-$ENCHANT_TARGET/lib/modules}"
-
-# path where spell sources will be installed
-ENCHANT_TARGET_SOURCES="${ENCHANT_TARGET_SOURCES:-$ENCHANT_TARGET/var/spool/sorcery}"
- # path where spell caches will be installed
-
ENCHANT_TARGET_CACHES="${ENCHANT_TARGET_CACHES:-$ENCHANT_TARGET/var/cache/sorcery}"
-
- # command to chroot to ENCHANT_TARGET
- ENCHANT_CHROOT="${ENCHANT_CHROOT:-$ENCHANT_ISO_PATH/bin/chroot}"
-
- # path to installable spell sources
-
ENCHANT_SPELL_SOURCES="${ENCHANT_SPELL_SOURCES:-$ENCHANT_ISO_PATH/var/spool/sorcery}"
- # path to installable spell caches (pre-built binaries)
-
ENCHANT_SPELL_CACHES="${ENCHANT_SPELL_CACHES:-$ENCHANT_ISO_PATH/var/cache/sorcery}"
- # file to hold sources selected for install
- ENCHANT_SOURCES_LIST="${ENCHANT_SOURCES_LIST:-$ENCHANT_TMP/spell-sources}"
- # file to hold caches selected for install
- ENCHANT_CACHES_LIST="${ENCHANT_CACHES_LIST:-$ENCHANT_TMP/spell-caches}"
-
- # install module (step) info
- ENCHANT_STATUS="${ENCHANT_STATUS:-$ENCHANT_TMP/current_module}"
-
- # user-selected keymap
- ENCHANT_KEYMAP="${ENCHANT_KEYMAP:-$ENCHANT_TMP/i18n-keymap}"
-
- # install module history settings
- ENCHANT_HISTORY="${ENCHANT_HISTORY:-$ENCHANT_TMP/history}"
- ENCHANT_BACK="${ENCHANT_BACK:-$ENCHANT_HISTORY/back}"
- ENCHANT_FORWARD="${ENCHANT_FORWARD:-$ENCHANT_HISTORY/forward}"
- # size of history buffers, total size = $ENCHANT_HISTORY * 2 = (back +
forward)
- ENCHANT_HISTORY_SIZE="${ENCHANT_HISTORY_SIZE:-20}"
-
- # path where potion state data is stored
- ENCHANT_HASHFUNC="${ENCHANT_HASHFUNC:-$ENCHANT_ISO_PATH/bin/sha1sum}"
-
- # path where potion state data is stored
- ENCHANT_ARCHIVE="${ENCHANT_ARCHIVE:-$ENCHANT_ISO_PATH/bin/tar}"
- # path where potion state data is stored
- ENCHANT_COMPRESS="${ENCHANT_COMPRESS:-$ENCHANT_ISO_PATH/bin/gzip}"
-
- # whether to use color for displaying messages
- ENCHANT_COLOR="${ENCHANT_COLOR:-yes}"
-
- # kernel version to use for installs
- ENCHANT_ISO_KVERS="${ENCHANT_ISO_KVERS:-$(uname -r)}"
- # kernel image to use for installs
-
ENCHANT_ISO_KERNEL="${ENCHANT_ISO_KERNEL:-$ENCHANT_ISO_PATH/boot/vmlinux}"
- # path to the kernel modules to use for the install
- ENCHANT_ISO_KMODS="${ENCHANT_ISO_KMODS:-$ENCHANT_ISO_PATH/lib/modules}"
-
-# branch of sorcery to use in the ISO
-ENCHANT_SORCERY_BRANCH="${ENCHANT_SORCERY_BRANCH:-stable}"
-
-# ISO sorcery config paths
-ENCHANT_SORCERY_CONFIG="${ENCHANT_SORCERY_CONFIG:-$ENCHANT_ISO_PATH/etc/sorcery/config}"
-
ENCHANT_SORCERY_LIBS="${ENCHANT_SORCERY_LIBS:-$ENCHANT_ISO_PATH/var/lib/sorcery/modules}"
-
-# ISO architecture/machine/host information (used to select caches when more
-# than one architecture is available for caches)
-ENCHANT_HOST_ARCH_PATH="${ENCHANT_HOST_ARCH_PATH:-$ENCHANT_ISO_PATH/usr/share/archspecs}"
- # list of archs available for install on this ISO, if undefined
set to
- # the first entry in the archs file written by cauldron at
generation
- ENCHANT_ARCH="${ENCHANT_ARCH:-$(head -n1 $ENCHANT_DATA/archs)}"
- ENCHANT_MACHTYPE="${ENCHANT_HOST_ARCH:-$MACHTYPE}"
- ENCHANT_CACHE_EXT="${ENCHANT_CACHE_EXT:-tar.bz2}"
-
-
-# vim:ai:tw=80:tabstop=2:softtabstop=2:shiftwidth=2:expandtab
diff --git a/enchantment/etc/enchantment.conf
b/enchantment/etc/enchantment.conf
new file mode 100644
index 0000000..108a3fd
--- /dev/null
+++ b/enchantment/etc/enchantment.conf
@@ -0,0 +1,97 @@
+#!/bin/bash
+
+ # path to the ISO system (this should usually be null, unless
+ # you are doing some tricky hacking)
+ ENCHANT_ISO_PATH="${ENCHANT_ISO_PATH:-}"
+
+ # path to the enchant library modules
+ ENCHANT_BASE="${ENCHANT_BASE:-$ENCHANT_ISO_PATH/var/lib/cauldron}"
+ ENCHANT_LIBS="${ENCHANT_LIBS:-$ENCHANT_BASE/enchantment}"
+
+ # where the installer files are located
+
ENCHANT_DATA="${ENCHANT_DATA:-$ENCHANT_ISO_PATH/usr/share/enchantment}"
+ # location of the install modules (steps)
+ ENCHANT_MODULES="${ENCHANT_MODULES:-$ENCHANT_DATA/modules}"
+ # location of installer documentation
+
ENCHANT_DOCS="${ENCHANT_DOCS:-$ENCHANT_ISO_PATH/usr/share/doc/enchantment}"
+
+ # temp directory used during the install
+ ENCHANT_TMP="${ENCHANT_TMP:-$ENCHANT_ISO_PATH/tmp/enchantment}"
+
+ # path where potion state data is stored
+ ENCHANT_POTION="${ENCHANT_POTION:-$ENCHANT_TMP/potion}"
+
+ # where the target system is mounted
+ ENCHANT_TARGET="${ENCHANT_TARGET:-$ENCHANT_ISO_PATH/mnt/root}"
+
+ # absolute path to the file which the kernel should be installed as
+
ENCHANT_TARGET_KERNEL="${ENCHANT_TARGET_KERNEL:-$ENCHANT_TARGET/boot/vmlinuz}"
+ # path where kernel modules should be installed
+ ENCHANT_TARGET_KMODS="${ENCHANT_TARGET_KMODS:-$ENCHANT_TARGET/lib/modules}"
+
+# path where spell sources will be installed
+ENCHANT_TARGET_SOURCES="${ENCHANT_TARGET_SOURCES:-$ENCHANT_TARGET/var/spool/sorcery}"
+ # path where spell caches will be installed
+
ENCHANT_TARGET_CACHES="${ENCHANT_TARGET_CACHES:-$ENCHANT_TARGET/var/cache/sorcery}"
+
+ # command to chroot to ENCHANT_TARGET
+ ENCHANT_CHROOT="${ENCHANT_CHROOT:-$ENCHANT_ISO_PATH/bin/chroot}"
+
+ # path to installable spell sources
+
ENCHANT_SPELL_SOURCES="${ENCHANT_SPELL_SOURCES:-$ENCHANT_ISO_PATH/var/spool/sorcery}"
+ # path to installable spell caches (pre-built binaries)
+
ENCHANT_SPELL_CACHES="${ENCHANT_SPELL_CACHES:-$ENCHANT_ISO_PATH/var/cache/sorcery}"
+ # file to hold sources selected for install
+ ENCHANT_SOURCES_LIST="${ENCHANT_SOURCES_LIST:-$ENCHANT_TMP/spell-sources}"
+ # file to hold caches selected for install
+ ENCHANT_CACHES_LIST="${ENCHANT_CACHES_LIST:-$ENCHANT_TMP/spell-caches}"
+
+ # install module (step) info
+ ENCHANT_STATUS="${ENCHANT_STATUS:-$ENCHANT_TMP/current_module}"
+
+ # user-selected keymap
+ ENCHANT_KEYMAP="${ENCHANT_KEYMAP:-$ENCHANT_TMP/i18n-keymap}"
+
+ # install module history settings
+ ENCHANT_HISTORY="${ENCHANT_HISTORY:-$ENCHANT_TMP/history}"
+ ENCHANT_BACK="${ENCHANT_BACK:-$ENCHANT_HISTORY/back}"
+ ENCHANT_FORWARD="${ENCHANT_FORWARD:-$ENCHANT_HISTORY/forward}"
+ # size of history buffers, total size = $ENCHANT_HISTORY * 2 = (back +
forward)
+ ENCHANT_HISTORY_SIZE="${ENCHANT_HISTORY_SIZE:-20}"
+
+ # path where potion state data is stored
+ ENCHANT_HASHFUNC="${ENCHANT_HASHFUNC:-$ENCHANT_ISO_PATH/bin/sha1sum}"
+
+ # path where potion state data is stored
+ ENCHANT_ARCHIVE="${ENCHANT_ARCHIVE:-$ENCHANT_ISO_PATH/bin/tar}"
+ # path where potion state data is stored
+ ENCHANT_COMPRESS="${ENCHANT_COMPRESS:-$ENCHANT_ISO_PATH/bin/gzip}"
+
+ # whether to use color for displaying messages
+ ENCHANT_COLOR="${ENCHANT_COLOR:-yes}"
+
+ # kernel version to use for installs
+ ENCHANT_ISO_KVERS="${ENCHANT_ISO_KVERS:-$(uname -r)}"
+ # kernel image to use for installs
+
ENCHANT_ISO_KERNEL="${ENCHANT_ISO_KERNEL:-$ENCHANT_ISO_PATH/boot/vmlinux}"
+ # path to the kernel modules to use for the install
+ ENCHANT_ISO_KMODS="${ENCHANT_ISO_KMODS:-$ENCHANT_ISO_PATH/lib/modules}"
+
+# branch of sorcery to use in the ISO
+ENCHANT_SORCERY_BRANCH="${ENCHANT_SORCERY_BRANCH:-stable}"
+
+# ISO sorcery config paths
+ENCHANT_SORCERY_CONFIG="${ENCHANT_SORCERY_CONFIG:-$ENCHANT_ISO_PATH/etc/sorcery/config}"
+
ENCHANT_SORCERY_LIBS="${ENCHANT_SORCERY_LIBS:-$ENCHANT_ISO_PATH/var/lib/sorcery/modules}"
+
+# ISO architecture/machine/host information (used to select caches when more
+# than one architecture is available for caches)
+ENCHANT_HOST_ARCH_PATH="${ENCHANT_HOST_ARCH_PATH:-$ENCHANT_ISO_PATH/usr/share/archspecs}"
+ # list of archs available for install on this ISO, if undefined
set to
+ # the first entry in the archs file written by cauldron at
generation
+ ENCHANT_ARCH="${ENCHANT_ARCH:-$(head -n1 $ENCHANT_DATA/archs)}"
+ ENCHANT_MACHTYPE="${ENCHANT_HOST_ARCH:-$MACHTYPE}"
+ ENCHANT_CACHE_EXT="${ENCHANT_CACHE_EXT:-tar.bz2}"
+
+
+# vim:ai:tw=80:tabstop=2:softtabstop=2:shiftwidth=2:expandtab
diff --git a/enchantment/shell/bashrc b/enchantment/shell/bashrc
index bca3877..4c7152f 100755
--- a/enchantment/shell/bashrc
+++ b/enchantment/shell/bashrc
@@ -17,7 +17,7 @@
##

#-------------------------------------------------------------------------------

-# these variables are defined the same in etc/enchantment/config
+# these variables are defined the same in etc/enchantment/enchantment.conf
# if redefined in the environment, they will be overridden for
# all enchantment scripts
ENCHANT_ISO_PATH="${ENCHANT_ISO_PATH:-}"
diff --git a/enchantment/shell/bin/enchantment
b/enchantment/shell/bin/enchantment
index 2182c51..eb1e9d0 100755
--- a/enchantment/shell/bin/enchantment
+++ b/enchantment/shell/bin/enchantment
@@ -22,8 +22,7 @@
ENCHANT_INSTALLER="shell"

# source configs and libenchantment
-. "/etc/cauldron/enchant.config"
-. "/etc/cauldron/local/enchant.config" 2> /dev/null
+. "/etc/enchantment/enchantment.config"

# load the main library (which in turn loads sub-libraries)
if ! . "$ENCHANT_LIBS/libenchantment"
diff --git a/ward/TODO b/ward/TODO
new file mode 100644
index 0000000..7de4392
--- /dev/null
+++ b/ward/TODO
@@ -0,0 +1,17 @@
+add ISO runtime/build tests
+ test for all necessary runtime spells
+ test for all necessary install caches
+ test for all necessary install sources
+ test for enchantment and enchantment init environment
+ enchantment should be smart about this itself, as long as all
+ its files are intact and present in the correct paths
+ test for presence and validity of initramfs/ramdisk
+
+add SYS build tests
+ test for kernel source availability/location/linking
+ test for all necessary runtime spells
+ test validity of SYS compiler toolchain
+ can be accomplished by compiling a very small program and
+ testing its output (for non-crossbuild cases), as well as
+ running file on the compiled binary to ensure that it is built
+ for the correct architecture
diff --git a/ward/ward-configvars b/ward/ward-configvars
index 2b60dd1..6c8a6ca 100755
--- a/ward/ward-configvars
+++ b/ward/ward-configvars
@@ -5,7 +5,7 @@
##
## This goes through all the known sources for both cauldron and
enchantment,
## scans their uses of global configurable variables (those listed in the
-## etc/config files), and ensures that they are defined in the relevant
+## etc/ config files), and ensures that they are defined in the relevant
## config files.
##
##=head1 COPYRIGHT
@@ -72,7 +72,7 @@ if [[ "$PROCESS_CAULDRON" == "yes" ]]
then
ward_get_sources "cauldron_sources"
cauldron="$WARD_PATH/../cauldron"
- c_conf="$cauldron/etc/config"
+ c_conf="$cauldron/etc/cauldron.conf"

# check cauldron files
libcolor_notice "Checking cauldron config variables"
@@ -85,7 +85,7 @@ if [[ "$PROCESS_ENCHANTMENT" == "yes" ]]
then
ward_get_sources "enchantment_sources"
enchantment="$WARD_PATH/../enchantment"
- e_conf="$enchantment/etc/config"
+ e_conf="$enchantment/etc/enchantment.conf"

# check enchantment files
libcolor_notice "Checking enchantment config variables"
diff --git a/ward/ward-functions b/ward/ward-functions
index 06c55c6..e9d90b8 100755
--- a/ward/ward-functions
+++ b/ward/ward-functions
@@ -5,7 +5,7 @@
##
## This goes through all the known sources for both cauldron and
enchantment,
## scans their uses of global configurable variables (those listed in the
-## etc/config files), and ensures that they are defined in the relevant
+## etc/ config files), and ensures that they are defined in the relevant
## config files.
##
##=head1 COPYRIGHT



  • [SM-Commit] GIT changes to master cauldron by Justin Boffemmyer (126cbc2752f61b06d0cdc626dbde0f86b8e11c32), Justin Boffemmyer, 03/25/2011

Archive powered by MHonArc 2.6.24.

Top of Page