diff -Naur livecd.git.20070724/creator/livecd-creator livecd/creator/livecd-creator
--- livecd.git.20070724/creator/livecd-creator	2007-07-25 01:23:24.000000000 +0000
+++ livecd/creator/livecd-creator	2007-07-25 22:56:05.000000000 +0000
@@ -287,12 +287,14 @@
         return self.runTransaction(cb)
 
 class InstallationTarget:
-    def __init__(self, repos, packages, epackages, groups, fs_label, skip_compression, skip_prelink,tmpdir):
+    def __init__(self, repos, packages, epackages, groups, addsdirs, addidirs, fs_label, skip_compression, skip_prelink,tmpdir):
         self.ayum = None
         self.repos = repos
         self.packages = packages
         self.epackages = epackages
         self.groups = groups
+        self.addsdirs = addsdirs
+        self.addidirs = addidirs
         self.fs_label = fs_label
         self.skip_compression = skip_compression
         self.skip_prelink = skip_prelink
@@ -789,6 +791,16 @@
         for f in ("/sbin/mayflower", "/etc/mayflower.conf"):
             os.unlink("%s/install_root/%s" %(self.build_dir, f))
 
+    def addUserSystemDirs(self):
+        for dir in self.addsdirs:
+            if not os.path.isdir(dir):
+                raise InstallationError("User addsdir=%s not found" %(dir,))
+            for name in os.listdir(dir):
+                rc = subprocess.call(["/bin/cp", "-av", dir + "/" + name,
+                                      "%s/install_root/" %(self.build_dir,)])
+                if rc != 0:
+                    raise InstallationError("User addsdir=%s entry %s failed to copy" %(dir,name))            
+            
     def relabelSystem(self):
         # finally relabel all files
         if self.ksparser.handler.selinux.selinux:
@@ -899,12 +911,23 @@
         except Exception, e: #FIXME: we should be a little bit more fine-grained
             raise InstallationError("Error configuring live image: %s" %(e,))
         self.configureNetwork()
+        self.addUserSystemDirs()
         self.relabelSystem()
         if not self.skip_prelink:
             self.prelinkSystem()
         self.createInitramfs()
         self.configureBootloader()
 
+    def addUserIsoDirs(self):
+        for dir in self.addidirs:
+            if not os.path.isdir(dir):
+                raise InstallationError("User addidir=%s not found" %(dir,))
+            for name in os.listdir(dir):
+                rc = subprocess.call(["/bin/cp", "-av", dir + "/" + name,
+                                      "%s/out/" %(self.build_dir,)])
+                if rc != 0:
+                    raise InstallationError("User addidir=%s entry %s failed to copy" %(dir,name))
+                
     def createIso(self):
         """write out the live CD ISO"""
         subprocess.call(["/usr/bin/mkisofs", "-o", "%s.iso" %(self.fs_label,),
@@ -987,6 +1010,7 @@
 
     def package(self):
         self.createSquashFS()
+        self.addUserIsoDirs()
         self.createIso()
 
 def usage(out):
@@ -996,6 +1020,8 @@
                       [--repo=<name1>,<url1>] [--repo=<name2>,<url2> ...]
                       [--package=<p1>] [--package=<p2> ...]
                       [--exclude-package=<e1>] [--exclude-package=<e2> ...]
+                      [--addsdir=<path-to-extra-data-dir>]
+                      [--addidir=<path-to-extra-data-dir>]
                       [--base-on=<path-to-iso-file>]
                       [--fslabel=<label>]
                       [--skip-compression]
@@ -1009,6 +1035,8 @@
  --repo              : Add / override yum repository
  --package           : Include this package
  --exclude-package   : Exclude this package
+ --addsdir           : Add the contents of a directory to the target sysrootfs
+ --addidir           : Add the contents of a directory to the target isofs
  --base-on           : Add packages to an existing live CD iso9660 image
  --fslabel           : File system label (default: livecd-YYYYMMDD-HHMI)
  --skip-compression  : Don't compress the image
@@ -1039,6 +1067,8 @@
         self.packages = []
         self.groups = []
         self.epackages = []
+        self.addsdirs = []
+        self.addidirs = []
         self.fs_label = "livecd-" + time.strftime("%Y%m%d-%H%M")
         self.base_on = None
         self.kscfg = None
@@ -1056,7 +1086,8 @@
                                     "exclude-package=", "fslabel=", "config=",
                                     "skip-compression", "uncompressed-size=",
                                     "ignore-deleted", "shell", "no-prelink",
-                                    "prelink", "tmpdir="])
+                                    "prelink", "tmpdir=", "addsdir=",
+                                    "addidir="])
 
     except getopt.GetoptError, msg:
         raise Usage(msg)
@@ -1105,6 +1136,12 @@
         if o in ("-e", "--exclude-package"):
             options.epackages.append(a)
             continue
+        if o in ("--addsdir"):
+            options.addsdirs.append(a)
+            continue
+        if o in ("--addidir"):
+            options.addidirs.append(a)
+            continue
         if o in ("-f", "--fslabel"):
             options.fs_label = a
             if len(options.fs_label) > 32:
@@ -1151,6 +1188,8 @@
                                 options.packages,
                                 options.epackages,
                                 options.groups,
+                                options.addsdirs,
+                                options.addidirs,
                                 options.fs_label,
                                 options.skip_compression,
                                 options.skip_prelink,
