Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 91086 - Possible Python coding issue with Catalyst stage 2 processing
Summary: Possible Python coding issue with Catalyst stage 2 processing
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Hosted Projects
Classification: Unclassified
Component: Catalyst (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Gentoo Catalyst Developers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-05-01 15:05 UTC by Dan Foster
Modified: 2005-05-01 19:24 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
My LiveCD Stage 2 specfile (livecd-stage2.spec,1.14 KB, text/plain)
2005-05-01 15:09 UTC, Dan Foster
Details
emerge info output (emerge.info,2.02 KB, text/plain)
2005-05-01 15:10 UTC, Dan Foster
Details
Stack trace of Python crashing in Catalyst stage 2 processing (catalyst.bomb,1.09 KB, text/plain)
2005-05-01 15:11 UTC, Dan Foster
Details
Proposed patch for /usr/lib/catalyst/modules/catalyst_support.py (catalyst_support.py.patch,637 bytes, patch)
2005-05-01 15:48 UTC, Dan Foster
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Dan Foster 2005-05-01 15:05:59 UTC
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
Comment 1 Dan Foster 2005-05-01 15:09:24 UTC
Created attachment 57770 [details]
My LiveCD Stage 2 specfile
Comment 2 Dan Foster 2005-05-01 15:10:20 UTC
Created attachment 57771 [details]
emerge info output
Comment 3 Dan Foster 2005-05-01 15:11:20 UTC
Created attachment 57772 [details]
Stack trace of Python crashing in Catalyst stage 2 processing
Comment 4 Dan Foster 2005-05-01 15:48:02 UTC
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.
Comment 5 Dan Foster 2005-05-01 16:32:39 UTC
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!
Comment 6 Eric Edgar (RETIRED) gentoo-dev 2005-05-01 19:24:47 UTC
Closing this bug.  Your comments are appreciated and a new RFE might be more applicable as you already stated.