I used pungi on ia64 to try to build CD/DVD images for the FC development tree, and ran into a couple of issues.
1) I used the mirrors/fedora/linux/core/development/ia64/os/repodata/comps.xml. Got below error:
/mnt/tmp2/soft/pungi-0.1.0/work/iso/FedoraCore-test/ia64/os/buildinstall.tree.1229 /mnt/tmp2/soft/pungi-0.1 .0/work rpm2cpio: /mnt/tmp2/soft/pungi-0.1.0/work/iso/FedoraCore-test/ia64/os/Fedora/anaconda-runtime-[0-9]*: No su ch file or directory cpio: premature end of archive /mnt/tmp2/soft/pungi-0.1.0/work
So anaconda and anaconda-runtime were missed. I changed the comps.xml manually by adding anaconda and anaconda-runtime into base group. The issue disappeared.
2) Then, restarted pungi, but got below error: Wrote /mnt/tmp2/soft/pungi-0.1.0/work/iso/FedoraCore-test/ia64/os/images/stage2.img (94676k) Writing .discinfo file timestamp not specified; using the current time ** Message: sqlite cache needs updating, reading in metadata ** Message: sqlite cache needs updating, reading in metadata du: cannot access `/mnt/tmp2/soft/pungi-0.1.0/work/iso/FedoraCore-test/ia64/os-disc0': No such file or directory Traceback (most recent call last): File "/usr/bin/pungi", line 100, in ? main() File "/usr/bin/pungi", line 47, in main mypungi.doSplittree() File "/usr/lib/python2.4/site-packages/pypungi/pungi.py", line 54, in doSplittree output = timber.main() File "/usr/lib/python2.4/site-packages/pypungi/splittree.py", line 394, in main self.splitRPMS() File "/usr/lib/python2.4/site-packages/pypungi/splittree.py", line 301, in splitRPMS curused = self.getSize("%s-disc%s" % (self.dist_dir, disc), blocksize=1) File "/usr/lib/python2.4/site-packages/pypungi/splittree.py", line 113, in getSize thesize = long(string.split(thesize)[0]) IndexError: list index out of range
Yanmin
On Friday 01 December 2006 04:17, Zhang, Yanmin wrote:
du: cannot access `/mnt/tmp2/soft/pungi-0.1.0/work/iso/FedoraCore-test/ia64/os-disc0': No such file or directory
Hurray! An ia64 user! I honestly haven't tried it at all on that platform, and I'm pretty sure that mkisofs calls are going to fail as I haven't put in ia64 specific boot args.
The above error is very strange. How many CDs did you ask for? I could have sworn I have code in place to never create a disc0, but start with disc1.
On Fri, 2006-12-01 at 08:24 -0500, Jesse Keating wrote:
On Friday 01 December 2006 04:17, Zhang, Yanmin wrote:
du: cannot access `/mnt/tmp2/soft/pungi-0.1.0/work/iso/FedoraCore-test/ia64/os-disc0': No such file or directory
Hurray! An ia64 user! I honestly haven't tried it at all on that platform, and I'm pretty sure that mkisofs calls are going to fail as I haven't put in ia64 specific boot args.
Thanks. I work with Prarit to push all tools to keep ia64 in the loop.
The above error is very strange. How many CDs did you ask for?
1 CD.
I could have sworn I have code in place to never create a disc0, but start with disc1.
On Mon, 2006-12-04 at 08:48 +0800, Zhang, Yanmin wrote:
On Fri, 2006-12-01 at 08:24 -0500, Jesse Keating wrote:
On Friday 01 December 2006 04:17, Zhang, Yanmin wrote:
du: cannot access `/mnt/tmp2/soft/pungi-0.1.0/work/iso/FedoraCore-test/ia64/os-disc0': No such file or directory
Hurray! An ia64 user! I honestly haven't tried it at all on that platform, and I'm pretty sure that mkisofs calls are going to fail as I haven't put in ia64 specific boot args.
Thanks. I work with Prarit to push all tools to keep ia64 in the loop.
The above error is very strange. How many CDs did you ask for?
1 CD.
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
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.
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.
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
On Monday 04 December 2006 04:14, Zhang, Yanmin wrote:
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.
I'll take the boot args part of the patch, but the rest isn't quite right I don't think. If you have more content than will fit on a single CD, you need to ask for multiple CDs. You'll automatically get a DVD image too. If you only have enough content for one CD, there is no point to making a DVD image as well, the CD image doubles as a DVD image.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Jesse Keating wrote:
I'll take the boot args part of the patch, but the rest isn't quite
right I
don't think. If you have more content than will fit on a single CD,
you need
to ask for multiple CDs. You'll automatically get a DVD image too. If
you
only have enough content for one CD, there is no point to making a DVD
image
as well, the CD image doubles as a DVD image.
I would need to take a look at the latest source code to be sure, but I can't at this moment...
If you only have enough content for one CD, is pungi still labeling the CD as 'disc1'? If you let the CD image also be the DVD image, does that have the 'disc1' label too?
Also, spinning the DVD automatically if the content is spanned over more then one CD seems like something that can be made optional.
Kind regards,
Jeroen van Meeuwen - -kanarip
On Monday 04 December 2006 09:41, Jeroen van Meeuwen wrote:
I would need to take a look at the latest source code to be sure, but I can't at this moment...
If you only have enough content for one CD, is pungi still labeling the CD as 'disc1'? If you let the CD image also be the DVD image, does that have the 'disc1' label too?
Yes, because there is zero difference between a CD image and a DVD image. For now, I'd rather not change what the name of the iso would be depending on how many are spun, maybe later if there is compelling reasons. The iso can always be "mv'd" to whatever you want.
Also, spinning the DVD automatically if the content is spanned over more then one CD seems like something that can be made optional.
Sure, I plan for it to be a config option. Settable in a config file, defaulting to on in the code.
On Mon, 2006-12-04 at 09:12 -0500, Jesse Keating wrote:
On Monday 04 December 2006 04:14, Zhang, Yanmin wrote:
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.
I'll take the boot args part of the patch, but the rest isn't quite right I don't think. If you have more content than will fit on a single CD, you need to ask for multiple CDs. You'll automatically get a DVD image too. If you only have enough content for one CD, there is no point to making a DVD image as well, the CD image doubles as a DVD image.
Thanks. Prior to pungi, I used one old scripts to build images on ia64 and still thought in the old way.
Yanmin
On Tue, 2006-12-05 at 09:35 +0800, Zhang, Yanmin wrote:
On Mon, 2006-12-04 at 09:12 -0500, Jesse Keating wrote:
On Monday 04 December 2006 04:14, Zhang, Yanmin wrote:
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.
I'll take the boot args part of the patch, but the rest isn't quite right I don't think. If you have more content than will fit on a single CD, you need to ask for multiple CDs. You'll automatically get a DVD image too. If you only have enough content for one CD, there is no point to making a DVD image as well, the CD image doubles as a DVD image.
Thanks. Prior to pungi, I used one old scripts to build images on ia64 and still thought in the old way.
I created new CD images and got below errors in /root/install.log when installing by the new CD images. And the installation hanged at creat bootloader.
Yanmin
--- error: %post(libxml2-2.6.27-1.ia64) scriptlet failed, exit status 255 Installing popt - 1.10.2-36.fc7.ia64 Installing libICE - 1.0.2-1.ia64 Installing libSM - 1.0.2-1.ia64 Installing info - 4.8-14.fc7.ia64 error: %post(info-4.8-14.fc7.ia64) scriptlet failed, exit status 255 Installing libstdc++ - 4.1.1-39.ia64 Installing audit-libs - 1.2.9-1.fc7.ia64 Installing desktop-file-utils - 0.11-4.fc7.ia64 error: %post(desktop-file-utils-0.11-4.fc7.ia64) scriptlet failed, exit status 255 Installing libsepol - 1.15.2-1.ia64 error: %post(libsepol-1.15.2-1.ia64) scriptlet failed, exit status 255 Installing libselinux - 1.33.1-1.ia64 error: %post(libselinux-1.33.1-1.ia64) scriptlet failed, exit status 255 Installing coreutils - 5.97-14.fc7.ia64 error: %pre(coreutils-5.97-14.fc7.ia64) scriptlet failed, exit status 255 error: install: %pre scriptlet failed (2), skipping coreutils-5.97-14.fc7
On Tuesday 05 December 2006 22:14, Zhang, Yanmin wrote:
I created new CD images and got below errors in /root/install.log when installing by the new CD images. And the installation hanged at creat bootloader.
Sounds like some package is missing. Isn't available during the %post of these commands. Check whats in the post of libxml2-2.6.27-1.ia64 and what might be missing. Perhaps something is ExcludeArch: ia64 that shouldn't be.
On Wed, 2006-12-06 at 00:11 -0500, Jesse Keating wrote:
On Tuesday 05 December 2006 22:14, Zhang, Yanmin wrote:
I created new CD images and got below errors in /root/install.log when installing by the new CD images. And the installation hanged at creat bootloader.
Sounds like some package is missing. Isn't available during the %post of these commands. Check whats in the post of libxml2-2.6.27-1.ia64 and what might be missing. Perhaps something is ExcludeArch: ia64 that shouldn't be.
It looks like rpm bash was missing. I checked iso/7-test1/ia64/os and iso/7-test1/ia64/os-discX. There is no rpm bash under os-discX, but it is under os.
Thanks, Yanmin
On Wed, 2006-12-06 at 13:18 +0800, Zhang, Yanmin wrote:
On Wed, 2006-12-06 at 00:11 -0500, Jesse Keating wrote:
On Tuesday 05 December 2006 22:14, Zhang, Yanmin wrote:
I created new CD images and got below errors in /root/install.log when installing by the new CD images. And the installation hanged at creat bootloader.
Sounds like some package is missing. Isn't available during the %post of these commands. Check whats in the post of libxml2-2.6.27-1.ia64 and what might be missing. Perhaps something is ExcludeArch: ia64 that shouldn't be.
It looks like rpm bash was missing. I checked iso/7-test1/ia64/os and iso/7-test1/ia64/os-discX. There is no rpm bash under os-discX, but it is under os.
I checked iso/pkgorder-ia64. It didn't have bash. I retried pkgorder manually, the output still didn't include bash. Then, I move all rpm from Fedora to Fedora/RPMS, and reran pkgorder. The new result had bash.
Yanmin
On Wednesday 06 December 2006 04:24, Zhang, Yanmin wrote:
I checked iso/pkgorder-ia64. It didn't have bash. I retried pkgorder manually, the output still didn't include bash. Then, I move all rpm from Fedora to Fedora/RPMS, and reran pkgorder. The new result had bash.
Interesting. Sounds like maybe anaconda in FC6 isn't quite setup to handle things under Fedora/ rather than Fedora/RPMS. I'll talk with the anaconda folks. Unfortunately I haven't been able to duplicate this when spinning x86_64 releases.
On Wed, 2006-12-06 at 11:20 -0500, Jesse Keating wrote:
On Wednesday 06 December 2006 04:24, Zhang, Yanmin wrote:
I checked iso/pkgorder-ia64. It didn't have bash. I retried pkgorder manually, the output still didn't include bash. Then, I move all rpm from Fedora to Fedora/RPMS, and reran pkgorder. The new result had bash.
Interesting. Sounds like maybe anaconda in FC6 isn't quite setup to handle things under Fedora/ rather than Fedora/RPMS. I'll talk with the anaconda folks. Unfortunately I haven't been able to duplicate this when spinning x86_64 releases.
After moving RPM files to Fedora/RPMS, the pkgorder result is correct, and directory os-disc1/Fedora/RPMS also has rpm bash, but the installation from the new images still reports lots of %post and %pre errors.
/root/install.log showed anaconda didn't follow the sequence produced by pkgorder to install rpms. I checked os-disc1/repodata/primary.xml.gz and the rpm sequence was exatcly the same sequence of pkgorder.
Yanmin
-- Fedora-buildsys-list mailing list Fedora-buildsys-list@redhat.com https://www.redhat.com/mailman/listinfo/fedora-buildsys-list
On Wednesday 06 December 2006 22:13, Zhang, Yanmin wrote:
/root/install.log showed anaconda didn't follow the sequence produced by pkgorder to install rpms. I checked os-disc1/repodata/primary.xml.gz and the rpm sequence was exatcly the same sequence of pkgorder.
Hrm, this is starting to sound like an anaconda problem. I'd bring this thread up on an anconda user's list, or maybe fedora-devel list.
On Thu, 2006-12-07 at 10:28 -0500, Jesse Keating wrote:
On Wednesday 06 December 2006 22:13, Zhang, Yanmin wrote:
/root/install.log showed anaconda didn't follow the sequence produced by pkgorder to install rpms. I checked os-disc1/repodata/primary.xml.gz and the rpm sequence was exatcly the same sequence of pkgorder.
Hrm, this is starting to sound like an anaconda problem. I'd bring this thread up on an anconda user's list, or maybe fedora-devel list.
Thanks for helping push it!
Yanmin
Zhang, Yanmin wrote:
On Thu, 2006-12-07 at 10:28 -0500, Jesse Keating wrote:
On Wednesday 06 December 2006 22:13, Zhang, Yanmin wrote:
/root/install.log showed anaconda didn't follow the sequence produced by pkgorder to install rpms. I checked os-disc1/repodata/primary.xml.gz and the rpm sequence was exatcly the same sequence of pkgorder.
Hrm, this is starting to sound like an anaconda problem. I'd bring this thread up on an anconda user's list, or maybe fedora-devel list.
Thanks for helping push it!
Looks like this: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=206211
-Jeff
On Sat, 2007-01-13 at 01:16 -0300, jeff wrote:
Zhang, Yanmin wrote:
On Thu, 2006-12-07 at 10:28 -0500, Jesse Keating wrote:
On Wednesday 06 December 2006 22:13, Zhang, Yanmin wrote:
/root/install.log showed anaconda didn't follow the sequence produced by pkgorder to install rpms. I checked os-disc1/repodata/primary.xml.gz and the rpm sequence was exatcly the same sequence of pkgorder.
Hrm, this is starting to sound like an anaconda problem. I'd bring this thread up on an anconda user's list, or maybe fedora-devel list.
Thanks for helping push it!
Looks like this: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=206211
Yes. I reported it at https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=219449.
Now it has other issues. I am debugging.
Yanmin
On Sunday 03 December 2006 22:29, Zhang, Yanmin wrote:
target_size is always 640.0 * 1024.0 * 1024. If bin_discs==1, it should be 640.0 * 1024.0 * 1024 * 5.
I think you're not quite understanding what target_size is accomplishing. This is for the splitting of CDs. The burning of the DVD happens later, from the exploaded tree directory that is used to make the splits. With pungi, if you ask for more CDs than 1, you get a DVD automagically as well. If you only have enough content for one CD (and you won't spill over size) then there is no point in making a DVD as the CD iso can be used on a DVD too.
buildsys@lists.fedoraproject.org