Guys: Turns out this wasn't a prelink issue (but it is probably good that we "fixed" the other prelink issues so we don't need to modify /etc/macros/rpm.prelink each time...) but it was a strip issue. I have checked a fix for the spec file in trunk so now it should build correctly under Red Hat and SUSE, and UYOK's BitTorrent should work.
I think we are getting close to a 3.7.4 release... Thanks, Bernard > -----Original Message----- > From: Andrea Righi [mailto:[EMAIL PROTECTED] > Sent: Thursday, July 20, 2006 3:06 > To: Bernard Li > Cc: sisuite-dev > Subject: prelink problems > > Hi all, > > I'm going to report some details about the problems we had > with Bernard > regarding prelink and binaries in initrd. To shortly resume > prelink can > corrupt some BOEL binaries or libraries so that they cannot > be executed > in initrd. > > This problem involves both BOEL and UYOK. For the first one I made a > patch (already checked in the trunk) that tries to undo prelinking in > the binaries and libs before copying them into the initrd. > Obviously it > doesn't resolve the problem when you create the initrd with > UYOK, since > the initrd_template is in the golden client and my patch > works only when > you build the initrd for BOEL. But this is not the main problem... > prelink seems to be very prone to erros and in some cases it can > strongly corrupt executables in unrecoverable ways. > > Following an example with the frozen bittorrent-console binary: > > # cd > /usr/share/systemimager/boot/i386/standard/initrd_template/lib > /bittorrent > > The file is not prelinked: > > # ./bittorrent-console > Usage: bittorrent-console [OPTIONS] [TORRENTFILE] > > arguments are - > --ip <arg> > ... > > Perfect, it works! Now if the file is prelinked this is what happens: > > # ls -ltrh bittorrent-console > -rwxr-xr-x 1 root root 4.0M 2006-07-19 20:01 bittorrent-console > > # prelink bittorrent-console > # ls -ltrh bittorrent-console > -rwxr-xr-x 1 root root 923K 2006-07-19 20:01 bittorrent-console > # ./bittorrent-console > zipimport.ZipImportError: not a Zip file: > '/usr/share/systemimager/boot/i386/standard/initrd_template/li > b/bittorrent/bittorrent-console' > Fatal Python error: cannot get zipimporter instance > Aborted > > This is the known error reported by Bernard. After this operation > there's no way to restore the old executable (look also at > the file size!): > > # prelink -u bittorrent-console > > # ls -ltrh bittorrent-console > -rwxr-xr-x 1 root root 918K 2006-07-19 20:01 bittorrent-console > # ./bittorrent-console > zipimport.ZipImportError: not a Zip file: > '/usr/share/systemimager/boot/i386/standard/initrd_template/li > b/bittorrent/bittorrent-console' > Fatal Python error: cannot get zipimporter instance > Aborted > > To freeze the bittorrent-console script, cx_freeze seems to > run it, get > the running image, zip it and store the zipped image in the target new > binary. So the new binary must unpack the attached zipped image (using > the zipimporter class http://python.zgp.org/lib/module-zipimport.html) > and execute it. > > With this kind of executable it seems that prelink simply removes from > the file the attached zipped image! :-o > > The only solution I see is: > 1) to add /usr/share/systemimager to the prelink blacklist (in > /etc/prelink.conf) in the golden client (maybe it could be done > automatically, adding it in the config file with an RPM post script) > 2) totally disable prelink in the machines used to build RPMs > > Ideas? > > Cheers, > -Andrea > ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Sisuite-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/sisuite-devel
