Gentoo Archives: gentoo-user

From: Kirk Lowery <empirical.humanist@×××××.com>
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] Getting python-2.3 back
Date: Sun, 28 Sep 2008 13:03:17
Message-Id: e74dfca60809280602l3deb8643v24a1b82ee56d53e0@mail.gmail.com
In Reply to: Re: [gentoo-user] Getting python-2.3 back by David Relson
1 On Sun, Sep 28, 2008 at 8:38 AM, David Relson <relson@×××××××××××××.com> wrote:
2 > On Sat, 27 Sep 2008 12:58:40 -0400
3 > Kirk Lowery wrote:
4 >
5 >> On Fri, Sep 26, 2008 at 2:47 AM, Neil Bothwick <neil@××××××××××.uk>
6 >> wrote:
7 >> > On Thu, 25 Sep 2008 17:59:35 -0400, Kirk Lowery wrote:
8 >> >
9 >> >> During upgrading today, I inadvertently allowed 2.3 to be deleted.
10 >> >> I looked in portage, but it is apparently gone.
11 >> >
12 >> > Nothing is ever truly gone from portage
13 >> >
14 >> > http://sources.gentoo.org/viewcvs.py/gentoo-x86/dev-lang/python/?hideattic=0
15 >> >
16 >> > goes back as far as python-1/5/2
17 >>
18 >> Thanks for the answers. I thought I'd report my experience here for
19 >> the knowledgebase:
20 >>
21 >> I went back and downloaded not only the latest 2.3.6 ebuild into my
22 >> local overlay, and all the attendant files (including important
23 >> patches) in the "files" directory. In order to be able to emerge the
24 >> ebuild file, I had to recreate the digest and manifest files. Don't
25 >> know why the checksums were off, but they were. The solution was
26 >> simple:
27 >>
28 >> # ebuild python-2.3.6-r6.ebuild digest
29 >>
30 >> took care of it. When I tried to restart my legacy software I got a
31 >> python error: "ImportError: No module named thread". Sure enough, the
32 >> equery use feature told me "-threads". So I overrode that in
33 >> package.use. Nope, no change. Looking at the compile log, I saw this:
34 >>
35 >> ./configure --prefix=/usr --host=x86_64-pc-linux-gnu
36 >> --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share
37 >> --sysconfdir=/etc --localstatedir=/var/lib --with-fpectl
38 >> --enable-shared --enable-ipv6 --infodir=${prefix}/share/info
39 >> --mandir=${prefix}/share/man --with-libc= --enable-unicode=ucs4
40 >> --with-threads --without-threads --with-threads --libdir=/usr/lib64
41 >> --build=x86_64-pc-linux-gnu
42 >>
43 >> Configure has both --with- and --without-threads!!??
44 >>
45 >> Nothing I did seemed to make a difference. So I traced where in the
46 >> ebuild this might be coming from:
47 >>
48 >> use threads \
49 >> && myconf="${myconf} --with-threads" \
50 >> && myconf="${myconf} --without-threads"
51 >>
52 >> I still don't know why (and would appreciate any knowledgeable person
53 >> commenting here), but I simply commented out the third line above,
54 >> re-emerged, and viola! my legacy software is up and running.
55 >>
56 >> Kirk
57 >
58 > An interesting defect to find, and a good job of detective work!
59 >
60 > Out of curiosity, I looked at the python ebuilds on my workstation.
61 >
62 > Up through python-2.4.4-r6, they have:
63 >
64 > use nothreads \
65 > && myconf="${myconf} --without-threads" \
66 > || myconf="${myconf} --with-threads"
67 >
68 > From python-2.4.4-r14 onwards they have:
69 >
70 > use threads \
71 > && myconf="${myconf} --with-threads" \
72 > || myconf="${myconf} --without-threads"
73 >
74 > Evidently the 2.3.6-r6 ebuild has the newer "use threads" test, but
75 > with the minor (but fatal) operator flaw you found -- "&&" which
76 > should be "||".
77 >
78 > Hope this is of interest,
79
80 Yes, indeed! I need to review my binary operators. ;-)
81
82 It's too bad this is legacy stuff. We could file a patch and gain
83 cyberspace kudo's and good karma! But I did learn a bit about ebuilds.
84 And -- duh! -- comparing other similar ebuilds is an important
85 strategy in tracing out these kinds of problems.
86
87 Thanks for looking further into this.
88
89 Kirk