Fwd: Re: [Fink-users] Fink hangs forever (on tar) after mountain lion update

Alexander Hansen <[email protected]>
Newsgroups gmane.os.apple.fink.core
Organization Fink Core Team
Message-ID <[email protected]>
Forwarding onto -core, since we're now talking about modifying core 
packages.

-------- Original Message --------
Subject: Re: [Fink-users] Fink hangs forever (on tar) after mountain 
lion update
Date: Fri, 29 Mar 2013 08:19:34 -0700
From: Alexander Hansen <[email protected]>
Organization: Fink Core Team
To: Martin Costabel <[email protected]>
CC: Fink Users <[email protected]>

On 3/29/13 2:20 AM, Martin Costabel wrote:
> On 28/03/13 18:10, Alexander Hansen wrote:
> []
>> One more piece of information to work with here is that if I change my
>> /tmp/sw/lib/perl5/Fink/PkgVersion.pm such that Apple's gnutar is used
>> instead of Fink's then unpacking works under "su -".
>>
>> I wouldn't recommend that folks do this as a workaround just yet,
>> though, since we've been relying on the fact that our tar can
>> automatically unpack tar.xz archives without fink explicitly running xz,
>> i.e. just "tar -xf package.tar.xz".  Apple's gnutar doesn't know how to
>> do this, even for 10.8.
>
> Here is another data point:
>
> I looked where tar is hanging, and it is in the function
> _nl_locale_name_default() from libintl.8.dylib. That function, defined
> in gettext-0.18.1.1/gettext-runtime/intl/localename.c, calls
> CFLocaleCopyCurrent from CoreFoundation and that one goes on and tries
> to read system preferences. I would guess that there is a problem
> reading the system preferences for the root user.
>
> Anyway, when I tried and recompiled libintl.8.dylib with a modified
> _nl_locale_name_default() which simply returns "C" instead of calling
> CoreFoundation, tar did not hang any more.
>
> I am not proposing modifying libintl.8.dylib as a fix for this problem,
> because I have no idea what would be the repercussions, but maybe
> someone else with more insight can propose a real fix.
>

That narrows the issue down a lot.  Thanks!

It's probably too much to hope that the updated libgettext8 on the
tracker will give us better results without any additional tweaking.
The built-in gnutar doesn't appear to link to CoreFoundation, so maybe
that's why it doesn't suffer from this issue:

# otool -L /usr/bin/gnutar
/usr/bin/gnutar:
	/usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version
7.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 169.3.0)

# otool -L /sw/bin/gnutar
/sw/bin/gnutar:
	/sw/lib/libintl.8.dylib (compatibility version 10.0.0, current version
10.1.0)
	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 744.18.0)
	/sw/lib/libiconv.2.dylib (compatibility version 7.0.0, current version
7.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 169.3.0)

Maybe we could have the tar package build an additional executable with
reduced options (maybe stashed in a private directory like
%p/opt/tar/bin/) and have fink always use that for unpacking.  That
seems to satisfy the "Principle of Least Surprise" by not changing
users' default tar options.
-- 
Alexander Hansen, Ph.D.
Fink User Liaison
My package updates: http://finkakh.wordpress.com/



------------------------------------------------------------------------------
Own the Future-Intel(R) Level Up Game Demo Contest 2013
Rise to greatness in Intel's independent game demo contest. Compete 
for recognition, cash, and the chance to get your game on Steam. 
$5K grand prize plus 10 genre and skill prizes. Submit your demo 
by 6/6/13. http://altfarm.mediaplex.com/ad/ck/12124-176961-30367-2
_______________________________________________
fink-core mailing list
[email protected]
List archive:
http://news.gmane.org/gmane.os.apple.fink.core
Subscription management:
https://lists.sourceforge.net/lists/listinfo/fink-core
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.