Made the damn thing build. And it even works from a little (rpm -qa at least :). The main problem currently is that any time it tries to run some external program and read it's results through a pipe - it hangs. For example: [mmazur@lucky 1:21 /home/mmazur]$ head -1 .rpmmacros %_topdir %(cd ..;pwd) [mmazur@lucky 1:17 /home/mmazur]$ strace -o LOG -f rpm --eval '%_topdir' ^C [mmazur@lucky 1:17 /home/mmazur]$ strace -o LOG -f rpm --eval '%_topdir' error: Macro %__spec_install_post_strip has unterminated body error: Macro %__spec_install_post_chrpath has unterminated body [mmazur@lucky 1:21 /home/mmazur]$ Now strace tells us something like this: 14275 __getcwd("", 1024) = 0 14275 stat("..", {st_mode=0, st_size=0, ...}) = 0 14275 chdir("/home") = 0 14275 write(1, "/home\n", 6) = 6 14274 <... poll resumed> [{fd=3, events=POLLRDNORM}, {fd=5, events=POLLRDNORM, revents=POLLRDNORM}], 2, INFTIM) = 1 14275 exit(0) = ? 14274 gettimeofday({1088637453, 323941}, NULL) = 0 14274 --- SIGCHLD (Child exited) --- 14274 --- SIGCHLD (Child exited) --- 14274 syscall_417(0x806aca0) = 0 14274 read(3, 0x806af20, 128) = -1 EAGAIN (Resource temporarily unavailable) 14274 fcntl(0, F_SETFL, O_RDWR|O_NONBLOCK) = 0 14274 fcntl(1, F_SETFL, O_RDWR|O_NONBLOCK) = 0 14274 fcntl(2, F_SETFL, O_RDWR|O_NONBLOCK) = 0 14274 fcntl(5, F_SETFL, O_RDWR|O_NONBLOCK) = 0 14274 read(5, "/home\n", 16384) = 6 14274 read(5, 0x8093000, 16384) = -1 EAGAIN (Resource temporarily unavailable) 14274 poll([{fd=5, events=POLLRDNORM}], 1, 0) = 0 14274 poll( And here's rpm from freebsd's ports: 14935 __getcwd("", 1024) = 0 14935 stat("..", {st_mode=0, st_size=0, ...}) = 0 14935 chdir("/home") = 0 14935 write(1, "/home\n", 6) = 6 14934 <... read resumed> "/home\n", 16384) = 6 14935 exit(0) = ? 14934 read(3, "", 16384) = 0 14934 --- SIGCHLD (Child exited) --- 14934 close(3) Any hints why did the second read start returning EAGAIN instead of plain NULL? (or at least hints where is this code) -- In the year eighty five ten God is gonna shake his mighty head He'll either say, "I'm pleased where man has been" Or tear it down, and start again _______________________________________________ Rpm-list mailing list Rpm-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/rpm-list