pungi on ia64 machine

Zhang, Yanmin yanmin_zhang at linux.intel.com
Mon Dec 4 09:14:11 UTC 2006


On Mon, 2006-12-04 at 11:29 +0800, Zhang, Yanmin wrote:
> On Sun, 2006-12-03 at 22:11 -0500, Jesse Keating wrote:
> > On Sunday 03 December 2006 20:25, Zhang, Yanmin wrote:
> > > I used below command line:
> > >
> > > pungi --comps /mnt/tmp2/tmp/repodata/comps.xml --yumconf /etc/yum.conf
> > > --destdir /mnt/tmp2/soft/pungi-0.1.0/work/iso --cachedir
> > > /mnt/tmp2/soft/pungi-0.1.0/work/cache --arch ia64 --version FedoraCore-test
> > > --discs 1
> > 
> > Perhaps I have a logic flaw.  I'll test this tomorrow with the current code 
> > base.
> target_size is always 640.0 * 1024.0 * 1024. If bin_discs==1,
> it should be 640.0 * 1024.0 * 1024 * 5.

I worked out a patch to fix it. BTW, the patch also added bootargs to create cd on ia64.

I succeeded in creating DVD and CD. But installation failed because libbdev doesn't match
rpm parted's shared object. The ia64 mkinitrd under the development tree need to be rebuilt.

Prarit,
Could you rebuild rpm mkinitrd?

Yanmin

---

diff -Nraup pungi-0.1.0/pypungi/pungi.py pungi-0.1.0_fix/pypungi/pungi.py
--- pungi-0.1.0/pypungi/pungi.py	2006-11-09 09:35:39.000000000 +0800
+++ pungi-0.1.0_fix/pypungi/pungi.py	2006-12-04 08:55:40.000000000 +0800
@@ -51,6 +51,9 @@ class Pungi:
         timber.product_path = self.prodpath
         #timber.reserve_size =  
 
+        if timber.bin_discs == 1:
+            timber.target_size = timber.target_size*5
+
         output = timber.main()
         for line in output:
             print line
@@ -68,27 +71,7 @@ class Pungi:
         bootargs = ''
         isodir = os.path.join(self.opts.destdir, self.opts.version, self.opts.arch, 'iso')
         os.makedirs(isodir)
-        for disc in range(1, self.opts.discs + 1): # cycle through the CD isos
-            volname = '"%s %s %s Disc %s"' % ('Fedora', self.opts.version, self.opts.arch, disc) # hacky :/
-            isoname = 'Fedora-%s-%s-disc%s.iso' % (self.opts.version, self.opts.arch, disc)
-            if disc == 1: # if this is the first disc, we want to set boot flags
-                if self.opts.arch == 'i386' or self.opts.arch == 'x86_64':
-                    bootargs = '-b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table'
-                elif self.opts.arch == 'ppc':
-                    # Boy, it would be nice if somebody who understood ppc helped out here...
-                    bootargs = ''
-            else:
-                bootargs = '' # clear out any existing bootargs
-
-            os.system('mkisofs %s %s %s -o %s/%s %s' % (mkisofsargs,
-                                                        volname,
-                                                        bootargs,
-                                                        isodir,
-                                                        isoname,
-                                                        os.path.join('%s-disc%s' % (self.topdir, disc))))
-            os.system('cd %s; sha1sum %s >> SHA1SUM' % (isodir, isoname))
-
-        if self.opts.discs > 1: # We've asked for more than one disc, make a DVD image
+        if self.opts.discs == 1: # make a DVD image
             # backup the main .discinfo to use a split one.  This is an ugly hack :/
             content = open(discinfofile, 'r').readlines()
             shutil.move(discinfofile, os.path.join(self.opts.destdir, '.discinfo-%s' % self.opts.arch))
@@ -104,6 +87,8 @@ class Pungi:
             isoname = 'Fedora-%s-%s-DVD.iso' % (self.opts.version, self.opts.arch)
             if self.opts.arch == 'i386' or self.opts.arch == 'x86_64':
                 bootargs = '-b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table'
+            elif self.opts.arch == 'ia64':
+                    bootargs = '-b images/boot.img -no-emul-boot'
             elif self.opts.arch == 'ppc':
                 # Boy, it would be nice if somebody who understood ppc helped out here...
                 bootargs = ''
@@ -120,7 +105,28 @@ class Pungi:
 
             os.unlink(os.path.join(self.topdir, 'repodata')) # remove our temp symlink and move the orig repodata back
             shutil.move(os.path.join(self.opts.destdir, 'repodata-%s' % self.opts.arch), os.path.join(self.topdir, 'repodata'))
-
+        else: # We've asked for more than one disc
+            for disc in range(1, self.opts.discs + 1): # cycle through the CD isos
+                volname = '"%s %s %s Disc %s"' % ('Fedora', self.opts.version, self.opts.arch, disc) # hacky :/
+                isoname = 'Fedora-%s-%s-disc%s.iso' % (self.opts.version, self.opts.arch, disc)
+                if disc == 1: # if this is the first disc, we want to set boot flags
+                    if self.opts.arch == 'i386' or self.opts.arch == 'x86_64':
+                        bootargs = '-b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table'
+                    elif self.opts.arch == 'ia64':
+                        bootargs = '-b images/boot.img -no-emul-boot'
+                    elif self.opts.arch == 'ppc':
+                        # Boy, it would be nice if somebody who understood ppc helped out here...
+                        bootargs = ''
+                else:
+                    bootargs = '' # clear out any existing bootargs
+    
+                os.system('mkisofs %s %s %s -o %s/%s %s' % (mkisofsargs,
+                                                            volname,
+                                                            bootargs,
+                                                            isodir,
+                                                            isoname,
+                                                            os.path.join('%s-disc%s' % (self.topdir, disc))))
+                os.system('cd %s; sha1sum %s >> SHA1SUM' % (isodir, isoname))
 
 def main():
 # This is used for testing the module




More information about the Fedora-buildsys-list mailing list