On Sun, Jan 03, 2010 at 06:11:55PM +0100, Martin Costabel wrote:
> Martin Costabel wrote:
> []
> > On 10.6/32bit: Builds but doesn't install
> > 
> >> Unpacking sbcl (from .../sbcl_1.0.34-1_darwin-i386.deb) ...
> >> ### execution of /sw32/bin/dpkg-lockwait failed, exit code 6
> >> /sw32/bin/dpkg-deb: subprocess paste killed by signal (Broken pipe)
> >> Updating the list of locally available binary packages.
> >> Scanning dists/local/main/binary-darwin-i386
> >> New package: 
> >> dists/local/main/binary-darwin-i386/sbcl_1.0.34-1_darwin-i386.deb
> >> Failed: can't install package sbcl-1.0.34-1
> 
> I have now found where this chokes: It happens when dpkg tries to 
> install the file
> 
> /sw/share/doc/sbcl/html/sbcl/Method-sb_002dbsd_002dsockets_003asocket_002dmake_002dstream-_0028_0028socket-socket_0029-_0026key-input-output-_0028element_002dtype-_0027character_0029-_0028buffering-full_0029-_0028external_002dformat-default_0029-timeout_0029.html
> 
> If I remove this file in sbcl's InstallScript, then sbcl (1.0.33 and 
> 1.0.34) installs OK on 10.6/32bit (at least sometimes, at other times it 
> produces the sb-posix module build failure I have seen also on 
> 10.6/64bit occasionally).
> 
> This looks like dpkg is not able to handle files with a file name longer 
> than 256 characters. On the other hand, I don't understand why this bug 
> only shows up on 10.6/32bit and not on 10.6/64bit nor on 10.5/32bit.

Also doesn't seem to choke on 10.4/ppc. Wonder if there is some static
buffer used to hold a pathname? I have:

/usr/include/limits.h:#define   _POSIX_PATH_MAX         256
/usr/include/sys/param.h:#define        MAXPATHLEN      PATH_MAX
/usr/include/sys/syslimits.h:#define    PATH_MAX                 1024   /* max 
bytes in pathname */

The "paste" subprocess is in dpkg-deb/extract.c:extracthalf(), where I
can't decipher the forking and stream processing that is used to read
the .deb. Try a simpler dpkg-deb modes to make sure this is where it's
choking: "dpkg-deb -c foo.deb" vs "dpkg-deb -X foo.deb /tmp". I think
the actual archive reading is done with a system(tar) call, so that
command (and its platform variations, and different fink-installed
versions) could be another place to look for the root cause:

  dpkg-deb --fsys-tarfile foo.deb > archive.tar

to extract the .deb filesystem archive and then try 'tar -xf
archive.tar' with various different tar commands.

dan

-- 
Daniel Macks
dma...@netspace.org
http://www.netspace.org/~dmacks


------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
http://news.gmane.org/gmane.os.apple.fink.devel
Subscription management:
https://lists.sourceforge.net/lists/listinfo/fink-devel

Reply via email to