Running catalyst with a tinderbox target with 2 pkgcache_path entries in the spec file will make it's python code fail. The tinderbox spec file from the examples have 2 pkgcache_path lines. Reproducible: Always Steps to Reproduce: 1. Get a tinderbox.spec from /usr/share/doc/catalyst-2.0.4/examples/tinderbox_template.spec and configure it to compile a package against a ready and tested stage4 target. 2. run catalyst -f tinderbox_template.spec Actual Results: The last lines of the error traceback are: Caching snapshot to /var/tmp/catalyst/snapshot_cache/20070729/ The autoresume path is /var/tmp/catalyst/tmp/supra-2007.00/.autoresume-tinderbox-pentium4-2007.00/ portage_overlay directories are set to: "/home/catalyst/projeto-supra/portage" Catalyst aborting.... Traceback (most recent call last): File "/usr/bin/catalyst", line 384, in ? build_target(addlargs, targetmap) File "/usr/bin/catalyst", line 200, in build_target mytarget=targetmap[addlargs["target"]](conf_values, addlargs) File "/usr/lib/catalyst/modules/tinderbox_target.py", line 14, in __init__ generic_stage_target.__init__(self,spec,addlargs) File "/usr/lib/catalyst/modules/generic_stage_target.py", line 181, in __init__ print "Location of the package cache is " + self.settings["pkgcache_path"] KeyError: 'pkgcache_path' Expected Results: It should have started uncompressing the stage4 into the work dir. A complete spec file to reproduce it: subarch: pentium4 version_stamp: 2007.00 target: tinderbox rel_type: supra-2007.00 profile: default-linux/x86/2007.0 snapshot: 20070729 source_subpath: supra-2007.00/stage4-pentium4-2007.00 distcc_hosts: portage_confdir: /home/catalyst/projeto-supra/portage portage_overlay: /home/catalyst/projeto-supra/portage pkgcache_path: /tmp/packages tinderbox/use: -ipv6 -X -kde -qt -qt3 -qt4 -gtk -gnome mysql sasl apache2 bzip2 gd-external gmp imap pdo-external sqlite3 sqlite jpeg png truetype xml pgsql mysqli tinderbox/packages: dev-perl/SOAP-Lite pkgcache_path: kerncache_path:
Correction: after doing a few more tests I have a more precise diagnostic. The problem was that my second pkgcache_path parameter was clean. You can have as many pkgcache_path lines as you want, as long as the last one have some dir on it.
In order to prevent this kind of problem, catalyst will now die when parsing the spec if you have duplicate keys in the spec file. I've also removed the duplicate pkgcache_path and kerncache_path entries from a few of the example specs.
This should be fixed in 2.0.5_pre4. Please test this version of catalyst (or newer) and report back if it does not work. Thanks