[Python-Dev] Problems building python2.4 SRPM on RHEL4 x64

Eric B. ebenze at hotmail.com
Sat Mar 15 13:59:07 CET 2008


""Martin v. Lšwis"" <martin at v.loewis.de> wrote in message 
news:47DB9BA1.5010702 at v.loewis.de...
> Eric B. schrieb:
>> Hi,
>>
>> I appologize if this is not the right place to post this, but searching
>> through the old archives, I ran across the same issue from 3 years ago, 
>> but
>> I cannot find the resolution to it.
>>
>> Currently, I am trying to build the python2.4 SRPM from Python.org on a
>> CentOS4.6_x64 platform, but the build is failing with a very non-descript
>> error message.
>>
>> ....
>> + cd /var/tmp/python2.4-2.4-root/usr/bin
>> + mv -f pydoc pydoc2.4
>> + cd /var/tmp/python2.4-2.4-root/usr/bin
>> + mv -f idle idle2.4
>> + echo '#!/bin/bash'
>> + echo 'exec /usr/bin/python2.4 /usr/lib64/python2.4/idlelib/idle.py'
>> + chmod 755 /var/tmp/python2.4-2.4-root/usr/bin/idle2.4
>> + cp -a Tools /var/tmp/python2.4-2.4-root/usr/lib64/python2.4
>> + rm -f mainpkg.files
>> + find /var/tmp/python2.4-2.4-root/usr/lib64/python2.4/lib-dynload -type 
>> f
>> + sed 's|^/var/tmp/python2.4-2.4-root|/|'
>> + grep -v -e '_tkinter.so$'
>> error: Bad exit status from /var/tmp/rpm-tmp.55639 (%install)
>
> The last command executed imediately before the error output
> seems to be
>
> find
> "$RPM_BUILD_ROOT""%{__prefix}"/%{libdirname}/python%{libvers}/lib-dynload
> -type f |
> sed "s|^${RPM_BUILD_ROOT}|/|" |
> grep -v -e '_tkinter.so$' >mainpkg.files
>
> That is not the last command in the %install script (atleast not
> according to the spec file). So it is not at all clear why the
> shell should stop executing at that point, and spit out
> that error message.
>
> The only theory I can come up with is that the shell *crashed*.
> Can you get hold of the rpm-tmp file (e.g. by asking RPM not
> to delete it)? Then run it independently, perhaps under
> strace.

Forgive the "newbie-ness" to this question, but I'm not quite sure what you 
mean by the rpm-tmp file; I'm assuming you mean the rpm-temp.45231 shell 
script that is left in /var/tmp.

I tried running that myself from the cmd line using
# bash -x rpm-tmp.45231
and it runs properly to completion.

If I try running just:
# rpmbuild -bi --short-circuit /usr/src/redhat/SPECS/python-2.4.spec

it (not surprisingly) exists with the same error message.


If I try to run
# strace rpmbuild -bi --short-circuit /usr/src/redhat/SPECS/python-2.4.spec

I end up with a whole bunch of output I don't understand:
.....
+ find /var/tmp/python2.4-2.4-root/usr/lib64/python2.4/lib-dynload -type f
+ sed 's|^/var/tmp/python2.4-2.4-root|/|'
+ grep -v -e '_tkinter.so$'
[{WIFEXITED(s) && WEXITSTATUS(s) == 1}], 0, NULL) = 14779
--- SIGCHLD (Child exited) @ 0 (0) ---
write(2, "error: ", 7error: )                  = 7
write(2, "Bad exit status from /var/tmp/rp"..., 53Bad exit status from 
/var/tmp/rpm-tmp.156 (%install)
) = 53
write(1, "\n\nRPM build errors:\n", 20

RPM build errors:
) = 20
write(2, "    Bad exit status from /var/tm"..., 57    Bad exit status from 
/var/tmp/rpm-tmp.156 (%install)
) = 57
open("/usr/lib/rpm/rpmrc", O_RDONLY)    = 3
fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
fstat(3, {st_mode=S_IFREG|0644, st_size=11452, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x2a983ac000
poll([{fd=3, events=POLLIN, revents=POLLIN}], 1, 1000) = 1
read(3, "#/*! \\page config_rpmrc Default "..., 8192) = 8192
poll([{fd=3, events=POLLIN, revents=POLLIN}], 1, 1000) = 1
read(3, "t: armv4l: armv3l\narch_compat: a"..., 8192) = 3260
poll([{fd=3, events=POLLIN, revents=POLLIN}], 1, 1000) = 1

.....


> If it's indeed the case that the shell crashes, something
> is seriously wrong with your operating system.

I would be surprised if it was something wrong with the OS at is a brand 
spanking new install.  In fact, I installed it specifically in order to 
build python2.4 on RHEL4 x64 so I can then install the rpm pkg on my 
production x64 server (I only managed to find precompiled i386 binaries for 
RHEL4).  Is it possible I'm missing some libraries somewhere?

I don't know if there is any way I can complete the rpm build manually? 
I've looked at the SPEC file, but don't see anything particularly special in 
there, nor am I sure how I can modify this rpm-tmp script that it runs to 
skip that line and see if it can continue without it.  (Am not very well 
versed with building srpms).

Any ideas what I can do/try next?

Thanks,

Eric





More information about the Python-Dev mailing list