kadischi/livecd_generator kadischi.py,1.27,1.28

Jasper O'neal Hartline (autopsy) fedora-extras-commits at redhat.com
Tue Jul 4 20:56:09 UTC 2006


Author: autopsy

Update of /cvs/devel/kadischi/livecd_generator
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv13411/kadischi/livecd_generator

Modified Files:
	kadischi.py 
Log Message:
Eliminate get_kernel_version(), use make_initrds() instead


Index: kadischi.py
===================================================================
RCS file: /cvs/devel/kadischi/livecd_generator/kadischi.py,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- kadischi.py	4 Jul 2006 16:45:44 -0000	1.27
+++ kadischi.py	4 Jul 2006 20:56:07 -0000	1.28
@@ -105,7 +105,7 @@
 
     # run post_install_scripts
     print "[kadischi]: running post installation scripts"
-    run_scripts(sysdir, anaconda_args)
+    run_scripts(sysdir, bindir, anaconda_args)
 
     ### Calculate size of result ISO image by known ratios for SquashFS (anywhere from 2.5 to 2.7)
     size = 0
@@ -125,28 +125,7 @@
 
     # make initrd image and pickup kernel version cause when we move files arround, it will be late
     print "[kadischi]: making initrd image"
-    kernel_smp = (['kernel-smp'])
-    kernel = (['kernel'])
-    has_no_kernel_smp = check_installed_rpms(sysdir, kernel_smp, False)
-    has_no_kernel = check_installed_rpms(sysdir, kernel, False)
-
-    kernel_version = get_kernel_version (sysdir)
-    kernel_version_smp = string.join([kernel_version, 'smp'], '')
-    mkinit = normalize_path([bindir, 'livecd-mkinitrd.sh'])
-    if has_no_kernel and has_no_kernel_smp:
-        print "[kadischi]: Couldnt determine the kernel versions, bailing!"
-        sys.exit(1)
-    elif has_no_kernel and not has_no_kernel_smp:
-        string.split(kernel_version, 'smp')
-        string.join([kernel_version, 'smp'], '')
-        args = [mkinit, sysdir, kernel_version_smp]
-    elif not has_no_kernel and not has_no_kernel_smp:
-        args = [mkinit, sysdir, kernel_version]
-        args = [mkinit, sysdir, kernel_version_smp]
-        execute (args)
-    else:
-        args = [mkinit, sysdir, kernel_version]
-        execute (args)
+    make_initrds(sysdir, bindir)
 
     # move files
     print "[kadischi]: moving files that should be on tmpfs"
@@ -288,7 +267,7 @@
     shutil.copy2 (buildstamp, '/tmp/product/.buildstamp')
 
 
-def run_scripts(sysdir, anaconda_args):
+def run_scripts(sysdir, bindir, anaconda_args):
     scripts = []
     args = ('%s' % anaconda_args)
     for file in os.listdir(postscriptdir):
@@ -300,11 +279,62 @@
             scripts.append(f)
     scripts.sort()
     for s in scripts:
-        rc = subprocess.call([s, sysdir, args])
+        rc = subprocess.call([s, sysdir, bindir, args]) 
         if rc != 0:
             logging.warn("script %s exited abnormally" %(os.path.basename(s),))
 
 
+def make_initrds(sysdir, bindir):
+    clear_rpm_db_files(sysdir)
+    ts = rpm.TransactionSet(sysdir)
+    kernel = None
+    kernel_smp = None
+    if isys.smpAvailable() or isys.htavailable():
+        for mi in ts.dbMatch():
+            if mi in ts.dbMatch('name', 'kernel'):
+                kernel = "%s-%s" % (mi['version'], mi['release'])
+            if mi in ts.dbMatch('name', 'kernel-smp'):
+                kernel_smp = "%s-%s" % (mi['version'], mi['release']) + 'smp'
+
+        if kernel != None and kernel_smp != None:
+            kernel = "%s-%s" % (mi['version'], mi['release'])
+            kernel_smp = "%s-%s" % (mi['version'], mi['release']) + 'smp'
+            os.system("%s/livecd-mkinitrd.sh %s %s" % (bindir, sysdir, kernel))
+            os.system("%s/livecd-mkinitrd.sh %s %s" % (bindir, sysdir, kernel_smp))
+        elif kernel != None and kernel_smp == None:
+            kernel = "%s-%s" % (mi['version'], mi['release'])
+            os.system("%s/livecd-mkinitrd.sh %s %s" % (bindir, sysdir, kernel))
+        elif kernel == None and kernel_smp != None:
+            kernel_smp = "%s-%s" % (mi['version'], mi['release']) + 'smp'
+            os.system("%s/livecd-mkinitrd.sh %s %s" % (bindir, sysdir, kernel_smp))
+        else:
+            print >> sys.stderr, "\n\nCouldn't determine kernel version!"
+            sys.exit(1)
+    else:
+        for mi in ts.dbMatch():
+            if mi in ts.dbMatch('name', 'kernel'):
+                kernel = "%s-%s" % (mi['version'], mi['release'])
+            for mi in ts.dbMatch('name', 'kernel-smp'):
+                kernel_smp = "%s-%s" % (mi['version'], mi['release']) + 'smp'
+
+        if kernel != None and kernel_smp != None:
+            kernel = "%s-%s" % (mi['version'], mi['release'])
+            kernel_smp = "%s-%s" % (mi['version'], mi['release']) + 'smp'
+            os.system("%s/livecd-mkinitrd.sh %s %s" % (bindir, sysdir, kernel))
+            os.system("%s/livecd-mkinitrd.sh %s %s" % (bindir, sysdir, kernel_smp))
+        elif kernel != None and kernel_smp == None:
+            kernel = "%s-%s" % (mi['version'], mi['release'])
+            os.system("%s/livecd-mkinitrd.sh %s %s" % (bindir, sysdir, kernel))
+        elif kernel == None and kernel_smp != None:
+            kernel_smp = "%s-%s" % (mi['version'], mi['release']) + 'smp'
+            os.system("%s/livecd-mkinitrd.sh %s %s" % (bindir, sysdir, kernel_smp))
+        else:
+            print >> sys.stderr, "\n\nCouldn't determine kernel version!"
+            sys.exit(1)
+
+    clear_rpm_db_files(sysdir)
+
+
 def execute (args):
     if not os.access(args[0], os.X_OK):
         print "unable to access", args[0]




More information about the fedora-extras-commits mailing list