catalyst 1.1.19 Python 2.3.5 Gentoo Linux 2005.0 x86/Pentium 4 I'm making a slightly modified 2005.0 x86 LiveCD. livecd-stage1 builds fine. livecd-stage2 starts but eventually bombs out with a Python error: [...] Running action sequence: setup_environment Running action sequence: run_local cleaning previous livecd-stage2 build Running command "rm -rf /var/tmp/catalyst/builds/default/livecd-stage2-x86-20050501" Running command "cp /tmp/2.6.11-smp.config /var/tmp/catalyst/tmp/default/livecd-stage2-x86-20050501/var/tmp/gentoo.config" Traceback (most recent call last): File "/usr/X11R6/bin/catalyst", line 291, in ? build_target(addlargs, targetmap) File "/usr/X11R6/bin/catalyst", line 171, in build_target mytarget.run() File "/usr/lib/catalyst/modules/generic_stage_target.py", line 424, in run apply(getattr(self,x)) File "/usr/lib/catalyst/modules/livecd_stage2_target.py", line 309, in run_local self.build_kernel() File "/usr/lib/catalyst/modules/livecd_stage2_target.py", line 293, in build_kernel cmd("/bin/bash "+self.settings["livecd/runscript"]+" kernel "+list_bashify(args),\ File "/usr/lib/catalyst/modules/catalyst_support.py", line 37, in list_bashify mypack[x]="'"+mypack[x]+"'" TypeError: cannot concatenate 'str' and 'list' objects The stage2 build then crashes at that point. It would seem Python is unhappy about trying to use two different object types in a concatenation assignment -- seems to me like you'd want to force typing (i.e. typecast) of either the str or list object to conform so that concatention succeeds? Alas, I know almost zip about Python, so no code suggestion. I'd defer to someone who knows Python better. I don't think it's my config; however, will be attached momentarily, sans comments. Reproducible: Always Steps to Reproduce: 1. # catalyst -f livecd-stage2.spec 2. 3. Actual Results: Crashed to the CLI # prompt. Expected Results: Continued with the stage2 build and eventually produce an ISO9660 image. Portage 2.0.51.19 (default-linux/x86/2005.0, gcc-3.3.5, glibc-2.3.4.20040808-r1, 2.6.11-gentoo-r4-skas3-v8-rc5 i686) ================================================================= System uname: 2.6.11-gentoo-r4-skas3-v8-rc5 i686 Intel(R) Pentium(R) 4 CPU 3.00GHz Gentoo Base System version 1.4.16 Python: dev-lang/python-2.3.4-r1 [2.3.4 (#1, Mar 10 2005, 20:47:05)] ccache version 2.3 [enabled] dev-lang/python: 2.3.4-r1 sys-apps/sandbox: [Not Present] sys-devel/autoconf: 2.59-r6, 2.13 sys-devel/automake: 1.7.9-r1, 1.8.5-r3, 1.5, 1.4_p6, 1.6.3, 1.9.4 sys-devel/binutils: 2.15.92.0.2-r1 sys-devel/libtool: 1.5.10-r4 virtual/os-headers: 2.6.8.1-r2 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-O2 -mcpu=i686 -fomit-frame-pointer" CHOST="i386-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/alias /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O2 -mcpu=i686 -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs autoconfig ccache distlocks sandbox sfperms strict" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="x86 X alsa apm arts avi berkdb bitmap-fonts crypt cups emboss encode foomaticdb fortran gdbm gif gnome gpm gtk gtk2 guile imlib ipv6 jpeg kde libg++ libwww mad mikmod motif mp3 mpeg ncurses nls oggvorbis opengl oss pam pdflib perl png python qt quicktime readline sdl slang spell ssl svga tcpd truetype truetype-fonts type1-fonts xml2 xmms xv zlib" Unset: ASFLAGS, CBUILD, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTDIR_OVERLAY
Created attachment 57770 [details] My LiveCD Stage 2 specfile
Created attachment 57771 [details] emerge info output
Created attachment 57772 [details] Stack trace of Python crashing in Catalyst stage 2 processing
Created attachment 57774 [details, diff] Proposed patch for /usr/lib/catalyst/modules/catalyst_support.py This shoehorns the list into a string type so that concatenation will succeed. Catalyst build succeeds with this modification. Note: this is against Catalyst 1.1.9.
Please close this 'bug'. It appears that I had some optional options in the spec file set to no value, which got propagated into Python via Catalyst, and broke stuff. Removing all options without a value set in the .spec file seems to have taken care of that. While I might posit this is perhaps (no offense) some missing defensive programming in the code, it's not an actual bug per se -- perhaps better done as a RFE (request for enhancement) or documentation improvement request. I may submit one of the two later after I ponder options and possibly a suggested patch to either the Catalyst Python module or to the Catalyst docs. Please disregard this and close it out. Thanks!
Closing this bug. Your comments are appreciated and a new RFE might be more applicable as you already stated.